{"version":3,"file":"main.368e6109af75c0a7.js","mappings":"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,qBACAl9B,WACAu9B,iCACAwD,iBACAC,6BACAmB,oBACAQ,8BACA7hB,qCACA8hB,6BACAS,4BACAK,4BACAU,2BACApjB,4BACAyjB,+BACA/D,wBACA3f,kBACAoc,gBACApE,cACAyM,mBACAM,iCACAjlB,mBACA+X,iCACAhY,mCACA4lB,0CACAkB,0BACAC,wBACAC,6BACA5rB,QACAC,gBACAC,wBACAC,sBACAC,sBACA6J,WACAygB,qBACAxgB,uBACAygB,mBACAC,kBACAC,sBACAgC,uCACA1iB,yBACA2gB,2BACAwC,+CACAjtB,qBACA0tB,4CACAztB,yBACAu0B,kCACAxI,4BACA1c,SACAF,YACA+T,kCACA5hB,qBACA6hB,iBACA3Y,gBACApd,QACAkiB,mBACAC,gBACA2O,0BACA1O,iBACAjhB,sBACA2yB,8CACA6N,yCACAC,4CACA5P,qCACAkD,2CACAmN,mDACAhgB,0BACAC,uBACAC,cACAC,mBACAC,gBACAC,oBACAV,2BACAlrB,YACA6tC,uCACAC,yCACAC,mBACAnhB,yBACAohB,oBACAluC,eACA4sB,+BACAptB,eACA0J,aACAjR,OACA7D,cACA4jC,6BACAK,OACAG,yBACAtuB,mBACAswB,UACAC,uBACAviC,WACA0iC,cACAI,kBACAE,aACA3W,iBACApsB,aACA0T,oBACAwyB,iBACA3kB,WACAiD,gBACAmD,kBACAsf,YACAC,yBACA3E,WACA/Z,UACArrB,gBACA4xB,yBACAkjB,+BACA7R,yBACAoT,0BACAvzC,cACAwzC,iCACAK,+BACAE,mBACAtvB,0BACAD,iDACAyvB,WACAK,mBACApjC,aACAy1B,4KCn4vBG,IAAMsV,EAAgB,MAAvB,MAAOA,UAAwBC,YAEnBzlD,KAAA0lD,QAAkB,EAAG,CAEnCljD,YAAsBmjD,EACAC,EACAC,EACAC,GAClBrkD,MAAMmkD,EAAgBC,EAAgBC,GAJpB9lD,KAAA2lD,OACA3lD,KAAA4lD,iBACA5lD,KAAA6lD,iBACA7lD,KAAA8lD,iBAElBN,EAAgBE,QAAUD,KAAYC,QAAU,YACpD,CAEOK,kBAAkBC,EAAWC,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EJ4vK,MAAO,CACH,KACA,KACA,KACA,KACA,KACA,KACA,MAEJ0C,KAAM,CACF,SACA,SACA,UACA,YACA,WACA,SACA,cAIZx9K,OAAQ,CACJ7vO,OAAQ,CACJotZ,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJryK,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJsyK,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,aAGR,cAAe,CACXD,YAAa,CACT,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,MACA,OAEJryK,OAAQ,CACJ,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,IACA,KAEJsyK,KAAM,CACF,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,cAIZC,SAAU,CACNttZ,OAAQ,CACJotZ,YAAa,CACT,KACA,KACA,KACA,MAEJryK,OAAQ,CACJ,IACA,IACA,IACA,KAEJsyK,KAAM,CACF,cACA,cACA,cACA,gBAGR,cAAe,CACXD,YAAa,CACT,KACA,KACA,KACA,MAEJryK,OAAQ,CACJ,IACA,IACA,IACA,KAEJsyK,KAAM,CACF,cACA,cACA,cACA,iBAIZE,WAAY,CACRvtZ,OAAQ,CACJotZ,YAAa,CACTI,SAAU,WACVC,GAAI,KACJ,iBAAkB,KAClBC,KAAM,OACNC,GAAI,KACJ,iBAAkB,KAClBC,SAAU,iBACVC,WAAY,mBACZC,SAAU,iBACVC,OAAQ,YAEZhzK,OAAQ,CACJyyK,SAAU,KACVC,GAAI,IACJ,iBAAkB,KAClBC,KAAM,IACNC,GAAI,IACJ,iBAAkB,KAClBC,SAAU,iBACVC,WAAY,mBACZC,SAAU,iBACVC,OAAQ,YAEZV,KAAM,CACFG,SAAU,WACVC,GAAI,KACJ,iBAAkB,KAClBC,KAAM,OACNC,GAAI,KACJ,iBAAkB,KAClBC,SAAU,iBACVC,WAAY,mBACZC,SAAU,i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tN,aAAA,CAIkCyygB,MAAoBzrf,cAAA,IA3H/E8vtB,EAAiC,KAkKjCc,GAAY,MAAlB,MAAMA,GACFj06B,YAAY2rsB,GACRnusB,KAAKmusB,aAAeA,EACpBnusB,KAAK875B,SAAW,IAAI18sB,MACpBp/M,KAAK0xtB,aAAc,CACvB,CACA,eAAIglN,GACA,OAAO126B,KAAK2xO,IAAI8vN,QACpB,CACA,iBAAIywQ,GACA,OAAOlysB,KAAK2xO,IAAI91E,QACpB,CACA,gBAAI43iB,GACA,OAAOzzsB,KAAK2xO,IAAI0he,OACpB,CACA,YAAI59X,GACA,OAAOz1U,KAAK2xO,IAAI8vN,UAAYzhc,KAAK2xO,IAAI0he,QAAU,GAAI,CACvD,CACA,eAAIsjO,GACA,YAA0Bt26B,IAAtBL,KAAK2xO,IAAIqqrB,SACFh85B,KAAK2xO,IAAIqqrB,SAEbh85B,KAAK426B,gBAChB,CACA,qBAAI9b,GACA,IAAI965B,KAAK665B,yBAGT,OAAI765B,KAAK2xO,IAAIwqrB,aACFn85B,KAAK2xO,IAAIwqrB,aAEhBn85B,KAAKm85B,aACEn85B,KAAKm85B,aAETr2a,KACX,CACA,sBAAI80a,GACA,IAAK565B,KAAK626B,yBAA2B726B,KAAK826B,oBAAsB926B,KAAK2xO,IAAIuqrB,eACrE,OAAIl85B,KAAK2xO,IAAIsqrB,UACFj85B,KAAK2xO,IAAIsqrB,UAEbj85B,KAAK826B,iBAEpB,CACA,4BAAIjc,GACA,GAAI765B,KAAK626B,yBAA2B726B,KAAK2xO,IAAIuqrB,eACzC,OAAIl85B,KAAK2xO,IAAIuqrB,eACFl85B,KAAK2xO,IAAIuqrB,eAEbl85B,KAAK626B,uBAEpB,CACA,oBAAIvtM,GACA,OAAOtpuB,KAAKmusB,aAAaxtsB,IAAI,aACjC,CACAg65B,SAAS9m1B,GACL,MAAMkj2B,EAAY,IAAIpG,GAAc981B,EAAO7zE,KAAK2xO,KAChD3xO,KAAK875B,SAAS9rwB,KAAK+mxB,EACvB,EAEJN,UAAapp3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFugrB,IArxGP1p3B,MAqxGqCC,MAAsB,EAC9Jyp3B,GAAax8W,UAtxGsFltgB,MAAE,CAAA5jD,KAsxGPst6B,GAAYx2tB,UAAA,6BAAA2hB,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAtxGP/hE,MAAE,gBAAAonF,EAAAuiyB,YAAF3p3B,CAAE,gBAAAonF,EAAA+9jB,cAAFnlpB,CAAE,WAAAonF,EAAAshM,UAAF1oR,MAAE,SAAAonF,EAAAu9kB,YAAF3kqB,CAsxGO,kBAAAonF,EAAAu9kB,YAtxGP3kqB,CAsxGO,WAAAonF,EAAAuiyB,YAtxGP3p3B,CAsxGO,aAAAonF,EAAA+9jB,cAtxGPnlpB,CAsxGO,UAAAonF,EAAAs/jB,cAAA,EAAAvzf,OAAA,CAAAyxB,IAAA,MAAA99J,MAAA,QAAA+i2B,iBAAA,mBAAAE,kBAAA,oBAAAD,wBAAA,0BAAA1a,aAAA,gBAAAh8sB,QAAA,CAAA27sB,SAAA,YAAAr/qB,YAAA,EAAA1nJ,SAAA,CAtxGPhoC,OAAEmvL,MAAA6vd,GAAA3rf,MAAA,EAAAC,KAAA,EAAAC,OAAA,kaAAAC,SAAA,SAAAzxF,EAAAqlB,GA+yG5F,GA/yG4F,EAAArlB,GAAF/hE,MAAE,EAAAyt2B,GAAA,qBAAFzt2B,CAuxGlC,EAAA0t2B,GAAA,sBAvxGkC1t2B,OA+xGf,EAAA2t2B,GAAA,gBAgB3E,EAAA5ryB,EAAA,OAAAkozB,EA/yG0Fjq3B,MAAE,GAAFA,MAAE,QAAAonF,EAAAw9F,IAAA++rB,YAAF3j3B,CAuxGpD,WAAAiq3B,GAvxGoDjq3B,cAAE,yBAAAonF,EAAAw9F,IAAA++rB,YAAA,KAAAv8xB,EAAAw9F,IAAA++rB,YAAAhyrB,aAAF3xL,MAAE,GAAFA,MAAE,OAAAonF,EAAAwiyB,YAqyGvE,GAAA93uB,aAAA,CAWmCwgX,KAAiG2C,KAAoKksJ,MAAerof,cAAA,IAvF/U4wtB,EAAY,KAsKZQ,GAAgB,MAAtB,MAAMA,WAAyB72N,MAE/B62N,UAAiB5p3B,UAAI,UAAA6p3B,EAAA,gBAAAhhrB,GAAA,OAAAghrB,MAj4G8Enq3B,MAi4GWkq3B,MAAgB/grB,GAAhB+grB,GAAgB,GAAzG,GACrBA,GAAiBhuY,UAl4GkFl8e,MAAE,CAAA5jD,KAk4GH8t6B,GAAgBh3tB,UAAA,mCAAAC,OAAA,CAAAqnhB,WAAA,aAAA4vM,kBAAA,oBAAAC,cAAA,iBAAAri1B,SAAA,CAl4GfhoC,SA+3G7Fkq3B,EAAgB,KAqBhBI,GAAkC,MAAxC,MAAMA,WAA2CJ,GAC7Cz06B,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,EAEJwztB,UAAmChq3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFmhrB,IA15G7Btq3B,MA05GiFC,MAAsB,EAC1Mqq3B,GAAmCpuY,UA35GgEl8e,MAAE,CAAA5jD,KA25Geku6B,GAAkCp3tB,UAAA,2CAAAw8B,YAAA,EAAA1nJ,SAAA,CA35GnDhoC,MA25GkI,CAC7N,CACI+kB,QAASml2B,GACTvjX,eAAagF,OAAW,IAAM2+W,OA95GyDtq3B,SAo5G7Fsq3B,EAAkC,KA8BlCxzE,GAAiB,MAAvB,MAAMA,GACFrh2B,YAAY2rsB,EAAc9he,EAAUw0D,EAASy2oB,GAAiBC,GAAe9oX,IACzEzujB,KAAKmusB,aAAeA,EACpBnusB,KAAKqsO,SAAWA,EAChBrsO,KAAK6gS,QAAUA,EACf7gS,KAAKs36B,gBAAkBA,GACvBt36B,KAAKu36B,cAAgBA,GACrBv36B,KAAKyujB,OAASA,GAMdzujB,KAAKswP,SAAU,EAMftwP,KAAK475B,YAAc,MAOnB575B,KAAKk95B,gBAAiB,EAOtBl95B,KAAKg85B,UAAW,EAIhBh85B,KAAKi85B,UAAY,IAMjBj85B,KAAKo75B,iBAAkB,EAKvBp75B,KAAK6x6B,UAAY,IAAIzytB,MAKrBp/M,KAAK875B,SAAW,IAAI18sB,MAKpBp/M,KAAK075B,UAAY,IAAIt8sB,MACrBp/M,KAAK0xtB,aAAc,EAInB1xtB,KAAK685B,KAAO,IAAI79U,MAIhBh/kB,KAAKwxtB,sBAAuB,EAC5BxxtB,KAAKw36B,oBAAsBpC,IAA4B,GACvDp16B,KAAKq1nB,cAAgB,IAAI99F,MACzBv3hB,KAAKy36B,yBAA0B,EAC/Bz36B,KAAKsx6B,cAAar/xB,QAClB,MAAMtmB,MAAUgjlB,KAAgB5B,IAChC/ssB,KAAKwxtB,wBAAuBI,MAAuBjmmB,IACnD3rH,KAAKs36B,gBAAgB37xB,MAAQ37I,KAC7BA,KAAKu36B,cAAc57xB,MAAQ37I,KAC3BA,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKu36B,cAAc1E,8BAA8Brr3B,UAAWkw3B,KAC3E136B,KAAKy85B,kBAELz85B,KAAKqsO,UADUqrsB,GAAqBlssB,OAAS,SAAW,OAC1C,SAAkBxrO,KAAK,GAAG036B,GAAqBpkM,0BAA0B9smB,KAAKk/E,cAAe,aAC/G,GAER,CAIA,UAAIirC,CAAOzwP,GACPF,KAAK236B,QAAUz36B,EACfF,KAAKqsO,SAAS2yC,SAASh/Q,KAAK6gS,QAAQn7E,cAAe,SAAUxlN,EACjE,CACA,UAAIywP,GACA,OAAO3wP,KAAK236B,OAChB,CASA,cAAIx7O,CAAWj8rB,GACXF,KAAKw36B,oBAAsBpC,GAA4Bl16B,GACnDF,KAAK+y6B,UACL/y6B,KAAK436B,oBAAoB536B,KAAKu36B,cAAcnE,cAC5Cpz6B,KAAK636B,mBAAmB736B,KAAK+y6B,QAAQrttB,eAE7C,CACA,cAAIy2e,GACA,OAAOn8rB,KAAKw36B,mBAChB,CAKA,gBAAIrb,CAAapozB,GACb,MAAI4khB,UAAe5khB,GAAQ/zG,KAAKi85B,WAAgC,MAAnBj85B,KAAKi85B,UAC9C,MAAM,IAAIn45B,MAAM,iFAEpB9D,KAAK836B,cAAgB/j0B,CACzB,CACA,gBAAIoozB,GACA,OAAOn85B,KAAK836B,aAChB,CACA,aAAIC,GACA,MAA4B,QAArB/36B,KAAK475B,WAChB,CACA,eAAIoc,GACA,MAA4B,UAArBh46B,KAAK475B,WAChB,CACA,gBAAIqc,GACA,MAA4B,WAArBj46B,KAAK475B,WAChB,CACA,cAAIsc,GACA,MAA4B,SAArBl46B,KAAK475B,WAChB,CACA,OAAI7gmB,GACA,OAAO/6T,KAAKmusB,aAAatqZ,IAAM,MAAQ,KAC3C,CACA,sBAAIs0nB,GACA,OAAOn46B,KAAKw36B,oBAAoBrryB,OACpC,CACA2lF,mBACI,EAAKk9e,UAGLhvsB,KAAKyujB,OAAOpuS,kBAAkB,KAEtBrgR,KAAK436B,sBADL536B,KAAKu36B,cAAcnE,cAMvBrp1B,WAAW,KACP/pF,KAAKgy6B,qBAAoB,EAC5B,GAELhy6B,KAAK6suB,gBACL7suB,KAAKo46B,eAAiBp46B,KAAK685B,KAAKl2tB,QAAQn/I,UAAU,KAC9CxnD,KAAKyujB,OAAO8sB,SAAS30hB,QAAKojD,KAAK,IAAIxiD,UAAU,KACzCxnD,KAAK436B,oBAAoB536B,KAAKu36B,cAAcnE,cAC5Cpz6B,KAAKu36B,cAAc3D,0BAAyB,EAC/C,GAET,CACAr0tB,YAAY5Y,GACR,KAAI,EAACqogB,QACD,OAEJ,MAAMqpO,EAAiB1xuB,EAAQi1tB,YAC/B,GAAIyc,EAAgB,CAChB,MAAMC,EAAuD,WAAjCD,EAAe3yrB,eAA8D,WAAhC2yrB,EAAevm0B,aACxF9xG,KAAKyujB,OAAO8sB,SAAS30hB,QAAKojD,KAAK,IAAIxiD,UAAU,KACrC8w3B,IACIt46B,KAAKy36B,0BACLz36B,KAAKq1nB,cAAc3mjB,cACnB1uE,KAAKq1nB,cAAgB,IAAI99F,MACzBv3hB,KAAKy36B,yBAA0B,EAC/Bz36B,KAAKu46B,qBAAuBv46B,KAAKu36B,cAAc1E,8BAA8Brr3B,UAAWkw3B,KAChF136B,KAAKy85B,kBAELz85B,KAAKqsO,UADUqrsB,GAAqBlssB,OAAS,SAAW,OAC1C,SAAkBxrO,KAAK,GAAG036B,GAAqBpkM,0BAA0B9smB,KAAKk/E,cAAe,aAC/G,IAGR1lN,KAAK6suB,iBAET7suB,KAAKu36B,cAAcpC,uBAAsB,EAEjD,CACJ,CACAhxtB,cACQnkN,KAAKq1nB,eACLr1nB,KAAKq1nB,cAAc3mjB,cAEnB1uE,KAAKo46B,gBACLp46B,KAAKo46B,eAAe1p2B,cAEpB1uE,KAAKu46B,sBACLv46B,KAAKu46B,qBAAqB7p2B,aAElC,CAIA,uBAAIgu1B,GACA,MAAO,CACHln0B,MAAO,aACPmzC,IAAK,WACLkkK,OAAQ,SACR2roB,QAAS,iBACXx46B,KAAKy46B,aACX,CAIA,gBAAI9b,GACA,MAAyB,QAArB385B,KAAK475B,aAA8C,WAArB575B,KAAK475B,YAC5B,OAEJ,IACX,CAIA,iBAAIgB,GACA,MAAyB,SAArB585B,KAAK475B,aAA+C,UAArB575B,KAAK475B,YAC7B,OAEJ,IACX,CAIA,gBAAI1vG,GACA,OAAOlszB,KAAKw36B,oBAAoBrryB,OACpC,CAIA,oBAAIswxB,GACA,MAzjC0BoU,KACvBA,GAAmB1kyB,SAAgD,WAArC0kyB,GAAmBwE,cAwjC7CqD,CAAyB146B,KAAKw36B,oBACzC,CAIA,sBAAI5G,GACA,OAAOA,GAAmB5w6B,KAAKw36B,oBACnC,CAIA,qBAAIhb,GACA,OAAO6U,GAAoBrx6B,KAAK475B,aAAe,WAAa,UAChE,CAKAj4D,UAAU9vxB,GACN,MAAM89J,EAAMu/rB,GAAclx6B,KAAK685B,KAAMhp1B,IAChC89J,GAAOA,EAAI91E,WAGhB77J,KAAKs36B,gBAAgB3zE,UAAUhynB,EAAK99J,GACpC7zE,KAAKgy6B,sBACT,CAIA5V,SAAS34yB,GACL,OAAO85uB,GAAQ,iBAAkBv91B,KAAKsx6B,WAAY7tzB,EACtD,CAIA44yB,cAAc54yB,GACV,OAAO85uB,GAAQ,sBAAuBv91B,KAAKsx6B,WAAY7tzB,EAC3D,CAIAiuH,WAAWy2D,EAAestC,GACtB,GAAIsrZ,GAAY54b,EAAclrM,QAC1B,OAEJ,MAAMkiT,EAAgBh3G,EAAclrM,OAEpC,GAD4B4pvB,GAAS1nc,EAAe,iBAAmB0nc,GAAS1nc,EAAcv7B,cAAe,gBAEzG,OAEJ,MAAMjyI,GAAMu/rB,GAAclx6B,KAAK685B,KAAMpnlB,GACrCz1U,KAAKs36B,gBAAgB3F,YAAYhgsB,GAAK8jG,GACtCz1U,KAAKgy6B,qBACT,CAIA9+M,WAEQlztB,KAAK436B,sBADL536B,KAAKu36B,cAAcnE,cAMvBpz6B,KAAKyujB,OAAOpuS,kBAAkB,KAC1BrgR,KAAKu36B,cAAc3D,0BAAyB,EAEpD,CAIA5B,sBACQhy6B,KAAKw36B,oBAAoBrryB,SACzBnsI,KAAKu36B,cAAcvF,qBAE3B,CAIArW,oBAAoBroL,GAChBtzuB,KAAKu36B,cAAczC,WAAWxhM,EAClC,CACAzG,gBACI,IAAK7suB,KAAK6gS,SAAW7gS,KAAKy36B,wBACtB,OAEJ,MAAM1E,EAAU/y6B,KAAK+y6B,QAAQrttB,cAC7B1lN,KAAKyujB,OAAOpuS,kBAAkB,KAC1BrgR,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOwmsB,EAAS,UAAYh0gB,IAC7D/+Z,KAAKs36B,gBAAgBjhP,UAAUt3R,EAAE,GACnC,GAEN/+Z,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOwmsB,EAAS,WAAY,KA1lClDlW,MA2lCG785B,KAAK685B,KA1lCtB3o1B,QAASy9J,IACVA,EAAI0he,SAAU,GACjB,EAwlCOslO,EAAuB,IAEvB346B,KAAKkszB,cAAgBlszB,KAAK4w6B,oBAC1B5w6B,KAAK636B,mBAAmB9E,GAE5B/y6B,KAAKy36B,yBAA0B,CACnC,CACAG,oBAAoBxE,GAChBpz6B,KAAKyujB,OAAO8sB,SAAS30hB,QAAKojD,KAAK,IAAIxiD,UAAU,KACzC,MAAMox3B,EAAuB546B,KAAKw36B,oBAAoBnC,cAChDwD,EAA0B746B,KAAKuz6B,kBAAoBvz6B,KAAK2z6B,iBACxDmF,GAAoBD,GAA2BzF,EAI/C5khB,GAAyC,YAAzBoqhB,EAHIC,IACrBzF,GACwB,YAAzBwF,GAGA546B,KAAKuz6B,iBAAiB51rB,QAAO,GAC7B39O,KAAK2z6B,iBAAiBh2rB,QAAO,KAExBm7rB,IAAqBtqhB,MAC1BxuZ,KAAKuz6B,iBAAiB51rB,QAAO,GAC7B39O,KAAK2z6B,iBAAiBh2rB,QAAO,IAE7Bk7rB,GAA2BrqhB,IAC3BxuZ,KAAKyujB,OAAOpuS,kBAAkB,KAC1BrgR,KAAKu36B,cAAc3D,0BAAyB,EAC/C,EAGb,CACAiE,mBAAmB9E,GACf/y6B,KAAKyujB,OAAOpuS,kBAAkB,KAC1BrgR,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOwmsB,EAAS,QAAUgG,IAC3D,MAAMnD,EAAc,IAAIF,GAAe,CACnCvtoB,cAAe4woB,IAEnB/46B,KAAK075B,UAAU1rwB,KAAK4lxB,IACmBA,EAAYp3oB,sBACZx+R,KAAKu36B,cAAcnE,cAG1Dpz6B,KAAKu36B,cAAc5C,cAAcoE,EAAU,GAC7C,EAEV,EAEJl1E,UAAkBx2yB,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF2tmB,IA/yHZ92yB,MA+yH+CC,MA/yH/CD,MA+yHkFA,OA/yHlFA,MA+yH2GA,OA/yH3GA,MA+yHqIwk3B,IA/yHrIxk3B,MA+yHiK6l3B,IA/yHjK7l3B,MA+yH2LA,OAAS,EACvS82yB,GAAkB5pS,UAhzHiFltgB,MAAE,CAAA5jD,KAgzHF061B,GAAiB5jpB,UAAA,qBAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAQ5C,GAR4C,EAAA5le,GAhzHjB/hE,MAAE2niB,EAwzHjDqvQ,GAAoB,KAAAj1uB,EAAA,KAAAw6iB,GAxzH2Bv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAA0oxB,KAAAvzP,GAAA,GAAA5yc,UAAA,SAAA5nG,EAAAqlB,GAwzHsY,GAxzHtY,EAAArlB,IAAF/hE,MAAE2/oB,GAAA,GAAF3/oB,MAAEigsB,GAAA,GAAFjgsB,MAAEoisB,GAAA,GAAFpisB,MAAEqisB,GAAA,EAwzH4XxwK,QAAU,EAAA9vd,EAAA,KAAAw6iB,EAxzHxYv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAA4+xB,QAAAzpQ,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAo/xB,iBAAAjqQ,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAw/xB,iBAAArqQ,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAo+xB,oBAAAjpQ,EAAA,GAAA1nc,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,MAAAonF,EAAA4mL,KAAFhuQ,MAAE,aAAAonF,EAAAu9kB,YAAF3kqB,CAgzHiB,iBAAAonF,EAAAu9kB,YAhzHjB3kqB,CAgzHiB,iBAAAonF,EAAA4jyB,UAhzHjBhr3B,CAgzHiB,mBAAAonF,EAAA6jyB,YAhzHjBjr3B,CAgzHiB,oBAAAonF,EAAA8jyB,aAhzHjBlr3B,CAgzHiB,kBAAAonF,EAAA+jyB,WAhzHjBnr3B,CAgzHiB,wBAAAonF,EAAAgkyB,oBAAA,EAAAj4tB,OAAA,CAAAywC,OAAA,SAAAL,QAAA,UAAAmorB,aAAA,eAAA7c,YAAA,cAAAsB,eAAA,iBAAAlB,SAAA,WAAA7/N,WAAA,aAAA8/N,UAAA,YAAAC,eAAA,iBAAAC,aAAA,eAAAf,gBAAA,mBAAAj7sB,QAAA,CAAA0xtB,UAAA,YAAA/V,SAAA,WAAAJ,UAAA,aAAAl9qB,SAAA,kBAAA/B,YAAA,EAAA1nJ,SAAA,CAhzHjBhoC,MAgzH+0B,CAC16Bwk3B,GACAqB,GACAxhO,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,oBAtzH6Ez0N,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,YAAA,IAAAiye,EA2zHxE87C,EAGciH,SA9zH0D/iD,EA2zH7E18D,oGAAKw4G,EAGEx4G,qIAAYy/G,EAGhBz/G,yHAAQ,0KAAA08D,EAAA,oBAAA87C,EAAA,gBAAAiH,GAAA,w/BAAA/0hB,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAj0HgE/hE,MAAE,KAAFA,MAAE,EAAAmu2B,GAAA,qBAAFnu2B,CAo0HvD,EAAAyu2B,GAAA,qBAp0HuDzu2B,CA20HxD,EAAAwv2B,GAAA,0BA30HwDxv2B,OAi1HrE,EAAAsw2B,GAAA,yBAj1HqEtw2B,OAw4HrE,EAAAuw2B,GAAA,4BAx4HqEvw2B,CA05H3B,EAAAww2B,GAAA,cACR,EAAAzuyB,IA35HmC/hE,cAAE,QAAAonF,EAAA8jyB,cAAFlr3B,cAAE,OAAAonF,EAAA8jyB,cAAFlr3B,MAAE,GAAFA,MAAE,OAAAonF,EAAA+3qB,cAAFn/vB,cAAE,OAAAonF,EAAAq9kB,sBA25HvC,EAAA3yhB,aAAA,CACGw4uB,GAA+Gh4X,KAAiG2C,KAAoK5E,KAA2Fu4X,GAA+Lt7N,KAAwHo8N,GAAgNn1X,KAAkF2yK,KAAiIC,MAAyBrugB,cAAA,EAAA5lN,KAAA,CAAAkxP,UAAyD,IACpzCzyB,OAAQ,QAAS,IACbh+H,OAAM,YAAUgnJ,OAAM,CAAE0I,QAAS,MAAI,EACrCC,OAAW,cAAe,IACtB3I,OAAM,CAAE0I,QAAS,KAAG,EACpBE,OAAQ,yBA/elBuzmB,EAAiB,KA2rBjBm1E,GAA+B,MAArC,MAAMA,WAAwC/B,GAC1Cz06B,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,CACA,YAAIz8H,GACA,OAAO,CACX,EAEJ4x1B,UAAgC3r3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF8irB,IAtnI1Bjs3B,MAsnI2EC,MAAsB,EACpMgs3B,GAAgC/+W,UAvnImEltgB,MAAE,CAAA5jD,KAunIY6v6B,GAA+B/4tB,UAAA,8BAAAw8B,YAAA,EAAA1nJ,SAAA,CAvnI7ChoC,MAunImH,CAC9M,CACI+kB,QAASml2B,GACTvjX,eAAagF,OAAW,IAAMsgX,OA1nIyDjs3B,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAA0xE,cAAA,IA6mI/FmztB,EAA+B,KAsC/BC,GAAuB,MAA7B,MAAMA,GACFz26B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJu6rB,UAAwB5r3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF+irB,IAxpIlBls3B,MAwpI2DA,MAAc,KAC5Kks3B,GAAwBhwY,UAzpI2El8e,MAAE,CAAA5jD,KAypII8v6B,GAAuBh5tB,UAAA,gCAAAw8B,YAAA,IAN1Hw8rB,EAAuB,KAsBvBC,GAA2B,MAAjC,MAAMA,GACF126B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJw6rB,UAA4B7r3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFgjrB,IA9qItBns3B,MA8qImEA,MAAc,KACpLms3B,GAA4BjwY,UA/qIuEl8e,MAAE,CAAA5jD,KA+qIQ+v6B,GAA2Bj5tB,UAAA,oCAAAw8B,YAAA,IANlIy8rB,EAA2B,KAsB3BC,GAA6B,MAAnC,MAAMA,GACF326B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJy6rB,UAA8B9r3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFijrB,IApsIxBps3B,MAosIuEA,MAAc,KACxLos3B,GAA8BlwY,UArsIqEl8e,MAAE,CAAA5jD,KAqsIUgw6B,GAA6Bl5tB,UAAA,sCAAAw8B,YAAA,IANtI08rB,EAA6B,KAsB7BC,GAA6B,MAAnC,MAAMA,GACF526B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJ06rB,UAA8B/r3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFkjrB,IA1tIxBrs3B,MA0tIuEA,MAAc,KACxLqs3B,GAA8BnwY,UA3tIqEl8e,MAAE,CAAA5jD,KA2tIUiw6B,GAA6Bn5tB,UAAA,sCAAAw8B,YAAA,IANtI28rB,EAA6B,KAoBnC,MAAMC,GAAyBtmK,KAAU,EACzC,IAGMumK,GAAa,MAAnB,MAAMA,GACF926B,cACIxC,KAAKs5vB,gBAAkB,GACvBt5vB,KAAKykvB,WAAa,EAClBzkvB,KAAKu56B,cAAgB,GACrBv56B,KAAKw56B,WAAa,EAClBx56B,KAAKw95B,eAAiB6b,EAC1B,CACA18wB,OACI38J,KAAKy56B,gBACLz56B,KAAKu56B,cAAgBv56B,KAAK27I,MAAMj0D,OAAS,GACzC,MAAMgy1B,EAAY156B,KAAKu56B,cAAcp31B,OAAOzO,IAAS44F,GAAU54F,EAAK+lH,WACpEz5L,KAAK256B,iBAAiBD,EAC1B,CACA,QAAIry3B,GACA,OAAO9jD,MAAMC,KAAKxD,KAAKuwlB,SAC3B,CACAqpV,kBAAkBly1B,EAAOo3jB,EAASzya,GAC9B,MAAMq/rB,GAAchk1B,EAAM/mF,IAAIX,KAAKykvB,YACnC,IAAIxjD,GACY,YAAZniD,EACwB,IAApB9+oB,KAAKykvB,YACLxjD,GAAWv5mB,EAAM/mF,IAAI+mF,EAAM7U,OAAS,GACpC7yE,KAAKykvB,WAAa/8pB,EAAM7U,OAAS,IAGjCounB,GAAWv5mB,EAAM/mF,IAAIX,KAAKykvB,WAAa,GACvCzkvB,KAAKykvB,WAAazkvB,KAAKykvB,WAAa,GAGvB,cAAZ3lG,IACD9+oB,KAAKykvB,aAAe/8pB,EAAM7U,OAAS,GACnCounB,GAAWv5mB,EAAM/mF,IAAI,GACrBX,KAAKykvB,WAAa,IAGlBxjD,GAAWv5mB,EAAM/mF,IAAIX,KAAKykvB,WAAa,GACvCzkvB,KAAKykvB,WAAazkvB,KAAKykvB,WAAa,IAG5Cp4gB,EAASwyC,aAAa6spB,GAAYhmtB,cAAe,WAAY,MAC7D2mB,EAASwyC,aAAaoib,GAASv7e,cAAe,WAAY,KAC1Du7e,GAASv7e,cAAcE,OAC3B,CACA+ztB,iBAAiBjy1B,EAAOq8C,EAAQ,GAC5Br8C,EAAMxT,QAASR,IACX1zE,KAAK40sB,aAAalhoB,GAClB,MAAMmhE,GAAW70I,KAAKkvP,aAAax7K,GAC7Bu+mB,GAAajyrB,KAAKw95B,eAAe9p1B,GACvC1zE,KAAKuwlB,SAAS98gB,IAAI,CACdC,KAAMA,EACNG,MAAO7zE,KAAKw56B,aACZz1yB,MAAOA,EACP89gB,YAAahtgB,GAAShiE,OAAS,EAC/Bo/mB,WAAYA,KAEZp9iB,GAAShiE,OAAS,GAAKo/mB,IACvBjyrB,KAAK256B,iBAAiB9kyB,GAAU9Q,EAAQ,EAAC,EAGrD,CACA01yB,gBACIz56B,KAAKw56B,WAAa,EAClBx56B,KAAKuwlB,SAAW,IAAIrslB,GACxB,CACAgrP,aAAax7K,GACT,OAAO1zE,KAAKu56B,cAAcp31B,OAAO3S,GACtB88F,GAAU98F,EAAEiqH,WAAcjqH,EAAEiqH,WAAa/lH,EAAKhwE,GAE7D,CACAw7vB,SAAS26K,GACL756B,KAAKs5vB,gBAAkB,CAACugL,GACxB,MAAMC,EAAS956B,KAAK27I,MAChBm+xB,EAAOC,eAAiBD,EAAOE,WAC/BF,EAAOn8rB,QAAO,EAEtB,CACAi3d,aAAalhoB,GAC2B,IAAhC1zE,KAAKs5vB,gBAAgBzmrB,QAAgBa,EAAK+tX,UAC1Czhc,KAAKs5vB,gBAAgB3lrB,KAAK3zE,KAAKw56B,WAEvC,CACA35K,iBACI7/vB,KAAKs5vB,gBAAkB,EAC3B,EAEJggL,UAAcjs3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFojrB,GAAa,EACxHA,GAAcnjrB,WAp0IqFppM,MAAE,CAAAgnC,MAo0IUul1B,GAAals3B,QAAbks3B,GAAajs3B,YAvFtHis3B,EAAa,KA6OnB,MAAMW,GAAoB,0BAapBC,GAAaA,CAAC5ruB,GAASknD,IAAalnD,GAAQqX,cAAc6vC,GAKhE,MAAM2krB,WAA8B99M,KAIhC75tB,YAAYmtH,GACRluH,QACA+0E,OAAO8mI,OAAOt9M,KAAM2vH,EACxB,EAIJ,IAGMyqzB,GAAmB,MAAzB,MAAMA,GACF536B,YAAY636B,EAAe/ruB,EAAS+9B,GAChCrsO,KAAKq66B,cAAgBA,EACrBr66B,KAAKsuM,QAAUA,EACftuM,KAAKqsO,SAAWA,EAChBrsO,KAAK2+3B,YAAch6Y,MACnB3kf,KAAK8+3B,cAAgBj6Y,KACzB,CACA,iBAAIqtN,GACA,OAAOlysB,KAAK0zE,KAAKmoF,QACrB,CACA,iBAAI23iB,GACA,OAAOxzsB,KAAKq66B,cAAc/gL,gBAAgB76qB,QAAQz+E,KAAK6zE,QAAU,CACrE,CACA,SAAIqgC,GACA,OAAOl0G,KAAK0zE,KAAK0b,KAAOpvF,KAAK0zE,KAAK0b,KAAO,IAC7C,CACA0iI,kBACI,MACMolM,EAAOgjhB,GADAl66B,KAAKsuM,QAAQoX,cA7CL,kBA+CjBwxM,GACAl3Z,KAAKqsO,SAAS0yC,gBAAgBm4I,EAAM,WAE5C,CACA,eAAIglT,GACA,GAAIl8sB,KAAK0zE,KAAKqgC,KAEV,MAAO,GADW/zG,KAAK0zE,KAAKqgC,KAAKztD,QAAQ,OAAQ,KAGzD,CACA,mBAAIs32B,GACA,GAAI595B,KAAK0zE,KAAKytN,WAAanhS,KAAK0zE,KAAKqgC,KACjC,MAAO,GAAG/zG,KAAK0zE,KAAKytN,WAE5B,CACA,qBAAIqnmB,GACA,IAAKxo4B,KAAK0zE,KAAKqgC,MAAQ/zG,KAAK0zE,KAAKytN,UAC7B,OAAOnhS,KAAK0zE,KAAKytN,SAEzB,CACA,QAAIztN,GACA,OAAO1zE,KAAKky2B,SAASx+xB,IACzB,EAEJ0m2B,UAAoB/s3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFkkrB,IAtiJdrt3B,MAsiJmDus3B,IAtiJnDvs3B,MAsiJ6EA,OAtiJ7EA,MAsiJuGA,OAAY,EACtNqt3B,GAAoBngX,UAviJ+EltgB,MAAE,CAAA5jD,KAuiJAix6B,GAAmBn6tB,UAAA,4BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAviJrB/hE,MAAE,gBAAAonF,EAAA+9jB,cAAFnlpB,CAAE,eAAAonF,EAAAq/jB,cAAFzmpB,CAAE,aAAAonF,EAAAjgC,OAAFnnD,MAAE,aAAAonF,EAAA+9jB,cAAFnlpB,CAuiJqB,aAAAonF,EAAAq/jB,eAAA,EAAAtzf,OAAA,CAAAgypB,SAAA,WAAAr+xB,MAAA,QAAA81nB,aAAA,eAAAw0N,KAAA,OAAAz2J,SAAA,WAAA7rmB,SAAA,WAAA6tiB,SAAA,WAAAiC,SAAA,YAAAlvd,YAAA,EAAA1nJ,SAAA,CAviJrBhoC,OAAEmvL,MAAAm2gB,GAAAjyiB,MAAA,EAAAC,KAAA,EAAAC,OAAA,wZAAAC,SAAA,SAAAzxF,EAAAqlB,GAkjJ/D,GAljJ+D,EAAArlB,GAAF/hE,MAAE,EAAA2w2B,GAAA,WAAF3w2B,CA+iJpF,EAAAmx2B,GAAA,yBA/iJoFnx2B,OAkjJ7D,EAAA+hE,EAAA,OAAAwrzB,EAljJ6Dvt3B,MAAE,GAAFA,MAAE,OAAAonF,EAAAw1jB,aAAF58oB,CAwiJzD,WAAAut3B,EAAoB,GAAAz7uB,aAAA,CA0CGwgX,KAAiG2C,KAAoKsvJ,MAAoBzrf,cAAA,IAxFpVu0tB,EAAmB,KAiLnBG,GAAmB,MAAzB,MAAMA,GACF/36B,YAAY636B,EAAehusB,EAAUoiV,EAAQngX,IACzCtuM,KAAKq66B,cAAgBA,EACrBr66B,KAAKqsO,SAAWA,EAChBrsO,KAAKyujB,OAASA,EACdzujB,KAAKsuM,QAAUA,GACftuM,KAAKqnD,KAAO,GACZrnD,KAAK8/W,OAAS,IAAI1gK,MAClBp/M,KAAKq1nB,cAAgB,IAAI99F,KAC7B,CACAj4U,WACIt/M,KAAK6suB,eACT,CACA1ohB,cACInkN,KAAKq1nB,cAAc3mjB,aACvB,CACA8r2B,aAAar3oB,EAAQ+ukB,GACjB,OAAOA,EAASx+xB,KAAKhwE,IAAMwu2B,EAASr+xB,KACxC,CACAg5pB,gBACS7suB,KAAKsuM,SAGVtuM,KAAKyujB,OAAOpuS,kBAAkB,KAC1B,MAAM36D,EAAgB1lN,KAAKsuM,QAAQoX,cACnC1lN,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAO7mB,EAAe,QAAS1lN,KAAKm+sB,aAAap9nB,KAAK/gF,QAC3FA,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAO7mB,EAAe,UAAY/hN,IACnE,MACM826B,GAAkB926B,EAAE4ssB,UAAYC,KAAKuG,SAAWpzsB,EAAE4ssB,UAAYC,KAAKsG,UADlDnzsB,EAAE4ssB,UAAYC,KAAKE,OAAS/ssB,EAAE4ssB,UAAYC,KAAKC,MAGlEzwsB,KAAK066B,sBAAsB/26B,GAEtB826B,IACD926B,EAAEs5F,OAAOg0J,UAAU9M,SAAS,mBAC5BxgP,EAAEqgP,iBAEFhkP,KAAKq66B,cAAcT,kBAAkB556B,KAAK0nF,MAD1B/jF,EAAE4ssB,UAAYC,KAAKuG,QAAU,UAAY,YACC/2sB,KAAKqsO,UACnE,GAEN,EAEV,CACA8xe,aAAax6sB,GACT,MAAMg36B,EAAc366B,KAAK466B,mBAAmBj36B,EAAEs5F,QACxCi1wB,EAAWly2B,KAAKqnD,KAAKsz3B,GAErBE,GADc766B,KAAKqnD,KAAK86B,OAAOuF,KAAUA,GAAMhU,KAAKqqL,WACpBq6G,UAAU1kS,IAAQA,GAAKG,QAAU8m2B,GACvE,IAAKzoE,EACD,OAEJ,GAAIA,EAASx+xB,KAAKmoF,SAEd,YADAl4J,EAAEqgP,iBAGN,MAAMr0H,GAAO,CACT97C,MAAOq+xB,EAASr+xB,MAChBH,KAAMw+xB,EAASx+xB,KACfy0N,cAAexkS,GAEnB3D,KAAKyujB,OAAO7xa,IAAI,KACZ,MAAMvoD,GAAQ,IAAI8l1B,GAAsBxqzB,IACxC3vH,KAAK8/W,OAAO9vN,KAAK37D,IACZA,GAAMmqM,uBACPx+R,KAAKq66B,cAAc51L,WAAao2L,GAChC766B,KAAKq66B,cAAcn7K,SAASy7K,GAC5B366B,KAAKq66B,cAAc19wB,OACnB38J,KAAKqnD,KAAOrnD,KAAKq66B,cAAchz3B,OAG3C,CACAqz3B,sBAAsB/26B,GAClB3D,KAAKm+sB,aAAax6sB,GAClB,MAAMuzZ,EAAOgjhB,GAAWl66B,KAAKsuM,QAAQoX,cAhRT,0CAiR5B,OAAIwxM,GACAA,EAAKrrL,SAEF,CACX,CACA+usB,mBAAmB390B,GACf,MAAMvpB,EAAO+rxB,GAAYxiwB,EAAQg90B,GAAmBj66B,KAAKsuM,QAAQoX,eACjE,GAAIhyI,EACA,OAAO+mqB,GAAU/mqB,EAAMum2B,GAE/B,EAEJM,UAAoBlt3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFqkrB,IAhwJdxt3B,MAgwJmDus3B,IAhwJnDvs3B,MAgwJ6EA,OAhwJ7EA,MAgwJsGA,OAhwJtGA,MAgwJ4HA,OAAa,EAC5Owt3B,GAAoBtgX,UAjwJ+EltgB,MAAE,CAAA5jD,KAiwJAox6B,GAAmBt6tB,UAAA,4BAAAyW,UAAA,SAAA5nG,EAAAqlB,GAA0R,GAA1R,EAAArlB,GAjwJrB/hE,MAiwJuPqt3B,GAAmB,EAA2Bx7V,OAAU,EAAA9vd,EAAA,KAAAw6iB,EAjwJ/Sv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAzsD,MAAA4hlB,EAAA,GAAAppd,OAAA,CAAAypf,aAAA,eAAAw0N,KAAA,OAAAz2J,SAAA,WAAArgtB,KAAA,QAAA84J,QAAA,CAAA2/J,OAAA,UAAArjI,YAAA,EAAA1nJ,SAAA,CAAFhoC,OAAEmvL,MAAAq2gB,GAAAnyiB,MAAA,EAAAC,KAAA,EAAAC,OAAA,qeAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,EAAAyx2B,GAAA,sBAiwJma,EAAA1vyB,GAjwJra/hE,MAAE,UAAAonF,EAAA9sF,KAAF0F,CAiwJ6X,eAAAonF,EAAAqmyB,aAAsB,EAAA37uB,aAAA,CAAg+Bw7gB,KAAwHh7J,KAAiG+6X,GAAwLh9X,KAA2FkE,MAAOz7V,cAAA,IAtFn8D00tB,EAAmB,KAwIzB,MAAMO,GAAoB,CAAE3x6B,KAAM,QAASu1H,SAAU,KACrD,IA+BMq8yB,GAAe,MAArB,MAAMA,GACFv46B,YAAY8rM,EAAS63D,EAAS8sc,EAAqBonO,IAC/Cr66B,KAAKsuM,QAAUA,EACftuM,KAAKmmQ,QAAUA,EACfnmQ,KAAKizsB,oBAAsBA,EAC3BjzsB,KAAKq66B,cAAgBA,GACrBr66B,KAAK0xtB,aAAc,EAQnB1xtB,KAAKuuF,KAAO,UASZvuF,KAAKi0S,SAAW,QAKhBj0S,KAAKm+5B,MAAO,EAIZn+5B,KAAK0nwB,UAAW,EAKhB1nwB,KAAKq7R,MAAQ,IAKbr7R,KAAKg76B,UAAY,GAKjBh76B,KAAK+56B,cAAe,EAIpB/56B,KAAK0nF,MAAQ,GAab1nF,KAAKmxP,UAAY2prB,GAIjB966B,KAAKgwS,OAAS,IAAI5wF,MAIlBp/M,KAAK0xrB,SAAW,IAAItye,MAIpBp/M,KAAK8/W,OAAS,IAAI1gK,MAKlBp/M,KAAKi76B,eAAiB,IAAI77tB,MAI1Bp/M,KAAKwxtB,sBAAuB,EAC5BxxtB,KAAKo9sB,aAAe,IAAIh+f,MACxBp/M,KAAK6jT,KAAM,EACX,MAAMl4L,MAAUgjlB,KAAgB5B,IAChC/ssB,KAAKwxtB,wBAAuBI,MAAuBjmmB,IACnD3rH,KAAK60sB,uBAAyB70sB,KAAKizsB,oBAAoBtsgB,QAAQn/I,UAAU,EAAGq8P,WACxE7jT,KAAK6jT,IAAMA,GACX7jT,KAAK+vV,UAAY/vV,KAAK6jT,IAAM,MAAQ,QAExC7jT,KAAKq66B,cAAc1+xB,MAAQ37I,IAC/B,CACA,sBAAIk76B,GACA,MAAyB,UAAlBl76B,KAAKi0S,QAChB,CACA,oBAAIknoB,GACA,MAAyB,QAAlBn76B,KAAKi0S,QAChB,CACA,0BAAImnoB,GACA,GAAkB,SAAdp76B,KAAKuuF,KAGT,OAAIvuF,KAAK0nwB,UAAY1nwB,KAAKg66B,UACf,kBAEJ,mBACX,CACA,cAAIqB,GACA,GAAkB,YAAdr76B,KAAKuuF,KAGT,OAAKvuF,KAAK0nwB,UAAa1nwB,KAAKg66B,UAGrBh66B,KAAKm/5B,YAFD,CAGf,CAIA,kBAAI3B,CAAexvyB,GACf,GAAI2qgB,OAAarsd,GAAUt+C,IAAqB,mBAAPA,EACrC,MAAM,IAAIlqH,MAAM,mDAAmDsxE,KAAK2nB,UAAUixB,OAEtFhuH,KAAKq66B,cAAc7c,eAAiBxvyB,CACxC,CACA,kBAAIwvyB,GACA,OAAOx95B,KAAKq66B,cAAc7c,cAC9B,CACAj+sB,YAAY5Y,GACJA,GAAWA,EAAQj/G,QACnB1nF,KAAKq66B,cAAcx6K,iBACnB7/vB,KAAKq66B,cAAc19wB,OACnB38J,KAAK8+5B,UAAY9+5B,KAAKq66B,cAAchz3B,KAE5C,CACA88J,cACQnkN,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,aAEpC,CAIA,aAAIsr2B,GACA,OAAOh66B,KAAKm+5B,OAASn+5B,KAAK0nwB,QAC9B,CAIA,eAAIy3J,GACA,OAAOn/5B,KAAKg66B,UAAYh66B,KAAKg76B,UAAYh76B,KAAKq7R,KAClD,CAMA19C,OAAO+phB,GACH,MAAM/zX,EAAW3zY,KAAK0nwB,SAChB9irB,EAAU0nF,GAAUo7lB,GAAYA,GAAY/zX,EAC9C/uT,IAAY+uT,KAGA,IAAZ/uT,EACA5kF,KAAKs76B,aAAY,IAEA,IAAZ121B,IAAsB5kF,KAAKmxP,WAChCnxP,KAAKs76B,aAAY,GAEjBt76B,KAAKmxP,WACLnxP,KAAKo9sB,aAAax2pB,QAAKojD,KAAK,IACvBxiD,UAAU,KAAQxnD,KAAKu76B,eAAe321B,EAAO,GAClD5kF,KAAKswP,QAAQ1rK,IAGb5kF,KAAK4kF,EAAU,SAAW,YAAYorE,OAE9C,CAIAkvmB,SAASv7vB,GACL3D,KAAK8/W,OAAO9vN,KAAKx5E,OAAO8mI,OAAO35M,EAAG,CAAEqjS,OAAQhnS,OAChD,CACAu76B,eAAeC,GACPA,EACAx76B,KAAKgwS,OAAOhgJ,QAGZhwJ,KAAKs76B,aAAY,GACjBt76B,KAAK0xrB,SAAS1hiB,OAEtB,CACAsrxB,YAAYp76B,GACRF,KAAK0nwB,SAAWxnwB,EAChBF,KAAKi76B,eAAejrxB,KAAK9vJ,EAC7B,CACAowP,QAAQo3gB,GACJ,MAAM71hB,EAAW,CACbtjJ,KAAMvuF,KAAKuuF,KACX4v0B,KAAMn+5B,KAAKm+5B,KACX6c,UAAWh76B,KAAKg76B,UAChB3/oB,MAAOr7R,KAAKq7R,MACZwoB,IAAK7jT,KAAK6jT,IACV5P,SAAUj0S,KAAKi0S,SACf9iD,UAAsC,kBAAnBnxP,KAAKmxP,UAA2BnxP,KAAKmxP,UAAY2prB,IAElE3prB,EAAYu2gB,EA7nB1B,SAAS+zK,GAAgB5psB,IACrB,MAAMnzG,EAAWmzG,GAASsf,UAAUzyH,SAC9B28J,EAAQxpD,GAASwpD,MACjB2/oB,EAAYnpsB,GAASmpsB,UACrBzs1B,EAAOsjJ,GAAStjJ,KAChB4v0B,GAAOtsrB,GAASssrB,KAChBt6mB,GAAMhyE,GAASgyE,IACf5P,GAAWpiE,GAASoiE,SAC1B,OAAIkqnB,IAAiB,SAAT5v0B,EArGhB,SAASmt1B,GAAeh9yB,GAAU28J,EAAO2/oB,GACrC,MAAO,IACHtzrB,OAAM,CAAEuvI,SAAU,SAAU0kjB,UAAW,GAAGX,SAAe,EACzD1qrB,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEi0rB,UAAW,GAAGtgpB,SAE/D,CAiGeqgpB,CAAeh9yB,EAAU28J,EAAO2/oB,GAEtC7c,IAAiB,SAAT5v0B,EAGR4v0B,IAAiB,YAAT5v0B,EAGT4v0B,IAAiB,YAAT5v0B,EA3FhB,SAASqt1B,GAAkBl9yB,GAAU28J,EAAO2/oB,GACxC,MAAO,IACHtzrB,OAAM,CAAE2zC,MAAO,GAAG2/oB,SAAe,EACjC1qrB,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAU57F,MAAO,GAAGA,SAE/E,CAuFeugpB,CAAkBl9yB,EAAU28J,EAAO2/oB,QAD9C,EAFWn3nB,GA9Df,SAASg4nB,GAAiBn9yB,IACtB,MAAO,IACHgpH,OAAM,CAAElrB,UAAW,sBAAoB,EACvC8zB,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAUz6J,UAAW,mBAEhF,CAyDqBq/sB,CAAiBn9yB,GArDtC,SAASo9yB,GAAcp9yB,GAAUu1K,GAE7B,MAAO,IACHvsD,OAAM,CAAElrB,UAAW,cAFW,QAAby3E,EAAqB,QAAU,aAEE,EAClD3jD,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAUz6J,UAAW,mBAEhF,CA+CkDs/sB,CAAcp9yB,EAAUu1K,IAhF1E,SAAS8noB,GAAWr9yB,GAAU28J,GAC1B,MAAO,IACH3zC,OAAM,CAAEuvI,SAAU,SAAU0kjB,UAAW,SAAO,EAC9CrrrB,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEi0rB,UAAW,GAAGtgpB,SAE/D,CAwEe0gpB,CAAWr9yB,EAAU28J,EAQpC,CAymBqCogpB,CAAgB5psB,GArmBrD,SAASmqsB,GAAkBnqsB,IACvB,MAAMnzG,EAAWmzG,GAASsf,UAAUzyH,SAC9B28J,EAAQxpD,GAASwpD,MACjB2/oB,EAAYnpsB,GAASmpsB,UACrBzs1B,EAAOsjJ,GAAStjJ,KAChB4v0B,GAAOtsrB,GAASssrB,KAChBt6mB,GAAMhyE,GAASgyE,IACf5P,GAAWpiE,GAASoiE,SAC1B,OAAIkqnB,IAAiB,SAAT5v0B,EApHhB,SAAS0t1B,GAAiBv9yB,GAAU28J,EAAO2/oB,GACvC,MAAO,IACHtzrB,OAAM,CAAEuvI,SAAU,SAAU0kjB,UAAW,GAAGtgpB,SAAW,EACrD/qC,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEi0rB,UAAW,GAAGX,SAE/D,CAgHeiB,CAAiBv9yB,EAAU28J,EAAO2/oB,GAExC7c,IAAiB,SAAT5v0B,EAGR4v0B,IAAiB,YAAT5v0B,EAGT4v0B,IAAiB,YAAT5v0B,EArEhB,SAAS2t1B,GAAoBx9yB,GAAU28J,EAAO2/oB,GAC1C,MAAO,IACHtzrB,OAAM,CAAE2zC,MAAO,GAAGA,SAAW,EAC7B/qC,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAU57F,MAAO,GAAG2/oB,SAE/E,CAiEekB,CAAoBx9yB,EAAU28J,EAAO2/oB,QADhD,EAFWn3nB,GAhDf,SAASs4nB,GAAmBz9yB,IACxB,MAAO,IACHgpH,OAAM,CAAElrB,UAAW,mBAAiB,EACpC8zB,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAUz6J,UAAW,sBAEhF,CA2CqB2/sB,CAAmBz9yB,GA1DxC,SAAS09yB,GAAgB19yB,GAAUu1K,GAC/B,MAAMoooB,EAA4B,QAAbpooB,EAAqB,QAAU,OACpD,MAAO,IACHvsD,OAAM,CAAElrB,UAAW,mBAAiB,EACpC8zB,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAUz6J,UAAW,cAAc6/sB,QAE9F,CAoDoDD,CAAgB19yB,EAAUu1K,IA/F9E,SAASqooB,GAAa59yB,GAAU28J,GAC5B,MAAO,IACH3zC,OAAM,CAAEi0rB,UAAW,GAAGtgpB,SAAW,EACjC/qC,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAU0kjB,UAAW,SAEhF,CAuFeW,CAAa59yB,EAAU28J,EAQtC,CAilBiE2gpB,CAAkBnqsB,GAC5D7xO,KAAKstuB,aAAan8e,EAAWnxP,KAAKsuM,QAAQoX,eAClD4mD,MACX,CACAghe,aAAan8e,EAAW67e,GAEpB,IAAIj5e,GADY/zP,KAAKmmQ,QAAQ5mK,MAAM4xJ,GACdzxJ,OAAOstoB,GAC5Bj5e,UAAOG,OAAO,KACNH,KACA/zP,KAAKo9sB,aAAaptjB,OAClB+jG,GAAOmY,UACPnY,GAAS,QAGVA,EACX,EAEJgnrB,UAAgB1t3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF6krB,IAvjKVhu3B,MAujK2CA,OAvjK3CA,MAujKqEqrvB,OAvjKrErrvB,MAujKuGC,MAvjKvGD,MAujK0Ius3B,IAAa,EAC1PyB,GAAgB9gX,UAxjKmFltgB,MAAE,CAAA5jD,KAwjKJ4x6B,GAAe96tB,UAAA,mBAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAOwT,GAPxT,EAAA5le,IAxjKb/hE,MAAE2niB,EA+jK1BukV,GAAuB,GA/jKCls3B,MAAE2niB,EA+jK8E0kV,GAA6B,GA/jK7Grs3B,MAAE2niB,EA+jK4LykV,GAA6B,GA/jK3Nps3B,MAAE2niB,EA+jKwSwkV,GAA2B,MAAApqzB,EAAA,KAAAw6iB,GA/jKrUv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAA8qxB,eAAA31P,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAm3mB,eAAAhiF,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,EAAA42mB,eAAAzhF,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAw1jB,aAAArgC,GAAAn9d,MAAA,GAAAy1B,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,MAAAonF,EAAA47M,WAAFhjS,MAAE,YAAAonF,EAAAinyB,uBAAFru3B,CAwjKa,aAAAonF,EAAAknyB,WAAA,MAxjKbtu3B,MAAE,WAAAonF,EAAAu9kB,YAAF3kqB,CAwjKa,iBAAAonF,EAAA+myB,mBAxjKbnu3B,CAwjKa,eAAAonF,EAAAgnyB,kBAAA,EAAAj7tB,OAAA,CAAA3xH,KAAA,OAAA0lN,SAAA,WAAAkqnB,KAAA,OAAAz2J,SAAA,WAAArse,MAAA,QAAA2/oB,UAAA,YAAAjB,aAAA,eAAAry1B,MAAA,QAAA810B,eAAA,iBAAArsqB,UAAA,aAAAhxC,QAAA,CAAA6vF,OAAA,SAAA0hZ,SAAA,WAAA5xU,OAAA,SAAAm7jB,eAAA,kBAAAz8rB,SAAA,gBAAA/B,YAAA,EAAA1nJ,SAAA,CAxjKbhoC,MAwjKgrB,CAC3wBqkpB,KACAkoO,GACA,CACIxn2B,QAASu/nB,KACT7vb,SAAU,kBA7jK6Ez0N,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,OAAA,qTAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,EAAAmy2B,GAAA,YAAFny2B,CAgkKL,EAAAqy2B,GAAA,aA2B9B,EAAAtwyB,IA3lKmC/hE,MAAE,OAAAonF,EAAAuznB,UAAAvznB,EAAAgqxB,MAAFpx2B,cAAE,OAAAonF,EAAAq9kB,sBA2lKvC,EAAA3yhB,aAAA,CACGwgX,KAAiG2C,KAAoKu4X,GAA4JrmN,MAAyBrugB,cAAA,IAzQrfk1tB,EAAe,KAuXfwB,GAAwB,MAA9B,MAAMA,GACF/56B,YAAYywsB,GACRjzsB,KAAKizsB,oBAAsBA,EAC3BjzsB,KAAK6jT,KAAM,EACX7jT,KAAK60sB,uBAAyB70sB,KAAKizsB,oBAAoBtsgB,QAAQn/I,UAAU,EAAGq8P,UACxE7jT,KAAK6jT,IAAMA,EACX7jT,KAAK+vV,UAAY/vV,KAAK6jT,IAAM,MAAQ,OAE5C,CACA,aAAIuvZ,GACA,OAAO,CACX,CACA,gBAAIopO,GACA,MAA4B,YAArBx86B,KAAK856B,OAAOvr1B,IACvB,CACA,aAAIku1B,GACA,OAAOz86B,KAAK856B,OAAO3b,OAASn+5B,KAAK856B,OAAOpyK,QAC5C,CACA,aAAIg1K,GACA,MAA4B,SAArB186B,KAAK856B,OAAOvr1B,IACvB,CACA,mBAAIou1B,GACA,OAAO386B,KAAK856B,OAAOpyK,QACvB,CACAvjjB,cACQnkN,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,aAEpC,CAIA,WAAI8pO,GACA,OAAOlsI,GAAUtsK,KAAK856B,SAClB956B,KAAK856B,OAAOpyK,UACS,YAArB1nwB,KAAK856B,OAAOvr1B,IACpB,CAIA+w0B,cACQt/5B,KAAKw4S,SAAWx4S,KAAK856B,OAAOC,cAC5B/56B,KAAK856B,OAAOn8rB,QAAO,EAE3B,EAEJ4+rB,UAAyBlv3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFqmrB,IAxvKnBxv3B,MAwvK6DC,MAAsB,EACtLuv3B,GAAyBtiX,UAzvK0EltgB,MAAE,CAAA5jD,KAyvKKoz6B,GAAwBt8tB,UAAA,6BAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAMhD,GANgD,EAAA5le,GAzvK/B/hE,MAAE2niB,EA+vKlCqmV,GAAe,KAAAjszB,EAAA,KAAAw6iB,GA/vKiBv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAA2lyB,OAAAxwQ,GAAAn9d,MAAA,GAAAy1B,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,MAAAonF,EAAA47M,WAAFhjS,MAAE,qBAAAonF,EAAAi/jB,UAAFrmpB,CAyvK+B,mBAAAonF,EAAAqoyB,aAzvK/Bzv3B,CAyvK+B,gBAAAonF,EAAAsoyB,UAzvK/B1v3B,CAyvK+B,gBAAAonF,EAAAuoyB,UAzvK/B3v3B,CAyvK+B,oBAAAonF,EAAAwoyB,iBAAA,EAAAlgsB,YAAA,EAAA1nJ,SAAA,CAzvK/BhoC,MAyvK8X,CACzdqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,4BA7vK6Ez0N,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAC,OAAA,qEAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,EAAAsy2B,GAAA,aAAFty2B,MAAE,IAiwKpE,EAAA+hE,GAjwKkE/hE,MAAE,OAAAonF,EAAAqkK,QAgwKxD,EAAA35G,aAAA,CAEoBwgX,MAAIx5V,cAAA,IAxD/D02tB,EAAwB,KAqGxBK,GAAsB,MAA5B,MAAMA,GACFp66B,cACIxC,KAAK0xtB,aAAc,CACvB,EAEJkrN,UAAuBvv3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF0mrB,GAAsB,EAC1IA,GAAuB3iX,UArzK4EltgB,MAAE,CAAA5jD,KAqzKGyz6B,GAAsB38tB,UAAA,2BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GArzK3B/hE,MAAE,mBAAAonF,EAAAu9kB,YAqzKyB,EAAAj1e,YAAA,EAAA1nJ,SAAA,CArzK3BhoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GAszKpE,EAAA84J,cAAA,IAP3B+2tB,EAAsB,KA0CtBC,GAA4B,MAAlC,MAAMA,GACFr66B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJm+rB,UAA6Bxv3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF2mrB,IA91KvB9v3B,MA81KqEA,MAAc,KACtL8v3B,GAA6B5zY,UA/1KsEl8e,MAAE,CAAA5jD,KA+1KS0z6B,GAA4B58tB,UAAA,qCAAAw8B,YAAA,IANpIogsB,EAA4B,KAsB5BC,GAA6B,MAAnC,MAAMA,GACFt66B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJo+rB,UAA8Bzv3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF4mrB,IAp3KxB/v3B,MAo3KuEA,MAAc,KACxL+v3B,GAA8B7zY,UAr3KqEl8e,MAAE,CAAA5jD,KAq3KU2z6B,GAA6B78tB,UAAA,sCAAAw8B,YAAA,IANtIqgsB,EAA6B,KAsB7BC,GAAiC,MAAvC,MAAMA,GACFv66B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJq+rB,UAAkC1v3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF6mrB,IA14K5Bhw3B,MA04K+EA,MAAc,KAChMgw3B,GAAkC9zY,UA34KiEl8e,MAAE,CAAA5jD,KA24Kc4z6B,GAAiC98tB,UAAA,0CAAAw8B,YAAA,IAN9IsgsB,EAAiC,KAiBvC,MACMrgyB,GAAW,CAAC,EAClBA,GAAS8zjB,KAAKuC,WAAa,OAC3Br2jB,GAAS8zjB,KAAKsC,YAAc,QAC5Bp2jB,GAAS8zjB,KAAKuG,SAAW,KACzBr6jB,GAAS8zjB,KAAKsG,WAAa,OAC3Bp6jB,GAAS8zjB,KAAK0G,MAAQ,OACtBx6jB,GAAS8zjB,KAAK2G,KAAO,MACrBz6jB,GAAS8zjB,KAAKE,OAAS,QACvBh0jB,GAAS8zjB,KAAKC,OAAS,QACvB,MAAMusO,GAAcxm2B,OAAO8mI,OAAO,CAAC,EAAG5gE,IACtCsgyB,GAAYxsO,KAAKuC,WAAa,QAC9BiqO,GAAYxsO,KAAKsC,YAAc,OAM/B,IAAImqO,GAAyB,cAAmC5gN,KAI5D75tB,YAAYmtH,GACRluH,QACA+0E,OAAO8mI,OAAOt9M,KAAM2vH,EACxB,GAKEutzB,GAAc,MAApB,MAAMA,GACF166B,YAAY2rsB,EAAc1/I,EAAQ8hG,GAC9BvwpB,KAAKmusB,aAAeA,EACpBnusB,KAAKyujB,OAASA,EACdzujB,KAAKuwpB,eAAiBA,EACtBvwpB,KAAKsnP,YAnCgB,EAoCrBtnP,KAAKm96B,kBAAoB,IAAI/9tB,MAC7Bp/M,KAAKo96B,kBAAoB,IAAIh+tB,KACjC,CACA,YAAI1iE,GACA,OAAO18I,KAAKmusB,aAAatqZ,IAAMm5nB,GAActgyB,EACjD,CACAsT,KAAK37D,EAAO0yM,GACR,MAAMs2oB,EAAUr96B,KAAK27I,MACrB,SAAIq1jB,MAAaqsO,EAAQhp1B,KACrBgp1B,EAAQhp1B,GAAO27D,KAAK+2I,GAEjBA,EAAUvI,oBACrB,CACA8+oB,WAAWC,EAAYp1oB,GACnB,MAAMpB,EAAY,IAAIk2oB,GAAuB,CACzCpp2B,MAAO0p2B,EACPlyrB,KAAMrrP,KAAK27I,MAAMisG,MAAM21rB,GACvBp1oB,cAAeA,EACfnB,OAAQhnS,KAAK27I,QAEjB37I,KAAKyujB,OAAO7xa,IAAI,KACP58I,KAAKgwJ,KAAK,WAAY+2I,KACvB/mS,KAAKsnP,YAAci2rB,EACnBv96B,KAAK27I,MAAM6hyB,kBAAqBxtxB,KAAKutxB,GACrCv96B,KAAKuwpB,eAAe9/b,gBAAc,EAG9C,CACAgttB,gBACIz96B,KAAKm96B,kBAAkBntxB,MAC3B,CACA67iB,QAAQlosB,GACJ,MACMoqH,EAAU/tH,KAAK08I,SAAS/4I,EAAE4ssB,SAC3BjkiB,GAFWtsK,KAAKyh6B,aAAezh6B,KAAKsnP,cAKrCv5H,IACApqH,EAAEqgP,iBACFhkP,KAAK+tH,GAASpqH,GAEtB,CACA2/H,OACStjI,KAAK4nyB,cAGV5nyB,KAAK096B,eACT,CACAn6yB,QACSvjI,KAAK4nyB,cAGV5nyB,KAAK296B,eACT,CACAn5oB,KACQxkS,KAAK4nyB,cAGT5nyB,KAAK096B,eACT,CACAp5oB,OACQtkS,KAAK4nyB,cAGT5nyB,KAAK296B,eACT,CACA98K,OACI7gwB,KAAKyh6B,YAAc,EACnBzh6B,KAAKo96B,kBAAkBptxB,MAC3B,CACArnB,MACI3oI,KAAKyh6B,YAAczh6B,KAAK27I,MAAMisG,MAAM/0K,OAAS,EAC7C7yE,KAAKo96B,kBAAkBptxB,MAC3B,CACAumjB,MAAMlinB,GACEr0F,KAAKyh6B,cAAgBzh6B,KAAKsnP,cAG1BtnP,KAAK496B,eAAe596B,KAAKyh6B,cAGzBzh6B,KAAK27I,MAAMw4J,SAAsD,IAA5Cn0S,KAAK696B,iBAAiB796B,KAAKyh6B,cAGpDzh6B,KAAKs96B,WAAWt96B,KAAKyh6B,YAAapt0B,GACtC,CACAuxH,MAAMk4tB,GACF996B,KAAKyh6B,YAAcqc,CACvB,CACAH,gBACQ396B,KAAKyh6B,YAAczh6B,KAAK27I,MAAMisG,MAAM/0K,SACpC7yE,KAAKyh6B,aAAe,EACpBzh6B,KAAKo96B,kBAAkBptxB,OAE/B,CACA0txB,gBACQ196B,KAAKyh6B,YAAc,IACnBzh6B,KAAKyh6B,aAAe,EACpBzh6B,KAAKo96B,kBAAkBptxB,OAE/B,CACA4txB,eAAe/p2B,GACX,OAAO7zE,KAAK27I,MAAMisG,MAAM/zK,GAAOgoF,QACnC,CACAgixB,iBAAiBhq2B,GACb,OAAOA,IAAU7zE,KAAKsnP,YAAc,GAAKzzK,IAAU7zE,KAAKsnP,YAAc,CAC1E,CACA,gBAAIsgjB,GACA,MAAkC,eAA3B5nyB,KAAK27I,MAAMyjN,WACtB,EAEJ89kB,UAAe7v3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFgnrB,IAziLTnw3B,MAyiLyCC,MAziLzCD,MAyiL4EA,OAziL5EA,MAyiLkGA,OAAoB,EACzNmw3B,GAAe/mrB,WA1iLoFppM,MAAE,CAAAgnC,MA0iLWmp1B,GAAc9v3B,QAAd8v3B,GAAc7v3B,YAtHxH6v3B,EAAc,KA8HpB,MAAMa,GAAqB,2BAE3B,IAGMC,GAAoB,MAA1B,MAAMA,GACFx76B,YAAYqhN,EAASsqf,EAAc1/I,GAC/BzujB,KAAK6jN,QAAUA,EACf7jN,KAAKmusB,aAAeA,EACpBnusB,KAAKyujB,OAASA,EACdzujB,KAAKi+6B,iBAAc596B,EACnBL,KAAKk+6B,yBAAsB796B,EAC3BL,KAAK6lf,gBAAkBA,MACvB7lf,KAAKgnf,sBAAwBA,SAC7B2nN,KAAgB5B,IAChB/ssB,KAAK0usB,KAAO1usB,KAAK6jN,QAAQu5tB,kBAAkB513B,UAAU,KACjDxnD,KAAKm+6B,qBAAoB,GAE7Bn+6B,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK6jN,QAAQs5tB,kBAAkB313B,UAAU,KACnDxnD,KAAKo+6B,sBAAqB,GAElC,CACA,kBAAIC,GACA,QAAI/xwB,GAAUtsK,KAAKi+6B,eACPj+6B,KAAKi+6B,WAGrB,CACA,oBAAIK,GACA,QAAIhywB,GAAUtsK,KAAKi+6B,cACRj+6B,KAAKi+6B,WAGpB,CACA3+tB,WACIt/M,KAAKo+6B,sBACT,CACA7+tB,YAAY5Y,GACJA,EAAQ/hH,UAAe+hH,EAAQ/hH,QAAWumf,aAC1CnrkB,KAAKo+6B,sBAEb,CACAj6tB,cACQnkN,KAAK0usB,MACL1usB,KAAK0usB,KAAKhgoB,aAElB,CACAyv2B,sBACIn+6B,KAAKyujB,OAAOpuS,kBAAkB,KACtBrgR,KAAK6zE,QAAU7zE,KAAK6jN,QAAQ49sB,aAC5Bzh6B,KAAKu+6B,SAAS74tB,cAAcE,OAAM,EAG9C,CACAqqf,UACIjwsB,KAAK6jN,QAAQ+B,MAAM5lN,KAAK6zE,MAC5B,CACA,gBAAI2q2B,GAEA,OAAOx+6B,KAAK6zE,SADG7zE,KAAK6jN,QAAQ49sB,aAAezh6B,KAAK6jN,QAAQyjC,aACzB,GAAI,CACvC,CACA,sBAAIw4qB,GACA,OAAI9/5B,KAAKqrP,KAAKt3I,OAAS/zG,KAAKqrP,KAAK81C,UACtB,GAAGnhS,KAAKqrP,KAAKt3I,OAEnB/zG,KAAKqrP,KAAKt3I,MAAS/zG,KAAKqrP,KAAK81C,YAAanhS,KAAKk+6B,yBAApD,EACWl+6B,KAAK0g6B,qBAEpB,CACA,4BAAIX,GACA,OAAI//5B,KAAKqrP,KAAK81C,UACH,GAAGnhS,KAAKqrP,KAAK81C,YAEYnhS,KAAKqrP,KAAKt3I,MAAS/zG,KAAKqrP,KAAK81C,YAAanhS,KAAKk+6B,yBACnF,EACWl+6B,KAAK2g6B,2BAEpB,CACA,oBAAIX,GACA,OAAIhg6B,KAAKqrP,KAAKshK,QACH3sZ,KAAKqrP,KAAKshK,SAEhB3sZ,KAAKqrP,KAAKshK,SAAW3sZ,KAAKk+6B,oBACpBl+6B,KAAK4g6B,uBADhB,CAGJ,CACA,yBAAIF,GACA,OAAI1g6B,KAAKi+6B,YACGj+6B,KAAKoz5B,YAA+B,GAAjB,eAEvBpz5B,KAAKqz5B,UAAmC,GAAvB,oBAC7B,CACA,+BAAIsN,GACA,OAAI3g6B,KAAKi+6B,YACEj+6B,KAAKoz5B,YAAcpz5B,KAAKoz5B,YAAc,GAE1Cpz5B,KAAKqz5B,UAAYrz5B,KAAKqz5B,UAAY,EAC7C,CACA,qBAAIuN,GACA,OAAI5g6B,KAAKi+6B,YACEj+6B,KAAK2h6B,eAAiB3h6B,KAAK2h6B,eAAiB3h6B,KAAK6lf,gBAErD7lf,KAAK4h6B,aAAe5h6B,KAAK4h6B,aAAe5h6B,KAAKgnf,qBACxD,CACA,qBAAIo5a,GAIA,SAHIpg6B,KAAKk+6B,qBAGLl+6B,KAAKqrP,KAAKt3I,MAAQ/zG,KAAKqrP,KAAK81C,WAAanhS,KAAKqrP,KAAKshK,QAI3D,CACA,iBAAIs0gB,GACA,SAAIjh6B,KAAKk+6B,qBACa,UAAdl+6B,KAAKmJ,OAGLnJ,KAAKqrP,KAAKt3I,OAAQ/zG,KAAKqrP,KAAK81C,UAKxC,CACA,iBAAI6/nB,GACA,MAAqB,UAAdhh6B,KAAKmJ,MAAkC,SAAdnJ,KAAKmJ,IACzC,CACA,iBAAI+25B,GAEA,OADalg6B,KAAKqrP,KAAKj8J,MACFpvF,KAAK6zE,MAAQ,CACtC,CACA4q2B,qBACI,MAAiC,kBAAtBz+6B,KAAKqrP,KAAK1/H,QACV3rH,KAAKqrP,KAAK1/H,QAEY,mBAAtB3rH,KAAKqrP,KAAK1/H,QACV3rH,KAAKqrP,KAAK1/H,QAAQ3rH,KAAK6zE,YADlC,CAIJ,CACA,iBAAIut1B,GACA,MAAqB,cAAdph6B,KAAKmJ,MAAsC,SAAdnJ,KAAKmJ,IAC7C,CACA,aAAIws5B,GACA,MAAkB,UAAd315B,KAAKmJ,MAAkC,SAAdnJ,KAAKmJ,MAG3BnJ,KAAKqrP,KAAK0V,QACrB,CACA,gBAAI+/pB,GACA,OAAO9g6B,KAAKmusB,aAAaxtsB,IAAI,WACjC,CACA,sBAAI8urB,GACA,OAAOzvrB,KAAK6jN,QAAQloE,MAAMskkB,iBAC9B,CACAy+N,uBACI,GAAIpywB,GAAUtsK,KAAKqrP,KAAK06I,UAAW,CAC/B,GAAkC,kBAAvB/lY,KAAKqrP,KAAK06I,SACjB,OAAO/lY,KAAKqrP,KAAK06I,SAErB,GAAkC,mBAAvB/lY,KAAKqrP,KAAK06I,SACjB,OAAO/lY,KAAKqrP,KAAK06I,SAAS/lY,KAAK6zE,MAEvC,CACA,OAAOy4F,GAAUtsK,KAAKqrP,KAAK1/H,UAAY3rH,KAAK6zE,MAAQ7zE,KAAK4kF,OAC7D,CACAw51B,uBACIp+6B,KAAKi+6B,iBAAc596B,EACnBL,KAAKk+6B,oBAAsBl+6B,KAAK0+6B,uBAC5B1+6B,KAAKk+6B,sBACLl+6B,KAAKi+6B,YAAcj+6B,KAAKy+6B,qBAEhC,EAEJT,UAAqB3w3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF8nrB,IAhuLfjx3B,MAguLqDmw3B,IAhuLrDnw3B,MAguLgFC,MAhuLhFD,MAguLmHA,OAAS,EAC/Nix3B,GAAqB/jX,UAjuL8EltgB,MAAE,CAAA5jD,KAiuLC606B,GAAoB/9tB,UAAA,6BAAAyW,UAAA,SAAA5nG,EAAAqlB,GAjuLrB,GAiuLqB,EAAArlB,GAjuLvB/hE,MAAEuosB,GAAA,KAAAxmoB,EAAA,KAAAw6iB,EAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAoqyB,SAAAj1Q,EAAAn9d,MAAA,GAAAy1B,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,eAAAonF,EAAAkqyB,eAAFtx3B,CAiuLuB,iBAAAonF,EAAAmqyB,iBAAA,EAAAp+tB,OAAA,CAAAmrC,KAAA,OAAAx3K,MAAA,QAAA+Q,QAAA,UAAAz7E,KAAA,OAAAiq5B,YAAA,cAAAuO,eAAA,iBAAAtO,UAAA,YAAAuO,aAAA,eAAAj1gB,QAAA,UAAAizgB,kBAAA,oBAAAt3mB,cAAA,gBAAAm3mB,aAAA,gBAAAhjrB,YAAA,EAAA1nJ,SAAA,CAjuLvBhoC,aAAEmvL,MAAAq5gB,GAAAn1iB,MAAA,EAAAC,KAAA,EAAAC,OAAA,kxBAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,KAAArlB,EAAA,OAAAuvF,EAAFtxJ,cAAE,WAAFA,MAAE,mBAAFA,aAAEsxJ,GAAFtxJ,MAuuL9EonF,EAAA87jB,UAAS,GAvuLqEljpB,MAAE,EAAAyy2B,EAAA,WAAFzy2B,CA2uLrB,EAAAo02B,GAAA,sBA3uLqBp02B,OA0xLvF,GAAA+hE,IA1xLuF/hE,MAAE,WAAAonF,EAAAqqyB,aAAFzx3B,CAAE,QAAAonF,EAAAk3G,KAAAn3I,MAAFnnD,CAAE,gBAAAonF,EAAAk3G,KAAAxvF,SAAF9uG,CAAE,eAAAonF,EAAAtgE,QAAAsgE,EAAAvvD,QAAA,aAAF73B,MAAE,GAAFA,MAAE,OAAAonF,EAAAsrxB,cAAF1y2B,cAAE,QAAAonF,EAAAsrxB,cA8uLvD,EAAA5guB,aAAA,CA6CmBwgX,KAAiG2C,KAAoKsvJ,MAAoBzrf,cAAA,IApOpVm4tB,EAAoB,KA8UpBW,GAAoB,MAA1B,MAAMA,GACFn86B,YAAY6pO,EAAUoiV,EAAQ5qW,EAASvV,IACnCtuM,KAAKqsO,SAAWA,EAChBrsO,KAAKyujB,OAASA,EACdzujB,KAAK6jN,QAAUA,EACf7jN,KAAKsuM,QAAUA,GACftuM,KAAK4+6B,YAAc,IAAIx/tB,MACvBp/M,KAAK6+6B,UAAY,IAAIz/tB,KACzB,CACAE,WACIt/M,KAAK6suB,eACT,CACA1ohB,cACQnkN,KAAKgsuB,SACLhsuB,KAAKgsuB,SAEb,CACA,gBAAIu1L,GACA,OAAOvh6B,KAAK8+6B,iBAAiB,QACjC,CACA,iBAAItd,GACA,OAAOxh6B,KAAK8+6B,iBAAiB,SACjC,CACA,eAAIrd,GACA,OAAOzh6B,KAAK6jN,QAAQ49sB,WACxB,CACAn1vB,UAAU3oD,GACN,SAAO43lB,MAAY53lB,EACvB,CACAm7zB,iBAAiBr4hB,GAIb,MAHkB,UAAdA,GAA8C,aAArBzmZ,KAAKo/V,aAGhB,WAAdqnD,GAA+C,eAArBzmZ,KAAKo/V,YACxB,KAEJ,IAAMp/V,KAAK4nP,MAAM/0K,MAC5B,CACAg6pB,gBACS7suB,KAAKsuM,SAGVtuM,KAAKyujB,OAAOpuS,kBAAkB,KAC1B,MAAM36D,EAAgB1lN,KAAKsuM,QAAQoX,cAC7ByzjB,EAAoBn5wB,KAAKqsO,SAASE,OAAO7mB,EAAe,QAAS1lN,KAAKm+sB,aAAap9nB,KAAK/gF,OACxFw03B,EAAsBx03B,KAAKqsO,SAASE,OAAO7mB,EAAe,UAAY/hN,KACpEkj1B,GAASlj1B,GAAEs5F,OAAQ,gBACnBj9F,KAAK4+6B,YAAY5uxB,KAAKrsJ,GAAC,GAG/B3D,KAAKgsuB,QAAU,KACXmtC,IACAq7G,GAAoB,CACxB,EAER,CACAr2K,aAAax6sB,GACTA,EAAEqgP,iBACF,MAAM+6rB,EAAU/+6B,KAAKg/6B,aAAar76B,EAAEs5F,QAC9BouJ,EAAOrrP,KAAK4nP,MAAMm3rB,GACnB1zrB,IAAQA,EAAKxvF,UASlB77J,KAAK6+6B,UAAU7uxB,KANG,CACd+uxB,UACAz3rB,YAAatnP,KAAKsnP,YAClB6sD,OAAQn0S,KAAKm0S,OACbhM,cAAexkS,GAGvB,CACAq76B,aAAa/h1B,GACT,MAAMouJ,EAAOo0mB,GAAYxiwB,EAAQ8g1B,GAAoB/96B,KAAKsuM,QAAQoX,eAClE,GAAI2lC,EACA,OAAOovf,GAAUpvf,EAAM0yrB,GAE/B,EAEJY,UAAqBtx3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFyorB,IAn9Lf5x3B,MAm9LqDA,OAn9LrDA,MAm9L8EA,OAn9L9EA,MAm9LoGmw3B,IAn9LpGnw3B,MAm9L+HA,OAAa,EAC/O4x3B,GAAqB1kX,UAp9L8EltgB,MAAE,CAAA5jD,KAo9LCw16B,GAAoB1+tB,UAAA,6BAAAC,OAAA,CAAAi0F,OAAA,SAAAutnB,SAAA,WAAAtikB,YAAA,cAAA93G,YAAA,cAAAM,MAAA,QAAAwrqB,YAAA,cAAAuO,eAAA,iBAAAtO,UAAA,YAAAuO,aAAA,eAAAj1gB,QAAA,UAAAizgB,kBAAA,oBAAAt3mB,cAAA,gBAAAm3mB,aAAA,gBAAAt/sB,QAAA,CAAAy+tB,YAAA,cAAAC,UAAA,aAAApisB,YAAA,EAAA1nJ,SAAA,CAp9LvBhoC,OAAEmvL,MAAAs7gB,GAAAp3iB,MAAA,EAAAC,KAAA,EAAAC,OAAA,wOAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,EAAAs02B,GAAA,uBAo9LmlB,EAAAvyyB,GAp9LrlB/hE,MAAE,UAAAonF,EAAAyzG,MAo9LkkB,EAAA/oD,aAAA,CAA64Cw7gB,KAAwH2jO,GAAgQ5gY,KAA2FkE,MAAOz7V,cAAA,IA/ExgF84tB,EAAoB,KA2JpBM,GAAe,MAArB,MAAMA,WAAwB7+N,MAE9B6+N,UAAgB5x3B,UAAI,UAAA6x3B,EAAA,gBAAAhprB,GAAA,OAAAgprB,MAliM+Eny3B,MAkiMUky3B,MAAe/orB,GAAf+orB,GAAe,GAAxG,GACpBA,GAAgBh2Y,UAniMmFl8e,MAAE,CAAA5jD,KAmiMJ816B,GAAeh/tB,UAAA,kCAAAC,OAAA,CAAA6gD,SAAA,YAAAhsK,SAAA,CAniMbhoC,SAgiM7Fky3B,EAAe,KAiBfE,GAAiC,MAAvC,MAAMA,WAA0CF,GAC5Cz86B,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,EAEJs7tB,UAAkC9x3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFiprB,IAvjM5Bpy3B,MAujM+EC,MAAsB,EACxMmy3B,GAAkCl2Y,UAxjMiEl8e,MAAE,CAAA5jD,KAwjMcg26B,GAAiCl/tB,UAAA,0CAAAw8B,YAAA,EAAA1nJ,SAAA,CAxjMjDhoC,MAwjM6I,CACxO,CACI+kB,QAASmt2B,GACTvrX,eAAagF,OAAW,IAAMymX,OA3jMyDpy3B,SAijM7Foy3B,EAAiC,KAiDjCC,GAAgB,MAAtB,MAAMA,GACF586B,YAAY6pO,EAAUopB,EAAM04c,EAAckxO,IACtCr/6B,KAAKqsO,SAAWA,EAChBrsO,KAAKy1P,KAAOA,EACZz1P,KAAKmusB,aAAeA,EACpBnusB,KAAKq/6B,eAAiBA,GACtBr/6B,KAAK0xtB,aAAc,EACnB1xtB,KAAKw5zB,SAAW,aAChBx5zB,KAAKs/6B,aAAe,OASpBt/6B,KAAK0h6B,SAAW,YAMhB1h6B,KAAKm0S,QAAS,EASdn0S,KAAKo/V,YAAc,aAUnBp/V,KAAKmxP,WAAY,EAIjBnxP,KAAKizpB,SAAW,IAAI7zc,MAKpBp/M,KAAKw96B,kBAAoB,IAAIp+tB,MAC7Bp/M,KAAKu/6B,OAAS,GACdv/6B,KAAK60sB,uBAAyB70sB,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,WACjE7jT,KAAK+vV,UAAYlsC,GAAM,MAAQ,QAEnC7jT,KAAKq/6B,eAAe1jyB,MAAQ37I,IAChC,CACA,eAAIw/6B,GACA,OAAOx/6B,KAAKm0S,MAChB,CAIA,eAAI7sD,CAAYpnP,GACZF,KAAKq/6B,eAAe/3rB,YAAcpnP,CACtC,CACA,eAAIonP,GACA,OAAOtnP,KAAKq/6B,eAAe/3rB,WAC/B,CAKA,SAAIM,CAAMA,GACFt7E,GAAUs7E,IAAUA,EAAM/0K,OAAS,IACnC7yE,KAAKu/6B,OAAS33rB,EAEtB,CACA,SAAIA,GACA,OAAO5nP,KAAKu/6B,MAChB,CAKA,WAAI5yhB,CAAQ54S,GACR/zG,KAAKuvsB,SAAWx7lB,CACpB,CACA,WAAI44S,GACA,OAAO3sZ,KAAKuvsB,QAChB,CACAjwf,WACIt/M,KAAKy/6B,kBACT,CACAlguB,YAAY5Y,GACJA,EAAQihD,QAAajhD,EAAQihD,MAASujV,aACtCnrkB,KAAKy/6B,mBAEL94uB,EAAQy4J,cACRp/V,KAAK0/6B,mBACL1/6B,KAAKy/6B,mBAEb,CACAt7tB,cACQnkN,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,aAEpC,CAMA+u2B,gBACIz96B,KAAKq/6B,eAAe5B,eACxB,CACAgC,mBAGIz/6B,KAAKqsO,SAAS2yC,SAASh/Q,KAAKy1P,KAAK/vC,cAFY,eAArB1lN,KAAKo/V,YAA+B,wBAA0B,qBAC9D,UAA8B,EAApBp/V,KAAK4nP,MAAM/0K,eAEjD,CACA6s2B,mBACI1/6B,KAAKqsO,SAAS4yC,YAAYj/Q,KAAKy1P,KAAK/vC,cAAe,yBACnD1lN,KAAKqsO,SAAS4yC,YAAYj/Q,KAAKy1P,KAAK/vC,cAAe,qBACvD,CAIA,qBAAIo8sB,GACA,MAAO,CAAEpjyB,SAAU1+H,KAAKigtB,kBAC5B,CAIA,qBAAIA,GACA,MAA8B,iBAAnBjgtB,KAAKmxP,UACLnxP,KAAKmxP,UAEc,kBAAnBnxP,KAAKmxP,WAA2BnxP,KAAKmxP,UA/JrB,IAkKpB,CACX,CAIA,oBAAIwurB,GACA,MAAyB,eAArB3/6B,KAAKo/V,YACE,CAAE,oBAAqB,EAAG,mBAAmB,GAEjD,CAAE,iBAAkB,EAAG,gBAAgB,EAClD,CAIA,sBAAI2ikB,GACA,MAAyB,eAArB/h6B,KAAKo/V,YACE,CACH,oBAAqB,EACrB,kBAAuC,EAApBp/V,KAAK4nP,MAAM/0K,QAG/B,CACH,iBAAkB,EAClB,eAAoC,EAApB7yE,KAAK4nP,MAAM/0K,OAEnC,CAIA+s2B,cAAcj86B,GACV3D,KAAKq/6B,eAAexzO,QAAQlosB,EAChC,CAIAk86B,YAAYl86B,GACJA,EAAEo76B,UAAYp76B,EAAE2jP,YAIhB3jP,EAAEwwS,SAA8D,IAApDn0S,KAAKq/6B,eAAexB,iBAAiBl66B,EAAEo76B,UAGvD/+6B,KAAKq/6B,eAAe/B,WAAW356B,EAAEo76B,QAASp76B,EAAEwkS,eANxCnoS,KAAKq/6B,eAAez5tB,MAAMjiN,EAAEo76B,QAOpC,CAIA,gBAAIn3I,GACA,MAA4B,eAArB5nyB,KAAKo/V,WAChB,EAEJgglB,UAAiB/x3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFkprB,IApyMXry3B,MAoyM6CA,OApyM7CA,MAoyMsEA,OApyMtEA,MAoyMgGC,MApyMhGD,MAoyMmImw3B,IAAc,EACpPkC,GAAiBnlX,UAryMkFltgB,MAAE,CAAA5jD,KAqyMHi26B,GAAgBn/tB,UAAA,oBAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAOqN,GAPrN,EAAA5le,IAryMf/hE,MAAE2niB,EA4yM5BmoV,GAA4B,GA5yMF9v3B,MAAE2niB,EA4yMgFooV,GAA6B,GA5yM/G/v3B,MAAE2niB,EA4yMiMqoV,GAAiC,MAAAjuzB,EAAA,KAAAw6iB,GA5yMpOv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAsrxB,aAAAn2P,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAm0K,cAAAghX,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAyrxB,kBAAAt2P,GAAAn9d,MAAA,GAAAy1B,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,OAAAonF,EAAAqlrB,SAAFzswB,CAAE,MAAAonF,EAAA47M,WAAFhjS,MAAE,UAAAonF,EAAAmryB,cAAFvy3B,MAAE,YAAAonF,EAAAu9kB,YAAF3kqB,CAqyMe,mBAAAonF,EAAAqryB,aAAA,EAAAt/tB,OAAA,CAAAwhtB,SAAA,WAAAvtnB,OAAA,SAAAirD,YAAA,cAAA93G,YAAA,cAAAM,MAAA,QAAA+kK,QAAA,UAAAg1gB,eAAA,iBAAAC,aAAA,eAAAxO,YAAA,cAAAC,UAAA,YAAAliqB,UAAA,aAAAhxC,QAAA,CAAA8yc,SAAA,WAAAuqR,kBAAA,qBAAAh/rB,SAAA,iBAAA/B,YAAA,EAAA1nJ,SAAA,CAryMfhoC,MAqyMmoB,CAC9tBqkpB,KACA8rO,GACA,CACIpr2B,QAASu/nB,KACT7vb,SAAU,mBA1yM6Ez0N,aAAEqzJ,MAAA,EAAAC,KAAA,GAAAC,YAAA,IAAAi1hB,WA+yM/E1/G,gGAAQ,gDAAA0/G,GAAA,wZAAAh1hB,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IA/yMqE/hE,MAAE,KAAFA,MAAE,UAAFA,MAAE,uBAAAqxJ,IAAA,OAo0M1EjqE,EAAAyryB,cAAAxhuB,GAAqB,EAp0MmDrxJ,CAo0MlD,qBAAAqxJ,IAAA,OACxBjqE,EAAA0ryB,YAAAzhuB,GAAmB,GAr0MuDrxJ,cAAE,EAAA802B,GAAA,4BAg1M1D,EAAA/yyB,IAh1MwD/hE,cAAE,yBAAAonF,EAAAyzpB,aAAF76uB,CAi0M1C,wBAAAonF,EAAAyzpB,cAj0M0C76uB,MAAE,WAAAonF,EAAAutxB,SAAF302B,CAmzMlE,SAAAonF,EAAAggK,OAnzMkEpnP,CAozMtE,cAAAonF,EAAAirN,YApzMsEryS,CAqzM5D,QAAAonF,EAAAyzG,MArzM4D76L,CAszMxE,cAAAonF,EAAAmzG,YAtzMwEv6L,CAuzM5D,cAAAonF,EAAAi/wB,YAvzM4Drm2B,CAwzM5D,iBAAAonF,EAAAwtxB,eAxzM4D502B,CAyzMtD,YAAAonF,EAAAk/wB,UAzzMsDtm2B,CA0zMhE,eAAAonF,EAAAytxB,aA1zMgE702B,CA2zM1D,UAAAonF,EAAAw4Q,QA3zM0D5/V,CA4zMpE,0BAAAonF,EAAAyrxB,kBAAA,KAAAzrxB,EAAAyrxB,kBAAAlhrB,YA5zMoE3xL,CA6zMnC,sBAAAonF,EAAAm0K,cAAA,KAAAn0K,EAAAm0K,cAAA5pE,YA7zMmC3xL,CA8zM3C,qBAAAonF,EAAAsrxB,aAAA,KAAAtrxB,EAAAsrxB,aAAA/grB,YA9zM2C3xL,CA+zM7C,UAAAonF,EAAAwryB,kBA/zM6C5y3B,cAAE,OAAAonF,EAAAyzG,MAAA/0K,OAAA,GAw0MnD,EAAAgsH,aAAA,CAUesgvB,GAA2HR,GAAgUr9X,KAAkFjC,KAAiGq2W,IAAoB7vsB,cAAA,IAhP7rBu5tB,EAAgB,KA6WhBU,GAA8B,MAApC,MAAMA,WAAuCb,GACzCz86B,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,CACA,YAAIz8H,GACA,OAAO,CACX,EAEJ041B,UAA+Bzy3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF4prB,IAx9MzB/y3B,MAw9MyEC,MAAsB,EAClM8y3B,GAA+B7lX,UAz9MoEltgB,MAAE,CAAA5jD,KAy9MW226B,GAA8B7/tB,UAAA,6BAAAw8B,YAAA,EAAA1nJ,SAAA,CAz9M3ChoC,MAy9MgH,CAC3M,CACI+kB,QAASmt2B,GACTvrX,eAAagF,OAAW,IAAMonX,OA59MyD/y3B,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAA0xE,cAAA,IA+8M/Fi6tB,EAA8B,KAkC9Btj4B,GAAQ,MAAd,MAAMA,WAAiB4jqB,MAEvB5jqB,UAAS6Q,UAAI,UAAAgzpB,EAAA,gBAAAnqd,GAAA,OAAAmqd,MAn/MsFtzpB,MAm/MGvQ,MAAQ05M,GAAR15M,GAAQ,GAAjG,GACbA,GAASysf,UAp/M0Fl8e,MAAE,CAAA5jD,KAo/MXqzC,GAAQyjK,UAAA,0BAAAC,OAAA,CAAA6/tB,UAAA,aAAAhr1B,SAAA,CAp/MChoC,SAi/M7FvQ,EAAQ,KAkBRwj4B,GAAgC,MAAtC,MAAMA,WAAyCxj4B,GAC3Ch6C,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,EAEJm8tB,UAAiC3y3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF8prB,IAzgN3Bjz3B,MAygN6EC,MAAsB,EACtMgz3B,GAAiC/2Y,UA1gNkEl8e,MAAE,CAAA5jD,KA0gNa626B,GAAgC//tB,UAAA,yCAAAw8B,YAAA,EAAA1nJ,SAAA,CA1gN/ChoC,MA0gN4H,CACvN,CACI+kB,QAASt1B,GACTk3gB,eAAagF,OAAW,IAAMsnX,OA7gNyDjz3B,SAmgN7Fiz3B,EAAgC,KA2BtC,MAEMljO,GAAsB,UAE5B,IAGMmjO,GAAe,MAArB,MAAMA,GACFz96B,YAAY2rsB,EAAc9he,EAAU/9B,GAChCtuM,KAAKmusB,aAAeA,EACpBnusB,KAAKqsO,SAAWA,EAChBrsO,KAAKsuM,QAAUA,EACftuM,KAAKozsB,WAAY,EAIjBpzsB,KAAKo4S,QAAS,EACdp4S,KAAKwusB,YAAcsO,GACnB98sB,KAAKo7W,MAjBQ,SAkBbp7W,KAAKuusB,UAhBa,QAiBlBvusB,KAAKsusB,SApBW,QAoBAgzF,EAChB3yF,KAAgB5B,GACpB,CAIA,eAAImzO,GACA,OAAOlg7B,KAAKo4S,MAChB,CAIA,aAAIujoB,GACA,OAAO376B,KAAKq7R,KAChB,CAKA,SAAI2jC,CAAMA,GACNh/T,KAAKkvsB,QAv7MclwY,KAAUgpmB,GAAiBhpmB,KAAU,OAu7MzCmhnB,CAAkBnhnB,EACrC,CAWA,QAAIx7L,CAAKA,GACL,GAAIA,IAASxjI,KAAKo7W,MAAO,CACrB,MAAM6mC,EAAUz+Q,GArDP,SAsDTxjI,KAAKivsB,cAAc,OAAQhtT,GAC3BjiZ,KAAKo7W,MAAQ6mC,CACjB,CACJ,CACA,QAAIz+Q,GACA,OAAOxjI,KAAKo7W,KAChB,CAYA,WAAI8zV,CAAQA,GACR,GAAIA,IAAYlvsB,KAAKsusB,SAAU,CAC3B,MAAMa,EAAaD,GA3EP,OA4EZlvsB,KAAKivsB,cAAc,UAAWE,GAC9BnvsB,KAAKsusB,SAAWa,CACpB,CACJ,CACA,WAAID,GACA,OAAOlvsB,KAAKsusB,QAChB,CAmBA,cAAIrta,CAAWA,GACPA,IAAejhS,KAAKwusB,cAEpBxusB,KAAKwusB,YADiBvta,GAA0B67a,GAEhD98sB,KAAKog7B,mCAAmCpg7B,KAAKgusB,SAAUhusB,KAAKihS,YAEpE,CACA,cAAIA,GACA,OAAOjhS,KAAKwusB,WAChB,CASA,YAAIR,CAASA,GACLA,IAAahusB,KAAKgusB,WAElBhusB,KAAKuusB,UADeP,GAtHN,QAwHdhusB,KAAKog7B,mCAAmCpg7B,KAAKgusB,SAAUhusB,KAAKihS,YAEpE,CACA,YAAI+sa,GACA,OAAOhusB,KAAKuusB,SAChB,CAOA,QAAI3xb,CAAKoxb,GACLhusB,KAAKgusB,SAAWA,CACpB,CAIA,eAAIqyO,GACA,OAAOrg7B,KAAKq7R,KAChB,CAIA,gBAAIilpB,GACA,OAAOtg7B,KAAK2wP,MAChB,CAKA,WAAIg8J,CAAQ54S,GACR,MAAI4khB,UAAe5khB,GAAQ/zG,KAAK+zG,MAAQ/zG,KAAKmhS,UACzC,MAAM,IAAIr9R,MAAM,sFAEpB9D,KAAKuvsB,SAAWx7lB,CACpB,CACA,WAAI44S,GACA,OAAO3sZ,KAAKuvsB,QAChB,CACAjwf,WACIt/M,KAAKug7B,kBACT,CACAzutB,kBAC0B,CAAC,OAAQ,WACjB59I,QAAQ7yE,IAClBrB,KAAKivsB,cAAc5tsB,EAAOrB,KAAKqB,GAAM,GAEzCrB,KAAKog7B,mCAAmCpg7B,KAAKgusB,SAAUhusB,KAAKihS,WAChE,CAIA,gBAAIu/oB,GACA,QAASxg7B,KAAKki6B,UAAYli6B,KAAKoi6B,UAAYpi6B,KAAK+zG,MAAQ/zG,KAAKmhS,UACjE,CACAo/oB,mBACI,IAAI,EAAC5nT,UAGU,CAAC34nB,KAAK+zG,MAAQ/zG,KAAKmhS,UAAWnhS,KAAKki6B,SAAUli6B,KAAKoi6B,UACrCjg1B,OAAQjiF,GAAUA,GAAO2yE,OAClC,EACf,MAAM,IAAI/uE,MAAM,oMAMxB,CACAmrsB,cAAcwxO,EAAWvg7B,GACrB,MAAMu1P,EAAOz1P,KAAKsuM,QAAQoX,cACpBlB,GArmNYkpf,EAACruG,GAAesuG,EAAejod,EAAe1hI,KACpE,OAAQ2plB,GACJ,IAAK,OACD,MAAO,CACHC,SAAU,YAAsBN,GAAM5nd,KACtCmod,MAAoB,SAAb7plB,EAAsB,YAAsBsplB,GAAMtplB,KAAc,IAE/E,IAAK,UACD,MAAO,CACH4plB,SAAU,aAAaH,GAAU/nd,KACjCmod,MAAoB,SAAb7plB,EAAsB,aAAayplB,GAAUzplB,KAAc,IAI9E,EAulNoB0plB,CAAkB,EAAU+yO,EAAWzg7B,KAAKyg7B,GAAYvg7B,GACpEskN,GAAQopf,UACR5tsB,KAAKqsO,SAAS8iC,YAAY1Z,EAAMjxC,GAAQopf,UAExCppf,GAAQqpf,OACR7tsB,KAAKqsO,SAAS0hC,SAAStY,EAAMjxC,GAAQqpf,MAE7C,CACAuyO,mCAAmCxjqB,EAAMqkB,GACrC,MAAMw4jB,EAAiBz51B,KAAKsuM,QAAQoX,cAEbniN,MAAMC,KAAKi21B,EAAexomB,WACV9uK,OAAO44yB,IACnCA,GAAGvozB,WAAW,mBAAqBuozB,GAAGvozB,WAAW,qBAE5C0B,QAAS6mzB,IAAM/63B,KAAKqsO,SAAS8iC,YAAYsqlB,EAAgBshC,KAE5D,SAATn+mB,GACA58Q,KAAKqsO,SAAS0hC,SAAS0rlB,EAAgB,YAAY78kB,KAG1C,SAATA,GAAkC,SAAfqkB,GACnBjhS,KAAKqsO,SAAS0hC,SAAS0rlB,EAAgB,YAAY78kB,KAAQqkB,IAEnE,CAIAqphB,QAAQ1qvB,GACJ,OAAO5/D,KAAKmusB,aAAaxtsB,IAAIi/D,EACjC,EAEJqg3B,UAAgB5y3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF+prB,IAjwNVlz3B,MAiwN2CC,MAjwN3CD,MAiwN8EA,OAjwN9EA,MAiwNuGA,OAAa,EACvNkz3B,GAAgBhmX,UAlwNmFltgB,MAAE,CAAA5jD,KAkwNJ826B,GAAehguB,UAAA,mBAAA2hB,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAlwNb/hE,MAAE,aAAAonF,EAAAwnyB,UAAF5u3B,CAkwNa,QAAAonF,EAAAksyB,YAlwNbtz3B,CAkwNa,SAAAonF,EAAAmsyB,cAlwNbvz3B,MAAE,WAAAonF,EAAAi/jB,UAAFrmpB,CAkwNa,oBAAAonF,EAAA+ryB,aAAA,EAAAhguB,OAAA,CAAA8+G,MAAA,QAAAx7L,KAAA,OAAA0rkB,QAAA,UAAAjua,WAAA,aAAA+sa,SAAA,WAAApxb,KAAA,OAAAw7B,OAAA,SAAAjX,UAAA,YAAA9F,MAAA,QAAA1qC,OAAA,SAAAg7c,SAAA,WAAAy2N,SAAA,WAAAruzB,KAAA,OAAAmuzB,SAAA,WAAAv1gB,QAAA,WAAAlwK,YAAA,EAAA1nJ,SAAA,CAlwNbhoC,MAkwN8kB,CACzqBqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,kBAtwN6Ez0N,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAC,YAAA,IAAAk1hB,WA2wN9E3/G,6FAAM,gDAAA2/G,GAAA,iKAAAj1hB,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IA3wNsE/hE,cAAE,KAAFA,MAAE,EAAAi12B,GAAA,mBAAFj12B,CA+wN1D,EAAAk12B,GAAA,qBA/wN0Dl12B,CAixN5D,EAAAo12B,GAAA,qBAjxN4Dp12B,CAuxN5D,EAAAs12B,GAAA,uBAIoB,EAAAvzyB,IA3xNwC/hE,cAAE,OAAAonF,EAAAqsyB,cAAFzz3B,cAAE,OAAAonF,EAAA+txB,UAAFn12B,cAAE,OAAAonF,EAAAiuxB,UAAFr12B,cAAE,OAAAonF,EAAApgC,MAAAogC,EAAAgtJ,WAAAhtJ,EAAAw4Q,SA2xN5C,EAAA9tN,aAAA,CAWQwgX,KAAiGiC,KAAkFgwJ,KAA4L0uO,IAAgCn6tB,cAAA,IAjQ1co6tB,EAAe,KAmWfS,GAA6B,MAAnC,MAAMA,WAAsClk4B,GACxCh6C,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,CACA,YAAIz8H,GACA,OAAO,CACX,EAEJs51B,UAA8Brz3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFwqrB,IAj5NxB3z3B,MAi5NuEC,MAAsB,EAChM0z3B,GAA8BzmX,UAl5NqEltgB,MAAE,CAAA5jD,KAk5NUu36B,GAA6BzguB,UAAA,4BAAAw8B,YAAA,EAAA1nJ,SAAA,CAl5NzChoC,MAk5N6G,CACxM,CACI+kB,QAASt1B,GACTk3gB,eAAagF,OAAW,IAAMgoX,OAr5NyD3z3B,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAA0xE,cAAA,IAw4N/F66tB,EAA6B,KAkC7BC,GAAa,MAAnB,MAAMA,GACFn+6B,YAAYywsB,GACRjzsB,KAAKizsB,oBAAsBA,EAC3BjzsB,KAAKozsB,WAAY,EASjBpzsB,KAAKo/V,YAAc,WAKnBp/V,KAAKq7R,MAAQ,QACbr7R,KAAK6jT,KAAM,KACX8qZ,KAAgB5B,IAChB/ssB,KAAK60sB,uBAAyB70sB,KAAKizsB,oBAAoBtsgB,QAAQn/I,UAAU,EAAGq8P,UACxE7jT,KAAK6jT,IAAMA,EACX7jT,KAAK+vV,UAAY/vV,KAAK6jT,IAAM,MAAQ,OAE5C,CACA,cAAI+8nB,GACA,OAAO5g7B,KAAKq7R,KAChB,CACA,YAAIshB,GACA,MAA4B,aAArB38S,KAAKo/V,WAChB,CACA,cAAIjqB,GACA,MAA4B,eAArBn1U,KAAKo/V,WAChB,CACAj7I,cACQnkN,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,aAEpC,EAEJiy2B,UAActz3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFyqrB,IAl9NR5z3B,MAk9NuCC,MAAsB,EAChK2z3B,GAAc1mX,UAn9NqFltgB,MAAE,CAAA5jD,KAm9NNw36B,GAAa1guB,UAAA,iBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAn9NT/hE,MAAE,MAAAonF,EAAA47M,WAAFhjS,MAAE,QAAAonF,EAAAysyB,YAAF7z3B,MAAE,SAAAonF,EAAAi/jB,UAAFrmpB,CAm9NS,kBAAAonF,EAAAwoK,SAn9NT5vP,CAm9NS,oBAAAonF,EAAAghM,YAAA,EAAAj1H,OAAA,CAAAk/I,YAAA,cAAA/jE,MAAA,SAAA5+C,YAAA,EAAA1nJ,SAAA,CAn9NThoC,MAm9N8U,CACzaqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,0BAv9N6Ez0N,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GA09NpE,EAAA84J,cAAA,IAhD3B86tB,EAAa,KA0FbE,GAAmB,MAAzB,MAAMA,GACFr+6B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJytO,UAAoBxz3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF2qrB,GAAmB,EACpIA,GAAoB5mX,UA1gO+EltgB,MAAE,CAAA5jD,KA0gOA036B,GAAmB5guB,UAAA,wBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GA1gOrB/hE,MAAE,gBAAAonF,EAAAi/jB,UA0gOmB,EAAA32d,YAAA,EAAA1nJ,SAAA,CA1gOrBhoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GA2gOpE,EAAA84J,cAAA,IAP3Bg7tB,EAAmB,KA0BnBC,GAAiB,MAAvB,MAAMA,GACFt+6B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJ0tO,UAAkBzz3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF4qrB,GAAiB,EAChIA,GAAkB7mX,UApiOiFltgB,MAAE,CAAA5jD,KAoiOF236B,GAAiB7guB,UAAA,sBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GApiOjB/hE,MAAE,cAAAonF,EAAAi/jB,UAoiOe,EAAA32d,YAAA,EAAA1nJ,SAAA,CApiOjBhoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GAqiOpE,EAAA84J,cAAA,IAP3Bi7tB,EAAiB,KA0BjBC,GAAmB,MAAzB,MAAMA,GACFv+6B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJ2tO,UAAoB1z3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF6qrB,GAAmB,EACpIA,GAAoB9mX,UA9jO+EltgB,MAAE,CAAA5jD,KA8jOA436B,GAAmB9guB,UAAA,wBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GA9jOrB/hE,MAAE,gBAAAonF,EAAAi/jB,UA8jOmB,EAAA32d,YAAA,EAAA1nJ,SAAA,CA9jOrBhoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GA+jOpE,EAAA84J,cAAA,IAP3Bk7tB,EAAmB,KA2BnBC,GAAoB,MAA1B,MAAMA,GACFx+6B,cACIxC,KAAKozsB,WAAY,EASjBpzsB,KAAKo/V,YAAc,aAWnBp/V,KAAKu/V,OAAS,QAIdv/V,KAAKm8D,OAAS,IAAIijJ,KACtB,CACA,kBAAI+yf,GACA,MAAuB,cAAhBnysB,KAAKu/V,MAChB,CACA,cAAIwsjB,GACA,MAAuB,UAAhB/r5B,KAAKu/V,MAChB,CACA,YAAIysjB,GACA,MAAuB,QAAhBhs5B,KAAKu/V,MAChB,CACA,eAAI0hlB,GACA,MAAuB,WAAhBjh7B,KAAKu/V,MAChB,CACA,iBAAIotiB,GACA,MAA4B,aAArB3s4B,KAAKo/V,WAChB,CACA,mBAAIg3c,GACA,MAA4B,eAArBp2yB,KAAKo/V,WAChB,CAIA,WAAIs+K,CAAQx9gB,GACJqD,MAAMujD,QAAQ5mD,GACdF,KAAKonuB,aAAelnuB,EAEfA,aAAiBq7lB,QACtBv7lB,KAAK0quB,gBAAkBxquB,EAE/B,CAIAwrO,QAAQvvK,GACJn8D,KAAKm8D,OAAO6zF,KAAK7zF,EACrB,EAEJ6k3B,UAAqB3z3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF8qrB,GAAoB,EACtIA,GAAqB/mX,UAppO8EltgB,MAAE,CAAA5jD,KAopOC636B,GAAoB/guB,UAAA,yBAAA2hB,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GAppOvB/hE,MAAE,YAAAonF,EAAAi/jB,UAAFrmpB,CAopOuB,iBAAAonF,EAAAi/jB,UAppOvBrmpB,CAopOuB,sBAAAonF,EAAAg+jB,eAppOvBplpB,CAopOuB,kBAAAonF,EAAA43wB,WAppOvBh/1B,CAopOuB,gBAAAonF,EAAA63wB,SAppOvBj/1B,CAopOuB,mBAAAonF,EAAA8syB,YAppOvBl03B,CAopOuB,qBAAAonF,EAAAw4vB,cAppOvB5/0B,CAopOuB,uBAAAonF,EAAAiiqB,gBAAA,EAAAl2lB,OAAA,CAAAk/I,YAAA,cAAAG,OAAA,SAAAm+K,QAAA,WAAAv9T,QAAA,CAAAhkJ,OAAA,UAAAsgL,YAAA,EAAA1nJ,SAAA,CAppOvBhoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAC,OAAA,uVAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,EAAAu12B,GAAA,mBAAFv12B,CAqpOrC,EAAAy12B,GAAA,qBArpOqCz12B,CAupOxD,EAAA212B,GAAA,aAiBuC,EAAA5zyB,IAxqOiB/hE,MAAE,QAAAonF,EAAAizlB,eAAAjzlB,EAAAu2lB,iBAAF39qB,cAAE,OAAAonF,EAAAizlB,cAAFr6qB,cAAE,OAAAonF,EAAAu2lB,iBAwqOrB,EAAA7riB,aAAA,CACfwgX,KAAiGg7J,KAAwHr4J,MAAgBn8V,cAAA,IAtFpSm7tB,EAAoB,KAyMpBE,GAAkB,MAAxB,MAAMA,GACF1+6B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJ8tO,UAAmB7z3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFgrrB,GAAkB,EAClIA,GAAmBj4Y,UAlyOgFl8e,MAAE,CAAA5jD,KAkyOD+36B,GAAkBjhuB,UAAA,2BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GAlyOnB/hE,MAAE,eAAAonF,EAAAi/jB,UAkyOiB,EAAA32d,YAAA,IANhHyksB,EAAkB,KAqBlBC,GAAqB,MAA3B,MAAMA,GACF3+6B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJ+tO,UAAsB9z3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFirrB,GAAqB,EACxIA,GAAsBl4Y,UAvzO6El8e,MAAE,CAAA5jD,KAuzOEg46B,GAAqBlhuB,UAAA,8BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GAvzOzB/hE,MAAE,kBAAAonF,EAAAi/jB,UAuzOuB,EAAA32d,YAAA,IANtH0ksB,EAAqB,KAqBrBC,GAAkB,MAAxB,MAAMA,GACF5+6B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJguO,UAAmB/z3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFkrrB,GAAkB,EAClIA,GAAmBn4Y,UA50OgFl8e,MAAE,CAAA5jD,KA40ODi46B,GAAkBnhuB,UAAA,2BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GA50OnB/hE,MAAE,eAAAonF,EAAAi/jB,UA40OiB,EAAA32d,YAAA,IANhH2ksB,EAAkB,KA8BlBC,GAA4B,MAAlC,MAAMA,GACF7+6B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJ2isB,UAA6Bh03B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFmrrB,IAz2OvBt03B,MAy2OqEA,MAAc,KACtLs03B,GAA6Bp4Y,UA12OsEl8e,MAAE,CAAA5jD,KA02OSk46B,GAA4BphuB,UAAA,8CAAAw8B,YAAA,IANpI4ksB,EAA4B,KAuClC,MAAMC,WAAkCjlN,KAIpC75tB,YAAYmtH,GACRluH,QACA+0E,OAAO8mI,OAAOt9M,KAAM2vH,EACxB,EAGJ,MACM4xzB,GAAuB,WAC7B,IAgBMC,GAAuB,MAA7B,MAAMA,GACFh/6B,YAAY6pO,EAAUqhC,EAAa+gT,EAAQwkJ,GAAqB9sc,IAC5DnmQ,KAAKqsO,SAAWA,EAChBrsO,KAAK0tQ,YAAcA,EACnB1tQ,KAAKyujB,OAASA,EACdzujB,KAAKizsB,oBAAsBA,GAC3BjzsB,KAAKmmQ,QAAUA,GAKfnmQ,KAAK6hJ,MAAQ,GAKb7hJ,KAAKy4O,SAAW,GAOhBz4O,KAAK67J,UAAW,EAWhB77J,KAAKmxP,WAAY,EAMjBnxP,KAAKi76B,eAAiB,IAAI77tB,MAK1Bp/M,KAAKm8D,OAAS,IAAIijJ,MAKlBp/M,KAAKgwS,OAAS,IAAI5wF,MAKlBp/M,KAAK0xrB,SAAW,IAAItye,MACpBp/M,KAAKozsB,WAAY,EAIjBpzsB,KAAKqzsB,SAAU,EACfrzsB,KAAKo9sB,aAAe,IAAIh+f,MACxBp/M,KAAKq1nB,cAAgB,IAAI99F,MACzBv3hB,KAAK2o6B,WAAY,EACjB3o6B,KAAKyh7B,eAAiBn9b,MACtBtkf,KAAK0h7B,iBAAmBt9b,SACxBuqN,KAAgB5B,IAChB/ssB,KAAK+vV,UAAYkjX,GAAoBpvZ,IAAM,MAAQ,KACvD,CAOA,YAAI6jd,CAASxnwB,GACLA,IAAUF,KAAK0nwB,WAGnB1nwB,KAAK2o6B,UAAYzo6B,EACbF,KAAK0nwB,SACL1nwB,KAAK2h7B,2BAGL3h7B,KAAK4h7B,wBAEb,CACA,YAAIl6K,GACA,OAAO1nwB,KAAK2o6B,SAChB,CAKA,iBAAIkZ,CAAc9t0B,GACd,MAAI4khB,UAAe5khB,GAAQ/zG,KAAK8h7B,WAC5B,MAAM,IAAIh+6B,MAAM,oFAEpB9D,KAAKyh7B,eAAiB1t0B,CAC1B,CACA,iBAAI8t0B,GACA,OAAO7h7B,KAAKyh7B,cAChB,CAKA,mBAAIM,CAAgBhu0B,GAChB,MAAI4khB,UAAe5khB,GAAQ/zG,KAAKgi7B,aAC5B,MAAM,IAAIl+6B,MAAM,wFAEpB9D,KAAK0h7B,iBAAmB3t0B,CAC5B,CACA,mBAAIgu0B,GACA,OAAO/h7B,KAAK0h7B,gBAChB,CACA,iBAAIO,GACA,OAAOji7B,KAAK0nwB,WAAa1nwB,KAAK67J,QAClC,CACAyjD,WACIt/M,KAAKqsO,SAAS0yC,gBAAgB/+Q,KAAK0tQ,YAAYhoD,cAAe,SAC9D1lN,KAAKq1nB,cAAgBr1nB,KAAKizsB,oBAAoBtsgB,QAAQn/I,UAAU,EAAGq8P,UAAY7jT,KAAK+vV,UAAYlsC,EAAM,MAAQ,QAC9G,MAAMpuD,EAAOz1P,KAAK0tQ,YAAYhoD,cACxB71H,EAAS7vF,KAAK6vF,OAAO61H,cAC3B1lN,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAO18I,EAAQ,QAAS,IAAM7vF,KAAKki7B,oBAAoBzsrB,KAC5Fz1P,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAO18I,EAAQ,OAAQ,IAAM7vF,KAAKmi7B,mBAAmB1srB,IAC9F,CACA3jC,kBACI9xN,KAAK6suB,gBACA7suB,KAAK0nwB,UACN1nwB,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK4rF,QAAQ85H,cAAe67tB,GAE3D,CACAp9tB,cACInkN,KAAKq1nB,cAAc3mjB,aACvB,CAIAm+pB,gBACS7suB,KAAK0tQ,cAGL1tQ,KAAK67J,UACN77J,KAAKyujB,OAAOpuS,kBAAkB,KAE1BrgR,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OADxBvsO,KAAK0tQ,YAAYhoD,cACoB,UAAW1lN,KAAKyqsB,eAAe1pnB,KAAK/gF,OAAM,GAGxG,CAIAyqsB,eAAe1rS,IACYA,EAAGwxS,UAAYC,KAAKE,OAAS3xS,EAAGwxS,UAAYC,KAAKC,QAIpEo2I,GAAS9nb,EAAG9hU,OAAQ,uBACpB8hU,EAAG/6K,iBACHhkP,KAAKyujB,OAAO7xa,IAAI,KACZ58I,KAAKoi7B,gBAAe,GAGhC,CAIAC,cAActjhB,GACV,MAAMlvU,EAAS7vF,KAAK6vF,OAAO61H,gBACtBq7gB,GAAYhiU,EAAG9hU,SAAY8hU,EAAG9hU,SAAWpN,IAAY7vF,KAAK67J,WAC3D77J,KAAKoi7B,gBAEb,CAIAA,iBACI,MAAMr7oB,EAAY,IAAIu6oB,GAGtB,GAFAv6oB,EAAU5qO,OAASn8D,KAAK0nwB,SAAW,WAAa,SAChD1nwB,KAAKm8D,OAAO6zF,KAAK+2I,IACZA,EAAUvI,qBAAsB,CAKjC,GAJAx+R,KAAKs76B,aAAat76B,KAAK0nwB,UACnB1nwB,KAAK0nwB,UACL1nwB,KAAK2h7B,2BAEL3h7B,KAAKmxP,UAEL,YADAnxP,KAAK8suB,iBAGJ9suB,KAAK0nwB,UACN1nwB,KAAK4h7B,wBAET5h7B,KAAKsi7B,yBACT,CACJ,CAIA,4BAAIC,GACA,OAAIvi7B,KAAK0nwB,SACG1nwB,KAAKgi7B,aAAgC,GAAjB,eAGpBhi7B,KAAK8h7B,WAAgC,GAAnB,gBAElC,CAIA,kCAAIU,GACA,OAAIxi7B,KAAK0nwB,SACE1nwB,KAAKgi7B,aAAehi7B,KAAKgi7B,aAAe,GAGxChi7B,KAAK8h7B,WAAa9h7B,KAAK8h7B,WAAa,EAEnD,CAIA,mBAAIW,GACA,OAAOzi7B,KAAK0nwB,SAAW1nwB,KAAK+h7B,gBAAkB/h7B,KAAK6h7B,aACvD,CAOAlksB,OAAO+phB,GACH,MAAM/zX,EAAW3zY,KAAK0nwB,SAChB9irB,EAAU0nF,GAAUo7lB,GAAYA,GAAY/zX,EAClD,GAAI/uT,IAAY+uT,EAOhB,IAJA3zY,KAAKs76B,YAAY121B,GACb5kF,KAAK0nwB,UACL1nwB,KAAK2h7B,2BAEL3h7B,KAAKmxP,UAEL,YADAnxP,KAAK8suB,iBAGJ9suB,KAAK0nwB,UACN1nwB,KAAK4h7B,wBAET5h7B,KAAKsi7B,yBAAwB,CACjC,CACAJ,oBAAoBpjqB,GACX9+Q,KAAKqzsB,UACNrzsB,KAAKqzsB,SAAU,EACfrzsB,KAAKqsO,SAAS0hC,SAAS+Q,EAAI,WAEnC,CACAqjqB,mBAAmBrjqB,GACX9+Q,KAAKqzsB,UACLrzsB,KAAKqzsB,SAAU,EACfrzsB,KAAKqsO,SAAS8iC,YAAY2P,EAAI,WAEtC,CACAw8pB,YAAYp76B,GACRF,KAAK2o6B,UAAYzo6B,EACjBF,KAAKi76B,eAAejrxB,KAAK9vJ,EAC7B,CACA4suB,iBACI,MAAMpumB,EAAqC,kBAAnB1+H,KAAKmxP,UA5RZ,IA4RyDnxP,KAAKmxP,UACzEw6N,EAAgBlxN,iBAAiBz6P,KAAK4rF,QAAQ85H,eAAeirC,OAC7DQ,EAAYnxP,KAAK0nwB,SA3T/B,SAAS13d,GAAOtxK,GAAUiyH,GACtB,MAAO,IACHjJ,OAAM,CAAEuvI,SAAU,SAAUl8I,QAAS,QAAS4V,OAAQ,KAAG,EACzDL,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEiJ,OAAQ,GAAGA,OAE5D,CAsT0Cq/C,CAAOtxK,EAAUitV,GAlT3D,SAAS+lO,GAAShzjB,GAAUiyH,GACxB,MAAO,IACHjJ,OAAM,CAAEuvI,SAAU,SAAUtmI,OAAQ,GAAGA,OAAU,EACjDL,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAM,CAAEuvI,SAAU,SAAUtmI,OAAQ,KAE7E,CA6S4E+gc,CAAShzjB,EAAUitV,GACjF53N,GAAS/zP,KAAKstuB,aAAan8e,EAAWnxP,KAAK4rF,QAAQ85H,eACzD1lN,KAAKo9sB,aAAax2pB,QAAKojD,KAAK,IAAIxiD,UAAU,KACjCxnD,KAAK0nwB,UACN1nwB,KAAK4h7B,wBAET5h7B,KAAKsi7B,yBAAwB,GAEjCvurB,GAAOuY,MACX,CACAghe,aAAan8e,EAAW67e,GAEpB,IAAIj5e,GADY/zP,KAAKmmQ,QAAQ5mK,MAAM4xJ,GACdzxJ,OAAOstoB,GAC5Bj5e,UAAOG,OAAO,KACNH,KACA/zP,KAAKo9sB,aAAaptjB,OAClB+jG,GAAOmY,UACPnY,GAAS,QAGVA,EACX,CACAuurB,0BACIti7B,KAAKA,KAAK0nwB,SAAW,SAAW,YAAY13mB,MAChD,CACA4xxB,wBACI5h7B,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK4rF,QAAQ85H,cAAe67tB,GACvD,CACAI,2BACI3h7B,KAAKqsO,SAAS8iC,YAAYnvQ,KAAK4rF,QAAQ85H,cAAe67tB,GAC1D,EAEJC,UAAwBn03B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFsrrB,IAntPlBz03B,MAmtP2DA,OAntP3DA,MAmtPoFA,OAntPpFA,MAmtP8GA,OAntP9GA,MAmtPoIC,MAntPpID,MAmtPuKqrvB,OAAqB,EAC/RopI,GAAwBvnX,UAptP2EltgB,MAAE,CAAA5jD,KAotPIq46B,GAAuBvhuB,UAAA,2BAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAM1B,GAN0B,EAAA5le,GAptP7B/hE,MAAE2niB,EA0tP3B2sV,GAA4B,KAAAvyzB,EAAA,KAAAw6iB,GA1tPHv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAA4jxB,cAAAzuP,GAAAn9d,MAAA,GAAAuqB,UAAA,SAAA5nG,EAAAqlB,GAAA,KAAArlB,IAAF/hE,MAAE0qsB,GAAA,GAAF1qsB,MAAE8zJ,GAAA,MAAA/xF,EAAA,KAAAw6iB,EAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAvoD,QAAA09kB,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAtkD,OAAAy5kB,EAAAn9d,MAAA,GAAAy1B,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,MAAAonF,EAAA47M,WAAFhjS,MAAE,aAAAonF,EAAAi/jB,UAAFrmpB,CAotP6B,aAAAonF,EAAA8tyB,eAAA,EAAA/huB,OAAA,CAAAr+D,MAAA,QAAA42F,SAAA,WAAA58E,SAAA,WAAA6rmB,SAAA,WAAAm6K,cAAA,gBAAAE,gBAAA,kBAAAD,WAAA,aAAAE,aAAA,eAAA7wrB,UAAA,aAAAhxC,QAAA,CAAA86tB,eAAA,iBAAA9+2B,OAAA,SAAA6zO,OAAA,SAAA0hZ,SAAA,YAAAlzc,SAAA,wBAAA/B,YAAA,EAAA1nJ,SAAA,CAptP7BhoC,MAotPmkB,CAC9pBqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,0BAxtP6Ez0N,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,GAAAC,KAAA,GAAAC,OAAA,gYAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,KAAArlB,EAAA,OAAAuvF,EAAFtxJ,sBAAE,aAAFA,MAAE,iBAAAqxJ,IAAFrxJ,aAAEsxJ,GAAFtxJ,MAouP9EonF,EAAAkuyB,cAAAjkuB,IAAqB,GApuPyDrxJ,MAAE,EAAA812B,EAAA,qBAAF912B,CAsuPlD,EAAAg22B,GAAA,YAtuPkDh22B,MAAE,YAAFA,MAAE,0BAAFA,gBAAE,YAAFA,CA0vP7B,WA1vP6BA,MAAE,GAAFA,SA8vPrF,GAAA+hE,IA9vPqF/hE,MAAE,uBAAFA,CA6tPvD,aAAAonF,EAAA0nB,UA7tPuD9uG,MAAE,gBAAAonF,EAAA0nB,SAAF9uG,CAAE,gBAAAonF,EAAAuznB,WAAAvznB,EAAA0nB,SAAF9uG,CAAE,gBAAAonF,EAAA0N,OAAF90F,MAAE,GAAFA,MAAE,QAAAonF,EAAA4jxB,eAAFhr2B,cAAE,OAAAonF,EAAA4jxB,eAAFhr2B,MAAE,GAAFA,MAAE,OAAAonF,EAAAouyB,yBAAFx13B,CAmvP9C,kBAAAonF,EAAAquyB,+BAnvP8Cz13B,CAovP7B,UAAAonF,EAAAsuyB,iBApvP6B113B,cAAE,KAAAonF,EAAA0N,OAAF90F,MAAE,GAAFA,MAAE,eAAAonF,EAAAuznB,UAAA,EAAA7okB,aAAA,CA+vPpCwgX,KAAiG2C,KAAoKsvJ,MAAoBzrf,cAAA,IAxVpV27tB,EAAuB,KA+bzB/9zB,GAAM,EAIV,MAMMi4xB,GAAkBx74B,IACbA,IAASA,QAAQG,EAWtBqi7B,GAAeA,CAACC,GAAcC,KAChC,QAASpz2B,EAAI,EAAGA,EAAImz2B,GAAa9v2B,OAAQrD,IACrC,GAAImz2B,GAAanz2B,KAAOoz2B,EAASpz2B,GAC7B,OAAO,EAGf,OAAO,GAkBLkgvB,GAAmBA,CAACrjlB,GAAUopB,EAAMp6B,KACxB7kJ,OAAO0Q,KAAKm0I,GACpBnnJ,QAAQq7B,IACV88H,GAAS2yC,SAASvpB,EAAMlmJ,EAAG8rH,EAAO9rH,GAAE,EACvC,EAKCsz0B,GAA4BA,CAACt/jB,GAAau/jB,EAAmBhmmB,EAAKimmB,EAAU5qhB,EAASt0G,IAAM,KAC7F,MAAMm/nB,GAAiBF,EAAkB37kB,wBACnC87kB,IAAaD,GAAeryrB,OAASmsF,EAAIrnH,OAASsttB,EAASpyrB,OAASmsF,EAAIrnH,MACxEyttB,GAAkB3/jB,GAAY3nF,EAAIonpB,GAAepnpB,EAGjDunpB,GAA2Bhn2B,KAAKmkB,OAAOujN,GADnBm/nB,GAAez/yB,MAAQggP,GAAY9xS,EADpC8xS,GAAY9xS,EAAIux2B,GAAevx2B,IAEoCqrQ,EAAIq7E,QAAU4qhB,EAAS1npB,QAC7G+npB,GAAuBjn2B,KAAKgkB,IAAIgj1B,GAA2B,EAAGhrhB,GAC9DkrhB,GAA4Bln2B,KAAKmkB,MAAM4i1B,IAAmBpmmB,EAAIrnH,KAAOsttB,EAASpyrB,SAC9E2yrB,GAAoBnn2B,KAAKgkB,IAAIkj1B,GAA4B,EAAGJ,IAC5Dx/oB,GAAMtnN,KAAKikB,IAAIgj1B,GAAsB,GAE3C,MAAO,CACHzhtB,IAFQxlJ,KAAKikB,IAAIkj1B,GAAmB,GAE/B7/oB,OACT,EAmFE6mc,GAAoB,CAAC,KAAM,KAAM,QAIjCi5M,GAAwB,CAAC,KAAM,KAAM,QAIrCC,GAA2B,CAE7BC,GAAI,CACApopB,MA/BkC,EAgClCqopB,SAxBqC,GA0BzClwzB,GAAI,CACAm9H,OAnCkC,EAoClCgzrB,SA5BqC,GA8BzCC,KAAM,CACFvopB,MAnCiC,GAoCjC1qC,OApCiC,GAqCjC+yrB,SA7BoC,GA8BpCC,SA9BoC,IAgCxCE,KAAM,CACFxopB,MAzCiC,GA0CjC1qC,OA1CiC,GA2CjC+yrB,SAnCoC,GAoCpCC,SApCoC,KAwD5C,MAAMG,WAA+BznN,KAajC75tB,YAAYkxE,EAAMgU,EAAO07gB,EAAU8O,EAAU6xU,GAAQC,GAAQC,GAAQC,IACjEzi7B,QACAzB,KAAK0zE,KAAOA,EACZ1zE,KAAK0nF,MAAQA,EACb1nF,KAAKojmB,SAAWA,EAChBpjmB,KAAKkymB,SAAWA,EAChBlymB,KAAK+j7B,OAASA,GACd/j7B,KAAKgk7B,OAASA,GACdhk7B,KAAKik7B,OAASA,GACdjk7B,KAAKkk7B,OAASA,EAClB,EAOJ,MAAMC,WAA8B9nN,KAWhC75tB,YAAYkxE,EAAMgU,EAAO081B,EAAYC,EAAYC,GAAYC,IACzD9i7B,QACAzB,KAAK0zE,KAAOA,EACZ1zE,KAAK0nF,MAAQA,EACb1nF,KAAKok7B,WAAaA,EAClBpk7B,KAAKqk7B,WAAaA,EAClBrk7B,KAAKsk7B,WAAaA,GAClBtk7B,KAAKuk7B,WAAaA,EACtB,EAGJ,IAGMC,GAAyB,MAA/B,MAAMA,GACFhi7B,YAAYw+Q,EAAM30C,EAAU3C,EAAKyke,IAC7BnusB,KAAKghR,KAAOA,EACZhhR,KAAKqsO,SAAWA,EAChBrsO,KAAK0pO,IAAMA,EACX1pO,KAAKmusB,aAAeA,GACpBnusB,KAAKw10B,YAAc,IAAIpiwB,KAAgB,MACvCpzE,KAAK0vuB,UAAY,IAAIt8pB,KAAgB,MACrCpzE,KAAK4hhB,QAAU,IAAIj6e,IACnB3nC,KAAKi7W,OAAS,IAAItzU,IAClB3nC,KAAKyk7B,qBAAuB,CACxBhz2B,EAAG,EACHmqN,EAAG,GAEP57R,KAAKyt3B,yBAA2Bzt3B,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,UAAU7jT,KAAK6jT,IAAMA,GAChG,CACA,YAAI6goB,GACA,OAAO1k7B,KAAK2k7B,eAChB,CACA,YAAIC,GACA,OAAO5k7B,KAAK6k7B,eAChB,CACA,eAAIC,GACA,OAAO9k7B,KAAK+k7B,kBAChB,CACA,SAAIxulB,GACA,OAAOv2V,KAAKgl7B,WAChB,CACA7guB,cACInkN,KAAKyt3B,yBAAyB/+yB,aAClC,CACA+lvB,YAAYtshB,GACR,MAAM88oB,IAAa98oB,EAAclrM,OAAOg0J,UAAU9M,SAAS,mBACrD+gsB,EAAcvkN,GAAex4b,EAAclrM,OAAQ6hL,IAAMA,GAAG7tB,UAAU9M,SAAS,qBAAsBnkP,KAAKml7B,mBAAmBrC,mBAC7HsC,GAAgBzkN,GAAex4b,EAAclrM,OAAQ6hL,IAAMA,GAAG7tB,UAAU9M,SAAS,4BAA6BnkP,KAAKml7B,mBAAmBrC,mBAC5I,IAAKoC,EACD,OAEJll7B,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAK+k7B,mBAAqBG,EAC1Bll7B,KAAKql7B,YAAcrl7B,KAAKml7B,mBAAmBz91B,MACtCtH,KAAK1M,IAAQA,GAAK6iR,SAAW2ulB,EAAYx9rB,MAAM6uG,MAAK,GAE7D,MAAM+ulB,IAAcL,GAAYjl7B,KAAKw10B,YAAYliwB,YAActzE,KAAKql7B,YAAY7vG,aAAe4vG,GACzFG,GAAkBxkN,GAAY54b,EAAclrM,QAClD,IAAMqo1B,KAAcL,GAAaM,GAC7B,OAGAp9oB,EAAcnkD,iBAElBhkP,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAKsl7B,WAAaA,GAClBtl7B,KAAKil7B,SAAWA,IAEpB,MAAMO,GAAWxl7B,KAAK+k7B,mBAAmB59kB,wBAuCzC,GAtCAnnW,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAKo7F,OAAS,CACV4hM,IAAKmL,EAAcwF,QAAU63oB,GAASxopB,IACtC15J,KAAM6kK,EAAcuF,QAAU83oB,GAASlizB,KACvC7xD,EAAG+z2B,GAAS/z2B,EACZmqN,EAAG4ppB,GAAS5ppB,EACZP,MAAOmqpB,GAASnqpB,MAChB1qC,OAAQ60rB,GAAS70rB,QAErB3wP,KAAKyl7B,WAAa,CACdjoG,QAASx90B,KAAKql7B,YAAY7nG,QAC1BhpD,QAASx0xB,KAAKql7B,YAAY7wJ,SAE9Bx0xB,KAAK+i7B,SAAW,CACZ1npB,OAAQmqpB,GAASnqpB,OAAUr7R,KAAKyl7B,WAAWjxJ,QAAU,GAAKx0xB,KAAKml7B,mBAAmBromB,IAAIq7E,SAAYn4Z,KAAKyl7B,WAAWjxJ,QAClH7jiB,QAAS60rB,GAAS70rB,QAAW3wP,KAAKyl7B,WAAWjoG,QAAU,GAAKx90B,KAAKml7B,mBAAmBromB,IAAIrnH,MAASz1N,KAAKyl7B,WAAWjoG,SAErHx90B,KAAKyk7B,qBAAuB,CACxBhz2B,EAAG02N,EAAcuF,QACjB9R,EAAGuM,EAAcwF,QACrB,GAEJ+hhB,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrDzhzB,KAAMkizB,GAASlizB,KAAO/pC,OAAO4qY,YAAc5qY,OAAOwvd,QAAU,KAC5D/rR,IAAKwopB,GAASxopB,IAAMzjM,OAAO0qY,YAAc1qY,OAAOyvd,QAAU,KAC1D3tR,MAAOmqpB,GAASnqpB,MAAQ,KACxB1qC,OAAQ60rB,GAAS70rB,OAAS,KAC1BwlD,OA9LW,KAgMfu5gB,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrvH,YAAa,CACjE/6kB,QAAS,OACT4V,OAAS60rB,GAAS70rB,OApJF,EAoJkC,OAEtD3wP,KAAKghR,KAAKpkI,IAAI,IAAM58I,KAAKgl7B,YAAchl7B,KAAKql7B,YAAY9ulB,OACxDv2V,KAAK0pO,IAAIq6U,eACT2rQ,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrD9woB,SAAU,UAEVj0S,KAAKw10B,YAAYliwB,aAAe2x2B,EAAU,CAC1Cjl7B,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAK2k7B,gBAAkB3k7B,KAAKql7B,YAAYX,SACxC1k7B,KAAK6k7B,gBAAkB7k7B,KAAKql7B,YAAYT,WAE5C,MAAMc,GAAW1l7B,KAAKql7B,YAAY5vrB,KAAK/vC,cAAcC,cAAc,6BACnE3lN,KAAKqsO,SAAS0hC,SAAS23qB,GAAU,qBACjC1l7B,KAAK0pO,IAAIq6U,cACb,MACS/jjB,KAAK0vuB,WAAau1M,GACvBjl7B,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAK2l7B,cAAgB,CACjB3opB,IAAKmL,EAAcwF,QACnBrqK,KAAM6kK,EAAcuF,SAExB1tS,KAAK4l7B,uBAAyB5l7B,KAAKql7B,YAAY7wJ,QAC/Cx0xB,KAAK6l7B,uBAAyB7l7B,KAAKql7B,YAAY7nG,QAC3Cx90B,KAAKql7B,YAAY5hpB,MACjBzjS,KAAK2k7B,gBAAkB3k7B,KAAKql7B,YAAY5hpB,IAAI7wN,YAE5C5yE,KAAKql7B,YAAY1jtB,MACjB3hO,KAAK6k7B,gBAAkB7k7B,KAAKql7B,YAAY1jtB,IAAI/uJ,YAEhD5yE,KAAK+vV,UAAY5nD,EAAclrM,OAAOg0J,UAAU,EAAC,EAG7D,CACAw/e,WAAWtoc,GACHnoS,KAAK+k7B,qBACD/k7B,KAAKsl7B,WACLtl7B,KAAK8l7B,aAAa39oB,GAEbnoS,KAAKil7B,UACVjl7B,KAAK+l7B,WAAW59oB,GAEpBnoS,KAAKyk7B,qBAAuB,CACxBhz2B,EAAG02N,EAAcuF,QACjB9R,EAAGuM,EAAcwF,SAG7B,CACAynhB,cAAcjthB,GAEV,GADAA,EAAcnkD,iBACVhkP,KAAKsl7B,WAAY,CACjB,MAAMU,EAAehm7B,KAAKql7B,YAAY9ulB,MAChC0vlB,EAAajm7B,KAAKql7B,YAAY5hpB,IAC9ByipB,GAAalm7B,KAAKql7B,YAAY1jtB,IAC9BwktB,GAAYzqC,GAAe174B,KAAK2k7B,iBAChCyB,GAAY1qC,GAAe174B,KAAK6k7B,iBACtC,GAAInC,GAAa,CAAC1i7B,KAAKgl7B,YAAamB,GAAWC,IAAY,CAACJ,EAAcC,EAAYC,KAAc,CAChG,MAAMG,GAAe,IAAIvC,GAAuB9j7B,KAAKql7B,YAAarl7B,KAAKml7B,mBAAmBz91B,MAAO1nF,KAAKgl7B,YAAagB,EAActqC,GAAe174B,KAAK2k7B,iBAAkBsB,EAAYG,GAAWF,IAC9Llm7B,KAAK4hhB,QAAQnzc,KAAK432B,IACbA,GAAa7npB,uBAEVx+R,KAAKghR,KAAKpkI,IADV58I,KAAKgl7B,YAAcgB,EACL,KACV,QAASx22B,GAAIw22B,EAAe,EAAGx22B,IAAKxvE,KAAKgl7B,YAAax12B,KAClDxvE,KAAKml7B,mBAAmBz91B,MAAMtH,KAAK1M,IAAQA,GAAK6iR,QAAU/mR,IAAG+mR,MAAQ/mR,GAAI,GAKnE,KACV,QAASA,GAAIxvE,KAAKgl7B,YAAax12B,GAAIw22B,EAAcx22B,KAC7CxvE,KAAKml7B,mBAAmBz91B,MAAMtH,KAAK1M,IAAQA,GAAK6iR,QAAU/mR,IAAG+mR,MAAQ/mR,GAAI,IAIrFxvE,KAAKql7B,YAAY9ulB,MAAQv2V,KAAKgl7B,YAC1Bhl7B,KAAKql7B,YAAY5hpB,MACjBzjS,KAAKql7B,YAAY5hpB,KAAOzjS,KAAK2k7B,iBAE7B3k7B,KAAKql7B,YAAY1jtB,MACjB3hO,KAAKql7B,YAAY1jtB,KAAO3hO,KAAK6k7B,iBAGzC,CACA7k7B,KAAKml7B,mBAAmBrC,kBAAkB5kqB,YAAYl+Q,KAAKml7B,mBAAmBrvH,aAC9E91zB,KAAK0pO,IAAIq6U,eACT/jjB,KAAKghR,KAAKpkI,IAAI,IAAM58I,KAAK27L,UAC7B,UACU37L,KAAKsl7B,YAActl7B,KAAKil7B,SAAU,CACxC,MAAMqB,EAAiBtm7B,KAAKql7B,YAAY7nG,QAClC+oG,EAAiBvm7B,KAAKql7B,YAAY7wJ,SAChCgyJ,iBAAeC,kBAhaT/+1B,KAga4C1nF,KAAKml7B,mBAAmBz91B,MA/Z7E82K,KAAK9qL,GAAQ44F,GAAU54F,EAAKiuJ,MA+ZQ+ktB,GACrC1m7B,KAAK2m7B,aACL,CAAEH,cAAexm7B,KAAK4l7B,uBAAwBa,cAAezm7B,KAAK6l7B,wBACtE,GAAInD,GAAa,CAAC4D,EAAgBC,GAAiB,CAACE,GAAeD,KAAiB,CAChF,MAAMI,GAAc,IAAIzC,GAAsBnk7B,KAAKql7B,YAAarl7B,KAAKml7B,mBAAmBz91B,MAAO++1B,GAAeH,EAAgBE,GAAeD,GAC7Ivm7B,KAAKi7W,OAAOxsS,KAAKm42B,IACZA,GAAYpopB,uBACbx+R,KAAKql7B,YAAY7wJ,QAAUx0xB,KAAK4l7B,uBAChC5l7B,KAAKql7B,YAAY7nG,QAAUx90B,KAAK6l7B,uBAExC,CACA7l7B,KAAKghR,KAAKpkI,IAAI,IAAM58I,KAAK27L,UAC7B,CACJ,CACAmqvB,aAAazx1B,GAET,MAAM6w1B,EA5ZS7w1B,QACb26mB,SAAyB1iiB,GAAU9yE,SAASqt1B,mBAG3Crt1B,SAASqt1B,kBAAkBxy1B,GAAMq5M,QAASr5M,GAAMs5M,SAClDxrN,OAAOzO,GAAQA,EAAKu9K,YAAcv9K,EAAKu9K,UAAU9M,SAAS,sBAAwBzwK,EAAKu9K,UAAU9M,SAAS,wBAHpG,CAAC9vJ,GAAM4I,QAyZE6p1B,CAAczy1B,GACFjU,KAAKC,IAAKA,KAAMrgF,KAAK+k7B,oBAC3CgC,GAAY7B,GAAeA,EAAYx9rB,MAAM6uG,OAASv2V,KAAK+k7B,mBAAmBr9rB,MAAM6uG,MAC1F,GAAyC,SAArCv2V,KAAKml7B,mBAAmB6B,SAAqB,CAC7C,MAAMl2M,GAASz8oB,EAAMq5M,QAAU1tS,KAAKyk7B,qBAAqBhz2B,EAEnDw12B,GAAan2M,GAAS,EAAI,QAAUA,GAAS,EAAI,YAASzwuB,EAC1D6m7B,GAFS7y1B,EAAMs5M,QAAU3tS,KAAKyk7B,qBAAqB7opB,EAE7B,EAAI,OAASk1c,GAAS,EAAI,UAAOzwuB,EACvDm6S,GAAOx6S,KAAK+k7B,mBAAmB59kB,wBAC/BgglB,GAAgBnn7B,KAAKml7B,mBAAmBromB,IAAIq7E,QAC5CivhB,GAAcpn7B,KAAKml7B,mBAAmBromB,IAAIrnH,KAChD,GAAIwxtB,IAAcjn7B,KAAKql7B,YAAY5hpB,IAAK,CACpC,MAAQA,QAAQo/oB,GAA0B,CACtCpx2B,EAAkB,UAAfw12B,GAAyBzsoB,GAAKj3K,MAAQ4jzB,GAAgB3soB,GAAKl3K,KAAO6jzB,GACrEvrpB,EAAGvnM,EAAMs5M,SACV3tS,KAAKml7B,mBAAmBrC,kBAAmB9i7B,KAAKml7B,mBAAmBromB,IAAK98U,KAAK+i7B,SAAU/i7B,KAAKml7B,mBAAmBhthB,QAASn4Z,KAAK6jT,KAC1HwjoB,GAAiBrn7B,KAAKsn7B,aAAa7jpB,GAAKwjpB,IAC9Cjn7B,KAAK2k7B,gBAAkB0C,GAAez02B,UAC1C,CACA,GAAIs02B,IAAcln7B,KAAKql7B,YAAY1jtB,IAAK,CACpC,MAAQA,QAAQkhtB,GAA0B,CACtCpx2B,EAAG4iB,EAAMq5M,QACT9R,EAAkB,SAAfsrpB,GAAwB1soB,GAAKvd,OAASmqpB,GAAc5soB,GAAKxd,IAAMoqpB,IACnEpn7B,KAAKml7B,mBAAmBrC,kBAAmB9i7B,KAAKml7B,mBAAmBromB,IAAK98U,KAAK+i7B,SAAU/i7B,KAAKml7B,mBAAmBhthB,QAASn4Z,KAAK6jT,KAC1H0joB,GAAiBvn7B,KAAKwn7B,aAAa7ltB,GAAKultB,IAC9Cln7B,KAAK6k7B,gBAAkB0C,GAAe302B,UAC1C,CACJ,CACA,MAAM602B,GAAaV,GAAY/m7B,KAAKgl7B,YAC9B0C,GAAYX,GAAY/m7B,KAAKgl7B,YACnChl7B,KAAKghR,KAAKpkI,IAAI,IAAM58I,KAAKgl7B,YAAc+B,IACnCU,GACAzn7B,KAAKml7B,mBAAmBrC,kBACnBpwqB,aAAa1yQ,KAAKml7B,mBAAmBrvH,YAAa91zB,KAAKml7B,mBAAmBrC,kBAAkBpokB,YAE5FgtkB,IACL1n7B,KAAKml7B,mBAAmBrC,kBAAkB5kqB,YAAYl+Q,KAAKml7B,mBAAmBrvH,aAElFpG,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrD/npB,IAAM3oM,EAAMo5M,MAAQztS,KAAKo7F,OAAO4hM,IAAMzjM,OAAOyvd,QAAW,KACxD1lb,KAAOjvC,EAAMm5M,MAAQxtS,KAAKo7F,OAAOkoC,KAAO/pC,OAAOwvd,QAAW,OAE9D/ojB,KAAK0pO,IAAIq6U,cACb,CACAgiY,WAAW1x1B,GACPq7tB,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrC,kBAAmB,CACvEppoB,OAAQ15S,KAAK+vV,UAAUlzQ,MAAM,aAAa,KAE9C,MAAM8q2B,EAAe3n7B,KAAK6jT,IACtB7jT,KAAKo7F,OAAOigM,OAASr7R,KAAKo7F,OAAO3pB,EAAI4iB,EAAMq5M,SAC3C1tS,KAAKo7F,OAAOigM,OAAShnM,EAAMq5M,QAAU1tS,KAAK2l7B,cAAcrizB,MACtDy1R,EAAgB/4Z,KAAKo7F,OAAOu1J,QAAUt8J,EAAMs5M,QAAU3tS,KAAK2l7B,cAAc3opB,KACzE4qpB,GAAW5n7B,KAAKml7B,mBAAmBrvH,YAAY3ud,wBAC/C0glB,GAAYD,GAASvspB,MACrByspB,GAAaF,GAASj3rB,OACtBo3rB,GAA0B1z1B,EAAMq5M,QAAU1tS,KAAKyk7B,qBAAqBhz2B,EACpEu22B,GAAwB3z1B,EAAMs5M,QAAU3tS,KAAKyk7B,qBAAqB7opB,EAClEqspB,GAAWjo7B,KAAKql7B,YAAY5hpB,IAAMzjS,KAAKql7B,YAAY5hpB,IAAMo/oB,GAA0B,CACrFpx2B,EAAGzxE,KAAK6jT,IAAM+joB,GAASrkzB,MAAQqkzB,GAASn22B,EACxCmqN,EAAGgspB,GAAShspB,GACb57R,KAAKml7B,mBAAmBrC,kBAAmB9i7B,KAAKml7B,mBAAmBromB,IAAK98U,KAAK+i7B,SAAU/i7B,KAAKml7B,mBAAmBhthB,QAASn4Z,KAAK6jT,KAAKpgB,IAC/H0gH,IAAYnkZ,KAAKml7B,mBAAmBhthB,QAAU8vhB,KAAajo7B,KAAK+i7B,SAAS1npB,MAAQr7R,KAAKml7B,mBAAmBromB,IAAIq7E,SAAWn4Z,KAAK+i7B,SAAS1npB,MACtI6spB,GAAqBA,KAIvB,GAHAx4H,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrD1ppB,MAAOl/M,KAAKgkB,IAAIhkB,KAAKikB,IAAIun1B,EAAc3n7B,KAAK+i7B,SAAS1npB,OAAQ8oH,IAAY,OAEzEnkZ,KAAK6jT,KAAO8joB,EAAe3n7B,KAAK+i7B,SAAS1npB,MAAO,CAChD,MAAM06e,GAAa/1wB,KAAKml7B,mBAAmBhthB,SAAWn4Z,KAAK+i7B,SAAS1npB,MAAQr7R,KAAKml7B,mBAAmBromB,IAAIq7E,SAClGgwhB,GAAeno7B,KAAKml7B,mBAAmBrC,kBAAkB37kB,wBAAwB5jO,MAAQwyoB,GAC/F25C,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrDzhzB,KAAMnnD,KAAKikB,IAAI/L,EAAMq5M,QAASy6oB,IAAgB,MAEtD,CACA,MAAMr3M,GAAS62M,EAAeE,IACtBp22B,KAAGmqN,KAAGr4J,UAAUvjI,KAAKql7B,YAAY5vrB,KAAK/vC,cAAcyhJ,yBACpD1jE,QAAQo/oB,GAA0B,CAAEpx2B,EAAIzxE,KAAK6jT,IAAMtgL,GAAQ9xD,GAAImqN,EAAGA,IAAK57R,KAAKml7B,mBAAmBrC,kBAAmB9i7B,KAAKml7B,mBAAmBromB,IAAK98U,KAAK+i7B,SAAU/i7B,KAAKml7B,mBAAmBhthB,QAASn4Z,KAAK6jT,KAGtMukoB,GAAqBpo7B,KAAK6jT,IAAMkkoB,GAA0B,EAAIA,GAA0B,EAC1Fj3M,GApVU,GAoVmB9wuB,KAAK+i7B,SAAS1npB,QAFpBr7R,KAAK6jT,IAAMkkoB,GAA0B,EAAIA,GAA0B,IADvEtkpB,GAAMzjS,KAAK4l7B,wBAKZ5l7B,KAAKml7B,mBAAmBhthB,QAC1Cn4Z,KAAK4l7B,yBAEA5l7B,KAAK4l7B,uBAAyB,GACnCwC,IACAt3M,IAvVkB,GAuVmB9wuB,KAAK+i7B,SAAS1npB,OACnDr7R,KAAK4l7B,yBAETl2H,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrvH,YAAa,CACjEuyH,cAAe,QAAQro7B,KAAK4l7B,0BAC/B,EAqBD5l7B,KAAK+vV,UAAUtxQ,QAAQ,OAAQ,EAC/Byp2B,MAEKlo7B,KAAK+vV,UAAUtxQ,QAAQ,OAAQ,GAIpCyp2B,KA1BqBI,MACrB54H,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrDp0rB,OAAQx0K,KAAKikB,IAAI24T,EAAe/4Z,KAAK+i7B,SAASpyrB,QAAU,OAE5D,MAAM8/J,GAASsI,EAAgB+uhB,GAC3Br3hB,GAvWU,GAuWmBzwZ,KAAK+i7B,SAASpyrB,QAAUq3rB,GAAwB,EAC7Eho7B,KAAK6l7B,yBAEA7l7B,KAAK6l7B,uBAAyB,GACnCmC,GAAwB,GAAKv3hB,IAvWX,GAuWgDzwZ,KAAK+i7B,SAASpyrB,QAChF3wP,KAAK6l7B,yBAETn2H,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrvH,YAAa,CACjEyyH,WAAY,QAAQvo7B,KAAK6l7B,2BAE7Bn2H,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrvH,YAAa,CACjEnlkB,OAAQ,GAAG3wP,KAAKwo7B,2BACnB,EAUDF,GAER,CACA3svB,UAII,GAHA37L,KAAKgl7B,YAAchl7B,KAAK4l7B,uBAAyB5l7B,KAAK2k7B,gBAAkB3k7B,KAAK6l7B,uBAAyB7l7B,KAAK6k7B,qBAAkBxk7B,EAC7HL,KAAKil7B,SAAWjl7B,KAAKsl7B,YAAa,EAClCtl7B,KAAK+vV,UAAY,KACb/vV,KAAK+k7B,mBAAoB,CACzB,MAAM0D,EAAazo7B,KAAK+k7B,mBAAmBp/tB,cAAc,kBACrD8iuB,GACAzo7B,KAAKqsO,SAAS8iC,YAAYs5qB,EAAY,qBAE1C/4H,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAK+k7B,mBAAoB,CACrD/npB,IAAK,GACL15J,KAAM,GACNy3G,QAAS,GACTsgD,MAAO,GACP1qC,OAAQ,GACRwlD,OAAQ,GACRlC,SAAU,KAEdy7gB,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrvH,YAAa,CACjE/6kB,QAAS,OACT4V,OAAQ,SAEZ++jB,GAAiB1vzB,KAAKqsO,SAAUrsO,KAAKml7B,mBAAmBrC,kBAAmB,CACvEppoB,OAAQ,YAEZ15S,KAAK+k7B,mBACD/k7B,KAAKo7F,OACDp7F,KAAKql7B,YACDrl7B,KAAKil7B,SACDjl7B,KAAKsl7B,WACDtl7B,KAAK4l7B,uBACD5l7B,KAAK6l7B,uBACD7l7B,KAAK2l7B,mBAAgBtl7B,EACjDL,KAAKyk7B,qBAAuB,CACxBhz2B,EAAG,EACHmqN,EAAG,EAEX,CACJ,CACA+qpB,aACI,MAAM+B,EAAW1o7B,KAAKql7B,YAAY5vrB,KAAK/vC,cAAcyhJ,wBAC/CwhlB,EAAe9F,GAA0B,CAAEpx2B,EAAGzxE,KAAK6jT,IAAM6koB,EAASnlzB,MAAQmlzB,EAASj32B,EAAGmqN,EAAG8spB,EAAS9spB,GAAK57R,KAAKml7B,mBAAmBrC,kBAAmB9i7B,KAAKml7B,mBAAmBromB,IAAK98U,KAAK+i7B,SAAU/i7B,KAAKml7B,mBAAmBhthB,QAASn4Z,KAAK6jT,KACpO+koB,EAAgB/F,GAA0B,CAC5Cpx2B,EAAGzxE,KAAK6jT,IAAM6koB,EAASj32B,EA3aT,GA2aiCzxE,KAAK+i7B,SAAS1npB,MAAQqtpB,EAASnlzB,MA3ahE,GA2a4FvjI,KAAK+i7B,SAAS1npB,MACxHO,EAAG8spB,EAASzrpB,OA5aE,GA4a2Bj9R,KAAK+i7B,SAASpyrB,QACxD3wP,KAAKml7B,mBAAmBrC,kBAAmB9i7B,KAAKml7B,mBAAmBromB,IAAK98U,KAAK+i7B,SAAU/i7B,KAAKml7B,mBAAmBhthB,QAASn4Z,KAAK6jT,KAChI,MAAO,CACH2ioB,cAAeoC,EAAcnlpB,IAAMklpB,EAAallpB,IAAM,EACtDgjpB,cAAemC,EAAcjntB,IAAMgntB,EAAahntB,IAAM,EAE9D,CACA2ltB,aAAa7jpB,EAAKssD,GACd,OAAI/vV,KAAK6jT,IACgB,SAAdksC,EAAuBtsD,EAAMzjS,KAAKql7B,YAAY7wJ,QAAU,EAAI/wf,EAElD,UAAdssD,EAAwBtsD,EAAMzjS,KAAKql7B,YAAY7wJ,QAAU,EAAI/wf,CACxE,CACA+jpB,aAAa7ltB,EAAKouH,GACd,MAAqB,SAAdA,EAAuBpuH,EAAM3hO,KAAKql7B,YAAY7nG,QAAU,EAAI77mB,CACvE,CACA6mtB,sBAII,OAH6Bxo7B,KAAK6l7B,uBAAyB7l7B,KAAK+i7B,SAASpyrB,QAC5C3wP,KAAK6l7B,uBAAyB,GAAK7l7B,KAAKml7B,mBAAmBromB,IAAIrnH,KAtbxE,CAybxB,EAEJ+utB,UAA0Bn33B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFsurB,IAn+QpBz33B,MAm+Q+DA,OAn+Q/DA,MAm+QqFA,OAn+QrFA,MAm+Q8GA,OAn+Q9GA,MAm+Q+IC,MAAsB,EACxQw33B,GAA0BrurB,WAp+QyEppM,MAAE,CAAAgnC,MAo+QsByw1B,GAAyBp33B,QAAzBo33B,GAAyBn33B,YA/X9Im33B,EAAyB,KAwYzBqE,GAAmC,MAAzC,MAAMA,GACFrm7B,YAAYw+Q,EAAM30C,EAAU8he,GACxBnusB,KAAKghR,KAAOA,EACZhhR,KAAKqsO,SAAWA,EAChBrsO,KAAKmusB,aAAeA,EACpBnusB,KAAK0xsB,UAAY,IAAIt+nB,MAAgB,GACrCpzE,KAAKyt3B,yBAA2Bzt3B,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,UAAU7jT,KAAK6jT,IAAMA,GAChG,CACA1/F,cACInkN,KAAKyt3B,yBAAyB/+yB,aAClC,CACA2nnB,UAAUhimB,EAAOohK,EAAMqzrB,EAAgBj3sB,IACnC,MAAM0+d,GAAUl8mB,EAAMk8mB,QAChBw4O,GAAgBvv1B,SAASisR,gBAAkBhwH,EAC3CuzrB,GAAcn3sB,GAASnqJ,MAAMtH,KAAK1M,IAAQA,GAAK+hL,KAAK/vC,gBAAkB+vC,GACtEguC,GAjiBQwlpB,EAACC,GAAcr3sB,EAAUgyE,KAC3C,MAAM+8X,EAAQsoQ,GAAazzrB,KAAK/vC,cAAcyhJ,wBACxCs+kB,UACOyD,GAAa1rG,QADpBioG,UAEOyD,GAAa10J,QAEpBn5f,IAASulZ,EAAMvlZ,OAAUoqpB,UAAqB,GAAK5zsB,EAASirG,IAAIq7E,SAAYsthB,UAC5E90rB,IAAUiwb,EAAMjwb,QAAW80rB,UAAqB,GAAK5zsB,EAASirG,IAAIrnH,MAASgwtB,WACzEhipB,QAAQo/oB,GAA0B,CAAEpx2B,EAAGmvmB,EAAMnvmB,EAAGmqN,EAAGglZ,EAAMhlZ,GAAK/pD,EAASixsB,kBAAmBjxsB,EAASirG,IAAK,CAAEzhD,MAAOA,GAAO1qC,OAAQA,IAAU9e,EAASsmL,QAASt0G,GACpK,OAAOpgB,IAwhBSwlpB,CAAcD,GAAan3sB,GAAU7xO,KAAK6jT,KAClD0sZ,KAAYC,KAAKE,OAASq4O,IAAiBD,EAAej22B,OAAS,GACnE7yE,KAAKmp7B,eAAe,IAAK1zrB,EAAMqzrB,GAC/BA,EAAe,GAAGljuB,SAEb2qf,KAAYC,KAAKwG,QACtBh3sB,KAAKmp7B,eAAe,KAAM1zrB,EAAMqzrB,GAChCrzrB,EAAK7vC,UAECvxH,EAAM8oQ,SAAW9oQ,EAAM2pjB,UAAY+qS,IAAiBC,GAAYI,aACtE/01B,EAAM2vJ,iBACNhkP,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAK+l7B,WAAWx1O,GAASy4O,GAAan3sB,GAAU4xD,GAAG,IAGlDpvM,EAAM+oQ,UAAY2rlB,IAAiBC,GAAY57E,cACpDpt2B,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAKqp7B,YAAY94O,GAASy4O,GAAan3sB,GAAU4xD,GAAG,GAGnD8sa,KAAYC,KAAK2F,MAAQ4yO,IAC9B/o7B,KAAKytuB,yBAAyBp5oB,EAAOohK,EAE7C,CACA0ulB,WAAW9vvB,EAAOohK,EAAMqzrB,GACpB,MAAMQ,GAAoBR,EAAex22B,SAAS+hB,EAAM4I,QAClDss1B,GAA2BT,EAAex22B,SAAS+hB,EAAM6vJ,eAC3DolsB,KAAsBC,KACtBvp7B,KAAKmp7B,eAAe,KAAM1zrB,EAAMqzrB,GAChCz01B,EAAM6vJ,eAAet+B,QAE7B,CACA8lB,QAAQr3I,EAAOohK,EAAMqzrB,GACSA,EAAex22B,SAAS+hB,EAAM4I,UAEpDj9F,KAAKmp7B,eAAe,IAAK1zrB,EAAMqzrB,GAC/Bz01B,EAAM4I,OAAO2oH,QAErB,CACAujuB,eAAe1zmB,EAAUhgF,EAAMqzrB,GAC3B9o7B,KAAKqsO,SAASwyC,aAAappB,EAAM,WAAyB,MAAbggF,EAAmB,KAAO,KACvEqzmB,EAAe502B,QAASmsqB,KACpBrgvB,KAAKqsO,SAASwyC,aAAawhe,GAAW,WAAY5qa,EAAQ,EAElE,CACAw4Z,wBAAwBp4pB,GACpB,OAAOtyE,MAAMC,KAAKqyE,EAAO0oK,iBAAiBknf,OAAoBtjpB,OAAQmsH,GAAqC,OAAzBA,EAAQizS,aAC9F,CACAwkc,WAAWx1O,EAASy4O,EAAan3sB,EAAU4xD,IACvC,MAAQ+lpB,eAAaC,cAAYC,cAAYC,aA5mBhCC,EAACr5O,GAAS9sa,EAAKylpB,EAAcr3sB,KAKvC,CAAE23sB,YAJWj5O,KAAYC,KAAKsC,YAAcrva,EAAMylpB,EAAa10J,SAAW3ijB,EAASsmL,QAIpEsxhB,WAHHl5O,KAAYC,KAAKuC,WAAam2O,EAAa10J,QAAU,EAGtCk1J,WAFfn5O,KAAYC,KAAKsG,UAEU6yO,SAD7Bp5O,KAAYC,KAAKuG,SAAWmyO,EAAa1rG,QAAU,IAwmBNosG,CAAar5O,EAAS9sa,GAAKulpB,EAAan3sB,GAE5Fg4sB,GAAiBH,IAAcC,GAC/BG,GAAYL,IAAcE,IAAW,EAAK,EAFvBF,IAAcD,GAInCR,EAAYx0J,SAAWs1J,GAElBD,KACLb,EAAYxrG,SAAWssG,GAE/B,CACAT,YAAY94O,EAASy4O,EAAan3sB,EAAU4xD,IACxC,MAAQsmpB,eAAaC,iBA9mBPC,EAAC15O,GAAS9sa,EAAKylpB,EAAcr3sB,KAC/C,IAAIm4sB,EACAD,GACJ,OAAIb,EAAazlpB,KACbumpB,EAAez5O,KAAYC,KAAKsC,YAAco2O,EAAa10J,QAAU/wf,GAAO5xD,EAASsmL,QACrF4xhB,GAAcx5O,KAAYC,KAAKuC,WAAatva,EAAM,IAGlDumpB,EAAez5O,KAAYC,KAAKsC,YAAco2O,EAAa10J,QAAU00J,EAAa3ylB,MAAQ1kH,EAASnqJ,MAAM7U,OACzGk32B,GAAcx5O,KAAYC,KAAKuC,WAAam2O,EAAa3ylB,MAAQ,GAE9D,CAAEwzlB,eAAaC,eAAa,EAmmBOC,CAAc15O,EAAS9sa,GAAKulpB,EAAan3sB,GACzEq4sB,GAAiBA,KACnB,MAAMC,GAAWnq7B,KAAKoq7B,WAAWpB,EAAan3sB,EAASnqJ,MAAO,GAC1Dyi2B,KACAnB,EAAYzylB,OAAS,EACrB4zlB,GAAS5zlB,OAAS,IAGpB8zlB,GAAgBA,KAClB,MAAMC,GAAWtq7B,KAAKoq7B,WAAWpB,EAAan3sB,EAASnqJ,OAAO,GAC1D4i2B,KACAtB,EAAYzylB,OAAS,EACrB+zlB,GAAS/zlB,OAAS,KAGtByzlB,IAAgBD,MAEZf,EAAYvlpB,IACZulpB,EAAYvlpB,KAFGumpB,GAAe,GAAI,EAKlCA,GAAeE,KAAmBG,KAG9C,CACA58M,yBAAyBp5oB,EAAOwsM,GAC5B,MAAOm7Z,EAAgBkyC,IAAiBluuB,KAAKmuuB,yBAAyBttc,GAEhEutc,GAA8B/5oB,EAAM+oQ,UAAY/oQ,EAAM4I,SAAW++lB,GADxC3nmB,EAAM+oQ,UAAY/oQ,EAAM4I,SAAWixoB,KAG9D75oB,EAAM2vJ,iBACNg4c,EAAep2e,QACfi7E,EAAQzzD,QAERghgB,KACA/5oB,EAAM2vJ,iBACNkqf,GAActohB,QAEtB,CACAuohB,yBAAyBt4pB,GACrB,MAAMs5K,EAAMnvP,KAAKiuuB,wBAAwBp4pB,GAGzC,MAAO,CAFgBs5K,EAAIt8K,OAAS,EAAIs8K,EAAI,GAAKt5K,EAC3Bs5K,EAAIt8K,OAAS,EAAIs8K,EAAIA,EAAIt8K,OAAS,GAAKgD,EAEjE,CACAu02B,WAAWpB,EAAath2B,EAAO0T,GAC3B,OAAO1T,EAAMtH,KAAK1M,IAAQA,GAAK6iR,QAAUyylB,EAAYzylB,MAAQn7P,EACjE,EAEJyt1B,UAAoCx73B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF2yrB,IA1mR9B973B,MA0mRmFA,OA1mRnFA,MA0mRyGA,OA1mRzGA,MA0mRkIC,MAAsB,EAC3P673B,GAAoC1yrB,WA3mR+DppM,MAAE,CAAAgnC,MA2mRgC801B,GAAmCz73B,QAAnCy73B,GAAmCx73B,YA9HlKw73B,EAAmC,KAuInC0B,GAA6B,MAAnC,MAAMA,GACF/n7B,YAAYq6oB,EAAQxwa,GAChBrsO,KAAK68oB,OAASA,EACd78oB,KAAKqsO,SAAWA,EAChBrsO,KAAKozsB,WAAY,CACrB,CAIA,eAAIoiI,CAAYt10B,GACZ,MAAMwtQ,EAAc1tQ,KAAK68oB,OAAOn3b,cAC5BxlN,GACAF,KAAKqsO,SAAS0hC,SAASL,EAAa,uBACpC1tQ,KAAKqsO,SAAS8iC,YAAYzB,EAAa,yBAGvC1tQ,KAAKqsO,SAAS0hC,SAASL,EAAa,uBACpC1tQ,KAAKqsO,SAAS8iC,YAAYzB,EAAa,uBAE/C,EAEJ68qB,UAA8Bl93B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFq0rB,IAzoRxBx93B,MAyoRuEA,OAzoRvEA,MAyoRiGA,OAAY,EAChNw93B,GAA8BtwX,UA1oRqEltgB,MAAE,CAAA5jD,KA0oRUoh7B,GAA6BtquB,UAAA,mCAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GA1oRzC/hE,MAAE,2BAAAonF,EAAAi/jB,UAAFrmpB,CA0oRyC,gBAAAonF,EAAAi/jB,UAAA,EAAAlzf,OAAA,CAAAs1nB,YAAA,eAAA/4lB,YAAA,EAAA1nJ,SAAA,CA1oRzChoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GA2oRpE,EAAA84J,cAAA,IAvB3B0kuB,EAA6B,KA+C7BC,GAA+B,MAArC,MAAMA,GACFho7B,YAAYs8Q,EAAIzyC,GACZrsO,KAAK8+Q,GAAKA,EACV9+Q,KAAKqsO,SAAWA,CACpB,CACA/sB,WACIt/M,KAAKyq7B,YACT,CACAC,sBAAsBp8uB,GAClBtuM,KAAKqsO,SAAS2yC,SAAS1wE,EAAStuM,KAAK6jT,IAAM,OAAS,SAAU2/nB,GAAyBxj7B,KAAK2q7B,iBAAiBjH,SAAW,KAC5H,CACAkH,UAAUt8uB,GACNtuM,KAAKqsO,SAAS2yC,SAAS1wE,EAAS,UAAWk1uB,GAAyBxj7B,KAAK2q7B,iBAAiBhH,SAAW,KACzG,CACA8G,aACI,MAAMn8uB,EAAUtuM,KAAK8+Q,GAAGp5D,cAGlBmluB,EAAerH,GAAyBxj7B,KAAK2q7B,iBAAiBh6rB,OAChE,GAAG6yrB,GAAyBxj7B,KAAK2q7B,iBAAiBh6rB,WAAa,OACnE3wP,KAAKqsO,SAAS2yC,SAAS1wE,EAAS,QAJZk1uB,GAAyBxj7B,KAAK2q7B,iBAAiBtvpB,MAC/D,GAAGmopB,GAAyBxj7B,KAAK2q7B,iBAAiBtvpB,UAAY,QAIlEr7R,KAAKqsO,SAAS2yC,SAAS1wE,EAAS,SAAUu8uB,GACb,OAAzB7q7B,KAAK2q7B,gBACL3q7B,KAAK0q7B,sBAAsBp8uB,IAEG,OAAzBtuM,KAAK2q7B,iBAIV3q7B,KAAK0q7B,sBAAsBp8uB,GAH3BtuM,KAAK4q7B,UAAUt8uB,GAMvB,EAEJk8uB,UAAgCn93B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFs0rB,IArsR1Bz93B,MAqsR2EA,OArsR3EA,MAqsRqGA,OAAY,EACpNy93B,GAAgCvhZ,UAtsRmEl8e,MAAE,CAAA5jD,KAssRYqh7B,GAA+BvquB,UAAA,wCAAAC,OAAA,CAAAyquB,gBAAA,kBAAA9moB,IAAA,OAAApnE,YAAA,IAnC1I+tsB,EAA+B,KAmD/BM,GAAuB,MAA7B,MAAMA,GACFto7B,YAAYizP,EAAMurB,EAAM30C,EAAU8he,GAAc48O,GAAiBC,IAC7Dhr7B,KAAKy1P,KAAOA,EACZz1P,KAAKghR,KAAOA,EACZhhR,KAAKqsO,SAAWA,EAChBrsO,KAAKmusB,aAAeA,GACpBnusB,KAAK+q7B,gBAAkBA,GACvB/q7B,KAAKgr7B,0BAA4BA,GAKjChr7B,KAAKw90B,QAAU,EAKfx90B,KAAKw0xB,QAAU,EAMfx0xB,KAAKw10B,aAAc,EAKnBx10B,KAAK0vuB,WAAY,EACjB1vuB,KAAKir7B,WAAY,EACjBjr7B,KAAK6v1B,SAAW,WAIhB7v1B,KAAKwnuB,QAAU,GACfxnuB,KAAK0usB,KAAO,IAAIn3K,MAChBv3hB,KAAK0usB,KAAKj7nB,IAAIzzE,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,WACjD7jT,KAAK6jT,IAAMA,MAEf7jT,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK+q7B,gBAAgBr7M,UAAUlorB,UAAUkorB,KACnD1vuB,KAAK+puB,iBAAmB2F,IAAa1vuB,KAAK0vuB,UACtC1vuB,KAAK6jT,IAAM0/nB,GAAwBj5M,QAAoBjquB,KAE/DL,KAAKwnuB,QAt5BF,yBAAe/jnB,EAu5BtB,CAMA,SAAI8yO,CAAMr2V,GACNF,KAAK8s6B,OAAS5s6B,EACdF,KAAKqsO,SAAS2yC,SAASh/Q,KAAKy1P,KAAK/vC,cAAe,QAAS,GAAG1lN,KAAK8s6B,SACrE,CACA,SAAIv2kB,GACA,OAAOv2V,KAAK8s6B,MAChB,CACA,kBAAIoe,GACA,OAAOlr7B,KAAKop7B,aAAepp7B,KAAKot2B,cAAgB,eAAY/s2B,CAChE,CACA,gBAAI6i5B,GACA,OAAOlj5B,KAAKgn0B,YAAc,SAAM3m0B,CACpC,CACA,oBAAI8q7B,GACA,OAAOnr7B,KAAKgn0B,YAAc,aAAU3m0B,CACxC,CACA,eAAI+q7B,GACA,OAAOpr7B,KAAKop7B,aAAepp7B,KAAKot2B,aACpC,CACA,kBAAIi+E,GACA,OAAOrr7B,KAAK6hJ,MAAQ7hJ,KAAKwnuB,aAAUnnuB,CACvC,CACA,UAAIir7B,GACA,MAAO,QAAQtr7B,KAAKw0xB,SACxB,CACA,UAAI+2J,GACA,MAAO,QAAQvr7B,KAAKw90B,SACxB,CACA,YAAIknG,GACA,OAAOp4wB,GAAUtsK,KAAKyjS,KAAOzjS,KAAKyjS,IAAI7wN,gBAAavyE,CACvD,CACA,YAAIuk7B,GACA,OAAOt4wB,GAAUtsK,KAAK2hO,KAAO3hO,KAAK2hO,IAAI/uJ,gBAAavyE,CACvD,CAIA,iBAAI+s2B,GACA,OAAOpt2B,KAAKw10B,aAAex10B,KAAK+q7B,gBAAgBv1G,YAAYliwB,UAChE,CAIA,eAAI0zvB,GACA,OAAOhn0B,KAAKgr7B,0BAA0Bt5O,UAAUp+nB,UACpD,CAIA,eAAI812B,GACA,OAAOpp7B,KAAK0vuB,WAAa1vuB,KAAK+q7B,gBAAgBr7M,UAAUp8pB,UAC5D,CACAw+I,kBACI,MAAM2jC,EAAOz1P,KAAKy1P,KAAK/vC,cACjB8luB,EAAqBxr7B,KAAKgr7B,0BAChChr7B,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK+q7B,gBAAgBv1G,YAAYhuxB,UAAUguxB,IACrDx10B,KAAKyr7B,kBAAkBj2G,GAAex10B,KAAKw10B,aACvCx10B,KAAKgwE,SAASm8H,QACdnsM,KAAKgwE,QAAQm8H,MAAMqpoB,YAAcA,GAAex10B,KAAKw10B,gBAG7Dx10B,KAAK0usB,KAAKj7nB,IAAI+32B,EAAmB95O,UAAUlqpB,UAAUw/wB,IAC7CA,GACAhn0B,KAAK0r7B,uBAAyB,IAAIn0Z,MAClCv3hB,KAAK8o7B,eAAiB0C,EAAmBv9M,wBAAwBx4e,GACjEz1P,KAAKghR,KAAKX,kBAAkB,KACxBmrqB,EAAmBrC,eAAe,KAAM1zrB,EAAMz1P,KAAK8o7B,gBACnD9o7B,KAAK0r7B,uBAAuBj42B,IAAIzzE,KAAKqsO,SAASE,OAAOkpB,EAAM,UAAWphK,IAASm31B,EAAmBn1P,UAAUhimB,GAAOohK,EAAMz1P,KAAK8o7B,eAAgB9o7B,KAAK+q7B,gBAAgB5F,sBACnKnl7B,KAAK0r7B,uBAAuBj42B,IAAIzzE,KAAKqsO,SAASE,OAAOkpB,EAAM,QAASphK,IAASm31B,EAAmB9/sB,QAAQr3I,GAAOohK,EAAMz1P,KAAK8o7B,kBAC1H9o7B,KAAK0r7B,uBAAuBj42B,IAAIzzE,KAAKqsO,SAASE,OAAOkpB,EAAM,WAAYphK,IAASm31B,EAAmBrnG,WAAW9vvB,GAAOohK,EAAMz1P,KAAK8o7B,iBAAgB,IAG/I9o7B,KAAK8o7B,iBACV9o7B,KAAK8o7B,eAAe502B,QAASmsqB,KACzBrgvB,KAAKqsO,SAASwyC,aAAawhe,GAAW,WAAY,IAAG,GAEzDrgvB,KAAK0r7B,uBAAuBh92B,cAAY,GAGpD,CACA6wI,YAAY5Y,GACJA,EAAQ6uoB,cAAmB7uoB,EAAQ6uoB,YAAerqQ,aAClDnrkB,KAAKyr7B,kBAAkB9kvB,EAAQ6uoB,YAAe1juB,cAAgB9xG,KAAK+q7B,gBAAgBv1G,YAAYliwB,YAE/FqzH,EAAQ+oiB,YACR1vuB,KAAK+puB,iBAAmB/puB,KAAK0vuB,WAAa1vuB,KAAK+q7B,gBAAgBr7M,UAAUp8pB,WACrEtzE,KAAK6jT,IAAM0/nB,GAAwBj5M,QAAoBjquB,EAEnE,CACA8jN,cACInkN,KAAK0usB,KAAKhgoB,cACN1uE,KAAK0r7B,wBACL1r7B,KAAK0r7B,uBAAuBh92B,aAEpC,CACA+82B,kBAAkBr+E,GACd,MAAMs4E,EAAW1l7B,KAAKy1P,KAAK/vC,cAAcC,cAAc,6BAClD+/tB,IAGDt4E,EACApt2B,KAAKqsO,SAAS0hC,SAAS23qB,EAAU,iBAGjC1l7B,KAAKqsO,SAAS8iC,YAAYu2qB,EAAU,iBAE5C,EAEJoF,UAAwBz93B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF40rB,IAp3RlB/93B,MAo3R2DA,OAp3R3DA,MAo3RqFA,OAp3RrFA,MAo3R2GA,OAp3R3GA,MAo3RoIC,MAp3RpID,MAo3RuKy33B,IAp3RvKz33B,MAo3R6M873B,IAAmC,EACnViC,GAAwB7wX,UAr3R2EltgB,MAAE,CAAA5jD,KAq3RI2h7B,GAAuB7quB,UAAA,4BAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAA+yB,GAA/yB,EAAA5le,GAr3R7B/hE,MAAE2niB,EAq3R6yB61V,GAA6B,KAAAz7zB,EAAA,KAAAw6iB,GAr3R50Bv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAnkE,QAAAs5lB,GAAA,GAAA1nc,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,OAAAonF,EAAA07sB,SAAF9iyB,CAAE,kBAAAonF,EAAA+2yB,eAAFn+3B,CAAE,WAAAonF,EAAA+uwB,aAAFn21B,CAAE,oBAAAonF,EAAAg3yB,iBAAFp+3B,CAAE,eAAAonF,EAAAi3yB,YAAFr+3B,CAAE,kBAAAonF,EAAAk3yB,gBAAFt+3B,MAAE,kBAAAonF,EAAAm3yB,OAAFv+3B,CAq3R6B,eAAAonF,EAAAo3yB,OAr3R7Bx+3B,CAq3R6B,oBAAAonF,EAAAuwyB,SAr3R7B333B,CAq3R6B,iBAAAonF,EAAAywyB,UAr3R7B733B,MAAE,oBAAAonF,EAAA82yB,UAAFl+3B,CAq3R6B,SAAAonF,EAAA82yB,WAAA,EAAA/quB,OAAA,CAAAr+D,MAAA,QAAA27rB,QAAA,UAAAhpD,QAAA,UAAAj+b,MAAA,QAAA9yD,IAAA,MAAA9hE,IAAA,MAAA6zmB,YAAA,cAAA9lG,UAAA,aAAAjzf,YAAA,EAAA1nJ,SAAA,CAr3R7BhoC,aAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAC,OAAA,0OAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,EAAAi22B,GAAA,sCAAFj22B,MAAE,GAAFA,MAAE,EAAAo22B,GAAA,uBA03R7D,EAAAr0yB,IA13R2D/hE,MAAE,OAAAonF,EAAA0N,OAAF90F,MAAE,GAAFA,MAAE,OAAAonF,EAAAu7lB,WA03R/D,EAAA7wiB,aAAA,CAS2BwgX,KAAiGkrY,GAA+HlwO,KAAwHmwO,IAA+B3kuB,cAAA,IA7KlbiluB,EAAuB,KA6P7B,MAAMa,GAAkB,CACpBjikB,OAAQ,kBACR/nJ,IAAK,kBACL,eAAgB,wBAChB,YAAa,yBAEjB,IAGMiqtB,GAAmB,MAAzB,MAAMA,GACFpp7B,YAAYw+Q,EAAMvrB,EAAMppB,EAAU8he,GAAc48O,GAAiBvzO,IAC7Dx3sB,KAAKghR,KAAOA,EACZhhR,KAAKy1P,KAAOA,EACZz1P,KAAKqsO,SAAWA,EAChBrsO,KAAKmusB,aAAeA,GACpBnusB,KAAK+q7B,gBAAkBA,GACvB/q7B,KAAKw3sB,kBAAoBA,GAKzBx3sB,KAAKm4Z,QAAU,EAKfn4Z,KAAKi5Z,YAAc,MAKnBj5Z,KAAKw10B,aAAc,EAKnBx10B,KAAK0vuB,WAAY,EAKjB1vuB,KAAK6zyB,UAAY,MAajB7zyB,KAAKgn7B,SAAW,SAOhBhn7B,KAAK0xsB,WAAY,EAKjB1xsB,KAAK4hhB,QAAU,IAAIxiU,MAKnBp/M,KAAKi7W,OAAS,IAAI77J,MAClBp/M,KAAKozsB,WAAY,EACjBpzsB,KAAK6v1B,SAAW,OAIhB7v1B,KAAKwxtB,sBAAuB,EAC5BxxtB,KAAK0usB,KAAO,IAAIn3K,MAChBv3hB,KAAK6r7B,KAAO,CACRp2tB,KAAM,GACN0iM,QAAS,IAEb,MAAMxsS,MAAUgjlB,KAAgB5B,IAChC/ssB,KAAKwxtB,wBAAuBI,MAAuBjmmB,GACvD,CASA,OAAImxN,CAAI58U,GACJF,KAAK6r7B,KAAyB,iBAAV3r7B,EAAsB,CAAEu1N,KAAMv1N,EAAOi4Z,QAASj4Z,GAAUs2E,OAAO8mI,OAAOt9M,KAAK6r7B,KAAM3r7B,EACzG,CACA,OAAI48U,GACA,OAAO98U,KAAK6r7B,IAChB,CACA,YAAIC,GACA,MAAO,GAAG9r7B,KAAK88U,IAAIrnH,UAAUz1N,KAAK88U,IAAIq7E,WAC1C,CACA,mBAAIwshB,GACA,OAAO3k7B,KAAK+q7B,gBAAgBrG,QAChC,CACA,mBAAIG,GACA,OAAO7k7B,KAAK+q7B,gBAAgBnG,QAChC,CACA,sBAAIG,GACA,OAAO/k7B,KAAK+q7B,gBAAgBjG,WAChC,CACA,eAAIE,GACA,OAAOhl7B,KAAK+q7B,gBAAgBx0lB,KAChC,CACAj3I,WACIt/M,KAAK+r7B,kBACL/r7B,KAAKgs7B,kBACLhs7B,KAAK+q7B,gBAAgBv1G,YAAY/mwB,KAAKzuE,KAAKw10B,aAC3Cx10B,KAAK+q7B,gBAAgBr7M,UAAUjhqB,KAAKzuE,KAAK0vuB,WACzC1vuB,KAAKw3sB,kBAAkB9F,UAAUjjoB,KAAKzuE,KAAK0xsB,YAAS,EAChDV,MAAahxsB,KAAK4hhB,UAClB5hhB,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK+q7B,gBAAgBnpa,QAAQp6d,UAAU7jD,GAAK3D,KAAK4hhB,QAAQ5xX,KAAKrsJ,MAAG,EAE/EqtsB,MAAahxsB,KAAKi7W,SAClBj7W,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK+q7B,gBAAgB9vkB,OAAOzzT,UAAU7jD,GAAK3D,KAAKi7W,OAAOjrN,KAAKrsJ,KAE9E3D,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK+q7B,gBAAgBv1G,YAAYhuxB,UAAUguxB,IACjDA,IAAgBx10B,KAAK0guB,WACrB1guB,KAAKis7B,qBAAoB,IAGjCjs7B,KAAK0usB,KAAKj7nB,IAAIzzE,KAAK+q7B,gBAAgBr7M,UAAUlorB,UAAUkorB,IAC/CA,IAAc1vuB,KAAK0guB,WACnB1guB,KAAKis7B,qBAAoB,IAGjCjs7B,KAAK0usB,KAAKj7nB,IAAIzzE,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,UACjD7jT,KAAK+vV,UAAYlsC,EAAM,MAAQ,QAEvC,CACA/xF,kBACI9xN,KAAK+q7B,gBAAgB5F,mBAAqBnl7B,KAAKks7B,wBAC/Cls7B,KAAKms7B,cAAc,KAAMR,GAAgB3r7B,KAAKgn7B,WAC9Chn7B,KAAK0nF,MAAMi/G,QAAQn/I,UAAU,KACzBxnD,KAAKos7B,gBACLps7B,KAAK+q7B,gBAAgB5F,mBAAmBz91B,MAAQ1nF,KAAK0nF,MAAMwxT,SAAQ,EAE3E,CACA84L,qBACIhykB,KAAKos7B,eACT,CACA7suB,YAAY5Y,IACJA,EAAQwxN,SAAcxxN,EAAQsyN,cAC9Bj5Z,KAAK+r7B,kBAELplvB,EAAQktmB,WACR7zyB,KAAKgs7B,mBAAgB,EAErBl7O,MAAU,cAAenqgB,IACzB3mM,KAAK+q7B,gBAAgBv1G,YAAY/mwB,KAAKk4H,EAAQ6uoB,YAAe1juB,eAAY,EAEzEg/lB,MAAU,YAAanqgB,IACvB3mM,KAAK+q7B,gBAAgBr7M,UAAUjhqB,KAAKk4H,EAAQ+oiB,UAAa59nB,eAEzD60F,EAAQm2I,KAAUn2I,EAAQqgvB,UAAergvB,EAAQwxN,WACjDn4Z,KAAK+q7B,gBAAgB5F,mBAAqBnl7B,KAAKks7B,wBAC3CvlvB,EAAQqgvB,UACRhn7B,KAAKms7B,cAAcR,GAAgBhlvB,EAAQqgvB,SAAYthsB,gBAAkB,GAAIimsB,GAAgBhlvB,EAAQqgvB,SAAYl10B,iBAAa,EAGlIg/lB,MAAU,YAAanqgB,IACvB3mM,KAAKw3sB,kBAAkB9F,UAAUjjoB,KAAKk4H,EAAQ+qgB,UAAa5/lB,aAEnE,CACAqyG,cACQnkN,KAAK0guB,WACL1guB,KAAK0guB,UAAUx0d,UAEnBlsQ,KAAK0usB,KAAKhgoB,aACd,CACA+lvB,aAActshB,kBACVnoS,KAAK+q7B,gBAAgBt2H,YAAYtshB,EACrC,CACAsoc,YAAatoc,kBACTnoS,KAAK+q7B,gBAAgBt6M,WAAWtoc,EACpC,CACAithB,eAAgBjthB,kBACZnoS,KAAK+q7B,gBAAgB31H,cAAcjthB,EACvC,CACA4jpB,kBAGI/r7B,KAAKqsO,SAAS2yC,SAASh/Q,KAAKy1P,KAAK/vC,cAAe,wBADf,UAAU1lN,KAAKm4Z,YADH,iBAArBn4Z,KAAKi5Z,YAA2B,GAAGj5Z,KAAKi5Z,gBAAkBj5Z,KAAKi5Z,eAG3F,CACA+yhB,kBAGIhs7B,KAAKqsO,SAAS2yC,SAASh/Q,KAAKy1P,KAAK/vC,cAAe,iBADtB,GADkB,iBAAnB1lN,KAAK6zyB,UAAyB,GAAG7zyB,KAAK6zyB,cAAgB7zyB,KAAK6zyB,YAGxF,CACAq4I,wBACI,MAAO,CACHpJ,kBAAmB9i7B,KAAKy1P,KAAOz1P,KAAKy1P,KAAK/vC,mBAAgBrlN,EACzDy1zB,YAAa91zB,KAAKqtX,KAAOrtX,KAAKqtX,KAAK3nK,mBAAgBrlN,EACnDy8U,IAAK98U,KAAK88U,IACVq7E,QAASn4Z,KAAKm4Z,QACd6uhB,SAAUhn7B,KAAKgn7B,SACft/1B,MAAO1nF,KAAK0nF,MAAQ1nF,KAAK0nF,MAAMwxT,UAAY,GAEnD,CACA+yiB,sBACIjs7B,KAAK0guB,UAAY,IAAIliT,KAAU,CAC3B/0I,MAAOzpS,KAAKy0zB,YAAY1zuB,KAAK/gF,MAC7Bw+W,KAAMx+W,KAAKywuB,WAAW1vpB,KAAK/gF,MAC3BmrR,QAASnrR,KAAKo1zB,cAAcr0uB,KAAK/gF,QAErCA,KAAKghR,KAAKX,kBAAkB,IAAMrgR,KAAK0guB,UAAUhhT,OAAO1/a,KAAKy1P,KAAK/vC,eACtE,CACAymuB,cAAcE,EAAeC,GACzB,MAAMh+uB,EAAUtuM,KAAKy1P,KAAK/vC,cACtB2muB,GACArs7B,KAAKqsO,SAAS8iC,YAAY7gE,EAAS+9uB,GAEjB,SAAlBrs7B,KAAKgn7B,UAAuB16wB,GAAUggxB,IACtCts7B,KAAKqsO,SAAS0hC,SAASz/D,EAASg+uB,EAExC,CACAF,gBACIps7B,KAAK0nF,MAAMxT,QAAQ,CAACR,EAAMG,KACjBy4F,GAAU54F,EAAK6iR,SAChB7iR,EAAK6iR,MAAQ1iR,IAGzB,EAEJ+32B,UAAoBv+3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF01rB,IA9rSd7+3B,MA8rSmDA,OA9rSnDA,MA8rSyEA,OA9rSzEA,MA8rSmGA,OA9rSnGA,MA8rS4HC,MA9rS5HD,MA8rS+Jy33B,IA9rS/Jz33B,MA8rSqM873B,IAAmC,EAC3U+C,GAAoB3xX,UA/rS+EltgB,MAAE,CAAA5jD,KA+rSAyi7B,GAAmB3ruB,UAAA,uBAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAQ5C,GAR4C,EAAA5le,GA/rSrB/hE,MAAE2niB,EAusShDo2V,GAAuB,KAAAh8zB,EAAA,KAAAw6iB,GAvsSuBv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAzsD,MAAA4hlB,GAAA,GAAA5yc,UAAA,SAAA5nG,EAAAqlB,GAAA,KAAArlB,GAAF/hE,MAAEq3wB,GAAA,KAAAt1sB,EAAA,KAAAw6iB,EAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAk5O,KAAAi8S,EAAAn9d,MAAA,GAAAy1B,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAAF/hE,MAAE,OAAAonF,EAAA07sB,SAAF9iyB,CAAE,MAAAonF,EAAA47M,WAAFhjS,MAAE,MAAAonF,EAAA23yB,SAAF/+3B,CA+rSqB,UAAAonF,EAAA23yB,UA/rSrB/+3B,MAAE,eAAAonF,EAAAi/jB,UAAFrmpB,CA+rSqB,iBAAAonF,EAAAi/jB,WAAA,EAAAlzf,OAAA,CAAAi4M,QAAA,UAAAc,YAAA,cAAAn8E,IAAA,MAAA04f,YAAA,cAAA9lG,UAAA,YAAAmkE,UAAA,YAAAmzI,SAAA,WAAAt1O,UAAA,aAAAvxf,QAAA,CAAAyhU,QAAA,UAAA3mK,OAAA,UAAAx+H,YAAA,EAAA1nJ,SAAA,CA/rSrBhoC,MA+rSijB,CAC5oBqkpB,KACAozO,GACAqE,GACA,CACI/22B,QAASu/nB,KACT7vb,SAAU,gCArsS6Ez0N,aAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,GAAAC,OAAA,uIAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GAAFA,MAAE,aAAFA,MAAE,EAAAq22B,GAAA,cAktSrC,EAAAt0yB,IAltSmC/hE,cAAE,iBAAFA,CA0sS/D,QAAAonF,EAAA6wyB,YA1sS+Dj43B,CA2sS5D,wBAAAonF,EAAA4wyB,mBAAA,KAAA5wyB,EAAA4wyB,mBAAAr9rB,MAAA2gsB,cA3sS4Dt73B,CA4sSxB,qBAAAonF,EAAA4wyB,mBAAA,KAAA5wyB,EAAA4wyB,mBAAAr9rB,MAAA6gsB,WA5sSwBx73B,CA6sS9B,oBAAAonF,EAAAwwyB,gBA7sS8B533B,CA8sS9C,iBAAAonF,EAAA0wyB,gBA9sS8C933B,CA+sSjD,eA/sSiDA,MAAE,GAAFA,MAAE,OAAAonF,EAAAq9kB,sBAktSvC,EAAA3yhB,aAAA,CACGwgX,KAAiG60K,MAAyBrugB,cAAA,IAvPrL+luB,EAAmB,KAsUnBW,GAA2B,MAAjC,MAAMA,GACF/p7B,cACIxC,KAAKozsB,WAAY,EACjBpzsB,KAAK2hY,UAAY,CACrB,EAEJ4qjB,UAA4Bl/3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFq2rB,GAA2B,EACpJA,GAA4BtyX,UAzySuEltgB,MAAE,CAAA5jD,KAyySQoj7B,GAA2BtsuB,UAAA,iCAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAzySrC/hE,MAAE,aAAAonF,EAAAwtP,WAAF50U,MAAE,yBAAAonF,EAAAi/jB,UAAFrmpB,CAyySqC,cAAAonF,EAAAi/jB,WAAA,EAAA32d,YAAA,EAAA1nJ,SAAA,CAzySrChoC,OAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GA0ySpE,EAAA84J,cAAA,IAR3B0muB,EAA2B,KAiCjC,MAAMC,GAAkB,CACpBxvpB,IAAK,QACLyU,OAAQ,SACRxU,OAAQ,MACRwvpB,QAAS,WAKPC,GAAiB,oBAQjBC,GAAe,gBA8ErB,IAGMC,GAAmB,MAAzB,MAAMA,GACFpq7B,YAAY6pO,EAAU/9B,EAAS6/f,GAC3BnusB,KAAKqsO,SAAWA,EAChBrsO,KAAKsuM,QAAUA,EACftuM,KAAKmusB,aAAeA,EACpBnusB,KAAKozsB,WAAY,EAKjBpzsB,KAAK88U,IAAM,EACX98U,KAAKm9sB,OAAS,CACVhoY,WAAY,UACZx4B,SAAU,YACd,EACAgyZ,KAAgB5B,GACpB,CACA,OAAIhyY,GACA,OAAO/6T,KAAK+vV,SAChB,CAKA,SAAI/+C,CAAMA,GACNhxS,KAAKm9sB,OAAS3moB,OAAO8mI,OAAO,CAAC,EAAGt9M,KAAKm9sB,OAAQnsa,GAC7ChxS,KAAK6s7B,oBACT,CACA,SAAI77oB,GACA,OAAOhxS,KAAKm9sB,MAChB,CACArrf,kBACI9xN,KAAK6s7B,qBACL7s7B,KAAK8s7B,0BAA0B,QAC/B9s7B,KAAK8s7B,0BAA0B,QAC/B9s7B,KAAK+s7B,QACT,CACAxtuB,YAAY5Y,IACR,EAAImqgB,MAAU,MAAOnqgB,IACjB3mM,KAAK+s7B,UAAO,EAEZj8O,MAAU,OAAQnqgB,IAClB3mM,KAAK8s7B,0BAA0B,SAAM,EAErCh8O,MAAU,OAAQnqgB,IAClB3mM,KAAK8s7B,0BAA0B,OAEvC,CACAD,qBACI,MAAMp3rB,EAAOz1P,KAAKsuM,QAAQoX,cACtBp5C,GAAUtsK,KAAKgt7B,eACfht7B,KAAKqsO,SAAS8iC,YAAY1Z,EAAMz1P,KAAKgt7B,cAErC1gxB,GAAUtsK,KAAK09sB,aACf19sB,KAAKqsO,SAAS8iC,YAAY1Z,EAAMz1P,KAAK09sB,YAEzC19sB,KAAKgt7B,aAAe,mBAA0Bht7B,KAAKgxS,MAAMmkC,aACzDn1U,KAAK09sB,WAAa,GAAGivO,MAAgBH,GAAgBxs7B,KAAKgxS,MAAM2L,YAChE38S,KAAKqsO,SAAS0hC,SAAStY,EAAMz1P,KAAKgt7B,cAClCht7B,KAAKqsO,SAAS0hC,SAAStY,EAAMz1P,KAAK09sB,WACtC,CACAqvO,SACI,MAAME,EA3IQnwmB,MAClB,GAAmB,iBAARA,IAAmC,iBAARA,GAClC,MAAO,CAAE67d,KAAM77d,GAAKrnH,KAAMqnH,IAEzB,CACD,MAAMmwmB,EAAY,CAAC,EACnBA,SAAUx3tB,KAAOqnH,GAAIrnH,KAAOqnH,GAAIrnH,KAAO,EACvCw3tB,EAAUt0I,KAAO77d,GAAI67d,KAAO77d,GAAI67d,KAAO,EAChCs0I,CACX,GAkIsBC,CAAalt7B,KAAK88U,KAC9BgvmB,EA9HYhvmB,KAClBA,GAAIrnH,OAASqnH,GAAI67d,KACU,iBAAb77d,GAAIrnH,KAAoB,GAAGqnH,GAAIrnH,SAAWqnH,GAAIrnH,KAKrD,GAFiC,iBAAbqnH,GAAIrnH,KAAoBqnH,GAAIrnH,KAAO,KAAOqnH,GAAIrnH,QACjC,iBAAbqnH,GAAI67d,KAAoB77d,GAAI67d,KAAO,KAAO77d,GAAI67d,OAwHxDw0I,CAAiBF,GAClCjt7B,KAAKqsO,SAAS2yC,SAASh/Q,KAAKsuM,QAAQoX,cAAe,MAAOomuB,EAC9D,CACAgB,0BAA0B3j7B,GACtB,IAAKmjK,GAAUtsK,KAAKmJ,IAChB,OAGJ,IAtF4ByrE,MAChC,UAAWkqM,KAAMlqM,GAIb,GAH4B,iBAAPkqM,GACO,iBAAPA,IACU,iBAAPA,GAA0B,OAAPA,GAEvC,OAAO,EAGf,OAAO,GA4EasuqB,CAA2Bpt7B,KAAKmJ,MAAK,EACrCwvnB,SAEZ,MAAM,IAAI70nB,MAAM,gBAAgBqF,0FADL,SAATA,EAAkB,oBAAsB,wBAG9D,MAAMkk7B,EAA6B,SAATlk7B,EAAkB,qBAAuB,wBAC7Dmk7B,GA9HYC,EAAC7l2B,GAAO8l2B,KAC9B,MAAMC,EAAU,GAChB/l2B,UAAMxT,QAASR,IACX,GAAoB,iBAATA,EACP+52B,EAAQ952B,KAAK,GAAGD,YAAQ,GAEH,iBAATA,EACZ+52B,EAAQ952B,KAAKD,QAAI,GAGA,SAAb852B,EAAqB,CACrB,MAAM35I,EAAYnguB,EAAKi9K,OAEnB88rB,EAAQ952B,KADRkguB,EACkC,iBAAdA,EAAyB,GAAGA,MAAgBA,EAGnD,MAErB,KACK,CACD,MAAM65I,EAAWh62B,EAAK2nN,MAElBoypB,EAAQ952B,KADR+52B,EACiC,iBAAbA,EAAwB,GAAGA,MAAeA,EAGjD,MAErB,IAGDD,GAgGeF,CAAkBvt7B,KAAKmJ,GAAOA,GAChDnJ,KAAKqsO,SAAS2yC,SAASh/Q,KAAKsuM,QAAQoX,cAAe2nuB,EAAmBC,GAAUpv2B,KAAK,KACzF,CACA,aAAI6xQ,GACA,OAAO/vV,KAAKmusB,aAAatqZ,IAAM,MAAQ,KAC3C,EAEJ+ooB,UAAoBv/3B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF02rB,IAx/Sd7/3B,MAw/SmDA,OAx/SnDA,MAw/S4EA,OAx/S5EA,MAw/SsGC,MAAsB,EAC/N4/3B,GAAoB3yX,UAz/S+EltgB,MAAE,CAAA5jD,KAy/SAyj7B,GAAmB3suB,UAAA,uBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAz/SrB/hE,MAAE,MAAAonF,EAAA4mL,KAAFhuQ,MAAE,gBAAAonF,EAAAi/jB,WAy/SmB,EAAAlzf,OAAA,CAAAuV,KAAA,OAAAkjlB,KAAA,OAAA77d,IAAA,MAAA9rC,MAAA,SAAAxyD,SAAA,oBAAA/B,YAAA,EAAA1nJ,SAAA,CAz/SrBhoC,MAy/SmP,CAC9UqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,sBA7/S6Ez0N,aAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GAggTpE,EAAA84J,cAAA,IA3F3B+muB,EAAmB,KA8HnBe,GAAuB,MAA7B,MAAMA,GACFnr7B,YAAY6pO,EAAU/9B,GAClBtuM,KAAKqsO,SAAWA,EAChBrsO,KAAKsuM,QAAUA,CACnB,CACAgR,WACIt/M,KAAK4t7B,cACT,CACAruuB,cACIv/M,KAAK4t7B,cACT,CACAA,eAMI5t7B,KAAKqsO,SAAS2yC,SAASh/Q,KAAKsuM,QAAQoX,cAAe,YAD7B,GAJV1lN,KAAK2hO,KAAO,YACZ3hO,KAAKyjS,KAAO,YACRzjS,KAAKw90B,QAAU,QAAQx90B,KAAKw90B,UAAY,YACxCx90B,KAAKw0xB,QAAU,QAAQx0xB,KAAKw0xB,UAAY,SAG5D,EAEJm5J,UAAwBtg4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFy3rB,IAvjTlB5g4B,MAujT2DA,OAvjT3DA,MAujToFA,OAAa,EACpM4g4B,GAAwB1zX,UAxjT2EltgB,MAAE,CAAA5jD,KAwjTIwk7B,GAAuB1tuB,UAAA,4BAAAC,OAAA,CAAAyhB,IAAA,MAAA8hE,IAAA,MAAA+5iB,QAAA,UAAAhpD,QAAA,WAAA/3iB,YAAA,EAAA1nJ,SAAA,CAxjT7BhoC,aAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GAyjTpE,EAAA84J,cAAA,IAtB3B8nuB,EAAuB,KA8CvBE,GAAoB,MAA1B,MAAMA,GACFrr7B,YAAY6pO,EAAU/9B,EAAS6/f,GAC3BnusB,KAAKqsO,SAAWA,EAChBrsO,KAAKsuM,QAAUA,EACftuM,KAAKmusB,aAAeA,EACpBnusB,KAAKozsB,WAAY,EAKjBpzsB,KAAK88U,IAAM,EASX98U,KAAKo/V,YAAc,aACnBp/V,KAAKm9sB,OAAS,CACVhoY,WAAY,UACZx4B,SAAU,YACd,EACAgyZ,KAAgB5B,GACpB,CACA,mBAAIqpG,GACA,MAA4B,eAArBp2yB,KAAKo/V,WAChB,CACA,iBAAIutiB,GACA,MAA4B,aAArB3s4B,KAAKo/V,WAChB,CACA,OAAIrkC,GACA,OAAO/6T,KAAK+vV,SAChB,CAKA,SAAI/+C,CAAMA,GACNhxS,KAAKm9sB,OAAS3moB,OAAO8mI,OAAO,CAAC,EAAGt9M,KAAKm9sB,OAAQnsa,GAC7ChxS,KAAK6s7B,oBACT,CACA,SAAI77oB,GACA,OAAOhxS,KAAKm9sB,MAChB,CACArrf,kBACI9xN,KAAK6s7B,qBACL7s7B,KAAK+s7B,QACT,CACAxtuB,YAAY5Y,IACR,EAAImqgB,MAAU,MAAOnqgB,IACjB3mM,KAAK+s7B,UAAO,EAEZj8O,MAAU,cAAenqgB,IACzB3mM,KAAK6s7B,oBAEb,CACAA,qBACI,MAAMp3rB,EAAOz1P,KAAKsuM,QAAQoX,cACtBp5C,GAAUtsK,KAAKgt7B,eACfht7B,KAAKqsO,SAAS8iC,YAAY1Z,EAAMz1P,KAAKgt7B,cAErC1gxB,GAAUtsK,KAAK09sB,aACf19sB,KAAKqsO,SAAS8iC,YAAY1Z,EAAMz1P,KAAK09sB,YAEhB,eAArB19sB,KAAKo/V,aACLp/V,KAAKgt7B,aAAe,GAAGN,MAAkB1s7B,KAAKgxS,MAAMmkC,aACpDn1U,KAAK09sB,WAAa,GAAGivO,MAAgBH,GAAgBxs7B,KAAKgxS,MAAM2L,cAGhE38S,KAAKgt7B,aAAe,GAAGN,MAAkBF,GAAgBxs7B,KAAKgxS,MAAM2L,YACpE38S,KAAK09sB,WAAa,GAAGivO,MAAgB3s7B,KAAKgxS,MAAMmkC,cAEpDn1U,KAAKqsO,SAAS0hC,SAAStY,EAAMz1P,KAAKgt7B,cAClCht7B,KAAKqsO,SAAS0hC,SAAStY,EAAMz1P,KAAK09sB,WACtC,CACAqvO,SACI,MAAME,EA5gTI/s7B,KAA2B,iBAAVA,IAAsB47R,SAAS57R,IA4gTxC8kH,CAAShlH,KAAK88U,KAAO,GAAG98U,KAAK88U,QAAU98U,KAAK88U,IAC9D98U,KAAKqsO,SAAS2yC,SAASh/Q,KAAKsuM,QAAQoX,cAAe,MAAOunuB,EAC9D,CACA,aAAIl9lB,GACA,OAAO/vV,KAAKmusB,aAAatqZ,IAAM,MAAQ,KAC3C,EAEJgqoB,UAAqBxg4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF23rB,IAtqTf9g4B,MAsqTqDA,OAtqTrDA,MAsqT8EA,OAtqT9EA,MAsqTwGC,MAAsB,EACjO6g4B,GAAqB5zX,UAvqT8EltgB,MAAE,CAAA5jD,KAuqTC0k7B,GAAoB5tuB,UAAA,wBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,IAvqTvB/hE,MAAE,MAAAonF,EAAA4mL,KAAFhuQ,MAAE,iBAAAonF,EAAAi/jB,UAAFrmpB,CAuqTuB,WAAAonF,EAAAiiqB,gBAvqTvBrpvB,CAuqTuB,WAAAonF,EAAAw4vB,eAAA,EAAAzsrB,OAAA,CAAA8wF,MAAA,QAAA8rC,IAAA,MAAAsiB,YAAA,eAAA5gH,SAAA,qBAAA/B,YAAA,EAAA1nJ,SAAA,CAvqTvBhoC,MAuqTyU,CACpaqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,uBA3qT6Ez0N,aAAE8xK,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IAAF/hE,cAAE,GA8qTpE,EAAA84J,cAAA,IA7F3BgouB,EAAoB,KAuIpBC,GAAgB,MAAtB,MAAMA,WAAyB1tO,MAE/B0tO,UAAiBzg4B,UAAI,UAAA0g4B,EAAA,gBAAA73rB,GAAA,OAAA63rB,MA1tT8Ehh4B,MA0tTW+g4B,MAAgB53rB,GAAhB43rB,GAAgB,GAAzG,GACrBA,GAAiB7kZ,UA3tTkFl8e,MAAE,CAAA5jD,KA2tTH2k7B,GAAgB7tuB,UAAA,mCAAAC,OAAA,CAAAyzL,SAAA,WAAAllU,KAAA,QAAAsmB,SAAA,CA3tTfhoC,SAwtT7F+g4B,EAAgB,KAmBhBE,GAA+B,MAArC,MAAMA,WAAwCF,GAC1Ctr7B,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,CACA,YAAIz8H,GACA,OAAO,CACX,EAEJ4m2B,UAAgC3g4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF83rB,IApvT1Bjh4B,MAovT2EC,MAAsB,EACpMgh4B,GAAgC/zX,UArvTmEltgB,MAAE,CAAA5jD,KAqvTY6k7B,GAA+B/tuB,UAAA,8BAAAw8B,YAAA,EAAA1nJ,SAAA,CArvT7ChoC,MAqvTmH,CAC9M,CACI+kB,QAASg82B,GACTp6X,eAAagF,OAAW,IAAMs1X,OAxvTyDjh4B,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAA0xE,cAAA,IA2uT/FmouB,EAA+B,KAuC/BC,GAAoC,MAA1C,MAAMA,GACFzr7B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJuvsB,UAAqC5g4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF+3rB,IAvxT/Blh4B,MAuxTqFA,MAAc,KACtMkh4B,GAAqChlZ,UAxxT8Dl8e,MAAE,CAAA5jD,KAwxTiB8k7B,GAAoChuuB,UAAA,6CAAAw8B,YAAA,IANpJwxsB,EAAoC,KAyBpCC,GAAiC,MAAvC,MAAMA,GACF1r7B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJwvsB,UAAkC7g4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFg4rB,IAhzT5Bnh4B,MAgzT+EA,MAAc,KAChMmh4B,GAAkCjlZ,UAjzTiEl8e,MAAE,CAAA5jD,KAizTc+k7B,GAAiCjuuB,UAAA,0CAAAw8B,YAAA,IAN9IyxsB,EAAiC,KAyBjCC,GAAmC,MAAzC,MAAMA,GACF3r7B,YAAYk8O,GACR1+O,KAAK0+O,YAAcA,CACvB,EAEJyvsB,UAAoC9g4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFi4rB,IAz0T9Bph4B,MAy0TmFA,MAAc,KACpMoh4B,GAAoCllZ,UA10T+Dl8e,MAAE,CAAA5jD,KA00TgBgl7B,GAAmCluuB,UAAA,4CAAAw8B,YAAA,IANlJ0xsB,EAAmC,KAoBzC,MAAMC,GAAqB,CACvBvsyB,MAAO,QACP42F,SAAU,WACVzkL,YAAa,cACbulB,KAAM,OACNmurB,SAAU,WACVn+T,OAAQ,SACRm0E,QAAS,WA0Bb,IAGM2wa,GAAe,MAArB,MAAMA,GACFjxsB,SAAS/oJ,GACDr0F,KAAK4iQ,UACL5iQ,KAAK4iQ,SAASxlB,UAAaptF,KAAK37D,EAExC,CACAuw0B,cAAcvw0B,GACNr0F,KAAK4iQ,UACL5iQ,KAAK4iQ,SAASgiqB,eAAkB50wB,KAAK37D,EAE7C,CACA8mqB,WAAW9mqB,GACHr0F,KAAK4iQ,UACL5iQ,KAAK4iQ,SAASu4f,YAAenrmB,KAAK37D,EAE1C,EAEJg61B,UAAgBhh4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFm4rB,GAAe,EAC5HA,GAAgBl4rB,WA94TmFppM,MAAE,CAAAgnC,MA84TYs61B,GAAejh4B,QAAfih4B,GAAehh4B,YAlB1Hgh4B,EAAe,KA0BfC,GAAqB,MAA3B,MAAMA,GACF9r7B,YAAY8rM,EAASigvB,EAAiBlitB,GAClCrsO,KAAKsuM,QAAUA,EACftuM,KAAKuu7B,gBAAkBA,EACvBvu7B,KAAKqsO,SAAWA,EAChBrsO,KAAK0nwB,UAAW,EAChB1nwB,KAAK2j6B,aAAc,EACnB3j6B,KAAK4g5B,UAAW,EAChB5g5B,KAAKozsB,WAAY,EACjBpzsB,KAAKyj6B,eAAiB7+a,MACtB5kf,KAAKwj6B,gBAAkB,sBACvBxj6B,KAAKsm6B,eAAiBtm6B,KAAK0nwB,SAAW,WAAa,YACnD1nwB,KAAKwu7B,qBAAsB,CAC/B,CACA,gBAAIvoB,CAAa/l6B,IAERF,KAAKyu7B,oBAAsBzu7B,KAAKyu7B,kBAAkB/ouB,cAAcurC,UAAU9M,SAAS,iBAGxFnkP,KAAKyu7B,kBAAkB/ouB,cAAcgiC,MAAMpkH,KAAOpjI,GAAOojI,KAC7D,CACA,kBAAIorzB,GACA,OAAQ1u7B,KAAK0nwB,WAAa1nwB,KAAKwu7B,qBAA+C,cAAxBxu7B,KAAKsm6B,cAC/D,CACAiF,mBAAmBl30B,GACVr0F,KAAK0xsB,YAGNr9mB,EAAMk8mB,UAAYC,KAAKC,OAASp8mB,EAAMk8mB,UAAYC,KAAKE,SACvDr8mB,EAAM2vJ,iBACFhkP,KAAK2j6B,aAAoC,aAArB3j6B,KAAKo/V,cACzBp/V,KAAK0nwB,UAAY1nwB,KAAK0nwB,UAGlC,CACA,QAAIlwjB,GACA,MAA4B,aAArBx3M,KAAKo/V,YAA6B,SAAW,UACxD,CACA,YAAI8vZ,GACA,MAA4B,aAArBlvvB,KAAKo/V,YAA6B,SAAW,IACxD,CACA,gBAAI4+W,GACA,MAA4B,aAArBh+sB,KAAKo/V,YAA6Bp/V,KAAK0nwB,SAAW,IAC7D,CACA51iB,kBACI9xN,KAAK2u7B,qBACT,CACApvuB,YAAY5Y,IACR,EAAImqgB,MAAU,cAAenqgB,GAAS,KAC7B3mM,KAAK2j6B,cACN3j6B,KAAK0nwB,UAAW,GAG5B,CACA/phB,SAC6B,aAArB39O,KAAKo/V,cACLp/V,KAAK0nwB,UAAW1nwB,KAAK2j6B,cAAe3j6B,KAAK0nwB,SACzC1nwB,KAAKuu7B,gBAAgBnxsB,SAASp9O,KAAK6zE,OAE3C,CACAm8N,SACShwS,KAAK0nwB,WACN1nwB,KAAK0nwB,UAAW,EAChB1nwB,KAAKuu7B,gBAAgBnxsB,SAASp9O,KAAK6zE,OAE3C,CACA69mB,YACS1xrB,KAAK2j6B,cAAgB3j6B,KAAK0nwB,WAG/B1nwB,KAAK0nwB,UAAW,EAChB1nwB,KAAKuu7B,gBAAgBnxsB,SAASp9O,KAAK6zE,OACvC,CACA+w1B,cAAcvw0B,GACVA,EAAM4tI,kBACNjiO,KAAKuu7B,gBAAgB3pB,cAAc5k6B,KAAK6zE,MAC5C,CACA0w1B,iBACIvk6B,KAAKwu7B,qBAAsB,CAC/B,CACAhqB,cAAcnw0B,GACVr0F,KAAKwu7B,qBAAsB,EACL,aAAlBn61B,EAAMmgK,SAA8C,aAApBngK,EAAMkgK,WACtCv0P,KAAKsm6B,eAAiB,WACtBtm6B,KAAK2u7B,uBAEkB,cAAlBt61B,EAAMmgK,SAA+C,cAApBngK,EAAMkgK,YAC5Cv0P,KAAKsm6B,eAAiB,YAE9B,CACAqoB,sBACI,GAAyB,aAArB3u7B,KAAKo/V,YACL,OAEJ,MAAMwvlB,EAAW5u7B,KAAKsuM,SAASoX,cAAcC,cAAc,gBACvDipuB,GACA5u7B,KAAKqsO,SAAS2yC,SAAS4vqB,EAAU,WAAY,OAErD,EAEJN,UAAsBjh4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFo4rB,IA1/ThBvh4B,MA0/TuDA,OA1/TvDA,MA0/TiFsh4B,IA1/TjFth4B,MA0/T6GA,OAAY,EAC5Nuh4B,GAAsBr0X,UA3/T6EltgB,MAAE,CAAA5jD,KA2/TEml7B,GAAqBruuB,UAAA,0BAAAyW,UAAA,SAAA5nG,EAAAqlB,GA3/TvB,GA2/TuB,EAAArlB,GA3/TzB/hE,MAAEu3wB,GAAA,KAAAx1sB,EAAA,KAAAw6iB,EAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAs6yB,kBAAAnlR,EAAAn9d,MAAA,GAAAy1B,SAAA,EAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,mBAAAqxJ,IAAA,OA2/TEjqE,EAAAo3xB,mBAAAnttB,GAA0B,GAAL,EAAAtvF,GA3/TzB/hE,MAAE,kBAAAonF,EAAAi/jB,UAAFrmpB,CA2/TyB,cAAAonF,EAAAu6yB,eAAA,EAAAxuuB,OAAA,CAAA7rH,MAAA,QAAAqzqB,SAAA,WAAAi8J,YAAA,cAAA/iB,SAAA,WAAAxhjB,YAAA,cAAAsyW,UAAA,YAAAj8X,SAAA,WAAAwqY,kBAAA,oBAAApsoB,MAAA,QAAAgz1B,WAAA,aAAAV,YAAA,cAAAp7K,eAAA,iBAAAg5K,aAAA,eAAAr5L,gBAAA,kBAAAu7L,aAAA,gBAAAznrB,SAAA,sBAAA/B,YAAA,EAAA1nJ,SAAA,CA3/TzBhoC,MA2/TkqB,IA3/TlqBA,aAAEqzJ,MAAA,EAAAC,KAAA,GAAAC,OAAA,6mCAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,KAAArlB,EAAA,OAAAuvF,EAAFtxJ,cAAE,kBAAFA,MAAE,mBAAFA,aAAEsxJ,GAAFtxJ,MAggU9EonF,EAAAwpG,SAAQ,GAhgUsE5wL,MAAE,cAAFA,MAAE,EAAAi42B,GAAA,aAAFj42B,OAwlU9E,GAAA+hE,IAxlU8E/hE,MAAE,UAAFA,MAAE,EAAAw3wB,GAAA,eAAApwrB,EAAAirN,YAAAjrN,EAAAgyxB,YAAA,WAAFp52B,CA6/TL,uBAAAonF,EAAAirN,YAAA,OAAAjrN,EAAA0yxB,WAAA,MA7/TK952B,MAAE,OAAAonF,EAAAqjE,KAAFzqJ,CAAE,YAAAonF,EAAA+6mB,SAAFnisB,CAAE,gBAAAonF,EAAA6pkB,aAAFjxpB,CAAE,WAAAonF,EAAAshM,UAAF1oR,cAAE,UAAFA,MAAE,GAAAo7wB,GAAA,eAAAh0rB,EAAAirN,YAAA,aAAAjrN,EAAAirN,cAAAjrN,EAAAyswB,SAAA,aAAAzswB,EAAAirN,aAAAjrN,EAAAyswB,WAAF7z1B,MAAE,GAAFA,MAAE,OAAAonF,EAAA9/C,OAghUxE,EAAAwqG,aAAA,CAyEoC8hvB,GAAsGr/X,KAAkFlE,KAA2FiC,KAAiGwhY,GAAiF7+X,KAAoKk/X,GAA+EhzO,KAA2XizO,GAAqFL,GAA6EzmO,KAAwH+mO,GAA+EJ,IAAoBn7tB,cAAA,EAAA5lN,KAAA,CAAAkxP,UAAoH,IAC7lDzyB,OAAQ,SAAU,IACdh+H,OAAM,eAAagnJ,OAAM,CACrBiJ,OAAQ,IACR,aAAc,SACd5V,QAAS,WACX,EACFr6I,OAAM,cAAYgnJ,OAAM,CACpBiJ,OAAQ,IACR,aAAc,SACd5V,QAAS,YACX,EACFsV,OAAW,yBAA0B,IACjCC,OAAQ,4BACT,CAAE/pM,OAAQ,CAAE05pB,kBAAmB,eAjNxCquO,EAAqB,KA+XrBO,GAA2B,MAAjC,MAAMA,GACFrs7B,YAAYknO,EAAK+1C,EAAOpzC,EAAUkitB,GAAiBpgP,IAC/CnusB,KAAK0pO,IAAMA,EACX1pO,KAAKy/Q,MAAQA,EACbz/Q,KAAKqsO,SAAWA,EAChBrsO,KAAKuu7B,gBAAkBA,GACvBvu7B,KAAKmusB,aAAeA,GACpBnusB,KAAKwxI,OAAS,GACdxxI,KAAK8u7B,YAAcvqc,MACnBvkf,KAAK+u7B,aAAe1qc,MACpBrkf,KAAKsm6B,eAAiB,SACtBtm6B,KAAKgv7B,eAAiB,EACtBhv7B,KAAKum6B,iBAAmB,CAAC,EAAG,EAAG,GAC/Bvm6B,KAAK8l6B,kBAAoB,EACzB9l6B,KAAKiv7B,SApBa,IAqBlBjv7B,KAAKkv7B,kBAAoB,EACzBlv7B,KAAKmv7B,cAAgB,GACrBnv7B,KAAKov7B,WAAa,GAClBpv7B,KAAKqv7B,cAAgB,WACrBrv7B,KAAKsv7B,UAAY,OACjBtv7B,KAAKq1nB,cAAgB,IAAI99F,KAC7B,CACA,iBAAIwuY,GACA,OAAO/l6B,KAAKuv7B,cAChB,CACA,iBAAIxpB,CAAc7l6B,GACd,GAAIF,KAAKuv7B,iBAAmBrv7B,EACxB,OAEJ,MAAMsv7B,EAAmBxv7B,KAAKwxI,OAAO4mO,UAAU/jR,GAASA,IAAUn0F,IACzC,IAArBsv7B,GAAqC,OAAVtv7B,IAG/BF,KAAKuv7B,eAAiBrv7B,EACtBF,KAAKkm6B,mBAAqBspB,EAC1Bxv7B,KAAKim6B,aAAejm6B,KAAKyv7B,cAC7B,CACAnwuB,WACIt/M,KAAKy/Q,MAAMY,kBAAkB,OAAM2ub,SAAyBhvsB,KAAKq1nB,cAAc5hjB,OAAI6od,MAAU/ic,OAAQ,UAAU/xC,UAAUxnD,KAAK0v7B,mBAAmB3u2B,KAAK/gF,SACtJA,KAAKmivB,aACLnivB,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKmusB,aAAaxngB,QAAQn/I,UAAUxnD,KAAKmivB,WAAWphqB,KAAK/gF,QAC5EA,KAAKwxI,OAAO3+D,OAAS,IACrB7yE,KAAK+l6B,cAAgB/l6B,KAAKwxI,OAAO,IAErCxxI,KAAKwxI,OAAOt9D,QAAQmgB,IACZA,EAAM+ne,MACNp8jB,KAAKov7B,WAAWz72B,KAAK,CAAE0x1B,OAAQhx0B,EAAM+ne,OAEzCp8jB,KAAKov7B,WAAWz72B,KAAK0gB,EAAK,EAElC,CACAy9H,mBACI,EAAKk9e,UAGLhvsB,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOvsO,KAAK2v7B,gBAAgBjquB,cAAe,UAAW1lN,KAAKq2rB,UAAUt1mB,KAAK/gF,QAC/GA,KAAK4v7B,eAAiB5v7B,KAAK2v7B,gBAAgBjquB,cAAcyhJ,wBAAwB9rE,MACjFr7R,KAAK6v7B,qBAAuB7v7B,KAAK8v7B,0BAA0BpquB,cAAcyhJ,wBAAwB9rE,MACjGr7R,KAAKy/Q,MAAMY,kBAAkB,KACzBrgR,KAAK+v7B,kBACL/v7B,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKgw7B,kBAAkBrpvB,QAAQn/I,UAAUxnD,KAAK+v7B,gBAAgBhv2B,KAAK/gF,QAC1FA,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKiw7B,gBAAgBtpvB,QAAQn/I,UAAUxnD,KAAKkw7B,cAAcnv2B,KAAK/gF,OAAM,GAErE,IAAvBA,KAAKwxI,OAAO3+D,SAGhB7yE,KAAKkw7B,gBACDlw7B,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,qBAC7B9l6B,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,mBAAmBG,aAAejm6B,KAAKyv7B,cACpEzv7B,KAAKow7B,eAAe,KAE5B,CACA7wuB,YAAY5Y,IACR,EAAImqgB,MAAU,SAAUnqgB,KACf3mM,KAAKwxI,QAAiC,IAAvBxxI,KAAKwxI,OAAO3+D,QAM5B7yE,KAAKov7B,WAAa,GAClBpv7B,KAAKwxI,OAAOt9D,QAAQmgB,IACZA,EAAM+ne,MACNp8jB,KAAKov7B,WAAWz72B,KAAK,CAAE0x1B,OAAQhx0B,EAAM+ne,OAEzCp8jB,KAAKov7B,WAAWz72B,KAAK0gB,EAAK,GAE9Br0F,KAAKmv7B,cAAgBnv7B,KAAKov7B,WACrBr12B,MAAM/5E,KAAKkv7B,kBAAmBlv7B,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,kBAC5Dlu2B,OAAOkS,IAAUA,EAAMgx0B,QAC5Brl6B,KAAK+l6B,cAAgB/l6B,KAAKwxI,OAAO,GACjCxxI,KAAK0pO,IAAIjZ,gBACTzwN,KAAKim6B,aAAejm6B,KAAKyv7B,cACzBzv7B,KAAKow7B,eAAe,KAlBpBpw7B,KAAK+l6B,cAAgB,KACrB/l6B,KAAKov7B,WAAa,GAClBpv7B,KAAKmv7B,cAAgB,IAmBjC,CACAhruB,cACInkN,KAAKq1nB,cAAc3mjB,aACvB,CACAgh3B,sBACI,EAAK1gP,SAGDhvsB,KAAK4v7B,iBAAmB5v7B,KAAK2v7B,gBAAgBjquB,cAAcyhJ,wBAAwB9rE,QAGvFr7R,KAAKsw7B,UAAYtw7B,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,mBAAmBx3tB,QAAQoX,cAAcs1J,YACvFh7W,KAAKuw7B,iBACLvw7B,KAAK4v7B,eAAiB5v7B,KAAK2v7B,gBAAgBjquB,cAAcyhJ,wBAAwB9rE,MACjFr7R,KAAK6v7B,qBAAuB7v7B,KAAK8v7B,0BAA0BpquB,cAAcyhJ,wBAAwB9rE,MACjGr7R,KAAKww7B,kBACLxw7B,KAAKy/Q,MAAM7iI,IAAI,KACX58I,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,mBAAmBG,aAAejm6B,KAAKyv7B,gBAE5E,CACA7pB,kBACI5l6B,KAAKiw7B,iBAAiB/72B,QAAQu82B,GAAQzw7B,KAAKqsO,SAAS4yC,YAAYwxqB,EAAK/quB,cAAe,wBACpF1lN,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,mBAAmBzx0B,MAAQr0F,KAAK+l6B,cAC7D/l6B,KAAKim6B,aAAejm6B,KAAKyv7B,aAC7B,CACAiB,uBACI1w7B,KAAKim6B,aAAejm6B,KAAKyv7B,aAC7B,CACAppB,cACIrm6B,KAAKim6B,aAAejm6B,KAAKyv7B,aAC7B,CACA97iB,WACmC,IAA3B3zY,KAAKkv7B,mBAGTlv7B,KAAK2w7B,gBAAe,EACxB,CACAC,gBACI5w7B,KAAK2zY,WACL3zY,KAAKuu7B,gBAAgBpzL,WAAW,WACpC,CACA1srB,QACSzuE,KAAKqw7B,kBAAoBrw7B,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,iBAAmBrw7B,KAAKov7B,WAAWv82B,QAG/F7yE,KAAK2w7B,gBAAe,EACxB,CACAE,YACI7w7B,KAAKyuE,OACLzuE,KAAKuu7B,gBAAgBpzL,WAAW,OACpC,CACAxrqB,KAAK9b,GACD,KAAIA,EAAQ,GAAKA,GAAS7zE,KAAKwxI,OAAO3+D,QAGtC,KAA4E,IAAxE7yE,KAAKmv7B,cAAc/2kB,UAAU/jR,GAASA,IAAUr0F,KAAKwxI,OAAO39D,IAAgB,CAE5E,MAAMi92B,EAAiB9w7B,KAAKov7B,WAAWh3kB,UAAU/jR,IAASA,KAAUr0F,KAAKwxI,OAAO39D,IAC1E2hB,EAAQrZ,KAAKmkB,MAAMww1B,EAAiB9w7B,KAAKqw7B,kBAAoBrw7B,KAAKqw7B,iBACxErw7B,KAAK+w7B,mBAAmBv71B,EAAO3hB,EACnC,CACA7zE,KAAK+l6B,cAAgB/l6B,KAAKwxI,OAAO39D,GACjC7zE,KAAK8l6B,kBAAoB9l6B,KAAKgx7B,0BAA0Bn92B,EAAQ7zE,KAAKkm6B,oBACrElm6B,KAAKim6B,aAAejm6B,KAAKyv7B,cACzBzv7B,KAAKow7B,eAAepw7B,KAAKkm6B,oBACzBlm6B,KAAKix7B,cAAa,CACtB,CACAzrB,gBAAgB3x1B,GACZ,MAAMq92B,EAAalx7B,KAAKwxI,OAAO4mO,UAAU/jR,GAASA,IAAUr0F,KAAKov7B,WAAWv72B,IACxE7zE,KAAKkm6B,qBAAuBgrB,IAGhClx7B,KAAK+l6B,cAAgB/l6B,KAAKwxI,OAAO0/yB,GACjClx7B,KAAK8l6B,kBAAoB9l6B,KAAKgx7B,0BAA0Bn92B,EAAQq92B,GAChElx7B,KAAKim6B,aAAejm6B,KAAKyv7B,cACzBzv7B,KAAKix7B,eACT,CACAD,0BAA0Bj1iB,GAEtB,OAAIA,EACkC,IAA3B/7Y,KAAK8l6B,kBAA0BqrB,EAA8Bnx7B,KAAK8l6B,kBAAoB,EAE/DqrB,IAA3Bnx7B,KAAK8l6B,kBAAoD,EAAI9l6B,KAAK8l6B,kBAAoB,CACjG,CACAV,WACI,OAAKpl6B,KAAKox7B,QAGH,CAAEC,KAAQ,OAAOrx7B,KAAKox7B,YAFlB,CAAC,CAGhB,CACAE,kBAAkBj2pB,EAAO4Y,GACrB,OAAIA,IAAaj0S,KAAK8l6B,kBAAoB,GAAK7xnB,IAAaj0S,KAAK8l6B,kBAAoB,EAC1E,gBAAgBzqoB,aAEvB4Y,IAAaj0S,KAAK8l6B,kBAAoB,GAAK7xnB,IAAaj0S,KAAK8l6B,kBAAoB,EAC1E,eAAezqoB,aAEnB,sBACX,CACA8uQ,SAASl2P,GACL,OAAIA,IAAaj0S,KAAK8l6B,kBACX,SAEP7xnB,IAAaj0S,KAAK8l6B,kBAAoB,GAAK7xnB,IAAaj0S,KAAK8l6B,kBAAoB,EAC1E,OAEJ,OACX,CACA,iBAAI2pB,GACA,OAAI,EAACzgP,SAA2BhvsB,KAAKgw7B,mBAAmB7jvB,OAAUnsM,KAAK2v7B,kBAAmB,EAACp0O,MAAYv7sB,KAAKkm6B,oBAMrG,CAAE5iyB,KAHYtjI,KAAKgw7B,kBAAkBrv7B,IAAIX,KAAKkm6B,oBAAoBxgtB,cAAcyhJ,wBAAwB7jO,KAC3GtjI,KAAKgw7B,kBAAkBrv7B,IAAIX,KAAKkm6B,oBAAoBxgtB,cAAcs1J,YAAc,EAChEh7W,KAAK2v7B,gBAAgBjquB,cAAcyhJ,wBAAwB7jO,KAChE,MALJ,CAAC,CAMhB,CACA,gBAAIiuzB,GACA,OAAkC,IAA3Bvx7B,KAAKkv7B,iBAChB,CACA,eAAIsC,GACA,SAAKxx7B,KAAKgw7B,mBAAmB7jvB,QAAUnsM,KAAKyx7B,iBAAiBtlvB,SAG3B,IAA3BnsM,KAAKov7B,WAAWv82B,QACnB7yE,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,kBAAoBrw7B,KAAKov7B,WAAWv82B,OAC1E,CACAq92B,gBACQlw7B,KAAKiw7B,iBAAiBtv7B,IAAIX,KAAK8l6B,qBAC/B9l6B,KAAKsw7B,UAAYtw7B,KAAKiw7B,gBAAgBtv7B,IAAIX,KAAK8l6B,mBAAmBpgtB,cAAcs1J,YAChFh7W,KAAKuw7B,iBAEb,CACAR,kBACS/v7B,KAAKgw7B,mBAAmB7jvB,QAG7BnsM,KAAKgw7B,kBACA752B,IAAIm4H,GAAWA,EAAQoX,eACvBxxI,QAAQ,CAACo6H,EAASz6H,KACnB7zE,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOj+B,EAAS,QAAS,KAC1DtuM,KAAKow7B,eAAev82B,EAAK,GAC3B,GAEQ7zE,KAAKgw7B,kBAAkB7jvB,MAAMuZ,cAAcyhJ,wBAAwB9rE,MAtP/D,MAwPdr7R,KAAKiv7B,SAAWjv7B,KAAKgw7B,kBAAkB7jvB,MAAMuZ,cAAcyhJ,wBAAwB9rE,MAvPpE,IAyPnBr7R,KAAKww7B,kBACLxw7B,KAAKmv7B,cAAgBnv7B,KAAKov7B,WACrBr12B,MAAM/5E,KAAKkv7B,kBAAmBlv7B,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,kBAC5Dlu2B,OAAOkS,IAAUA,EAAMgx0B,QAChC,CACAhvO,UAAUhimB,GACDr0F,KAAK0xsB,YAGVr9mB,EAAM2vJ,iBACF3vJ,EAAMk8mB,UAAYC,KAAK0G,KACvBl3sB,KAAK0x7B,YAEAr91B,EAAMk8mB,UAAYC,KAAK2G,IAC5Bn3sB,KAAK2x7B,WAEAt91B,EAAMk8mB,UAAYC,KAAKsC,WAC5B9ysB,KAAK4x7B,kBAEAv91B,EAAMk8mB,UAAYC,KAAKuC,WAC5B/ysB,KAAK6x7B,iBAEb,CACAzB,eAAev82B,GAIX,KAHI,EAACm7nB,UAGAhvsB,KAAKgw7B,mBAAqBn82B,EAAQ,GAAKA,GAAS7zE,KAAKgw7B,kBAAkBn92B,OACxE,OAEJ,MAAMi/2B,EAAoB9x7B,KAAKgw7B,kBAC1B5v2B,KAAKkuH,IAAWA,GAAQoX,cAAcr8D,aAAa,kBACpDyoyB,IACA9x7B,KAAK+x7B,0BAA0BD,GAC/B9x7B,KAAKgy7B,yBAET,MAAMC,EAAejy7B,KAAKgw7B,kBAAkBrv7B,IAAIkzE,GAAO6xI,cACvD1lN,KAAKky7B,uBAAuBD,EAAcp+2B,EAC9C,CACAq+2B,uBAAuB5jvB,EAASz6H,GAC5B,KAAI,EAACm7nB,QACD,OAEJ,MAAMmjP,EAAYny7B,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,mBAAmBx3tB,QAAQoX,cAAcC,cAAc,WAChGysuB,GAAiBpy7B,KAAKgw7B,kBAAkBrv7B,IAAIkzE,GAAO6xI,cACzD1lN,KAAKqsO,SAAS0hC,SAASz/D,EAAS,WAChCtuM,KAAKqsO,SAASwyC,aAAavwE,EAAS,gBAAiB,QACrDtuM,KAAKqy7B,gBAAgBF,EAAWC,IAChCpy7B,KAAKsuwB,sBAAsB6jL,EAAWC,GAC1C,CACAL,0BAA0BzjvB,GACtBtuM,KAAKqsO,SAAS8iC,YAAY7gE,EAAQoX,cAAe,WACjD1lN,KAAKqsO,SAAS0yC,gBAAgBzwE,EAAQoX,cAAe,iBACrD1lN,KAAKqsO,SAAS0yC,gBAAgBzwE,EAAQoX,cAAe,MACrD1lN,KAAKqsO,SAAS0yC,gBAAgBzwE,EAAQoX,cAAe,mBACzD,CACAssuB,wBACIhy7B,KAAKiw7B,gBAAgB/72B,QAAQu82B,IACzBzw7B,KAAKqsO,SAAS0yC,gBAAgB0xqB,EAAK/quB,cAAcC,cAAc,WAAY,MAC3E3lN,KAAKqsO,SAAS0yC,gBAAgB0xqB,EAAK/quB,cAAcC,cAAc,WAAY,aAAY,EAE/F,CACA0suB,gBAAgBC,EAAaC,GACzB,MAAMC,EAAc,QAAKvgzB,UACzBjyI,KAAKqsO,SAASwyC,aAAa0zqB,EAAa,KAAMC,GAC9Cxy7B,KAAKqsO,SAASwyC,aAAayzqB,EAAa,aAAcE,EAC1D,CACAlkL,sBAAsBgkL,EAAaC,GAC/B,MAAME,EAAS,QAAKxgzB,UACpBjyI,KAAKqsO,SAASwyC,aAAayzqB,EAAa,KAAMG,GAC9Czy7B,KAAKqsO,SAASwyC,aAAa0zqB,EAAa,mBAAoBE,EAChE,CACA9B,eAAe50iB,GACX,IAAIvmT,EAAQumT,EAAU/7Y,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,iBAAmBrw7B,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,kBACjG761B,EAAQ,GAAKA,GAASx1F,KAAKov7B,WAAWv82B,UACtC2iB,EAAQ,GAEZx1F,KAAK+w7B,mBAAmBv71B,EAAO,EAAGumT,GAAUA,EAChD,CACA21iB,YACQ1x7B,KAAK+l6B,gBAAkB/l6B,KAAKwxI,OAAO,IAGvCxxI,KAAK0y7B,yBACT,CACAf,WACQ3x7B,KAAK+l6B,gBAAkB/l6B,KAAKwxI,OAAOxxI,KAAKwxI,OAAO3+D,OAAS,IAG5D7yE,KAAK2y7B,wBACT,CACAf,kBACI5x7B,KAAK4y7B,sBAAqB,EAC9B,CACAf,iBACI7x7B,KAAK4y7B,sBAAqB,EAC9B,CACAF,0BACI1y7B,KAAK+w7B,mBAAmB,EAC5B,CACA4B,yBACI,MAAMn91B,EAAQrZ,KAAKmkB,OAAOtgG,KAAKov7B,WAAWv82B,OAAS,GAAK7yE,KAAKqw7B,kBAAoBrw7B,KAAKqw7B,iBACtFrw7B,KAAK+w7B,mBAAmBv71B,EAAOx1F,KAAKwxI,OAAO3+D,OAAS,EACxD,CACA+/2B,qBAAqB7imB,GACjB,MACMqzQ,EAAWpjmB,KAAKkm6B,oBADPn2kB,EAAY,GAAI,GAE3BqzQ,EAAW,GAAKA,GAAYpjmB,KAAKwxI,OAAO3+D,UAGmC,IAA3E7yE,KAAKmv7B,cAAc/2kB,UAAU/jR,IAASA,KAAUr0F,KAAKwxI,OAAO4xd,IAC5DpjmB,KAAK2w7B,eAAe5gmB,IAGpB/vV,KAAK+l6B,cAAgB/l6B,KAAKwxI,OAAO4xd,GACjCpjmB,KAAK8l6B,kBAAoB9l6B,KAAKgx7B,0BAA0BjhmB,GACxD/vV,KAAKow7B,eAAepw7B,KAAKkm6B,oBACzBlm6B,KAAKix7B,eACLjx7B,KAAK0pO,IAAIq6U,gBAEjB,CACAgtY,mBAAmBv71B,EAAO28W,EAAgB,EAAG0gf,GAAc,EAAOC,IAAa,GAC3E,MAAMnqzB,GAAMnzC,EAAQx1F,KAAKqw7B,iBAAmBrw7B,KAAKov7B,WAAWv82B,OAAS2iB,EAAQx1F,KAAKqw7B,sBAAmBhw7B,EAC/F07Y,GAAU/7Y,KAAKkv7B,kBAAoB151B,EACzCx1F,KAAKkv7B,kBAAoB151B,EACzB,MAAM0c,GAAW/1B,KAAKmkB,MAAM9K,EAAQx1F,KAAKqw7B,kBACzCrw7B,KAAKgv7B,gBAA4B,IAAX980B,GACtBlyG,KAAKsm6B,eAAiBvqhB,GAAU,QAAU,OAC1C/7Y,KAAKmv7B,cAAgBnv7B,KAAKov7B,WAAWr12B,MAAM/5E,KAAKkv7B,kBAAmBvmzB,IAAKxmD,OAAOkS,KAAUA,GAAMgx0B,QAE3Frl6B,KAAK+l6B,cADL8sB,EACqB7y7B,KAAKmv7B,cAAc,GAEnC2D,GACgB9y7B,KAAKmv7B,cAAcnv7B,KAAKmv7B,cAAct82B,OAAS,GAG/C7yE,KAAKwxI,OAAO2gU,GAErCnyc,KAAK8l6B,kBAAoB9l6B,KAAKgx7B,0BAA0Bj1iB,IACxD/7Y,KAAK0pO,IAAIjZ,gBACTzwN,KAAKow7B,eAAepw7B,KAAKkm6B,oBACzBlm6B,KAAKix7B,eACLjx7B,KAAKim6B,aAAejm6B,KAAKyv7B,cACzBzv7B,KAAK0pO,IAAIq6U,cACb,CACAktY,eACQjx7B,KAAKigtB,oBACLjgtB,KAAKmw7B,eAAexv7B,IAAIX,KAAK8l6B,mBAAmBzx0B,MAAQ,MAE5Dr0F,KAAKiw7B,gBAAgB/72B,QAAQ,CAACu82B,EAAM582B,KAChC7zE,KAAKqsO,SAAS2yC,SAASyxqB,EAAK/quB,cAAe,YAAa1lN,KAAKsx7B,kBAAkBtx7B,KAAKsw7B,UAAWz82B,IAC/F7zE,KAAKqsO,SAAS2yC,SAASyxqB,EAAK/quB,cAAe,sBAAuB,GAAG1lN,KAAKigtB,mBAAqB,MAAK,EAE5G,CACAswO,iBACIvw7B,KAAKiw7B,gBAAgB/72B,QAAQ,CAACu82B,EAAM582B,IAAU7zE,KAAKqsO,SAAS2yC,SAASyxqB,EAAK/quB,cAAe,YAAa1lN,KAAKsx7B,kBAAkBtx7B,KAAKsw7B,UAAWz82B,IACjJ,CACA282B,kBAEI,GADAxw7B,KAAKqw7B,iBAAmBl02B,KAAKC,MAAMp8E,KAAK6v7B,qBAAuB7v7B,KAAKiv7B,UAChEjv7B,KAAKox7B,UAAY,IAAMpx7B,KAAKqw7B,mBAC5Brw7B,KAAKox7B,QAAU,IAAMpx7B,KAAKqw7B,iBAC1Brw7B,KAAKgw7B,kBAAkB972B,QAAQR,GAAQ1zE,KAAKqsO,SAAS2yC,SAAStrM,EAAKgyI,cAAe,OAAQ,OAAO1lN,KAAKox7B,aACtGpx7B,KAAKyx7B,gBAAgBv92B,QAAQR,GAAQ1zE,KAAKqsO,SAAS2yC,SAAStrM,EAAKgyI,cAAe,OAAQ,OAAO1lN,KAAKox7B,aACpGpx7B,KAAK0pO,IAAIjZ,gBACTzwN,KAAKmv7B,cAAgBnv7B,KAAKov7B,WACrBr12B,MAAM/5E,KAAKkv7B,kBAAmBlv7B,KAAKkv7B,kBAAoBlv7B,KAAKqw7B,kBAC5Dlu2B,OAAOkS,IAAUA,EAAMgx0B,SACvBrl6B,KAAKmv7B,cAAc/u2B,KAAKiU,GAASA,IAAUr0F,KAAK+l6B,gBAAgB,CACjE,MAAM+qB,EAAiB9w7B,KAAKov7B,WAAWh3kB,UAAU/jR,GAASA,IAAUr0F,KAAK+l6B,eACzE/l6B,KAAK+w7B,mBAAmBD,EAAgB9w7B,KAAKkm6B,mBACjD,CAER,CACA/jL,aACQnivB,KAAKmusB,aAAaxtsB,IAAI,cACtBX,KAAKqv7B,cAAgBrv7B,KAAKmusB,aAAaxtsB,IAAI,aAE3CX,KAAKmusB,aAAaxtsB,IAAI,UACtBX,KAAKsv7B,UAAYtv7B,KAAKmusB,aAAaxtsB,IAAI,SAE3CX,KAAK0pO,IAAIq6U,cACb,EAEJ8qY,UAA4Bxh4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF24rB,IAhsVtB9h4B,MAgsVmEA,OAhsVnEA,MAgsVoGA,OAhsVpGA,MAgsV0HA,OAhsV1HA,MAgsVmJsh4B,IAhsVnJth4B,MAgsV+KC,MAAsB,EACxS6h4B,GAA4B50X,UAjsVuEltgB,MAAE,CAAA5jD,KAisVQ0l7B,GAA2B5uuB,UAAA,gCAAAyW,UAAA,SAAA5nG,EAAAqlB,GAAu8B,GAAv8B,EAAArlB,IAjsVrC/hE,MAAEg+wB,GAAA,GAAFh+wB,MAAEi+wB,GAAA,GAAFj+wB,MAAEk+wB,GAAA,EAisVkvBrsP,OAjsVpvB7xhB,MAAE+xuB,GAAA,GAAF/xuB,MAAEm+wB,GAAA,GAAFn+wB,MAisVu9Buh4B,GAAqB,MAAAx/zB,EAAA,KAAAw6iB,EAjsV5+Bv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAw7yB,gBAAArmR,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAA27yB,0BAAAxmR,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAA87yB,gBAAA3mR,GAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAA67yB,kBAAA1mR,GAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAs9yB,gBAAAnoR,GAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAg8yB,eAAA7mR,EAAA,GAAAppd,OAAA,CAAA1uE,OAAA,SAAAo1xB,UAAA,YAAAZ,kBAAA,oBAAAt0N,UAAA,YAAA+zN,eAAA,iBAAAxlN,kBAAA,oBAAAkmN,YAAA,cAAA7hX,WAAA,aAAAymM,eAAA,iBAAAg5K,aAAA,eAAAr5L,gBAAA,mBAAAlsf,SAAA,4BAAA/B,YAAA,EAAA1nJ,SAAA,CAAFhoC,MAisVuc,IAjsVvcA,aAAEqzJ,MAAA,GAAAC,KAAA,GAAAC,OAAA,2yCAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,KAAArlB,EAAA,OAAAuvF,EAAFtxJ,cAAE,YAAFA,CAksVjD,cAlsViDA,MAAE,mBAAFA,aAAEsxJ,GAAFtxJ,MAysV1EonF,EAAAy8yB,gBAAe,GAzsV2D7j4B,cAAE,cAAFA,MAAE,mBAAFA,aAAEsxJ,GAAFtxJ,MAqtV1EonF,EAAA08yB,YAAW,GArtV+D9j4B,cAAE,UAAFA,CA2tVzD,YA3tVyDA,MAAE,8BAAFA,aAAEsxJ,GAAFtxJ,MAiuV3DonF,EAAAkyxB,cAAa,EAjuV8Ct52B,CAiuV7C,2BAjuV6CA,aAAEsxJ,GAAFtxJ,MAkuV9DonF,EAAAu8yB,uBAAsB,GAluVwC3j4B,MAAE,EAAA242B,GAAA,uBAAF342B,kBAAE,YAAFA,MAAE,EAAAq52B,GAAA,aAAFr52B,OAiyVrF,GAAA+hE,IAjyVqF/hE,MAAE,GAAFA,MAAE,UAAAonF,EAAA26yB,YAAF/h4B,CAqsV5D,QAAAonF,EAAAk7yB,cArsV4Dti4B,CAwsV5D,WAAAonF,EAAAo9yB,cAxsV4Dxk4B,MAAE,kBAAFA,cAAE,UAAAonF,EAAA46yB,aAAFhi4B,CAitV3D,QAAAonF,EAAAm7yB,UAjtV2Dvi4B,CAotVhE,WAAAonF,EAAAq9yB,aAptVgEzk4B,MAAE,kBAAFA,MAAE,GAAFA,MAAE,cAAFA,MAAE,GAAA67wB,GAAAz0rB,EAAAmyxB,eAAFv52B,MAAE,GAAA6ixB,GAAAz7rB,EAAA66yB,kBAAFji4B,MAAE,iBAAFA,CAAE,gBAAFA,MAAE,GAAFA,MAAE,UAAAonF,EAAAi7yB,YAAFri4B,MAAE,GAAFA,MAAE,OAAAonF,EAAA4xxB,eAowVjE,EAAAlnuB,aAAA,CA8B6BqvgB,KAA2XmM,KAAwHh7J,KAAiGiC,KAAkFgtY,GAAmVlqY,OAAQv+V,cAAA,EAAA5lN,KAAA,CAAAkxP,UAAoC,IAC9lCzyB,OAAQ,aAAc,IAClBh+H,OAAM,UAAQgnJ,OAAM,CAChBlrB,UAAW,oCACX,CAAEj2K,OAAQ,CAAE0+2B,eAAgB,QAAO,EACvCvk0B,OAAM,WAASgnJ,OAAM,CACjBlrB,UAAW,oCACX,CAAEj2K,OAAQ,CAAE0+2B,eAAgB,QAAO,EACvCvk0B,OAAM,YAAUgnJ,OAAM,CAClBlrB,UAAW,sBAElB,EACDkC,OAAQ,cAAe,IACnB2xB,OAAW,aAAc,IACrBC,OAAQ,6BAA2B5I,OAAM,CAAElrB,UAAW,wBACvD,CAAEj2K,OAAQ,CAAE05pB,kBAAmB,UAAS,EAC3C5vd,OAAW,YAAa,IACpBC,OAAQ,6BAA2B5I,OAAM,CAAElrB,UAAW,uBACvD,CAAEj2K,OAAQ,CAAE05pB,kBAAmB,eA/hBxC4uO,EAA2B,KA+sB3BkE,GAAyB,MAA/B,MAAMA,GACFvw7B,YAAY6pO,GACRrsO,KAAKqsO,SAAWA,EAChBrsO,KAAKwxI,OAAS,GACdxxI,KAAKq1nB,cAAgB,IAAI99F,KAC7B,CACAzlU,kBACI9xN,KAAKgz7B,2BACLhz7B,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKiz7B,qBAAqBtsvB,QAAQn/I,UAAU,KAC3DxnD,KAAKiz7B,sBAAsBpg3B,OAAS,EACpC7yE,KAAKgz7B,2BAGLhz7B,KAAKkz7B,uBAAsB,GAGvC,CACAljpB,OAAOn8N,GACCA,EAAQ,GAAKA,GAAS7zE,KAAKmz7B,MAAMtg3B,QAGrC7yE,KAAKmz7B,MAAMxy7B,IAAIkzE,GAAOm8N,QAC1B,CACA0hZ,SAAS79mB,GACDA,EAAQ,GAAKA,GAAS7zE,KAAKmz7B,MAAMtg3B,QAGrC7yE,KAAKmz7B,MAAMxy7B,IAAIkzE,GAAO69mB,UAC1B,CACAshQ,2BACIhz7B,KAAKmz7B,OAAOj/2B,QAAQ,CAACu82B,EAAM582B,KACvB,MAAMs+2B,EAAY1B,EAAKnivB,QAAQoX,cAAcC,cAAc,WACrDytuB,GAAYpz7B,KAAKqz7B,gBAAgB1y7B,IAAIkzE,GAAO6xI,cAAcC,cAAc,oBAC1EytuB,IACApz7B,KAAKsuwB,sBAAsB6jL,EAAWiB,GAAS,EAG3D,CACAF,wBACIlz7B,KAAKmz7B,OAAOj/2B,QAAQu82B,IAChB,MAAM0B,EAAY1B,EAAKnivB,QAAQoX,cAAcC,cAAc,WAC3D3lN,KAAKqsO,SAAS0yC,gBAAgBozqB,EAAW,mBAAkB,EAEnE,CACA7jL,sBAAsBgkL,EAAaC,GAC/B,MAAMC,EAAc,QAAKvgzB,UACzBjyI,KAAKqsO,SAASwyC,aAAa0zqB,EAAa,KAAMC,GAC9Cxy7B,KAAKqsO,SAASwyC,aAAayzqB,EAAa,mBAAoBE,EAChE,EAEJO,UAA0B1l4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyF68rB,IAthWpBhm4B,MAshW+DA,OAAY,EAC9Kgm4B,GAA0B94X,UAvhWyEltgB,MAAE,CAAA5jD,KAuhWM4p7B,GAAyB9yuB,UAAA,8BAAAyW,UAAA,SAAA5nG,EAAAqlB,GAvhW/B,GAuhW+B,EAAArlB,IAvhWjC/hE,MAAEk+wB,GAAA,GAAFl+wB,MAAE6jxB,GAAA,GAAF7jxB,MAAEikxB,GAAA,MAAAlitB,EAAA,KAAAw6iB,EAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAg/yB,MAAA7pR,GAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAk/yB,gBAAA/pR,GAAFv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAA8+yB,qBAAA3pR,EAAA,GAAAppd,OAAA,CAAA1uE,OAAA,SAAAo1xB,UAAA,YAAAZ,kBAAA,oBAAAt0N,UAAA,YAAA+zN,eAAA,iBAAAxlN,kBAAA,oBAAA4mN,WAAA,aAAAviX,WAAA,aAAAymM,eAAA,iBAAAg5K,aAAA,eAAAr5L,gBAAA,mBAAAlsf,SAAA,0BAAA/B,YAAA,EAAA1nJ,SAAA,CAAFhoC,MAuhW+b,IAvhW/bA,OAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,OAAA,ufAAAC,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,EAAA+52B,GAAA,YAwhWrD,EAAAh4yB,GAxhWmD/hE,MAAE,OAAAonF,EAAA3C,QAAA2C,EAAA3C,OAAA3+D,OAAA,EAwhWvD,EAAAgsH,aAAA,CAgCmBwgX,KAAiGg7J,KAAwHj9J,KAA2FkxY,GAAmVlqY,OAAQv+V,cAAA,IApF1sBktuB,EAAyB,KAoKzBO,GAAkC,MAAxC,MAAMA,WAA2CxF,GAC7Ctr7B,YAAYqhN,GACRpiN,QACAzB,KAAK6jN,QAAUA,CACnB,EAEJyvuB,UAAmCjm4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFo9rB,IA9oW7Bvm4B,MA8oWiFC,MAAsB,EAC1Msm4B,GAAmCrqZ,UA/oWgEl8e,MAAE,CAAA5jD,KA+oWemq7B,GAAkCrzuB,UAAA,2CAAAw8B,YAAA,EAAA1nJ,SAAA,CA/oWnDhoC,MA+oWkI,CAC7N,CACI+kB,QAASg82B,GACTp6X,eAAagF,OAAW,IAAM46X,OAlpWyDvm4B,SAwoW7Fum4B,EAAkC,KA2BxC,MAIMC,GAAsB,gBAC5B,IAGMC,GAAiB,MAAvB,MAAMA,GACFhx7B,YAAY+r7B,GACRvu7B,KAAKuu7B,gBAAkBA,EAMvBvu7B,KAAKo/V,YAAc,WAOnBp/V,KAAK4m6B,WAAY,EAMjB5m6B,KAAKgm6B,mBAAoB,EAMzBhm6B,KAAK0xsB,WAAY,EAMjB1xsB,KAAKyl6B,gBAAiB,EACtBzl6B,KAAKozsB,WAAY,EAKjBpzsB,KAAKo9O,SAAW,IAAIh+B,MAIpBp/M,KAAK4k6B,cAAgB,IAAIxltB,MAKzBp/M,KAAKm7vB,WAAa,IAAI/7iB,MACtBp/M,KAAK8kJ,QAAU,GACf9kJ,KAAKyz7B,aAAerF,GACpBpu7B,KAAK0z7B,YAzDe,IA0DpB1z7B,KAAK2z7B,aAzDgB,IA0DrB3z7B,KAAK4z7B,YAAcL,GACnBvz7B,KAAKk9a,aAAe,GACpBl9a,KAAKq1nB,cAAgB,IAAI99F,MACzBv3hB,KAAKuu7B,gBAAgB3rrB,SAAW5iQ,IACpC,CAIA,UAAIwxI,CAAOA,GACP,MAAK+pkB,MAAY/pkB,KAGjBxxI,KAAKk9a,aAAe1rS,EACpBxxI,KAAK8kJ,QAx4CQ+uyB,EAACns2B,GAAOswF,IAw4COh4K,KAAKk9a,aAv4CxB/mW,IAAKzC,GAKJog3B,EAACpg3B,GAAMskG,MACrBn2B,MAAOnuE,GAAKskG,EAAOn2B,QAAUnuE,GAAKmuE,MAClCtoE,KAAM7F,GAAKskG,EAAOz+F,OAAS7F,GAAK6F,KAChCk/J,SAAU/kK,GAAKskG,EAAOygE,WAAa/kK,GAAK+kK,SACxCzkL,YAAa0f,GAAKskG,EAAOhkH,cAAgB0f,GAAK1f,YAC9C0zsB,SAAUh0rB,GAAKskG,EAAO0vlB,WAAah0rB,GAAKg0rB,SACxCn+T,OAAQ71X,GAAKskG,EAAOuxR,SAAW71X,GAAK61X,OACpCm0E,QAAShqc,GAAKskG,EAAO0lW,UAAYhqc,GAAKgqc,UAZXo2a,CAAUpg3B,EAAMskG,IAu4CxB67wB,CAAa7z7B,EAAmBA,KAAK+z7B,aACpD/z7B,KAAK8kJ,QAAQ/T,KAAK,CAAC91C,EAAGH,IACXG,EAAE1hB,KAAKnI,UAAY0pB,EAAEvhB,KAAKnI,WAEjCpxE,KAAK8kJ,QAAQjyE,OAAS,GAAG,CACzB,IAAIupf,EAAOp8jB,KAAK8kJ,QAAQ,GAAGvrE,KAAKE,cAAgB,EAChDz5E,KAAK8kJ,QAAQ5wE,QAASmgB,IACdA,EAAM9a,KAAKE,gBAAkB2if,IAC7BA,EAAO/ne,EAAM9a,KAAKE,cAClB4a,EAAM+ne,KAAOA,IAGzB,CACJ,CACA,UAAI5qb,GACA,OAAOxxI,KAAK8kJ,OAChB,CAIA,eAAIivyB,CAAY7z7B,GACZF,KAAKyz7B,aAAe,IAAKrF,MAAuBlu7B,GAC5CF,KAAKk9a,eACLl9a,KAAKwxI,OAASxxI,KAAKk9a,aAE3B,CACA,eAAI62gB,GACA,OAAO/z7B,KAAKyz7B,YAChB,CAOA,cAAI5sB,GACA,OAAO7m6B,KAAK0z7B,WAChB,CACA,cAAI7sB,CAAW3m6B,GAEPF,KAAK0z7B,YADLxz7B,GA/GgB,GAqHxB,CAOA,eAAIim6B,GACA,OAAOnm6B,KAAK2z7B,YAChB,CACA,eAAIxtB,CAAYjm6B,GAERF,KAAK2z7B,aADLzz7B,GA/HiB,GAqIzB,CAIA,qBAAI+/sB,GACA,MAA8B,iBAAnBjgtB,KAAKmxP,UACLnxP,KAAKmxP,UAEe,kBAAnBnxP,KAAKmxP,WAA2BnxP,KAAKmxP,aAAc,EAACoqd,MAAYv7sB,KAAKmxP,WACjD,eAArBnxP,KAAKo/V,YAjJsB,IACF,IAkJ7B,CACX,CAMA,cAAIklN,CAAWpkjB,GAEPF,KAAK4z7B,aADT,EAAIr4O,MAAYr7sB,IAAoB,KAAVA,EACHA,EAGAqz7B,EAE3B,CACA,cAAIjvY,GACA,OAAOtkjB,KAAK4z7B,WAChB,CACA,iBAAIjnD,GACA,MAA4B,aAArB3s4B,KAAKo/V,WAChB,CACA,mBAAIg3c,GACA,MAA4B,eAArBp2yB,KAAKo/V,WAChB,CACA,oBAAI40lB,GACA,OAA0B,IAAnBh07B,KAAK4m6B,WAA2C,aAArB5m6B,KAAKo/V,WAC3C,CACA,oBAAI60lB,GACA,OAAkC,IAA3Bj07B,KAAKgm6B,mBAAmD,aAArBhm6B,KAAKo/V,WACnD,CACA4yO,qBACIhykB,KAAKk07B,eACT,CACA/vuB,cACInkN,KAAKq1nB,cAAc3mjB,aACvB,CAKAilU,WACI3zY,KAAKm07B,oBAAoBxgjB,UAC7B,CAKAllU,OACIzuE,KAAKm07B,oBAAoB1l3B,MAC7B,CAKAkhB,KAAK9b,GACD7zE,KAAKm07B,oBAAoBxk2B,KAAK9b,EAClC,CAKAm8N,OAAOn8N,GACH7zE,KAAKo07B,kBAAkBpkpB,OAAOn8N,EAClC,CAKA69mB,SAAS79mB,GACL7zE,KAAKo07B,kBAAkB1iQ,SAAS79mB,EACpC,CACAqg3B,gBACIl07B,KAAK+qvB,eAAiB/qvB,KAAKq07B,oBAAoBlovB,MAC/CnsM,KAAK+j6B,aAAe/j6B,KAAKs07B,kBAAkBnovB,MAC3CnsM,KAAK0quB,gBAAkB1quB,KAAKu07B,qBAAqBpovB,MACjDnsM,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKq07B,oBAAoB1tvB,QAAQn/I,UAAU,KAC9DxnD,KAAK+qvB,eAAiB/qvB,KAAKq07B,oBAAoBlovB,OAAS,QAE5DnsM,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKs07B,kBAAkB3tvB,QAAQn/I,UAAU,KAC5DxnD,KAAK+j6B,aAAe/j6B,KAAKs07B,kBAAkBnovB,OAAS,QAExDnsM,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKu07B,qBAAqB5tvB,QAAQn/I,UAAU,KAC/DxnD,KAAK0quB,gBAAkB1quB,KAAKu07B,qBAAqBpovB,OAAS,OAElE,EAEJqnvB,UAAkBnm4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFs9rB,IA54WZzm4B,MA44W+Csh4B,IAAe,EACjKmF,GAAkBv5X,UA74WiFltgB,MAAE,CAAA5jD,KA64WFqq7B,GAAiBvzuB,UAAA,qBAAAiiX,eAAA,SAAApzc,EAAAqlB,EAAAugd,GAO+J,GAP/J,EAAA5le,IA74WjB/hE,MAAE2niB,EAo5WnCy5V,GAAmC,GAp5WFph4B,MAAE2niB,EAo5WmDw5V,GAAiC,GAp5WtFnh4B,MAAE2niB,EAo5W0Iu5V,GAAoC,MAAAn/zB,EAAA,KAAAw6iB,GAp5WhLv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAkgzB,mBAAA/qR,IAAFv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAmgzB,iBAAAhrR,IAAFv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,EAAAogzB,oBAAAjrR,GAAA,GAAA5yc,UAAA,SAAA5nG,EAAAqlB,GAo5WsY,GAp5WtY,EAAArlB,IAAF/hE,MAo5WiQ8h4B,GAA2B,GAp5W5R9h4B,MAo5W+Wgm4B,GAAyB,MAAAjk0B,EAAA,KAAAw6iB,EAp5WxYv8mB,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAggzB,mBAAA7qR,EAAAn9d,OAAFp/I,MAAEu8mB,EAAFv8mB,WAAEonF,EAAAigzB,iBAAA9qR,EAAAn9d,MAAA,GAAAy1B,SAAA,GAAAC,aAAA,SAAA/yG,EAAAqlB,GAAA,EAAArlB,GAAF/hE,MAAE,aAAAonF,EAAAi/jB,UAAFrmpB,CA64WiB,sBAAAonF,EAAAw4vB,cA74WjB5/0B,CA64WiB,wBAAAonF,EAAAiiqB,gBA74WjBrpvB,CA64WiB,yBAAAonF,EAAA6/yB,iBA74WjBjn4B,CA64WiB,yBAAAonF,EAAA8/yB,iBAAA,EAAA/zuB,OAAA,CAAA1uE,OAAA,SAAAuizB,YAAA,cAAA30lB,YAAA,cAAAwnkB,UAAA,YAAAZ,kBAAA,oBAAAt0N,UAAA,YAAA+zN,eAAA,iBAAAt0qB,UAAA,YAAA01qB,WAAA,aAAAV,YAAA,cAAA7hX,WAAA,cAAAnkW,QAAA,CAAAi9B,SAAA,WAAAwnrB,cAAA,gBAAAzpK,WAAA,cAAA38gB,SAAA,kBAAA/B,YAAA,EAAA1nJ,SAAA,CA74WjBhoC,MA64W+vB,CAC11Bsh4B,GACAj9O,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,oBAl5W6Ez0N,OAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,YAAA,IAAAm1hB,EAu5WvE+2B,SAv5WuE/2B,EAu5W/E5/G,yGAAQ22I,EAKZ32I,6FAAI,iDAAA4/G,GAAA,4CAAA+2B,GAAA,sqBAAAjsjB,SAAA,SAAAzxF,EAAAqlB,GAAA,EAAArlB,IA55W6E/hE,MAAE,IAAFA,CAy5W5E,KAz5W4EA,MAAE,EAAAg62B,GAAA,iCAAFh62B,CA46W1F,EAAAi62B,GAAA,qCAcA,EAAAl4yB,IA17W0F/hE,MAAE,GAAFA,MAAE,oBAAAonF,EAAAirN,aAAFryS,cAAE,sBAAAonF,EAAAirN,aA+6WtD,EAAAvgK,aAAA,CAakBy0vB,GAA+Gj0Y,KAAiG0zY,GAA6TlE,IAA2BhpuB,cAAA,IAjRnmB2tuB,EAAiB,KA0YvB,MA0FMgB,GAAmB,CACrB5I,GACAW,GACAzB,GACAP,IA+BJ,IAqFMkK,GAAY,MAAlB,MAAMA,IAENA,UAAapn4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFu+rB,GAAY,EACtHA,GAAa5yqB,UA1wXsF90N,KAAE,CAAA5jD,KA0wXMsr7B,KAC3GA,GAAa3yqB,UA3wXsF/0N,MAAE,CAAAo0L,QAAA,CA2wX8B8+rB,GAAiBS,GAA+BC,GAAeK,GAAsBF,GAAmBC,GAAqBF,GAAqB9F,GAAiBwB,GAA0BK,GAAwB4E,GAAyBoL,GAAqBe,GAAyB1jB,GAAmB3B,GAAuBwH,GAAmBxD,GAAuBuhB,GAAsBzO,GAAkBU,GAAgCj8E,GAAmBE,GAAsBi1E,GAAiC4S,GAAqBW,GAA6BzB,GAAyBP,GAA+BiJ,GAAmBxF,MAJ5vByG,EAAY,KAmIZC,GAAgB,MAAtB,MAAMA,IAENA,UAAiBrn4B,UAAI,SAAA6oM,GAAA,WAAAA,GAAyFw+rB,GAAgB,EAC9HA,GAAiB7yqB,UA74XkF90N,KAAE,CAAA5jD,KA64XUur7B,KAC/GA,GAAiB5yqB,UA94XkF/0N,MAAE,CAAAo0L,QAAA,CA84XsCqzsB,MAJrIE,EAAgB,kRCr9XtB,MAAA7zuB,EAAA,MAAAyS,EAAA,4BAAA2F,EAAA8rP,MAAAlsP,UAAAksP,KAAA,SAAA4ve,GAAA7l0B,GAAAqlB,IAAA,UAAAygzB,GAAA9l0B,GAAAqlB,IA4ee,GA5ef,EAAArlB,IAsHmG/hE,MAAE,EAAA4n4B,GAAA,qBAsXtF,EAAA7l0B,GAAA,OAAA+yF,GAtXoF90J,cAAE,mBAAA80J,GAAA8nf,aAAF58oB,CAmXtD,0BAnXsDA,MAAE,EAAAksK,EAAApX,GAAAnuI,MAsXvF,WAAAmh3B,GAAA/l0B,GAAAqlB,IAaS,GAbT,EAAArlB,KAtXqF/hE,MAAE,YAAFA,MAAE,0BAAFA,SAmY5E,EAAA+hE,GAAA,OAAA+yF,GAnY4E90J,MAAE,GAAFA,cAAE80J,GAAAizuB,iBAAAjzuB,GAAAnuI,OAAF3mB,MAAE80J,GAAAkzuB,kBAAAlzuB,GAAAnuI,OAAF3mB,MAAE,OAAA80J,GAAAnuI,KAAAqgC,KAAFhnD,CA4XzD,kBAAA80J,GAAAnuI,KAAAytN,UA5XyDp0O,CA6XzC,UAAA80J,GAAAnuI,KAAAi5U,QAEV,WAAAqoiB,GAAAlm0B,GAAAqlB,IAMmD,GANnD,EAAArlB,KA/XmD/hE,MAAE,aAAFA,MAAE,GAAFA,SAqYA,EAAA+hE,GAAA,OAAA+yF,GArYA90J,MAAE,GAAFA,cAAE80J,GAAAnuI,KAAAmuE,MAqYT,WAAAozyB,GAAAnm0B,GAAAqlB,IACyB,GADzB,EAAArlB,KArYO/hE,MAAE,aAAFA,MAAE,GAAFA,SAsYkB,EAAA+hE,GAAA,OAAA+yF,GAtYlB90J,MAAE,GAAFA,cAAE80J,GAAAnuI,KAAA1f,YAsYS,WAAAkh4B,GAAApm0B,GAAAqlB,IACvF,GADuF,EAAArlB,KAtYX/hE,MAAE,YAAFA,MAAE,EAAAio4B,GAAA,aAAFjo4B,CAqYrB,EAAAko4B,GAAA,eArYqBlo4B,SAuY5E,EAAA+hE,GAAA,OAAA+yF,GAvY4E90J,MAAE,GAAFA,cAAE,OAAA80J,GAAAnuI,KAAAmuE,OAAF90F,cAAE,OAAA80J,GAAAnuI,KAAA1f,YAsYpD,WAAAmh4B,GAAArm0B,GAAAqlB,IAE9B,GAF8B,EAAArlB,KAtYkD/hE,MAAE,YAAFA,MAAE,EAAA8n4B,GAAA,aAAF9n4B,CA0XL,EAAAmo4B,GAAA,cA1XKno4B,SAwYhF,EAAA+hE,GAAA,OAAA+yF,GAxYgF90J,sBAAE,OAAA80J,GAAAnuI,KAAAqgC,MAAA8tG,GAAAnuI,KAAAytN,WAAAt/E,GAAAnuI,KAAAi5U,SAAF5/V,cAAE,OAAA80J,GAAAnuI,KAAAmuE,OAAAggE,GAAAnuI,KAAA1f,YAoY1C,QAAAmlK,GAAA,qCAAAi8tB,GAAAtm0B,GAAAqlB,IAiGq1B,GAjGr1B,EAAArlB,IApYwC/hE,MAAE,YAqe2yB,EAAA+hE,GAAA,OAAA08jB,GAAAr3iB,GAAA0kF,UAAAva,GAre7yBvxJ,cAAE,wBAAFA,CAqeye,aAAAy+nB,GAAA3vhB,UAreze9uG,MAAE,UAAAy+nB,GAAAke,SAAF38oB,CAqewpB,UAAAy+nB,GAAAmgB,SArexpB5+oB,CAqeqsB,eAAAuxJ,GAAAqrf,aArersB58oB,CAqesvB,OAAAy+nB,IAretvBz+nB,MAAE,gBAAAy+nB,GAAA3vhB,SAAF9uG,CAAE,+BAAAuxJ,GAAA+2uB,aAAA7pQ,IAAA,QAAA8d,GAAA,4BAAAgsP,GAAAxm0B,GAAAqlB,IAAA,UAAAohzB,GAAAzm0B,GAAAqlB,IAywBnB,GAzwBmB,EAAArlB,IAAF/hE,MAAE,EAAAuo4B,GAAA,sBAywBnB,EAAAxm0B,GAAA,OAAAwvF,GAzwBiBvxJ,MAAE,GAAFA,MAAE,yBAAAuxJ,GAAAk3uB,oBAAA,KAAAl3uB,GAAAk3uB,oBAAA92sB,YAywBpB,WAAA+2sB,GAAA3m0B,GAAAqlB,IAAA,UAAAuhzB,GAAA5m0B,GAAAqlB,IAMI,GANJ,EAAArlB,IAzwBkB/hE,MAAE,EAAA0o4B,GAAA,sBA+wBhB,EAAA3m0B,GAAA,OAAAwvF,GA/wBcvxJ,MAAE,GAAFA,MAAE,yBAAAuxJ,GAAAysiB,eAAA,KAAAzsiB,GAAAysiB,eAAArsgB,YA+wBjB,WAAAi3sB,GAAA7m0B,GAAAqlB,IAMgB,GANhB,EAAArlB,KA/wBe/hE,MAAE,YAAFA,MAAE,GAAFA,SAqxBC,EAAA+hE,GAAA,OAAAwvF,GArxBDvxJ,MAAE,GAAFA,cAAEuxJ,GAAAz8D,MAqxBP,WAAA+zyB,GAAA9m0B,GAAAqlB,IACmC,GADnC,EAAArlB,KArxBK/hE,MAAE,YAAFA,MAAE,GAAFA,SAsxB8B,EAAA+hE,GAAA,OAAAwvF,GAtxB9BvxJ,MAAE,GAAFA,cAAEuxJ,GAAAm6B,SAsxBsB,WAAAo9sB,GAAA/m0B,GAAAqlB,IAEjF,GAFiF,EAAArlB,KAtxBxB/hE,MAAE,WAAFA,CAmxBd,YAnxBcA,MAAE,EAAA4o4B,GAAA,aAAF5o4B,CAqxBd,EAAA6o4B,GAAA,cArxBc7o4B,WAwxBzD,EAAA+hE,GAAA,OAAAwvF,GAxxByDvxJ,MAAE,GAAFA,cAAE,KAAAuxJ,GAAAkphB,SAAFz6qB,cAAE,OAAAuxJ,GAAAz8D,OAAF90F,cAAE,OAAAuxJ,GAAAm6B,SAsxBrC,WAAAq9sB,GAAAhn0B,GAAAqlB,IAI9B,GAJ8B,EAAArlB,KAtxBmC/hE,MAAE,YAAFA,MAAE,EAAA2o4B,GAAA,WAAF3o4B,CA+wBd,EAAA8o4B,GAAA,yBA/wBc9o4B,gBA0xBjE,EAAA+hE,GAAA,OAAAin0B,GA1xBiEhp4B,MAAE,GAAAuxJ,GAAFvxJ,MAAE,GAAFA,cAAE,OAAAuxJ,GAAAysiB,eAAFh+rB,CA8wB/B,WAAAgp4B,GAA0B,WAAAC,GAAAln0B,GAAAqlB,IAAA,UAAA8hzB,GAAAnn0B,GAAAqlB,IAgBR,GAhBQ,EAAArlB,IA9wBK/hE,MAAE,EAAAip4B,GAAA,sBA8xBf,EAAAln0B,GAAA,OAAAwvF,GA9xBavxJ,MAAE,GAAFA,MAAE,yBAAAuxJ,GAAAuphB,gBAAA,KAAAvphB,GAAAuphB,gBAAAnpf,YA8xBhB,WAAAw3sB,GAAApn0B,GAAAqlB,IAAA,KAAArlB,GAAA,OAAAu3F,GA9xBct5J,cAAE,YAAFA,MAAE,qBAAAqxJ,IAAFrxJ,MAAEs5J,IAAA,MAAA/H,GAAFvxJ,MAAE,UAAFA,MAuyB9CuxJ,GAAAksf,YAAApsf,IAAmB,GAvyB2BrxJ,OAwyBzD,MAAA+hE,GAAA,OAAAwvF,GAxyByDvxJ,MAAE,GAAFA,MAAE,aAAAuxJ,GAAA63uB,cAAFpp4B,CAoyB/B,WAAAuxJ,GAAA52H,MApyB+B36B,CAqyBzC,qBAAAuxJ,GAAAqrf,aAAA,KAAArrf,GAAAqrf,aAAAjrd,YACwB,WAAA03sB,GAAAtn0B,GAAAqlB,IAAA,EAAArlB,IAtyBiB/hE,MAAE,UA0yBjB,UAAAsp4B,GAAAvn0B,GAAAqlB,IAAA,KAAArlB,GAAA,OAAAw3F,GA1yBev5J,cAAE,YAAFA,MAAE,qBAAAqxJ,IAAFrxJ,MAAEu5J,IAAA,MAAAhI,GAAFvxJ,MAAE,UAAFA,MAkzB9CuxJ,GAAAksf,YAAApsf,IAAmB,GAlzB2BrxJ,OAmzBzD,MAAA+hE,GAAA,OAAAwvF,GAnzByDvxJ,MAAE,GAAFA,MAAE,aAAAuxJ,GAAAg4uB,iBAAFvp4B,CA+yB5B,WAAAuxJ,GAAA52H,MA/yB4B36B,CAgzBzC,qBAAAuxJ,GAAAqrf,aAAA,KAAArrf,GAAAqrf,aAAAjrd,YACwB,WAAA63sB,EAAAzn0B,GAAAqlB,IACR,GADQ,EAAArlB,IAjzBiB/hE,MAAE,EAAAmp4B,GAAA,aAAFnp4B,CAuyBzB,EAAAqp4B,GAAA,YAvyByBrp4B,CA0yBf,EAAAsp4B,GAAA,cAQV,EAAAvn0B,GAAA,OAAAwvF,GAlzByBvxJ,MAAE,GAAFA,MAAE,OAAAuxJ,GAAA63uB,eAAFpp4B,cAAE,OAAAuxJ,GAAAk4uB,uBAAFzp4B,cAAE,OAAAuxJ,GAAAg4uB,iBA4yBrC,WAAAG,GAAA3n0B,GAAAqlB,IAS9B,GAT8B,EAAArlB,KA5yBmC/hE,MAAE,YAAFA,MAAE,EAAAkp4B,GAAA,WAAFlp4B,CA8xBb,EAAAwp4B,EAAA,yBA9xBaxp4B,gBAqzBjE,EAAA+hE,GAAA,OAAA4n0B,GArzBiE3p4B,MAAE,GAAAuxJ,GAAFvxJ,MAAE,GAAFA,cAAE,OAAAuxJ,GAAAuphB,gBAAF96qB,CA6xB9B,WAAA2p4B,GAA2B,WAAAC,GAAA7n0B,GAAAqlB,IAAA,UAAAyizB,GAAA9n0B,GAAAqlB,IA6B9D,GA7B8D,EAAArlB,KA7xBG/hE,MAAE,YAAFA,MAAE,EAAA4p4B,GAAA,sBAAF5p4B,SA0zBjE,EAAA+hE,GAAA,OAAAwvF,GA1zBiEvxJ,MAAE,GAAFA,cAAE,yBAAAuxJ,GAAAgtiB,eAAA,KAAAhtiB,GAAAgtiB,eAAA5sgB,YAwzBjB,WAAAm4sB,GAAA/n0B,GAAAqlB,IAFE,GAEF,EAAArlB,IAxzBe/hE,MAAE,EAAA+o4B,GAAA,aAAF/o4B,CA6wBS,EAAA0p4B,GAAA,aA7wBT1p4B,CA4xBH,EAAA6p4B,GAAA,cA0BV,EAAA9n0B,GAAA,OAAAwvF,GAtzBavxJ,MAAE,GAAFA,MAAE,OAAAuxJ,GAAAz8D,OAAAy8D,GAAAm6B,UAAAn6B,GAAAysiB,gBAAFh+rB,cAAE,OAAAuxJ,GAAA52H,OAAA42H,GAAAuphB,iBAAF96qB,cAAE,OAAAuxJ,GAAAgtiB,eAszB9C,WAAAwrM,GAAAho0B,GAAAqlB,IAAA,KAAArlB,GAAA,OAAAuvF,GAtzB4CtxJ,cAAE,GAAFA,MAAE,WAAFA,MAAE,mBAAFA,MAAEsxJ,IAAA,MAAAC,GAAFvxJ,QAAE,OAAFA,MA+vBvDuxJ,GAAAy4uB,iBAAgB,GA/vBuChq4B,cAAE,UAAFA,CAgwBxB,YAhwBwBA,CAiwBY,WAjwBZA,MAAE,EAAAwo4B,GAAA,WAAFxo4B,CAywBjB,EAAA8p4B,GAAA,yBAzwBiB9p4B,0BAAE,MAAA+hE,GAAA,OAAAko0B,GAAFjq4B,MAAE,GAAAuxJ,GAAFvxJ,cAAE,GAAFA,MAAE,6BAAFA,MAAE,GAAFA,MAAE,UAAAuxJ,GAAAorf,UAAF38oB,MAAE,kBAAAuxJ,GAAAkphB,SAAFz6qB,cAAE,OAAAuxJ,GAAAk3uB,oBAAFzo4B,CAwwBlC,WAAAiq4B,GAAoB,QAAA1sP,GAAA,0CAAA2sP,GAAAno0B,GAAAqlB,IAqTvB,GArTuB,EAAArlB,IAxwBc/hE,MAAE,0BA6jCvC,EAAA+hE,GAAA,OAAA+yF,GA7jCqC90J,MAAE,GAAFA,MAAE,OAAA80J,GAAAnuI,KAAAqgC,KAAFhnD,CA2jCjE,kBAAA80J,GAAAnuI,KAAAytN,UA3jCiEp0O,CA4jCjD,UAAA80J,GAAAnuI,KAAAi5U,QACV,WAAAuqiB,GAAApo0B,GAAAqlB,IAC+C,GAD/C,EAAArlB,KA7jC2D/hE,MAAE,YAAFA,MAAE,GAAFA,SA8jCZ,EAAA+hE,GAAA,OAAA+yF,GA9jCY90J,MAAE,GAAFA,cAAE80J,GAAAnuI,KAAA0b,KA8jCrB,WAAA+n2B,GAAAro0B,GAAAqlB,IA9jCqB,GA8jCrB,EAAArlB,KA9jCmB/hE,MAAE,GAAFA,MAAE,EAAAkq4B,GAAA,2BAAFlq4B,CA6jC1D,EAAAmq4B,GAAA,cA7jC0Dnq4B,SAAE,EAAA+hE,GAAA,OAAA+yF,GAAF90J,sBAAE,OAAA80J,GAAAu1uB,UAAFrq4B,cAAE,OAAA80J,GAAAnuI,KAAA0b,KA8jCnE,WAAAio2B,GAAAvo0B,GAAAqlB,IAAA,UAAAmjzB,GAAAxo0B,GAAAqlB,IAI0B,GAJ1B,EAAArlB,IA9jCiE/hE,MAAE,EAAAsq4B,GAAA,qBAkkCzC,EAAAvo0B,GAAA,OAAA+yF,GAlkCuC90J,cAAE,yBAAA80J,GAAA8nf,aAAA,KAAA9nf,GAAA8nf,aAAAjrd,YAAF3xL,CAikCzC,0BAjkCyCA,MAAE,EAAAksK,EAAApX,GAAAnuI,MAkkC1C,WAAA6j3B,GAAAzo0B,GAAAqlB,IAuSyxB,GAvSzxB,EAAArlB,IAlkCwC/hE,MAAE,YAy2C+uB,EAAA+hE,GAAA,OAAA08jB,GAAAr3iB,GAAA0kF,UAAA4ye,GAAAt3jB,GAAAtgE,MAAAyyJ,GAz2CjvBv5K,MAAE,GAAFA,MAAE,oBAAAu5K,GAAAzqE,SAAF9uG,CAy2CiX,OAAAy+nB,GAz2CjXz+nB,CAy2CkZ,QAAA0+oB,GAz2ClZ1+oB,CAy2Cmb,cAAAu5K,GAAAuzsB,YAz2Cnb9s3B,CAy2Cke,eAAAu5K,GAAAqje,aAz2Cle58oB,CAy2CmhB,UAAAy+nB,GAAAke,SAz2CnhB38oB,CAy2CkoB,UAAAy+nB,GAAAmgB,SAz2CloB5+oB,CAy2C+qB,cAAAu5K,GAAAkxtB,UAz2C/qBzq4B,MAAE,oCAAA0+oB,GAAA,WAAAgsP,GAAA3o0B,GAAAqlB,IAAA,KAAArlB,KAAF/hE,MAAE,GAAFA,MAAE,EAAAwq4B,GAAA,cAAFxq4B,SAAE,EAAA+hE,GAAA,OAAAw3G,GAAFv5K,sBAAE,UAAAu5K,GAAA5+I,MAy2CkO,QAAAyjmB,GAAA,2BAAAC,GAAA,uCAAAC,GAAA,+BAAAyf,IAAA/lP,GAAA70G,GAAAC,GAAA60G,GAAAC,OAAA,yBAAAF,GAAA,oBAAA70G,GAAA,6BAAAC,GAAA,yBAAA60G,GAAA,aAAAC,KAAA8lP,IAAAhmP,GAAA70G,OAAAr3I,UAAAksP,GAAAlxY,MAAAq8R,KAAA,SAAAwnlB,GAAA5o0B,GAAAqlB,IAAA,EAAArlB,IAz2CpO/hE,MAAE,EAwgD5B,UAAA4q4B,GAAA7o0B,GAAAqlB,IAAA,EAAArlB,IAxgD0B/hE,MAAE,EA4gD9B,UAAA6q4B,GAAA9o0B,GAAAqlB,IA5gD8B,GA4gD9B,EAAArlB,KA5gD4B/hE,MAAE,GAAFA,MAAE,EAAA4q4B,GAAA,sBAAF5q4B,SAAE,EAAA+hE,GAAA,CAAF/hE,QAAE,MAAA8q4B,GAAF9q4B,MAAE,GAAFA,cAAE,mBAAA8q4B,GA4gD/C,WAAAC,GAAAhp0B,GAAAqlB,IAAA,KAAArlB,GAAA,OAAA4oG,GA5gD6C3qK,cAAE,WAAFA,MAAE,kBAAFA,MAAE2qK,IAAA,MAAA4O,GAAFv5K,MAAE,UAAFA,MA+hD3Cu5K,GAAAyxtB,cAAa,GA/hD8Bhr4B,OA+hDqC,MAAA+hE,GAAA,OAAAw3G,GA/hDrCv5K,MAAE,GAAFA,MAAE,MAAAu5K,GAAA5yJ,KAAAzzE,KAAA+3Y,SAAFjrV,MA+hDF,WAAAir4B,GAAAlp0B,GAAAqlB,IAM5D,GAN4D,EAAArlB,IA/hDE/hE,MAAE,0BAqiDhE,EAAA+hE,GAAA,OAAAw3G,GAriD8Dv5K,MAAE,GAAFA,MAAE,OAAAu5K,GAAA5yJ,KAAAzzE,KAAA8zG,KAAFhnD,CAiiDxD,kBAAAu5K,GAAA5yJ,KAAAzzE,KAAAkhS,UAjiDwDp0O,CAkiDxC,UAAAu5K,GAAA5yJ,KAAAzzE,KAAA0sZ,QACV,WAAAsriB,GAAAnp0B,GAAAqlB,IAI9B,GAJ8B,EAAArlB,KAniDkD/hE,MAAE,YAAFA,MAAE,EAAA+q4B,GAAA,YAAF/q4B,CA+hDqC,EAAAir4B,GAAA,4BA/hDrCjr4B,MAAE,YAAFA,MAAE,GAAFA,WAuiDhF,EAAA+hE,GAAA,OAAAw3G,GAviDgFv5K,MAAE,GAAFA,MAAE,UAAFA,MAAE,EAAA+9oB,GAAAxke,GAAA5yJ,KAAAnzE,QAAA8kc,QAAA,IAAA/+N,GAAAzyJ,QAAAyyJ,GAAA5yJ,KAAAzzE,KAAA8zG,QAAAuyH,GAAA5yJ,KAAAzzE,KAAAmvF,OAAAk3I,GAAA5yJ,KAAAzzE,KAAA8zG,OAAAuyH,GAAA5yJ,KAAAzzE,KAAAmvF,KAAAk3I,GAAAzqE,UAAF9uG,CAwhDjF,QAAAu5K,GAAA5yJ,KAAAzzE,KAAA4hJ,OAAA,GAxhDiF90F,CAyhDpD,WAAAu5K,GAAAzqE,UAAA,KAzhDoD9uG,MAAE,gBAAAu5K,GAAAzqE,SAAF9uG,CAAE,eAAAu5K,GAAA5yJ,KAAAnzE,QAAAmwc,OAAA,aAAF3jZ,cAAE,OAAAu5K,GAAA5yJ,KAAAzzE,KAAA+3Y,UAAFjrV,cAAE,OAAAu5K,GAAA5yJ,KAAAzzE,KAAA8zG,MAAAuyH,GAAA5yJ,KAAAzzE,KAAAkhS,WAAA76D,GAAA5yJ,KAAAzzE,KAAA0sZ,SAAF5/V,MAAE,GAAFA,MAAEu5K,GAAA5yJ,KAAAzzE,KAAAmvF,KAsiD5B,WAAA8o2B,GAAApp0B,GAAAqlB,IAAA,UAAAgkzB,GAAArp0B,GAAAqlB,IAS5D,GAT4D,EAAArlB,IAtiD0B/hE,MAAE,EAAAmr4B,GAAA,sBA+iDxF,EAAApp0B,GAAA,OAAAw3G,GA/iDsFv5K,MAAE,GAAFA,MAAE,mBAAAu5K,GAAAqje,aAAF58oB,CA0iDlD,0BA1iDkDA,MAAE,EAAAg+oB,GAAAzke,GAAA5yJ,KAAAzzE,KAAAqmO,GAAAzyJ,OA8iDnF,WAAAuk3B,GAAAtp0B,GAAAqlB,IA9iDmF,GA8iDnF,EAAArlB,KA9iDiF/hE,MAAE,GAAFA,MAAE,EAAAkr4B,GAAA,cAAFlr4B,CA8hDtF,EAAAor4B,GAAA,YA9hDsFpr4B,SAAE,EAAA+hE,GAAA,OAAAw3G,GAAFv5K,sBAAE,QAAAu5K,GAAAqje,cAAF58oB,cAAE,OAAAu5K,GAAAqje,aAyiDlE,WAAA0uP,GAAAvp0B,GAAAqlB,IAAA,EAAArlB,IAziDgE/hE,MAAE,EAmjD9B,UAAAur4B,GAAAxp0B,GAAAqlB,IAnjD8B,GAmjD9B,EAAArlB,KAnjD4B/hE,MAAE,GAAFA,MAAE,EAAAsr4B,GAAA,sBAAFtr4B,SAAE,EAAA+hE,GAAA,CAAF/hE,QAAE,MAAA8q4B,GAAF9q4B,MAAE,GAAFA,cAAE,mBAAA8q4B,GAmjD/C,QAAAtsP,GAAA,gCAAAK,GAAA,oCAAA2sP,GAAAzp0B,GAAAqlB,IAmN0mC,GAnN1mC,EAAArlB,IAnjD6C/hE,MAAE,YAswD2jC,EAAA+hE,GAAA,OAAA+yF,GAtwD7jC90J,MAAE,GAAFA,MAAE,OAAA80J,GAAA22uB,cAAFzr4B,CAswDw+B,UAAA80J,GAAA42uB,iBAA+B,WAAAC,GAAA5p0B,GAAAqlB,IAA0X,GAA1X,EAAArlB,IAtwDvgC/hE,MAAE,YAswD+3C,EAAA+hE,GAAA,OAAA+yF,GAtwDj4C90J,MAAE,GAAFA,MAAE,OAAA80J,GAAA22uB,cAAFzr4B,CAswDgrC,UAAA80J,GAAA42uB,iBAAoD,WAAAE,GAAA7p0B,GAAAqlB,IAAgL,GAAhL,EAAArlB,KAtwDpuC/hE,MAAE,YAAFA,MAAE,EAAAwr4B,GAAA,aAAFxr4B,CAswDsjC,EAAA2r4B,GAAA,cAtwDtjC3r4B,SAswDo5C,EAAA+hE,GAAA,OAAAwvF,GAtwDp5CvxJ,QAAEyr2B,GAAAl6sB,GAAAua,UAAAxF,GAAA/U,GAAAzqI,MAAA+k3B,GAAAt6uB,GAAAnS,MAAA0svB,GAAAv6uB,GAAA7qG,KAAAouG,EAAF90J,cAAE,OAAAyr2B,GAAFzr2B,CAswD+wB,QAAAsmK,GAtwD/wBtmK,CAswD8yB,eAAA80J,EAAAi3uB,aAtwD9yB/r4B,CAswD+1B,eAAA80J,EAAA8nf,cAtwD/1B58oB,MAAE,8BAAAsmK,IAAFtmK,MAAE,GAAFA,MAAE,gBAAA80J,EAAAi3uB,eAAAF,IAAF7r4B,cAAE,kBAAA80J,EAAAi3uB,cAAAD,IAAA,MAAArgC,OAAAj45B,QAAAiwrB,WAAA,MAAA3ue,EAAAn6H,MAAA2rI,GAAA,IAAAxR,EAAAn6H,MAAA2rI,GAAA,GAAA9yN,QAAAiwrB,WAswDm2C,WAAAuoQ,GAAAjq0B,GAAAqlB,IAtwDn2C,GAswDm2C,EAAArlB,KAtwDr2C/hE,MAAE,GAAFA,MAAE,EAAA4r4B,GAAA,YAAF5r4B,SAAE,EAAA+hE,GAAA,OAAA8p0B,GAAAzkzB,GAAAg4D,MAAA0V,GAAF90J,sBAAE,kBAAA80J,GAAAi3uB,cAAAF,KAAA/2uB,GAAAm3uB,oBAswDgrB,QAAAjtP,GAAA,iBAAAW,GAAA,mBAAAsgD,IAAAjoS,GAAA70G,OAAA,eAAA60G,GAAA,cAAA70G,KAAA,SAAA+olB,GAAAnq0B,GAAAqlB,IAAA,KAAArlB,GAAA,OAAA4oG,GAtwDlrB3qK,cAAE,YAAFA,MAAE,WAAFA,MAAE,qBAAAqxJ,IAAFrxJ,MAAE2qK,IAAA,MAAA4O,GAAFv5K,QAAE,OAAFA,MAkiE1Eu5K,GAAA0L,UAAAhiF,KAAAouD,IAAsB,GAliEoDrxJ,OAmiErF,MAAA+hE,GAAA,OAAAw3G,GAniEqFv5K,cAAE,QAAFA,MAAE,IAAAu5K,GAAA4ytB,YAAFns4B,CA6hE3D,qBAAAu5K,GAAAqje,aAAA,KAAArje,GAAAqje,aAAAjrd,YA7hE2D3xL,CA8hE7C,eAAAu5K,GAAAwytB,aA9hE6C/r4B,CA+hE1D,gBAAAu5K,GAAAkytB,cA/hE0Dzr4B,CAgiExD,mBAAAu5K,GAAAmytB,iBACM,EAppEjD,MAAM1rP,GAAkB,CACpBl0oB,KAAM,qCACNm0oB,YAAa,uBACbC,aAAc,CAAC,iBAAkB,mBACjCC,YAAa,WACbzxmB,QAAS,UACT0xmB,iBAAkB,wDAMtB,IAIMgsP,GAAe,MAArB,MAAMA,GACF327B,YAAYywsB,GAAqBzskB,GAAM6lG,IACnCrsO,KAAKizsB,oBAAsBA,GAC3BjzsB,KAAKwmI,KAAOA,GACZxmI,KAAKqsO,SAAWA,GAChBrsO,KAAKozsB,WAAY,EACjBpzsB,KAAK6jT,KAAM,EACX7jT,KAAKwusB,YAde,QAepBxusB,KAAKkniB,UAdY,MAejBlniB,KAAKo57B,cAdiB,UAcDC,EACrB1qP,KAAgB5B,IAChB/ssB,KAAK60sB,uBAAyB70sB,KAAKizsB,oBAAoBtsgB,QAAQn/I,UAAU,EAAGq8P,WACxE7jT,KAAK6jT,IAAMA,GACX7jT,KAAK+vV,UAAY/vV,KAAK6jT,IAAM,MAAQ,OAE5C,CAeA,YAAI5P,CAASA,IACT,MAAMqlpB,GAAcrlpB,IArCH,MAsCjBj0S,KAAKu57B,kBAAkBD,GAAat57B,KAAKi0S,UACzCj0S,KAAKkniB,UAAYoyZ,EACrB,CACA,YAAIrlpB,GACA,OAAOj0S,KAAKkniB,SAChB,CAUA,gBAAI81K,CAAaA,IACb,MAAMw8O,GAAkBx8O,IArDF,SAsDtBh9sB,KAAKu57B,kBAAkBC,GAAiBx57B,KAAKg9sB,cAC7Ch9sB,KAAKo57B,cAAgBI,EACzB,CACA,gBAAIx8O,GACA,OAAOh9sB,KAAKo57B,aAChB,CAaA,cAAIn4pB,CAAWA,IACX,MAAMoua,GAAgBpua,IA3EF,QA4EpBjhS,KAAKu57B,kBAAkBlqP,GAAervsB,KAAKihS,YAC3CjhS,KAAKwusB,YAAca,EACvB,CACA,cAAIpua,GACA,OAAOjhS,KAAKwusB,WAChB,CACA18e,kBAC2B,CAAC,WAAY,eAAgB,cACrC59I,QAAQ7yE,KACnBrB,KAAKu57B,kBAAkBv57B,KAAKqB,IAAM,EAE1C,CACA8iN,cACQnkN,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,aAEpC,CACA6q3B,kBAAkBv10B,GAAU0hI,IACxB,MAAM+P,GAAOz1P,KAAKwmI,KAAKk/E,cACnBggC,IAAiB1hI,KAAa0hI,KAG9BA,IACA1lP,KAAKqsO,SAAS8iC,YAAY1Z,GAAM,YAAY/P,MAE5C1hI,IACAhkH,KAAKqsO,SAAS0hC,SAAStY,GAAM,YAAYzxI,MAEjD,EAEJm10B,UAAgB9r4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFijsB,IAAVps4B,MAA2CC,MAA3CD,MAA8EA,OAA9EA,MAAwGA,OAAY,EACvNos4B,GAAgBl/X,UADmFltgB,MAAE,CAAA5jD,KACJgw7B,GAAel5uB,UAAA,mBAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KADb/hE,MAAE,MAAAonF,GAAA47M,WAAFhjS,MAAE,WAAAonF,GAAAi/jB,WACW,EAAAlzf,OAAA,CAAA+zF,SAAA,WAAA+oa,aAAA,eAAA/7a,WAAA,cAAAziD,SAAA,gBAAA/B,YAAA,EAAA1nJ,SAAA,CADbhoC,MAC8P,CACzVqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,4BAL6Ez0N,OAAE8xK,mBAAAhe,EAAAT,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,KAAF/hE,cAAE,GAQpE,EAAA84J,cAAA,IA3G3BszuB,EAAe,KA8JfM,GAAsB,MAA5B,MAAMA,GACFj37B,cACIxC,KAAKozsB,WAAY,CACrB,EAEJqmP,UAAuBps4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFujsB,GAAsB,EAC1IA,GAAuBx/X,UAjE4EltgB,MAAE,CAAA5jD,KAiEGsw7B,GAAsBx5uB,UAAA,2BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,IAjE3B/hE,MAAE,mBAAAonF,GAAAi/jB,UAiEyB,EAAA32d,YAAA,EAAA1nJ,SAAA,CAjE3BhoC,OAAE8xK,mBAAAhe,EAAAT,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,KAAF/hE,cAAE,GAkEpE,EAAA84J,cAAA,IAP3B4zuB,EAAsB,KA0B5B,MAAMntxB,GAAapsK,IAAoB,MAAVA,GAIvBw57B,GAAcprvB,KAChB,MAAMo5C,GAAQ+S,iBAAiBnsD,IAC/B,IAAI+sF,GAAQl9M,WAAWupK,GAAM2zC,OAC7BA,YAAUl9M,WAAWupK,GAAM41e,aAAe,IAAMn/oB,WAAWupK,GAAMk3e,cAAgB,GAC1Evjc,IAKL8yc,GAA4Bt4pB,KAC9B,MAAMs5K,GAAM8+e,GAAwBp4pB,IAGpC,MAAO,CAFgBs5K,GAAIt8K,OAAS,EAAIs8K,GAAI,GAAKt5K,GAC3Bs5K,GAAIt8K,OAAS,EAAIs8K,GAAIA,GAAIt8K,OAAS,GAAKgD,GACxB,EAKnCo4pB,GAA2Bp4pB,IACtBA,GAAO0oK,iBAAiBknf,MAKnC,IAAIhinB,GAAM,EAIV,MAAMk20B,GAAgB,qCAUhBC,GAAmC,+BAInCC,GAA0BA,CAAC581B,GAAQmr0B,GAAYx5P,MACjD,MAAMl7lB,GAAOom3B,GAAc781B,GAAQmr0B,GAAYx5P,IAC/C,GAAIl7lB,GACA,OAAOqm3B,GAAYrm3B,GAAM001B,GAAU,EAGrC2xB,GAAcA,CAACrm3B,GAAMuooB,MAAevooB,GAAK+mS,aAAawhW,IAEtD69O,GAAgBA,CAAC781B,GAAQmr0B,GAAYx5P,QAAUorR,MAAiB/81B,GAAQ6hL,IADvDm7qB,EAACvm3B,GAAMuooB,KAAc3viB,GAAU54F,GAAK+mS,aAAawhW,KACYg+O,CAAen7qB,GAAIsppB,IAAax5P,IAEpH,IA4BMsrR,GAAqB,MAA3B,MAAMA,GACF137B,YAAY6pO,GAAU/9B,IAClBtuM,KAAKqsO,SAAWA,GAChBrsO,KAAKsuM,QAAUA,GACftuM,KAAKozsB,WAAY,CACrB,CACA,cAAIqlL,GACA,OAAOnstB,GAAUtsK,KAAKq7R,MAC1B,CACAvpE,kBACQxlD,GAAUtsK,KAAKq7R,QAEfr7R,KAAKqsO,SAAS2yC,SADEh/Q,KAAKsuM,QAAQoX,cACG,YAAa1lN,KAAKq7R,MAE1D,EAEJ6+pB,UAAsB7s4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFgksB,IAzLhBnt4B,MAyLuDA,OAzLvDA,MAyLgFA,OAAa,EAChMmt4B,GAAsBjgY,UA1L6EltgB,MAAE,CAAA5jD,KA0LE+w7B,GAAqBj6uB,UAAA,0BAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,IA1LzB/hE,MAAE,WAAAonF,GAAAi/jB,UAAFrmpB,CA0LyB,iBAAAonF,GAAAskvB,WAAA,EAAAv4qB,OAAA,CAAAm7E,MAAA,SAAA5+C,YAAA,EAAA1nJ,SAAA,CA1LzBhoC,OAAEqzJ,MAAA,EAAAC,KAAA,EAAAE,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAA0xE,cAAA,IAyK/Fq0uB,EAAqB,KA8CrBC,GAAkC,MAAxC,MAAMA,GACF337B,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJy7sB,UAAmC9s4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFiksB,IA5N7Bpt4B,MA4NiFA,MAAc,KAClMot4B,GAAmClxZ,UA7NgEl8e,MAAE,CAAA5jD,KA6Negx7B,GAAkCl6uB,UAAA,2CAAAw8B,YAAA,IANhJ09sB,EAAkC,KAsBlCC,GAAgC,MAAtC,MAAMA,GACF537B,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJ07sB,UAAiC/s4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFkksB,IAlP3Brt4B,MAkP6EA,MAAc,KAC9Lqt4B,GAAiCnxZ,UAnPkEl8e,MAAE,CAAA5jD,KAmPaix7B,GAAgCn6uB,UAAA,yCAAAw8B,YAAA,IAN5I29sB,EAAgC,KAsBhCC,GAAmC,MAAzC,MAAMA,GACF737B,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJ27sB,UAAoCht4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFmksB,IAxQ9Btt4B,MAwQmFA,MAAc,KACpMst4B,GAAoCpxZ,UAzQ+Dl8e,MAAE,CAAA5jD,KAyQgBkx7B,GAAmCp6uB,UAAA,4CAAAw8B,YAAA,IANlJ49sB,EAAmC,KAsBnCC,GAAkC,MAAxC,MAAMA,GACF937B,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJ47sB,UAAmCjt4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFoksB,IA9R7Bvt4B,MA8RiFA,MAAc,KAClMut4B,GAAmCrxZ,UA/RgEl8e,MAAE,CAAA5jD,KA+Remx7B,GAAkCr6uB,UAAA,2CAAAw8B,YAAA,IANhJ69sB,EAAkC,KAsBlCx1L,GAA4B,MAAlC,MAAMA,GACFtiwB,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJomhB,UAA6Bz3sB,UAAI,SAAA6oM,IAAA,WAAAA,IAAyF4ugB,IApTvB/3sB,MAoTqEA,MAAc,KACtL+3sB,GAA6B77N,UArTsEl8e,MAAE,CAAA5jD,KAqTS27vB,GAA4B7kjB,UAAA,qCAAAw8B,YAAA,IANpIqohB,EAA4B,KAuC5By1L,GAAwB,MAA9B,MAAMA,GACF/37B,cACIxC,KAAKw67B,cAAe,CACxB,CACAzF,kBAAkBrh3B,IACd,MAAM8wI,GAAU,CAAC,2BACXi2uB,GAAanuxB,GAAU54F,GAAKgn3B,YAAcf,GAAcv2zB,KAAK1vD,GAAKgn3B,WAExE,OADqBpuxB,GAAU54F,GAAKgn3B,YAAiC,KAAnBhn3B,GAAKgn3B,YAAqBD,IAExEj2uB,GAAQ7wI,KAAK,UAAUD,GAAKgn3B,aAEzBl2uB,GAAQtmI,KAAK,IACxB,CACA422B,iBAAiBph3B,IACb,MAAM+m3B,GAAanuxB,GAAU54F,GAAKgn3B,YAAcf,GAAcv2zB,KAAK1vD,GAAKgn3B,WAClEC,GAAYruxB,GAAU54F,GAAKkn3B,WAA+B,KAAlBln3B,GAAKkn3B,SAC7Cv/tB,GAAS,CAAC,EAChB,OAAIo/tB,KACAp/tB,GAAOkD,MAAQ7qJ,GAAKgn3B,WAEpBC,KACAt/tB,GAAO2sM,SAAWt0V,GAAKkn3B,UAEpBv/tB,EACX,EAEJk/tB,UAAyBlt4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFqksB,GAAwB,EAC9IA,GAAyBtgY,UAjX0EltgB,MAAE,CAAA5jD,KAiXKox7B,GAAwBt6uB,UAAA,iCAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,IAjX/B/hE,MAAE,mBAAAonF,GAAAqmzB,aAiX6B,EAAAt6uB,OAAA,CAAAypf,aAAA,eAAAj2nB,KAAA,QAAA+oK,YAAA,EAAA1nJ,SAAA,CAjX/BhoC,OAAEmvL,MAAA5oB,EAAAlT,MAAA,EAAAC,KAAA,EAAAC,OAAA,scAAAC,SAAA,SAAAzxF,GAAAqlB,IAwX/D,GAxX+D,EAAArlB,IAAF/hE,MAAE,EAAA6n4B,GAAA,WAAF7n4B,CAsXpF,EAAAoo4B,GAAA,yBAtXoFpo4B,OAwX7D,EAAA+hE,GAAA,OAAAwrzB,GAxX6Dvt3B,MAAE,GAAFA,MAAE,OAAAonF,GAAAw1jB,aAAF58oB,CAkXzD,WAAAut3B,GAAoB,GAAAz7uB,aAAA,CAwBGwgX,MAAiG2C,MAAoKsvJ,MAAoBzrf,cAAA,IApDpV00uB,EAAwB,KAmGxBM,GAAwB,MAA9B,MAAMA,GACFr47B,YAAY6pO,GAAUoiV,GAAQngX,IAC1BtuM,KAAKqsO,SAAWA,GAChBrsO,KAAKyujB,OAASA,GACdzujB,KAAKsuM,QAAUA,GACftuM,KAAK867B,WAAa,GAClB967B,KAAKyhJ,SAAW,GAChBzhJ,KAAKgyO,UAAY,IAAI5yB,MACrBp/M,KAAKq1nB,cAAgB,IAAI99F,IAC7B,CACAzlU,kBACI9xN,KAAK6suB,eACT,CACA1ohB,cACInkN,KAAKq1nB,cAAc3mjB,aACvB,CACAm+pB,gBACS7suB,KAAKsuM,SAGVtuM,KAAKyujB,OAAOpuS,kBAAkB,KAE1BrgR,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OADfvsO,KAAKsuM,QAAQoX,cACwB,QAAS1lN,KAAKm+sB,aAAap9nB,KAAK/gF,OAAM,EAEzG,CACAm+sB,aAAax6sB,IACT,MAAM82uB,GAAYo/M,GAAwBl27B,GAAEs5F,OAAQ281B,GAAkC557B,KAAKsuM,QAAQoX,eAC7FhyI,GAAO1zE,KAAKyhJ,SAASg5lB,IAC3B,GAAK/mqB,GAGL,IAAIA,GAAKmoF,SAEL,YADAl4J,GAAEqgP,iBAGNhkP,KAAKyujB,OAAO7xa,IAAI,KACZ58I,KAAKgyO,UAAUhiF,KAAK,CAAEt8E,QAAMy0N,cAAexkS,IAAG,EACjD,CACL,CACA0x7B,aAAa3h3B,IACT,OAAO1zE,KAAKyhJ,SAAShjE,QAAQ/K,GACjC,EAEJmn3B,UAAyBxt4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyF2ksB,IApenB9t4B,MAoe6DA,OApe7DA,MAoesFA,OApetFA,MAoe4GA,OAAa,EAC5N8t4B,GAAyB5gY,UAre0EltgB,MAAE,CAAA5jD,KAqeK0x7B,GAAwB56uB,UAAA,iCAAAC,OAAA,CAAA46uB,WAAA,aAAAr5yB,SAAA,WAAAkojB,aAAA,gBAAAxpf,QAAA,CAAA6xB,UAAA,aAAAyK,YAAA,EAAA1nJ,SAAA,CAre/BhoC,OAAEmvL,MAAA/iB,GAAA/Y,MAAA,EAAAC,KAAA,EAAAC,OAAA,sQAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,EAAAqo4B,GAAA,eAqesxB,EAAAtm0B,IArexxB/hE,MAAE,UAAAonF,GAAA2mzB,WAqekS,EAAAj8vB,aAAA,CAA4kBw7gB,MAAwHkgP,GAA6Hn9Y,MAA2FkE,OAAOz7V,cAAA,IA5CpyCg1uB,EAAwB,KA8E9B,IAIMj2L,GAAoB,MAA1B,MAAMA,GACFpiwB,YAAY8rM,GAASmgX,GAAQpiV,GAAU4me,GAAqB9sc,GAASz8B,GACjE1pO,KAAKsuM,QAAUA,GACftuM,KAAKyujB,OAASA,GACdzujB,KAAKqsO,SAAWA,GAChBrsO,KAAKizsB,oBAAsBA,GAC3BjzsB,KAAKmmQ,QAAUA,GACfnmQ,KAAK0pO,IAAMA,EAOX1pO,KAAKmxP,WAAY,EAMjBnxP,KAAK0nwB,UAAW,EAOhB1nwB,KAAKwnuB,QA5aF,yBAAc/jnB,GAibjBzjH,KAAKi76B,eAAiB,IAAI77tB,MAI1Bp/M,KAAKgwS,OAAS,IAAI5wF,MAIlBp/M,KAAK0xrB,SAAW,IAAItye,MAIpBp/M,KAAKgyO,UAAY,IAAI5yB,MAIrBp/M,KAAK+67B,aAAe,IAAI37uB,MACxBp/M,KAAK6jT,KAAM,EACX7jT,KAAKgsuB,QAAU,IAAIz0M,KACnBv3hB,KAAKo9sB,aAAe,IAAIh+f,OAAa,EACrCuvf,KAAgB5B,IAChB/ssB,KAAK60sB,uBAAyB70sB,KAAKizsB,oBAAoBtsgB,QAAQn/I,UAAU,EAAGq8P,UACxE7jT,KAAK6jT,IAAMA,EACX7jT,KAAK+vV,UAAY/vV,KAAK6jT,IAAM,MAAQ,OAE5C,CAIA,aAAIuvZ,GACA,OAAOpzsB,KAAK0nwB,QAChB,CACA51iB,kBACI9xN,KAAK6suB,gBACL7suB,KAAKg77B,iBACT,CACAz7uB,YAAY5Y,IACJA,GAAQ+gkB,UAAe1nwB,KAAK0nwB,UAC5B1nwB,KAAKs76B,aAAY,EAEzB,CACAn3tB,cACInkN,KAAKgsuB,QAAQt9pB,cACT1uE,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,cAE5B1uE,KAAK+zP,QACL/zP,KAAK+zP,OAAOmY,SAEpB,CAMAvuB,OAAO+phB,IACH,MAAM/zX,GAAW3zY,KAAK0nwB,SAChB9irB,MAAU22nB,MAAYmsD,IAAYA,IAAY/zX,GAChD/uT,KAAY+uT,MAGA,IAAZ/uT,GACA5kF,KAAKs76B,aAAY,IAEA,IAAZ121B,KAAsB5kF,KAAKmxP,WAChCnxP,KAAKs76B,aAAY,GAEjBt76B,KAAKmxP,WACLnxP,KAAKo9sB,aAAax2pB,QAAKojD,KAAK,IACvBxiD,UAAU,KAAQxnD,KAAKu76B,eAAe321B,GAAO,GAClD5kF,KAAKk/sB,cAAct6nB,KAGnB5kF,KAAK4kF,GAAU,SAAW,YAAYorE,OAE9C,CAIA,iBAAImmyB,GACA,OAAOn27B,KAAK0nF,OAAOvF,OAAOzO,KAASA,GAAKmqO,OAAwB,QAAfnqO,GAAKmqO,MAC1D,CAIA,oBAAIy4oB,GACA,OAAOt27B,KAAK0nF,OAAOvF,OAAOzO,IAAuB,WAAfA,GAAKmqO,MAC3C,CAIA2sZ,YAAYzrS,IACR/+Z,KAAKgyO,UAAUhiF,KAAK+uQ,GACxB,CAIAg4hB,iBACI/27B,KAAK+67B,aAAa/qyB,MACtB,CAIA,yBAAIwmyB,GACA,OAAOx27B,KAAKm27B,eAAetj3B,OAAS,GAAK7yE,KAAKs27B,kBAAkBzj3B,OAAS,CAC7E,CACAg6pB,gBACS7suB,KAAKsuM,SAGVtuM,KAAKyujB,OAAOpuS,kBAAkB,KAC1BrgR,KAAKgsuB,QAAQv4pB,IAAIzzE,KAAKqsO,SAASE,OAAOvsO,KAAKsuM,QAAQoX,cAAe,UAAYq5M,KAC1E/+Z,KAAKq2rB,UAAUt3R,GAAE,GACnB,EAEV,CACAi8hB,mBACSh77B,KAAKsuM,WAAW,EAAC0ggB,UAItBhvsB,KAAKsuM,QAAQoX,cAAcgiC,MAAMw3B,YAAY,6BAA8B,QAC3El/Q,KAAKsuM,QAAQoX,cAAcgiC,MAAMw3B,YAAY,iCAAkC,QACnF,CACAm3a,UAAUhimB,IACN,MAAM4I,GAAS5I,GAAM4I,OACjB5I,GAAMk8mB,UAAYC,KAAK2F,KACvBn2sB,KAAKyujB,OAAO7xa,IAAI,KACZ58I,KAAKytuB,yBAAyBxwoB,GAAQ5I,GAAK,GAG/CA,GAAMk8mB,UAAYC,KAAKwG,QACvBh3sB,KAAKyujB,OAAO7xa,IAAI,KACZ58I,KAAK+67B,aAAa/qyB,MAAK,GAG3B37D,GAAMk8mB,UAAYC,KAAKE,OACvB1wsB,KAAKyujB,OAAO7xa,IAAI,KACZ58I,KAAKi77B,iBAAiBh+1B,GAAQ5I,GAAK,EAG/C,CACAq4oB,qBACI,MAAO1wC,IAAkBmyC,GAAyBnuuB,KAAKsuM,QAAQoX,eAC3Ds2e,IACAA,GAAep2e,OAEvB,CACA6nhB,yBAAyBxwoB,GAAQ5I,IAC7B,MAAMwsM,GAAU7gS,KAAKsuM,QAAQoX,eACtBs2e,GAAgBkyC,IAAiBC,GAAyBttc,IAE3Dutc,EAA8B/5oB,GAAM+oQ,UAAYngQ,KAAW++lB,IADlC3nmB,GAAM+oQ,UAAYngQ,KAAWixoB,KAGxD75oB,GAAM2vJ,iBACNg4c,GAAep2e,SAEfwohB,IACA/5oB,GAAM2vJ,iBACNkqf,GAActohB,QAEtB,CACAq1uB,iBAAiBh+1B,GAAQ5I,IACrB,MAAMompB,GAAYo/M,GAAwB581B,GAAQ281B,GAAkC557B,KAAKsuM,QAAQoX,eAC3FhyI,MAAO6noB,MAAYk/B,IAAaz6uB,KAAK0nF,MAAM+ypB,IAAa,MACzD/mqB,IAAQA,GAAKmoF,UAGlB77J,KAAKgyO,UAAUhiF,KAAK,CAAEt8E,QAAMy0N,cAAe9zM,IAC/C,CACAin1B,YAAYp76B,IACRF,KAAK0nwB,SAAWxnwB,GAChBF,KAAKi76B,eAAejrxB,KAAK9vJ,IACrBF,KAAK0nwB,WACL1nwB,KAAK0pO,IAAIjZ,gBACTzwN,KAAK0suB,qBAEb,CACA6uM,eAAeC,IACPA,GACAx76B,KAAKgwS,OAAOhgJ,QAGZhwJ,KAAKs76B,aAAY,GACjBt76B,KAAK0xrB,SAAS1hiB,OAEtB,CACAkvjB,cAAcwoD,IACV,MAAMhpoB,GAAqC,kBAAnB1+H,KAAKmxP,WAA2BnxP,KAAKmxP,UAAUzyH,SAAW1+H,KAAKmxP,UAAUzyH,SAjO5D,IAkO/BitV,GAAgBlxN,iBAAiBz6P,KAAKk77B,eAAex1uB,eAAeirC,OACpEQ,GAAYu2gB,GAta1B,SAASn3gB,GAAQ7xH,GAAUiyH,IACvB,MAAO,IACHjJ,MAAM,CAAEuvI,SAAU,SAAUl8I,QAAS,QAAS4V,OAAQ,KAAG,EACzDL,MAAQ,GAAG5xH,gBAAQ,EAAcgpH,MAAM,CAAEiJ,OAAQ,GAAGA,QAE5D,CAiaqCJ,CAAQ7xH,GAAUitV,IA7ZvD,SAASwve,GAAUz8zB,GAAUiyH,IACzB,MAAO,IACHjJ,MAAM,CAAEuvI,SAAU,SAAUtmI,OAAQ,GAAGA,QAAU,EACjDL,MAAQ,GAAG5xH,gBAAQ,EAAcgpH,MAAM,CAAEuvI,SAAU,SAAUtmI,OAAQ,KAE7E,CAwZwEwqsB,CAAUz8zB,GAAUitV,IAC9Ev+Z,GAAUptD,KAAKmmQ,QAAQ5mK,MAAM4xJ,IACnCnxP,KAAK+zP,OAAS3mM,GAAQsyC,OAAO1/F,KAAKk77B,eAAex1uB,eACjD1lN,KAAK+zP,OAAOG,OAAO,KACXl0P,KAAK+zP,SACL/zP,KAAKo9sB,aAAaptjB,OAClBhwJ,KAAK+zP,OAAOmY,UACZlsQ,KAAK+zP,OAAS,QAGtB/zP,KAAK+zP,OAAOuY,MAChB,EAEJs4f,UAAqBv3sB,UAAI,SAAA6oM,IAAA,WAAAA,IAAyF0ugB,IAtvBf73sB,MAsvBqDA,OAtvBrDA,MAsvB+EA,OAtvB/EA,MAsvBqGA,OAtvBrGA,MAsvB8HC,MAtvB9HD,MAsvBiKE,MAtvBjKF,MAsvBiMA,OAAoB,EACxT63sB,GAAqB3qM,UAvvB8EltgB,MAAE,CAAA5jD,KAuvBCy7vB,GAAoB3kjB,UAAA,wBAAAiiX,eAAA,SAAApzc,GAAAqlB,GAAAugd,IAM4b,GAN5b,EAAA5le,KAvvBvB/hE,MAAE2niB,GA6vBrBowK,GAA4B,GA7vBT/3sB,MAAE2niB,GA6vBwFylW,GAAkC,GA7vB5Hpt4B,MAAE2niB,GA6vB4M2lW,GAAmC,GA7vBjPtt4B,MAAE2niB,GA6vB8T0lW,GAAgC,GA7vBhWrt4B,MAAE2niB,GA6vB+a4lW,GAAkC,MAAAxr0B,GAAA,KAAAw6iB,GA7vBndv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAqhzB,oBAAAlsR,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAA42mB,eAAAzhF,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAA0zlB,gBAAAv+D,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAw1jB,aAAArgC,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAm3mB,eAAAhiF,GAAAn9d,MAAA,GAAAuqB,UAAA,SAAA5nG,GAAAqlB,IAAA,KAAArlB,IAAF/hE,MAAEu8oB,GAAA,KAAAx6kB,GAAA,KAAAw6iB,GAAFv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAA+mzB,eAAA5xR,GAAAn9d,MAAA,GAAAy1B,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KAAF/hE,MAAE,MAAAonF,GAAA47M,WAAFhjS,MAAE,0BAAAonF,GAAAi/jB,WAuvBqB,EAAAlzf,OAAA,CAAAr+D,MAAA,QAAA42F,SAAA,WAAA/wJ,MAAA,QAAAginB,SAAA,WAAAv4c,UAAA,YAAAu2gB,SAAA,WAAAlgC,QAAA,WAAArnhB,QAAA,CAAA86tB,eAAA,iBAAAjroB,OAAA,SAAA0hZ,SAAA,WAAA1/c,UAAA,YAAA+otB,aAAA,gBAAAv8sB,SAAA,qBAAA/B,YAAA,EAAA1nJ,SAAA,CAvvBvBhoC,MAuvBye,CACpkBqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,iCA3vB6Ez0N,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,OAAA,mkCAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,EAAA+p4B,GAAA,sBA8vB9D,EAAAho0B,IA9vB4D/hE,MAAE,OAAAonF,GAAAuznB,SA8vBhE,EAAA7okB,aAAA,CAkE4BwgX,MAAiGjC,MAA2F4E,MAAoK64Y,IAAwBh1uB,cAAA,IArTnb++iB,EAAoB,KA8b1B,MAAMrzD,GAIF/usB,YAAYmtH,IACR3vH,KAAKwxsB,WAAY,EACjBh7nB,OAAO8mI,OAAOt9M,KAAM2vH,GACxB,CAMAq0H,iBACIhkP,KAAKwxsB,WAAY,CACrB,CAQAhza,qBACI,OAAOx+R,KAAKwxsB,SAChB,EAMJ,MAAM4pP,WAAoC7pP,IAG1C,IAKM8pP,GAAqC,MAA3C,MAAMA,GACF747B,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJ28sB,UAAsChu4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFmlsB,IAr/BhCtu4B,MAq/BuFA,MAAc,KACxMsu4B,GAAsCpyZ,UAt/B6Dl8e,MAAE,CAAA5jD,KAs/BkBky7B,GAAqCp7uB,UAAA,8CAAAw8B,YAAA,IANtJ4+sB,EAAqC,KAiB3C,MAQMhzB,GAAeA,CAAC301B,GAAMuooB,KAAc3viB,GAAU54F,GAAK+mS,aAAawhW,KAIhEw+B,GAAYA,CAAC/mqB,GAAMuooB,MAAevooB,GAAK+mS,aAAawhW,IAIpDwjJ,GAAcA,CAACxiwB,GAAQmr0B,GAAYx5P,KAhBlB+xD,EAAC1joB,GAAQmr0B,GAAY9loB,GAAWssY,MACnD,KAAO3xkB,IAAUA,KAAW2xkB,KAAUtsY,GAAUrlM,GAAQmr0B,KACpDnr0B,GAASA,GAAOg4J,WAEpB,GAAIh4J,KAAW2xkB,GACX,OAAO3xkB,IAWoC0joB,CAAe1joB,GAAQmr0B,GAAYC,GAAcz5P,IAK9F0sR,GAA8B,oCAI9B97kB,GAAS,CAAC,UAAW,YAAa,WAAY,OAAQ,UAAW,UAAW,QAAS,OAAQ,QAAS,WAE5G,IAGM+7kB,GAA6B,MAAnC,MAAMA,GACF,iBAAIrpP,GACA,OAAOlysB,KAAK0zE,KAAKmoF,QACrB,CACA,SAAI3nD,GACA,OAAOl0G,KAAK0zE,KAAK0b,KAAOpvF,KAAK0zE,KAAK0b,KAAO,IAC7C,CACA,YAAIiwT,GACA,OAAOr/Y,KAAK0zE,KAAK+hQ,SAAWz1U,KAAK0zE,KAAK+hQ,SAAW,CACrD,CACA,iBAAI+9X,GACA,OAAOxzsB,KAAK656B,YAAc756B,KAAK656B,cAAgB756B,KAAK6zE,MAAQ7zE,KAAK0zE,KAAK+tX,QAC1E,CACA,YAAI21f,GACA,SAAep37B,KAAK0zE,KAAKqgC,MAAQ/zG,KAAK0zE,KAAKytN,WAAanhS,KAAK0zE,KAAKi5U,QACtE,CACA,eAAIuvT,GAGA,MAAO,GAFWl8sB,KAAK0zE,KAAKqgC,KAAO,cAAc/zG,KAAK0zE,KAAKqgC,OAAS,MACjD/zG,KAAK0zE,KAAKytN,UAAYnhS,KAAK0zE,KAAKytN,UAAY,IAEnE,EAEJo6pB,UAA8Blu4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFqlsB,GAA6B,EACxJA,GAA8BthY,UAtjCqEltgB,MAAE,CAAA5jD,KAsjCUoy7B,GAA6Bt7uB,UAAA,sCAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KAtjCzC/hE,MAAE,gBAAAonF,GAAA+9jB,cAAFnlpB,CAAE,aAAAonF,GAAAjgC,MAAFnnD,CAAE,WAAAonF,GAAAkrQ,SAAFtyV,CAAE,eAAAonF,GAAAq/jB,eAAFzmpB,MAAE,aAAAonF,GAAA+9jB,cAAFnlpB,CAsjCyC,aAAAonF,GAAAq/jB,eAAA,EAAAtzf,OAAA,CAAAypf,aAAA,eAAAj2nB,KAAA,OAAAG,MAAA,QAAA2n3B,kBAAA,oBAAA3hB,YAAA,cAAAz6kB,YAAA,eAAA3iH,YAAA,EAAA1nJ,SAAA,CAtjCzChoC,OAAEmvL,MAAAoud,GAAAlqf,MAAA,EAAAC,KAAA,EAAAC,OAAA,gVAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,EAAAoq4B,GAAA,qBAAFpq4B,CAujCvD,EAAAuq4B,GAAA,YAWgB,EAAAxo0B,KAlkCuC/hE,MAAE,QAAAonF,GAAAw1jB,cAAF58oB,cAAE,OAAAonF,GAAAw1jB,cAgkC7D,EAAA9qgB,aAAA,CAIyBwgX,MAAiGiyJ,KAA4LtvJ,OAAgBn8V,cAAA,IArCxW01uB,EAA6B,KAiH7BE,GAAyB,MAA/B,MAAMA,GACFj57B,YAAY2rsB,GAAczgc,GAAa+gT,GAAQ8hG,GAAgBlkb,IAC3DrsO,KAAKmusB,aAAeA,GACpBnusB,KAAK0tQ,YAAcA,GACnB1tQ,KAAKyujB,OAASA,GACdzujB,KAAKuwpB,eAAiBA,GACtBvwpB,KAAKqsO,SAAWA,GAMhBrsO,KAAKo4S,QAAS,EAMdp4S,KAAK67J,UAAW,EAIhB77J,KAAK8/W,OAAS,IAAI1gK,MAIlBp/M,KAAKozsB,WAAY,EAIjBpzsB,KAAKw3M,KAAO,aACZx3M,KAAK077B,MAAQ,OACb177B,KAAK277B,UAAY,WACjB377B,KAAKo57B,cAAgB,QACrBp57B,KAAKwusB,YAAc,UACnBxusB,KAAK477B,mBAAqB577B,KAAK0tQ,YAAYhoD,cAC3C1lN,KAAKq1nB,cAAgB,IAAI99F,KACzBv3hB,KAAK6jT,KAAM,KACX8qZ,KAAgB5B,IAChB/ssB,KAAK60sB,uBAAyB70sB,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,UACjE7jT,KAAK6jT,IAAMA,EACX7jT,KAAK+vV,UAAY/vV,KAAK6jT,IAAM,MAAQ,OAE5C,CAQA,QAAIjnC,CAAKA,IACL58Q,KAAKqsO,SAAS8iC,YAAYnvQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK48Q,QACxE58Q,KAAKqsO,SAAS8iC,YAAYnvQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK48Q,QAAQ58Q,KAAKihS,cACrFjhS,KAAK077B,MAAiB,UAAT9+qB,GAAmB,QAAU,OAC1C58Q,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK077B,SACrE177B,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK077B,SAAS177B,KAAKihS,aACvF,CACA,QAAIrkB,GACA,OAAO58Q,KAAK077B,KAChB,CAQA,YAAIlE,CAASA,IACTx37B,KAAKqsO,SAAS8iC,YAAYnvQ,KAAK477B,mBAAoB,0BAA0B577B,KAAKw37B,YAClFx37B,KAAK277B,UAAyB,eAAbnE,GAA4B,aAAe,WAC5Dx37B,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,0BAA0B577B,KAAK277B,YACnF,CACA,YAAInE,GACA,OAAOx37B,KAAK277B,SAChB,CAQA,gBAAI3+O,CAAaA,IACbh9sB,KAAKqsO,SAAS8iC,YAAYnvQ,KAAK477B,mBAAoB,SAAS577B,KAAKg9sB,gBACjEh9sB,KAAKo57B,cAAiC,WAAjBp8O,GAA4B,SAAW,QAC5Dh9sB,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,SAAS577B,KAAKo57B,gBAClE,CACA,gBAAIp8O,GACA,OAAOh9sB,KAAKo57B,aAChB,CAgBA,cAAIn4pB,CAAWA,IACMu+E,GAAOp/R,KAAKm+I,IAASA,KAAU0iE,MAE5CjhS,KAAKqsO,SAAS8iC,YAAYnvQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK48Q,QAAQ58Q,KAAKwusB,eACrFxusB,KAAKwusB,YAAcvta,GACnBjhS,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK48Q,QAAQ58Q,KAAKwusB,eAE1F,CACA,cAAIvta,GACA,OAAOjhS,KAAKwusB,WAChB,CAIA,eAAI0xO,GACA,OAAOlg7B,KAAKo4S,MAChB,CAIA,iBAAI85Z,GACA,OAAOlysB,KAAK67J,QAChB,CAIAyjD,WACIt/M,KAAK6suB,eACT,CAIA/6gB,kBACI9xN,KAAK677B,cACT,CAIA13uB,cACQnkN,KAAK60sB,wBACL70sB,KAAK60sB,uBAAuBnmoB,cAEhC1uE,KAAKq1nB,cAAc3mjB,aACvB,CAIAot3B,WAAWr40B,GAAKkM,IACZ,MAAMo3K,GAAY,IAAIq0pB,GAA4B,IAAKzr0B,KACvD3vH,KAAK8/W,OAAO9vN,KAAK+2I,IACZA,GAAUvI,uBACXx+R,KAAK656B,YAAcp2zB,GAE3B,CACAo40B,eACI777B,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK48Q,QACrE58Q,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,0BAA0B577B,KAAKw37B,YAC/Ex37B,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,SAAS577B,KAAKg9sB,gBAC9Dh9sB,KAAKqsO,SAAS0hC,SAAS/tQ,KAAK477B,mBAAoB,gBAAgB577B,KAAK48Q,QAAQ58Q,KAAKihS,aACtF,CACA4rc,gBACS7suB,KAAK0tQ,aAGV1tQ,KAAKyujB,OAAOpuS,kBAAkB,KAC1BrgR,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOvsO,KAAK477B,mBAAoB,QAAS577B,KAAKm+sB,aAAap9nB,KAAK/gF,QACrGA,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKqsO,SAASE,OAAOvsO,KAAK477B,mBAAoB,UAAW577B,KAAKyqsB,eAAe1pnB,KAAK/gF,OAAM,EAEvH,CACAm+sB,aAAax6sB,IACT,MAAMo47B,GAAU/77B,KAAKg87B,6BAA6Br47B,GAAEs5F,QAC9CvpB,GAAO1zE,KAAK0nF,MAAMq02B,IACxB,IAAKro3B,GACD,OAEJ,GAAIA,GAAKmoF,SAEL,YADAl4J,GAAEqgP,iBAGN,MAAMr0H,GAAO,CACT97C,MAAOko3B,GACPro3B,KAAMA,GACNy0N,cAAexkS,GACfqjS,OAAQhnS,MAEZA,KAAKyujB,OAAO7xa,IAAI,KACZ58I,KAAK877B,WAAWC,GAASps0B,IACzB3vH,KAAKuwpB,eAAexsG,cAAa,EAEzC,CACA0mJ,eAAe9msB,KACYA,GAAE4ssB,UAAYC,KAAKE,OAAS/ssB,GAAE4ssB,UAAYC,KAAKC,QAItEzwsB,KAAKm+sB,aAAax6sB,GACtB,CACAq47B,6BAA6B/+1B,IACzB,MAAMvpB,GAAO+rxB,GAAYxiwB,GAAQq+1B,GAA6Bt77B,KAAK477B,oBACnE,GAAIlo3B,GACA,OAAO+mqB,GAAU/mqB,GAAM4n3B,GAE/B,EAEJG,UAA0Bpu4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFulsB,IAl2CpB1u4B,MAk2C+DC,MAl2C/DD,MAk2CkGA,OAl2ClGA,MAk2C4HA,OAl2C5HA,MAk2CkJA,OAl2ClJA,MAk2CmLA,OAAY,EAClS0u4B,GAA0BxhY,UAn2CyEltgB,MAAE,CAAA5jD,KAm2CMsy7B,GAAyBx7uB,UAAA,6BAAAiiX,eAAA,SAAApzc,GAAAqlB,GAAAugd,IAMtB,GANsB,EAAA5le,IAn2CjC/hE,MAAE2niB,GAy2C5B2mW,GAAqC,KAAAvs0B,GAAA,KAAAw6iB,GAz2CXv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAw1jB,aAAArgC,GAAAn9d,MAAA,GAAAy1B,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KAAF/hE,MAAE,OAAAonF,GAAAqjE,KAAFzqJ,CAAE,MAAAonF,GAAA47M,WAAFhjS,MAAE,eAAAonF,GAAAi/jB,UAAFrmpB,CAm2CiC,sBAAAonF,GAAA+ryB,YAn2CjCnz3B,CAm2CiC,aAAAonF,GAAA+9jB,eAAA,EAAAhyf,OAAA,CAAAx4H,MAAA,QAAA0wN,OAAA,SAAAv8I,SAAA,WAAA+gH,KAAA,OAAA46qB,SAAA,WAAAx6O,aAAA,eAAA/7a,WAAA,cAAA9gF,QAAA,CAAA2/J,OAAA,UAAAthI,SAAA,0BAAA/B,YAAA,EAAA1nJ,SAAA,CAn2CjChoC,MAm2C0f,CACrlBqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,4BAv2C6Ez0N,OAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,OAAA,yXAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,EAAA0q4B,GAAA,sBAy2CuI,EAAA3o0B,IAz2CzI/hE,MAAE,OAAAonF,GAAAzsD,MAy2CoI,EAAAm3G,aAAA,CAAusBwgX,MAAiGg7J,MAAwHkhP,GAAmMn+Y,MAA2FkE,OAAOz7V,cAAA,IAzNx6C41uB,EAAyB,KAqSzBQ,GAA+B,MAArC,MAAMA,GACFz57B,YAAYk8O,IACR1+O,KAAK0+O,YAAcA,EACvB,EAEJu9sB,UAAgC5u4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyF+lsB,IA17C1Blv4B,MA07C2EA,MAAc,KAC5Lkv4B,GAAgChzZ,UA37CmEl8e,MAAE,CAAA5jD,KA27CY8y7B,GAA+Bh8uB,UAAA,wCAAAw8B,YAAA,IAN1Iw/sB,EAA+B,KAoBrC,MAAMC,GAAwB,8BAKxB5uP,GAAQ,CACVC,MAAO,KACPjlO,OAAQ,KACRklO,MAAO,MAmBX,IAGM2uP,GAAuB,MAA7B,MAAMA,GACF357B,YAAYs8Q,IACR9+Q,KAAK8+Q,GAAKA,GACV9+Q,KAAK6zE,OAAQ,EACb7zE,KAAK0xtB,aAAc,EACnB1xtB,KAAK67J,UAAW,CACpB,CACA,cAAIugyB,GACA,OAAOp87B,KAAK0zE,KAAKnzE,QAAQ8kc,OAC7B,CACA,cAAIp0Q,GACA,OAAOjxL,KAAK67J,UAAY,IAC5B,CACA,cAAI6lsB,GACA,OAAO1h2B,KAAK0zE,KAAKnzE,QAAQmwc,MAC7B,CACApxP,WACIt/M,KAAK67J,SAAW77J,KAAK0zE,KAAKzzE,OAASD,KAAK0zE,KAAKzzE,KAAK47J,UAAY77J,KAAK0zE,KAAKnzE,QAAQmwc,OACpF,CACA5+O,mBACI,EAAIk9e,UACAhvsB,KAAKq7R,MAAQq+pB,GAAW157B,KAAK8+Q,GAAGp5D,eAExC,CACAqyuB,eACI,EAAI/oP,UACAhvsB,KAAKq7R,MAAQq+pB,GAAW157B,KAAK8+Q,GAAGp5D,eAExC,EAEJy2uB,UAAwB9u4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFimsB,IArgDlBpv4B,MAqgD2DA,OAAa,EAC3Kov4B,GAAwBliY,UAtgD2EltgB,MAAE,CAAA5jD,KAsgDIgz7B,GAAuBl8uB,UAAA,gCAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KAtgD7B/hE,MAAE,gBAAAonF,GAAA88C,YAAFlkI,MAAE,oBAAAonF,GAAAu9kB,YAAF3kqB,CAsgD6B,yBAAAonF,GAAAiozB,WAtgD7Brv4B,CAsgD6B,yBAAAonF,GAAAuttB,YAAA,EAAAxhpB,OAAA,CAAAxsI,KAAA,OAAAol3B,aAAA,eAAAjl3B,MAAA,QAAA81nB,aAAA,gBAAAltd,YAAA,EAAA1nJ,SAAA,CAtgD7BhoC,OAAEmvL,MAAAivc,GAAAtsd,mBAAAwsd,GAAAjre,MAAA,EAAAC,KAAA,EAAAC,OAAA,sbAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,KAAF/hE,MAAEq+nB,IAAFr+nB,MAAE,EAAA2q4B,GAAA,yBAAF3q4B,OAugDnE,EAAA6q4B,GAAA,qBAvgDmE7q4B,CA2gD7C,EAAAqr4B,GAAA,qBA3gD6Crr4B,CA+gD7C,EAAAur4B,GAAA,uBAmCA,EAAAxp0B,KAljD6C/hE,MAAE,GAAFA,MAAE,gBAAAonF,GAAA2kzB,cAAF/r4B,cAAE,QAAAonF,GAAAzgE,KAAAnzE,QAAAiwrB,WAAFzjoB,cAAE,gBAAAonF,GAAA2kzB,cAkjDjD,EAAAj6vB,aAAA,CAGawgX,MAAiG2C,MAAoK5E,MAA2Fk0J,MAAoBzrf,cAAA,IA9E/as2uB,EAAuB,KA6J7B,MAEME,GAAmBz3c,MACnB03c,GAAuBx3c,MAC7B,IAGMy3c,GAA4B,MAAlC,MAAMA,GACF/57B,YAAYs8Q,GAAIqvb,IACZnusB,KAAK8+Q,GAAKA,GACV9+Q,KAAKmusB,aAAeA,GACpBnusB,KAAKw87B,gBAAiB,EACtBx87B,KAAKu0xB,YAAa,EAClBv0xB,KAAK+vV,UAAY,MACjB/vV,KAAK+vV,UAAY/vV,KAAKmusB,aAAatqZ,IAAM,MAAQ,KACrD,CACA,QAAI9vM,CAAKA,IACDu4D,GAAUv4D,KACV/zG,KAAK+usB,MAAQh7lB,GACb/zG,KAAKy87B,gBAAiB,IAGtBz87B,KAAK+usB,MAA2B,QAAnB/usB,KAAK+vV,UAtBT,gBACI,eAsBb/vV,KAAKy87B,gBAAiB,EAE9B,CACA,QAAI1o1B,GACA,OAAO/zG,KAAK+usB,KAChB,CACA,WAAIpiT,CAAQA,IACJrgP,GAAUqgP,KACV3sZ,KAAKuvsB,SAAW5iT,GAChB3sZ,KAAK087B,mBAAoB,IAGzB187B,KAAKuvsB,SAA8B,QAAnBvvsB,KAAK+vV,UAAsBssmB,GAAmBC,GAC9Dt87B,KAAK087B,mBAAoB,EAEjC,CACA,WAAI/viB,GACA,OAAO3sZ,KAAKuvsB,QAChB,CACAjwf,WACIt/M,KAAK287B,gCAAkC387B,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,WAC1E7jT,KAAK+vV,UAAYlsC,GAAM,MAAQ,MAC3B7jT,KAAKy87B,iBACLz87B,KAAK+zG,UAAO1zG,GAEZL,KAAK087B,oBACL187B,KAAK2sZ,aAAUtsZ,IAG3B,CACA8jN,cACInkN,KAAK287B,gCAAgCju3B,aACzC,EAEJ6t3B,UAA6Blv4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFqmsB,IA7rDvBxv4B,MA6rDqEA,OA7rDrEA,MA6rD+FC,MAAsB,EACxNuv4B,GAA6BtiY,UA9rDsEltgB,MAAE,CAAA5jD,KA8rDSoz7B,GAA4Bt8uB,UAAA,qCAAA2hB,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KA9rDvC/hE,MAAE,cAAAonF,GAAAogpB,YAAFxnuB,MAAE,8BAAAonF,GAAAqozB,eAAFzv4B,CA8rDuC,SAAAonF,GAAAqozB,gBAAA,EAAAt8uB,OAAA,CAAAnsG,KAAA,OAAA44S,QAAA,WAAAlwK,YAAA,EAAA1nJ,SAAA,CA9rDvChoC,OAAEmvL,MAAAqvd,GAAAnrf,MAAA,EAAAC,KAAA,EAAAC,OAAA,uCAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,0BAosDxE,EAAA+hE,IApsDsE/hE,MAAE,OAAAonF,GAAApgC,KAAFhnD,CAisD1E,UAAAonF,GAAAw4Q,QACM,EAAA9tN,aAAA,CAGkCyygB,MAAoBzrf,cAAA,IA1D/E02uB,EAA4B,KA4F5BK,GAAuB,MAA7B,MAAMA,GACFp67B,YAAYs8Q,GAAIkC,IACZhhR,KAAK8+Q,GAAKA,GACV9+Q,KAAKghR,KAAOA,GACZhhR,KAAK0nF,MAAQ,GACb1nF,KAAK847B,aAAe,OACpB947B,KAAKgyO,UAAY,IAAI5yB,MACrB,MAAM9Q,GAAUtuM,KAAK8+Q,GAAGp5D,cACxB1lN,KAAKg57B,oBAAsB1qvB,GAAQ2iD,UAAU9M,SAAS,oCACtDnkP,KAAKghR,KAAKX,kBAAkB,KACxB,MAAMw8qB,MAASvga,MAAUhuV,GAAS,SAC5BwuvB,MAAYxga,MAAUhuV,GAAS,WAAW1nJ,QAAKu7B,KAAQ48U,GAA6CA,EAAGwxS,UAAYC,KAAKE,QAC9H1wsB,KAAK+87B,yBAAwB/+wB,MAAM6+wB,GAAQC,IACtCl24B,QAAKuvB,MAAK4oV,GAAOA,EAAG9hU,SAAM,EAAG9a,KAAOx+E,IAAMA,EAAEstP,UAAU9M,SAAS,iCAA8B,EAClGhuK,MAAIxyE,GAAK3D,KAAKg97B,aAAar57B,KAAE,EAAGw+E,KAAOmqF,KAAS,EAAGn2F,MAAI3G,GAAK6O,SAAS7O,EAAG,MAAG,EAAG2G,MAAI3G,GAAKxvE,KAAK0nF,MAAMlY,KAAE,EAAG2S,KAAOzO,IAASA,EAAKzzE,KAAK47J,WAAanoF,EAAKnzE,QAAQmwc,SAAM,EAAGv6X,MAAIzC,GAAQA,EAAKzzE,OAChLunD,UAAUs3N,IACX9+Q,KAAKghR,KAAKpkI,IAAI,IAAM58I,KAAKgyO,UAAUhiF,KAAK8uH,GAAG,EAC9C,EAET,CACA36D,cACInkN,KAAK+87B,sBAAsBru3B,aAC/B,CACAsu3B,aAAa//1B,IACT,MAAMvpB,GAAO+rxB,GAAYxiwB,GAAQi/1B,GAAuBl87B,KAAK8+Q,GAAGp5D,eAChE,GAAIhyI,GACA,OAAO+mqB,GAAU/mqB,GAAMwo3B,GAE/B,EAEJU,UAAwBvv4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyF0msB,IArwDlB7v4B,MAqwD2DA,OArwD3DA,MAqwDqFA,OAAS,EACjM6v4B,GAAwB3iY,UAtwD2EltgB,MAAE,CAAA5jD,KAswDIyz7B,GAAuB38uB,UAAA,gCAAAyW,UAAA,SAAA5nG,GAAAqlB,IAA6U,GAA7U,EAAArlB,IAtwD7B/hE,MAswDmVov4B,GAAuB,KAAArt0B,GAAA,KAAAw6iB,GAtwD1Wv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAA8ozB,cAAA3zR,GAAA,GAAAppd,OAAA,CAAAx4H,MAAA,QAAAiinB,aAAA,eAAAmvP,aAAA,eAAAN,cAAA,gBAAAC,iBAAA,oBAAAt4uB,QAAA,CAAA6xB,UAAA,aAAAyK,YAAA,EAAA1nJ,SAAA,CAAFhoC,OAAEmvL,MAAA0vd,GAAAxrf,MAAA,EAAAC,KAAA,EAAAC,OAAA,wTAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,EAAAgs4B,GAAA,sBAswDqgB,EAAAjq0B,IAtwDvgB/hE,MAAE,UAAAonF,GAAAzsD,MAswD6c,EAAAm3G,aAAA,CAAiiCw7gB,MAAwHh7J,MAAiG88Y,GAAoJI,IAA4B12uB,cAAA,IA/Bt9D+2uB,EAAuB,KA+E7B,MAAMM,GAAgBC,IAAkBA,GAAczp3B,KAAKnzE,QAAQiwrB,UAI7DA,GAAa2sQ,KAAkD,IAAhCD,GAAaC,IAI5Cz1L,GAAYy1L,KAAkD,IAAhCD,GAAaC,IAC3CC,GAAe5sQ,IAAe6sQ,IAAoBA,GAAej92B,KAAKk92B,IAAMJ,GAAaI,MAAQ9sQ,IAAW98mB,KAAKnzE,QAAQiwrB,WAAaA,GAItI+sQ,GAAgBH,IAAY,GAI5BI,GAAcJ,IAAY,GAIhC,IA6BMjhO,GAAmB,MAAzB,MAAMA,GACF35tB,YAAY2rsB,GAAcrvb,GAAIp1C,GAAKs3C,GAAM30C,IACrCrsO,KAAKmusB,aAAeA,GACpBnusB,KAAK8+Q,GAAKA,GACV9+Q,KAAK0pO,IAAMA,GACX1pO,KAAKghR,KAAOA,GACZhhR,KAAKqsO,SAAWA,GAIhBrsO,KAAKgyO,UAAY,IAAI5yB,MACrBp/M,KAAK0xtB,aAAc,EACnB1xtB,KAAKy97B,cAAgB,aACrBz97B,KAAKu0S,OAAS,GACdv0S,KAAK097B,cAAgB,OACrB197B,KAAKo7W,MA1aQ,SA2abp7W,KAAKy4wB,YAAc,IAAIh8jB,KACvBz8M,KAAK297B,cAAgB,IAAIh25B,KACzB3nC,KAAKq1nB,cAAgB,IAAI99F,KACzBv3hB,KAAK+vV,UAAY,SACjB4+W,KAAgB5B,IAChB,MAAM6wP,EAAe597B,KAAKy4wB,YAAYzmqB,eAAeprD,QAAKi8e,KAAU,KACpE7iiB,KAAK+vV,UAAYo+W,GAAatqZ,IAAM,MAAQ,MAC5C7jT,KAAK697B,WAAaD,EAAah34B,QAAKuvB,MAAIuR,GAASA,EAAMvF,OAAO4lC,WAAQ,EAAG5xC,MAAIuR,GAASA,EAAMvR,IAAI,CAACzC,GAAMG,GAAOk0b,OAC1GxngB,QAAS,CACLiwrB,WAAW,EACX9/O,OAAQ78X,KAAUk0b,GAAWl1b,OAAS,EACtCwyX,QAAmB,IAAVxxX,IAEb5zE,KAAMyzE,QACP,EAAG7sB,QACN7mD,KAAKk57B,WAAa0E,EAAah34B,QAAKuvB,MAAIuR,GAChCA,EAAM7U,OAAS,EACR,CACH,CACItyE,QAAS,CACLiwrB,WAAW,EACX9/O,OAAyB,IAAjBhpX,EAAM7U,OACdwyX,SAAS,GAEbplc,KAAMynF,EAAM,KAIjB,KACV,EAAG7gC,OACR,CAIA,SAAI6gC,CAAMA,IACN1nF,KAAKu0S,OAAS7sN,IAAS,GACvB1nF,KAAKy4wB,YAAYhqsB,KAAKzuE,KAAKu0S,OAC/B,CACA,SAAI7sN,GACA,OAAO1nF,KAAKu0S,MAChB,CAWA,gBAAIukpB,CAAavq2B,IACb,MAAIoqiB,UAAe,CAAC,OAAQ,OAAQ,QAAQl6iB,QAAQ8P,IAAQ,EACxD,MAAM,IAAIzqF,MAAM,yLAEpB9D,KAAK097B,cAAgBnv2B,IAAQ,OAC7BvuF,KAAKy4wB,YAAYhqsB,KAAKzuE,KAAK0nF,MAC/B,CACA,gBAAIox2B,GACA,OAAO947B,KAAK097B,aAChB,CAUA,QAAIl6zB,CAAKA,IACL,MAAMy+Q,GAAUz+Q,IAlfH,SAmfbxjI,KAAKivsB,cAAchtT,GAAS,QAC5BjiZ,KAAKo7W,MAAQ6mC,EACjB,CACA,QAAIz+Q,GACA,OAAOxjI,KAAKo7W,KAChB,CACA,YAAI0ilB,GACA,MAA6B,SAAtB997B,KAAK847B,YAChB,CACA,UAAIiF,GACA,OAAO/97B,KAAK+vV,SAChB,CACAzwI,WACIt/M,KAAKq1nB,cAAc5hjB,IAAIzzE,KAAKmusB,aAAaxngB,QAAQn/I,UAAU,EAAGq8P,UAAW7jT,KAAK+vV,UAAYlsC,GAAM,MAAQ,QACxG7jT,KAAKivsB,cAAcjvsB,KAAKwjI,KAAM,OAClC,CACAsuF,kBACI9xN,KAAKg+7B,sBACLh+7B,KAAK297B,cAAclv3B,MACvB,CACA01I,cACInkN,KAAKq1nB,cAAc3mjB,aACvB,CACAmiqB,eACI,MAAMotN,GAAyB,IACxBj+7B,KAAKk+7B,cAAcjB,cAAc/jjB,UAAU/2T,OAAOwtX,KAAOA,GAAGj8X,KAAKnzE,QAAQ8kc,UAAYsK,GAAGj8X,KAAKnzE,QAAQmwc,SAEtGytf,GAAiBhi3B,KAAKmkB,MAAMo51B,GAAW157B,KAAK8+Q,GAAGp5D,gBAC/C04uB,GAAsBji3B,KAAKC,MAAMp8E,KAAKq+7B,gBACvCnljB,UACA/iU,IAAI2oM,IAAM46qB,GAAW56qB,GAAGp5D,gBACxB1qH,OAAO,CAACm1P,GAAKwmE,IAASxmE,GAAMwmE,EAAM,IACjC2niB,GAAkBni3B,KAAKkkB,MAAM,IAAI491B,IAAwBxmxB,UAAUr3F,KAAKowmB,KAAc,CAAEn1Z,MAAO,IAAKA,OAE1G,OAAI8iqB,IAAkBC,IAAuBH,GAAuB792B,KAAKsnrB,KACrE61L,GAAcU,IAEdj+7B,KAAK0pO,IAAIjZ,gBACFzwN,KAAK6wuB,gBAGZstN,GAAiBC,GAAsBE,IAAmBL,GAAuB792B,KAAKowmB,KACtFgtQ,GAAY,IAAIS,IAAwBxmxB,WAExCz3K,KAAK0pO,IAAIjZ,gBACFzwN,KAAK6wuB,qBAJhB,CAMJ,CACA+4M,eACI,SAAO56O,SAA+C,SAAtBhvsB,KAAK847B,YACzC,CACAkF,sBAKIh+7B,KAAKq1nB,cAAc5hjB,OAAIuqG,MAAMh+K,KAAKm9wB,aAAalia,OAAQj7W,KAAK697B,WAAY797B,KAAK297B,cAAc3r1B,gBACtFprD,QAAKu7B,KAAO,IAAMniF,KAAK4p7B,iBACvBpi4B,UAAU,KACXxnD,KAAKghR,KAAKX,kBAAkB,IAAMt2L,WAAW,KACzC/pF,KAAKghR,KAAKpkI,IAAI,KACN58I,KAAKk+7B,gBACLl+7B,KAAK6wuB,eACL7wuB,KAAKm9wB,aAAa37C,aAAW,EAEpC,GACH,GAEV,CACAvyB,cAAc/usB,GAAOmB,IACjB,MAAMo0P,GAAOz1P,KAAK8+Q,GAAGp5D,cACflB,GA/iBYkpf,EAACC,GAAejod,GAAe1hI,MACrD,GACS,SADD2plB,GAEA,MAAO,CACHC,SAAU,gBAAgBN,GAAM5nd,MAChCmod,MAAoB,SAAb7plB,GAAsB,gBAAgBsplB,GAAMtplB,MAAc,GAI7E,EAsiBoB0plB,CAAkBrssB,GAAOrB,KAAKqB,IAAQnB,IAClDskN,GAAQopf,UACR5tsB,KAAKqsO,SAAS8iC,YAAY1Z,GAAMjxC,GAAQopf,UAExCppf,GAAQqpf,OACR7tsB,KAAKqsO,SAAS0hC,SAAStY,GAAMjxC,GAAQqpf,MAE7C,EAEJsuB,UAAoB9uqB,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFime,IAhhEdpvqB,MAghEmDC,MAhhEnDD,MAghEsFA,OAhhEtFA,MAghEgHA,OAhhEhHA,MAghEiJA,OAhhEjJA,MAghEuKA,OAAY,EACtRovqB,GAAoBliK,UAjhE+EltgB,MAAE,CAAA5jD,KAihEAgztB,GAAmBl8gB,UAAA,uBAAAiiX,eAAA,SAAApzc,GAAAqlB,GAAAugd,IAMhB,GANgB,EAAA5le,IAjhErB/hE,MAAE2niB,GAuhE5BunW,GAA+B,KAAAnt0B,GAAA,KAAAw6iB,GAvhELv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAw1jB,aAAArgC,GAAAn9d,MAAA,GAAAuqB,UAAA,SAAA5nG,GAAAqlB,IAuhEgX,GAvhEhX,EAAArlB,KAAF/hE,MAAEg/oB,GAAA,GAAFh/oB,MAuhEiN6v4B,GAAuB,GAvhExO7v4B,MAAE2/oB,GAAA,EAuhEsW9tH,QAAU,EAAA9vd,GAAA,KAAAw6iB,GAvhElXv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAgpoB,aAAA7zG,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAA+pzB,cAAA50R,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAkqzB,gBAAA/0R,GAAA,GAAA1nc,SAAA,EAAAC,aAAA,SAAA/yG,GAAAqlB,IAAA,EAAArlB,KAAF/hE,MAAE,aAAAonF,GAAAspzB,cAAF1w4B,CAAE,MAAAonF,GAAA4pzB,QAAFhx4B,MAAE,eAAAonF,GAAAu9kB,YAAF3kqB,CAihEqB,oBAAAonF,GAAA2pzB,UAAA,EAAA59uB,OAAA,CAAAx4H,MAAA,QAAA8w2B,cAAA,gBAAAC,iBAAA,mBAAAK,aAAA,eAAAt1zB,KAAA,QAAA28E,QAAA,CAAA6xB,UAAA,aAAAwM,SAAA,oBAAA/B,YAAA,EAAA1nJ,SAAA,CAjhErBhoC,MAihE2b,CACthBqkpB,KACA,CACIt/nB,QAASu/nB,KACT7vb,SAAU,sBArhE6Ez0N,OAAEqzJ,MAAA,EAAAC,KAAA,GAAAC,OAAA,ghBAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,KAAArlB,GAAA,OAAAuvF,GAAFtxJ,cAAE,EAAAks4B,GAAA,YAAFls4B,MAAE,YAAFA,MAAE,WAAFA,MAAE,qBAAAqxJ,IAAFrxJ,aAAEsxJ,IAAFtxJ,MA6iE1EonF,GAAA69F,UAAAhiF,KAAAouD,IAAsB,GA7iEoDrxJ,cAAE,4BAgjEjB,GAAA+hE,KAhjEe/hE,MAAE,gBAAAonF,GAAA2kzB,cAAF/r4B,cAAE,QAAFA,MAAE,IAAAonF,GAAA0pzB,YAAF9w4B,CAwiE3D,qBAAAonF,GAAAw1jB,aAAA,KAAAx1jB,GAAAw1jB,aAAAjrd,YAxiE2D3xL,CAyiE7C,eAAAonF,GAAA2kzB,aAziE6C/r4B,CA0iE1D,gBAAAonF,GAAAqkzB,cA1iE0Dzr4B,CA2iExD,mBAAAonF,GAAAskzB,iBA3iEwD1r4B,CA4iElD,UA5iEkDA,MAAE,GAAAigsB,GAAA,SAAA74mB,GAAA2kzB,aAAA,SAAA3kzB,GAAA2kzB,eAAF/r4B,MAAE,GAAFA,MAAE,iBAgjEtD,EAAA8xI,aAAA,CACkBwgX,MAAiGu9Y,GAAyMx/Y,MAA2F62K,KAA4Hv8e,OAAS7xB,cAAA,IAzMrkBs2gB,EAAmB,KA6RzB,MAiCMoiO,GAAmB,CAhCrB35L,GACAu1L,GACAC,GACAC,GACAC,GACAx1L,GAMAq0L,GACAM,GACAS,GAMAuB,GACAJ,GAMAl/N,GACA8/N,uLC1xEJ,MAAAp7uB,EAAA,cAAAyS,EAAA,eAAAkruB,EAAA1v0B,GAAAqlB,IAAA,CAGA,MAAMsqzB,GAAaA,CAACjkpB,GAAMp/M,KACjBo/M,IACM,CAAE7pD,OAAQ,EAAGrtH,KAAMloC,GAAOkoC,KAAM05J,IAAK5hM,GAAO4hM,IAAK3B,MAAO,GA6CjE63I,EAAoBA,WACR35U,OAAW,IASvBml2B,EAAkB,cAQlBC,GAAiBrwvB,IAPOA,KACnB,GAAGA,GAAQo5C,MAAMuvI,WAAW3oL,GAAQo5C,MAAMwkG,YAAY59I,GAAQo5C,MAAM2kG,YAOpEuymB,CAAqBtwvB,KALDA,MAC3B,MAAM+sB,GAAS9hI,OAAOkhK,iBAAiBnsD,IACvC,MAAO,GAAG+sB,GAAO47J,WAAW57J,GAAO6wH,YAAY7wH,GAAOgxH,WAAS,EAGvBwymB,CAAsBvwvB,IAuB5D+qoB,GAAiB,IAAO,GAiBxBylH,GAfN,SAASh7c,GAAQlJ,IACb,IAAI1/Y,GACA6oZ,IAAS,EACb,MAAO,IAAIp0X,MACHo0X,KAGJ7oZ,GAAS0/Y,MAAOjrX,IAChBo0X,IAAS,GACF7oZ,GAEf,CAImC4oZ,CAAQ,KACvC,KAAI,EAACkrN,SAA2C,OAAlBx1mB,SAASxzC,KACnC,OAAO,EAEX,MACM6vB,GAAS2jB,SAASC,cAAc,OACtC5jB,GAAO6xK,MAAMlrB,UAAY,6BACzB,MAAMuiuB,GAAevl2B,SAASC,cAAc,OAC5Csl2B,GAAar3sB,MAAMusD,SAAW,QAC9B8qpB,GAAar3sB,MAAMs1C,IAAM,OACzB+hqB,GAAalyf,YAAc,QAC3Bh3X,GAAOqoM,YAAY6grB,IACnBvl2B,SAASxzC,KAAKk4N,YAAYroM,IAC1B,MAAMsua,GATM,KASQtua,GAAOg/D,SAAS,GAAGsyN,wBAAwBnqE,IAC/DxjM,gBAASxzC,KAAKs4N,YAAYzoM,IACnBsua,KAuBL66c,GAAYA,CAACxkpB,GAAMzM,KAChByM,IAAkB,IAAVzM,GAGN,CACHp9C,OAAQ6pD,GAAK7pD,OAASo9C,GACtBzqK,KAAMk3K,GAAKl3K,KAAOyqK,GAClB/Q,IAAKwd,GAAKxd,IAAM+Q,GAChB1S,MAAOmf,GAAKnf,MAAQ0S,IANbyM,GAUTykpB,GAAS,CACX,YACA,cACA,eACA,aACA,cACA,eAEJ,IAGMC,GAAU,MAAhB,MAAMA,GACFC,UAAUv62B,GAASw62B,IACf,MAAO,CACH97zB,KAAM1+C,GAAQ0+C,KAAO87zB,GAAS97zB,KAC9B05J,IAAKp4M,GAAQo4M,IAAMoiqB,GAASpiqB,IAEpC,CACAqjN,UAAU7lM,GAAM4xE,IACZ,SAAOi0H,MAAU7lM,GAAM4xE,GAC3B,CACAp7E,MAAMn/D,IACF,SAAOm/D,MAAMn/D,GACjB,CACAwttB,eAAevgrB,IACX,SAAOugrB,MAAevgrB,GAC1B,CACAwgrB,cAAcxgrB,IACV,MAAMvlL,GAASv5F,KAAKugI,YACpB,IAAKhnC,KAAWulL,GACZ,MAAO,GAEX,MAAMygrB,GAAiBhm2B,GAAOkhK,iBAAiBqkB,IAC/C,OAAOmgrB,GAAO9o3B,IAAIvW,MAAUA,IAAKA,GAAK1/D,MAAOq/7B,GAAe3/3B,MAChE,CACA2gE,YACI,OAAO2yS,IAAsB35U,OAAS,IAC1C,CACAim2B,gBAAgB1grB,IACZ,SAAKA,MAAM,EAACkwb,UAGHhvsB,KAAK0lN,cAAco5D,IAAIyiO,aACpC,CACAnmZ,OAAO0jL,IACH,OAAKA,KAAM,EAACkwb,SACD,EAEJ5zmB,MAAO0jL,IAFH,IAGf,CACA2grB,cAAc3grB,GAAI4grB,IACd,IAAK5grB,MAAM,EAACkwb,QACR,OAAO,KAEX,MAAM1ggB,GAAUtuM,KAAK0lN,cAAco5D,KAC3Bx7I,QAAM05J,OAAK3sC,eAAe/hD,GAAQo5C,MAC1Cp5C,GAAQo5C,MAAM2I,WAAa,OAC3B/hD,GAAQo5C,MAAMpkH,KAAO,GAAGo8zB,GAAgBp8zB,SACxCgrE,GAAQo5C,MAAMs1C,IAAM,GAAG0iqB,GAAgB1iqB,QACvC,MAAM2iqB,MAAgBvk2B,MAAOkzG,IAC7BA,UAAQo5C,MAAMpkH,KAAOA,GACrBgrE,GAAQo5C,MAAMs1C,IAAMA,GAEpBh9R,KAAK4/7B,OAAStxvB,GAAQ62J,aACtB72J,GAAQo5C,MAAM2I,WAAaA,GACpBsvsB,EACX,CACAj6uB,cAAco5D,IACV,OAAKA,KAAM,EAACkwb,QAGLlwb,GAAGp5D,eAAiBo5D,GAFhB,IAGf,CACAm1B,SAAS3lG,GAASmge,GAAO1gY,GAAQ,GAC7B,OAAKz/F,IAAYmge,IACN,EAEJsjE,MAAmBzjiB,GAAStuM,KAAK0lN,cAAc+od,IAAQ1gY,IAFnD,IAGf,CACAk0M,aAAaznM,GAAM4xE,IACf,SAAO61H,MAAaznM,GAAM4xE,GAC9B,CACAyzkB,eAAehutB,IACX,SAAOgutB,MAAehutB,GAC1B,CACAsvQ,eAAeriO,IACX,SAAOqiO,MAAenhf,KAAK0lN,cAAco5D,IAC7C,CACAghrB,kBAAkBhhrB,IACd,MA9KmBxwE,MACvB,MAAMs1S,GAAiB,GACvB,KAAI,EAACorN,UAA0B97R,IAC3B,OAAO0wE,GAEX,IAAI/ta,GAASy4H,GAAQs1K,cACrB,KAAO/tS,KACC6o3B,EAAgBt7zB,KAAKu7zB,GAAc9o3B,MAAYA,GAAOwzE,aAAa,qBACnEu6V,GAAejwa,KAAKkC,IAExBA,GAASA,GAAO+tS,cAEpBggI,UAAejwa,KAAK4lB,QACbqqZ,IAiKIk8c,CAAkBhhrB,GAC7B,CACAihrB,sBAAsBjhrB,IAClB,MAAMkhrB,GAAyBhg8B,KAAKig8B,0BAA0BnhrB,IAC9D,OAAKkhrB,MAGE5k2B,MAAO4k2B,IAFH,IAGf,CACAE,sBAAsBphrB,IAClB,MAAMkhrB,GAAyBhg8B,KAAKig8B,0BAA0BnhrB,IAC9D,OAAKkhrB,GAGE,CACHvu3B,EAAGuu3B,GAAuBnwiB,WAC1Bj0H,EAAGokqB,GAAuBpwiB,WAJnB,CAAEn+U,EAAG,EAAGmqN,EAAG,EAM1B,CACAqkqB,0BAA0BnhrB,IACtB,IAAKA,KAAOggrB,KACR,OAAO,KAEX,IAAIjp3B,GAAS71E,KAAK0lN,cAAco5D,IAAI8kG,cACpC,KAAO/tS,IAAQ,CACX,GAAkD,SAA9C0jB,OAAOkhK,iBAAiB5kL,IAAQ2mJ,UAChC,OAAO3mJ,GAEXA,GAASA,GAAO+tS,aACpB,CACA,OAAO,IACX,CACAu8kB,oBAAoBrhrB,IAChB,QAAS9+Q,KAAKig8B,0BAA0BnhrB,GAC5C,CACA0yd,eAAe1yd,IACX,SAAOqzd,MAAkBnyuB,KAAK0lN,cAAco5D,IAChD,CACAq3B,OAAO5a,GAAQ9sG,IACX,MA9JO0nH,EAAC5a,GAAQ9sG,MACpB,IAAK8sG,MAAU,EAACyza,UAA0B97R,IACtC,OAAO,KAEX,MAAMuwE,MAAU28c,MAAiB7kqB,GAAQ9sG,IACzC,IAAKg1T,GACD,OAAO,KAEX,MAAMvoZ,GAAS,CAACqgM,IAAQ36M,UAAO+iW,MAAQpoJ,GAAQkoN,KAAUzoZ,OAAO,CAACnnB,GAAO07B,MACpE,MAAM8w1B,GAAc9w1B,GAAEm4I,MAAMyuD,QAAU58M,OAAOkhK,iBAAiBlrJ,IAAG4mM,OAC3DvxN,GAAUvG,SAASgi3B,GAAa,IACtC,OAAOz72B,GAAU/Q,GAAQ+Q,GAAU/Q,IACpC,GACH,OAAOqnB,GAAUA,GAAS,EAAK,MAiJpBi7M,CAAO5a,GAAQv7R,KAAK0lN,cAAcj3B,IAC7C,CACAqkO,YACI,OAAI,EAACk8S,SAA0B97R,KAGxB/0V,YAAYqb,SAASu7J,gBAAgBy1I,YAAcjxS,OAAOqnZ,YAAYx/R,QAAQ,KAF1E,CAGf,CACAk/uB,WACI,OAAOtg8B,KAAK8yZ,YAAc,CAC9B,EAEJosiB,UAAW7x4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFgpsB,GAAU,EAClHA,GAAW/osB,WADmFppM,MAAE,CAAAgnC,MACYmr2B,GAAU9x4B,QAAV8x4B,GAAU7x4B,YAlIhH6x4B,EAAU,KAsJhB,MAAMqB,GAAQ,IAAI93Z,MAAe,wBAEjC,IAGM+3Z,GAAY,MAAlB,MAAMA,GACFh+7B,YAAYi+7B,GAAM1ypB,GAAQ,GACtB/tS,KAAKyg8B,KAAOA,GACZzg8B,KAAK+tS,MAAQA,EACjB,CACA2ypB,aAAa7utB,IACT,MAAQ0pD,UAAQjtF,WAASsxS,eAAaE,gBAAchnM,UAAQ19M,UAAQ4hnB,iBAAiBnre,GAC/Ek8D,GAAQ/tS,KAAK+tS,OAAS,EAEtB4xM,GAD6B,UAAjBq9N,IAA6Bh9sB,KAAKyg8B,KAAKjB,gBAAgBlxvB,IACUtuM,KAAK2g8B,aAAaplqB,GAAQjtF,GAASlzG,GAAQ2yM,IAA/F/tS,KAAK4g8B,aAAarlqB,GAAQjtF,GAASlzG,GAAQ2yM,IACpE8xM,GAAcm/c,GAAUh/7B,KAAKyg8B,KAAKrl2B,OAAOkzG,GAAQoX,eAAgBqoF,IAQvE,OAPe/tS,KAAKyg8B,KAAKzvpB,MAAM,CAC3B4uM,YAAaA,GACbD,WAAYA,GACZG,aAAcA,GACdD,YAAaA,GACb/mM,WAGR,CACA8npB,aAAarlqB,GAAQjtF,GAASlzG,GAAQ2yM,IAClC,MAAM8ypB,GAAY7g8B,KAAK6hf,sBAAsBtmN,GAAQjtF,IAC/CksG,GAAOikpB,GAAWz+7B,KAAKyg8B,KAAKrl2B,OAAOmgM,IAASngM,IAC5C0l2B,GAAa,EAAI/ypB,GACjBgzpB,GAAc/g8B,KAAKyg8B,KAAKP,sBAAsB5xvB,IACtC,IAAVy/F,IAAegzpB,KACfA,GAAYtv3B,GAAKqv3B,GACjBC,GAAYnlqB,GAAKklqB,IAErB,MAAME,GAAchh8B,KAAKyg8B,KAAKV,sBAAsBzxvB,IACpD,OAAc,IAAVy/F,IAAeizpB,KACfA,GAAY19zB,MAAQw9zB,GACpBE,GAAYhkqB,KAAO8jqB,IAEhB9g8B,KAAKyg8B,KAAKx+c,aAAajif,KAAKyg8B,KAAKpgd,UA5UnB4gd,EAACzmpB,GAAM0mpB,KAC3BA,GAGU,CACXvwsB,OAAQ6pD,GAAK7pD,OACbrtH,KAAMk3K,GAAKl3K,KAAO49zB,GAAe59zB,KACjC05J,IAAKwd,GAAKxd,IAAMkkqB,GAAelkqB,IAC/B3B,MAAOmf,GAAKnf,OANLmf,GA0U2CympB,CAAqBjC,GAAUxkpB,GAAMzM,IAAQizpB,IAAcD,IAAcF,GAC/H,CACAh/c,sBAAsBtmN,GAAQjtF,IAC1B,OAAOitF,GAAS,CAAE9pN,EAAG,EAAGmqN,EAAG,GAAM57R,KAAKyg8B,KAAKt/c,eAAe7yS,GAC9D,CACAqyvB,aAAaplqB,GAAQjtF,GAASlzG,GAAQ2yM,IAClC,MAAMyM,GAAOikpB,GAAWz+7B,KAAKyg8B,KAAKxspB,SAAS1Y,GAAQjtF,GAASy/F,IAAQ3yM,IACpE,OAAO4j2B,GAAUxkpB,GAAMzM,GAC3B,EAEJyypB,UAAanz4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFsqsB,IAtEZzz4B,MAsE0Cmy4B,IAtE1Cny4B,MAsEiEwz4B,GAAK,KACpKC,GAAarqsB,WAvEiFppM,MAAE,CAAAgnC,MAuEcys2B,GAAYpz4B,QAAZoz4B,GAAYnz4B,YA7CpHmz4B,EAAY,KA0DZW,GAAe,MAArB,MAAMA,GACF3+7B,YAAYi+7B,GAAM1ypB,GAAQ,GACtB/tS,KAAKyg8B,KAAOA,GACZzg8B,KAAK+tS,MAAQA,EACjB,CACAqzpB,gBAAgBvvtB,IACZ,MAAQ0pD,UAAQmkqB,mBAAiBpxvB,WAASsxS,eAAaE,gBAAc2C,cAAY3pM,WAAWjnE,GACtFnuF,GAAM1jJ,KAAKyg8B,KACX1ypB,GAAQ/tS,KAAK+tS,OAAS,EACtB1O,GAAgB37I,GAAI+7yB,cAAcnxvB,GAASoxvB,IAC3C7/c,GAAcm/c,GAAU3/pB,GAAe0O,IACvCszpB,GAAerC,GAAUt7yB,GAAItoD,OAAOmgM,IAASwS,IAC7C4xM,GAAa8+c,GAAW4C,GAAc3B,IACtCh9c,GAAW7wQ,GAAS6wQ,UAAYh/V,GAAI8tlB,eAAeljiB,IACzDo0S,GAASrnN,MAAQqnN,GAASrnN,MAAQ0S,GAClC20M,GAAS/xP,OAAS+xP,GAAS/xP,OAASo9C,GACpC,MAAM7yM,GAASwoD,GAAIm8yB,eAAe,CAC9Bjgd,eACAD,cACA8C,cACA3C,gBACAD,eACA/mM,UACA4pM,cAEEtnZ,GAASsoD,GAAIy7yB,UAAUO,GAAiBxk2B,GAAOE,QACrD,MAAO,CACH8lM,KAAMhmM,GAAOgmM,KACbqiN,QAASroZ,GAAOqoZ,QAChBnoZ,OAAQA,GAEhB,EAEJ+l2B,UAAgB9z4B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFirsB,IArHfp04B,MAqHgDmy4B,IArHhDny4B,MAqHuEwz4B,GAAK,KAC1KY,GAAgBhrsB,WAtH8EppM,MAAE,CAAAgnC,MAsHiBot2B,GAAe/z4B,QAAf+z4B,GAAe9z4B,YAlC1H8z4B,EAAe,KA+Cf9/N,GAAa,MAAnB,MAAMA,GACF7+tB,YAAYi+7B,GAAMhhrB,IACdz/Q,KAAKyg8B,KAAOA,GACZzg8B,KAAKy/Q,MAAQA,EACjB,CACAj4N,UAAUsqE,KACN,EAAKk9kB,SAGLhvsB,KAAKy/Q,MAAMY,kBAAkB,KACzBrgR,KAAKotG,gBAAekvb,KAAUt8hB,KAAKyg8B,KAAKlg0B,YAAa,UAChD35E,QAAKi4e,MAAUw6S,KACf7xxB,UAAU,IAAMsqE,KAAU,EAEvC,CACApjD,cACS1uE,KAAKotG,cAGVptG,KAAKotG,aAAa1+B,aACtB,CACA4y3B,iBACI,OAAOth8B,KAAKotG,cAAgBptG,KAAKotG,aAAasrM,MAClD,EAEJ2ob,UAAch0qB,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFmre,IA5Jbt0qB,MA4J4Cmy4B,IA5J5Cny4B,MA4JmEA,OAAS,EAC1Ks0qB,GAAclre,WA7JgFppM,MAAE,CAAAgnC,MA6JestoB,GAAaj0qB,QAAbi0qB,GAAah0qB,YA1BtHg0qB,EAAa,KAsCbkgO,GAAiB,MAAvB,MAAMA,GACF/+7B,YAAYi+7B,GAAMhhrB,IACdz/Q,KAAKyg8B,KAAOA,GACZzg8B,KAAKy/Q,MAAQA,EACjB,CACA+hrB,WAAWlzvB,IACP,OAAAtuM,KAAK0uE,cACL1uE,KAAKsuM,QAAUA,GACRtuM,IACX,CACAwnD,UAAUsqE,IACN,IAAKA,MAAY,EAACk9kB,UAA0BhvsB,KAAKsuM,QAC7C,OAEJ,MAAMq1O,GAAU3jb,KAAKyg8B,KAAKX,kBAAkB9/7B,KAAKsuM,SACjDtuM,KAAKy/Q,MAAMY,kBAAkB,KACzB,MAAM17B,GAAcg/L,GAAQxtW,IAAIo5B,OAAK+sb,KAAU/sb,GAAG,UAAU3oD,QAAKi4e,MAAUw6S,MAU3Er50B,KAAKotG,gBAAe4wE,SAAS2mE,IAAan9L,UATtB7jD,KAChB,MAAMs5F,GAASt5F,GAAEs5F,QACA0mV,GAAQxhW,OAAOotB,IAAKA,KAAMtS,IAAQpqB,OAAS,GACzCoqB,KAAWzD,UACbyD,KAAW1D,SAExBu4B,GAAS9xH,KAAKohuB,UAAUphuB,KAAKsuM,QAASrxG,IAAO,EAGS,EAEtE,CACAvuB,cACS1uE,KAAKotG,cAGVptG,KAAKotG,aAAa1+B,aACtB,CACA0ypB,UAAU3re,GAAMhnE,IACZ,MAAMgzwB,GAAWzh8B,KAAKyg8B,KAAKpB,eAAe5psB,IACpCissB,GAAgB1h8B,KAAKyg8B,KAAKpB,eAAer/7B,KAAKyg8B,KAAK/6uB,cAAcj3B,KAUvE,QAnDe,EA0COizwB,GAAc1kqB,IAAMykqB,GAASxkqB,QA1CpC,EA6COwkqB,GAASzkqB,IAAM0kqB,GAAczkqB,QA7CpC,EAgDOwkqB,GAASn+zB,KAAOo+zB,GAAcn+zB,OAhDrC,EAmDOm+zB,GAAcp+zB,KAAOm+zB,GAASl+zB,MAIxD,EAEJg+zB,UAAkBl04B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFqrsB,IA9NjBx04B,MA8NoDmy4B,IA9NpDny4B,MA8N2EA,OAAS,EAClLw04B,GAAkBprsB,WA/N4EppM,MAAE,CAAAgnC,MA+NmBwt2B,GAAiBn04B,QAAjBm04B,GAAiBl04B,YAtD9Hk04B,EAAiB,KA2DvB,MAAMvnqB,GAAO,OACPI,GAAQ,QACRunqB,GAAO,OAIPC,GAAiB,CACvBA,OAAyB7xmB,KACrB,MAAMhiD,GALC,OAKOgiD,IAAoBA,KAAc4xmB,GAAO,SAAW,SAGlE,IAAI7qqB,GACJ,OACIA,GADAi5D,KAAc4xmB,GACL,MAEJ5xmB,KAAc/1D,GACVI,GAEJ21D,KAAc31D,GACVJ,GAGA,SAEN,CACHxkM,MAAO,CAAEgnI,UAAW,GAAGuxE,QAAwBy5G,gBAAiB1wH,IAChEnuJ,IAAK,CAAE6zF,UAAW,GAAGuxE,SACzB,EAEJ6zpB,MAAwB7xmB,KACpB,MAAMv0D,GAAYu0D,KAAc/1D,IAAQ+1D,KAAc31D,GAAQ,aAAe,aAG7E,MAAO,CACH5kM,MAAO,CAAEgnI,UAAW,GAAGg/D,MAHbu0D,KAAc31D,IAAS21D,KAAc4xmB,IAAO,IAAO,SAI7Dh5zB,IAAK,CAAE6zF,UAAW,GAAGg/D,UACzB,EAEJomqB,KAAsB,MAEdps2B,MAAO,CAAE46J,QAAS,GAClBznH,IAAK,CAAEynH,QAAS,KAGxBwxsB,KAAsB,MAIdps2B,MAAO,CAAEgnI,UAAW,YACpB7zF,IAAK,CAAE6zF,UAAW,eAG1B,IAGMqluB,EAAgB,MAAtB,MAAMA,GACFr/7B,YAAYs/7B,IACR9h8B,KAAK8h8B,iBAAmBA,GACxB9h8B,KAAKw1F,MAAQ,IAAI4pH,MACjBp/M,KAAK2oI,IAAM,IAAIy2E,KACnB,CACAktD,KAAKh+D,GAASxiH,GAASo1M,IACnB,IAAKlhS,KAAKkhS,MAAQlhS,KAAKkhS,KAAKi0C,aAAej0C,GAAKi0C,YAC5Cn1U,KAAKkhS,KAAKyb,WAAazb,GAAKyb,SAAU,CACtC38S,KAAKkhS,KAAOA,GACZ,MAAM/3R,GAAO2iF,GAAQ3iF,MA7DZ,QA8DH447B,GAAWH,GAAez47B,IAChC,GAAI447B,GAAU,CACV,MACM5vvB,GAAS4vvB,GADG/h8B,KAAKgwsB,aAAa9ua,GAAMp1M,KAE1C9rF,KAAKgi8B,WAAW1zvB,GAAS6D,GAAQrmH,GACrC,YACS6siB,SACL,MAAM,IAAI70nB,MAAM,gCAAgCqF,6DAExD,CACJ,CACAg7M,cACInkN,KAAKii8B,YACT,CACAD,WAAW1zvB,GAAS6D,GAAQrmH,IACxB9rF,KAAKii8B,aACL,MAAMvj0B,GAAW5yC,GAAQ4yC,UA7ER,IA8EXtxE,GAAUptD,KAAK8h8B,iBAAiBvi2B,MAAM,IACxCmoJ,OAAMv1C,GAAO38G,QAAK,EAClB86J,OAAQ,GAAG5xH,gBAAQ,EAAcgpH,OAAMv1C,GAAOxpE,QAE5CorH,GAAS/zP,KAAK+zP,OAAS3mM,GAAQsyC,OAAO4uG,IAC5CylD,GAAOG,OAAO,KACVl0P,KAAK2oI,IAAIqnB,OACThwJ,KAAKii8B,YAAW,GAEpBji8B,KAAKw1F,MAAMw6D,OACX+jG,GAAOuY,MACX,CACA0jc,aAAa9ua,GAAMp1M,IACf,IAAIikQ,GAAYjkQ,GAAQikQ,WAAa4xmB,GACrC,OAAIzgqB,GAAKi0C,aACD4a,KAAc/1D,GACd+1D,GAAY31D,GAEP21D,KAAc31D,KACnB21D,GAAY/1D,KAGhBkH,GAAKyb,WACDozC,KAAc4xmB,GACd5xmB,GAxGL,YA0GUA,KACLA,GAAY4xmB,KAGb5xmB,EACX,CACAkymB,aACQji8B,KAAK+zP,SACL/zP,KAAK+zP,OAAOmY,UACZlsQ,KAAK+zP,OAAS,KAEtB,EAEJ8tsB,UAAiBx04B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyF2rsB,IA9VhB904B,MA8VkDC,OAAmB,EACnK604B,GAAiB1rsB,WA/V6EppM,MAAE,CAAAgnC,MA+VkB8t2B,GAAgBz04B,QAAhBy04B,GAAgBx04B,YApE5Hw04B,EAAgB,KA4EtB,MAAM90P,GAAkB,CACpBl0oB,KAAM,gCACNm0oB,YAAa,uBACbC,aAAc,CAAC,iBAAkB,mBACjCC,YAAa,WACbzxmB,QAAS,UACT0xmB,iBAAkB,+JAGhB0P,GAAiB,CAAEv5kB,MAAM,IAAQ05J,IAAK,GAG5C,IAmBMklqB,GAAc,MAApB,MAAMA,GACF1/7B,YAAYisL,GAAW0zwB,GAAeC,GAAYC,GAAkBC,GAAgBC,GAAoBC,GAAkBh8Z,GAAW/mR,IACjIz/Q,KAAKyuL,UAAYA,GACjBzuL,KAAKmi8B,cAAgBA,GACrBni8B,KAAKoi8B,WAAaA,GAClBpi8B,KAAKqi8B,iBAAmBA,GACxBri8B,KAAKsi8B,eAAiBA,GACtBti8B,KAAKui8B,mBAAqBA,GAC1Bvi8B,KAAKwi8B,iBAAmBA,GACxBxi8B,KAAKwmiB,UAAYA,GACjBxmiB,KAAKy/Q,MAAQA,GAKbz/Q,KAAKswP,SAAU,EAKftwP,KAAK4/e,YAAc,CAAEzqK,WAAY,OAAQx4B,SAAU,UAKnD38S,KAAKiptB,UAAY,CAAE9zY,WAAY,MAAOx4B,SAAU,QAKhD38S,KAAK8/Z,WAAa,CAAE3qF,WAAY,OAAQx4B,SAAU,OAIlD38S,KAAKyi8B,kBAAmB,EAiGxBzi8B,KAAKg9sB,aAAe,QAOpBh9sB,KAAKo7F,OAASyhnB,GAKd78sB,KAAK0i8B,oBAAsB,IAAItjvB,MAI/Bp/M,KAAKyzF,MAAQ,IAAI2rH,MAIjBp/M,KAAK2vF,KAAO,IAAIyvH,MAIhBp/M,KAAKq46B,eAAiB,IAAIj5tB,MAC1Bp/M,KAAKwvoB,gBAAkBlgjB,QAAQE,QAAQ,MACvCxvF,KAAK2i8B,cAAe,KACpBh0P,MAAgB5B,IAChB/ssB,KAAKwmiB,UAAUz4R,SAASt/E,GAAUi3B,cApLd,yBAqLpB1lN,KAAK4i8B,kBACT,CACAtjvB,WACIt/M,KAAK6i8B,WAAa7i8B,KAAK6i8B,WAAW9h3B,KAAK/gF,MACvCA,KAAKsi8B,eAAe964B,UAAUxnD,KAAK6i8B,YACnC7i8B,KAAK8i8B,uBAAyB9i8B,KAAKwi8B,iBAAiBht2B,MAAMhuC,UAAUxnD,KAAK+i8B,iBAAiBhi3B,KAAK/gF,OAC/FA,KAAK8i8B,uBAAuBrv3B,IAAIzzE,KAAKwi8B,iBAAiB75zB,IAAInhF,UAAUxnD,KAAKu76B,eAAex61B,KAAK/gF,QAC7FA,KAAKui8B,mBAAmBf,WAAWxh8B,KAAKoi8B,WAAW18uB,cAAc1lN,KAAKu7R,SAAWv7R,KAAKyuL,UAAUi3B,eAAel+J,UAAUxnD,KAAK+0yB,SAASh0tB,KAAK/gF,OAC5IA,KAAK2/7B,cAAgB9iP,GACrB78sB,KAAKgj8B,YACLhj8B,KAAKij8B,iBACLjj8B,KAAK4i8B,mBACL5i8B,KAAK6i8B,YACT,CACAtjvB,YAAY5Y,IACJA,GAAQ87vB,kBACRzi8B,KAAKij8B,iBAELt8vB,GAAQq2gB,cACRh9sB,KAAK4i8B,kBAEb,CACA9wuB,kBACS9xN,KAAKswP,SACNtwP,KAAKwvoB,gBAAgB9tiB,KAAK,KACtB1hG,KAAKu76B,gBAAe,GAG5Bv76B,KAAK6i8B,YACT,CACA3wX,qBACQlykB,KAAK2i8B,aACL3i8B,KAAK2i8B,cAAe,EAGxB3i8B,KAAKy/Q,MAAMY,kBAAkB,KAIzBrgR,KAAKkj8B,wBACLlj8B,KAAKmj8B,0BAAyB3/7B,KAAKxD,KAAKwvoB,iBACnCholB,UAAUxnD,KAAK6i8B,WAAU,EAEtC,CACA1+uB,cACInkN,KAAK0i8B,oBAAoBt01B,WACzBpuG,KAAKq46B,eAAejq0B,WACpBpuG,KAAKyzF,MAAMu8D,OACXhwJ,KAAKyzF,MAAM2a,WACXpuG,KAAKsi8B,eAAe5z3B,cACpB1uE,KAAKui8B,mBAAmB7z3B,cACxB1uE,KAAK8i8B,uBAAuBp03B,cAC5B1uE,KAAKkj8B,uBACT,CAIAhwO,WACIlztB,KAAK6i8B,YACT,CACAE,mBACI/i8B,KAAKwmiB,UAAUr3R,YAAYnvQ,KAAKyuL,UAAUi3B,cAAe,8BAC7D,CACA61tB,iBACIv76B,KAAKwmiB,UAAUz4R,SAAS/tQ,KAAKyuL,UAAUi3B,cAAe,+BACtD1lN,KAAK2vF,KAAKqgE,OACVhwJ,KAAK2vF,KAAKye,UACd,CACA,iBAAIux1B,GACA,OAAO3/7B,KAAKoj8B,cAChB,CACA,iBAAIzD,CAAcvk2B,IACdp7F,KAAKqj8B,kBAAkB,OAAQ,GAAGjo2B,GAAOkoC,UACzCtjI,KAAKqj8B,kBAAkB,MAAO,GAAGjo2B,GAAO4hM,SACxCh9R,KAAKoj8B,eAAiBho2B,EAC1B,CACA4n2B,YACQhj8B,KAAKu7R,QACLv7R,KAAKqj8B,kBAAkB,UAAW5m3B,OAAOz8E,KAAKoi8B,WAAWjspB,OAAOn2S,KAAKoi8B,WAAW18uB,cAAc1lN,KAAKu7R,QAASv7R,KAAKyuL,YAEzH,CACAo0wB,aACI,KAAI,EAAC7zP,QACD,OAEJ,MAAQ9ta,QAAM9lM,WAAWp7F,KAAKi0S,aACzBj0S,KAAK2/7B,eA73BQ2D,EAAC/6rB,GAAWg7rB,MAClC,MAAQjg0B,KAAMkg0B,GAASxmqB,IAAKymqB,IAAWl7rB,IAC/BjlI,KAAM6tmB,GAASn0c,IAAKk0c,IAAWqyN,GACvC,OAAOpn3B,KAAK2wF,IAAI02xB,GAAUryN,KAAY,GAAKh1pB,KAAK2wF,IAAI22xB,GAASvyN,KAAW,GA03BzCoyN,CAAkBtj8B,KAAK2/7B,cAAevk2B,OAC7Dp7F,KAAK2/7B,cAAgBvk2B,MACjB41mB,MAAahxsB,KAAKq46B,iBAClBr46B,KAAKy/Q,MAAM7iI,IAAI,IAAM58I,KAAKq46B,eAAeroxB,KAAK,CAAE50D,UAAQ8lM,YAG5DlhS,KAAKswP,SACLtwP,KAAKwi8B,iBAAiBl2rB,KAAKtsQ,KAAK0j8B,iBAAiBh+uB,cAAe1lN,KAAKswP,QAAS4wC,IAElFlhS,KAAKm9wB,aAAa37C,YACtB,CACAvtb,WACI,MAAM0vpB,GAAgB3j8B,KAAKmi8B,cAAczB,aAAa,CAClDnlqB,OAAQv7R,KAAKoi8B,WAAW18uB,cAAc1lN,KAAKu7R,QAC3CqkN,YAAa5/e,KAAK4/e,YAClBtxS,QAAStuM,KAAKyuL,UACdqxT,aAAc9/e,KAAK8/Z,WACnBhnH,OAAQ94S,KAAK84S,OACb19M,OAAQp7F,KAAKo7F,OACb4hnB,aAAch9sB,KAAKg9sB,eAEvB,OAAOh9sB,KAAKqi8B,iBAAiBjB,gBAAgB,CACzC7lqB,OAAQv7R,KAAKoi8B,WAAW18uB,cAAc1lN,KAAKu7R,QAC3CqkN,YAAa5/e,KAAK4/e,YAClB6C,WAAYzif,KAAKiptB,UACjBy2O,gBAAiBiE,GACjBr1vB,QAAStuM,KAAKyuL,UACdqxT,aAAc9/e,KAAK8/Z,WACnBhnH,OAAQ94S,KAAK84S,QAErB,CACAi8f,SAAS6uJ,IACL,MAAMC,MAAoB7yP,MAAahxsB,KAAK0i8B,qBACxCkB,KAAiBC,GACjB7j8B,KAAK6i8B,aAEAgB,IACL7j8B,KAAKy/Q,MAAM7iI,IAAI,KACX58I,KAAK0i8B,oBAAoB1yyB,MAAK,EAG1C,CACAizyB,kBACSjj8B,KAAKu7R,SAAWv7R,KAAKyi8B,kBAG1Bzi8B,KAAKoi8B,WAAW9C,cAAct/7B,KAAKoi8B,WAAW18uB,cAAc1lN,KAAKu7R,SAC5DrnN,QAASglB,IAAMl5F,KAAKqj8B,kBAAkBnq2B,GAAEt5B,IAAKs5B,GAAEh5F,OACxD,CACA0i8B,mBAEI5i8B,KAAKwmiB,UADgC,UAAtBxmiB,KAAKg9sB,aAA2B,WAAa,eACrCh9sB,KAAKyuL,UAAUi3B,cA7TZ,8BA8T9B,CACA29uB,kBAAkBxq4B,GAAM34D,IACpBF,KAAKwmiB,UAAUxnR,SAASh/Q,KAAKyuL,UAAUi3B,cAAe7sJ,GAAM34D,GAChE,CACAgj8B,wBACQlj8B,KAAKmj8B,wBACLnj8B,KAAKmj8B,uBAAuBz03B,aAEpC,EAEJwz3B,UAAe704B,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFgssB,IA1rBdn14B,MA0rB8CA,OA1rB9CA,MA0rBwEyz4B,IA1rBxEzz4B,MA0rBiGmy4B,IA1rBjGny4B,MA0rBwHo04B,IA1rBxHp04B,MA0rBoJs0qB,IA1rBpJt0qB,MA0rB8Kw04B,IA1rB9Kx04B,MA0rB4M804B,GA1rB5M904B,MA0rByOA,OA1rBzOA,MA0rBkQA,OAAS,EACzWm14B,GAAejoY,UA3rB+EltgB,MAAE,CAAA5jD,KA2rBA+47B,GAAcjivB,UAAA,kBAAAyW,UAAA,SAAA5nG,GAAAqlB,IAA+tB,GAA/tB,EAAArlB,KA3rBhB/hE,MAAE8zJ,EAAA,GAAF9zJ,MA2rB0tBknqB,KAAqB,MAAAnlmB,GAAA,KAAAw6iB,GA3rB/uBv8mB,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAuvzB,iBAAAp6R,GAAAn9d,OAAFp/I,MAAEu8mB,GAAFv8mB,WAAEonF,GAAAgpoB,aAAA7zG,GAAAn9d,MAAA,GAAA+T,OAAA,CAAAowC,QAAA,UAAAirC,OAAA,SAAAqkN,YAAA,cAAAqpO,UAAA,YAAAnpT,WAAA,aAAA2iiB,iBAAA,mBAAA3qP,WAAA,aAAAkF,aAAA,eAAA5hnB,OAAA,SAAA09M,OAAA,UAAA34F,QAAA,CAAAuivB,oBAAA,sBAAAjv2B,MAAA,QAAA9D,KAAA,OAAA0o1B,eAAA,kBAAA75rB,SAAA,gBAAA/B,YAAA,EAAA1nJ,SAAA,CAAFhoC,MA2rBqc,CAACyz4B,GAAcqB,EAAkB3C,GAAYiC,GAAiB9/N,GAAekgO,KA3rBlhBx04B,aAAE8xK,mBAAAvL,EAAAlT,MAAA,EAAAC,KAAA,EAAAC,OAAA,sIAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,KAAArlB,GAAA,OAAAuvF,GAAFtxJ,sBAAE,UAAFA,CA4rB7C,aA5rB6CA,MAAE,GAAFA,MAAE,EAAAyx4B,EAAA,qBAAFzx4B,MAAE,2BAAFA,MAAE,oBAAFA,aAAEsxJ,IAAFtxJ,MAgsB7BonF,GAAA++kB,WAAU,GAhsBmBnmqB,WAmsBhF,GAAA+hE,KAnsBgF/hE,cAAE,UAAAonF,GAAA2jkB,YAAF/qpB,MAAE,GAAFA,MAAE,mBAAAonF,GAAAvoD,QAAF7+B,CA+rBrC,OAAAonF,GAAAvoD,SA/rBqC7+B,cAAE,iBAgsB1C,EAAA8xI,aAAA,CAIYu+W,MAA2F4E,MAAoK3C,MAAiG40K,MAAqBpugB,cAAA,IA9Tjbq8uB,EAAc,KAsXpB,MA8DM74O,GAAkB,IAAI5gL,MAAe,mBAC3C,IAOMkwJ,GAAY,MAAlB,MAAMA,GACFn2rB,YAAY4xnB,GAAgBhqB,GAA0B3nD,GAAUh0X,IAC5DzuL,KAAKo0nB,eAAiBA,GACtBp0nB,KAAKoqmB,yBAA2BA,GAChCpqmB,KAAKyijB,SAAWA,GAChBzijB,KAAKyuL,UAAYA,EACrB,CAMA,qBAAIq1wB,GAEA,MAAMC,GAAiB/j8B,KAAKo0nB,eAAe5iC,YAAc,GACzD,GAAIuyW,GAAe,GACf,OAAOA,GAAe,GAE1B,MAAM,IAAIjg8B,MAAM,gQAIpB,CAMA,yBAAIkg8B,GACA,OAAOhk8B,KAAKyuL,UAAYzuL,KAAKyuL,UAAUi3B,cAAgB1lN,KAAKik8B,qBAAqBjk8B,KAAK8j8B,kBAC1F,CAwCAn02B,KAAK7D,GAAU,CAAC,GACZ,MAAQyiK,aAAW4lB,UAAUn0Q,KAAKgvuB,YAAYljpB,GAAQF,SAChDs42B,GAAoBlk8B,KAAKmk8B,YAAYhwrB,GAAOroL,GAAQusnB,UACpD+rP,GAAgBF,GAAkBto2B,SACxC57F,KAAKqk8B,uBAAuBH,GAAmBp42B,IAC/Co42B,GAAkBziW,kBAAkBhxY,gBAChC89B,IACAA,GAAUkzW,kBAAkBhxY,gBAEhC,MAAM4qf,GAAer7sB,KAAKik8B,qBAAqBC,IAC/C,MAAO,CACHzw2B,MAAOA,KACC86J,IACAA,GAAU2d,UAEdg4rB,GAAkBh4rB,UA3JX59D,MACfA,IAAWA,GAAQ2mD,YACnB3mD,GAAQ2mD,WAAWqpB,YAAYhwE,GAAO,EA2J9B0vJ,CAAcq9W,GAAY,EAE9BzvnB,QAAS2iK,GACTkgb,MAAOy1R,GACPpqP,yBAA0BsqP,GAAc1B,oBACxC55L,WAAYs7L,GAAc3w2B,MAC1B4nnB,aAAcA,GACdwD,UAAWulP,GAAcz02B,KACzB202B,oBAAqBF,GAAc/rB,eAE3C,CACA8rB,YAAYhwrB,GAAO1lF,IACf,MAAMy1wB,GAAoBlk8B,KAAKsimB,gBAAgB4/V,GAAgB/trB,GAAO1lF,IACtE,OAAKA,IACDzuL,KAAKgk8B,sBAAsB9lrB,YAAYl+Q,KAAKik8B,qBAAqBC,KAE9DA,EACX,CAOAD,qBAAqBrhW,IACjB,OAAOA,GAAa97e,SAAS4+F,aACjC,CAQA6+uB,oBAAoBC,IAChB,OAAOxk8B,KAAKoqmB,yBAAyBhM,wBAAwBomW,GACjE,CAQAliW,gBAAgBkiW,GAAgBrwrB,GAAO1lF,IACnC,MAAMrhI,GAAUptD,KAAKuk8B,oBAAoBC,IACzC,GAAI/1wB,GACA,OAAOA,GAAU6za,gBAAgBl1iB,QAAS/sD,EAAWL,KAAKyijB,SAAUtuS,IAEnE,CACD,MAAM5lB,GAAYnhM,GAAQsyC,OAAO1/F,KAAKyijB,SAAUtuS,IAChD,OAAAn0Q,KAAKo0nB,eAAehB,WAAW7kY,GAAUq+U,UAClCr+U,EACX,CACJ,CAQA81sB,uBAAuB91sB,GAAWziK,IAC9BtV,cAAOg/B,oBAAoB1pB,IACtB3J,OAAO2hC,IAAiB,YAATA,IAAsBh4B,GAAQF,mBAAmB2vgB,OAChEplhB,IAAK2tC,KACNyqI,GAAU3yJ,SAASkoB,IAAQh4B,GAAQg4B,GAAI,GAEpCyqI,EACX,CAOAygf,YAAYpjpB,IACR,IAAKA,IAAWA,cAAmB2vgB,MAC/B,MAAO,CAAEhtW,UAAW,KAAM4lB,MAAO,CAAC,KAEtC,MAAM5lB,GAAYvuP,KAAKsimB,gBAAgB12gB,IAEvC,MAAO,CACH2iK,UAAWA,GACX4lB,MAAO,CAHG5lB,GAAY,CAACA,GAAUznI,SAAS4+F,eAAiB,IAOnE,EAEJize,UAAatroB,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFyic,IAn/BZ5roB,MAm/B0CA,OAn/B1CA,MAm/BwEA,OAn/BxEA,MAm/BgHA,OAn/BhHA,MAm/BwIs8pB,GAAe,KACrP1wB,GAAaxic,WAp/BiFppM,MAAE,CAAAgnC,MAo/Bc4kmB,GAAYvroB,QAAZuroB,GAAYtroB,UAAA2pB,WAAc,SAlLlI2hnB,EAAY,KAkMlB,MAAM8rQ,GAAc,CAChBvC,IAIJ,IA+BMtgtB,GAAW,MAAjB,MAAMA,IAENA,UAAYv0L,UAAI,SAAA6oM,IAAA,WAAAA,IAAyFtU,GAAW,EACpHA,GAAYigC,UA3iCkF90N,KAAE,CAAA5jD,KA2iCUy4O,KAC1GA,GAAYkgC,UA5iCkF/0N,MAAE,CAAA60N,UA4iCkC,CAAC+2a,GAAcupB,MAAmB/ge,QAAA,CAAY8ye,KAAuBwwO,MAJjM7itB,EAAW,sDCl2CjB,IAAqlC8itB,EAAUC,EAA3lCC,EAAQ,CAAC,eAAe,mCAAmC,WAAW,eAAe,WAAW,WAAW,mBAAmB,eAAe,WAAW,WAAW,2BAA2B,mBAAmB,WAAW,WAAW,eAAe,mCAAmC,WAAW,WAAW,WAAW,WAAW,mBAAmB,+CAA+C,OAAO,WAAW,WAAW,WAAW,OAAO,WAAW,WAAW,WAAW,2CAA2C,eAAe,WAAW,WAAW,+BAA+B,WAAW,WAAW,WAAW,WAAW,OAAO,+DAA+D,eAAe,WAAW,eAAe,WAAW,eAAe,WAAW,WAAW,2BAA2B,WAAW,WAAW,eAAe,eAAe,WAAW,WAAW,WAAW,WAAW,eAAe,eAAe,mBAAmB,WAAW,mBAAmB,mBAAmB,WAAW,WAAW,uBAAuB,4CAAsDF,EAA8IE,EAApID,EAA4I,IAAnH,SAASE,GAAW,OAAQA,GAAWH,EAAU/w3B,KAAQ+w3B,EAAUzj2B,QAAa,CAAE6j2B,GAAYH,GAA6B,IAAII,EAAQ,SAASL,EAAUC,GAAmC,IAAIG,GAAUF,EAAtCF,GAAoB,QAA4Drk8B,IAApB0k8B,EAAQC,SAAohBD,EAAQE,OAAU,SAASC,GAA+D,QAAhDC,EAAzhB,SAASC,GAA+J,QAAsBC,GAAUC,GAAlGC,EAAU9o3B,OAAO2o3B,GAAW9+4B,QAAW,MAAM,IAAQk/4B,EAAU,GAAWC,EAAU,EAAwBC,GAAU,EAAIJ,GAAUC,EAAU1n3B,OAAU6n3B,OAAcJ,KAAYD,GAAUI,EAAU,EAAc,GAAVJ,GAAeC,GAAUA,GAAUG,IAAY,GAAKD,GAAW/o3B,OAAO+mM,aAAgB,IAAK6hrB,MAAY,EAAKI,EAAU,IAAM,EAAKH,GAA/Y,oEAAma7m3B,QAAW6m3B,IAAY,OAAOE,CAAU,CAAsDX,CAAUK,GAAeS,EAAU,GAAWC,EAAU,EAAIC,EAAUV,EAAUty3B,OAAU+y3B,EAAUC,EAAUD,IAAaD,GAAW,KAAK,KAAKR,EAAUt4xB,WAAc+4xB,GAAWhz3B,SAAY,KAAOmH,OAAS,GAAO,OAAOkje,mBAAmB0oZ,EAAW,EAAEZ,EAAQe,OAAU,CAAC,EAAEf,EAAQC,QAAU,GAAM,IAAIe,EAAUhB,EAAQe,OAAUpB,GAAW,YAAmBrk8B,IAAZ0l8B,GAAuBjB,GAAUC,EAAQE,OAAUH,IAAWC,EAAQe,OAAUpB,GAAWI,IAAWA,GAAUiB,EAAUjB,EAAU,EAAMvk8B,EAAQ,CAACN,KAAK,+XAAuaouF,EAAM,IAAIvqE,IAAwC,SAAS6qrB,EAAgBq3P,GAAW,GAAG332B,EAAM022B,EAAQ,SAASiB,EAAUjB,EAAQ,UAAaA,EAAQ,SAAUA,EAAQ,QAA2E,OAAO122B,EAAM022B,EAAQ,QAAQiB,EAAUjB,EAAQ,SAAU,IAAkYkB,EAA9XC,EAAUF,EAAUjB,EAAQ,QAAQ,KAAQiB,EAAUjB,EAAQ,QAAQ,GAAGoB,GAAUH,EAAUjB,EAAQ,QAAQmB,EAAUE,EAAUhx3B,KAAK2v3B,EAAQ,SAASxk8B,EAAQwk8B,EAAQ,UAAUsB,GAAWD,EAAUrB,EAAQ,WAAWqB,EAAUrB,EAAQ,QAAQuB,EAAUF,EAAUrB,EAAQ,iBAAiBwB,iBAAiBxB,EAAQ,QAAQyB,EAA2kJ,SAASC,GAAaC,EAAUC,GAAW,IAAIC,GAAUF,EAAU3B,EAAQ,SAAS,KAAI6B,IAAYA,GAAU7B,EAAQ,UAAaA,EAAQ,UAAUA,EAAQ,SAAQ,OAAO,KAA8F,IAAI8B,EAAU,IAAI3i8B,IAAIyi8B,GAAW,OAAOC,GAAU7B,EAAQ,SAAS,SAAS+B,EAAUC,GAAW,GAAGhC,EAAQ,UAAUA,EAAQ,QAAQ,OAAOgC,EAAUhC,EAAQ,SAAS+B,EAAU/B,EAAQ,QAAiD,GAAGA,EAAQ,SAAS,SAASiC,GAAW,GAAGjC,EAAQ,SAAUA,EAAQ,QAAQ,OAAO8B,EAAU9B,EAAQ,SAASiC,EAAUjC,EAAQ,SAAmG,EAAG,CAA7xK0B,CAAaL,EAAUJ,EAAUjB,EAAQ,UAA4iD,GAArhDsB,GAAWC,EAAcvB,EAAQ,UAAUA,EAAQ,UAA4VkB,EAAU,CAAC987B,KAAO,EAAI897B,YAAcd,GAAUe,QAAUlB,EAAUjB,EAAQ,UAAkBA,EAAQ,SAAUA,EAAQ,UAAayB,GAAoQ,IAA7BA,EAAUzB,EAAQ,UAAiBjswB,EAAkgJ,SAASquwB,KAAiB,WAAW/m8B,MAAO2k8B,EAAQ,WAAW,GAAM,CAA7jJoC,GAAiBX,EAAUzB,EAAQ,UAAcA,EAAQ,QAASA,EAAQ,SAAOkB,EAAU,CAAC987B,KAAO,EAAI897B,YAAcd,GAAUiB,WAAazkpB,GAAU6jpB,EAAUzB,EAAQ,UAAUmC,QAAUlB,EAAUjB,EAAQ,UAAoFjswB,EAAUktwB,EAAUjB,EAAQ,SAASyB,EAAUzB,EAAQ,YAAcA,EAAQ,SAAUA,EAAQ,UAAgEkB,EAAU,CAAC987B,KAAO,EAAI897B,YAAcd,GAAUj5P,YAAcvqZ,GAAUqjpB,EAAUjB,EAAQ,UAAUqC,WAAazkpB,GAAU6jpB,EAAUzB,EAAQ,UAAUmC,QAAUlB,EAAUjB,EAAQ,WAAx3BA,EAAQ,SAAUA,EAAQ,UAAmGkB,EAAU,CAAC987B,KAAO,EAAI897B,YAAcd,GAAUe,QAAUlB,EAAUjB,EAAQ,WAAizBkB,UAAkBt23B,UAAUo13B,EAAQ,OAAQ,GAAGA,EAAQ,QAASA,EAAQ,YAA+D,CAAC,IAAIsC,EAAUtC,EAAQ,QAAQA,EAAQ,SAASiB,EAAUjB,EAAQ,UAAUuC,SAAiB333B,QAAQo13B,EAAQ,WAAWA,EAAQ,QAAWuC,EAAcvC,EAAQ,SAAUA,EAAQ,SAAQp13B,QAAQo13B,EAAQ,SAASsC,GAAwnBtC,EAAQ,UAAUA,EAAQ,QAAOp13B,QAAQo13B,EAAQ,SAASsC,GAA2I133B,QAAQo13B,EAAQ,SAAsU,SAASxi0B,GAAYgl0B,GAAW,IAAIC,EAAUzC,EAAQ,QAAQA,EAAQ,SAASwC,EAAUxC,EAAQ,SAAS,MAAwyC,OAAjwC,IAA5BwC,EAAUxC,EAAQ,SAAkBA,EAAQ,UAAUA,EAAQ,SAAOyC,GAAWzC,EAAQ,QAAQA,EAAQ,SAASwC,EAAUxC,EAAQ,SAASA,EAAQ,WAAWA,EAAQ,SAASA,EAAQ,SAASwC,EAAUxC,EAAQ,SAASA,EAAQ,WAAW,QAA2M,IAA5BwC,EAAUxC,EAAQ,QAAkBA,EAAQ,SAAUA,EAAQ,UAAQyC,GAAWzC,EAAQ,QAAQA,EAAQ,SAASwC,EAAUxC,EAAQ,SAASA,EAAQ,WAAW,QAA6P,IAA5BwC,EAAUxC,EAAQ,QAAkBA,EAAQ,SAAUA,EAAQ,UAAQyC,GAAWzC,EAAQ,SAAmG,IAA5BwC,EAAUxC,EAAQ,UAAkBA,EAAQ,SAAUA,EAAQ,UAAmQyC,GAAWzC,EAAQ,SAAiByC,GAAWzC,EAAQ,QAAQA,EAAQ,SAASwC,EAAUxC,EAAQ,QAAQA,EAAQ,QAAmB,CAAvzDxi0B,CAAY0j0B,IAAeqB,IAAcvC,EAAQ,QAASA,EAAQ,QAAuHp13B,QAAQo13B,EAAQ,UAAW,CAAE,IAAI0C,IAAWxB,EAAU,OAAO532B,EAAM022B,EAAQ,SAASiB,EAAUjB,EAAQ,QAAQ0C,IAAWA,EAAU,CAAytE,SAAS9kpB,GAAU+kpB,GAAW,OAAO,IAAItn8B,KAAe,IAAVsn8B,EAAiB,CAAuE,SAAS5uwB,EAAU6uwB,EAAUC,GAAW,IAAIC,GAAUllpB,GAAUilpB,GAAsK,OAAOD,EAAxJ,IAAIvn8B,KAAKyn8B,GAAU9C,EAAQ,WAAW8C,GAAU9C,EAAQ,UAAU8C,GAAU9C,EAAQ,WAAW,GAAyBA,EAAQ,WAAW,GAAiC,0GCIrmS,MAAM+C,EACFtl8B,YAAYul8B,GACR/n8B,KAAKgo8B,QAAUD,EACf,MAAME,EAAmBF,aAAuB35L,iBAAmB25L,EAAY7n8B,MAAQ6n8B,EAGvF/n8B,KADe,eAD6B,iBAArBio8B,EAAgC,WAAa,WAEvDA,EACjB,CACAC,oBAAoBh8zB,GAChBlsI,KAAKmo8B,sBAAmB,EACxBno8B,KAAKwjI,UAAO,EACZxjI,KAAKmJ,KAAO,QAAQ+iI,EAAKnyD,MAAMmyD,EAAK7yC,YAAY,KAAO,GAAG+E,gBAC1Dp+F,KAAK64D,KAAOqzE,EAAKnyD,MAAMmyD,EAAK7yC,YAAY,KAAO6yC,EAAK7yC,YAAY,MAAQ,EAC5E,CACA+u2B,kBAAkB/m1B,GACdrhH,KAAKwjI,KAAOniB,EAAOmiB,KACnBxjI,KAAKmJ,KAAOk4G,EAAOl4G,KACnBnJ,KAAK64D,KAAOwoD,EAAOxoD,IACvB,EAGJ,MAAMwv4B,EACF7l8B,YAAY8l8B,EAAU9psB,EAAM1yK,IACxB9rF,KAAKqmD,IAAM,IACXrmD,KAAKgwE,QAAU,GACfhwE,KAAKkxE,iBAAkB,EACvBlxE,KAAKuo8B,SAAW,GAChBvo8B,KAAK+7K,SAAU,EACf/7K,KAAKwo8B,aAAc,EACnBxo8B,KAAKyo8B,YAAa,EAClBzo8B,KAAK0o8B,WAAY,EACjB1o8B,KAAK2o8B,UAAW,EAChB3o8B,KAAKshH,SAAU,EACfthH,KAAKm+R,SAAW,EAChBn+R,KAAKso8B,SAAWA,EAChBto8B,KAAKw+P,KAAOA,EACZx+P,KAAK8rF,QAAUA,GACf9rF,KAAKixG,KAAO,IAAI621B,EAAetpsB,GAC/Bx+P,KAAK4o8B,MAAQpqsB,EACT8psB,EAASx82B,UACT9rF,KAAKgsF,OAASs82B,EAASx82B,QAAQE,QAAU,OACzChsF,KAAK49P,MAAQ0qsB,EAASx82B,QAAQ+82B,WAAa,QAE/C7o8B,KAAKqmD,IAAMii5B,EAASx82B,QAAQzlC,GAChC,CACA2rgB,SACI,IACIhyjB,KAAKso8B,SAASQ,WAAW9o8B,KAC7B,OAEIA,KAAKso8B,SAASS,gBAAgB/o8B,KAAM,GAAI,EAAG,CAAC,GAC5CA,KAAKso8B,SAASU,aAAahp8B,KAAM,GAAI,EAAG,CAAC,EAC7C,CACJ,CACAwiJ,SACIxiJ,KAAKso8B,SAASW,WAAWjp8B,KAC7B,CACAk1E,SACIl1E,KAAKso8B,SAASY,gBAAgBlp8B,KAClC,CACAmp8B,iBAEA,CACAC,YAAYxruB,GACR,MAAO,CAAEA,OACb,CACAyruB,WAAWlrqB,GACP,MAAO,CAAEA,WACb,CACAmrqB,UAAU163B,EAAUzc,EAAQ6d,IACxB,MAAO,CAAEpB,WAAUzc,SAAQ6d,WAC/B,CACA46T,QAAQh8T,EAAUzc,EAAQ6d,IACtB,MAAO,CAAEpB,WAAUzc,SAAQ6d,WAC/B,CACAu2J,SAAS33J,EAAUzc,EAAQ6d,IACvB,MAAO,CAAEpB,WAAUzc,SAAQ6d,WAC/B,CACA8nE,WAAWlpE,EAAUzc,EAAQ6d,IACzB,MAAO,CAAEpB,WAAUzc,SAAQ6d,WAC/B,CACAu53B,kBACIvp8B,KAAK+7K,SAAU,EACf/7K,KAAKwo8B,aAAc,EACnBxo8B,KAAKyo8B,YAAa,EAClBzo8B,KAAK0o8B,WAAY,EACjB1o8B,KAAK2o8B,UAAW,EAChB3o8B,KAAKshH,SAAU,EACfthH,KAAKm+R,SAAW,EAChBn+R,KAAKmp8B,gBACT,CACAK,aAAa5ruB,GACT59N,KAAKop8B,YAAYxruB,EACrB,CACA6ruB,YAAYtrqB,GACRn+R,KAAKm+R,SAAWA,EAChBn+R,KAAKqp8B,WAAWlrqB,EACpB,CACA/iI,WAAWxsF,EAAUzc,EAAQ6d,IACzBhwE,KAAK+7K,SAAU,EACf/7K,KAAKwo8B,aAAc,EACnBxo8B,KAAKyo8B,YAAa,EAClBzo8B,KAAK0o8B,WAAY,EACjB1o8B,KAAK2o8B,UAAW,EAChB3o8B,KAAKshH,SAAU,EACfthH,KAAKm+R,SAAW,IAChBn+R,KAAK6zE,WAAQxzE,EACbL,KAAKsp8B,UAAU163B,EAAUzc,EAAQ6d,GACrC,CACA8qF,SAASlsF,EAAUzc,EAAQ6d,IACvBhwE,KAAK+7K,SAAU,EACf/7K,KAAKwo8B,aAAc,EACnBxo8B,KAAKyo8B,YAAa,EAClBzo8B,KAAK0o8B,WAAY,EACjB1o8B,KAAK2o8B,UAAW,EAChB3o8B,KAAKshH,SAAU,EACfthH,KAAKm+R,SAAW,EAChBn+R,KAAK6zE,WAAQxzE,EACbL,KAAK4qY,QAAQh8T,EAAUzc,EAAQ6d,GACnC,CACA053B,UAAU963B,EAAUzc,EAAQ6d,IACxBhwE,KAAK+7K,SAAU,EACf/7K,KAAKwo8B,aAAc,EACnBxo8B,KAAKyo8B,YAAa,EAClBzo8B,KAAK0o8B,WAAY,EACjB1o8B,KAAK2o8B,UAAW,EAChB3o8B,KAAKshH,SAAU,EACfthH,KAAKm+R,SAAW,EAChBn+R,KAAK6zE,WAAQxzE,EACbL,KAAKumO,SAAS33J,EAAUzc,EAAQ6d,GACpC,CACAwmE,YAAY5nE,EAAUzc,EAAQ6d,IAC1BhwE,KAAK83I,WAAWlpE,EAAUzc,EAAQ6d,IAC9BhwE,KAAKso8B,SAASx82B,QAAQ692B,mBACtB3p8B,KAAKk1E,QAEb,CACA003B,sBACI5p8B,KAAK6zE,MAAQ7zE,KAAK6zE,SAAW7zE,KAAKso8B,SAASuB,WAC3C7p8B,KAAK+7K,SAAU,CACnB,EACH,IAEK+txB,GAAQ,MAAd,MAAMA,SAGO9p8B,KAAK+p8B,SAAW,CACrB,qBACA,qBACA,0EACA,0EACA,mDACA,mDACD,QAEM/p8B,KAAKgq8B,SAAW,CACrB,2BACA,2BACA,2BACA,oEACA,uEACA,iDACA,oDACA,iDACA,wDACD,QAEMhq8B,KAAKiq8B,SAAW,CACrB,gCACA,gCACA,gCACA,gCACA,4EACA,wEACA,yEACA,sDACA,6DACA,6DACA,0DACD,QAGMjq8B,KAAKkq8B,SAAW,CACrB,kBACA,oBACA,YACA,wBACA,kBACA,iCACD,QAGMlq8B,KAAKmq8B,cAAgB,CAC1B,qBACA,0BACA,uBACA,oBACA,+BACA,2BACA,+BACA,6BACA,8BACA,mBACA,sBACD,CACH,mBAAOC,CAAan51B,GAChB,IAAIo51B,GAAY,cAChB,OAAIp51B,GAAM9nG,OAA6C,IAArCnJ,KAAKkq8B,SAASzr3B,QAAQwyB,EAAK9nG,OAGpC8nG,GAAM9nG,MAAM83G,MAAM,WAFvBop1B,GAAY,QAKPp51B,GAAM9nG,MAAM83G,MAAM,WACvBop1B,GAAY,QAEPp51B,GAAM9nG,MAAM83G,MAAM,WACvBop1B,GAAY,QAEQ,oBAAfp51B,GAAM9nG,KACXkh8B,GAAY,MAEPp51B,GAAM9nG,OAAkD,IAA1CnJ,KAAKmq8B,cAAc1r3B,QAAQwyB,EAAK9nG,MACnDkh8B,GAAY,WAEPp51B,GAAM9nG,OAA6C,IAArCnJ,KAAK+p8B,SAAStr3B,QAAQwyB,EAAK9nG,MAC9Ckh8B,GAAY,MAEPp51B,GAAM9nG,OAA6C,IAArCnJ,KAAKgq8B,SAASvr3B,QAAQwyB,EAAK9nG,MAC9Ckh8B,GAAY,MAEPp51B,GAAM9nG,OAA6C,IAArCnJ,KAAKiq8B,SAASxr3B,QAAQwyB,EAAK9nG,QAC9Ckh8B,GAAY,OAEE,gBAAdA,IAA+Bp51B,GAAMp4C,OACrCwx4B,GAAYrq8B,KAAKsq8B,kBAAkBr51B,EAAKp4C,OAErCwx4B,EACX,CACA,wBAAOC,CAAkBC,GACrB,MAAMl9nB,GAAQ,CACVm9nB,IAAK,QACLC,KAAM,QACNC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,KAAM,QACNC,IAAK,QACLC,IAAK,QACLvhuB,IAAK,QACLo8J,GAAI,QACJolkB,KAAM,QACNC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACL,MAAO,QACPC,IAAK,QACLC,IAAK,QACLC,IAAK,QACL94jB,IAAK,QACL+4jB,IAAK,QACL39e,SAAU,WACV7nP,IAAK,WACLyluB,IAAK,WACL,KAAM,WACNC,GAAI,WACJC,IAAK,WACLC,IAAK,WACLC,GAAI,WACJ9ngB,IAAK,MACL+ngB,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACLC,IAAK,QACL,MAAO,QACPC,IAAK,QACLC,IAAK,QACLC,KAAM,QACNC,KAAM,QACNC,IAAK,QACLpl1B,IAAK,MACLql1B,KAAM,MACNC,IAAK,MACLt/e,IAAK,MACLu/e,IAAK,MACLC,IAAK,MACLC,IAAK,MACLC,KAAM,MACNC,IAAK,MACLC,KAAM,MACNC,IAAK,OAEHjld,EAASkid,EAAc1t3B,MAAM,KACnC,GAAIwra,EAAOx1a,OAAS,EAChB,MAAO,cAEX,MAAM063B,EAAYlld,EAAOA,EAAOx1a,OAAS,GAAGurB,cAC5C,YAAyB/9F,IAArBgtU,GAAMkgoB,GACC,cAGAlgoB,GAAMkgoB,EAErB,EACH,OAzKKzD,CAAQ,KA8Kd,MAAM0D,GACFhr8B,YAAYspF,GACR9rF,KAAKwo8B,aAAc,EACnBxo8B,KAAKm1H,MAAQ,GACbn1H,KAAKm+R,SAAW,EAChBn+R,KAAK6p8B,WAAa,EAClB7p8B,KAAK8rF,QAAU,CACX2h3B,YAAY,EACZC,SAAS,EACTj4hB,QAAS,GACTk0hB,mBAAmB,EACnBgE,kBAAkB,EAClBC,mBAAqBl63B,GAASA,EAAKk13B,MACnCiF,2BAA2B,EAC3Bxn5B,IAAK,IAETrmD,KAAKspX,WAAWx9R,GAChB9rF,KAAK4uE,SAAW,IAAIwwI,KACxB,CACAkqK,WAAWx9R,GACP9rF,KAAK8rF,QAAUtV,OAAO8mI,OAAOt9M,KAAK8rF,QAASA,GAC3C9rF,KAAK2xM,UAAY3xM,KAAK8rF,QAAQ6lH,UAC9B3xM,KAAK8t8B,gBAAkB9t8B,KAAK8rF,QAAQgi3B,iBAAmB,gBACvD9t8B,KAAKyt8B,WAAazt8B,KAAK8rF,QAAQ2h3B,WAC/Bzt8B,KAAK8rF,QAAQ2pV,SAAS9hU,QAAQ,CAAE96C,KAAM,aAAcm1D,GAAIhuH,KAAK+t8B,oBACzD/t8B,KAAK8rF,QAAQki3B,aACbhu8B,KAAK8rF,QAAQ2pV,SAAS9hU,QAAQ,CAAE96C,KAAM,WAAYm1D,GAAIhuH,KAAKiu8B,kBAE3Dju8B,KAAK8rF,QAAQoi3B,iBACblu8B,KAAK8rF,QAAQ2pV,SAAS9hU,QAAQ,CAAE96C,KAAM,WAAYm1D,GAAIhuH,KAAKmu8B,kBAE3Dnu8B,KAAK8rF,QAAQsi3B,iBACbpu8B,KAAK8rF,QAAQ2pV,SAAS9hU,QAAQ,CAAE96C,KAAM,WAAYm1D,GAAIhuH,KAAKqu8B,kBAE/D,QAAS7+3B,EAAI,EAAGA,EAAIxvE,KAAKm1H,MAAMtiD,OAAQrD,IACnCxvE,KAAKm1H,MAAM3lD,GAAGnpB,IAAMrmD,KAAK8rF,QAAQzlC,GAEzC,CACAio5B,WAAWC,EAAOx92B,EAAU0kV,IACxB,IAAI3pV,EAAUiF,EACd,MAAM6tX,EAAO,GACb,UAAW3tW,KAAQs91B,EACf3vf,EAAKjrY,KAAKs9B,GAEd,MAAMu91B,EAAiBxu8B,KAAKyu8B,YAAYh5hB,IAClC7hU,EAAQ5zG,KAAKm1H,MAAMtiD,OACnB673B,EAAiB,GACvB9vf,EAAKzoY,IAAKqoL,IACD1yK,IACDA,EAAU9rF,KAAK8rF,SAEnB,MAAMy6S,EAAO,IAAIuhkB,EAAetpsB,GAChC,GAAIx+P,KAAK2u8B,aAAapokB,EAAMiokB,EAAgB1i3B,GAAU,CAClD,MAAM8i3B,GAAW,IAAIvG,EAASro8B,KAAMw+P,EAAM1yK,GAC1C4i3B,EAAe/63B,KAAKi73B,IACpB5u8B,KAAKm1H,MAAMxhD,KAAKi73B,IAChB5u8B,KAAK6u8B,mBAAmBD,GAC5B,KAEyC,iBAA1B5u8B,KAAK8u8B,kBAAiC9u8B,KAAK8u8B,kBAAoB,GAEtE9u8B,KAAK+u8B,wBAAwBxokB,EADdiokB,EAAexu8B,KAAK8u8B,kBACQhj3B,EAC/C,GAGJ9rF,KAAKm1H,MAAMtiD,SAAW+gC,IACtB5zG,KAAKgv8B,kBAAkBN,GACvB1u8B,KAAKm+R,SAAWn+R,KAAKiv8B,qBAEzBjv8B,KAAK69O,UACD79O,KAAK8rF,QAAQ2h3B,YACbzt8B,KAAKkv8B,WAEb,CACAhG,gBAAgBhp8B,GACZ,MAAM2zE,EAAQ7zE,KAAKmv8B,eAAejv8B,GAC5BwzE,GAAO1zE,KAAKm1H,MAAMthD,GACpBH,GAAK803B,aACL903B,GAAK8uE,SAETxiJ,KAAKm1H,MAAM3hD,OAAOK,EAAO,GACzB7zE,KAAKm+R,SAAWn+R,KAAKiv8B,mBACzB,CACAG,aACI,KAAOpv8B,KAAKm1H,MAAMtiD,QACd7yE,KAAKm1H,MAAM,GAAGjgD,SAElBl1E,KAAKm+R,SAAW,CACpB,CACA2qqB,WAAW5o8B,GACP,MAAM2zE,EAAQ7zE,KAAKmv8B,eAAejv8B,GAC5BwzE,GAAO1zE,KAAKm1H,MAAMthD,GAClBkiB,EAAY/1F,KAAK8rF,QAAQ4h3B,QAAU,gBAAkB,mBAC3Dh63B,GAAKk23B,uBACD5p8B,KAAKwo8B,cAGTxo8B,KAAKwo8B,aAAc,EACnBxo8B,KAAK+1F,GAAWriB,IACpB,CACAu13B,WAAW/o8B,GACP,MAAM2zE,EAAQ7zE,KAAKmv8B,eAAejv8B,GAC5BwzE,GAAO1zE,KAAKm1H,MAAMthD,GAEpBH,IAAQA,GAAK803B,cADJxo8B,KAAK8rF,QAAQ4h3B,QAAUh63B,GAAK273B,KAAO373B,GAAK473B,OAE5Cxh3B,OAEb,CACAoh3B,YACI,MAAMxn3B,EAAQ1nF,KAAKuv8B,sBAAsBpt3B,OAAQzO,IAAUA,EAAK803B,aAC3D9g3B,EAAM7U,SAGX6U,EAAMvR,IAAKzC,GAASA,EAAKk23B,uBACzBli3B,EAAM,GAAGsqe,SACb,CACAw9Y,YACkBxv8B,KAAKuv8B,sBACbp53B,IAAKzC,GAASA,EAAK8uE,SAC7B,CACAitzB,OAAOvv8B,GACH,OA5HR,SAASuv8B,EAAOvv8B,GACZ,OAAQ4wG,MAAQ5wG,aAAiB4wG,IACrC,CA0He2+1B,CAAOvv8B,EAClB,CACAwv8B,iBAAiBxv8B,GACb,OAAOA,aAAiB4n8B,CAC5B,CACAqH,eAAejv8B,GACX,MAAwB,iBAAVA,EAAqBA,EAAQF,KAAKm1H,MAAM12C,QAAQv+E,EAClE,CACAqv8B,sBACI,OAAOvv8B,KAAKm1H,MAAMhzC,OAAQzO,IAAUA,EAAK+03B,WAC7C,CACAkH,gBACI,OAAO3v8B,KAAKm1H,MACPhzC,OAAQzO,GAAUA,EAAKqoG,UAAYroG,EAAK803B,aACxCz3zB,KAAK,CAAC6+zB,EAAOC,IAAUD,EAAM/73B,MAAQg83B,EAAMh83B,MACpD,CACAi83B,iBAAiBC,GACb,MAAO,CAAEA,YACb,CACAC,gBAAgBpB,EAAUhxuB,GACtB,MAAO,CAAEgxuB,WAAUhxuB,OACvB,CACAqyuB,kBAAkBrB,GACd,MAAO,CAAEA,WACb,CACAsB,uBAAuBx83B,EAAMyO,EAAQ2J,IACjC,MAAO,CAAEpY,OAAMyO,SAAQ2J,WAC3B,CACAqk3B,mBAAmBvB,GACf,MAAO,CAAEA,WACb,CACAwB,eAAexB,EAAUzwqB,GACrB,MAAO,CAAEywqB,WAAUzwqB,WACvB,CACAkyqB,cAAclyqB,GACV,MAAO,CAAEA,WACb,CACAmyqB,cAAc583B,EAAM9E,EAAUzc,GAAQ6d,GAClC,MAAO,CAAE0D,OAAM9E,WAAUzc,UAAQ6d,UACrC,CACAug4B,YAAY783B,EAAM9E,EAAUzc,GAAQ6d,GAChC,MAAO,CAAE0D,OAAM9E,WAAUzc,UAAQ6d,UACrC,CACAwg4B,aAAa983B,EAAM9E,EAAUzc,GAAQ6d,GACjC,MAAO,CAAE0D,OAAM9E,WAAUzc,UAAQ6d,UACrC,CACAyg4B,eAAe/83B,EAAM9E,EAAUzc,GAAQ6d,GACnC,MAAO,CAAE0D,OAAM9E,WAAUzc,UAAQ6d,UACrC,CACA0g4B,gBAEA,CACArC,gBAAgB363B,GACZ,QAASA,GAAMvqE,MAAQnJ,KAAK8rF,QAAQsi3B,kBAAwE,IAArDpu8B,KAAK8rF,QAAQsi3B,iBAAiB3v3B,QAAQ/K,EAAKvqE,MACtG,CACA8k8B,gBAAgBv63B,GACZ,QAAS1zE,KAAK8rF,QAAQki3B,aAAet63B,EAAK8vD,KAAOxjI,KAAK8rF,QAAQki3B,YAClE,CACAG,gBAAgBz63B,GACZ,QAAS1zE,KAAK8rF,QAAQoi3B,kBACoD,IAAtElu8B,KAAK8rF,QAAQoi3B,gBAAgBzv3B,QAAQqr3B,GAASM,aAAa123B,IACnE,CACAs13B,aAAat13B,EAAM9E,EAAUzc,GAAQ6d,GACjC0D,EAAKonF,SAASlsF,EAAUzc,GAAQ6d,GAChChwE,KAAKuw8B,YAAY783B,EAAM9E,EAAUzc,GAAQ6d,EAC7C,CACA+43B,gBAAgBr13B,EAAM9E,EAAUzc,GAAQ6d,GACpC0D,EAAK8iE,YAAY5nE,EAAUzc,GAAQ6d,GACnChwE,KAAKyw8B,eAAe/83B,EAAM9E,EAAUzc,GAAQ6d,GAC5C,MAAMixnB,EAAWjhsB,KAAK2v8B,gBAAgB,GACtC3v8B,KAAKwo8B,aAAc,EACfvnQ,EACAA,EAASjvI,UAGbhyjB,KAAK0w8B,gBACL1w8B,KAAKm+R,SAAWn+R,KAAKiv8B,oBACrBjv8B,KAAK69O,UACT,CACA8ytB,eAAeC,GACX,OAAQ/34B,GACAA,EACO+34B,EAAc/34B,EAAKulC,qBAAkB/9F,EAEzCuw8B,CAEf,CACAC,cAAcn93B,GAGV,MAAMskE,EAAOh4I,KACPyvF,GAAM/b,EAAK273B,KAAO,IAAI3/2B,eAC5B,IAAIoh3B,EAEJ,GADA9w8B,KAAK+w8B,oBAAoBr93B,GACM,iBAApBA,EAAKk13B,MAAMpl0B,KAClB,MAAM,IAAI0sJ,UAAU,yCAExB,GAAKlwR,KAAK8rF,QAAQ6h3B,iBAuBV3t8B,KAAK8rF,QAAQ8h3B,qBACbkD,EAAW9w8B,KAAK8rF,QAAQ8h3B,mBAAmBl63B,QAxBf,CAChCo93B,EAAW,IAAIxkZ,SACftsjB,KAAKgx8B,iBAAiBt93B,EAAMo93B,GAC5B,MAAMG,EAAaA,IAAMH,EAASj32B,OAAOnmB,EAAKkqL,MAAOlqL,EAAKk13B,MAAOl13B,EAAKu9B,KAAKp4C,MACtE74D,KAAK8rF,QAAQol3B,uBACdD,SAGqC5w8B,IAArCL,KAAK8rF,QAAQql3B,qBACb363B,OAAO0Q,KAAKlnF,KAAK8rF,QAAQql3B,qBAAqBj93B,QAAStU,IACnD,IAAIwx4B,EAAWpx8B,KAAK8rF,QAAQql3B,sBAAsBvx4B,GAE1B,iBAAbwx4B,GAAyBA,EAAS3y3B,QAAQ,kBAAoB,GAAK/K,EAAKu9B,MAAMp4C,OACrFu44B,EAAWA,EAAS9q5B,QAAQ,gBAAiBotB,EAAKu9B,KAAKp4C,OAE3Di44B,EAASj32B,OAAOj6B,EAAKwx4B,EAAQ,GAGjCH,GAAcjx8B,KAAK8rF,QAAQol3B,uBAC3BD,GAER,CAkCA,GA5BAxh3B,GAAIuie,OAAOz0Z,WAAclpE,IACrB,MAAM8pM,EAAWhiN,KAAKC,MAAMiY,EAAMy9d,iBAAkC,IAAfz9d,EAAMi7d,OAAej7d,EAAMmvD,MAAQ,GACxFxjJ,KAAKqx8B,gBAAgB393B,EAAMyqN,EAAQ,EAEvC1uM,GAAIK,OAAS,KACT,MAAM9f,EAAUhwE,KAAKsx8B,cAAc7h3B,GAAI+he,yBACjC5if,EAAW5uE,KAAKux8B,mBAAmB9h3B,GAAI7gB,SAAUoB,GAGvDhwE,KADe,MADFA,KAAKwx8B,eAAe/h3B,GAAIt9B,QAAU,UAAY,eAE9CuhB,EAAM9E,EAAU6gB,GAAIt9B,OAAQ6d,GACzChwE,KAAK+o8B,gBAAgBr13B,EAAM9E,EAAU6gB,GAAIt9B,OAAQ6d,EAAO,EAE5Dyf,GAAIO,QAAU,KACV,MAAMhgB,EAAUhwE,KAAKsx8B,cAAc7h3B,GAAI+he,yBACjC5if,EAAW5uE,KAAKux8B,mBAAmB9h3B,GAAI7gB,SAAUoB,GACvDhwE,KAAKgp8B,aAAat13B,EAAM9E,EAAU6gB,GAAIt9B,OAAQ6d,GAC9ChwE,KAAK+o8B,gBAAgBr13B,EAAM9E,EAAU6gB,GAAIt9B,OAAQ6d,EAAO,EAE5Dyf,GAAI5B,QAAU,KACV,MAAM7d,EAAUhwE,KAAKsx8B,cAAc7h3B,GAAI+he,yBACjC5if,EAAW5uE,KAAKux8B,mBAAmB9h3B,GAAI7gB,SAAUoB,GACvDhwE,KAAKyx8B,cAAc/93B,EAAM9E,EAAU6gB,GAAIt9B,OAAQ6d,GAC/ChwE,KAAK+o8B,gBAAgBr13B,EAAM9E,EAAU6gB,GAAIt9B,OAAQ6d,EAAO,EAExD0D,EAAKsY,QAAUtY,EAAKrtB,KACpBopC,GAAIE,KAAKjc,EAAKsY,OAAQtY,EAAKrtB,KAAK,GAEpCopC,GAAIve,gBAAkBwC,EAAKxC,gBACvBlxE,KAAK8rF,QAAQ9b,QACb,UAAW6f,KAAU7vF,KAAK8rF,QAAQ9b,QAC9Byf,GAAIG,iBAAiBC,EAAOh3B,KAAMg3B,EAAO3vF,OAGjD,GAAIwzE,EAAK1D,QAAQ6C,OACb,UAAWgd,KAAUnc,EAAK1D,QACtByf,GAAIG,iBAAiBC,EAAOh3B,KAAMg3B,EAAO3vF,OAG7CF,KAAK2xM,WAAa3xM,KAAK8t8B,iBACvBr+2B,GAAIG,iBAAiB5vF,KAAK8t8B,gBAAiB9t8B,KAAK2xM,WAEpDliH,GAAIonE,mBAAqB,WACjBpnE,GAAI8E,YAAc7E,eAAeonE,MACjC9e,EAAKppE,SAASohF,KAAKvgE,GAAIM,aAE/B,EACI/vF,KAAK8rF,QAAQ+h3B,0BACbiD,EAASpv2B,KAAMxG,GAAWzL,GAAI1D,KAAK3W,KAAK2nB,UAAU7B,KAGlDzL,GAAI1D,KAAK+k3B,GAEb9w8B,KAAK69O,SACT,CACAoxtB,kBAAkB/u8B,EAAQ,GACtB,GAAIF,KAAK8rF,QAAQ692B,kBACb,OAAOzp8B,EAEX,MAAMwx8B,EAAc1x8B,KAAKuv8B,sBAAsB183B,OAEzCsnP,EAAQ,IAAMn6T,KAAKm1H,MAAMtiD,OAE/B,OAAOsJ,KAAKC,OAHKs13B,EAAc1x8B,KAAKm1H,MAAMtiD,OAAS6+3B,EAAc1x8B,KAAKm1H,MAAMtiD,QAG/CsnP,EADbj6T,EAAQi6T,EAAQ,IAEpC,CACAs0oB,YAAYh5hB,GACR,IAAKA,EACD,OAAOz1a,KAAK8rF,SAAS2pV,SAAW,GAEpC,GAAIlya,MAAMujD,QAAQ2uX,GACd,OAAOA,EAEX,GAAuB,iBAAZA,EAAsB,CAC7B,MAAM13I,EAAQ03I,EAAQx0T,MAAM,YAC5B,OAAOjhH,KAAK8rF,SAAS2pV,SAAW,GAC3BtzV,OAAQA,KAA2C,IAAhC47M,GAAOt/M,QAAQ0D,GAAOtpB,MAClD,CACA,OAAO74D,KAAK8rF,SAAS2pV,SAAW,EACpC,CACA53L,UAEA,CACAkwtB,oBACI,YAAmC1t8B,IAA5BL,KAAK8rF,QAAQ6l3B,YAA4B3x8B,KAAKm1H,MAAMtiD,OAAS7yE,KAAK8rF,QAAQ6l3B,UACrF,CACAhD,aAAa191B,EAAMwkU,EAAS3pV,IACxB,OAAA9rF,KAAK8u8B,kBAAmB,GAChBr5hB,EAAQ5iW,QAAgB4iW,EAAQ7yV,MAAOT,IACN,iBAA1BniF,KAAK8u8B,kBACZ9u8B,KAAK8u8B,mBAEF3s3B,EAAO6rC,GAAGjU,KAAK/5G,KAAMixG,EAAMnlB,KAE1C,CACA0l3B,eAAer/4B,GACX,OAAQA,GAAU,KAAOA,EAAS,KAAmB,MAAXA,CAC9C,CACAo/4B,mBAAmB3i4B,EAAUoB,GACzB,OAAOpB,CACX,CACA0i4B,cAActh4B,GACV,MAAMym0B,EAAS,CAAC,EAChB,IAAI720B,GACAiV,EACArF,EACJ,OAAKQ,GAGLA,EAAQ6M,MAAM,MAAM1G,IAAKmsD,IACrB9yD,EAAI8yD,EAAK7jD,QAAQ,KACjB7e,GAAM0iE,EAAKvoD,MAAM,EAAGvK,GAAGuQ,OAAOqe,cAC9BvpB,EAAMytD,EAAKvoD,MAAMvK,EAAI,GAAGuQ,OACpBngB,KACA620B,EAAO720B,IAAO620B,EAAO720B,IAAO620B,EAAO720B,IAAO,KAAOiV,EAAMA,KAGxD4h0B,CACX,CACAs4D,wBAAwBr73B,EAAMyO,EAAQ2J,IAClC9rF,KAAKkw8B,uBAAuBx83B,EAAMyO,EAAQ2J,GAC9C,CACA+i3B,mBAAmBn73B,GACf1zE,KAAKiw8B,kBAAkBv83B,EAC3B,CACAs73B,kBAAkBtn3B,GACd1nF,KAAK8v8B,iBAAiBpo3B,EAC1B,CACAqp3B,oBAAoBr93B,GAChBA,EAAK613B,kBACLvp8B,KAAKmw8B,mBAAmBz83B,EAC5B,CACAs93B,iBAAiBt93B,EAAMkqJ,GACnBlqJ,EAAK813B,aAAa5ruB,GAClB59N,KAAKgw8B,gBAAgBt83B,EAAMkqJ,EAC/B,CACAyzuB,gBAAgB393B,EAAMyqN,GAClB,MAAM36I,GAAQxjJ,KAAKiv8B,kBAAkB9wqB,GACrCn+R,KAAKm+R,SAAW36I,GAChB9vE,EAAK+13B,YAAYtrqB,GACjBn+R,KAAKow8B,eAAe183B,EAAMyqN,GAC1Bn+R,KAAKqw8B,cAAc7szB,IACnBxjJ,KAAK69O,SACT,CACA+ztB,eAAel+3B,EAAM9E,EAAUzc,GAAQ6d,GACnC0D,EAAK0nF,WAAWxsF,EAAUzc,GAAQ6d,GAClChwE,KAAKsw8B,cAAc583B,EAAM9E,EAAUzc,GAAQ6d,EAC/C,CACAyh4B,cAAc/93B,EAAM9E,EAAUzc,GAAQ6d,GAClC0D,EAAKg23B,UAAU963B,EAAUzc,GAAQ6d,GACjChwE,KAAKww8B,aAAa983B,EAAM9E,EAAUzc,GAAQ6d,EAC9C,EACH,IAEK6h4B,GAAiB,MAAvB,MAAMA,EACFrv8B,YAAY8rM,GACRtuM,KAAK8x8B,SAAW,IAAI1yvB,MAEpBp/M,KAAK+x8B,WAAa,IAAI3yvB,MACtBp/M,KAAKsuM,QAAUA,CACnB,CACA4Y,aACI,OAAOlnN,KAAKso8B,UAAUx82B,OAC1B,CACAkm3B,aACI,MAAO,EACX,CACA3iJ,OAAOh7tB,GACH,MAAM492B,GAAWjy8B,KAAKky8B,aAAa792B,GACnC,IAAK492B,GACD,OAEJ,MAAMnm3B,EAAU9rF,KAAKknN,aACfuuN,EAAUz1a,KAAKgy8B,aACrBhy8B,KAAKmy8B,gBAAgB992B,GACjBvI,GACA9rF,KAAKso8B,UAAUgG,WAAW2D,GAAS1D,MAAOzi3B,EAAS2pV,GAEvDz1a,KAAK8x8B,SAAS9hzB,MAAK,GACnBhwJ,KAAK+x8B,WAAW/hzB,KAAKiizB,GAAS1D,MAClC,CACAxqtB,WAAW1vJ,GACP,MAAM492B,GAAWjy8B,KAAKky8B,aAAa792B,GAC9Br0F,KAAKoy8B,WAAWH,GAAS5koB,SAG9B4koB,GAASI,WAAa,OACtBry8B,KAAKmy8B,gBAAgB992B,GACrBr0F,KAAK8x8B,SAAS9hzB,MAAK,GACvB,CACAi0F,YAAY5vJ,GACJr0F,KAAKsuM,SACDj6G,EAAM8wM,gBAAkBnlS,KAAKsuM,QAAQ,KAI7CtuM,KAAKmy8B,gBAAgB992B,GACrBr0F,KAAK8x8B,SAAS9hzB,MAAK,GACvB,CACAkizB,aAAa792B,GACT,OAAOA,EAAMi+2B,aAAej+2B,EAAMi+2B,aAAej+2B,EAAM8zM,cAAcmqqB,YACzE,CACAH,gBAAgB992B,GACZA,EAAM2vJ,iBACN3vJ,EAAM4tI,iBACV,CACAmwuB,WAAW/koB,GACP,QAAKA,IAGDA,EAAM5uP,SAC4B,IAA3B4uP,EAAM5uP,QAAQ,WAEhB4uP,EAAMlpF,UACJkpF,EAAMlpF,SAAS,SAK9B,QACSnkP,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF27sB,GAAV9k5B,MAA6CA,OAAa,CAA8C,QAC/L/sD,KAAKipiB,UADkFl8e,MAAE,CAAA5jD,KACJ0o8B,EAAiB5xvB,UAAA,wBAAA4hB,aAAA,SAAA/yG,GAAAqlB,GAAA,EAAArlB,IADf/hE,MAAE,gBAAAqxJ,GAAA,OACJjqE,EAAAk7qB,OAAAjxmB,EAAc,EADZrxJ,CACe,oBAAAqxJ,GAAA,OAAjBjqE,EAAA4vG,WAAA3lC,EAAkB,EADhBrxJ,CACe,qBAAAqxJ,GAAA,OAAjBjqE,EAAA8vG,YAAA7lC,EAAmB,EAAF,EAAA8B,OAAA,CAAAoovB,SAAA,YAAAnovB,QAAA,CAAA2xvB,SAAA,WAAAC,WAAA,eAAsQ,EACxX,OApEKF,CAAiB,KAyFjBU,GAAmB,MAAzB,MAAMA,EACF/v8B,YAAY8rM,GAERtuM,KAAKwy8B,eAAiB,IAAIpzvB,MAC1Bp/M,KAAKsuM,QAAUA,CACnB,CACA4Y,aACI,OAAOlnN,KAAKso8B,UAAUx82B,OAC1B,CACAkm3B,aACI,MAAO,EACX,CACAS,wBACI,QAASzy8B,KAAKsuM,QAAQoX,cAAcknM,WAAWhnF,QACnD,CACAvmH,WACI,MAAMkvvB,EAAQvu8B,KAAKsuM,QAAQoX,cAAc6ovB,MACnCzi3B,GAAU9rF,KAAKknN,aACfuuN,EAAUz1a,KAAKgy8B,aACrBhy8B,KAAKso8B,UAAUgG,WAAWC,EAAOzi3B,GAAS2pV,GAC1Cz1a,KAAKwy8B,eAAexizB,KAAKu+yB,GACrBvu8B,KAAKyy8B,0BACLzy8B,KAAKsuM,QAAQoX,cAAcxlN,MAAQ,GAE3C,QACSF,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFq8sB,GAhDVxl5B,MAgD+CA,OAAa,CAA8C,QACjM/sD,KAAKipiB,UAjDkFl8e,MAAE,CAAA5jD,KAiDJop8B,EAAmBtyvB,UAAA,0BAAA4hB,aAAA,SAAA/yG,GAAAqlB,GAAA,EAAArlB,IAjDjB/hE,MAAE,2BAiDJonF,EAAAkrE,UAAU,EAAS,EAAAa,OAAA,CAAAoovB,SAAA,YAAAnovB,QAAA,CAAAqyvB,eAAA,mBAAkL,EACtS,OA3BKD,CAAmB,KAwCnB7wtB,GAAgB,MAAtB,MAAMA,SACO1hP,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFxU,EAAgB,CAAoD,QACrK1hP,KAAK6hR,UAjEkF90N,KAAE,CAAA5jD,KAiESu4O,GAAyJ,QAC3P1hP,KAAK8hR,UAlEkF/0N,MAAE,CAAAo0L,QAAA,CAkEqCC,OAAkB,EAC5J,OAJKM,CAAgB,8HC10BtB,MAAMgxtB,GAAkB,IAAIjqa,MAAe,mBACrCkqa,EAAa,IAAIlqa,MAAe,uBAChCmqa,GAAiB,IAAInqa,MAAe,2BACpCoqa,GAAgB,CAClB12uB,OAAQ,GACRlhD,OAAQ,GACRj9F,kBAAmB,IACnBC,cAAe,CAAC,IAAK,KACrB603B,iBAAiB,EACjBC,cAAc,EACdC,eAAe,EACfC,qBAAsB,IACtBC,uBAAuB,EACvBC,iBAAa9y8B,EACb+y8B,oBAAqB,GACrBC,eAAgB,GAChBnytB,sBAAsB,EACtBoytB,YAAY,EAEZC,kBAAmB,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACrFC,kBAAkB,EAClBC,KAAK,EACLC,UAAU,EACVC,wBAAwB,EACxBC,qBAAqB,EACrBC,iBAAmB3z8B,GAAUA,EAC7B4z8B,kBAAoB5z8B,GAAUA,EAC9B6z8B,WAAY,IAAI30vB,MAChB6iL,SAAU,CACN,EAAK,CACDnE,QAAS,IAAIn2P,OAAO,QAExB,EAAK,CACDm2P,QAAS,IAAIn2P,OAAO,OACpBo5H,UAAU,GAEd65B,EAAG,CACCkjG,QAAS,IAAIn2P,OAAO,OACpBgjR,OAAQ,KAEZxqB,EAAG,CACCrC,QAAS,IAAIn2P,OAAO,gBAExBw5P,EAAG,CACCrD,QAAS,IAAIn2P,OAAO,aAExB05P,EAAG,CACCvD,QAAS,IAAIn2P,OAAO,UAExBi5P,EAAG,CACC9C,QAAS,IAAIn2P,OAAO,UAExBhxD,EAAG,CACCmnT,QAAS,IAAIn2P,OAAO,QAExBkrG,EAAG,CACCirJ,QAAS,IAAIn2P,OAAO,QAExBk5P,EAAG,CACC/C,QAAS,IAAIn2P,OAAO,QAExB64P,EAAG,CACC1C,QAAS,IAAIn2P,OAAO,QAExB9Z,EAAG,CACCiwQ,QAAS,IAAIn2P,OAAO,QAExBzuC,EAAG,CACC4kS,QAAS,IAAIn2P,OAAO,UAI1Bqs0B,GAAY,CACd,WACA,QACA,SAEEC,GAAoB,CACtB,UACA,KACA,KACA,KACA,YACA,aACA,QACA,KACA,MACF,IAEIC,EAAqB,MAA3B,MAAMA,EACF1x8B,cACIxC,KAAKq4K,WAAU4+D,OAAOy7tB,IACtB1y8B,KAAKkz8B,sBAAwBlz8B,KAAKq4K,QAAQ66xB,sBAC1Clz8B,KAAKmz8B,YAAcnz8B,KAAKq4K,QAAQ86xB,YAChCnz8B,KAAK8y8B,gBAAkB9y8B,KAAKq4K,QAAQy6xB,gBACpC9y8B,KAAKuz8B,kBAAoBvz8B,KAAKq4K,QAAQk7xB,kBACtCvz8B,KAAKiiY,SAAWjiY,KAAKq4K,QAAQ4pN,SAC7BjiY,KAAKi7K,OAASj7K,KAAKq4K,QAAQ4C,OAC3Bj7K,KAAKm8N,OAASn8N,KAAKq4K,QAAQ8jD,OAC3Bn8N,KAAKg+E,kBAAoBh+E,KAAKq4K,QAAQr6F,kBACtCh+E,KAAKi+E,cAAgBj+E,KAAKq4K,QAAQp6F,cAClCj+E,KAAKgz8B,cAAgBhz8B,KAAKq4K,QAAQ26xB,cAClChz8B,KAAKiz8B,qBAAuBjz8B,KAAKq4K,QAAQ46xB,qBACzCjz8B,KAAKsz8B,WAAatz8B,KAAKq4K,QAAQi7xB,WAC/Btz8B,KAAKqz8B,eAAiBrz8B,KAAKq4K,QAAQg7xB,eACnCrz8B,KAAKkhP,qBAAuBlhP,KAAKq4K,QAAQ6oE,qBACzClhP,KAAKwz8B,iBAAmBxz8B,KAAKq4K,QAAQm7xB,iBACrCxz8B,KAAK0z8B,SAAW1z8B,KAAKq4K,QAAQq7xB,SAC7B1z8B,KAAKyz8B,IAAMzz8B,KAAKq4K,QAAQo7xB,IACxBzz8B,KAAK6z8B,iBAAmB7z8B,KAAKq4K,QAAQw7xB,iBACrC7z8B,KAAK8z8B,kBAAoB9z8B,KAAKq4K,QAAQy7xB,kBACtC9z8B,KAAK2z8B,uBAAyB3z8B,KAAKq4K,QAAQs7xB,uBAC3C3z8B,KAAKm08B,OAAS,IAAIjw8B,IAClBlE,KAAKo08B,iBAAkB,EACvBp08B,KAAKq08B,eAAiB,GACtBr08B,KAAK8hoB,YAAc,GACnB9hoB,KAAKs08B,qBAAuB,GAC5Bt08B,KAAKoz8B,oBAAsB,GAC3Bpz8B,KAAKu08B,yBAA0B,EAC/Bv08B,KAAKw08B,sBAAwB,CAACj8sB,EAAKk8sB,EAAuBC,GAAcv7jB,MACpE,IAAI1nU,GAAI,GACJkj4B,GAAc,GAClB,GAAIpx8B,MAAMujD,QAAQ4t5B,IAAe,CAC7B,MAAME,GAAS,IAAIjt0B,OAAO+s0B,GAAav+3B,IAAKm0C,IAAO,eAAe7rC,QAAQ6rC,KAAM,EAAI,KAAKA,KAAMA,IAAIpsC,KAAK,MACxGzM,GAAI8mL,EAAI17K,MAAM+33B,IACdD,GAAcp8sB,EAAIt3I,MAAM2z1B,MAAU,IAAM,EAC5C,MAEInj4B,GAAI8mL,EAAI17K,MAAM633B,IACdC,GAAcD,GAElB,MAAM7ge,GAAWpia,GAAEoB,OAAS,EAAI,GAAG8h4B,KAAclj4B,GAAE,KAAO,GAC1D,IAAIilF,GAAMjlF,GAAE,IAAM,GAClB,MAAM4h4B,GAAiBrz8B,KAAKqz8B,eAAe/s5B,QAAQ,MAAO,IACtD+s5B,KAAmBA,KAEf38yB,GADW,MAAXA,GAAI,GACE,IAAIA,GAAI38E,MAAM,EAAG28E,GAAI7jF,QAAQkH,MAAM,EAAGs53B,GAAexg4B,UAGrD6jF,GAAI38E,MAAM,EAAGs53B,GAAexg4B,SAG1C,MAAMgi4B,GAAM,eACZ,KAAOJ,GAAyBI,GAAIzx0B,KAAKszB,KACrCA,GAAMA,GAAIpwG,QAAQuu5B,GAAK,KAAOJ,EAAwB,MAE1D,YAAkBp08B,IAAd84Y,GACOziP,GAAMm9U,GAEM,IAAd16F,GACEziP,GAEJA,GAAMm9U,GAAS94Z,UAAU,EAAGo+T,GAAY,EAAC,EAEpDn5Y,KAAK23S,WAAcp/C,IACf,MAAMu8sB,EAAev8sB,EAAIjyM,QAAQ,IAAK,KAChCpmD,GAAQ+5E,OAAOj6E,KAAKkhP,sBAAwBqX,EAAIjmL,SAAS,KACzDwi4B,EAAa/63B,MAAM,EAAGw+K,EAAI1lL,QAC1Bii4B,GACN,OAAQ720B,MAAM/9H,KAAUA,IAAS,GAAKA,IAAS,KAEnDF,KAAK+08B,aAAgBV,IACjB,MAAM5i4B,EAAI4i4B,EAAex33B,MAAM,KAC/B,OAAIpL,EAAEoB,OAAS,EACJoH,OAAOxI,EAAEA,EAAEoB,OAAS,IAExByvV,KAEXtia,KAAKg18B,qBAAwBz2vB,IACzB,QAAS/uI,EAAIxvE,KAAKm8N,QAAQtpJ,OAAS,EAAGrD,GAAK,EAAGA,IAAK,CAC/C,MAAM87M,GAAStrR,KAAKm8N,OAAOphJ,UAAUvL,EAAGxvE,KAAKm8N,QAAQtpJ,QACrD,GAAI0rI,EAAWjsI,SAASg5M,KACpB97M,IAAMxvE,KAAKm8N,QAAQtpJ,OAAS,IAC3BrD,EAAI,EAAI,IACJ+uI,EAAWjsI,SAAStyE,KAAKm8N,OAAOphJ,UAAUvL,EAAI,EAAGxvE,KAAKm8N,QAAQtpJ,UACnE,OAAO0rI,EAAWj4J,QAAQglO,GAAQ,GAE1C,CACA,OAAO/sE,GAEXv+M,KAAKi18B,oBAAsB,CAAC12vB,EAAY46L,EAAWl7T,MAC/C,GAAIk7T,EAAYmpB,IAAU,CAEtB,GAAI/+Z,MAAMujD,QAAQm3B,IAAgB,CAC9B,MAAMkkO,GAASlkO,GAAcmC,KAAM803B,IAAOA,KAAOl18B,KAAKg+E,mBAEtDC,GAAgBkkO,IAAkBlkO,GAAc,EACpD,CACA,MAAMk33B,GAAiB,IAAIxt0B,OAAO3nI,KAAKo18B,wBAAwBn33B,IAAiB,OAAOk7T,SACjFk8jB,GAAiB92vB,EAAWt9F,MAAMk01B,IAClCG,IAAwBD,IAAkBA,GAAe,IAAIxi4B,SAAW,EAC1Eyi4B,GAAuB,EAAIn8jB,IAG3B56L,EAAaA,EAAWxjI,UAAU,EAAGwjI,EAAW1rI,QAFnCyi4B,GAAuB,EAAIn8jB,KAI1B,IAAdA,GACAn5Y,KAAKu18B,mBAAmBh3vB,EAAWA,EAAW1rI,OAAS,GAAIoL,GAAej+E,KAAKg+E,qBAE/EugI,EAAaA,EAAWxjI,UAAU,EAAGwjI,EAAW1rI,OAAS,GAEjE,CACA,OAAO0rI,EAEf,CACAi3vB,qBAAqBj3vB,EAAYk3vB,GAC7B,MAAOzmf,GAAM0mf,IAAiBD,EAC9B,OAAAz18B,KAAK018B,cAAgBA,GACd118B,KAAK8/M,UAAUvB,EAAYywQ,GACtC,CACAlvQ,UAAUvB,EAAY81vB,EAAgBpgqB,GAAW,EAAG0hqB,IAAa,EAAOC,IAAa,EAErF/9zB,GAAKA,QACD,IAAKw8zB,GAAwC,iBAAf91vB,EAC1B,MAAO,GAEX,IAAIm7F,GAAS,EACTx+M,GAAS,GACTjpB,IAAQ,EACR4j4B,IAAiB,EACjB502B,GAAQ,EACR602B,IAAW,EACXv3vB,EAAWxkI,MAAM,EAAG/5E,KAAKi7K,OAAOpoG,UAAY7yE,KAAKi7K,SAEjDsjC,EAAaA,EAAWxkI,MAAM/5E,KAAKi7K,OAAOpoG,OAAQ0rI,EAAW1rI,SAE3D7yE,KAAKm8N,QAAU5d,GAAY1rI,OAAS,IAEtC0rI,EAAav+M,KAAKg18B,qBAAqBz2vB,IAExB,MAAfA,GAAsBv+M,KAAKi7K,SAE3BsjC,EAAa,IAEjB,MAAMw3vB,GAAax3vB,EAAW3rI,WAAWiK,MAAM,IAK/C,GAJI78E,KAAKkhP,sBACoC,MAAzC3iC,EAAWxkI,MAAM2/N,GAAQA,GAAS,KAClCx+M,IAAUqjH,EAAWxkI,MAAM2/N,GAAQA,GAAS,IAEzB,OAAnB26pB,EAAiD,CACjD,MAAM2B,GAAWz3vB,EAAW1hI,MAAM,KAClC78E,KAAKi28B,QAAUj28B,KAAKk28B,SAASF,IAE7B3B,EAAiB,iBACrB,CACA,MAAMz/3B,GAAM,GACZ,QAASpF,GAAI,EAAGA,GAAI+uI,EAAW1rI,OAAQrD,KAC/B+uI,EAAW/uI,KAAIyxC,MAAM,QACrBrsC,GAAIjB,KAAK4qI,EAAW/uI,KAAM,IAclC,GAXuB,aAAnB6k4B,IACAr08B,KAAKm28B,aAA8B,KAAfvh4B,GAAI/B,QAAgC,KAAf+B,GAAI/B,OAGzCwh4B,EAFAz/3B,GAAI/B,OAAS,GAEI,qBAIA,kBAGrBwh4B,EAAe7h4B,WAAW,WAAyC,CACnE,GAAI+rI,EAAWt9F,MAAM,gBAEhBs9F,EAAWt9F,MAAM,wCAA0C201B,GAAa,CAEzEr3vB,EAAav+M,KAAKo28B,gBAAgB73vB,GAClC,MAAM46L,GAAYn5Y,KAAK+08B,aAAaV,GAEpC91vB,EAAav+M,KAAKi18B,oBAAoB12vB,EAAY46L,GAAWn5Y,KAAKi+E,cACtE,CACA,MAAMA,GAA8C,iBAAvBj+E,KAAKi+E,cAA6Bj+E,KAAKi+E,cAAgB,IACpF,GAAIsgI,EAAW9/H,QAAQR,IAAiB,IACnCj+E,KAAK23S,WAAWp5F,EAAWxjI,UAAU,EAAGwjI,EAAW9/H,QAAQR,MAAkB,CAC9E,IAAIk9O,GAAO58G,EAAWxjI,UAAU,EAAGwjI,EAAW9/H,QAAQR,IAAiB,GACnEj+E,KAAKkhP,sBACoC,MAAzC3iC,EAAWxkI,MAAM2/N,GAAQA,GAAS,KACjCk8pB,KACDz6oB,GAAO58G,EAAWxjI,UAAU,EAAGwjI,EAAW9/H,QAAQR,MAGtDsgI,EAAa,GAAG48G,KAAO58G,EAAWxjI,UAAUwjI,EAAW9/H,QAAQR,IAAgBsgI,EAAW1rI,SAC9F,CACA,IAAI3yE,GAAQ,GAGLA,GAFPF,KAAKkhP,sBACwC,MAAzC3iC,EAAWxkI,MAAM2/N,GAAQA,GAAS,GACvB,IAAoCn7F,EAAWxkI,MAAM2/N,GAAS,EAAGA,GAASn7F,EAAW1rI,UACrF0rI,EAEXrjH,GADAl7F,KAAK23S,WAAWz3S,IACPF,KAAKq28B,kBAAkB93vB,GAGvBv+M,KAAKq28B,kBAAkB93vB,EAAWxjI,UAAU,EAAGwjI,EAAW1rI,OAAS,GAEpF,SACSwh4B,EAAe7h4B,WAAW,aAA6C,EACxE+rI,EAAWt9F,MAAM,kCACjBs9F,EAAWt9F,MAAM,gCACjBs9F,EAAWt9F,MAAM,gBACjBs9F,EAAWt9F,MAAM,+CACjBs9F,EAAWt9F,MAAM,oBAEjBs9F,EAAav+M,KAAKo28B,gBAAgB73vB,IAEtC,MAAM46L,GAAYn5Y,KAAK+08B,aAAaV,GAC9Bp23B,GAAgB16E,MAAMujD,QAAQ9mD,KAAKi+E,eACnC,IACAj+E,KAAKi+E,cAiEX,GAhEkB,IAAdk7T,GAEA56L,EAAav+M,KAAKkhP,qBACZ3iC,EAAW1rI,OAAS,GACA,MAAlB0rI,EAAW,IACO,MAAlBA,EAAW,IACXA,EAAW,KAAOv+M,KAAKg+E,mBACL,MAAlBugI,EAAW,IACO,MAAlBA,EAAW,GACT,IAAMA,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,QACnB,MAAlB0rI,EAAW,IACTA,EAAW1rI,OAAS,GACpB0rI,EAAW,KAAOv+M,KAAKg+E,mBACL,MAAlBugI,EAAW,IACO,MAAlBA,EAAW,GACTA,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,QAC/B0rI,EACRA,EAAW1rI,OAAS,GACA,MAAlB0rI,EAAW,IACXA,EAAW,KAAOv+M,KAAKg+E,mBACL,MAAlBugI,EAAW,IACO,MAAlBA,EAAW,GACTA,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,QAC/B0rI,GAGNA,EAAW,KAAOtgI,IAAiBsgI,EAAW1rI,OAAS,IAEvD0rI,EACI,IAAuCA,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,OAAS,GACnF7yE,KAAKo08B,iBAAkB,GAEL,MAAlB71vB,EAAW,IACXA,EAAW,KAAOtgI,IAClBsgI,EAAW,KAAOv+M,KAAKg+E,oBAEvBugI,EACIA,EAAW1rI,OAAS,EACd0rI,EAAWxkI,MAAM,EAAG,GAClBkE,GACAsgI,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,OAAS,GAC1C0rI,EACVv+M,KAAKo08B,iBAAkB,GAEvBp08B,KAAKkhP,sBACa,MAAlB3iC,EAAW,KACVA,EAAW,KAAOtgI,IACG,MAAlBsgI,EAAW,MAEfA,EACIA,EAAW,KAAOtgI,IAAiBsgI,EAAW1rI,OAAS,EACjD0rI,EAAWxkI,MAAM,EAAG,GAClB,IACAwkI,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,QACf,MAAlB0rI,EAAW,IACTA,EAAW1rI,OAAS,GACpB0rI,EAAW,KAAOtgI,GAChBsgI,EAAWxkI,MAAM,EAAG,GAClBkE,GACAsgI,EAAWxkI,MAAM,EAAGwkI,EAAW1rI,QACjC0rI,EACdv+M,KAAKo08B,iBAAkB,IAG3BwB,GAAY,CACZ,MAAMU,GAAsB/3vB,EAAWxkI,MAAM/5E,KAAKu28B,4BAA4Bh4vB,GAAaA,EAAW1rI,QAChG2j4B,GAAyD,MAAzBj4vB,EAAW01F,KAC7C11F,EAAW01F,MAAch2N,GACvBw43B,GAAwC,MAAlBl4vB,EAAW,GACjCm4vB,GAAmC,MAAlBn4vB,EAAW,GAC5Bo4vB,GAAoBp4vB,EAAW,KAAOv+M,KAAKg+E,kBAE3C443B,GAAyC,MAAlBr4vB,EAAW,GAClCs4vB,GAA2Bt4vB,EAAW,KAAOtgI,GAC/Cw43B,IAH4Bl4vB,EAAW,KAAOtgI,IAK9Cu43B,IACAviqB,GAAW,IAEX11F,EAAa+3vB,IAEbI,IACAE,IACAC,IACAL,IACAviqB,GAAW,IAEX11F,EAAa,IAAiC+3vB,IAEtB,MAAxBA,KACe,IAAbriqB,KAAmBwiqB,IAAuBE,KACvC328B,KAAKkhP,sBACW,IAAb+yD,IACAyiqB,KACCE,MAETr4vB,EAAam4vB,GACP,IAAiCJ,GACjCA,GAEd,CAGA,MAAMQ,GAA+B928B,KAAKo18B,wBAAwBp18B,KAAKg+E,mBACvE,IAAI+43B,GAAe,2CAA2Czw5B,QAAQww5B,GAA8B,IAEpG,GAAIvz8B,MAAMujD,QAAQ9mD,KAAKi+E,eACnB,UAAWkkO,MAAUniT,KAAKi+E,cACtB843B,GAAeA,GAAazw5B,QAAQtmD,KAAKo18B,wBAAwBjzpB,IAAS,SAI9E40pB,GAAeA,GAAazw5B,QAAQtmD,KAAKo18B,wBAAwBp18B,KAAKi+E,eAAgB,IAE1F,MAAM+43B,GAAoB,IAAIrv0B,OAAO,IAAMov0B,GAAe,KACtDx4vB,EAAWt9F,MAAM+11B,MAEjBz4vB,EAAaA,EAAWxjI,UAAU,EAAGwjI,EAAW1rI,OAAS,IAI7D,MAAMok4B,IADN14vB,EAAav+M,KAAKi18B,oBAAoB12vB,EAAY46L,GAAWn5Y,KAAKi+E,gBACrC33B,QAAQ,IAAIqhF,OAAOmv0B,GAA8B,KAAM,IACpF572B,GAASl7F,KAAKw08B,sBAAsByC,GAAWj38B,KAAKg+E,kBAAmBh+E,KAAKi+E,cAAek7T,IAC3F,MAAM+9jB,EAAah82B,GAAOzc,QAAQ,KAAkC8/H,EAAW9/H,QAAQ,KACjF043B,GAAYj82B,GAAOroB,OAAS0rI,EAAW1rI,OAC7C,GAAIqoB,GAAO+4M,GAAW,KAAOj0S,KAAKg+E,mBAAqBh+E,KAAKi7K,QAAU26xB,GAElE3hqB,IAAsB,UAEjBkjqB,GAAY,GAAKj82B,GAAO+4M,MAAcj0S,KAAKg+E,kBAAmB,CACnE633B,IAAiB,EACjB,IAAI1B,GAAS,EACb,GACIn08B,KAAKm08B,OAAO1g4B,IAAIwgO,GAAWkgqB,IAC3BA,WACKA,GAASgD,GACtB,MACSj82B,GAAO+4M,GAAW,KAAOj0S,KAAKi+E,gBACrB,IAAdk53B,KACc,IAAdA,IACAj82B,GAAO+4M,MAAcj0S,KAAKg+E,mBAC1Bh+E,KAAKm08B,OAAO5g4B,QACZvzE,KAAKm08B,OAAO1g4B,IAAIwgO,GAAW,IAEN,IAAfijqB,GACNjjqB,GAAW,KACT/4M,GAAOzc,QAAQ,MAAmCw1N,IAAYA,GAAW,MACxE/4M,GAAOzc,QAAQ,MAAiCw1N,IAAYA,GAAW,IACtEkjqB,IAAa,GACjBn38B,KAAKm08B,OAAO5g4B,QACZsi4B,IAAiB,EACjB502B,GAAQk22B,GAGRn38B,KAAKm08B,OAAO1g4B,IADZwgO,IAAYkjqB,KAIZn38B,KAAKm08B,OAAO5g4B,OAEpB,MAEI,QAAS/D,GAAI,EAAG4n4B,GAAcrB,GAAW,GAAIvm4B,GAAIum4B,GAAWlj4B,QACpD6mO,KAAW26pB,EAAexh4B,OADkCrD,KAAK4n4B,GAAcrB,GAAWvm4B,KAAM,GAAsC,CAI1I,MAAM6n4B,GAAsB,MAAwCr38B,KAAKiiY,SACzE,GAAIjiY,KAAKs38B,iBAAiBF,GAAa/C,EAAe36pB,KAAW,KAC9B,MAA/B26pB,EAAe36pB,GAAS,GACxBx+M,IAAUk82B,GACV19pB,IAAU,UAE0B,MAA/B26pB,EAAe36pB,GAAS,IAC7BznO,IACAjyE,KAAKs38B,iBAAiBF,GAAa/C,EAAe36pB,GAAS,IAAM,IACjEx+M,IAAUk82B,GACV19pB,IAAU,EACVznO,IAAQ,UAEHjyE,KAAKs38B,iBAAiBF,GAAa/C,EAAe36pB,KAAW,KACnC,MAA/B26pB,EAAe36pB,GAAS,KACvB29pB,GACDn82B,IAAUk82B,GACVnl4B,IAAQ,UAE4B,MAA/Boi4B,EAAe36pB,GAAS,IAC7B15S,KAAKs38B,iBAAiBF,GAAa/C,EAAe36pB,GAAS,IAAM,IACjEx+M,IAAUk82B,GACV19pB,IAAU,UAEL15S,KAAKs38B,iBAAiBF,GAAa/C,EAAe36pB,KAAW,IAAuC,CACzG,GAA+B,MAA3B26pB,EAAe36pB,MACX15S,KAAKyz8B,IAAMx53B,OAAOm93B,IAAe,EAAIn93B,OAAOm93B,IAAe,GAAG,CAE9DnjqB,GAAYj0S,KAAKwz8B,iBAAkCv/pB,GAAfA,GAAW,EAC/CyF,IAAU,EACV15S,KAAKu38B,WAAWlD,EAAgB36pB,GAAQq8pB,GAAWlj4B,QACnDrD,KACIxvE,KAAKwz8B,mBACLt42B,IAAU,KAEd,QACJ,CAEJ,GAA+B,MAA3Bm52B,EAAe36pB,MACX15S,KAAKyz8B,IACgB,IAAlBv42B,GAAOroB,QAAgBoH,OAAOihB,IAAU,GAC3B,MAAXA,IAAkBjhB,OAAOm93B,IAAe,GACQ,IAAhD74vB,EAAWxkI,MAAM2/N,GAAS,EAAGA,IAAQ7mO,QAClCoH,OAAOskI,EAAWxkI,MAAM2/N,GAAS,EAAGA,KAAW,GACT,MAAzCn7F,EAAWxkI,MAAM2/N,GAAS,EAAGA,KAC1Bz/N,OAAOm93B,IAAe,EAChB,MAAXl82B,IAAkBjhB,OAAOm93B,IAAe,IACA,MAArCl82B,GAAOnhB,MAAM2/N,GAAS,EAAGA,KACc,MAArCx+M,GAAOnhB,MAAM2/N,GAAS,EAAGA,KACY,MAArCx+M,GAAOnhB,MAAM2/N,GAAS,EAAGA,KACY,MAArCx+M,GAAOnhB,MAAM2/N,GAAS,EAAGA,MACzBz/N,OAAOm93B,IAAe,GACtB19pB,GAAS,IAAK,CAEtBzF,IAAsB,EACtByF,IAAU,EACVlqO,KACA,QACJ,CAEJ,IAA+B,MAA3B6k4B,EAAe36pB,KACY,MAA3B26pB,EAAe36pB,MACXz/N,OAAOm93B,IAAe,EAAG,CAEzBnjqB,GAAYj0S,KAAKwz8B,iBAAkCv/pB,GAAfA,GAAW,EAC/CyF,IAAU,EACV15S,KAAKu38B,WAAWlD,EAAgB36pB,GAAQq8pB,GAAWlj4B,QACnDrD,KACIxvE,KAAKwz8B,mBACLt42B,IAAU,KAEd,QACJ,CAEJ,MAAMs82B,GAAY,GACZC,GAAmBl5vB,EAAWm7F,IAC9Bg+pB,GAA0Bn5vB,EAAWm7F,GAAS,GAC9Ci+pB,EAA0Bp5vB,EAAWm7F,GAAS,GAC9Ck+pB,GAA2Br5vB,EAAWm7F,GAAS,GAC/Cm+pB,GAA2Bt5vB,EAAWm7F,GAAS,GAC/Co+pB,GAAoCv5vB,EAAWxkI,MAAM2/N,GAAS,EAAGA,GAAS,GAC1Eq+pB,GAAiCx5vB,EAAWxkI,MAAM2/N,GAAS,EAAGA,GAAS,GACvEs+pB,GAA+Bz5vB,EAAWxkI,MAAM2/N,GAAQA,GAAS,GACjEu+pB,GAAgC15vB,EAAWxkI,MAAM2/N,GAAS,EAAGA,IACnE,GAA+B,MAA3B26pB,EAAe36pB,IAA0C,CACzD,MAAMw+pB,GAAoD,OAA/B7D,EAAet63B,MAAM,EAAG,GAC7Co+3B,GAAqD,OAA/B9D,EAAet63B,MAAM,EAAG,IAChD/5E,KAAKuz8B,kBAAkBjh4B,SAASul4B,IACpC,GAAK593B,OAAOm93B,IAAe,GAAKp38B,KAAKwz8B,mBAC/B0E,KACGj+3B,OAAO+93B,IAAgCR,IACpCv93B,OAAO893B,IAAkCP,IACzCx38B,KAAKuz8B,kBAAkBjh4B,SAASol4B,OACvCS,GACKl+3B,OAAO893B,IAAkCP,KACrCx38B,KAAKuz8B,kBAAkBjh4B,SAASml4B,KAC9Bz38B,KAAKuz8B,kBAAkBjh4B,SAASql4B,IACpC338B,KAAKuz8B,kBAAkBjh4B,SAASml4B,IAClCx93B,OAAO+93B,IAAgCR,IACrCx38B,KAAKuz8B,kBAAkBjh4B,SAASol4B,KAA2B,CAEnEzjqB,GAAYj0S,KAAKwz8B,iBAAkCv/pB,GAAfA,GAAW,EAC/CyF,IAAU,EACV15S,KAAKu38B,WAAWlD,EAAgB36pB,GAAQq8pB,GAAWlj4B,QACnDrD,KACIxvE,KAAKwz8B,mBACLt42B,IAAU,KAEd,QACJ,CACJ,CACA,GAA+B,MAA3Bm52B,EAAe36pB,IAA4C,CAG3D,MAAM0+pB,GAAyB,IAAX1+pB,KACfz/N,OAAOm93B,IAAe,GACnBn93B,OAAO+93B,IAAgCK,IACtCr48B,KAAKuz8B,kBAAkBjh4B,SAASol4B,MAC5B9B,IAEP0C,GAAejE,EAAet63B,MAAM2/N,GAAS,EAAGA,GAAS,GACzD6+pB,GAAiBT,GAAkCxl4B,SAASgm4B,KAC9DjE,EAAe/h4B,SAAS,QACtBtyE,KAAKuz8B,kBAAkBjh4B,SAASul4B,KAC9B593B,OAAO893B,IAAkCM,KACxCr48B,KAAKuz8B,kBAAkBjh4B,SAASml4B,KACjCz38B,KAAKuz8B,kBAAkBjh4B,SAASml4B,KAElCe,GAAiBv+3B,OAAO693B,KAAsCN,KAC/Dx38B,KAAKuz8B,kBAAkBjh4B,SAASwl4B,KACjC938B,KAAKuz8B,kBAAkBjh4B,SAASsl4B,MAC/B393B,OAAO+93B,IAAgCK,IACpCr48B,KAAKuz8B,kBAAkBjh4B,SAASol4B,KAElCe,GAAqBx+3B,OAAO+93B,IAAgCK,IAA0B,IAAX3+pB,IAC5E15S,KAAKuz8B,kBAAkBjh4B,SAASol4B,KAClB,IAAXh+pB,GAEFg/pB,GAAiBz+3B,OAAO693B,IAAqCN,KAC9Dx38B,KAAKuz8B,kBAAkBjh4B,SAASwl4B,MAChC938B,KAAKuz8B,kBAAkBjh4B,SAAS2l4B,KACjCh+3B,OAAOg+3B,IAAiCI,IACxChE,EAAe/h4B,SAAS,MAEtBqm4B,GAAiB1+3B,OAAO693B,KAAsCN,KAC/Dx38B,KAAKuz8B,kBAAkBjh4B,SAASwl4B,MAChC938B,KAAKuz8B,kBAAkBjh4B,SAASsl4B,KACjC393B,OAAO893B,IAAkCM,GAC7C,GAAKp+3B,OAAOm93B,IAAe,GAAKp38B,KAAKwz8B,kBACjC4E,IACAG,IACAI,IACAD,IACAF,IACCC,KAAsBz48B,KAAKwz8B,iBAAmB,CAE/Cv/pB,GAAYj0S,KAAKwz8B,iBAAkCv/pB,GAAfA,GAAW,EAC/CyF,IAAU,EACV15S,KAAKu38B,WAAWlD,EAAgB36pB,GAAQq8pB,GAAWlj4B,QACnDrD,KACIxvE,KAAKwz8B,mBACLt42B,IAAU,KAEd,QACJ,CACJ,CACAA,IAAUk82B,GACV19pB,IACJ,MACS15S,KAAKuz8B,kBAAkBjh4B,SAAS8k4B,KACrC/C,EAAe36pB,MAAY09pB,IAC3Bl82B,IAAUk82B,GACV19pB,OAEwG,IAAnG15S,KAAKuz8B,kBAAkB903B,QAAQ413B,EAAe36pB,KAAW,KAC9Dx+M,IAAUm52B,EAAe36pB,IACzBA,KACA15S,KAAKu38B,WAAWlD,EAAgB36pB,GAAQq8pB,GAAWlj4B,QACnDrD,MAEgC,MAA3B6k4B,EAAe36pB,KACpB15S,KAAKgz8B,cACLhz8B,KAAKu38B,WAAWlD,EAAgB36pB,GAAQq8pB,GAAWlj4B,QAE9C7yE,KAAKiiY,SAASoykB,EAAe36pB,KAAW,KAC7C15S,KAAKiiY,SAASoykB,EAAe36pB,KAAW,KAAuC34C,UACzEg1sB,GAAWr8pB,KACM,oBAAnB26pB,GACmB,mBAAnBA,GACmB,uBAAnBA,IACCA,EAAepz1B,MAAM,cACrBjhH,KAAKiiY,SAASoykB,EAAe36pB,KAAW,KACnC34C,WACN7lK,IAAU662B,GAAWr8pB,KAErB26pB,EAAe/h4B,SAAS,OACxB+h4B,EAAe/h4B,SAAS,OACxBonO,KAEJA,KACAlqO,MAEyC,MAApCxvE,KAAKq08B,eAAe36pB,GAAS,IAClC15S,KAAK448B,iBAAiB548B,KAAKq08B,eAAe36pB,GAAS,IAAM,KACzD15S,KAAK448B,iBAAiBxB,MAAiBp38B,KAAKq08B,eAAe36pB,GAAS,IACpEznO,IAIyC,MAApCjyE,KAAKq08B,eAAe36pB,GAAS,IAClC15S,KAAK448B,iBAAiB548B,KAAKq08B,eAAe36pB,GAAS,IAAM,KACzD15S,KAAK448B,iBAAiBxB,MAAiBp38B,KAAKq08B,eAAe36pB,GAAS,IACpEznO,IANAynO,IAAU,EACVx+M,IAAUk82B,IASLp38B,KAAKgz8B,eACVhz8B,KAAKuz8B,kBAAkB903B,QAAQ243B,IAAe,GAC9CA,KAAgBp38B,KAAKiz8B,sBACgB,IAArCjz8B,KAAKiz8B,qBAAqBpg4B,SAC1Bij4B,IAAW,EAEnB,CAEA562B,GAAOroB,OAAS,IAAMwh4B,EAAexh4B,SACiF,IAAtH7yE,KAAKuz8B,kBAAkB903B,QAAQ413B,EAAeA,EAAexh4B,OAAS,IAAM,MAC5EqoB,IAAUm52B,EAAeA,EAAexh4B,OAAS,IAErD,IAAIym3B,GAAcrlpB,GAAW,EAC7B,KAAOj0S,KAAKm08B,OAAOnw8B,IAAIs17B,KACnBr41B,KACAq41B,KAEJ,IAAIuf,GAAclD,KAAetB,EAAe7h4B,WAAW,aACrDknO,GACA15S,KAAKm08B,OAAOnw8B,IAAIiwS,IACZhzM,GACA,EACN602B,IACA+C,KAEJhh0B,GAAGgh0B,GAAahD,IACZ502B,GAAQ,GACRjhG,KAAKm08B,OAAO5g4B,QAEhB,IAAIul4B,IAAc,EACdlD,KACAkD,GAAc/C,GAAWnz3B,MAAOu/e,IAASnikB,KAAKuz8B,kBAAkBjh4B,SAAS6vf,MAE7E,IAAIzra,GAAM,GAAG12J,KAAKi7K,SAAS69xB,GAAc,GAAuC592B,KAASl7F,KAAKgz8B,cAAgB,GAAKhz8B,KAAKm8N,SAClG,IAAlBjhI,GAAOroB,SACP6jF,GAAO12J,KAAKkz8B,sBAAoD,GAAGh42B,KAA/B,GAAGl7F,KAAKi7K,SAAS//E,MAEzD,MAAM692B,GAA0D,IAAtBx6vB,EAAW1rI,QACjD7yE,KAAKuz8B,kBAAkBjh4B,SAAS+h4B,EAAe,KAC/C91vB,IAAe81vB,EAAe,GAClC,IAAKr08B,KAAKs38B,iBAAiB/4vB,EAAY81vB,EAAe,KAClD0E,GACA,MAAO,GAEX,GAAI792B,GAAO5oB,SAAS,MAAmCtyE,KAAKi7K,QAAUj7K,KAAKkhP,qBAAsB,CAC7F,GAAI00tB,IAAyB,MAAX162B,GACd,MAAO,GAEXw7D,GAAM,IAAoC12J,KAAKi7K,SAAS//E,GACnDre,MAAM,KACNqB,KAAK,MAAwCl+E,KAAKm8N,QAC3D,CACA,OAAOzlE,EACX,CACAsizB,qBAAqB5B,GACjB,OAAI7z8B,MAAMujD,QAAQ9mD,KAAKkz8B,uBACZlz8B,KAAKkz8B,sBAAsB9y3B,KAAMvL,GAAQA,IAAQui4B,GAErDp38B,KAAK448B,iBAAiBxB,EACjC,CACAwB,iBAAiBxB,GACb,OAAOp38B,KAAKuz8B,kBAAkBnz3B,KAAMvL,GAAQA,IAAQui4B,EACxD,CACAE,iBAAiBF,EAAa6B,GAC1B,OAAAj58B,KAAKiiY,SAAWjiY,KAAK018B,cAAgB118B,KAAK018B,cAAgB118B,KAAKiiY,UACtDjiY,KAAKiiY,SAASg3kB,IAAan7kB,SAChC99X,KAAKiiY,SAASg3kB,IAAan7kB,QAAQ16P,KAAKg00B,MACxC,CACR,CACAhB,gBAAgB79sB,GACZ,OAAOA,EACF17K,MAAM,IACNsF,OAAO,CAAC3S,EAAGi0C,MACZ,MAAMy11B,GAAgD,iBAAvBl58B,KAAKi+E,cAC9BzO,IAAMxvE,KAAKi+E,cAETj+E,KAAKi+E,cAAc3L,SAAS9C,GACpC,OAAQA,EAAEyxC,MAAM,WACZzxC,IAAMxvE,KAAKg+E,mBACXk73B,IACO,MAAN1p4B,GAAgD,IAARi0C,IAAazjH,KAAKkhP,uBAE9DhjK,KAAK,GACd,CACAk33B,wBAAwBjzY,GAIpB,OAAIA,IAEgB,MAATA,EAAe,MADA,eACsB1jf,QAAQ0jf,IAAS,EAAI,KAAKA,IAASA,EAGvF,CACAo1Y,WAAWlD,EAAgB36pB,EAAQ+0F,IAC/B,MAAM0okB,GAAY,QAAQ/z0B,KAAKix0B,EAAet63B,MAAM,EAAG2/N,IACjD+0F,GACA/0F,EACN15S,KAAKm08B,OAAO1g4B,IAAI0j4B,GAAYn38B,KAAKi7K,OAAOpoG,QAAU,EACtD,CACA0i4B,mBAAmBr18B,EAAOi58B,EAAeC,IACrC,OAAO718B,MAAMujD,QAAQqy5B,GACfA,EAAch33B,OAAQmoC,IAAMA,KAAM8u1B,IAAe9m4B,SAASpyE,GAC1DA,IAAUi58B,CACpB,CACAjD,SAASF,GACL,QAA6B,IAApBA,EAASnj4B,SACbmj4B,EAASx3sB,KAAK,CAACt+P,EAAO2zE,KACfmi4B,EAASnj4B,SAAWgB,GAAQ,EACX,KAAV3zE,GAAkD+5E,OAAO/5E,GAAS,IAE5D,KAAVA,GAAkD+5E,OAAO/5E,EAAM66E,UAAU,EAAG,IAAM,KAErG,CACAs73B,kBAAkBn28B,GACd,GAAc,MAAVA,GAA4CF,KAAKkhP,qBACjD,OAAOhhP,EAEX,MAAMkze,EACAlze,EAAMu+E,QADuC,iBAAvBz+E,KAAKi+E,cACbj+E,KAAKi+E,cACL,KACdo73B,GAAer58B,KAAKkhP,sBAAwBhhP,EAAMoyE,SAAS,KAAkC,IAAM,GACzG,IAAqB,IAAjB8ga,EAAqB,CACrB,MAAMgiQ,GAAc/2pB,SAASg73B,GAAen58B,EAAM65E,MAAM,EAAG75E,EAAM2yE,QAAU3yE,EAAO,IAClF,OAAO+9H,MAAMm3mB,IACP,GACA,GAAGikO,KAAejkO,IAC5B,CACK,CACD,MAAMkkO,GAAcj73B,SAASn+E,EAAMomD,QAAQ,IAAK,IAAIy0B,UAAU,EAAGq4Z,GAAe,IAC1Ew/Z,GAAc1y4B,EAAM66E,UAAUq4Z,EAAe,GAC7Cmme,GAAgBt70B,MAAMq70B,IAAe,GAAKA,GAAY1m4B,WAE5D,MAAyB,KAAlB2m4B,GACD,GACA,GAAGF,KAAeE,KAHsB,iBAAvBv58B,KAAKi+E,cAA6Bj+E,KAAKi+E,cAAgB,MAG5B20zB,IACtD,CACJ,CACA2jE,4BAA4B7pkB,GACxB,QAASl9T,EAAI,EAAGA,EAAIk9T,EAAY75T,OAAQrD,IAAK,CACzC,MAAM2yf,GAAOz1L,EAAYl9T,GACzB,GAAI2yf,IAAQA,IAAQ,KAAOA,IAAQ,IAC/B,OAAO3yf,CAEf,CACA,OAAO,CACX,QACSxvE,KAAKqtD,UAAI,SAAA6oM,GAAA,WAAAA,GAAwFg+sB,EAAqB,CAAsD,QAC5Kl08B,KAAKm2P,WADkFppM,MAAE,CAAAgnC,MACYmg3B,EAAqB9m5B,QAArB8m5B,EAAqB7m5B,WAAK,EAC3I,OA9uBK6m5B,CAAqB,KAmvBrBlztB,EAAc,MAApB,MAAMA,UAAuBkztB,EACzB1x8B,cACIf,SAASo3F,WACT74F,KAAKw58B,eAAgB,EACrBx58B,KAAKy58B,YAAc,GACnBz58B,KAAK058B,SAAW,KAChB158B,KAAK258B,OAAS,KAKd358B,KAAK458B,cAAe,EACpB558B,KAAK658B,aAAc,EACnB758B,KAAK858B,qBAAuB,GAC5B958B,KAAK4z8B,qBAAsB,EAC3B5z8B,KAAKq7vB,eAAiB,GACtBr7vB,KAAK+58B,cAAgB,GACrB/58B,KAAKg68B,YAAa,EAElBh68B,KAAKq/M,SAAYz9M,MACjB5B,KAAK8+nB,eAAc7nZ,OAAO2nW,MAAY,CAAE79U,UAAU,IAClD/gQ,KAAKw5F,YAAWy9I,OAAO4pC,MACvB7gR,KAAKq4K,WAAU4+D,OAAOy7tB,IACtB1y8B,KAAKwmiB,aAAYvvT,OAAOsnX,MAAW,CAAEx9V,UAAU,GACnD,CACAjhD,UAAUvB,EAAY81vB,EAAgBpgqB,GAAW,EAAG0hqB,IAAa,EAAOC,IAAa,EAErF/9zB,GAAKA,QACD,IAAKw8zB,EACD,OAAO91vB,IAAev+M,KAAK8hoB,YAAc9hoB,KAAK8hoB,YAAcvjb,EAWhE,GATAv+M,KAAKy58B,YAAcz58B,KAAKgz8B,cAClBhz8B,KAAKi68B,kBACL,GACsB,OAAxBj68B,KAAKq08B,gBAAmDr08B,KAAKgz8B,gBAC7Dhz8B,KAAKy58B,YAAcz58B,KAAKi68B,gBAAgB17vB,GAAc,MAE9B,aAAxBv+M,KAAKq08B,gBAA+Dr08B,KAAKgz8B,gBACzEhz8B,KAAKy58B,YAAcz58B,KAAKi68B,gBAAgB17vB,GAAc,OAErDA,GAAcv+M,KAAKgz8B,cACpB,OAAAhz8B,KAAKk68B,kBAAkBl68B,KAAKi7K,QACrB,GAAGj7K,KAAKi7K,SAASj7K,KAAKy58B,cAAcz58B,KAAKm8N,SAEpD,MAAM63D,GAAcz1E,GAAuC,iBAAlBv+M,KAAK058B,SACxCn7vB,EAAWv+M,KAAK058B,WAAa,GAC7B,GACN,IAAIS,GAAgB,GACpB,QAAyB958B,IAArBL,KAAKmz8B,cAA8Bnz8B,KAAK458B,aAAc,CACtD,IAAIQ,GAAe77vB,GAAoC,IAAtBA,EAAW1rI,OACtC0rI,EAAW1hI,MAAM,IACjB78E,KAAK8hoB,YAAYjljB,MAAM,IAEA,iBAAlB78E,KAAK058B,UAAgD,iBAAhB158B,KAAK258B,QACjD358B,KAAK058B,SAAWz/3B,OAAOj6E,KAAK058B,UAC5B158B,KAAK258B,OAAS1/3B,OAAOj6E,KAAK258B,SAGX,KAAfp7vB,GAAuD67vB,GAAavn4B,OACrC,iBAAlB7yE,KAAK058B,UAAgD,iBAAhB158B,KAAK258B,SAC7Cp7vB,EAAW1rI,OAASun4B,GAAavn4B,OAC7Bun4B,GAAa5m4B,OAAOxzE,KAAK058B,SAAU,EAAG1lrB,IACtCz1E,EAAW1rI,OAASun4B,GAAavn4B,SAC7Bun4B,GAAavn4B,OAAS0rI,EAAW1rI,QAAW,EAEpCun4B,GAAa5m4B,OADjBoi4B,GACwB518B,KAAK058B,SAAW,EAChBn7vB,EAAW1rI,OAAS,EADD,GAE3Cun4B,GAAa5m4B,OAAOxzE,KAAK058B,SAAU158B,KAAK258B,OAAS358B,KAAK058B,YAGrEU,GAAe,GAEtBp68B,KAAKgz8B,gBACAhz8B,KAAKmz8B,cAEN50vB,EAAav+M,KAAKq68B,WAAW97vB,KAIrC47vB,GACIn68B,KAAK8hoB,YAAYjvjB,QAAUun4B,GAAavn4B,QAAU0rI,EAAW1rI,OACvD7yE,KAAKs68B,kBAAkBF,GAAal83B,KAAK,KACzCqgI,CACd,CAkCA,GAjCIo3vB,KAAe318B,KAAKmz8B,cAAgBnz8B,KAAKmz8B,eACzCgH,GAAgB57vB,GAEhBq3vB,KAC0G,IAA1G518B,KAAKuz8B,kBAAkB903B,QAAQz+E,KAAKq08B,eAAepgqB,KAAa,KAChEj0S,KAAKgz8B,gBACJhz8B,KAAKi7K,SACNk/xB,GAAgBn68B,KAAK+58B,eAErB/58B,KAAKu08B,yBAA2BtgqB,KAC5Bj0S,KAAKuz8B,kBAAkBjh4B,SAAStyE,KAAK8hoB,YAAY/njB,MAAMk6N,GAAUA,GAAW,IAE5EA,IAAsB,EAEoC,OAArDogqB,EAAet63B,MAAMk6N,GAAW,EAAGA,GAAW,KAEnDA,IAAsB,GAE1Bj0S,KAAKu08B,yBAA0B,GAE/Bv08B,KAAKgz8B,eACgC,IAArChz8B,KAAKiz8B,qBAAqBpg4B,SACzB7yE,KAAKwz8B,mBAENj1vB,EAAav+M,KAAKq68B,WAAW97vB,IAG7B47vB,GADAn68B,KAAK658B,YACWt7vB,EAIJ47vB,IAAkBA,GAActn4B,OAASsn4B,GAAgB57vB,EAErEv+M,KAAKgz8B,eACLhz8B,KAAK2z8B,wBACL3z8B,KAAK8hoB,cACJ6zU,KACA318B,KAAK458B,aAAc,CACpB,MAAM158B,GAAQF,KAAKkz8B,sBACblz8B,KAAKq68B,WAAWr68B,KAAK8hoB,aACrB9hoB,KAAK8hoB,YACX,OAAA9hoB,KAAKk68B,kBAAkBh68B,IAChBF,KAAK8hoB,YACN9hoB,KAAK8hoB,YACL,GAAG9hoB,KAAKi7K,SAASj7K,KAAKy58B,cAAcz58B,KAAKm8N,QACnD,CACA,MAAMjhI,GAASz5F,MAAMq+M,UAAUq6vB,GAAe9F,EAAgBpgqB,GAAU0hqB,GAAYC,GAAY/9zB,IA2BhG,GA1BA73I,KAAK8hoB,YAAc9hoB,KAAKu68B,eAAer/2B,IAGR,MAA3Bl7F,KAAKg+E,mBACkB,MAAvBh+E,KAAKi+E,gBACLj+E,KAAKi+E,cAAgB,KAGrBj+E,KAAKq08B,eAAe7h4B,WAAW,eACA,IAA/BxyE,KAAKkz8B,wBACLlz8B,KAAKuz8B,kBAAoBvz8B,KAAKuz8B,kBAAkBpx3B,OAAQzO,KAAU1zE,KAAKu18B,mBAAmB7h4B,GAAM1zE,KAAKi+E,cAAej+E,KAAKg+E,sBAGzHkd,IAAqB,KAAXA,MACVl7F,KAAKq7vB,eAAiBr7vB,KAAK+58B,cAC3B/58B,KAAK+58B,cAAgB7+2B,GACrBl7F,KAAKg68B,WACDh68B,KAAKq7vB,iBAAmBr7vB,KAAK+58B,eACzB/58B,KAAK658B,aACJ758B,KAAKq7vB,iBAAmBr7vB,KAAK+58B,eAAiBpE,IAE3D318B,KAAKg68B,aACCh68B,KAAK458B,cAAgB558B,KAAK4z8B,oBACtB5mjB,sBAAsB,IAAMhtZ,KAAKk68B,kBAAkBh/2B,KACnDl7F,KAAKk68B,kBAAkBh/2B,MAE5Bl7F,KAAKgz8B,eAAkBhz8B,KAAKgz8B,eAAiBhz8B,KAAKmz8B,YACnD,OAAInz8B,KAAKmz8B,YACDyC,GACO518B,KAAKw68B,UAAUt/2B,GAAQl7F,KAAKq08B,gBAEhC,GAAGr08B,KAAKw68B,UAAUt/2B,GAAQl7F,KAAKq08B,kBAAkBr08B,KAAKy58B,YAAY1/3B,MAAMmhB,GAAOroB,UAEnFqoB,GAEX,MAAMu/2B,GAASv/2B,GAAOroB,OAChB6n4B,GAAY,GAAG168B,KAAKi7K,SAASj7K,KAAKy58B,cAAcz58B,KAAKm8N,SAC3D,GAAIn8N,KAAKq08B,eAAe/h4B,SAAS,KAAiC,CAC9D,MAAMqo4B,GAAoB368B,KAAK468B,qBAAqB1/2B,IACpD,MAAO,GAAGA,KAASw/2B,GAAU3g4B,MAAM0g4B,GAASE,KAChD,OACiC,OAAxB368B,KAAKq08B,gBACc,aAAxBr08B,KAAKq08B,eACE,GAAGn52B,KAASw/2B,KAEhB,GAAGx/2B,KAASw/2B,GAAU3g4B,MAAM0g4B,KACvC,CAEAG,qBAAqB168B,GACjB,MAAMijI,EAAQ,gBACd,IAAIliB,GAAQkiB,EAAMrC,KAAK5gI,GACnBy68B,GAAoB,EACxB,KAAgB,MAAT151B,IACH051B,IAAqB,EACrB151B,GAAQkiB,EAAMrC,KAAK5gI,GAEvB,OAAOy68B,EACX,CACAE,kBAAkB5mqB,EAAU0hqB,EAAYC,GAExC/9zB,GAAKA,QACD,MAAMij0B,GAAc968B,KAAK8+nB,aAAap5a,cACjCo1vB,KAGLA,GAAY568B,MAAQF,KAAK8/M,UAAUg7vB,GAAY568B,MAAOF,KAAKq08B,eAAgBpgqB,EAAU0hqB,EAAYC,GAAY/9zB,IACzGij0B,KAAgB968B,KAAK+68B,qBAGzB/68B,KAAKg78B,oBACT,CACAR,UAAUj8vB,EAAY81vB,GAClB,OAAO91vB,EACF1hI,MAAM,IACN1G,IAAI,CAACwgV,GAAM9iV,KACR7zE,KAAKiiY,UACLjiY,KAAKiiY,SAASoykB,EAAexg4B,KAAU,KACvC7zE,KAAKiiY,SAASoykB,EAAexg4B,KAAU,KAAuC82U,OACvE3qZ,KAAKiiY,SAASoykB,EAAexg4B,KAAU,KACxC82U,OAEHgM,IAENz4U,KAAK,GACd,CAEAq83B,eAAe7jzB,GACX,MAAMyhR,EAAUzhR,EACX75E,MAAM,IACNsF,OAAO,CAACwoU,GAAQn7U,MACjB,MAAMyr4B,GAAWj78B,KAAKq08B,eAAe7k4B,KAAM,GAC3C,OAAQxvE,KAAKs38B,iBAAiB3sjB,GAAQswjB,KACjCj78B,KAAKuz8B,kBAAkBjh4B,SAAS2o4B,KAAatwjB,KAAWswjB,KAEjE,OAAI9iiB,EAAQj6V,KAAK,MAA0Cw4E,EAChDyhR,EAAQj6V,KAAK,IAEjBw4E,CACX,CACA4jzB,kBAAkB/7vB,GACd,IAAI28vB,EAAkB,GAkBtB,OAjBuB38vB,GACnBA,EACK1hI,MAAM,IACN1G,IAAI,CAACgl4B,GAAYtn4B,MAClB,GAAI7zE,KAAKuz8B,kBAAkBjh4B,SAASisI,EAAW1qI,GAAQ,IAAM,KACzD0qI,EAAW1qI,GAAQ,KAAO7zE,KAAKq08B,eAAexg4B,GAAQ,GACtDqn4B,SAAkBC,GACX58vB,EAAW1qI,GAAQ,GAE9B,GAAIqn4B,EAAgBro4B,OAAQ,CACxB,MAAMuo4B,GAAgBF,EACtBA,SAAkB,GACXE,EACX,CACA,OAAOD,MAEX,IACiBj93B,KAAK,GAC9B,CAMAm93B,eAAen78B,GACX,OAAMA,GAAmB,IAAVA,GACVF,KAAKq08B,eAAe7h4B,WAAW,eAC3BxyE,KAAK0z8B,WAAa1z8B,KAAKkz8B,wBAC3Blz8B,KAAKq08B,eAAe7h4B,WAAW,cAC5BxyE,KAAKqz8B,eAAexg4B,OAAS,IAC7B4J,OAAOv8E,GAAO2yE,OAAS,GACpB4J,OAAOv8E,GAEX+5E,OAAO/5E,GACTo78B,eAAe,WAAY,CAC5Bzme,aAAa,EACbR,sBAAuB,KAEtB/tb,QAAQ,MAAuC,IACxD,CACA2z5B,gBAAgBsB,GACZ,GAAIv78B,KAAKgz8B,eAAmBhz8B,KAAKoz8B,oBAAqB,CAClD,GAAIpz8B,KAAKq08B,eAAexh4B,SAAW7yE,KAAKoz8B,oBAAoBvg4B,OACxD,MAAM,IAAI/uE,MAAM,sDAGhB,OAAO9D,KAAKoz8B,mBAEpB,IACSpz8B,KAAKgz8B,cAAe,CACzB,GAAIuI,EAAU,CACV,GAA4B,OAAxBv78B,KAAKq08B,eACL,OAAOr08B,KAAKw78B,YAAYD,GAE5B,GAA4B,aAAxBv78B,KAAKq08B,eACL,OAAOr08B,KAAKy78B,iBAAiBF,EAErC,CACA,OAAIv78B,KAAKiz8B,qBAAqBpg4B,SAAW7yE,KAAKq08B,eAAexh4B,OAClD7yE,KAAKiz8B,qBAETjz8B,KAAKq08B,eAAe/t5B,QAAQ,MAAOtmD,KAAKiz8B,qBACnD,CACA,MAAO,EACX,CACA+H,oBACI,MAAMF,EAAc968B,KAAK8+nB,aAAap5a,cACjCo1vB,GAGD968B,KAAK8y8B,iBACL9y8B,KAAKi7K,OAAOpoG,OAAS7yE,KAAKq08B,eAAexh4B,OAAS7yE,KAAKm8N,OAAOtpJ,SAC1Dio4B,EAAY568B,MAAMomD,QAAQtmD,KAAKiz8B,qBAAsB,IAChDpg4B,SACT7yE,KAAK078B,oBAAsB,CAAC,QAAS,IACrC178B,KAAK8/M,UAAU,GAAI9/M,KAAKq08B,gBAEhC,CACA,uBAAIqH,EAAqB7i5B,EAAM34D,KACtBF,KAAKwmiB,YAAcxmiB,KAAK8+nB,aAI7BxviB,QAAQE,UAAUkS,KAAK,IAAM1hG,KAAKwmiB,WAAWtnR,YAAYl/Q,KAAK8+nB,aAAap5a,cAAe7sJ,EAAM34D,GACpG,CACAy78B,2BAA2B3sf,GAIvB,OAHcA,EACTnyY,MAAM,IACNsF,OAAQzO,IAAS1zE,KAAKg58B,qBAAqBtl4B,KACnCb,MACjB,CACAwn4B,WAAW97vB,GACP,OAAOv+M,KAAK478B,YAAY578B,KAAK678B,cAAc778B,KAAK878B,cAAcv9vB,IAAcv+M,KAAKuz8B,kBAAkB3y3B,OAAO,KAAKA,OAAO5gF,KAAKiz8B,sBAC/H,CACAuI,YAAYD,GACR,GAAiB,MAAbA,EACA,MAAO,GAAGv78B,KAAKiz8B,wBAAwBjz8B,KAAKiz8B,wBAAwBjz8B,KAAKiz8B,wBAAwBjz8B,KAAKiz8B,uBAE1G,MAAMr+3B,EAAM,GACZ,QAASpF,GAAI,EAAGA,GAAI+r4B,EAAS1o4B,OAAQrD,KAAK,CACtC,MAAMtvE,GAAQq78B,EAAS/r4B,KAAM,GACxBtvE,IAGDA,GAAM+gH,MAAM,QACZrsC,EAAIjB,KAAKzzE,GAEjB,CACA,OAAI00E,EAAI/B,QAAU,EACP,GAAG7yE,KAAKiz8B,wBAAwBjz8B,KAAKiz8B,wBAAwBjz8B,KAAKiz8B,uBAEzEr+3B,EAAI/B,OAAS,GAAK+B,EAAI/B,QAAU,EACzB,GAAG7yE,KAAKiz8B,wBAAwBjz8B,KAAKiz8B,uBAE5Cr+3B,EAAI/B,OAAS,GAAK+B,EAAI/B,QAAU,EACzB7yE,KAAKiz8B,qBAGL,EAGf,CACAwI,iBAAiBF,GACb,MAAMQ,EAAM,GAAG/78B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBACpEjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBAC7Djz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBAC7Djz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBACnC+I,GAAO,GAAGh88B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBACzCjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBAC7Djz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBAC7Djz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,wBACzFjz8B,KAAKiz8B,uBAAuBjz8B,KAAKiz8B,uBACzC,GAAiB,MAAbsI,EACA,OAAOQ,EAEX,MAAMnn4B,GAAM,GACZ,QAASpF,GAAI,EAAGA,GAAI+r4B,EAAS1o4B,OAAQrD,KAAK,CACtC,MAAMtvE,GAAQq78B,EAAS/r4B,KAAM,GACxBtvE,IAGDA,GAAM+gH,MAAM,QACZrsC,GAAIjB,KAAKzzE,GAEjB,CACA,OAAI00E,GAAI/B,QAAU,EACPkp4B,EAAIhi4B,MAAMnF,GAAI/B,OAAQkp4B,EAAIlp4B,QAEjC+B,GAAI/B,OAAS,GAAK+B,GAAI/B,QAAU,EACzBkp4B,EAAIhi4B,MAAMnF,GAAI/B,OAAS,EAAGkp4B,EAAIlp4B,QAErC+B,GAAI/B,OAAS,GAAK+B,GAAI/B,QAAU,EACzBkp4B,EAAIhi4B,MAAMnF,GAAI/B,OAAS,EAAGkp4B,EAAIlp4B,QAErC+B,GAAI/B,OAAS,GAAK+B,GAAI/B,OAAS,GACxBkp4B,EAAIhi4B,MAAMnF,GAAI/B,OAAS,EAAGkp4B,EAAIlp4B,QAEtB,KAAf+B,GAAI/B,OACG,GAEQ,KAAf+B,GAAI/B,OAEOmp4B,GAAKji4B,MADQ,KAApBwh4B,EAAS1o4B,OACS,GAEJ,GAFQmp4B,GAAKnp4B,QAI/B+B,GAAI/B,OAAS,IAAM+B,GAAI/B,QAAU,GAC1Bmp4B,GAAKji4B,MAAMnF,GAAI/B,OAAS,EAAGmp4B,GAAKnp4B,QAEpC,EACX,CAIAko4B,kBAAkBvh3B,EAAWx5F,KAAKw5F,UAC9B,MAAMyi3B,EAAezi3B,GAAUisR,eAAeqkM,WAC9C,OAAKmyZ,GAAcx2lB,cAIRzlX,KAAK+68B,kBAAkBkB,GAHvBzi3B,EAASisR,aAKxB,CAQAy0lB,kBAAkB37vB,GACd,GAAIv+M,KAAK458B,eAAkB558B,KAAK4z8B,qBAAuB5z8B,KAAK658B,YAKxD,OAJA758B,KAAK4z8B,qBAAuB5z8B,KAAK658B,aAC3B758B,KAAKq/M,SAASr/M,KAAK8z8B,kBAAkB9z8B,KAAKk88B,UAAUl88B,KAAKm88B,cAAcn88B,KAAK678B,cAAc778B,KAAK878B,cAAcv9vB,aAEnHv+M,KAAK658B,aAAc,GAGnBt28B,MAAMujD,QAAQ9mD,KAAKkz8B,uBACnBlz8B,KAAKq/M,SAASr/M,KAAK8z8B,kBAAkB9z8B,KAAKk88B,UAAUl88B,KAAKm88B,cAAcn88B,KAAK478B,YAAY578B,KAAK678B,cAAc778B,KAAK878B,cAAcv9vB,IAAcv+M,KAAKkz8B,2BAIjJlz8B,KAAKq/M,SAASr/M,KAAK8z8B,kBAAkB9z8B,KAAKk88B,UAFrCl88B,KAAKkz8B,wBACRlz8B,KAAKkz8B,uBAAyBlz8B,KAAKi7K,SAAWsjC,EACIv+M,KAAKm88B,cAAcn88B,KAAK678B,cAAc778B,KAAK878B,cAAcv9vB,KAGzDA,IAE5D,CACA29vB,UAAUh88B,GAIN,IAHKF,KAAKw58B,eAA2B,KAAVt58B,GAGvBF,KAAKq08B,eAAe7h4B,WAAW,eAC9BxyE,KAAK0z8B,WAAa1z8B,KAAKkz8B,uBACxB,OAAOhz8B,EAEX,GAAIu8E,OAAOv8E,GAAO2yE,OAAS,IAAM7yE,KAAKqz8B,eAAexg4B,OAAS,GAC1D,OAAO4J,OAAOv8E,GAElB,MAAM6lF,EAAM9L,OAAO/5E,GACnB,GAAIF,KAAKq08B,eAAe7h4B,WAAW,cAA+CyH,OAAOgkD,MAAMl4C,GAAM,CACjG,MAAMlR,GAAM4H,OAAOv8E,GAAOomD,QAAQ,IAAK,KACvC,OAAO2zB,OAAOpF,GAClB,CACA,OAAOoF,OAAOgkD,MAAMl4C,GAAO7lF,EAAQ6lF,CACvC,CACA613B,YAAY178B,EAAOk88B,GACf,OAAIp88B,KAAKq08B,eAAe7h4B,WAAW,YAC/BtyE,EAAMoyE,SAAS,KACRpyE,EAEJA,GACDA,EAAMomD,QAAQtmD,KAAKq88B,iBAAiBD,GAA6B,GAE3E,CACAN,cAAc578B,GACV,OAAKF,KAAKi7K,OAGH/6K,GAAQA,EAAMomD,QAAQtmD,KAAKi7K,OAAQ,IAF/B/6K,CAGf,CACA278B,cAAc378B,GACV,OAAKF,KAAKm8N,OAGHj8N,GAAQA,EAAMomD,QAAQtmD,KAAKm8N,OAAQ,IAF/Bj8N,CAGf,CACAo88B,wBAAwBph3B,GACpB,IAAIq42B,EAAoBhw8B,MAAMujD,QAAQ9mD,KAAKkz8B,uBACrClz8B,KAAKuz8B,kBAAkBpx3B,OAAQmoC,IACtBtqH,KAAKkz8B,sBAAsB5g4B,SAASg4C,KAE7CtqH,KAAKuz8B,kBACX,OAAKvz8B,KAAKu08B,yBACNv08B,KAAKu88B,yBACLrh3B,EAAO5oB,SAAS,MAChBtyE,KAAKq08B,eAAe/h4B,SAAS,OAC7Bih4B,EAAoBA,EAAkBpx3B,OAAQggf,IAAkB,MAATA,KAEpDnikB,KAAK478B,YAAY1g3B,EAAQq42B,EACpC,CACA8I,iBAAiBD,GACb,OAAO,IAAIz00B,OAAOy00B,EAA2Bjm4B,IAAKzC,GAAS,KAAKA,KAAQwK,KAAK,KAAM,KACvF,CACAs+3B,2BAA2Bt88B,GACvB,MAAMyzU,EAAUpwU,MAAMujD,QAAQ9mD,KAAKi+E,eAC7Bj+E,KAAKi+E,cACL,CAACj+E,KAAKi+E,eACZ,OAAO/9E,EAAMomD,QAAQtmD,KAAKq88B,iBAAiB1ooB,GAAU,IACzD,CACAwooB,cAAcjh3B,GACV,GAAe,KAAXA,EACA,OAAOA,EAEPl7F,KAAKq08B,eAAe7h4B,WAAW,YACR,MAAvBxyE,KAAKi+E,gBAELid,EAASA,EAAO50C,QAAQ,IAAgC,MAE5D,MAAMm25B,EAAqBz88B,KAAK088B,4BAA4B188B,KAAKq08B,gBAC3DsI,GAAiB388B,KAAKw88B,2BAA2Bx88B,KAAKs88B,wBAAwBph3B,IACpF,OAAKl7F,KAAKw58B,eAGNiD,EACIvh3B,IAAWl7F,KAAKi+E,cACT,KAEPj+E,KAAKqz8B,eAAexg4B,OAAS,GACtB4J,OAAOkg4B,IAEX388B,KAAK488B,gBAAgB588B,KAAKq08B,eAAgBsI,IAT1CA,EAcf,CACAJ,wBACI,UAAW384B,KAAO5/D,KAAKiiY,SAEnB,GAAIjiY,KAAKiiY,SAASriU,IAAQ5/D,KAAKiiY,SAASriU,IAAMu3L,eAAe,WAAY,CACrE,MAAMsqI,EAAgBzhY,KAAKiiY,SAASriU,IAAMk+T,QAAQlrT,WAC5CkrT,GAAU99X,KAAKiiY,SAASriU,IAAMk+T,QACpC,GAAI2D,GAAenvT,SAAS,MACxBwrT,IAAS16P,KAAKpjI,KAAKq08B,gBACnB,OAAO,CAEf,CAEJ,OAAO,CACX,CAEAqI,4BAA4BG,GACxB,MAAMnlT,EAAUmlT,EAAc571B,MAAM,IAAI0mB,OAAO,yBAC/C,OAAO+vhB,EAAUz9kB,OAAOy9kB,EAAQ,IAAM,IAC1C,CACAklT,gBAAgBE,EAAqBH,GACjC,MAAMF,GAAqBK,EAAoB/i4B,MAAM,GAAI,IACzD,OAAI+i4B,EAAoBr+3B,QAAQ,KAAO,GAClCz+E,KAAK0z8B,UAAYz53B,OAAOwi4B,IAAsB,GACpB,MAAvBz88B,KAAKi+E,eAAoDj+E,KAAK0z8B,WAE9DiJ,EAAiBA,EAAer25B,QAAQ,IAAK,MAE1CtmD,KAAK0z8B,SACNz53B,OAAO0i4B,GAAgBv7vB,QAAQnnI,OAAOwi4B,KACtCxi4B,OAAO0i4B,GAAgBv7vB,QAAQ,IAElCphN,KAAKq78B,eAAesB,EAC/B,CACAI,sBAAsBC,GAClB,OAASA,EAAQ/71B,MAAM,aACnB+71B,EACKng4B,MAAM,IACNme,OAAO,CAACii3B,EAAOC,GAASrp4B,MAGzB,GAFA7zE,KAAKmqS,OACW,MAAZ+yqB,GAA2Drp4B,GAAQ7zE,KAAKmqS,OAC5D,MAAZ+yqB,GACA,OAAOl98B,KAAK448B,iBAAiBsE,IAAWD,EAAQC,GAAUD,EAE9Dj98B,KAAKurS,KAAO13N,GACZ,MAAMsp4B,GAAelj4B,OAAO+i4B,EAAQjj4B,MAAM/5E,KAAKmqS,OAAS,EAAGnqS,KAAKurS,OAC1D6xqB,GAAc,IAAI758B,MAAM458B,GAAe,GAAGj/3B,KAAK8+3B,EAAQh98B,KAAKmqS,OAAS,IAC3E,GAAI6yqB,EAAQjj4B,MAAM,EAAG/5E,KAAKmqS,QAAQt3N,OAAS,GACvCmq4B,EAAQ1q4B,SAAS,KAAoC,CACrD,MAAMs0Z,GAAUo2e,EAAQjj4B,MAAM,EAAG/5E,KAAKmqS,OAAS,GAC/C,OAAOy8L,GAAQt0Z,SAAS,KAClB2q4B,EAAQG,GACRx2e,GAAUq2e,EAAQG,EAC5B,CAEI,OAAOH,EAAQG,IAEpB,KACHJ,CACR,CACAK,6BACI,OAAQ,IAAK/B,iBAAiBvg4B,UAAU,EAAG,EAC/C,QACS/6E,KAAKqtD,UAAI,UAAAiw5B,EAAA,gBAAApntB,IAAA,OAAAontB,MAvlB8Evw5B,MAulBUi0L,KAAckV,IAAdlV,EAAc,GAAtG,EAA8J,QACvKhhP,KAAKm2P,WAxlBkFppM,MAAE,CAAAgnC,MAwlBYitJ,EAAc5zL,QAAd4zL,EAAc3zL,WAAK,EACpI,OAllBK2zL,CAAc,KA0lBpB,SAASu8tB,IACL,MAAMC,KAAavmuB,OAAO27tB,IACpB6K,KAAcxmuB,OAAO07tB,GAC3B,OAAO8K,aAAuBzn2B,SACxB,IAAKwn2B,KAAeC,KACpB,IAAKD,KAAeC,EAC9B,CACA,SAASx8tB,GAAew8tB,GACpB,MAAO,CACH,CACI3r4B,QAAS6g4B,EACTnxrB,SAAUi8rB,GAEd,CACI3r4B,QAAS8g4B,GACTpxrB,SAAUqxrB,IAEd,CACI/g4B,QAAS4g4B,GACTlyrB,WAAY+8rB,GAEhBv8tB,EAER,CAGC,IAEK08tB,EAAgB,MAAtB,MAAMA,EACFl78B,cACIxC,KAAKq08B,eAAiB,GACtBr08B,KAAKuz8B,kBAAoB,GACzBvz8B,KAAKiiY,SAAW,CAAC,EACjBjiY,KAAKi7K,OAAS,GACdj7K,KAAKm8N,OAAS,GACdn8N,KAAKg+E,kBAAoB,IACzBh+E,KAAKi+E,cAAgB,IACrBj+E,KAAKkz8B,sBAAwB,KAC7Blz8B,KAAKmz8B,YAAc,KACnBnz8B,KAAKgz8B,cAAgB,KACrBhz8B,KAAKiz8B,qBAAuB,KAC5Bjz8B,KAAKoz8B,oBAAsB,KAC3Bpz8B,KAAK+y8B,aAAe,KACpB/y8B,KAAK8y8B,gBAAkB,KACvB9y8B,KAAKsz8B,WAAa,KAClBtz8B,KAAKqz8B,eAAiB,KACtBrz8B,KAAKkhP,qBAAuB,KAC5BlhP,KAAKwz8B,iBAAmB,KACxBxz8B,KAAK0z8B,SAAW,KAChB1z8B,KAAK4z8B,oBAAsB,KAC3B5z8B,KAAKyz8B,IAAM,KACXzz8B,KAAK6z8B,iBAAmB,KACxB7z8B,KAAK8z8B,kBAAoB,KACzB9z8B,KAAK2z8B,uBAAyB,KAC9B3z8B,KAAK+z8B,WAAa,IAAI30vB,MACtBp/M,KAAK298B,WAAa,GAClB398B,KAAKkniB,UAAY,KACjBlniB,KAAK858B,qBAAuB,GAC5B958B,KAAK498B,yBAA0B,EAC/B598B,KAAK698B,aAAc,EACnB798B,KAAK+3sB,YAAa,EAElB/3sB,KAAK898B,cAAe,EACpB998B,KAAKw5F,YAAWy9I,OAAO4pC,MACvB7gR,KAAK+98B,gBAAe9muB,OAAO+J,EAAgB,CAAE3uK,MAAM,IACnDryE,KAAKq4K,WAAU4+D,OAAOy7tB,IAEtB1y8B,KAAKq/M,SAAYz9M,MACjB5B,KAAKg+8B,QAAU,MACnB,CACAz+vB,YAAY5Y,GACR,MAAQ0twB,iBAAgBd,qBAAmBtxkB,YAAUhnN,UAAQkhD,UAAQn+I,qBAAmBC,iBAAei13B,yBAAuBC,eAAaH,iBAAeC,wBAAsBG,uBAAqBL,gBAAcD,mBAAiBQ,cAAYD,kBAAgBnytB,wBAAsBsytB,oBAAkBE,YAAUE,uBAAqBH,OAAKI,oBAAkBC,qBAAmBH,2BAA4BhtwB,EAqB7Y,GApBI0twB,IACIA,EAAevi2B,eAAiBui2B,EAAe3utB,gBAC9C2utB,EAAelpY,cAChBnrkB,KAAK+98B,aAAalE,aAAc,GAEhCxF,EAAevi2B,cACfui2B,EAAevi2B,aAAaj1B,MAAM,MAA8BhK,OAAS,GACzE7yE,KAAK858B,qBAAuBzF,EAAevi2B,aACtCj1B,MAAM,MACNk0D,KAAK,CAAC91C,EAAGH,KACHG,EAAEpoB,OAASioB,GAAEjoB,QAExB7yE,KAAKi+8B,aAGLj+8B,KAAK858B,qBAAuB,GAC5B958B,KAAK298B,WAAatJ,EAAevi2B,cAAgB,GACjD9xG,KAAK+98B,aAAa1J,eAAiBr08B,KAAK298B,aAG5CpK,GAAmB,CACnB,IAAKA,GAAkBzh2B,eAAiBvuG,MAAMujD,QAAQys5B,GAAkBzh2B,cACpE,OAGA9xG,KAAK+98B,aAAaxK,kBAAoBA,GAAkBzh2B,cAAgB,EAEhF,CACIovI,KACAlhP,KAAK+98B,aAAa78tB,qBAAuBA,GAAqBpvI,aAC1D9xG,KAAK+98B,aAAa78tB,uBAClBlhP,KAAK+98B,aAAaxK,kBAAoBvz8B,KAAK+98B,aAAaxK,kBAAkBpx3B,OAAQ+M,GAAY,MAANA,KAI5F+yS,IAAYA,GAASnwR,eACrB9xG,KAAK+98B,aAAa97kB,SAAWA,GAASnwR,cAEtC2h2B,IAAOA,GAAI3h2B,eACX9xG,KAAK+98B,aAAatK,IAAMA,GAAI3h2B,cAE5BmpE,KACAj7K,KAAK+98B,aAAa9iyB,OAASA,GAAOnpE,cAElCqqH,KACAn8N,KAAK+98B,aAAa5hvB,OAASA,GAAOrqH,cAElC9zB,KACAh+E,KAAK+98B,aAAa//3B,kBAAoBA,GAAkB8zB,cAExD7zB,KACAj+E,KAAK+98B,aAAa9/3B,cAAgBA,GAAc6zB,cAEhDoh2B,KACAlz8B,KAAK+98B,aAAa7K,sBAAwBA,GAAsBph2B,cAEhEqh2B,KACAnz8B,KAAK+98B,aAAa5K,YAAcA,GAAYrh2B,cAE5Ckh2B,KACAhz8B,KAAK+98B,aAAa/K,cAAgBA,GAAclh2B,cACZ,IAAhCkh2B,GAActttB,gBACiB,IAA/BsttB,GAAclh2B,cACd9xG,KAAK+3sB,YACL/qT,sBAAsB,KAClBhtZ,KAAK+98B,aAAaj/U,aAAap5a,cAAcmmB,OAAM,IAI3DonuB,KACAjz8B,KAAK+98B,aAAa9K,qBAAuBA,GAAqBnh2B,cAE9Dsh2B,KACApz8B,KAAK+98B,aAAa3K,oBAAsBA,GAAoBth2B,cAE5Dih2B,KACA/y8B,KAAK+98B,aAAahL,aAAeA,GAAajh2B,cAE9Cgh2B,KACA9y8B,KAAK+98B,aAAajL,gBAAkBA,GAAgBhh2B,cAEpDwh2B,KACAtz8B,KAAK+98B,aAAazK,WAAaA,GAAWxh2B,cAE1Cuh2B,KACArz8B,KAAK+98B,aAAa1K,eAAiBA,GAAevh2B,cAElD0h2B,KACAxz8B,KAAK+98B,aAAavK,iBAAmBA,GAAiB1h2B,cAEtD4h2B,KACA1z8B,KAAK+98B,aAAarK,SAAWA,GAAS5h2B,cAEtC8h2B,KACA5z8B,KAAK+98B,aAAanK,oBAAsBA,GAAoB9h2B,cAE5D+h2B,KACA7z8B,KAAK+98B,aAAalK,iBAAmBA,GAAiB/h2B,cAEtDgi2B,KACA9z8B,KAAK+98B,aAAajK,kBAAoBA,GAAkBhi2B,cAExD6h2B,KACA3z8B,KAAK+98B,aAAapK,uBAAyBA,GAAuB7h2B,cAEtE9xG,KAAKk+8B,YACT,CACAn4kB,UAAW7lY,UACP,IAAKF,KAAK+98B,aAAazK,aAAetz8B,KAAK298B,WACvC,OAAO,KAEX,GAAI398B,KAAK+98B,aAAa9H,QAClB,OAAOj28B,KAAKm+8B,uBAAuBj+8B,GAEvC,GAAIF,KAAK+98B,aAAa5H,aAClB,OAAOn28B,KAAKm+8B,uBAAuBj+8B,GAQvC,GANIF,KAAK298B,WAAWnr4B,WAAW,cAG3Byh4B,GAAkB3h4B,SAAStyE,KAAK298B,aAGhC398B,KAAK+98B,aAAajL,gBAClB,OAAO,KAEX,GAAIkB,GAAU1h4B,SAAStyE,KAAK298B,YACxB,OAAO398B,KAAKo+8B,cAAcl+8B,GAE9B,GAAIA,GAASA,EAAM0yE,WAAWC,QAAU,EAAG,CACvC,IAAIwr4B,EAAe,EACnB,GAAIr+8B,KAAK298B,WAAWrr4B,SAAS,MACzBtyE,KAAK298B,WAAWrr4B,SAAS,KAEzB,OADkCtyE,KAAK298B,WAAW5j4B,MAAM/5E,KAAK298B,WAAWl/3B,QAAQ,KAAgD,EAAGz+E,KAAK298B,WAAWl/3B,QAAQ,QACtHhC,OAAOv8E,EAAM2yE,QAC5C,KACA7yE,KAAKm+8B,uBAAuBj+8B,GAEtC,GAAIF,KAAK298B,WAAWnr4B,WAAW,WAC3B,OAAO,KAEX,UAAW5S,MAAO5/D,KAAK+98B,aAAa97kB,SAChC,GAAIjiY,KAAK+98B,aAAa97kB,SAASriU,KAAMmhM,WAC7B/gQ,KAAK298B,WAAWl/3B,QAAQ7e,MAAS5/D,KAAK298B,WAAWtk3B,YAAYz5B,IAK7Dy+4B,GAJYr+8B,KAAK298B,WACZ9g4B,MAAM,IACNsF,OAAQ3S,IAAMA,KAAM5P,IACpBse,KAAK,IACUrL,QAEkB,IAAjC7yE,KAAK298B,WAAWl/3B,QAAQ7e,KAC7By+4B,KAEiC,IAAjCr+8B,KAAK298B,WAAWl/3B,QAAQ7e,KACxB1/D,EAAM0yE,WAAWC,QAAU7yE,KAAK298B,WAAWl/3B,QAAQ7e,KAGnDy+4B,IAAiBr+8B,KAAK298B,WAAW9q4B,QACjC,OAAO,KAInB,GAAK7yE,KAAK298B,WAAWl/3B,QAAQ,KAAwC,GACjEv+E,EAAM0yE,WAAWC,OACb7yE,KAAK298B,WAAWl/3B,QAAQ,MAC3Bz+E,KAAK298B,WAAWl/3B,QAAQ,KAA4C,GACjEv+E,EAAM0yE,WAAWC,OACb7yE,KAAK298B,WAAWl/3B,QAAQ,KAChC,OAAOz+E,KAAKm+8B,uBAAuBj+8B,GAEvC,IAAsE,IAAlEF,KAAK298B,WAAWl/3B,QAAQ,OAC8C,IAAtEz+E,KAAK298B,WAAWl/3B,QAAQ,KAAkD,CAE1Ev+E,EAAyB,iBAAVA,EAAqBu8E,OAAOv8E,GAASA,EACpD,MAAMo+E,GAAQt+E,KAAK298B,WAAW9g4B,MAAM,KAC9BhK,GAAS7yE,KAAK+98B,aAAa7K,sBAC3Blz8B,KAAK298B,WAAW9q4B,OACd7yE,KAAK+98B,aAAapC,2BAA2B378B,KAAK298B,YAClDU,EACFr+8B,KAAKi7K,OACDj7K,KAAK298B,WAAW9q4B,OAAS7yE,KAAKi7K,OAAOpoG,OAASwr4B,EAC9Cr+8B,KAAK298B,WAAW9q4B,OAASwr4B,EACnC,GAAqB,IAAjB//3B,GAAMzL,QACF3yE,EAAM0yE,WAAWC,OAASA,GAC1B,OAAO7yE,KAAKm+8B,uBAAuBj+8B,GAG3C,GAAIo+E,GAAMzL,OAAS,EAAG,CAClB,MAAMyr4B,GAAiBhg4B,GAAMA,GAAMzL,OAAS,GAC5C,GAAIyr4B,IACAt+8B,KAAK+98B,aAAaxK,kBAAkBjh4B,SAASgs4B,GAAe,KAC5D7h4B,OAAOv8E,GAAOoyE,SAASgs4B,GAAe,IAAM,MAC3Ct+8B,KAAKkz8B,sBAAuB,CAC7B,MAAMqL,GAAUr+8B,EAAM28E,MAAMyh4B,GAAe,IAC3C,OAAOC,GAAQA,GAAQ1r4B,OAAS,GAAGA,SAAWyr4B,GAAezr4B,OAAS,EAChE,KACA7yE,KAAKm+8B,uBAAuBj+8B,EACtC,CACK,OAAMo+8B,KACNt+8B,KAAK+98B,aAAaxK,kBAAkBjh4B,SAASgs4B,GAAe,MAC5DA,IACDt+8B,KAAK+98B,aAAa7K,wBAClBhz8B,EAAM2yE,QAAUA,GAAS,EAClB,KAGA7yE,KAAKm+8B,uBAAuBj+8B,EAE3C,CACJ,CACA,GAAsE,IAAlEF,KAAK298B,WAAWl/3B,QAAQ,MAC8C,IAAtEz+E,KAAK298B,WAAWl/3B,QAAQ,KACxB,OAAO,IAEf,CACA,OAAIv+E,GACAF,KAAK+z8B,WAAW/jzB,OACT,IAGf,CACAwuzB,UACIx+8B,KAAK698B,aAAc,CACvB,CACA5tQ,UACIjwsB,KAAK+3sB,YAAa,CACtB,CACA0mQ,cAAcv+8B,IAEK,KAAVA,GAAL,MAAuDA,IACnDF,KAAK+98B,aAAaj8U,cAClB9hoB,KAAK+98B,aAAaj8U,YAAc9hoB,KAAK+98B,aAAaxD,eAAe,IAEzE,CACAmE,QAAQ/68B,GAEJ,GAAI3D,KAAK898B,aACL,OACJ,MAAMh/rB,EAAKn7Q,EAAEs5F,OACP0h3B,GAAmB3+8B,KAAK+98B,aAAalK,iBAAiB/0rB,EAAG5+Q,OAC/D,GAAgB,WAAZ4+Q,EAAG31Q,KACH,GAAgC,iBAArBw18B,IAA6D,iBAArBA,GAA+B,CAI9E,GAHA7/rB,EAAG5+Q,MAAQy+8B,GAAiB/r4B,WAC5B5yE,KAAK4+8B,YAAc9/rB,EAAG5+Q,MACtBF,KAAKi+8B,YACAj+8B,KAAK298B,WAEN,YADA398B,KAAKq/M,SAASy/D,EAAG5+Q,OAGrB,IAAI+zS,GAAiC,IAAtBn1B,EAAGi+e,eACZj+e,EAAGi+e,eAAiB/8vB,KAAK+98B,aAAa9iyB,OAAOpoG,OAC7CisM,EAAGi+e,eACT,GAAI/8vB,KAAKgz8B,eACLhz8B,KAAK2z8B,wBAC6C,IAAlD3z8B,KAAK+98B,aAAa9K,qBAAqBpg4B,OAAc,CACrD,MAAMuk4B,GAAct4rB,EAAG5+Q,MAAM65E,MAAMk6N,GAAW,EAAGA,IAC3C4qqB,GAAe7+8B,KAAKi7K,OAAOpoG,OAC3Bis4B,GAAe9+8B,KAAK+98B,aAAazG,iBAAiBF,GAAap38B,KAAK+98B,aAAa1J,eAAepgqB,GAAW,EAAI4qqB,KACjH,IACEE,GAAwB/+8B,KAAK+98B,aAAazG,iBAAiBF,GAAap38B,KAAK+98B,aAAa1J,eAAepgqB,GAAW,EAAI4qqB,KAC1H,IACEG,GAAuBh/8B,KAAK+98B,aAAarE,WAAa158B,KAAK+98B,aAAapE,OACxED,GAAWz/3B,OAAOj6E,KAAK+98B,aAAarE,UAAYmF,GAChDlF,GAAS1/3B,OAAOj6E,KAAK+98B,aAAapE,QAAUkF,GAClD,GAAmB,cAAf7+8B,KAAKi/8B,MACL,GAAKD,IAYkN,IAG7Mh/8B,KAAK+98B,aAAaxK,kBAAkBjh4B,SAAStyE,KAAK+98B,aAAa1J,eAAet63B,MAAMk6N,GAAWj0S,KAAKi7K,OAAOpoG,OAAQohO,GAAW,EAAIj0S,KAAKi7K,OAAOpoG,UACpJms4B,GACA,GAAiB,IAAbtF,IAAkB158B,KAAKi7K,OACvBj7K,KAAK+98B,aAAaj8U,YAAc,GAAG9hoB,KAAKi7K,SAASj7K,KAAK+98B,aAAa9K,uBAAuBn0rB,EAAG5+Q,MACxF28E,MAAM78E,KAAKi7K,QACX/8F,KAAK,IACLrB,MAAM78E,KAAKm8N,QACXj+I,KAAK,MAAMl+E,KAAKm8N,SACrB83E,IAAsB,MAErB,CACD,MAAMirqB,GAAQpgsB,EAAG5+Q,MAAM66E,UAAU,EAAGk5N,IAC9BkrqB,GAAQrgsB,EAAG5+Q,MAAM66E,UAAUk5N,IACjCj0S,KAAK+98B,aAAaj8U,YAAc,GAAGo9U,KAAQl/8B,KAAK+98B,aAAa9K,uBAAuBkM,IACxF,OA3BIn/8B,KAAK+98B,aAAaj8U,YADlB9hoB,KAAK+98B,aAAarE,WAAamF,GACC,GAAG7+8B,KAAKi7K,SAASj7K,KAAK+98B,aAAatE,YAAY1/3B,MAAM,EAAG4/3B,MAAU358B,KAAK4+8B,YAAY/h4B,MAAM78E,KAAKi7K,QAAQ/8F,KAAK,MAEtIl+E,KAAK+98B,aAAarE,WACvB158B,KAAK+98B,aAAatE,YAAY5m4B,OAASgs4B,GACP,GAAG7+8B,KAAK4+8B,cAAc5+8B,KAAK+98B,aAAatE,YAAY1/3B,MAAM2/3B,GAAUC,MAGpE,GAAG358B,KAAKi7K,SAASj7K,KAAK4+8B,YACjD/h4B,MAAM78E,KAAKi7K,QACX/8F,KAAK,IACLnE,MAAM,EAAG2/3B,MAAY158B,KAAK+98B,aAAatE,YAAY1/3B,MAAM2/3B,GAAUC,MAAU358B,KAAK+98B,aAAaj8U,YAAY/njB,MAAM4/3B,GAASkF,GAAc7+8B,KAAK+98B,aAAatE,YAAY5m4B,OAASgs4B,MAAgB7+8B,KAAKm8N,SAoBlM,cAAfn8N,KAAKi/8B,QACAH,IAAiBC,KAAyBC,GAGtCh/8B,KAAK+98B,aAAaxK,kBAAkBjh4B,SAASwsM,EAAG5+Q,MAAM65E,MAAMk6N,GAAUA,GAAW,KACtF8qqB,KACC/+8B,KAAK+98B,aAAaxK,kBAAkBjh4B,SAASwsM,EAAG5+Q,MAAM65E,MAAMk6N,GAAW,EAAGA,GAAW,KACtFj0S,KAAK+98B,aAAaj8U,YAAc,GAAGhjX,EAAG5+Q,MAAM65E,MAAM,EAAGk6N,GAAW,KAAKn1B,EAAG5+Q,MAAM65E,MAAMk6N,GAAUA,GAAW,KAAKmjqB,KAAct4rB,EAAG5+Q,MAAM65E,MAAMk6N,GAAW,KACtJA,IAAsB,GAEjB6qqB,GAED9+8B,KAAK+98B,aAAaj8U,YADE,IAApBhjX,EAAG5+Q,MAAM2yE,QAA6B,IAAbohO,GACO,GAAGj0S,KAAKi7K,SAASm8xB,KAAcp38B,KAAK+98B,aAAatE,YAAY1/3B,MAAM,EAAG/5E,KAAK+98B,aAAatE,YAAY5m4B,UAAU7yE,KAAKm8N,SAGnH,GAAG2iD,EAAG5+Q,MAAM65E,MAAM,EAAGk6N,GAAW,KAAKmjqB,KAAct4rB,EAAG5+Q,MACjF65E,MAAMk6N,GAAW,GACjBp3N,MAAM78E,KAAKm8N,QACXj+I,KAAK,MAAMl+E,KAAKm8N,SAGpBn8N,KAAKi7K,QACU,IAApB6jG,EAAG5+Q,MAAM2yE,QACTohO,GAAW4qqB,IAAiB,GAC5B7+8B,KAAK+98B,aAAazG,iBAAiBx4rB,EAAG5+Q,MAAOF,KAAK+98B,aAAa1J,eAAepgqB,GAAW,EAAI4qqB,KACzF,MACJ7+8B,KAAK+98B,aAAaj8U,YAAc,GAAG9hoB,KAAKi7K,SAAS6jG,EAAG5+Q,QAAQF,KAAK+98B,aAAatE,YAAY1/3B,MAAM,EAAG/5E,KAAK+98B,aAAatE,YAAY5m4B,UAAU7yE,KAAKm8N,UAxBhJ83E,GAAWh6N,OAAO6kM,EAAGi+e,gBAAkB,EA2BnD,CACA,IAAIqiN,GAAa,EACbvJ,IAAiB,EAIrB,GAHmB,WAAf718B,KAAKi/8B,QACLj/8B,KAAK+98B,aAAaxJ,yBAA0B,GAE5Cv08B,KAAK4+8B,YAAY/r4B,QAAU7yE,KAAK+98B,aAAa1J,eAAexh4B,OAAS,GACtD,cAAf7yE,KAAKi/8B,OACgC,eAArCj/8B,KAAK+98B,aAAa1J,gBAClBpgqB,GAAW,GAAI,CACf,MAAMmjqB,GAAcp38B,KAAK4+8B,YAAY7k4B,MAAMk6N,GAAW,EAAGA,IACzDn1B,EAAG5+Q,MACCF,KAAK4+8B,YAAY7k4B,MAAM,EAAGk6N,GAAW,GACjCmjqB,GACAp38B,KAAK4+8B,YAAY7k4B,MAAMk6N,GAAW,EAC9C,CAwBA,GAvByC,eAArCj0S,KAAK+98B,aAAa1J,gBAClBr08B,KAAKwz8B,mBACAv/pB,GAAW,GAAKh6N,OAAO6kM,EAAG5+Q,OAAS,IAAM+5E,OAAO6kM,EAAG5+Q,OAAS,IAC/C,IAAb+zS,IAAkBh6N,OAAO6kM,EAAG5+Q,MAAM65E,MAAM,EAAG,IAAM,MAClDk6N,IAAsB,GAGW,aAArCj0S,KAAK+98B,aAAa1J,gBAClBr08B,KAAKyz8B,MACDzz8B,KAAK698B,aAAwC,OAAzB/+rB,EAAG5+Q,MAAM65E,MAAM,EAAG,KACtC+kM,EAAG5+Q,MAAQ4+Q,EAAG5+Q,MAAM65E,MAAM,EAAG,GAAK+kM,EAAG5+Q,MAAM65E,MAAM,EAAG+kM,EAAG5+Q,MAAM2yE,SAEjEisM,EAAG5+Q,MACc,OAAb4+Q,EAAG5+Q,MACG,IACA4+Q,EAAG5+Q,OAEjBF,KAAK+98B,aAAalD,kBAAkB5mqB,GAAUj0S,KAAK698B,YAA4B,cAAf798B,KAAKi/8B,OAAuE,WAAfj/8B,KAAKi/8B,MAAgD,CAACh+2B,GAAOo+2B,MACtLr/8B,KAAK698B,aAAc,EACnBuB,GAAan+2B,GACb402B,GAAiBwJ,KAGjBr/8B,KAAK+68B,sBAAwBj8rB,EAC7B,OAOJ,GALI9+Q,KAAK+98B,aAAa3J,kBAClBngqB,IAAsB,EACtBj0S,KAAK+98B,aAAa3J,iBAAkB,GAGpCp08B,KAAK858B,qBAAqBjn4B,OAC1B,GAAmB,cAAf7yE,KAAKi/8B,MAAsD,CAC3D,MAAMK,GAAuBt/8B,KAAKuz8B,kBAAkBjh4B,SAAStyE,KAAK+98B,aAAaj8U,YAAY/njB,MAAMk6N,GAAW,EAAGA,KACzGsrqB,GAAsBv/8B,KAAKuz8B,kBAAkBjh4B,SAAStyE,KAAK+98B,aAAaj8U,YAAY/njB,MAAMk6N,GAAUA,GAAW,IACjHj0S,KAAK498B,0BAA4B2B,IACjCtrqB,GAAWn1B,EAAGi+e,eAAiB,EAC/B/8vB,KAAK498B,yBAA0B,GAG/B3pqB,GAAWqrqB,GAAuBrrqB,GAAW,EAAIA,EAEzD,MAEIA,GAC0B,IAAtBn1B,EAAGi+e,eACGj+e,EAAGi+e,eAAiB/8vB,KAAK+98B,aAAa9iyB,OAAOpoG,OAC7CisM,EAAGi+e,eAGrB/8vB,KAAKkniB,UACkB,IAAnBlniB,KAAKkniB,WAA+C,IAA5BlniB,KAAK4+8B,YAAY/r4B,OAAe,KAAO7yE,KAAKkniB,UACxE,IAAIs4a,GAAkBx/8B,KAAKkniB,UACrBlniB,KAAK4+8B,YAAY/r4B,OAASohO,GAAWmrqB,GACrCnrqB,IACkB,cAAfj0S,KAAKi/8B,OAAyDpJ,GAAqBuJ,GAAJ,GACpFI,GAAkBx/8B,KAAKy/8B,0BACvBD,GACI1gsB,EAAG5+Q,QAAUF,KAAK+98B,aAAa9/3B,eAAqC,IAApB6gM,EAAG5+Q,MAAM2yE,OACnD7yE,KAAKy/8B,wBAA0B,EAC/Bz/8B,KAAKy/8B,yBAEfD,GAAkB,IAClBA,GAAkB,GAEtB1gsB,EAAGqpR,kBAAkBq3a,GAAiBA,IACtCx/8B,KAAKkniB,UAAY,IACrB,MAEIv3d,QAAQ6tB,KAAK,4EAA6Emh3B,QAG7F,CACD,IAAK3+8B,KAAK298B,WAEN,YADA398B,KAAKq/M,SAASy/D,EAAG5+Q,OAGrBF,KAAK+98B,aAAalD,kBAAkB/7rB,EAAG5+Q,MAAM2yE,OAAQ7yE,KAAK698B,YAA4B,cAAf798B,KAAKi/8B,OAAuE,WAAfj/8B,KAAKi/8B,MAC7I,CACJ,CAEAS,qBACI1/8B,KAAK898B,cAAe,CACxB,CAEA6B,iBAAiBh88B,GACb3D,KAAK898B,cAAe,EACpB998B,KAAK698B,aAAc,EACnB798B,KAAK0+8B,QAAQ/68B,EACjB,CACA0msB,OAAO1msB,GACH,GAAI3D,KAAK298B,WAAY,CACjB,MAAM7+rB,EAAKn7Q,EAAEs5F,OACb,GAAIj9F,KAAK0z8B,UAAY50rB,EAAG5+Q,MAAM2yE,OAAS,GAAmC,iBAAvB7yE,KAAKi+E,cAA4B,CAChF,MAAMo23B,GAAiBr08B,KAAK+98B,aAAa1J,eACnCl7jB,GAAYl/T,OAAOj6E,KAAK+98B,aAAa1J,eAAet63B,MAAMs63B,GAAexh4B,OAAS,EAAGwh4B,GAAexh4B,SAC1G,GAAIsmU,GAAY,EAAG,CACfr6H,EAAG5+Q,MAAQF,KAAKm8N,OAAS2iD,EAAG5+Q,MAAM28E,MAAM78E,KAAKm8N,QAAQj+I,KAAK,IAAM4gM,EAAG5+Q,MACnE,MAAM0y4B,GAAc9znB,EAAG5+Q,MAAM28E,MAAM78E,KAAKi+E,eAAe,GACvD6gM,EAAG5+Q,MAAQ4+Q,EAAG5+Q,MAAMoyE,SAAStyE,KAAKi+E,eAC5B6gM,EAAG5+Q,MACD,IAAqCk6e,OAAOjhG,GAAYy5f,GAAY//zB,QACpE7yE,KAAKm8N,OACP2iD,EAAG5+Q,MACDF,KAAKi+E,cACL,IAAqCm8Z,OAAOjhG,IAC5Cn5Y,KAAKm8N,OACbn8N,KAAK+98B,aAAaj8U,YAAchjX,EAAG5+Q,KACvC,CACJ,CACAF,KAAK+98B,aAAa/C,mBACtB,CACAh78B,KAAK+3sB,YAAa,EAClB/3sB,KAAKg+8B,SACT,CACAtyuB,QAAQ/nO,GACJ,IAAK3D,KAAK298B,WACN,OAEJ,MAAM7+rB,EAAKn7Q,EAAEs5F,OAGF,OAAP6hL,GACsB,OAAtBA,EAAGi+e,gBACHj+e,EAAGi+e,iBAAmBj+e,EAAGwwgB,cACzBxwgB,EAAGi+e,eAAiB/8vB,KAAK+98B,aAAa9iyB,OAAOpoG,QAE/B,KAAdlvE,EAAE4ssB,SACEvwsB,KAAK+98B,aAAa/K,gBAAkBhz8B,KAAK2z8B,yBAEzC3z8B,KAAK+98B,aAAatE,YAAcz58B,KAAK+98B,aAAa9D,kBAC9Cn7rB,EAAGqpR,mBACHnoiB,KAAK+98B,aAAa9iyB,OAASj7K,KAAK+98B,aAAatE,cAAgB36rB,EAAG5+Q,OAEhE4+Q,EAAGl5D,QACHk5D,EAAGqpR,kBAfE,EACF,IAkBCrpR,EAAGi+e,eAAiB/8vB,KAAK+98B,aAAaj8U,YAAYjvjB,QAElDisM,EAAGqpR,kBAAkBnoiB,KAAK+98B,aAAaj8U,YAAYjvjB,OAAQ7yE,KAAK+98B,aAAaj8U,YAAYjvjB,SAKzG,MAAM+s4B,GAAY9gsB,IACbA,EAAG5+Q,QAAUF,KAAK+98B,aAAa9iyB,OAC1Bj7K,KAAK+98B,aAAa9iyB,OAASj7K,KAAK+98B,aAAatE,YAC7C36rB,EAAG5+Q,OAET4+Q,GAAMA,EAAG5+Q,QAAU0/8B,KACnB9gsB,EAAG5+Q,MAAQ0/8B,IAGX9gsB,GACY,WAAZA,EAAG31Q,OACF21Q,EAAGi+e,gBAAkBj+e,EAAGwwgB,eACrBtvxB,KAAK+98B,aAAa9iyB,OAAOpoG,OAC7BisM,EAAGi+e,eAAiB/8vB,KAAK+98B,aAAa9iyB,OAAOpoG,OAI7CisM,GAAMA,EAAGwwgB,aAAetvxB,KAAKy/8B,0BAC7B3gsB,EAAGwwgB,aAAetvxB,KAAKy/8B,wBAE/B,CACAppR,UAAU1yrB,GACN,IAAK3D,KAAK298B,WACN,OAEJ,GAAI398B,KAAK898B,aAIL,YAFc,UAAVn68B,EAAEi8D,KACF5/D,KAAK2/8B,iBAAiBh88B,IAG9B3D,KAAKi/8B,MAAQt78B,EAAEgxF,KAAOhxF,EAAEgxF,KAAOhxF,EAAEi8D,IACjC,MAAMk/M,EAAKn7Q,EAAEs5F,OAGb,GAFAj9F,KAAK4+8B,YAAc9/rB,EAAG5+Q,MACtBF,KAAKi+8B,WACW,WAAZn/rB,EAAG31Q,KAAmB,CAItB,GAHc,YAAVxF,EAAEi8D,KACFj8D,EAAEqgP,iBAEQ,cAAVrgP,EAAEi8D,KACQ,cAAVj8D,EAAEi8D,KACQ,WAAVj8D,EAAEi8D,IAA8C,CAIhD,GAHc,cAAVj8D,EAAEi8D,KAA0E,IAApBk/M,EAAG5+Q,MAAM2yE,SACjEisM,EAAGi+e,eAAiBj+e,EAAGwwgB,cAEb,cAAV3rxB,EAAEi8D,KAA4E,IAAtBk/M,EAAGi+e,eAK3D,GAHA/8vB,KAAKuz8B,kBAAoBvz8B,KAAKuz8B,mBAAmB1g4B,OAC3C7yE,KAAKuz8B,kBACLvz8B,KAAKq4K,QAAQk7xB,kBACfvz8B,KAAKi7K,OAAOpoG,OAAS,GACrBisM,EAAGi+e,gBAAkB/8vB,KAAKi7K,OAAOpoG,OACjCisM,EAAGqpR,kBAAkBnoiB,KAAKi7K,OAAOpoG,OAAQisM,EAAGwwgB,mBAAY,GAGpDtvxB,KAAK4+8B,YAAY/r4B,SAAWisM,EAAGi+e,gBACT,IAAtBj+e,EAAGi+e,eACH,KAAO/8vB,KAAKuz8B,kBAAkBjh4B,UAAUtyE,KAAK4+8B,YAAY9/rB,EAAGi+e,eAAiB,IACzE,IAAsCnqrB,cACpC5yE,KAAKi7K,OAAOpoG,QAAU,GACpBisM,EAAGi+e,eAAiB/8vB,KAAKi7K,OAAOpoG,QACT,IAAvB7yE,KAAKi7K,OAAOpoG,SAChBisM,EAAGqpR,kBAAkBrpR,EAAGi+e,eAAiB,EAAGj+e,EAAGwwgB,cAK/DtvxB,KAAK6/8B,yBAAyB/gsB,GAC1B9+Q,KAAK+98B,aAAa9iyB,OAAOpoG,QACzBisM,EAAGi+e,gBAAkB/8vB,KAAK+98B,aAAa9iyB,OAAOpoG,QAC9CisM,EAAGwwgB,cAAgBtvxB,KAAK+98B,aAAa9iyB,OAAOpoG,QAC5ClvE,EAAEqgP,iBAGQ,cAAVrgP,EAAEi8D,MACDk/M,EAAG/yJ,UACY,IAHA+yJ,EAAGi+e,gBAInBj+e,EAAGwwgB,eAAiBxwgB,EAAG5+Q,MAAM2yE,QACT,IAApBisM,EAAG5+Q,MAAM2yE,SACT7yE,KAAKkniB,UAAYlniB,KAAK+98B,aAAa9iyB,OAASj7K,KAAK+98B,aAAa9iyB,OAAOpoG,OAAS,EAC9E7yE,KAAK+98B,aAAaj+vB,UAAU9/M,KAAK+98B,aAAa9iyB,OAAQj7K,KAAK+98B,aAAa1J,eAAgBr08B,KAAKkniB,WAErG,CACMlniB,KAAKm8N,QACPn8N,KAAKm8N,OAAOtpJ,OAAS,GACrB7yE,KAAK4+8B,YAAY/r4B,OAAS7yE,KAAKm8N,OAAOtpJ,OAASisM,EAAGi+e,eAClDj+e,EAAGqpR,kBAAkBnoiB,KAAK4+8B,YAAY/r4B,OAAS7yE,KAAKm8N,OAAOtpJ,OAAQ7yE,KAAK4+8B,YAAY/r4B,SAEnE,SAAXlvE,EAAEgxF,MAAmBhxF,EAAEw5V,SACjB,SAAXx5V,EAAEgxF,MAAmBhxF,EAAEq6oB,WAExBl/X,EAAGqpR,kBAAkB,EAAGnoiB,KAAKy/8B,yBAC7B978B,EAAEqgP,kBAENhkP,KAAK+98B,aAAarE,SAAW56rB,EAAGi+e,eAChC/8vB,KAAK+98B,aAAapE,OAAS76rB,EAAGwwgB,YAClC,CACJ,CAEM9vJ,WAAWsgV,GAAc,IAAAvz3B,EAAAvsF,KAAA,SAAAwsF,KAAA,YAc3B,GAb4B,iBAAjBsz3B,GAA8C,OAAjBA,GAAyB,UAAWA,IACpE,YAAaA,GACbvz3B,EAAK2yiB,mBAAyB4gV,EAAa5lsB,SAG/C4lsB,EAAeA,EAAa5/8B,OAEX,OAAjB4/8B,IAEAA,EAAevz3B,EAAKsn3B,iBACdtn3B,EAAKsn3B,iBAAiBiM,GACtBA,GAEkB,iBAAjBA,GACiB,iBAAjBA,GADP,MAEAA,EAC4B,EACP,MAAjBA,GAAwE,KAAjBA,KACvDvz3B,EAAKwx3B,aAAahE,cAAgB,GAClCxt3B,EAAKwx3B,aAAa1iN,eAAiB,IAEvC,IAAI98iB,GAAauhwB,EACjB,GAA0B,iBAAfvhwB,IACPhyH,EAAKox3B,WAAWnr4B,WAAW,aAA6C,CACxE+rI,GAAa9hI,OAAO8hI,IACpB,MAAMwhwB,GAAsBxz3B,EAAKwx3B,aAAaV,6BACzC958B,MAAMujD,QAAQylC,EAAKwx3B,aAAa9/3B,iBACjCsgI,GACIhyH,EAAKwx3B,aAAa9/3B,gBAAkB8h4B,GAC9BxhwB,GAAWj4J,QAAQy55B,GAAqBxz3B,EAAKwx3B,aAAa9/3B,eAC1DsgI,IAEVhyH,EAAKwx3B,aAAarK,UAClBn1vB,IACAhyH,EAAK8n3B,iBAC0B,IAA/B9n3B,EAAK2m3B,wBACL30vB,GAAahyH,EAAKwx3B,aAAanB,gBAAgBrw3B,EAAKwx3B,aAAa1J,eAAgB91vB,MAE1D,MAAvBhyH,EAAKtO,eACJ16E,MAAMujD,QAAQylC,EAAKwx3B,aAAa9/3B,gBACF,MAA3BsO,EAAKvO,qBACTugI,GAAaA,GACR3rI,WACAtsB,QAAQ,IAA8B,MAE3CimC,EAAK8n3B,gBAAgB7h4B,WAAW,cAA+C+Z,EAAKmn3B,UACpF1mjB,sBAAsB,KAClBzgU,EAAKwx3B,aAAaj+vB,UAAUvB,IAAY3rI,YAAc,GAAI2Z,EAAKwx3B,aAAa1J,eAAc,GAGlG9n3B,EAAKwx3B,aAAavE,eAAgB,CACtC,CAC0B,iBAAfj7vB,KACPA,GAAa,IAEjBhyH,EAAKqy3B,YAAcrgwB,GACnBhyH,EAAK0x3B,WACA1/vB,IAAchyH,EAAKwx3B,aAAa1J,gBAChC9n3B,EAAKwx3B,aAAa1J,iBACd9n3B,EAAKwx3B,aAAa9iyB,QAAU1uF,EAAKwx3B,aAAa/K,gBAElB,mBAA1Bzm3B,EAAKsn3B,mBACLtn3B,EAAKwx3B,aAAanE,cAAe,GAExCrt3B,EAAKwx3B,aAAarC,oBAAsB,CACpC,QACAnv3B,EAAKwx3B,aAAaj+vB,UAAUvB,GAAYhyH,EAAKwx3B,aAAa1J,iBAG7B,mBAA1B9n3B,EAAKsn3B,mBACLtn3B,EAAKwx3B,aAAanE,cAAe,IAIxCrt3B,EAAKwx3B,aAAarC,oBAAsB,CAAC,QAASn9vB,IAEtDhyH,EAAKqy3B,YAAcrgwB,EACvB,MAEI5uI,QAAQ6tB,KAAK,4EAA6Esi3B,EAC7F,EAjF0B,EAkF/B,CACA7gV,iBAAiBjxgB,GACbhuH,KAAK+98B,aAAa1+vB,SAAWr/M,KAAKq/M,SAAWrxF,CACjD,CACAgxgB,kBAAkBhxgB,GACdhuH,KAAKg+8B,QAAUhw1B,CACnB,CACA+s1B,kBAAkBvh3B,EAAWx5F,KAAKw5F,UAC9B,MAAMyi3B,EAAezi3B,GAAUisR,eAAeqkM,WAC9C,OAAKmyZ,GAAcx2lB,cAIRzlX,KAAK+68B,kBAAkBkB,GAHvBzi3B,EAASisR,aAKxB,CACAo6lB,yBAAyB/gsB,GACrBA,EAAGi+e,eAAiB5grB,KAAKgkB,IAAIhkB,KAAKikB,IAAIpgG,KAAKi7K,OAAOpoG,OAAQisM,EAAGi+e,gBAAiB/8vB,KAAK4+8B,YAAY/r4B,OAAS7yE,KAAKm8N,OAAOtpJ,QACpHisM,EAAGwwgB,aAAenzsB,KAAKgkB,IAAIhkB,KAAKikB,IAAIpgG,KAAKi7K,OAAOpoG,OAAQisM,EAAGwwgB,cAAetvxB,KAAK4+8B,YAAY/r4B,OAAS7yE,KAAKm8N,OAAOtpJ,OACpH,CAEAqsjB,iBAAiBjuc,GACbjxL,KAAK+98B,aAAarC,oBAAsB,CAAC,WAAYzqxB,EACzD,CAEAitxB,aACIl+8B,KAAK+98B,aAAa1J,eAAiBr08B,KAAK+98B,aAAahB,sBAAsB/88B,KAAK298B,YAAc,IAC9F398B,KAAK+98B,aAAarC,oBAAsB,CACpC,QACA178B,KAAK+98B,aAAaj+vB,UAAU9/M,KAAK4+8B,YAAa5+8B,KAAK+98B,aAAa1J,gBAExE,CACA+J,cAAcl+8B,GACV,MAAM8/8B,EAAahg9B,KAAK298B,WACnB9g4B,MAAM,IACNsF,OAAQ+W,IAAY,MAANA,IAAWrmB,OAC9B,OAAK3yE,IAGqC,KAAnCA,EAAMA,EAAM2yE,OAAS,KAAM,IAAa3yE,EAAM2yE,OAASmt4B,GAC1D9/8B,EAAM2yE,QAAUmt4B,EAAa,GACtBhg9B,KAAKm+8B,uBAAuBj+8B,GAJ5B,IAOf,CACAu/8B,wBACI,OAAQz/8B,KAAK+98B,aAAaj8U,YAAYjvjB,QAClC7yE,KAAK+98B,aAAaj8U,YAAYjvjB,OAAS7yE,KAAK+98B,aAAa9iyB,OAAOpoG,MACxE,CACAsr4B,uBAAuBr8U,GACnB,MAAO,CACH9yK,KAAM,CACFixf,aAAcjg9B,KAAK298B,WACnB77U,eAGZ,CACAm8U,WACIj+8B,KAAK858B,qBAAqBt7sB,KAAMwwN,IAI5B,GAHqBA,EAChBnyY,MAAM,IACN2hL,KAAM2jU,IAASnikB,KAAK+98B,aAAaxK,kBAAkBjh4B,SAAS6vf,MAE7DnikB,KAAK4+8B,aACL5+8B,KAAKkg9B,kCAAkClg9B,KAAK858B,uBAC5C9qf,EAAK18Y,SAAS,KAA+C,CAC7D,MAAM8wD,GAAOpjI,KAAK+98B,aAAa1D,WAAWr68B,KAAK4+8B,cAAc/r4B,QACzD7yE,KAAK+98B,aAAa1D,WAAWrrf,IAAOn8Y,OACxC,GAAIuwD,GACA,OAAApjI,KAAK298B,WACD398B,KAAKq08B,eACDr08B,KAAK+98B,aAAa1J,eACdrlf,EAAK18Y,SAAS,KACRtyE,KAAK+98B,aAAahB,sBAAsB/tf,GACxCA,EACX5rV,GAEN,CACkB,cAAfpjI,KAAKi/8B,QACLj/8B,KAAK498B,yBAA0B,GAEnC,MAAMuC,GAAang9B,KAAK858B,qBAAqB958B,KAAK858B,qBAAqBjn4B,OAAS,IAC5E,GACJ7yE,KAAK298B,WACD398B,KAAKq08B,eACDr08B,KAAK+98B,aAAa1J,eACd8L,GAAW7t4B,SAAS,KACdtyE,KAAK+98B,aAAahB,sBAAsBoD,IACxCA,EACtB,CACJ,KACK,CACD,MAAMlyd,GAAQjuf,KAAK+98B,aACd1D,WAAWr68B,KAAK4+8B,cACf/h4B,MAAM,IACP+F,MAAM,CAACo7S,GAAWnqT,MACnB,MAAMus4B,GAAYpxf,EAAKnxY,OAAOhK,IAC9B,OAAO7zE,KAAK+98B,aAAazG,iBAAiBt5kB,GAAWoilB,GAAS,GAElE,GAAInyd,IAASjuf,KAAK698B,YACd,OAAA798B,KAAK298B,WAAa398B,KAAKq08B,eAAiBr08B,KAAK+98B,aAAa1J,eAAiBrlf,EACpEi/B,EAEf,GAER,CACAiyd,kCAAkC5h4B,GAC9B,MAAMi13B,EAAoBvz8B,KAAK+98B,aAAaxK,kBAM5C,OADqBj13B,EAAMnI,IAJ3B,SAASkq4B,GAAwB9ntB,IAC7B,MAAMp1H,GAAQ,IAAIwE,OAAO,IAAI4r0B,EAAkBp93B,IAAKktY,IAAO,KAAKA,MAAMnlY,KAAK,OAAQ,KACnF,OAAOq6K,GAAIjyM,QAAQ68E,GAAO,GAC9B,GAEoBvgD,MAAO21K,IAEU,IADR,IAAIr0P,IAAIq0P,IACT/0H,KAEhC,QACSxjI,KAAKqtD,UAAI,SAAA6oM,GAAA,WAAAA,GAAwFwntB,EAAgB,CAAqD,QACtK198B,KAAKipiB,UA77CkFl8e,MAAE,CAAA5jD,KA67CJu08B,EAAgBz9vB,UAAA,6CAAA4hB,aAAA,SAAA/yG,EAAAqlB,IAAA,EAAArlB,GA77Cd/hE,MAAE,0BA67CJonF,GAAAqq0B,SAAS,EA77CPzx5B,CA67Cc,iBAAAqxJ,IAAA,OAAhBjqE,GAAA87jB,QAAA7xf,GAAe,EA77CbrxJ,CA67Cc,yBAAAqxJ,IAAA,OAAhBjqE,GAAAsq0B,cAAArgwB,GAAqB,EA77CnBrxJ,CA67Cc,iBAAAqxJ,IAAA,OAAhBjqE,GAAAuq0B,QAAAtgwB,GAAe,EA77CbrxJ,CA67Cc,4BAAAqxJ,IAAA,OAAhBjqE,GAAAur0B,mBAAAthwB,GAA0B,EA77CxBrxJ,CA67Cc,0BAAAqxJ,IAAA,OAAhBjqE,GAAAwr0B,iBAAAvhwB,GAAwB,EA77CtBrxJ,CA67Cc,gBAAAqxJ,IAAA,OAAhBjqE,GAAAk2jB,OAAAjsf,GAAc,EA77CZrxJ,CA67Cc,iBAAAqxJ,IAAA,OAAhBjqE,GAAAu3F,QAAAttB,GAAe,EA77CbrxJ,CA67Cc,mBAAAqxJ,IAAA,OAAhBjqE,GAAAkijB,UAAAj4e,GAAiB,EAAD,EAAA8B,OAAA,CAAAm0vB,eAAA,4BAAAd,kBAAA,oBAAAtxkB,SAAA,WAAAhnN,OAAA,SAAAkhD,OAAA,SAAAn+I,kBAAA,oBAAAC,cAAA,gBAAAi13B,sBAAA,wBAAAC,YAAA,cAAAH,cAAA,gBAAAC,qBAAA,uBAAAG,oBAAA,sBAAAL,aAAA,eAAAD,gBAAA,kBAAAQ,WAAA,aAAAD,eAAA,iBAAAnytB,qBAAA,uBAAAsytB,iBAAA,mBAAAE,SAAA,WAAAE,oBAAA,sBAAAH,IAAA,MAAAI,iBAAA,mBAAAC,kBAAA,oBAAAH,uBAAA,0BAAAxzvB,QAAA,CAAA4zvB,WAAA,cAAAv1tB,SAAA,mBAAA/B,YAAA,EAAA1nJ,SAAA,CA77CdhoC,MA67C8wC,CACt2C,CACI+kB,QAASutjB,KACT3rE,YAAagqZ,EACbzr4B,OAAO,GAEX,CACIH,QAASyujB,KACT7sE,YAAagqZ,EACbzr4B,OAAO,GAEX+uK,IAx8CwFj0L,QAy8CpB,EAC/E,OA70BK2w5B,CAAgB,KAk7BhB4C,EAAW,MAAjB,MAAMA,EACF998B,cACIxC,KAAKkgT,kBAAiBjpE,OAAOy7tB,IAC7B1y8B,KAAK+98B,gBAAe9muB,OAAO+J,GAC3BhhP,KAAK858B,qBAAuB,GAC5B958B,KAAKgvd,KAAO,EAChB,CACAxyP,UAAUt8N,EAAO8ud,GAAQ/sF,eAAapvQ,IAAW,CAAC,GAC9C,MAAM0t1B,GAAgB,CAClBlM,eAAgBrlf,KACbhvd,KAAKkgT,kBACLrtL,GACHovQ,SAAU,IACHjiY,KAAK+98B,aAAa97kB,YAClBA,KAOX,GAJAzrT,OAAO0M,QAAQq93B,IAAers4B,QAAQ,EAAEtU,GAAK1/D,OAEzCF,KAAK+98B,aAAan+4B,IAAO1/D,KAEzB8ud,EAAK18Y,SAAS,MACd,OAAI08Y,EAAKnyY,MAAM,MAAMhK,OAAS,GAC1B7yE,KAAK858B,qBAAuB9qf,EAAKnyY,MAAM,MAAMk0D,KAAK,CAAC91C,GAAGH,KAC3CG,GAAEpoB,OAASioB,GAAEjoB,QAExB7yE,KAAKi+8B,SAAS/98B,GACPF,KAAK+98B,aAAaj+vB,UAAU,GAAG5/M,IAASF,KAAKgvd,QAGpDhvd,KAAK858B,qBAAuB,GACrB958B,KAAK+98B,aAAaj+vB,UAAU,GAAG5/M,IAASF,KAAKgvd,OAG5D,GAAIA,EAAK18Y,SAAS,KACd,OAAOtyE,KAAK+98B,aAAaj+vB,UAAU,GAAG5/M,IAASF,KAAK+98B,aAAahB,sBAAsB/tf,IAE3F,GAAIA,EAAKx8Y,WAAW,aAA6C,CACzDqgD,GAAO50C,gBACPj+E,KAAK+98B,aAAa9/3B,cAAgB40C,GAAO50C,eAEzC40C,GAAO70C,oBACPh+E,KAAK+98B,aAAa//3B,kBAAoB60C,GAAO70C,mBAE7C60C,GAAO6g1B,WAEP1z8B,KAAK+98B,aAAarK,SAAW7g1B,GAAO6g1B,UAGxCxz8B,EAAQu8E,OAAOv8E,GACf,MAAM6/8B,GAAsB//8B,KAAK+98B,aAAaV,6BACzC958B,MAAMujD,QAAQ9mD,KAAK+98B,aAAa9/3B,iBAEjC/9E,EACIF,KAAK+98B,aAAa9/3B,gBAAkB8h4B,GAC9B7/8B,EAAMomD,QAAQy55B,GAAqB//8B,KAAK+98B,aAAa9/3B,eACrD/9E,GAEVF,KAAK+98B,aAAarK,UAClBxz8B,IAC4C,IAA5CF,KAAK+98B,aAAa7K,wBAElBhz8B,EAAQF,KAAK+98B,aAAanB,gBAAgB5tf,EAAM9ud,IAEZ,MAApCF,KAAK+98B,aAAa9/3B,gBAElB/9E,EAAQA,EAAM0yE,WAAWtsB,QAAQ,IAA8B,MAEnEtmD,KAAK+98B,aAAavE,eAAgB,CACtC,CACA,OACWx58B,KAAK+98B,aAAaj+vB,UADf,MAAV5/M,EACmC,GAEJ,GAAGA,IAFK8ud,EAG/C,CACAivf,SAAS/98B,GACDF,KAAK858B,qBAAqBjn4B,OAAS,GACnC7yE,KAAK858B,qBAAqBt7sB,KAAMwwN,IAC5B,MAAM5rV,GAAOpjI,KAAK+98B,aAAa1D,WAAWn68B,IAAQ2yE,QAC9C7yE,KAAK+98B,aAAa1D,WAAWrrf,IAAOn8Y,OACxC,GAAI3yE,GAASkjI,GACT,OAAApjI,KAAKgvd,KAAOA,EACL5rV,GAKPpjI,KAAKgvd,KAFchvd,KAAK858B,qBAAqB958B,KAAK858B,qBAAqBjn4B,OAAS,IAC5E,EAER,EAGZ,QACS7yE,KAAKqtD,UAAI,SAAA6oM,GAAA,WAAAA,GAAwFoqtB,EAAW,CAAgD,QAC5Jtg9B,KAAKgkjB,WA5oDkFj3f,MAAE,CAAA8L,KAAA,OAAA1vD,KA4oDMm38B,EAAW1guB,MAAA,EAAAnD,YAAA,GAAuC,EAC7J,OA9FK6juB,CAAW,8NC/2Ef,IAEIE,EAAgC,MAAtC,MAAMA,GACFh+8B,cACIxC,KAAKyg9B,iBAAmB,IAAIrt4B,IAAgB,CAAC,GAC7CpzE,KAAK0g9B,YAAc1g9B,KAAKyg9B,iBAAiBzu2B,cAC7C,QACShyG,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFsqtB,GAAgC,CAAsD,QACvLxg9B,KAAKm2P,WADkFppM,MAAE,CAAAgnC,MACYys3B,GAAgCpz5B,QAAhCoz5B,GAAgCnz5B,WAAK,EACtJ,OAPKmz5B,EAAgC,KAYtC,MAAMG,EAA0B,IAAIl4a,MAAe,2BAA2B,IACxEm4a,EAAkC,MAAxC,MAAMA,GACFp+8B,YAAYq+8B,GAAU,EAAOC,IACzB9g9B,KAAK6g9B,QAAUA,EACf7g9B,KAAK8g9B,mBAAqBA,GAC1B9g9B,KAAKyg9B,iBAAmBzg9B,KAAK6g9B,QAAU,IAAIzt4B,IAAgB,CAAC,GAAKpzE,KAAK8g9B,mBAAmBL,iBACzFzg9B,KAAK0g9B,YAAc1g9B,KAAKyg9B,iBAAiBzu2B,eACzChyG,KAAK+g9B,4BAA8B/g9B,KAAK6g9B,aAAUxg9B,EAAYL,KAAK8g9B,mBAAmBC,4BACtF/g9B,KAAKgh9B,8BAAgChh9B,KAAK6g9B,aAAUxg9B,EAAYL,KAAK8g9B,mBAAmBE,6BAC5F,CACAC,+BAA+Bpo5B,GACvB74D,KAAK6g9B,QACL7g9B,KAAK+g9B,4BAA8B/g9B,KAAKkh9B,mBAAmBro5B,IAG3D74D,KAAK8g9B,mBAAmBC,4BAA8B/g9B,KAAKkh9B,mBAAmBro5B,GAC9E74D,KAAK+g9B,4BAA8B/g9B,KAAK8g9B,mBAAmBC,4BAEnE,CACAI,iCAAiCto5B,GACzB74D,KAAK6g9B,QACL7g9B,KAAKgh9B,8BAAgChh9B,KAAKkh9B,mBAAmBro5B,IAG7D74D,KAAK8g9B,mBAAmBE,8BAAgChh9B,KAAKkh9B,mBAAmBro5B,GAChF74D,KAAKgh9B,8BAAgChh9B,KAAK8g9B,mBAAmBE,8BAErE,CACAI,sBAAsBxh5B,EAAK02C,IACvBt2G,KAAKyg9B,iBAAiBvg9B,MAAM0/D,GAAO02C,EACvC,CACA+q2B,YAAYzh5B,GACR,OAAO5/D,KAAKyg9B,iBAAiBvg9B,MAAM0/D,EACvC,CACA0h5B,mBACI,OAAOth9B,KAAKyg9B,iBAAiBvg9B,KACjC,CACAgh9B,mBAAmBro5B,GACf,GAAI74D,KAAKyg9B,iBAAiBvg9B,MAAM24D,IAAS74D,KAAKuh9B,qBAAqB1o5B,GAC/D,OAAOA,EAGP,MAAM,IAAI/0D,MAAM,QAAQ+0D,0CAEhC,CACA0o5B,qBAAqBppd,GACjB,MA7DE,SA6DKA,GA9DH,WA8D2DA,CACnE,QACSn4f,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF0qtB,IAvDV7z5B,MAuD8D4z5B,GAvD9D5z5B,MAuDkGyz5B,GAAgC,CAA+C,QACxQxg9B,KAAKm2P,WAxDkFppM,MAAE,CAAAgnC,MAwDY6s3B,GAAkCxz5B,QAAlCwz5B,GAAkCvz5B,WAAK,EACxJ,OAjDKuz5B,EAAkC,KAyDxC,SAAS1+1B,EAAWhiH,IAChB,MAAwB,mBAAVA,EAClB,CACA,SAASgkH,GAAchkH,IACnB,GAA8C,oBAA1Cs2E,OAAOqrD,UAAUjvD,SAASmnC,KAAK75G,IAC/B,OAAO,EAEN,CACD,MAAM2hI,GAAYrrD,OAAOC,eAAev2E,IACxC,OAAqB,OAAd2hI,IAAsBA,KAAcrrD,OAAOqrD,SACtD,CACJ,CAIA,SAASne,GAAUxjH,IACf,MAAwB,kBAAVA,EAClB,CAUA,SAASsh9B,GAAuBth9B,IAC5B,OAhBJ,SAAS2gH,GAAS3gH,IACd,QAASA,IAA0B,iBAAVA,EAC7B,CAcQ2gH,CAAS3gH,IACF,CAACA,IAELA,EACX,CAAC,IAEKuh9B,GAAmB,MAAzB,MAAMA,GACFj/8B,cACIxC,KAAK0h9B,kBAAoB,IAAItu4B,IAAgB,CAAC,GAC9CpzE,KAAK2h9B,aAAe3h9B,KAAK0h9B,kBAAkB1v2B,cAC/C,QACShyG,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFurtB,GAAmB,CAAsD,QAC1Kzh9B,KAAKm2P,WAzGkFppM,MAAE,CAAAgnC,MAyGY0t3B,GAAmBr05B,QAAnBq05B,GAAmBp05B,WAAK,EACzI,OAPKo05B,EAAmB,KAYzB,MAAMG,GAAwB,IAAIn5a,MAAe,yBAAyB,IACpEo5a,GAAqB,MAA3B,MAAMA,GACFr/8B,YAAYq+8B,GAAU,EAAOiB,IACzB9h9B,KAAK6g9B,QAAUA,EACf7g9B,KAAK8h9B,iBAAmBA,GACxB9h9B,KAAK0h9B,kBAAoB1h9B,KAAK6g9B,QAAU,IAAIzt4B,IAAgB,CAAC,GAAKpzE,KAAK8h9B,iBAAiBJ,kBACxF1h9B,KAAK2h9B,aAAe3h9B,KAAK0h9B,kBAAkB1v2B,cAC/C,CAIA+v2B,mBACI/h9B,KAAK0h9B,kBAAkBjz4B,KAAK,CAAC,EACjC,CACAkkK,cAAc31B,GACV,OAAKA,GAAez5M,MAAMujD,QAAQk2J,IAAqC,IAAtBA,EAAWnqI,OACjDyc,QAAQE,SAAQ,IAE3BwtH,EAAawkwB,GAAuBxkwB,GAC7Bh9M,KAAKgi9B,mBAAmBhlwB,GACnC,CACAN,gBAAgBH,EAAa0lwB,IACzB,MAAMC,GAAiB3lwB,EAAYvhH,OAAO,CAAChtB,GAAQnV,KAAS74D,KAAKmi9B,iBAAiBn04B,GAAQnV,GAAMop5B,IAAqB,CAAC,GACtHji9B,KAAK0h9B,kBAAkBjz4B,KAAKyz4B,GAChC,CACAE,cAAcplwB,EAAYilwB,IACtB,GAAI1+8B,MAAMujD,QAAQk2J,GAAa,CAC3B,MAAMT,GAAcS,EAAWhiH,OAAO,CAAChtB,GAAQnV,KAAS74D,KAAKmi9B,iBAAiBn04B,GAAQnV,GAAMop5B,IAAqBji9B,KAAK0h9B,kBAAkBxh9B,OACxIF,KAAK0h9B,kBAAkBjz4B,KAAK8tI,GAChC,KACK,CACD,MAAMA,GAAcv8M,KAAKmi9B,iBAAiBni9B,KAAK0h9B,kBAAkBxh9B,MAAO88M,EAAYilwB,IACpFji9B,KAAK0h9B,kBAAkBjz4B,KAAK8tI,GAChC,CACJ,CACA8lwB,iBAAiBC,GACb,MAAM/lwB,GAAc,IACbv8M,KAAK0h9B,kBAAkBxh9B,cAEvBq8M,GAAY+lwB,GACnBti9B,KAAK0h9B,kBAAkBjz4B,KAAK8tI,GAChC,CACAgmwB,cAAc1p5B,GACV,OAAO74D,KAAK0h9B,kBAAkBxh9B,MAAM24D,EACxC,CACA45K,iBACI,OAAOzyO,KAAK0h9B,kBAAkBxh9B,KAClC,CACAii9B,iBAAiBn04B,EAAQnV,GAAMop5B,IAC3B,OAAMA,IAAsB//1B,EAAW+/1B,IAC5B,IACAj04B,EACHw04B,CAAC3p5B,IAAO,CAAEA,QAAMop5B,wBAGjB,IACAj04B,EACHw04B,CAAC3p5B,IAAO,CAAEA,SAElB,CACAmp5B,mBAAmBzlwB,GACf,MAAMl5B,GAAWk5B,EAAYpmI,IAAIvW,KAC7B,GAAI5/D,KAAKyi9B,gCAAgC7i5B,IAAM,CAC3C,MAAMqi5B,GAAqBji9B,KAAK0h9B,kBAAkBxh9B,MAAM0/D,IAAKqi5B,mBACvDS,GAAiB,IAAK1i9B,KAAK0h9B,kBAAkBxh9B,OACnD,SAAOyxE,MAAG,MAAM/qB,QAAKuvB,KAAI,IAAM8r4B,GAAmBri5B,GAAK8i5B,MAAe,EAAG312B,MAAWvS,IAAYkpB,GAAUlpB,KAAO,EAC7G7oB,MAAG6oB,IAAWA,KAAO,EAAGhpB,MAAW,OAAMG,OAAG,IACpD,CAEA,SAAOA,QAAK3xE,KAAK0h9B,kBAAkBxh9B,MAAM0/D,IAAI,GAEjD,SAAOp8D,KAAK6/K,IAAUz8H,QAAKi0e,SAAS,EAAG1uV,MAAOlsM,KAAkB,IAATA,IAAgB,IAAK,EAAGk2E,KAAKl2E,KAAkB,IAATA,KAAiBw2hB,YAAY/0b,KAAMzhG,IAASA,GAC7I,CACAwi9B,gCAAgC7i5B,GAC5B,QAAS5/D,KAAK0h9B,kBAAkBxh9B,MAAM0/D,MAChC5/D,KAAK0h9B,kBAAkBxh9B,MAAM0/D,GAAKqi5B,oBACpC//1B,EAAWliH,KAAK0h9B,kBAAkBxh9B,MAAM0/D,GAAKqi5B,mBACrD,QACSji9B,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF2rtB,IA7LV905B,MA6LiD605B,IA7LjD705B,MA6LmF005B,IAAmB,CAA+C,QAC5Ozh9B,KAAKm2P,WA9LkFppM,MAAE,CAAAgnC,MA8LY8t3B,GAAqBz05B,QAArBy05B,GAAqBx05B,WAAK,EAC3I,OA/EKw05B,EAAqB,KAuF3B,MAAMc,GACFng9B,cACIxC,KAAK4i9B,YAAc,IAAIxv4B,IAAgB,CAAC,GACxCpzE,KAAK6i9B,OAAS7i9B,KAAK4i9B,YAAY5w2B,cACnC,EAGJ,MAAM8w2B,GAAkB,IAAIr6a,MAAe,mBAAmB,IACxDs6a,GAAe,MAArB,MAAMA,GACFvg9B,YAAYq+8B,GAAU,EAAOmC,GAAY/mwB,IACrCj8M,KAAK6g9B,QAAUA,EACf7g9B,KAAKgj9B,WAAaA,GAClBhj9B,KAAKi8M,mBAAqBA,GAC1Bj8M,KAAK4i9B,YAAc5i9B,KAAK6g9B,QAAU,IAAIzt4B,IAAgB,CAAC,GAAKpzE,KAAKgj9B,WAAWJ,YAC5E5i9B,KAAK6i9B,OAAS7i9B,KAAK4i9B,YAAY5w2B,cACnC,CACAix2B,QAAQpq5B,EAAMop5B,IACV,MAAMj6wB,GAAQ,IACPhoM,KAAK4i9B,YAAY1i9B,MACpBshY,CAAC3oU,GAAO,CAAEA,OAAMop5B,wBAEpBji9B,KAAK4i9B,YAAYn04B,KAAKu5H,GAC1B,CACAk7wB,uBAAuBrq5B,EAAM0jJ,IACzBv8M,KAAKi8M,mBAAmBmmwB,cAAc7lwB,IACtCv8M,KAAKij9B,QAAQpq5B,EAAM0jJ,GACvB,CACA4mwB,SAASC,GACL5s4B,OAAO0Q,KAAKk83B,GAAUlv4B,QAAQ,CAACtU,GAAKiU,MAChC7zE,KAAKij9B,QAAQrj5B,GAAKwj5B,EAASxj5B,IAAI,EAEvC,CACAyj5B,wBAAwBD,GACpB5s4B,OAAO0Q,KAAKk83B,GAAUlv4B,QAAQ,CAACtU,GAAKiU,MAChC7zE,KAAKkj9B,uBAAuBtj5B,GAAKwj5B,EAASxj5B,IAAI,EAEtD,CACA0j5B,aACItj9B,KAAK4i9B,YAAYn04B,KAAK,CAAC,EAC3B,CACA804B,2BACIvj9B,KAAKsj9B,aACLtj9B,KAAKi8M,mBAAmB8lwB,kBAC5B,CACAyB,WAAWC,GACP,MAAMz7wB,GAAQ,IACPhoM,KAAK4i9B,YAAY1i9B,cAEjB8nM,GAAMy7wB,GACbzj9B,KAAK4i9B,YAAYn04B,KAAKu5H,GAC1B,CACA07wB,WACI,OAAO1j9B,KAAK4i9B,YAAY1i9B,KAC5B,CACAyj9B,QAAQ9q5B,GACJ,OAAO74D,KAAK4i9B,YAAY1i9B,MAAM24D,EAClC,CACA+q5B,aAAa7lrB,GAET,OADsBA,GAAUx6R,MAAMujD,QAAQi3O,IAA2B,IAAjBA,EAAMlrN,OAEnDyc,QAAQE,SAAQ,IAE3BuuM,EAAQyjrB,GAAuBzjrB,GACxBzuM,QAAQ6/J,IAAI,CAACnvP,KAAK6j9B,WAAW9lrB,GAAQ/9R,KAAK8j9B,kBAAkB9j9B,KAAK4i9B,YAAY1i9B,MAAO69R,KACtFr8L,KAAK,EAAEqi3B,GAAUC,MACXD,IAAYC,IAE3B,CACAH,WAAWJ,GACP,MAAMpgyB,GAAWogyB,EAAStt4B,IAAKvW,KAI3B,GAHgC5/D,KAAK4i9B,YAAY1i9B,MAAM0/D,KACjD5/D,KAAK4i9B,YAAY1i9B,MAAM0/D,IAAKqi5B,oBAC9B//1B,EAAWliH,KAAK4i9B,YAAY1i9B,MAAM0/D,IAAKqi5B,sBA5LvD,SAASvmb,GAAUlhc,IACf,MAAmD,qBAA5ChkB,OAAOqrD,UAAUjvD,SAASmnC,KAAKvf,GAC1C,CA2L0Ckhc,CAAU17hB,KAAK4i9B,YAAY1i9B,MAAM0/D,IAAKqi5B,oBAAqB,CACrF,MAAMA,GAAqBji9B,KAAK4i9B,YAAY1i9B,MAAM0/D,IAAKqi5B,mBACjDS,GAAiB,IAAK1i9B,KAAK4i9B,YAAY1i9B,OAC7C,SAAOyxE,MAAG,MAAM/qB,QAAKuvB,KAAI,IAAM8r4B,GAAmBri5B,GAAK8i5B,MAAe,EAAG312B,MAAWvS,IAAYkpB,GAAUlpB,KAAO,EAC7G7oB,MAAG6oB,IAAWA,KAAO,EAAGhpB,MAAW,OAAMG,OAAG,IACpD,CACA,SAAOA,OAAG,EAAK,GAEnB,SAAOnuE,KAAK6/K,IAAUz8H,QAAKi0e,SAAS,EAAG1uV,MAAOlsM,KAAkB,IAATA,IAAgB,IAAK,EAAGk2E,KAAKl2E,KAAkB,IAATA,KAAiBw2hB,YAAY/0b,KAAMzhG,IAASA,GAC7I,CACA6j9B,kBAAkB97wB,EAAOi8wB,IACrB,SAAOzg9B,KAAKyg9B,IAAWr95B,QAAK0oB,KAAU1P,IAC9BooI,EAAMpoI,KAAQr8D,MAAMujD,QAAQkhJ,EAAMpoI,IAAKqi5B,qBAAkB,EAClDz+8B,KAAKwkM,EAAMpoI,IAAKqi5B,oBAAoBr75B,QAAK0oB,KAAU0tI,IAAeh9M,KAAKi8M,mBAAmB02B,cAAc31B,KC5SxH,SAASp6H,GAAM0/M,GAAWlT,IAC7B,SAAOrhN,KAAQ,CAACC,EAAQC,MACpB,IAAI4F,GAAQ,EACZ7F,EAAOxmB,aAAU8mB,KAAyBL,GAAa/tE,KAC9CoiS,GAAUvoL,KAAKq1K,GAASlvR,GAAO2zE,KAAS7F,KACzCC,GAAWQ,MAAK,GAChBR,GAAWmgC,WAAS,EAEzB,KACCngC,GAAWQ,MAAK,GAChBR,GAAWmgC,UAAS,GACtB,EAEV,CD+R6IxrB,CAAM+vJ,KAAmC,IAAlBA,MAAuB,EAExKhhK,OAAG,KACb,EAAGw6H,MAAMwmC,KAAmC,IAAlBA,IAAwB,IAAQ8jT,WAC/D,QACSz2hB,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF6stB,IAlSVh25B,MAkS2C+15B,IAlS3C/15B,MAkSuE415B,IAlSvE515B,MAkSiG805B,IAAqB,CAA+C,QAC5P7h9B,KAAKm2P,WAnSkFppM,MAAE,CAAAgnC,MAmSYgv3B,GAAe315B,QAAf215B,GAAe115B,WAAK,EACrI,OArFK015B,EAAe,KAkVfmB,GAAmB,MAAzB,MAAMA,GACF1h9B,YAAYy5M,EAAoBkowB,GAAc3/wB,IAC1CxkM,KAAKi8M,mBAAqBA,EAC1Bj8M,KAAKmk9B,aAAeA,GACpBnk9B,KAAKwkM,OAASA,EAClB,CACAk9d,YAAYn5kB,EAAOmY,IACf,OAAO1gG,KAAKgk9B,eAAez73B,EAAOmY,GACtC,CACA4gkB,iBAAiBua,EAAYn7kB,IACzB,OAAO1gG,KAAKgk9B,eAAenoS,EAAYn7kB,GAC3C,CACA65jB,QAAQhykB,GACJ,OAAOvoF,KAAKgk9B,eAAez73B,EAC/B,CACA8ukB,SAAS9ukB,GACL,OAAOvoF,KAAKgk9B,eAAez73B,EAC/B,CACAy73B,eAAez73B,EAAOmY,IAClB,MACM67G,GAAcv8M,KAAKok9B,oBADM773B,GAASA,EAAMtoF,KAAOsoF,EAAMtoF,KAAKs8M,YAAiB,CAAC,EACfh0H,EAAOmY,IAC1E,OAAI1gG,KAAKqk9B,qBAAqB9nwB,GAAY+nwB,QAC/Btk9B,KAAKuk9B,mCAAmChowB,GAAah0H,EAAOmY,KAEnE1gG,KAAKqk9B,qBAAqB9nwB,GAAYiowB,OAC/Bxk9B,KAAKyk9B,iCAAiClowB,GAAah0H,EAAOmY,GAGzE,CACA0j3B,oBAAoB7nwB,EAAah0H,GAAOmY,IAQpC,MAAO,CACH8j3B,KARSti2B,EAAWq6F,EAAYiowB,MAC9BjowB,EAAYiowB,KAAKj83B,GAAOmY,IACxB8g3B,GAAuBjlwB,EAAYiowB,MAOrCF,OANWpi2B,EAAWq6F,EAAY+nwB,QAChC/nwB,EAAY+nwB,OAAO/73B,GAAOmY,IAC1B8g3B,GAAuBjlwB,EAAY+nwB,QAKrCv1tB,WAJexyC,EAAYwyC,WAMnC,CACAs1tB,qBAAqBrnwB,GACjB,QAASA,GAAcA,EAAWnqI,OAAS,CAC/C,CACA0x4B,mCAAmChowB,EAAah0H,GAAOmY,IACnD,GAAM67G,EAAYwyC,aACT7sI,EAAWq6F,EAAYwyC,aACpB7qI,GAAcq4F,EAAYwyC,cAAgB/uP,KAAK0k9B,4BAA4BnowB,EAAYwyC,aAAe,CAC9G,IAAI41tB,GAAmB,GACvB,SAAOnh9B,KAAK+4M,EAAY+nwB,QACnB195B,QAAK0oB,KAASs14B,OACR5z2B,MAAS,CACZhxG,KAAKi8M,mBAAmB02B,cAAciyuB,IACtC5k9B,KAAKmk9B,aAAaP,aAAagB,MAChCh+5B,QAAKsjL,KAAI85uB,KACoBA,GAAeph4B,MAAM+vJ,KAAmC,IAAlBA,MAE9DgyuB,GAAmBC,SAG9B,EAAGz4wB,MAAM63wB,IAAkBA,GAAexltB,KAAK7rB,KAAmC,IAAlBA,KAAyB,IAAK,EAAGrjK,KAASu14B,IACjGF,IACF3k9B,KAAK8k9B,iCAAiCvowB,EAAaoowB,GAAkBp83B,GAAOmY,KAAK,EAC1E/uB,OAAG,KAETkz4B,IAActowB,EAAYiowB,KACpBxk9B,KAAK+k9B,kBAAkBxowB,EAAah0H,GAAOmY,KAAK,EAEpD/uB,OAAIkz4B,MAEVpub,WACT,CACA,OAAOnnc,QAAQ6/J,IAAI,CACfnvP,KAAKi8M,mBAAmB02B,cAAcp2B,EAAY+nwB,QAClDtk9B,KAAKmk9B,aAAaP,aAAarnwB,EAAY+nwB,UAC5C5i3B,KAAK,EAAEixI,GAAeoxuB,MACjBpxuB,IAAiBoxuB,IACbxnwB,EAAYwyC,YACZ/uP,KAAKgl9B,uBAAuBzowB,EAAYwyC,WAAYxmK,GAAOmY,KAExD,IAEP67G,EAAYiowB,MACLxk9B,KAAKil9B,qBAAqB1owB,EAAah0H,GAAOmY,IAIjE,CACAsk3B,uBAAuBE,EAAsB383B,GAAOmY,GAAOyk3B,IACvD,MAAMp2tB,GAAa7sI,EAAWgj2B,GACxBA,EAAqBC,GAAsB583B,GAAOmY,IAClDwk3B,EACN,GAAIll9B,KAAK0k9B,4BAA4B31tB,IAIjC,OAHAA,GAAWq2tB,mBAAqBpl9B,KAAKql9B,4BAA4Bt2tB,GAAWq2tB,mBAAoB783B,GAAOmY,IACvGquJ,GAAWo4a,iBAAmBnnqB,KAAKsl9B,0BAA0Bv2tB,GAAWo4a,iBAAkB5+kB,GAAOmY,SACjG1gG,KAAKwkM,OAAO6iC,SAAS0nB,GAAWq2tB,mBAAoBr2tB,GAAWo4a,kBAG/D5jqB,MAAMujD,QAAQioM,IACd/uP,KAAKwkM,OAAO6iC,SAAS0nB,IAGrB/uP,KAAKwkM,OAAO6iC,SAAS,CAAC0nB,IAE9B,CACA21tB,4BAA4Brj2B,GACxB,OAAQ6C,GAAc7C,OAAcA,EAAO+j2B,sBAAwB/j2B,EAAO8ljB,iBAC9E,CACAk+S,4BAA4BD,EAAoB783B,GAAOmY,IACnD,OAAOwhB,EAAWkj2B,GACZA,EAAmB783B,GAAOmY,IAC1B0k3B,CACV,CACAE,0BAA0Bn+S,EAAkB5+kB,GAAOmY,IAC/C,OAAOwhB,EAAWiljB,GACZA,EAAiB5+kB,GAAOmY,IACxBymkB,CACV,CACA49S,kBAAkBxowB,EAAah0H,GAAOmY,IAClC,IAAIik3B,GAAmB,GACvB,SAAOnh9B,KAAK+4M,EAAYiowB,MACnB595B,QAAK0oB,KAASi24B,OACRv02B,MAAS,CACZhxG,KAAKi8M,mBAAmB02B,cAAc4yuB,IACtCvl9B,KAAKmk9B,aAAaP,aAAa2B,MAChC3+5B,QAAKsjL,KAAI85uB,KACOA,GAAeph4B,MAAM+vJ,KAAmC,IAAlBA,MAEjDgyuB,GAAmBY,SAG9B,EAAGp5wB,MAAM63wB,IACF9h2B,EAAWq6F,EAAYwyC,YAChBi1tB,GAAexltB,KAAK7rB,KAAmC,IAAlBA,IAEzCqxuB,GAAeph4B,MAAM+vJ,KAAmC,IAAlBA,KAC9C,IAAK,EAAGrjK,KAAUkxzB,IACbt+wB,EAAWq6F,EAAYwyC,YACnByxoB,MACO7uzB,OAAG,IAGV3xE,KAAK8k9B,iCAAiCvowB,EAAaoowB,GAAkBp83B,GAAOmY,KAAK,EAC1E/uB,OAAG,KAIRgz4B,IACF3k9B,KAAK8k9B,iCAAiCvowB,EAAaoowB,GAAkBp83B,GAAOmY,KAAK,EAE9E/uB,OAAI6uzB,OAGd/pW,WACT,CACAqub,iCAAiCvowB,EAAaoowB,GAAkBp83B,GAAOmY,IAC/D1gG,KAAKwl9B,uCAAuCjpwB,EAAaoowB,IACzD3k9B,KAAKgl9B,uBAAuBzowB,EAAYwyC,WAAW41tB,IAAmBp83B,GAAOmY,GAAOik3B,IAGhFzi2B,EAAWq6F,EAAYwyC,YACvB/uP,KAAKgl9B,uBAAuBzowB,EAAYwyC,WAAYxmK,GAAOmY,GAAOik3B,IAGlE3k9B,KAAKgl9B,uBAAuBzowB,EAAYwyC,WAA+B,QAAGxmK,GAAOmY,GAAOik3B,GAGpG,CACAa,uCAAuCjpwB,EAAaoowB,IAChD,QAAUpowB,EAAYwyC,YAAcxyC,EAAYwyC,WAAW41tB,GAC/D,CACAM,qBAAqBQ,EAAiBl93B,GAAOmY,IACzC,MAAM67G,GAAc,IACbkpwB,GAEP,OAAOn23B,QAAQ6/J,IAAI,CACfnvP,KAAKi8M,mBAAmB02B,cAAcp2B,GAAYiowB,MAClDxk9B,KAAKmk9B,aAAaP,aAAarnwB,GAAYiowB,QAC5C9i3B,KAAK,EAAEixI,GAAe+yuB,SACjB/yuB,KAAiB+yuB,KAGjBnpwB,GAAYwyC,YACZ/uP,KAAKgl9B,uBAAuBzowB,GAAYwyC,WAAYxmK,GAAOmY,IAExD,IAEf,CACA+j3B,iCAAiClowB,EAAah0H,GAAOmY,IACjD,OAAKwhB,EAAWq6F,EAAYwyC,aACrB7qI,GAAcq4F,EAAYwyC,cAAgB/uP,KAAK0k9B,4BAA4BnowB,EAAYwyC,YACnF/uP,KAAK+k9B,kBAAkBxowB,EAAah0H,GAAOmY,IAE/C1gG,KAAKil9B,qBAAqB1owB,EAAah0H,GAAOmY,GACzD,QACS1gG,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFgutB,IAtuBVn35B,MAsuB+C805B,IAtuB/C905B,MAsuBiFg25B,IAtuBjFh25B,MAsuB6GG,MAAS,CAA+C,QAC5PltD,KAAKm2P,WAvuBkFppM,MAAE,CAAAgnC,MAuuBYmw3B,GAAmB925B,QAAnB825B,GAAmB725B,WAAK,EACzI,OAvMK625B,EAAmB,KAsUnB3hsB,GAAoB,MAA1B,MAAMA,GACF,cAAOzhC,CAAQjuH,EAAS,CAAC,GACrB,MAAO,CACHkuH,SAAUwhC,GACVX,UAAW,CACP6/rB,GACAkB,GACAnC,EACAqB,GACAqC,GACAnB,GACAnC,EACA,CAAE9u4B,QAAS8v4B,GAAuBpgsB,SAAU3uJ,EAAO8y1B,oBACnD,CAAE7z4B,QAASgx4B,GAAiBthsB,SAAU3uJ,EAAO+y1B,cAC7C,CAAE9z4B,QAAS6u4B,EAAyBn/rB,SAAU3uJ,EAAOgz1B,uBAGjE,CACA,eAAO15S,CAASt5iB,EAAS,CAAC,GACtB,MAAO,CACHkuH,SAAUwhC,GACVX,UAAW,CACP,CAAE9vM,QAAS8v4B,GAAuBpgsB,SAAU3uJ,EAAO8y1B,oBACnD,CAAE7z4B,QAASgx4B,GAAiBthsB,SAAU3uJ,EAAO+y1B,cAC7C,CAAE9z4B,QAAS6u4B,EAAyBn/rB,SAAU3uJ,EAAOgz1B,sBACrDjF,EACAiB,GACAkB,GACAmB,IAGZ,QACSlk9B,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFqsB,GAAoB,CAAoD,QACzKviR,KAAK6hR,UAx4BkF90N,KAAE,CAAA5jD,KAw4BSo5Q,IAAsG,QACxMviR,KAAK8hR,UAz4BkF/0N,MAAE,GAy4BkC,EACvI,OAnCKw1N,EAAoB,0FEr3B1B,MAAMujsB,EAAiB,CACnBC,QAAS,CACL,CAAC,OAAQ,SAAU,YAAa,UAChC,CAAC,aAAc,cACf,CAAC,CAAEl23B,OAAQ,GAAK,CAAEA,OAAQ,IAC1B,CAAC,CAAE+uX,KAAM,WAAa,CAAEA,KAAM,WAC9B,CAAC,CAAE11T,OAAQ,OAAS,CAAEA,OAAQ,UAC9B,CAAC,CAAEgrT,OAAQ,MAAQ,CAAEA,OAAQ,OAC7B,CAAC,CAAEnkH,UAAW,QACd,CAAC,CAAEvsN,KAAM,CAAC,SAAS,EAAO,QAAS,UACnC,CAAC,CAAE3zC,OAAQ,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,GAAG,KAC9B,CACI,CAAE0uI,MAAO,IACT,CAAE0mB,WAAY,KAElB,CAAC,CAAEm7C,KAAM,KACT,CAAC,CAAE4Q,MAAO,KACV,CAAC,SACD,CAAC,OAAQ,QAAS,WAKpBg1qB,EAAqB,IAAIv9a,MAAe,SAAU,CACpDzxd,WAAY,OACZ5pB,QAASA,MAASwlV,QAASkzkB,uEC1BxB,SAASG,EAAej44B,GAAQ6kD,IACnC,MAAMqz1B,GAA8B,iBAAXrz1B,GACzB,OAAO,IAAIvjC,QAAQ,CAACE,GAASD,MACzB,MAAMthB,GAAa,IAAI+nd,KAAe,CAClCvnd,KAAOvuE,KACHsvF,GAAQtvF,IACR+tE,GAAWS,aAAY,EAE3Ba,MAAOggB,GACP6e,SAAUA,KACF832B,GACA123B,GAAQqjC,GAAOnH,cAGfn8B,GAAO,IAAImxc,IAAY,IAInC1yd,GAAOxmB,UAAUymB,GAAU,EAEnC,kECtBsE,MAAA4yI,EAAA,iHAAAyS,EAAA,kGAAA6yvB,GAAAr31B,GAAAqlB,IAAA,EAAArlB,IAkF8B/hE,MAAE,UAwoB9D,UAAAq55B,GAAAt31B,GAAAqlB,IAAA,EAAArlB,IAxoB4D/hE,MAAE,UA0oB9D,UAAAs55B,GAAAv31B,GAAAqlB,IADzB,GACyB,EAAArlB,IA1oB4D/hE,MAAE,EAAAo55B,GAAA,YAAFp55B,CAuoB9E,EAAAq55B,GAAA,aAEP,EAAAt31B,GAAA,OAAA+yF,GAzoBqF90J,cAAE80J,GAAAykwB,SAAA,IA2oB/F,WAAAC,GAAAz31B,GAAAqlB,IAAA,EAAArlB,IA3oB6F/hE,MAAE,UAopB9D,UAAAy55B,GAAA131B,GAAAqlB,IAAA,EAAArlB,IAppB4D/hE,MAAE,UAspB9D,UAAA055B,GAAA331B,GAAAqlB,IADzB,GACyB,EAAArlB,IAtpB4D/hE,MAAE,EAAAw55B,GAAA,YAAFx55B,CAmpB9E,EAAAy55B,GAAA,aAEP,EAAA131B,GAAA,OAAA+yF,GArpBqF90J,cAAE80J,GAAAykwB,SAAA,IAupB/F,WAAAI,GAAA531B,GAAAqlB,IAAA,EAAArlB,IAvpB6F/hE,MAAE,UAy2BtE,UAAA455B,GAAA731B,GAAAqlB,IAAA,EAAArlB,IAz2BoE/hE,MAAE,UA22BtE,CAj7BhC,MAAM655B,GAAYA,CAAChp4B,GAAQip4B,KACFjp4B,IAAUip4B,IACR,OAG3B,IACMC,GAAY,MAAlB,MAAMA,GACFtk9B,YAAYigjB,GAAU5vb,IAAQ,IAAAtmC,GAAAvsF,KAC1BA,KAAK6yH,OAASA,GACd7yH,KAAK+m9B,UAASz9zB,OAAK98D,OAAC,YAChB,IAAKD,GAAKy63B,MAAO,CAIb,MAAMC,GAA+B163B,GAAKiN,SAAS0iL,iBAUnD3vL,GAAKiN,SAAS0iL,iBAEV3vL,GAAKiN,SAAS0t3B,iCACV363B,GAAKiN,SAAS0iL,iBACtB,MAAMirsB,SAAoB/3tB,EAAAzrP,EAAA,IAAA+9F,KAAA0tJ,EAAA/uK,EAAAU,KAAAquK,EAAA,UAC1B7iK,GAAKiN,SAAS0iL,iBAAmB+qsB,GACjC163B,GAAKy63B,MAASG,GAAYrniB,QAAUqniB,GAAYrniB,QAAUqniB,EAC9D,CAEA563B,UAAKsmC,OAAOu01B,eAAelz4B,QAASmz4B,KAChC,MAAMC,GAAkB/63B,GAAKy63B,MAAMO,OAAOF,GAAaE,QACvDD,GAAgBE,UAAYH,GAAaG,UACzCj73B,GAAKy63B,MAAMp7sB,SAAS07sB,IAAiB,EAAM/63B,GAAKsmC,OAAO401B,8BAA6B,SAE3El73B,GAAKm73B,sBAAsBn73B,GAAKy63B,MAAOz63B,GAAKsmC,OAAO801B,cAAep73B,GAAKsmC,OAAO401B,8BAC/F,IAAG7g6B,QAAKusJ,KAAY,CAAE7zG,WAAY,EAAGs6b,UAAU,KAC/C55hB,KAAKw5F,SAAWipd,GAAS9hjB,IAAIkgR,OACxB7gR,KAAK6yH,SACN7yH,KAAK6yH,OAAS,CAAE+/Q,QAASkzkB,GAEjC,CACA8B,WACI,OAAO5n9B,KAAK+m9B,MAChB,CAOMW,sBAAsBV,GAAOW,GAAeF,IAA+B,SAAAj73B,KAAA,YAC7E,GAAIjpF,MAAMujD,QAAQ6g6B,IAEd,QAAW5kqB,kBAAgB72K,WAAUy70B,IAGjC,EAAIlib,MAAa1iP,MACbA,SAAuBkjqB,EAAeljqB,KAE1CikqB,GAAMp7sB,SAAS1/H,GAAM62K,GAAgB0kqB,IAK7C,OAAOT,EAAM,EAdgE,EAejF,QACShn9B,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF4wtB,IAAV/55B,MAAwCA,OAAxCA,MAAgEi55B,EAAkB,IAA+D,QACxOhm9B,KAAKm2P,WADkFppM,MAAE,CAAAgnC,MACY+y3B,GAAY155B,QAAZ055B,GAAYz55B,UAAA2pB,WAAc,QAAW,EACtJ,OAlEK8v4B,EAAY,KAiFZe,GAAe,MAArB,MAAMA,GACFrl9B,cACIxC,KAAKksO,UAAW,EAChBlsO,KAAK8n9B,sBAAwB,MAC7B9n9B,KAAKq7N,OAAS,KACdr7N,KAAK+n9B,QAAS,EACd/n9B,KAAKon9B,cAAgB,GACrBpn9B,KAAK2n9B,cAAgB,GACrB3n9B,KAAKgo9B,oBAAqB,EAC1Bho9B,KAAKio9B,kBAAmB,EACxBjo9B,KAAK+3W,eAAgB,EACrB/3W,KAAKko9B,YAAa,EAclBlo9B,KAAKmo9B,kBAAoB,KACzBno9B,KAAKoo9B,gBAAkB,IAAIhpwB,MAC3Bp/M,KAAKqo9B,gBAAkB,IAAIjpwB,MAC3Bp/M,KAAKso9B,iBAAmB,IAAIlpwB,MAC5Bp/M,KAAKuo9B,mBAAqB,IAAInpwB,MAC9Bp/M,KAAKiwsB,QAAU,IAAI7wf,MACnBp/M,KAAKqqsB,OAAS,IAAIjrf,MAClBp/M,KAAKwo9B,cAAgB,IAAIppwB,MACzBp/M,KAAKyo9B,aAAe,IAAIrpwB,MACxBp/M,KAAK67J,UAAW,EAChB77J,KAAKsm9B,UAAW,EAChBtm9B,KAAK443B,gBAAkB,MACvB543B,KAAKotG,aAAe,KACpBptG,KAAK0o9B,kBAAoB,KACzB1o9B,KAAKssO,cAAa2K,OAAO2nW,OACzB5+kB,KAAKw5F,YAAWy9I,OAAO4pC,OACvB7gR,KAAKwkoB,MAAKvtZ,OAAO2hZ,OACjB54nB,KAAKq63B,gBAAepjpB,OAAOopa,OAC3BrgpB,KAAKsojB,cAAarxU,OAAOyxU,OACzB1ojB,KAAKqsO,YAAW4K,OAAOsnX,OACvBv+lB,KAAKghR,QAAO/pC,OAAOmqC,OACnBphR,KAAK6jN,WAAUozB,OAAO6vuB,IACtB9m9B,KAAKulU,YAAc,CAACojpB,GAAaC,MAC7B,IAAI7nrB,GAAO6nrB,GAAcjjwB,cAAc,cAAc87E,WACxC,gBAATV,IAAmC,oBAATA,MAC1BA,GAAO/gS,KAAKmo9B,mBAEhB,IAAIU,GAAa9nrB,GACjB,MAAMnjN,GAASgp4B,GAAU5m9B,KAAK49E,OAAQ59E,KAAK6jN,QAAQhxF,OAAOj1C,QAC1D,GAAe,SAAXA,GACAir4B,GAAaF,GAAY3+Q,eAAQ,GAEjB,WAAXpsnB,GACLir4B,GAAaF,GAAYG,mBAAY,GAErB,SAAXlr4B,GACL,IACIir4B,GAAazz4B,KAAK2nB,UAAU4r3B,GAAYG,cAC5C,OAEID,GAAaF,GAAY3+Q,SAC7B,CAEJ,OAAO6+Q,IAEX7o9B,KAAKstyB,YAAc,CAACq7K,GAAazo9B,MAC7B,MAAM09E,GAASgp4B,GAAU5m9B,KAAK49E,OAAQ59E,KAAK6jN,QAAQhxF,OAAOj1C,QAC1D,GAAe,SAAXA,GAEA,OADiB,EAAC,GAAM,GAAOtL,SAAStyE,KAAKgnlB,UAAYhnlB,KAAKgnlB,SAAYhnlB,KAAK6jN,QAAQhxF,OAAOm0d,WAAY,KAEtG9mlB,GAAQF,KAAKq63B,aAAarzS,SAASR,MAAgBC,KAAMvmlB,KAEtDyo9B,GAAYI,UAAUrxiB,QAAQx3a,IAEpC,GAAe,SAAX09E,GACL,IACI,OAAOxI,KAAKC,MAAMn1E,GACtB,OAEI,MAAO,CAAC,CAAEy2S,OAAQz2S,IACtB,CAEJ,OAAOA,IAEXF,KAAKgp9B,uBAAyB,CAACvt4B,GAAO6rR,GAAUt5R,MAC5C,MAAMi74B,GAAejp9B,KAAKip9B,cAAgBjp9B,KAAK6jN,QAAQhxF,OAAOo21B,aACxDC,IAA+Bzt4B,MAAWz7E,KAAKmp9B,iBAA8B,SAAXn74B,IAAqBi74B,IAAiC,QAAjBA,KAExGjp9B,KAAKqqsB,OAAOhzK,WACZr3hB,KAAKiwsB,QAAQ54K,WACbr3hB,KAAKuo9B,mBAAmBlxb,WACxB6xb,IAGLlp9B,KAAKghR,KAAKpkI,IAAI,KACI,OAAVnhE,GACAz7E,KAAKqqsB,OAAOr6iB,KAAK,CACb66qB,OAAQ7q0B,KAAK2o9B,YACb364B,YAGc,OAAbs5R,IACLtnW,KAAKiwsB,QAAQjgjB,KAAK,CACd66qB,OAAQ7q0B,KAAK2o9B,YACb364B,YAGRhuE,KAAKuo9B,mBAAmBv4zB,KAAK,CACzB66qB,OAAQ7q0B,KAAK2o9B,YACbrhnB,YACA7rR,SACAzN,YAEAk74B,IACAlp9B,KAAKmp9B,iBAETnp9B,KAAKwkoB,GAAGzgF,cAAa,EACxB,EAEL/jjB,KAAKop9B,kBAAoB,CAACtqrB,GAAOuqrB,GAAUr74B,MAEvC,MAAMohB,GAAOpvF,KAAK2o9B,YAAY3+Q,UACxBp+mB,GAAU5rF,KAAK2o9B,YAAYG,cACjC,IAAI/nrB,GAAO/gS,KAAKsp9B,WAAW3jwB,cAAc,cAAc87E,WAC1C,gBAATV,IAAmC,oBAATA,MAC1BA,GAAO/gS,KAAKmo9B,mBAEhB,MAAMc,EAAejp9B,KAAKip9B,cAAgBjp9B,KAAK6jN,QAAQhxF,OAAOo21B,aACxDM,IAAyC,SAAXv74B,IAAqBi74B,GAAiC,QAAjBA,MAA6Bjp9B,KAAKy+8B,eAEtGz+8B,KAAKso9B,iBAAiBjxb,WAAakyb,IAGxCvp9B,KAAKghR,KAAKpkI,IAAI,KACN2s0B,IACAvp9B,KAAKy+8B,cAAcz+8B,KAAKulU,YAAYvlU,KAAK2o9B,YAAa3o9B,KAAKsp9B,aAE/Dtp9B,KAAKso9B,iBAAiBt4zB,KAAK,CACvBpkE,WACAkzM,SACA+riB,OAAQ7q0B,KAAK2o9B,YACb5nrB,QACAsorB,YACAr74B,UACAohB,UAEJpvF,KAAKwkoB,GAAGzgF,cAAa,EACxB,EAGL/jjB,KAAKwp9B,oBAAsB,CAACn13B,GAAOzP,GAASmspB,GAAK/iqB,MAE7C,GAAKhuE,KAAKqo9B,gBAAgBhxb,SAI1B,GAAc,gBAAVhjc,GAAyB,CACzB,MAAMjF,GAAOpvF,KAAK2o9B,YAAY3+Q,UACxBp+mB,GAAU5rF,KAAK2o9B,YAAYG,cACjC,IAAI/nrB,EAAO/gS,KAAKsp9B,WAAW3jwB,cAAc,cAAc87E,WAC1C,gBAATV,GAAmC,oBAATA,KAC1BA,EAAO/gS,KAAKmo9B,mBAEhBno9B,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAKqo9B,gBAAgBr4zB,KAAK,CACtBpkE,WACAkzM,MAAOl6M,GACPimvB,OAAQ7q0B,KAAK2o9B,YACbt03B,SACA0sM,OACAsorB,SAAUt4O,GACV/iqB,UACAohB,UAEJpvF,KAAKwkoB,GAAGzgF,cAAa,EAE7B,MAEI/jjB,KAAKghR,KAAKpkI,IAAI,KACV58I,KAAKqo9B,gBAAgBr4zB,KAAK,CACtB66qB,OAAQ7q0B,KAAK2o9B,YACbt03B,SACAizQ,SAAUypY,GACVt1pB,MAAOmJ,GACP5W,YAEJhuE,KAAKwkoB,GAAGzgF,cAAa,EACxB,CAGb,CACA,0BAAO0la,CAAoBjlwB,IAEvB,OADkBA,GAAQzkI,OAAOlD,MAAM,KACtBme,OAAO,CAACrW,GAAMswY,MAC3B,MAAM06S,GAAU16S,GAAIl1Y,OACpB,OAAI4vrB,IACAhrrB,GAAKhR,KAAKg8rB,IAEPhrrB,IACR,GACP,CACA26H,WACIt/M,KAAKsm9B,SAAWtm9B,KAAKgo9B,mBACrBho9B,KAAK443B,gBAAkB543B,KAAK8n9B,qBAChC,CACAh2vB,mBACI,EAAIy2V,OAAiBvojB,KAAKsojB,cAK1BtojB,KAAK0o9B,kBAAoB1o9B,KAAK6jN,QAAQ+jwB,WAAWhh6B,QAAK0oB,KAAU034B,KAC5D,MAAM3jyB,GAAW,CAACrjL,KAAK6jN,QAAQ6jwB,sBAAsBV,GAAOhn9B,KAAK2n9B,gBAC3D1ggB,GAAejnd,KAAKind,cAAgBjnd,KAAK6jN,QAAQhxF,OAAOo0V,aAC9D,OAAIA,IACA5jS,GAAS1vG,KAAKszY,MAEX33X,QAAQ6/J,IAAI9rE,IAAU3hF,KAAK,IAAMsl3B,GAAK,IAC7Cx/5B,UAAUw/5B,KACVhn9B,KAAKsp9B,WAAatp9B,KAAKssO,WAAW5mB,cAAcC,cAAc,0BAC9D,MAAM+jwB,GAAc1p9B,KAAKssO,WAAW5mB,cAAcC,cAAc,0BAC1DitL,GAAUp8T,OAAO8mI,OAAO,CAAC,EAAGt9M,KAAK4yY,SAAW5yY,KAAK6jN,QAAQhxF,OAAO+/Q,SAClE82kB,GACA92kB,GAAQmzkB,QAAU2D,QAEOrp9B,IAApBuyY,GAAQmzkB,UACbnzkB,GAAQmzkB,QAAUD,EAAeC,SAErC,IAAIl8c,QAAmCxpgB,IAArBL,KAAK6pgB,YAA4B7pgB,KAAK6pgB,YAAc7pgB,KAAK6jN,QAAQhxF,OAAOg3Y,iBACtExpgB,IAAhBwpgB,KACAA,GAAc,wBAEd7pgB,KAAKq7N,QACL7kJ,OAAO0Q,KAAKlnF,KAAKq7N,QAAQnnJ,QAAStU,KAC9B5/D,KAAKqsO,SAAS2yC,SAASh/Q,KAAKsp9B,WAAY1p5B,GAAK5/D,KAAKq7N,OAAOz7J,IAAI,GAGjE5/D,KAAKwkN,SACLxkN,KAAK8gS,WAAW9gS,KAAKwkN,SAEzBxkN,KAAKon9B,cAAclz4B,QAASmz4B,KACxB,MAAMC,GAAkBN,GAAMO,OAAOF,GAAaE,QAClDD,GAAgBE,UAAYH,GAAaG,UACzCR,GAAMp7sB,SAAS07sB,IAAiB,EAAI,GAExC,IAAIxyjB,GAAS90Z,KAAK80Z,QAA0B,SAAhB90Z,KAAK80Z,OAAoB90Z,KAAKsp9B,WAAatp9B,KAAK80Z,OACvEA,KACDA,GAAS90Z,KAAK6jN,QAAQhxF,OAAOiiS,OAAS90Z,KAAK6jN,QAAQhxF,OAAOiiS,OAAS90Z,KAAKw5F,SAASxzC,MAErF,IAAIs3C,GAAQt9F,KAAKs9F,OACZA,KAAmB,IAAVA,IAAmBt9F,KAAK6jN,QAAQhxF,OAAOv1B,QACjDA,GAAQt9F,KAAK6jN,QAAQhxF,OAAOv1B,OAEhC,IAAIyuB,EAAW/rH,KAAK+rH,UACfA,IAA8B,IAAlB/rH,KAAK+rH,WAClBA,OAA4C1rH,IAAjCL,KAAK6jN,QAAQhxF,OAAO9G,UAAyB/rH,KAAK6jN,QAAQhxF,OAAO9G,UAEhF,IAAIo81B,GAAoBno9B,KAAKmo9B,kBAEzBno9B,KAAK6jN,QAAQhxF,OAAOskI,eAAe,uBACnCgxtB,GAAoBno9B,KAAK6jN,QAAQhxF,OAAOs11B,mBAE5C,IAAIwB,GAAqB3p9B,KAAK2p9B,oBACzBA,IAAkD,OAA5B3p9B,KAAK2p9B,qBAC5BA,GAC+C,OAA3C3p9B,KAAK6jN,QAAQhxF,OAAO821B,oBACb3p9B,KAAK6jN,QAAQhxF,OAAO821B,mBAAqB3p9B,KAAK6jN,QAAQhxF,OAAO821B,mBAAqB,MAEjG,IAAIjgiB,GAAU1pb,KAAK0pb,QAyCnB,IAxCKA,SAAuBrpb,IAAZqpb,KACZA,GAAU1pb,KAAK6jN,QAAQhxF,OAAO62T,QAAU,IAAI1pb,KAAK6jN,QAAQhxF,OAAO62T,SAA4C,OAAhC1pb,KAAK6jN,QAAQhxF,OAAO62T,QAAmB,UAAOrpb,GAE9HL,KAAKghR,KAAKX,kBAAkB,KA6BxB,GA5BArgR,KAAK2o9B,YAAc,IAAI3B,GAAMhn9B,KAAKsp9B,WAAY,CAC1Cx0jB,UACAx3T,MAAOA,GACPosV,QAASA,GACT92C,WACAi3H,eACA99Y,WACAo81B,qBACAwB,mBAAoBA,GACpB5B,OAAQ/n9B,KAAK+n9B,OACbh8mB,MAAO/rW,KAAK+rW,QAAU/rW,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ/rW,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ,UAE9E/rW,KAAKyo9B,aAAapxb,WAElBr3hB,KAAK2o9B,YAAYv8lB,OAAOgqE,QAAQl6K,iBAAiB,OAAQ,IAAMl8Q,KAAKyo9B,aAAah64B,KAAK,CAClFo8vB,OAAQ7q0B,KAAK2o9B,YACb364B,OAAQ,SAGZhuE,KAAK2o9B,YAAYiB,UAAU,WAAWn7xB,UAAUytF,iBAAiB,YAAcv4Q,IAAMA,GAAEqgP,mBAEvFhkP,KAAKwo9B,cAAcnxb,UACnBr3hB,KAAK2o9B,YAAYv8lB,OAAOgqE,QAAQl6K,iBAAiB,QAAS,IAAMl8Q,KAAKwo9B,cAAc/54B,KAAK,CACpFo8vB,OAAQ7q0B,KAAK2o9B,YACb364B,OAAQ,SAIZhuE,KAAK6p9B,gBAAiB,CAEtB,MAAMxo9B,GADUrB,KAAK2o9B,aAAa58mB,OAAO1tH,SAClB+1B,MAAMzuD,cAAc,oBACvCtkN,IAAOyo9B,UACPzo9B,GAAMyo9B,QAAQ5yjB,KAAOl3Z,KAAK6p9B,gBAElC,IAEA7p9B,KAAK4rF,QAAS,CAEd,GAAe,SADAg73B,GAAU5m9B,KAAK49E,OAAQ59E,KAAK6jN,QAAQhxF,OAAOj1C,QAEtD59E,KAAK2o9B,YAAYoB,QAAQ/p9B,KAAK4rF,QAAS,cAEtC,CACD,MAAMo4B,GAAWhkH,KAAKstyB,YAAYttyB,KAAK2o9B,YAAa3o9B,KAAK4rF,SACzD5rF,KAAK2o9B,YAAYqB,YAAYhm2B,GAAU,SAC3C,CACAhkH,KAAK2o9B,YAAYiB,UAAU,WAAWr24B,OAC1C,CAEAvzE,KAAKk/nB,mBACLl/nB,KAAKiq9B,0BAGAjq9B,KAAKoo9B,gBAAgB/wb,UAAar3hB,KAAKkq9B,qBAM5Cl9jB,sBAAsB,KACdhtZ,KAAKkq9B,oBACLlq9B,KAAKkq9B,qBAETlq9B,KAAKoo9B,gBAAgBp4zB,KAAKhwJ,KAAK2o9B,aAC/B3o9B,KAAKoo9B,gBAAgBh62B,UAAS,EACjC,GAET,CACA+1G,cACInkN,KAAKgsR,UACLhsR,KAAK0o9B,mBAAmBh64B,cACxB1uE,KAAK0o9B,kBAAoB,IAC7B,CACAnpwB,YAAY5Y,IACR,GAAK3mM,KAAK2o9B,YAeV,IAXIhixB,GAAQ56E,UACR/rH,KAAK2o9B,YAAY33jB,QAAQrqN,GAAQ56E,SAASja,cAE1C60F,GAAQkjU,cACR7pgB,KAAK2o9B,YAAYv0sB,KAAK01sB,QAAQjgd,YAC1BljU,GAAQkjU,YAAY/3Z,cAExB60F,GAAQwhxB,oBACRno9B,KAAK2o9B,YAAYv0sB,KAAK01sB,QAAQ3B,kBAC1BxhxB,GAAQwhxB,kBAAkBr22B,cAE9B60F,GAAQ00B,OAAQ,CAChB,MAAM8uvB,GAAiBxjxB,GAAQ00B,OAAOvpH,aAChCs42B,GAAkBzjxB,GAAQ00B,OAAOqqB,cACnC0kuB,IACA5z4B,OAAO0Q,KAAKkj4B,IAAiBl24B,QAAStU,KAClC5/D,KAAKqsO,SAAS4yC,YAAYj/Q,KAAKsp9B,WAAY1p5B,GAAG,GAGlDuq5B,IACA3z4B,OAAO0Q,KAAKij4B,IAAgBj24B,QAAStU,KACjC5/D,KAAKqsO,SAAS2yC,SAASh/Q,KAAKsp9B,WAAY1p5B,GAAK5/D,KAAKq7N,OAAOz7J,IAAI,EAGzE,CACA,GAAI+mI,GAAQ6d,QAAS,CACjB,MAAM6lwB,GAAiB1jxB,GAAQ6d,QAAQ1yG,aACjCw42B,GAAkB3jxB,GAAQ6d,QAAQkhC,cACpC4kuB,IACAtq9B,KAAKuq9B,cAAcD,IAEnBD,IACArq9B,KAAK8gS,WAAWuprB,GAExB,CAGI1jxB,GAAQ64V,cACRx/hB,KAAKiq9B,wBAAuB,CAGpC,CACAnprB,WAAW7vC,IACP42tB,GAAgB4B,oBAAoBx4tB,IAAW/8K,QAASgb,KACpDlvF,KAAKqsO,SAAS0hC,SAAS/tQ,KAAKsp9B,WAAYp63B,GAAC,EAEjD,CACAq73B,cAAct5tB,IACV42tB,GAAgB4B,oBAAoBx4tB,IAAW/8K,QAASgb,KACpDlvF,KAAKqsO,SAAS8iC,YAAYnvQ,KAAKsp9B,WAAYp63B,GAAC,EAEpD,CACAswiB,WAAW1thB,IAMP,GAJI9xG,KAAKko9B,YAA+B,OAAjBp22B,KAGvB9xG,KAAK4rF,QAAUkmB,IACV9xG,KAAK2o9B,aACN,OAEJ,MAAM/q4B,GAASgp4B,GAAU5m9B,KAAK49E,OAAQ59E,KAAK6jN,QAAQhxF,OAAOj1C,QACpDomC,GAAWhkH,KAAKstyB,YAAYttyB,KAAK2o9B,YAAa722B,IACpD,GAAI9xG,KAAK+3W,cAAe,CACpB,MAAMyymB,GAAqBxq9B,KAAK2o9B,YAAYG,cAC5C,GAAI1z4B,KAAK2nB,UAAUyt3B,MAAwBp14B,KAAK2nB,UAAUinB,IACtD,MAER,CACIlS,GACe,SAAXl0B,GACA59E,KAAK2o9B,YAAYoB,QAAQj42B,IAGzB9xG,KAAK2o9B,YAAYqB,YAAYhm2B,IAIrChkH,KAAK2o9B,YAAYoB,QAAQ,GAC7B,CACA7qV,iBAAiBjuc,GAAajxL,KAAK67J,UAE/B77J,KAAK67J,SAAWo1B,GACZjxL,KAAK2o9B,cACD13xB,IACAjxL,KAAK2o9B,YAAYzusB,UACjBl6Q,KAAKqsO,SAASwyC,aAAa7+Q,KAAKssO,WAAW5mB,cAAe,WAAY,cAGjE1lN,KAAK+rH,UACN/rH,KAAK2o9B,YAAY33jB,SAErBhxZ,KAAKqsO,SAAS0yC,gBAAgB/+Q,KAAKssO,WAAW5mB,cAAe,aAGzE,CACAu5a,iBAAiBjxgB,IACbhuH,KAAKy+8B,cAAgBzw1B,EACzB,CACAgxgB,kBAAkBhxgB,IACdhuH,KAAKmp9B,eAAiBn71B,EAC1B,CACA6+gB,0BAA0B7+gB,IACtBhuH,KAAKkq9B,mBAAqBl81B,EAC9B,CACA+3Q,WACI,IAAK/lY,KAAK2o9B,YACN,OAAO,KAEX,MAAMp64B,GAAM,CAAC,EACb,IAAIijG,IAAQ,EACZ,MAAMpiF,GAAOpvF,KAAK2o9B,YAAY3+Q,UAExBuzD,GAAav9vB,KAAKio9B,iBAAmB743B,GAAKrP,OAAOlN,OAA0B,IAAhBuc,GAAKvc,QAAuC,IAAvBuc,GAAKrP,OAAOlN,OAAe,EAAIuc,GAAKvc,OAAS,EAC7H434B,GAAkBzq9B,KAAK2o9B,YAAYG,cAAc/7S,IACjD29S,GAAqBD,IAA8C,IAA3BA,GAAgB534B,QAAgB,CAAC,KAAM,IAAIP,SAASm44B,GAAgB,GAAG9zqB,QACrH,OAAI32S,KAAKm/e,WAAao+Q,IAAcA,GAAav9vB,KAAKm/e,YAClD5wa,GAAIo84B,eAAiB,CACjBC,MAAOrtN,GACPp+Q,UAAWn/e,KAAKm/e,WAEpB3tU,IAAQ,GAERxxK,KAAKwzG,WAAa+ppB,GAAav9vB,KAAKwzG,YACpCjlC,GAAIs84B,eAAiB,CACjBD,MAAOrtN,GACP/ppB,UAAWxzG,KAAKwzG,WAEpBg+D,IAAQ,GAERxxK,KAAKksO,WAAaqxhB,IAAcmtN,KAChCn84B,GAAIu84B,cAAgB,CAChBjkoB,OAAO,GAEXr1K,IAAQ,GAELA,GAAQ,KAAOjjG,EAC1B,CACA074B,yBACIjq9B,KAAKgsR,UAILhsR,KAAKghR,KAAKX,kBAAkB,KACxBrgR,KAAKotG,aAAe,IAAImqb,MACxBv3hB,KAAKotG,aAAa35B,OAElB6od,KAAUt8hB,KAAK2o9B,YAAa,oBAAoBnh6B,UAAU,EAAEi0B,GAAO6rR,GAAUt5R,OACzEhuE,KAAKgp9B,uBAAuBvt4B,GAAO6rR,GAAUt5R,GAAM,IAIvD,IAAI+84B,MAAczub,KAAUt8hB,KAAK2o9B,YAAa,eAC1CqC,MAAgB1ub,KAAUt8hB,KAAK2o9B,YAAa,iBACf,iBAAtB3o9B,KAAKw/hB,eACZurb,GAAcA,GAAYnk6B,QAAK44e,KAAax/hB,KAAKw/hB,eACjDwrb,GAAgBA,GAAcpk6B,QAAK44e,KAAax/hB,KAAKw/hB,gBAEzDx/hB,KAAKotG,aAAa35B,IAElBs34B,GAAYvj6B,UAAU,EAAEs3O,GAAOuqrB,GAAUr74B,OACrChuE,KAAKop9B,kBAAkBtqrB,GAAOuqrB,GAAUr74B,GAAM,IAElDhuE,KAAKotG,aAAa35B,IAElBu34B,GAAcxj6B,UAAU,EAAE6sC,GAAOzP,GAASmspB,GAAK/iqB,OAC3ChuE,KAAKwp9B,oBAAoBn13B,GAAOzP,GAASmspB,GAAK/iqB,GAAM,GACtD,EAEV,CACAg+M,UAC8B,OAAtBhsR,KAAKotG,eACLptG,KAAKotG,aAAa1+B,cAClB1uE,KAAKotG,aAAe,KAE5B,QACSptG,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF2xtB,GAAe,CAAqD,QACrK7n9B,KAAKipiB,UAriBkFl8e,MAAE,CAAA5jD,KAqiBJ0+8B,GAAe3nwB,OAAA,CAAAtiI,OAAA,SAAAmuR,MAAA,QAAA6mC,QAAA,UAAAt1S,MAAA,QAAAyuB,SAAA,WAAA89Y,YAAA,cAAAr2Z,UAAA,YAAA2rY,UAAA,YAAAjzQ,SAAA,WAAAw9M,QAAA,UAAAo+hB,sBAAA,wBAAA9gY,SAAA,WAAA//H,aAAA,eAAA5rP,OAAA,SAAA0svB,OAAA,SAAA4B,mBAAA,qBAAA70jB,OAAA,SAAAsyjB,cAAA,gBAAAO,cAAA,gBAAAsB,aAAA,eAAAjB,mBAAA,qBAAAxjwB,QAAA,UAAAyjwB,iBAAA,mBAAA4B,gBAAA,kBAAA9xmB,cAAA,gBAAAmwmB,WAAA,aAAA1ob,aAAA,eAAA2ob,kBAAA,oBAAA5ipB,YAAA,cAAA+ne,YAAA,eAAAntlB,QAAA,CAAAiowB,gBAAA,kBAAAC,gBAAA,kBAAAC,iBAAA,mBAAAC,mBAAA,qBAAAt4Q,QAAA,UAAA5F,OAAA,SAAAm+Q,cAAA,gBAAAC,aAAA,gBAAA1z3B,SAAA,CAriBbhoC,QAqiB8nC,EACjuC,OArhBK865B,EAAe,KAqmBfoD,GAAoB,MAA1B,MAAMA,WAA6BpD,UACtB7n9B,KAAKqtD,UAAI,UAAA695B,GAAA,gBAAAh1tB,IAAA,OAAAg1tB,QAvnB8En+5B,MAunBUk+5B,MAAoB/0tB,IAApB+0tB,GAAoB,GAA5G,EAAmK,QAC5Kjr9B,KAAKi6jB,UAxnBkFltgB,MAAE,CAAA5jD,KAwnBJ8h9B,GAAoBhrwB,UAAA,mBAAAw8B,YAAA,EAAA1nJ,SAAA,CAxnBlBhoC,MAwnB6E,CACrK,CACIklB,OAAO,EACPH,QAASutjB,KAET3rE,eAAagF,OAAW,IAAMuyZ,KAElC,CACIh54B,OAAO,EACPH,QAASyujB,KAET7sE,eAAagF,OAAW,IAAMuyZ,OAnoBsDl+5B,aAAE8xK,mBAAAvL,EAAAlT,MAAA,EAAAC,KAAA,EAAAC,OAAA,8BAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,KAAF/hE,MAAE8zJ,GAAF9zJ,MAAE,EAAAs55B,GAAA,KAAFt55B,MAAE,GAAFA,MAAE,KAAFA,MAAE,KAAFA,MAAE,EAAA055B,GAAA,MAkpBjE,EAAA331B,KAlpB+D/hE,MAAE,QAAAonF,GAAAykvB,gBAAA,MAAF7r0B,MAAE,GAAFA,MAAE,QAAAonF,GAAAykvB,gBAAA,MAwpBjG,EAAA/5rB,aAAA,CACoGuiD,OAAY/lB,OAAA,4CAAQ,EAC5H,OApCK4vvB,EAAoB,KA2EpBE,GAAsB,MAA5B,MAAMA,GACF3o9B,YAAYsklB,GAAWjjY,IACnB7jN,KAAK8mlB,UAAYA,GACjB9mlB,KAAK6jN,QAAUA,GACf7jN,KAAK4rF,QAAU,GACf5rF,KAAKyhS,UAAY,GACjBzhS,KAAKor9B,WAAa,SACtB,CACA7rwB,YAAY5Y,IASR,GARIA,GAAQolK,MAER/rW,KAAKor9B,WAAa,MADJzkxB,GAAQolK,MAAMj6P,eAAiB9xG,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ/rW,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ,8BAG/F/rW,KAAK+rW,QAEX/rW,KAAKor9B,WAAa,MADJpr9B,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ/rW,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ,8BAGtEplK,GAAQ/6G,QAAS,CACjB,MAAMA,GAAU+6G,GAAQ/6G,QAAQkmB,aAC1Bk1e,GAAW,EAAC,GAAM,GAAO10gB,SAAStyE,KAAKgnlB,UAAYhnlB,KAAKgnlB,SAAYhnlB,KAAK6jN,QAAQhxF,OAAOm0d,WAAY,EAC1GhnlB,KAAKyhS,UAAYulT,GAAWp7f,GAAU5rF,KAAK8mlB,UAAU85D,wBAAwBh1jB,GACjF,CACJ,QACS5rF,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFi1tB,IAxtBVp+5B,MAwtBkDszlB,OAxtBlDtzlB,MAwtB2E+55B,IAAY,CAA8C,QAC5N9m9B,KAAKi6jB,UAztBkFltgB,MAAE,CAAA5jD,KAytBJgi9B,GAAsBlrwB,UAAA,sBAAAC,OAAA,CAAAt0H,QAAA,UAAAmgR,MAAA,QAAAi7O,SAAA,YAAAvqW,YAAA,EAAA1nJ,SAAA,CAztBpBhoC,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,OAAA,+DAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,KAAF/hE,MAAE,WAAFA,MAAE,WAAFA,SA6tB5F,EAAA+hE,KA7tB4F/hE,MAAE,UAAAonF,GAAAi30B,YAAFr+5B,cAAE,YAAAonF,GAAAstJ,UAAF10O,OA2tBlD,EAAA8xI,aAAA,CAGqEuiD,MAA2Cn0L,OAAUouK,OAAA,kDAAAxV,cAAA,GAAuG,EAClR,OA9BKslwB,EAAsB,KAmDtBE,GAAkB,MAAxB,MAAMA,GACF7o9B,YAAY8pO,GAAYD,GAAU20C,GAAMn9D,GAASw2qB,GAAc/xU,IAC3DtojB,KAAKssO,WAAaA,GAClBtsO,KAAKqsO,SAAWA,GAChBrsO,KAAKghR,KAAOA,GACZhhR,KAAK6jN,QAAUA,GACf7jN,KAAKq63B,aAAeA,GACpBr63B,KAAKsojB,WAAaA,GAClBtojB,KAAK+n9B,QAAS,EACd/n9B,KAAK2n9B,cAAgB,GACrB3n9B,KAAKon9B,cAAgB,GACrBpn9B,KAAKgo9B,oBAAqB,EAC1Bho9B,KAAKoo9B,gBAAkB,IAAIhpwB,MAC3Bp/M,KAAKsm9B,UAAW,EAChBtm9B,KAAK0o9B,kBAAoB,KACzB1o9B,KAAKstyB,YAAc,CAACq7K,EAAazo9B,MAC7B,MAAM09E,GAASgp4B,GAAU5m9B,KAAK49E,OAAQ59E,KAAK6jN,QAAQhxF,OAAOj1C,QAC1D,IAAIgO,GAAU1rF,GACd,GAAe,SAAX09E,GACA+q4B,EAAYoB,QAAQn+3B,QAEnB,CACD,GAAe,SAAXhO,IACiB,EAAC,GAAM,GAAOtL,SAAStyE,KAAKgnlB,UAAYhnlB,KAAKgnlB,SAAYhnlB,KAAK6jN,QAAQhxF,OAAOm0d,WAAY,KAEtG9mlB,GAAQF,KAAKq63B,aAAarzS,SAASR,MAAgBC,KAAMvmlB,KAE7D0rF,GAAU+83B,EAAYI,UAAUrxiB,QAAQx3a,SAAK,GAE7B,SAAX09E,GACL,IACIgO,GAAUxW,KAAKC,MAAMn1E,GACzB,OAEI0rF,GAAU,CAAC,CAAE+qN,OAAQz2S,IACzB,CAEJyo9B,EAAYqB,YAAYp+3B,GAC5B,EAER,CACA0zH,WACIt/M,KAAKsm9B,SAAWtm9B,KAAKgo9B,kBACzB,CACAzowB,YAAY5Y,IACH3mM,KAAK2o9B,aAGNhixB,GAAQ/6G,SACR5rF,KAAKstyB,YAAYttyB,KAAK2o9B,YAAahixB,GAAQ/6G,QAAQkmB,aAE3D,CACAggH,mBACI,EAAIy2V,OAAiBvojB,KAAKsojB,cAG1BtojB,KAAK0o9B,kBAAoB1o9B,KAAK6jN,QAAQ+jwB,WAAWhh6B,QAAK0oB,KAAU034B,KAC5D,MAAM3jyB,GAAW,CAACrjL,KAAK6jN,QAAQ6jwB,sBAAsBV,GAAOhn9B,KAAK2n9B,gBAC3D1ggB,GAAejnd,KAAKind,cAAgBjnd,KAAK6jN,QAAQhxF,OAAOo0V,aAC9D,OAAIA,IACA5jS,GAAS1vG,KAAKszY,MAEX33X,QAAQ6/J,IAAI9rE,IAAU3hF,KAAK,IAAMsl3B,GAAK,IAC7Cx/5B,UAAUw/5B,KACV,MAAMp0kB,GAAUp8T,OAAO8mI,OAAO,CAAC,EAAGt9M,KAAK4yY,SAAW5yY,KAAK6jN,QAAQhxF,OAAO+/Q,SACtEA,GAAQmzkB,SAAU,EAClB/l9B,KAAKon9B,cAAclz4B,QAASmz4B,KACxB,MAAMC,EAAkBN,GAAMO,OAAOF,GAAaE,QAClDD,EAAgBE,UAAYH,GAAaG,UACzCR,GAAMp7sB,SAAS07sB,GAAiB,EAAI,GAExC,IAAIhq3B,GAAQt9F,KAAKs9F,OACZA,KAAmB,IAAVA,IAAmBt9F,KAAK6jN,QAAQhxF,OAAOv1B,QACjDA,GAAQt9F,KAAK6jN,QAAQhxF,OAAOv1B,OAEhC,IAAIosV,GAAU1pb,KAAK0pb,SACdA,SAAuBrpb,IAAZqpb,KACZA,GAAU1pb,KAAK6jN,QAAQhxF,OAAO62T,QAC1BlzW,OAAO8mI,OAAO,CAAC,EAAGt9M,KAAK6jN,QAAQhxF,OAAO62T,SAA4C,OAAhC1pb,KAAK6jN,QAAQhxF,OAAO62T,QAAmB,UAAOrpb,GAExG,MAAM0rW,GAAQ/rW,KAAK+rW,QAAU/rW,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ/rW,KAAK6jN,QAAQhxF,OAAOk5O,MAAQ,QACrF/rW,KAAKsp9B,WAAatp9B,KAAKssO,WAAW5mB,cAAcC,cAAc,wBAC9D3lN,KAAKghR,KAAKX,kBAAkB,KACxBrgR,KAAK2o9B,YAAc,IAAI3B,GAAMhn9B,KAAKsp9B,WAAY,CAC1Chs3B,MAAOA,GACPosV,QAASA,GACT92C,WACA7mR,UAAU,EACVg81B,OAAQ/n9B,KAAK+n9B,OACbh8mB,UACH,GAEL/rW,KAAKqsO,SAAS0hC,SAAS/tQ,KAAKsp9B,WAAY,kBACpCtp9B,KAAK4rF,SACL5rF,KAAKstyB,YAAYttyB,KAAK2o9B,YAAa3o9B,KAAK4rF,SAIvC5rF,KAAKoo9B,gBAAgBzksB,UAAU9wM,QAMpCm6U,sBAAsB,KAClBhtZ,KAAKoo9B,gBAAgBp4zB,KAAKhwJ,KAAK2o9B,aAC/B3o9B,KAAKoo9B,gBAAgBh62B,UAAS,EACjC,GAET,CACA+1G,cACInkN,KAAK0o9B,mBAAmBh64B,cACxB1uE,KAAK0o9B,kBAAoB,IAC7B,QACS1o9B,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwFm1tB,IAt2BVt+5B,MAs2B8CA,OAt2B9CA,MAs2BwEA,OAt2BxEA,MAs2BiGA,OAt2BjGA,MAs2BuH+55B,IAt2BvH/55B,MAs2BgJu+5B,OAt2BhJv+5B,MAs2B8K27f,OAAW,CAA8C,QAC9T1ojB,KAAKi6jB,UAv2BkFltgB,MAAE,CAAA5jD,KAu2BJki9B,GAAkBprwB,UAAA,iBAAAC,OAAA,CAAAtiI,OAAA,SAAAmuR,MAAA,QAAA6mC,QAAA,UAAAt1S,MAAA,QAAAosV,QAAA,UAAAs9J,SAAA,WAAA//H,aAAA,eAAA8ggB,OAAA,SAAAn83B,QAAA,UAAA+73B,cAAA,gBAAAP,cAAA,gBAAAY,mBAAA,sBAAA7nwB,QAAA,CAAAiowB,gBAAA,mBAAA3ruB,YAAA,EAAA1nJ,SAAA,CAv2BhBhoC,aAAEqzJ,MAAA,EAAAC,KAAA,EAAAC,OAAA,4BAAAC,SAAA,SAAAzxF,GAAAqlB,IAAA,EAAArlB,IAAF/hE,MAAE,EAAA255B,GAAA,YAAF355B,CAw2BpF,EAAA455B,GAAA,aAEP,EAAA731B,IA12B2F/hE,MAAEonF,GAAAmy0B,SAAA,IA42BrG,EAAAznxB,aAAA,CACiHuiD,OAAY/lB,OAAA,6CAAAxV,cAAA,GAAkD,EAC/K,OA1HKwlwB,EAAkB,KAmKlBhpuB,GAAW,MAAjB,MAAMA,GACF,cAAOvB,CAAQjuH,IACX,MAAO,CACHkuH,SAAUsB,GACVu/B,UAAW,CACP,CACI9vM,QAASk04B,EACTxksB,SAAU3uJ,KAI1B,QACS7yH,KAAKqtD,UAAI,SAAA6oM,IAAA,WAAAA,IAAwF7T,GAAW,CAAoD,QAChKriP,KAAK6hR,UAp6BkF90N,KAAE,CAAA5jD,KAo6BSk5O,IAA0K,QAC5QriP,KAAK8hR,UAr6BkF/0N,MAAE,CAAAo0L,QAAA,CAq6BgC8puB,GAAsBI,GAAoBF,KAA4B,EAC3M,OAfK9ouB,EAAW,oCCz+BjB,SAAAkpuB,EAAA112B,EAAAx1B,EAAA18E,GAAA0oM,EAAAz2F,GAAA3a,GAAA/L,IACA,IACA,IAAA1f,GAAAqmC,EAAA5a,IAAA/L,IACA8Q,EAAAxwB,GAAAtvE,KACA,OAAI21G,GACJ,YAAAlyG,GAAAkyG,EACA,CACArmC,GAAAuvF,KAAA1+E,EAAA2f,GAAA1Q,QAAAE,QAAAwQ,GAAA0B,KAAA2qG,EAAAz2F,GACA,CACA,SAAAppB,EAAAqpB,GACA,kBACA,IAAAx1B,EAAArgF,KACA2D,GAAAk1F,UACA,WAAAvJ,QAAA,SAAA+8G,EAAAz2F,IACA,IAAA3a,GAAA4a,EAAAjd,MAAAvY,EAAA18E,IACA,SAAAgzI,GAAA9gC,GACA012B,EAAAtw3B,GAAAoxG,EAAAz2F,GAAA+gC,GAAA600B,GAAA,OAAA312B,EACA,CACA,SAAA212B,GAAA312B,GACA012B,EAAAtw3B,GAAAoxG,EAAAz2F,GAAA+gC,GAAA600B,GAAA,QAAA312B,EACA,CACA8gC,QAAA,EACA,EACA,CACA,kDC0FO,SAAA8mZ,EAAAruQ,GAAAq8rB,GAAAzqlB,GAAAoQ,IAEP,WAAApQ,QAAA1xS,UAAA,SAAAE,GAAAD,IACA,SAAAm83B,EAAAxr9B,IAAkC,IAAMmrP,GAAA+lJ,GAAA3iU,KAAAvuE,IAAA,OAA+ByD,IAAY4rF,GAAA5rF,GAAA,EACnF,SAAAmpJ,GAAA5sJ,IAAiC,IAAMmrP,GAAA+lJ,GAAA98G,MAAAp0R,IAAA,OAAmCyD,IAAY4rF,GAAA5rF,GAAA,EACtF,SAAA0nP,GAAAnwJ,IAA8BA,GAAA6jE,KAAAvvE,GAAA0L,GAAAh7F,OAJ9B,SAAAyr9B,GAAAzr9B,IAA0B,OAAAA,cAAA8gY,GAAA9gY,GAAA,IAAA8gY,GAAA,SAAAxxS,IAA+DA,GAAAtvF,GAAA,EAAiB,CAI5Eyr9B,CAAAzw3B,GAAAh7F,OAAAwhG,KAAAgq3B,EAAA5+zB,GAAA,CAC9Bu+F,IAAA+lJ,MAAAx4S,MAAAw2L,GAAAq8rB,IAAA,KAAAh94B,OACA,EACA,CAqGO,SAAAm3d,EAAAt7a,IACP,OAAAtqH,gBAAA4liB,GAAA5liB,KAAAsqH,KAAAtqH,MAAA,IAAA4liB,EAAAt7a,GACA,CAEO,SAAAo7a,GAAAt2Q,GAAAq8rB,GAAAr6kB,IACP,IAAAvsG,OAAAjU,cAAA,UAAAV,UAAA,wCACA,IAAA1gN,GAAAk/C,GAAA0iR,GAAAx4S,MAAAw2L,GAAAq8rB,IAAA,IAAAhnkB,GAAA,GACA,OAAAj1U,GAAAgH,OAAAkpB,QAAA,mBAAAks3B,4BAAAp14B,QAAAqrD,WAAAgq1B,EAAA,QAAAA,EAAA,SAAAA,EAAA,SACA,SAAAC,GAAA542B,IAA4B,gBAAAoX,IAAsB,OAAAh7B,QAAAE,QAAA86B,IAAA5oB,KAAAwR,GAAA3jB,GAAA,IADlD/f,GAAAq1N,OAAAjU,eAAA,WAAwM,OAAA5wR,IAAA,EAAcwvE,GAEtN,SAAAq84B,EAAAh22B,GAAA3C,IAAwBwb,GAAA7Y,MAAYrmC,GAAAqmC,IAAA,SAAAyU,IAAsB,WAAAh7B,QAAA,SAAA2L,GAAAH,IAAqC2pT,GAAA9wU,KAAA,CAAAkiC,GAAAyU,GAAArvB,GAAAH,KAAA,GAAAm+D,GAAApjD,GAAAyU,GAAA,EAA2C,EAAMpX,KAAA1jC,GAAAqmC,IAAA3C,GAAA1jC,GAAAqmC,MAAA,CAChJ,SAAAojD,GAAApjD,GAAAyU,IAA0B,KAC1B,SAAA+gI,GAAAh/C,IAAqBA,GAAAnsM,iBAAA0liB,EAAAt2c,QAAAE,QAAA68G,GAAAnsM,MAAAoqH,GAAA5oB,KAAAqq3B,GAAAx83B,IAAAy83B,GAAAvnkB,GAAA,MAAAp4M,GAAA,CADWg/C,CAAA38H,GAAA7Y,IAAAyU,IAAA,OAAiB3mH,IAAYqo9B,GAAAvnkB,GAAA,MAAA9gZ,GAAA,EAE7D,SAAAoo9B,GAAA7r9B,IAA4B+4J,GAAA,OAAA/4J,GAAA,CAC5B,SAAAqvF,GAAArvF,IAA2B+4J,GAAA,QAAA/4J,GAAA,CAC3B,SAAA8r9B,GAAA942B,GAAAoX,IAA0BpX,GAAAoX,IAAAm6R,GAAAxjT,QAAAwjT,GAAA5xU,QAAAomF,GAAAwrP,GAAA,MAAAA,GAAA,OAC1B,CAQO,SAAAi5I,GAAA9nb,IACP,IAAAivL,OAAAjU,cAAA,UAAAV,UAAA,wCACA,IAAA1gN,GAAAqjK,GAAAj9H,GAAAivL,OAAAjU,eACA,OAAA/9C,MAAA94H,KAAAnE,QAjFO,SAAAq22B,EAAAr22B,IACP,IAAA1c,GAAA,mBAAA2rM,eAAA9T,SAAAl+C,GAAA35I,IAAA0c,GAAA1c,IAAA1pB,GAAA,EACA,GAAAqjK,GAAA,OAAAA,GAAA94H,KAAAnE,IACA,GAAAA,IAAA,iBAAAA,GAAA/iC,OAAA,OACApE,KAAA,WACA,OAAAmnC,IAAApmC,IAAAomC,GAAA/iC,SAAA+iC,QAAA,GACA,CAAmB11G,MAAA01G,OAAApmC,MAAAuvF,MAAAnpD,GACnB,GAEA,UAAAs6K,UAAAh3L,GAAA,4DACA,CAuEA+y3B,CAAAr22B,IAAApmC,GAAA,GAAyGq84B,GAAA,QAAAA,GAAA,SAAAA,GAAA,UAAAr84B,GAAAq1N,OAAAjU,eAAA,WAAuF,OAAA5wR,IAAA,EAAcwvE,IAC9M,SAAAq84B,GAAAh22B,IAAqBrmC,GAAAqmC,IAAAD,GAAAC,KAAA,SAAAyU,IAA8B,WAAAh7B,QAAA,SAAAE,EAAAD,KACnD,SAAAy83B,GAAAx83B,GAAAD,GAAA5Y,EAAA2zC,IAA2Ch7B,QAAAE,QAAA86B,IAAA5oB,KAAA,SAAA4oB,IAAsC96B,GAAA,CAAUtvF,MAAAoqH,GAAAy0C,KAAApoF,GAAmB,EAAI4Y,GAAA,CADfy83B,CAAAx83B,EAAAD,IAAA+6B,GAAA1U,GAAAC,IAAAyU,KAAAy0C,KAAAz0C,GAAApqH,MAAA,EAAwD,EAE3J,iDA2EA,mBAAAmsqB","names":["EventActionType","FIRE_WEBHOOK","CHANGE_WORKFLOW_SET_STATUS","START_WORKFLOW","TRIGGER_RULE","SEND_ACCOUNT_INFO","POLICY_OPERATION","NotificationType","JOURNAL_ENTRY","COMMENT","TASK_DELEGATION","PROGRAM_REVISION","EMAIL","TaskApprovalRejectionType","ALL","ONLY_THIS","TransactionSelectionStatus","SELECTED","DESELECTED","AUTOMATIC","WorkflowStatus","RUNNING","STOPPING","STOPPED","COMPLETING","COMPLETED","CLOSED","AdminUserFillsSecurityRole","EdgeModel","Domain","Type","Id","this","data","value","CreatedDate","Date","undefined","IsFilledBy","context","__IsFilledBy","_context","Context","get","_IsFilledBy","setIsFilledBy","Out","FillsSecurityRole","__FillsSecurityRole","_FillsSecurityRole","setFillsSecurityRole","In","deserialize","input","datacontext","ModelUtils","deserializeEdge","super","_deserialize","clone","_","AreaTier","DocumentModel","Name","DatabaseThroughputRUs","serialize","_model","model","ret","removePropertiesSetToUndefined","Feature","VertexModel","constructor","inRelationships","propertyName","edgeType","ModuleProvidesFeature","otherVertexPropertyName","otherVertexType","Module","PermissionSecuresFeature","Permission","outRelationships","DerivedTypes","IsInModule","__IsInModule","edges","Array","from","_IsInModule","id","e","setIsInModule","values","Error","_relationships","has","set","Set","IsSecuredBy","__IsSecuredBy","_IsSecuredBy","setIsSecuredBy","deserializeVertex","serializeShallowEdge","IdentityRepresentsOrganization","IsRepresentedBy","__IsRepresentedBy","_IsRepresentedBy","setIsRepresentedBy","Represents","__Represents","_Represents","setRepresents","ProvidesFeature","__ProvidesFeature","_ProvidesFeature","setProvidesFeature","Organization","SMIdentity","OrganizationOwnsTenant","Tenant","LegalName","Address","Phones","Website","Super","Owns","__Owns","_Owns","setOwns","IsOwnedBy","__IsOwnedBy","_IsOwnedBy","setIsOwnedBy","PermissionRequiresPermission","SecurityRoleGrantsPermission","SecurityRole","IsRequiredBy","__IsRequiredBy","_IsRequiredBy","setIsRequiredBy","IsGrantedBy","__IsGrantedBy","_IsGrantedBy","setIsGrantedBy","Requires","__Requires","_Requires","setRequires","Secures","__Secures","_Secures","setSecures","Persona","UserActsAsPersona","User","PersonaExperiencesTenant","MenuLabel","ApplicationUrl","IsPerformedBy","__IsPerformedBy","_IsPerformedBy","setIsPerformedBy","Experiences","__Experiences","_Experiences","setExperiences","IsExperienceFor","__IsExperienceFor","_IsExperienceFor","setIsExperienceFor","AdminUser","Grants","__Grants","_Grants","setGrants","TenantPermitsIdentity","className","type","App","Contact","Developer","TenantUser","DisplayName","LastLoginDate","IsActive","IsPermittedFor","__IsPermittedFor","_IsPermittedFor","setIsPermittedFor","TenantDeploysToArea","TenantArea","TenantEnablesTenantFeature","TenantFeature","TenantSubscribesToTenantModule","TenantModule","Key","Summary","Description","Mode","FeatureFacets","SubscriptionKey","LastAccessed","SalesforceCustomerId","DeploysTo","__DeploysTo","_DeploysTo","setDeploysTo","Enables","__Enables","_Enables","setEnables","Permits","__Permits","_Permits","setPermits","SubscribesTo","__SubscribesTo","_SubscribesTo","setSubscribesTo","TenantActivity","DeletedDate","Message","TenantKey","AreaName","EventName","IdentityKey","ActivityTime","TenantUserWorksInArea","IsProduction","Tier","CustomDatabaseThroughputRUs","Alias","Order","RebuildApprovals","DeleteApprovals","CollectionDeleted","IsFor","__IsFor","_IsFor","setIsFor","IsWorkedBy","__IsWorkedBy","_IsWorkedBy","setIsWorkedBy","IsEnabledBy","__IsEnabledBy","_IsEnabledBy","setIsEnabledBy","TenantModuleProvidesTenantFeature","IsProvidedBy","__IsProvidedBy","_IsProvidedBy","setIsProvidedBy","IsSubscribedBy","__IsSubscribedBy","_IsSubscribedBy","setIsSubscribedBy","Provides","__Provides","_Provides","setProvides","WorksIn","__WorksIn","_WorksIn","setWorksIn","ActsAs","__ActsAs","_ActsAs","setActsAs","UserDevelopsAsDeveloper","IsDeveloperFor","__IsDeveloperFor","_IsDeveloperFor","setIsDeveloperFor","DevelopsAs","__DevelopsAs","_DevelopsAs","setDevelopsAs","UserManagesApp","IsManagedBy","__IsManagedBy","_IsManagedBy","setIsManagedBy","Manages","__Manages","_Manages","setManages","ApiManagementSubscriptionPrimaryKey","ApiManagementSubscriptionSecondaryKey","Logon","Emails","Account","InvoiceBillsAccount","Invoice","CorrespondencePertainsToAccount","Correspondence","AccountRoleServicesAccount","AccountRole","ProgramWritesAccount","Program","ReservationSetReservesAccount","ReservationSet","SMIdentityWorksAccount","UserFavoritesAccount","AccountPerformsWorkflowSet","WorkflowSet","AccountRunsWorkflow","Workflow","AccountWritesPolicySet","PolicySet","Dba","Phone","Fax","Country","Address1","Address2","Address3","City","State","Zip","County","FEIN","Tags","Status","ClearanceStatus","ProducerId","Code","BilledBalance","PastDueBalance","PastDueInvoiceDueDate","PastDuePolicyBalances","PrimaryAccount","AssociatedAccounts","IsCleared","DescriptionOfOperations","LegalEntity","AccountTaxLocation","Unincorporated","IsBilledFor","__IsBilledFor","_IsBilledFor","setIsBilledFor","Communicates","__Communicates","_Communicates","setCommunicates","IsServicedBy","__IsServicedBy","_IsServicedBy","setIsServicedBy","IsWrittenFor","__IsWrittenFor","_IsWrittenFor","setIsWrittenFor","IsReservedBy","__IsReservedBy","_IsReservedBy","setIsReservedBy","IsFavoriteOf","__IsFavoriteOf","_IsFavoriteOf","setIsFavoriteOf","Performs","__Performs","_Performs","setPerforms","Runs","__Runs","_Runs","setRuns","Writes","__Writes","_Writes","setWrites","IsPerformedFor","__IsPerformedFor","_IsPerformedFor","setIsPerformedFor","Services","__Services","_Services","setServices","IsRunningFor","__IsRunningFor","_IsRunningFor","setIsRunningFor","IsWrittenBy","__IsWrittenBy","_IsWrittenBy","setIsWrittenBy","Activity","Action","EntityType","EntityId","EntityCorrelationKey","DeletedBy","Application","WorkflowCollectsApplication","ApplicationContainsElementCondition","ElementCondition","ApplicationCollectsSection","Section","ApplicationPopulatesDataStore","DataStore","CopiedFromId","ProvisionStatus","ProvisionStatusChanged","ProvisionErrorReasons","ProvisionWaitingReasons","CreatedFromId","CreatedFromRevision","TaskId","RemainingRequiredFields","TotalRequiredFields","RemainingRequiredSections","MoreThanAllowedSections","RemainingInvalidFields","Committed","Complete","DataChanged","IsCollectedFor","__IsCollectedFor","_IsCollectedFor","setIsCollectedFor","ContainsCondition","__ContainsCondition","_ContainsCondition","setContainsCondition","Collects","__Collects","_Collects","setCollects","Populates","__Populates","_Populates","setPopulates","IsCollectedBy","__IsCollectedBy","_IsCollectedBy","setIsCollectedBy","IsContainedBy","__IsContainedBy","_IsContainedBy","setIsContainedBy","ApplicationDocument","WorkflowSetId","WorkflowId","IsPopulatedBy","__IsPopulatedBy","_IsPopulatedBy","setIsPopulatedBy","Assignable","AssignableAssignedTask","Task","UserPool","WorkGroup","TasksAssigned","DateCreated","Assignee","__Assignee","_Assignee","setAssignee","DateAssigned","AssignedTo","__AssignedTo","_AssignedTo","setAssignedTo","BusinessLocation","TimeZone","BusinessDays","ObserveDaylightSavings","CorrespondenceDeliveredForCorrespondenceTask","TaskCorrespondence","CorrespondenceDeliversAccountRole","CorrespondenceDeliversEmail","DataPointEmail","CorrespondenceMailsToDataGroup","DataGroup","CorrespondenceParameterSubstitutesDataPoint","DataPoint","CorrespondencePullsFromDataStore","CorrespondenceSendsDocument","Document","ExecutionStatus","DataStoreId","Locked","ToRecipients","CcRecipients","BccRecipients","EmailSubjectTemplate","EmailSubject","EmailMessageTemplate","EmailMessage","SentMessage","DocumentCategory","DocumentTags","CorrespondenceType","Preferences","AllowRecipientEditing","EmailThreadId","AddressTo","AddressLine1","AddressLine2","AddressLine3","AddressCity","AddressState","AddressZip","DeliveredFor","__DeliveredFor","_DeliveredFor","setDeliveredFor","DeliversAccount","__DeliversAccount","_DeliversAccount","setDeliversAccount","DeliversEmail","__DeliversEmail","_DeliversEmail","setDeliversEmail","MailsTo","__MailsTo","_MailsTo","setMailsTo","ParameterSubstitutes","__ParameterSubstitutes","_ParameterSubstitutes","setParameterSubstitutes","PertainsTo","__PertainsTo","_PertainsTo","setPertainsTo","PullsFrom","__PullsFrom","_PullsFrom","setPullsFrom","Sends","__Sends","_Sends","setSends","RequestsDeliveryBy","__RequestsDeliveryBy","_RequestsDeliveryBy","setRequestsDeliveryBy","AddressType","DeliveredBy","__DeliveredBy","_DeliveredBy","setDeliveredBy","MailedBy","__MailedBy","_MailedBy","setMailedBy","ParameterName","ParameterSubstitutedBy","__ParameterSubstitutedBy","_ParameterSubstitutedBy","setParameterSubstitutedBy","GivesTo","__GivesTo","_GivesTo","setGivesTo","SentBy","__SentBy","_SentBy","setSentBy","SectionRepeatsWithDataGroup","DataGroupChildDataGroup","DataStoreContainsDataGroup","DataGroupContainsDataPoint","CommittedEditions","EditionParticipation","Repeatable","ReferenceId","ReferenceObject","ProductId","Tag","DataGroupType","TrackingKey","ParentId","RepeatableAncestors","RepeatablePath","RepeatablePathWasCalculated","RepeatsWithSection","__RepeatsWithSection","_RepeatsWithSection","setRepeatsWithSection","ChildOf","__ChildOf","_ChildOf","setChildOf","ParentOf","__ParentOf","_ParentOf","setParentOf","Contains","__Contains","_Contains","setContains","DataGroupDocument","DataPoints","FixedDataGroups","DataGroupLinks","ParentType","MapCalculatesDataStore","Map","WorkflowStoresDataStore","Aliases","OwnerId","Editions","PartiallyCommittedEditions","RepeatableAncestorsWasCalculated","MigratedEditions","CalculatedBy","__CalculatedBy","_CalculatedBy","setCalculatedBy","IsStoredFor","__IsStoredFor","_IsStoredFor","setIsStoredFor","DataStoreDocument","DocumentInformsTransaction","Transaction","DocumentInvoicesInvoice","DocumentSatisfiesTask","ExtractionStatus","DocumentDateLabel","DocumentDate","OriginDate","UpdatedDate","ExtractionRequestedAt","ExtractionExternalTrackingId","Size","AccountId","DocumentCategoryId","FileExtension","PolicySets","EffectiveDate","deserializeContractDate","UploadedBy","ExtractionFailureReason","EmailMessageIdsForAttachment","Informs","__Informs","_Informs","setInforms","Invoices","__Invoices","_Invoices","setInvoices","Satisfies","__Satisfies","_Satisfies","setSatisfies","serializeContractDate","DocumentAudit","CorrelationKey","Version","ReplacedByVersion","UpdatedTime","UpdatedByIdentity","DeletedByIdentity","PolicyTerms","IsInformedBy","__IsInformedBy","_IsInformedBy","setIsInformedBy","IsInvoicedBy","__IsInvoicedBy","_IsInvoicedBy","setIsInvoicedBy","IsSatisfiedBy","__IsSatisfiedBy","_IsSatisfiedBy","setIsSatisfiedBy","Element","ElementConditionEnablesElement","SectionContainsElement","DateField","Field","DecimalField","EmailField","StringField","IntegerField","ListOfStringsField","MoneyField","PhoneField","StaticElement","StaticText","TimestampField","UrlField","YearField","YesNoField","ZipcodeField","OrderNum","DisplayLabel","ShowHelp","Help","ConditionMet","ExternalId","ApplicationId","ElementConditionEvaluatesDataPoint","ScriptCondition","Evaluates","__Evaluates","_Evaluates","setEvaluates","Edition","InputLabel","FromRepeatable","IsEvaluatedForCondition","__IsEvaluatedForCondition","_IsEvaluatedForCondition","setIsEvaluatedForCondition","FieldPopulatesDataPoint","Holiday","InvoiceNumber","GenerationDate","PaymentGenerationDate","DueDate","InitialBalanceDue","IsPaperless","Bills","__Bills","_Bills","setBills","MapContainsTransform","Transform","Calculates","__Calculates","_Calculates","setCalculates","Mappable","SimpleMapping","DataPointDate","DataPointDecimal","DataPointString","DataPointInteger","DataPointListOfStrings","DataPointMoney","DataPointPhone","DataPointTimestamp","DataPointUrl","DataPointYear","DataPointYesNo","DataPointZipcode","ScriptTransform","Rule","RuleDateTime","RuleProductSelection","RuleRiskAssessment","RuleRoleAssignment","RuleTaskObligation","RuleWorkflowSetStatus","Content","DataType","IsMappingFor","__IsMappingFor","_IsMappingFor","setIsMappingFor","MapsTo","__MapsTo","_MapsTo","setMapsTo","Notification","UserNotificationCenterIsAlertedByNotification","UserNotificationCenter","ExpirationDate","EventId","Subtitles","ContextIds","Alerts","__Alerts","_Alerts","setAlerts","PhaseRequiresTask","DateStarted","IsRequiredFor","__IsRequiredFor","_IsRequiredFor","setIsRequiredFor","Policy","PolicySetWritesPolicy","PolicyExecutesTransaction","CopiedToPolicyIds","RenewedToPolicyIds","CopiedFromPolicyId","RenewedFromPolicyId","CancellationDate","LastUpdated","ProgramId","DefaultCommission","Commission","APICreated","CopiedReason","QuoteNumber","PolicyNumber","StateOfDomicile","WrittenPremium","WrittenTaxes","WrittenFees","WrittenTotal","Executes","__Executes","_Executes","setExecutes","IsExecutedBy","__IsExecutedBy","_IsExecutedBy","setIsExecutedBy","PolicySetStackKey","CopiedFromPolicySetId","RenewedFromPolicySetId","DefaultTerm","InitialWorkflowId","Prioritization","PrioritizationTypeOrder","DeadlineImminentValue","DeadlineImminentUnitOfTime","DueDateImminentValue","DueDateImminentUnitOfTime","ServiceLevelImminentValue","ServiceLevelImminentUnitOfTime","ProgramRevisionPublishesProgram","ProgramRevision","ProgramConfiguredByProgramOptions","ProgramOptions","ProgramFormattedByRegion","Region","IsPublishedBy","__IsPublishedBy","_IsPublishedBy","setIsPublishedBy","IsConfiguredBy","__IsConfiguredBy","_IsConfiguredBy","setIsConfiguredBy","IsFormattedBy","__IsFormattedBy","_IsFormattedBy","setIsFormattedBy","Configures","__Configures","_Configures","setConfigures","Formats","__Formats","_Formats","setFormats","RevisionSelection","DefaultFromAddress","BasePoints","ThresholdLow","ThresholdMedium","ThresholdHigh","ThresholdVeryHigh","DefaultWorkflowId","DefaultDelinquentWorkflowId","ProgramRevisionStandbyWorkflow","RevisionNo","StartDate","StopDate","ComponentRevisionNos","ComponentVersionNos","ComponentLabels","Undeployed","DeployedOn","SupersededDate","StandbyWorkflowCountByDef","PatchNumbers","Publishes","__Publishes","_Publishes","setPublishes","HasStandby","__HasStandby","_HasStandby","setHasStandby","Published","PublishedBy","StandbyDate","IsStandbyFor","__IsStandbyFor","_IsStandbyFor","setIsStandbyFor","ReferralLevel","TotalTasks","TotalWorkflows","DeclineReason","Currency","IsDefault","SMIdentityStartsReservationSet","WorkGroupQueuesReservationSet","CreatedAt","LastActivity","IsStartedBy","__IsStartedBy","_IsStartedBy","setIsStartedBy","IsQueuedBy","__IsQueuedBy","_IsQueuedBy","setIsQueuedBy","Reserves","__Reserves","_Reserves","setReserves","ReservedAt","RuleSet","RuleSetContainsRule","RuleSetRiskAssessment","SectionDocument","Fields","StaticElements","FixedSections","Participation","ParticipationStatus","RepeatsWith","__RepeatsWith","_RepeatsWith","setRepeatsWith","ServiceLevel","ServiceLevelAgreementId","IsTriggeredBy","__IsTriggeredBy","_IsTriggeredBy","setIsTriggeredBy","Triggers","__Triggers","_Triggers","setTriggers","ServiceLevelAgreement","TimeToCompleteValue","TimeToCompleteUnits","ExcludeWeekends","ExcludeHolidays","Enabled","VersionId","MapId","OutputLabel","InputOrder","OutputOrder","InputType","SMIdentityMemberOfUserPool","HasMembers","__HasMembers","_HasMembers","setHasMembers","IsMemberOf","__IsMemberOf","_IsMemberOf","setIsMemberOf","Starts","__Starts","_Starts","setStarts","Works","__Works","_Works","setWorks","TransactionIsManagedByWorkflow","TransactionNumber","TransactionEffectiveDate","CopiedFromPolicyNumber","PolicyId","RatingStatus","PolicyRatedStatus","LastAttemptedPolicyRatedStatus","SuccessfulPolicyRatedStatuses","TransactionTypeId","TransactionStarted","ChangeInPremium","ChangeInTaxes","ChangeInFees","ChangeInTotal","TransactionDetails","TransactionId","ViewUrl","EditUrl","RatingMessages","EligibilityStatus","SelectionStatus","Favorites","__Favorites","_Favorites","setFavorites","EnableInAppNotificationPopups","NotificationTypeSettings","ExpirationDurationOfReadNotificationsInDays","IsAlertedBy","__IsAlertedBy","_IsAlertedBy","setIsAlertedBy","Read","UserRecentAccounts","Recents","Workable","WorkableEnablesWorkable","Phase","TaskApplication","TaskApproval","TaskClearance","TaskDocumentGeneration","TaskFileRequirement","TaskManual","TaskPolicyDates","TaskProducts","TaskRatingSystem","CompletionStatus","AvailabilityStatus","ObligationStatus","DateStatusChanged","StatusChangedById","WaiveJournalEntryKey","CompletingDependencies","CompletedDependencies","WaitsFor","__WaitsFor","_WaitsFor","setWaitsFor","Event","WorkflowSetContainsWorkflow","WorkflowEvaluatesRule","WorkflowRequiresPhase","Abbr","Transactional","Starting","Notes","CompletedTaskPercent","Premium","ActiveTasks","CompletedTasks","DateNextDue","CompletedOrStoppedOn","CompletedOrStoppedBy","IsCopy","CreatedOn","CreatedAsStandby","StoppingDependencies","StoppedDependencies","LastCompletedTask","VersionName","WorkflowVersionKey","StopReason","OriginalEdition","Stores","__Stores","_Stores","setStores","IsEvaluatedFor","__IsEvaluatedFor","_IsEvaluatedFor","setIsEvaluatedFor","Sequence","RiskScore","CurrentRiskThreshold","SelectingWorkflowVersion","PreparingWorkflowForCopy","Queues","__Queues","_Queues","setQueues","AccountActivity","AffectedUsers","AlsoAppliesToIds","Optional","RegExPattern","ValidationType","Options","ValidationScript","ReferenceProperty","ContentType","DefaultContent","Access","ValidationErrors","PreviousContent","CompleteName","AutoComplete","DecisionFunction","DecisionMatrixJson","Decision","ScriptFunction","LayoutHint","DisplayProperties","MinSections","MaxSections","IdentityType","Active","HowTo","DateLockedOrCompleted","LockedOrCompletedByName","LockedOrCompletedById","RuleId","RuleDescription","InitiallyAssignedTo","ExecutionErrorReason","LastExecutedDate","LastAvailableDate","CreatedBy","DeadlineTriggerDefinitionId","Deadline","DeadlineTriggeredOn","SLATriggeredOn","SLATriggeredByWorkableId","SLADueOn","SLAVersionId","SLAId","UserActivity","Initials","NoOfUsers","NoOfActiveUsers","AuditableAccountActivity","MinDate","MaxDate","MinValue","MaxValue","Places","AllowSpaces","MinLength","MaxLength","MultiLineEntry","TaskDefinitionKeys","DateTime","Eligibility","AccountRoleDefinitionKey","Required","StaticTextStyle","ApplicationDefinitionId","ApplicationComplete","IsApproved","RejectionType","InsuredTag","ProducerTag","AgentTag","AgentAccountRoleDefinitionKey","AgentAccountRoleId","ClearanceResult","AccountMatches","DefaultFrom","CorrespondenceId","DocumentId","StorageId","ReplaceExisting","DefaultDocumentDescription","RequiredCategoryId","AcceptPreExistingDocument","EnforceDocumentAge","DocumentAgeValue","DocumentAgeUnit","DefaultTags","AllowChangingEffectiveDates","AllowChangingExpirationDates","AddType","AddTransactionId","AddAllOtherTransactionId","ModifyTransactionId","RemoveTransactionId","ProductEligibility","CommitOnSuccess","GetPaymentPlans","GenerateWorksheets","WorksheetsCategory","WorksheetTags","ReturnPolicyFormsList","GeneratePolicyForms","PolicyFormsCategory","PolicyFormsTags","RatingResults","Commit","Worksheets","PolicyForms","ReservationTimeLimit","NumUnreservedAccounts","NumActiveWorkers","AccountComment","ActivityType","AccountJournalEntry","Subject","ExternalCommunication","Types","ApplicationIsSequencedByApplicationSequence","Sequences","__Sequences","_Sequences","setSequences","IsSequencedBy","__IsSequencedBy","_IsSequencedBy","setIsSequencedBy","ApplicationSequence","ApplicationStructure","ApplicationStructureBelongsToProgramRevision","FileName","BelongsTo","__BelongsTo","_BelongsTo","setBelongsTo","UtilizesAppStructure","__UtilizesAppStructure","_UtilizesAppStructure","setUtilizesAppStructure","AppRepresentedByTenantUser","IsContactFor","__IsContactFor","_IsContactFor","setIsContactFor","Area","ProgramRevisionConfiguresArea","SMIdentityWorksInArea","AreaDeploysDeployable","Deployable","InstecBillingEndpoint","InstecBillingAuthToken","IsConfiguredFor","__IsConfiguredFor","_IsConfiguredFor","setIsConfiguredFor","Deploys","__Deploys","_Deploys","setDeploys","DeployedDate","Settings","DeployedTo","__DeployedTo","_DeployedTo","setDeployedTo","Asset","AssetGroupContainsAsset","AssetGroup","Extension","ProductIds","PayloadSize","PayloadFileName","LastUpdatedBy","TaskAssignedAssignable","BadgePath","InitialAssigneeFor","__InitialAssigneeFor","_InitialAssigneeFor","setInitialAssigneeFor","Company","CompanyWritesProduct","Product","Admitted","CustomTable","IsSystem","Created","LastChanged","CustomTableRow","CustomTableId","Dashboard","Sections","TaskCorrespondenceMailToDataGroup","DataGroupIsSequencedByDataGroupSequence","DataGroupSequence","IsPredefined","IsDesiredStateAllowed","PopulatedBy","RepeatsToSection","__RepeatsToSection","_RepeatsToSection","setRepeatsToSection","MailBy","__MailBy","_MailBy","setMailBy","DataPanelUsesWidget","IsUsedBy","__IsUsedBy","_IsUsedBy","setIsUsedBy","Uses","__Uses","_Uses","setUses","DataStoreIsSequencedByDataStoreSequence","DataStoreSequence","ProgramPatch","DeploymentStatus","UndeployedDate","UndeployedBy","ProgramAllowsDocumentCategory","TaskCorrespondenceAttachesDocumentCategory","Category","DateLabel","IsAllowedBy","__IsAllowedBy","_IsAllowedBy","setIsAllowedBy","AttachedBy","__AttachedBy","_AttachedBy","setAttachedBy","SectionDisplaysElement","EnableListView","DefaultConditionMet","InputSources","IsDisplayedBy","__IsDisplayedBy","_IsDisplayedBy","setIsDisplayedBy","EmailTemplate","TaskCorrespondenceMessagesEmailTemplate","HtmlBody","DataParameters","DocumentParameters","CanDelete","MessagedBy","__MessagedBy","_MessagedBy","setMessagedBy","FeatureFacet","FacetType","Deprecated","PhaseIsSequencedByPhaseSequence","PhaseSequence","Producer","ProducerOffersProgram","NewBusinessCommission","RenewalCommission","OffersAllPrograms","Offers","__Offers","_Offers","setOffers","HasCommissionOverride","NewBusinessProductCommission","RenewalProductCommission","IsOfferedBy","__IsOfferedBy","_IsOfferedBy","setIsOfferedBy","ProgramOffersProduct","Allows","__Allows","_Allows","setAllows","ProgramChange","ProgramChangeEditsProgram","ChangeNo","Author","ValidationStatus","ProgramChanges","WorkflowChanges","DataChanges","Edits","__Edits","_Edits","setEdits","LockedBy","Updated","UpdatedBy","NumberOfChanges","IsEditedBy","__IsEditedBy","_IsEditedBy","setIsEditedBy","ProgramChangeLog","RevisionedOwner","RevisionedComponent","ChangeType","RevisionableId","RevisionableType","ChangeId","Rollback","ProgramCollectsApplication","ProgramDefinesWorkflowSet","IsDefinedFor","__IsDefinedFor","_IsDefinedFor","setIsDefinedFor","Defines","__Defines","_Defines","setDefines","ProgramDisplaysDataPanel","Displays","__Displays","_Displays","setDisplays","ProgramEmploysTenantUser","IsManager","IsEmployedBy","__IsEmployedBy","_IsEmployedBy","setIsEmployedBy","Employs","__Employs","_Employs","setEmploys","ProgramEvaluatesRuleSet","IsEvaluatedBy","__IsEvaluatedBy","_IsEvaluatedBy","setIsEvaluatedBy","ProgramObligatesAccountRole","InitiallyFilled","UserIds","AuthorityLevel","IsObligatedBy","__IsObligatedBy","_IsObligatedBy","setIsObligatedBy","Obligates","__Obligates","_Obligates","setObligates","DefaultEligibilityStatus","RatedByWebhook","VersionSelection","ProgramPatchLog","PatchId","LastPatched","SourceObjectVersionNumber","OriginalProperties","PatchedModel","ProgramPatchRevisesRevisioned","IsRevisedBy","__IsRevisedBy","_IsRevisedBy","setIsRevisedBy","Revises","__Revises","_Revises","setRevises","ProgramRevisioned","ProgramRevisionTracksProgramRevisioned","DataPanel","RuleSetAssignment","RuleSetDateTime","RuleSetProduct","RuleSetRequirement","RuleSetWorkflowSetStatus","LockedByChange","IsTrackedFor","__IsTrackedFor","_IsTrackedFor","setIsTrackedFor","ComponentRevisionNo","ChangeRevisionNo","Tracks","__Tracks","_Tracks","setTracks","ProgramStoresDataStore","ProgramUsesWorkGroup","ProgramUtilizesAssetGroup","IsUtilizedBy","__IsUtilizedBy","_IsUtilizedBy","setIsUtilizedBy","Utilizes","__Utilizes","_Utilizes","setUtilizes","ProgramValidationMessage","Level","RevisionedId","RevisionId","ComponentId","ComponentType","Entities","IsProgramDefault","RuleSetRequirementRegulatesWorkflow","IsRegulatedBy","__IsRegulatedBy","_IsRegulatedBy","setIsRegulatedBy","Regulates","__Regulates","_Regulates","setRegulates","RuleSetWorkflowSetStatusCapturesWorkflowSet","IsCapturedBy","__IsCapturedBy","_IsCapturedBy","setIsCapturedBy","Captures","__Captures","_Captures","setCaptures","RuleTaskObligationSetsRequirementForTask","GetsRequirementFrom","__GetsRequirementFrom","_GetsRequirementFrom","setGetsRequirementFrom","SetsRequirementFor","__SetsRequirementFor","_SetsRequirementFor","setSetsRequirementFor","SectionIsSequencedBySectionSequence","SectionSequence","SMIdentityFillsSecurityRole","AmountOfTime","TimeUnits","BusinessHoursOnly","__InitiallyAssignedTo","_InitiallyAssignedTo","setInitiallyAssignedTo","Attaches","__Attaches","_Attaches","setAttaches","TaskCorrespondenceDeliversAccountRole","TaskCorrespondenceDeliversDataPointEmail","MailTo","__MailTo","_MailTo","setMailTo","Messages","__Messages","_Messages","setMessages","TaskCorrespondenceParameterSubstitutesDataPoint","Path","TenantDeveloperOptions","TenantUserDevelopsAsDeveloper","IsPersonaOf","__IsPersonaOf","_IsPersonaOf","setIsPersonaOf","TenantUserMemberOfWorkGroup","DateOfMembership","TransactionType","PolicyStateConstraint","Webhook","Security","HTTPMethod","AreaUrls","Timeout","WebhookActivity","AreaKey","EventTimeStamp","SentTimeStamp","CompletedTimeStamp","WebhookDefinitionId","SendWebhookMessage","WebhookName","AccountNumber","ActionName","EntityName","CustomOperation","AcknowledgedOn","ActivityMadeStale","Widget","Title","WidgetType","AssociatedId","ShowDataWhenValueIsNull","WaitingForIds","OnBeforeCompleteEventActions","WorkflowConfiguredByWorkflowOptions","WorkflowIsSequencedByWorkflowSequence","WorkflowOptions","WorkflowSequence","UserType","AuthProviderClientId","Honorific","FirstName","MiddleName","LastName","NameSuffix","Email","ActiveSince","InvitedDate","Scopes","IsCalculated","RateAffecting","IsRepeatableKey","ResetDataForNewEdition","NoOfTimesUsed","PopulatedByDataPointId","DisplayWidth","RetainDataWhenHidden","Prefix","Suffix","Protected","HoldAutoComplete","OnCompleteEventActions","LiveSince","Discontinued","Ended","PoliciesIssued","AllowAllDocumentCategories","ImportStatus","TeamLastPublished","TeamHasUnpublishedChanges","ProductsOffered","AccountOwnerRoleId","DataPanelAccountOrder","DataPanelWorkflowOrder","ProgramImportValidationMessage","ImportedEntityId","ImportedEntityType","ImportedEntities","PatchNo","RootItemPatched","VersionNo","ChangeIds","ComponentName","ComponentChildToParent","PatchIds","DeploymentError","RepeatsWithDataGroupId","AutoExecute","AutoDefer","DeferAmount","DeferAmountUnits","DeferBusinessHoursOnly","DefaultAssignee","Waivable","OnCompleteWorkflowSetStatus","Webhooks","OnUncompleteEventActions","SLATriggeredByWorkableIds","SLACorrelationKey","WorkflowType","CanStartStatus","OnStartWorkflowSetStatus","OnStopWorkflowSetStatus","OnStopWorkflow","CopyToNewWorkflowSet","PreventResumeWhenStopped","OnStartEventActions","OnBeforeStopEventActions","OnStopEventActions","OnResumeEventActions","DataStoreDefinitionId","AvailableStatuses","RiskScoringEnabled","RiskScoringConfig","ValuesRequiringExplanation","DisplayAsPercentage","DisplayNegativesInRed","ContactIsSameAsDeveloper","DisplayAsWholeNumber","TaskIds","SetDateTo","AccountRoleDefinitionId","RiskActions","Otherwise","DecisionConditionals","Text","ApplicationDefinitionKey","AllowApproveWithConditions","AgentAccountRoleDefinitionId","ExtractData","ClearOutDocumentsForCopyToQuote","RatingAction","FailIfNotRated","SendAccountInfo","ShowUrlInViewOnly","ButtonAlignment","AccountsService","BaseService","baseUrl","http","globalMessages","loggingService","loadingService","AssignAccountRole","body","contexts","accountId","accountRoleId","optionalParameters","url","replace","params","HttpParams","identityId","request","put","pipe","share","isArray","handleNormalPostPutRequest","Models","AddAccount","post","ListAccountsAndOptionallyAsListOfTasks","producerId","view","includeTasks","numAccounts","subscribe","SetNextAccountCodeNumber","ChangeAccountProducer","ClearAccount","UpdateAccountBalance","accountIdOrCode","UpdateAccountTags","SearchAccounts","searchTerms","RetrieveAccountByIdOrCode","includePoliciesAndTransactions","handleNormalGetRequest","ListWorkflowSets","ListAccountAssignables","FilterAccounts","activeAccounts","BulkAccountRoleReassignment","RetrieveStatusOfBulkAccountRoleReassignment","operationId","GetLoggedInUserActivity","entityId","RetrieveJournalEntries","correlationKey","taskId","RetrieveJournalEntry","journalId","AddJournalEntry","UpdateJournalEntry","idOrCorrelationKey","RetrieveAllVersionOfCommentsForAnAccount","journalEntryCorrelationKey","RetrieveComment","commentId","AddComment","UpdateComment","DeleteComment","idOfDeletedItem","delete","handleNormalDeleteRequest","ResurrectAComment","ListDocumentCategoriesForAccount","ReverseInvoice","invoiceId","AddInvoice","ListPolicies","programId","fromEff","fromExp","toEff","toExp","updatedSince","workflowSetId","policySetId","filterRenewed","initialWorkflowId","includeClosed","RetrieveAPolicy","policyId","UpdateCommission","RevertPolicyCommission","edition","ImportPolicy","policyStatus","policyNumber","ImportPolicyAndCreateOrModifyPolicySet","ListPolicysets","includeDeleted","RetrieveAPolicyset","policySetIdOrWorkflowSetId","UpdatePolicysetTerm","ToggleProduct","workflowId","ImportPolicyset","DeletePolicyset","ListTransactions","includeDeselected","RetrieveATransaction","transactionId","SetRatingResultsForATransaction","ImportTransaction","RetrieveListOfRecentUserAccountIds","AddAccountToRecents","AddAccountToFavorites","RemoveAccountFromFavorites","ListUserNotificationCenters","RemoveNotificationsForUser","MarkNotificationsAsRead","i0","i1","i2","i3","i4","factory","ɵfac","DataService","RetrieveAnInsuranceApplication","applicationId","AddAnApplicationSection","details","RetrieveApplicationSection","sectionId","partitionKey","RemoveApplicationSections","SaveFieldValue","fieldId","returnXml","includeEmpty","includeTracking","compactJson","ImportData","ImportCompactData","desiredState","ImportXmlData","CompareXmlData","RetrieveStatusOfDatastoreImport","RetrieveStatusOfAllOngoingDatastoreImports","RetrieveStatusOfSpecificDatastoreImport","importId","RetrieveSpecificDatastoreImportResults","ListRiskDetail","includeDetails","showAllRules","RetrieveClearanceData","DocumentsService","RetrieveCorrespondence","correspondenceId","RetrieveCorrespondenceAssociatedWithACorrespondenceTask","UpdateACorrespondence","LockCorrespondence","UnlockCorrespondence","ComposeCorrespondence","SendCorrespondence","ListDocuments","documentCategoryId","documentTag","RetrieveADocument","documentId","GetTheTemporaryDocumentUrl","urlType","PrepareDocumentForUpload","ExpectANewDocument","UploadDocument","uploadId","useAsyncAPI","sendForExtraction","RetrieveStatusOfDocumentUpload","RemoveDocument","ModifyDocumentInfo","SetExtractionStatus","Extract","ListEmailThreadsForAnAccount","includeMessages","ListEmailMessages","messageIds","SendEmailMessage","ProgramsService","ListAccountRolesForProgram","RetrieveAnAccountRole","AppointAccountRoleToProgram","ModifyAnAccountRole","accountRoleEdgeId","RemoveAccountRoleFromProgram","ListPrograms","published","RetrieveProgram","AddProgram","ModifyProgram","deploy","changeId","ListProducersOfferingTheProgram","ListChanges","status","lockedBy","includeReleased","RetrieveChange","ModifyChange","LockChange","UnlockChange","StealChangeLock","CommitChanges","UncommitChanges","StartChange","RevertChange","StartPatch","ListProgramPatches","RetrieveProgramPatch","patchId","DeployAProgramPatch","areaKey","RetrieveStatusOfProgramPatchDeployment","UndeployProgramPatch","ListRevisions","RetrieveRevision","revisionId","RetrieveProgramConfiguration","revision","patch","ExportProgramRevision","ImportProgram","programName","description","RetrieveStatusOfProgramImport","AddChangesToAProgramRevision","RemoveChangesFromAProgramRevision","DeployAProgramRevision","RetrieveStatusOfProgramRevisionDeployment","UndeployProgramRevision","StartNewProgramRevision","ModifyAProgramRevision","SetStandbyWorkflows","ValidateProgram","RetrieveStatusOfProgramValidation","StopProgramValidation","ListValidationMessages","ListValidationCodes","DeployProgramTeam","RetrieveDeployedProgramTeam","ListWorkgroups","RetrieveWorkgroupUsers","workgroupId","AddWorkGroupToProgram","ModifyAWorkGroupOnAProgram","usesEdgeId","RemoveWorkGroupFromProgram","ListTenantUsers","RetrieveTeamMember","identityKey","AddTeamMembers","ModifyTeamMembers","employsId","RemoveTeamMember","ListIdentities","ids","ListApplications","AddApplication","ModifyApplication","RetrieveApplication","RemoveApplication","ListSections","RetrieveSection","RetrieveElement","elementId","AddElement","afterId","ModifyAnApplicationElement","RemoveApplicationElement","MoveElement","before","ListStaticElementTypes","ListAssetGroups","RetrieveAssetGroup","assetGroupId","AddAssetGroup","ModifyAnAssetGroup","ListAssets","RetrieveAnAsset","assetId","DetermineAssetPayloadState","RetrieveStatusOfAssetPayloadUpload","RetrieveAssetContent","InitializeANewAsset","UploadThePayloadToAnAsset","UpdatePropertiesOfAnAsset","ListDataPanels","ListWidgets","dataPanelId","ListDataGroups","dataStoreId","depth","RetrieveDataGroup","dataGroupId","AddDataGroup","ModifyDataGroups","RemoveDataGroup","RetrieveDataPoint","dataPointId","ListDataPoints","name","AddDataPoints","ModifyDataPoints","RemoveDataPoint","TestScriptCondition","ListDataStores","RetrieveDataStore","ListDataPointTypes","ListDataGroupsTypes","AddDataStore","ModifyDataStore","RemoveDataStore","ListRules","ruleSetId","RetrieveRule","ruleId","AddRule","ModifyRule","RemoveRule","ListRulesets","RetrieveRuleset","AddRuleset","ModifyRuleset","RemoveRuleset","ListPhases","RetrievePhase","phaseId","AddPhase","ModifyPhase","MovePhase","DeletePhase","ListPublishedTasks","RetrieveTask","AddTasks","ModifyTask","DeleteTask","MoveTask","ListPolicyRatedStatuses","RetrieveWorkflow","ListWorkflows","AddWorkflow","ModifyWorkflow","DeleteWorkflow","ListPolicyOperations","AddWorkflowSet","ModifyWorkflowset","DeleteWorkflowset","TenantService","UpdateWebhookActivity","ListWebhookActivities","eventDateFilter","numActivities","webhookName","eventName","action","area","accountNum","sentDateFilter","completedDateFilter","webhookId","RetrieveWebhook","ListWebhooks","AddWebhook","ModifyWebhook","RegenerateSigningKey","DeleteWebhook","ListAllWorkgroups","RetrieveAWorkgroup","workGroupId","AddWorkgroup","ModifyWorkgroup","ListAccountRoles","RetrieveAccountRole","AddAccountRole","EditAccountRole","ListAreas","UpdateArea","areaId","ListBusinessLocations","RetrieveBusinessLocation","businessLocationId","CreateBusinessLocation","ModifyBusinessLocation","DeleteBusinessLocation","ListTimeZones","ListCompanies","RetrieveCompany","companyId","AddCompany","ModifyCompany","DeleteCompany","ListDashboards","dashboardName","RetrieveDashboard","dashboardId","CreateDashboard","ModifyDashboard","DeleteDashboard","ListDocumentCategories","RetrieveDocumentCategory","categoryId","AddDocumentCategory","ModifyDocumentCategory","AddEmailTemplate","UpdateAnEmailTemplate","emailTemplateId","RetrieveEmailTemplate","templateId","ListEmailTemplates","ListFeatureFlags","ListEnabledFeatureFacets","key","ListAllEnabledFeatureFacets","EnableFeatureFlag","featureFlagId","DisableFeatureFlag","ListHolidays","RetrieveHoliday","holidayId","CreateHolidays","ModifyHoliday","DeleteHoliday","ListIntegrations","integrationType","AddAppIntegration","AddDeveloperIntegration","ModifyAppIntegration","integrationId","ModifyDeveloper","developerId","RegenerateCredentials","ViewCredentials","EnableIntegration","DisableIntegration","DeleteIntegration","RetrievePrioritization","AddPrioritization","ModifyPrioritization","ListProducers","RetrieveProducerByIdOrCode","producerIdentifier","AddProducer","SetNextProducerCodeNumber","ModifyProducer","SearchProducers","ListProducts","RetrieveProduct","productId","AddAProductToACompany","ModifyProduct","DeleteProduct","ListAllProgramRevisions","ListRegions","RetrieveRegion","regionId","AddRegion","ModifyRegion","RetrieveReportConfigValues","ListSecurityRoles","RetrieveSecurityRole","securityRoleId","AddSecurityRole","ModifySecurityRole","DeleteSecurityRole","ResurrectSecurityRole","ListServiceLevelAgreements","includeAllVersions","RetrieveServiceLevelAgreement","serviceLevelAgreementId","CreateServiceLevelAgreement","ModifyServiceLevelAgreement","EnableServiceLevelAgreement","DisableServiceLevelAgreement","ListAllTables","RetrieveTable","tableId","RetrieveRowsForATable","RetrieveAllRows","RetrieveRow","rowId","AddTableRow","UpdateTableRow","DeleteTableRow","ListAllTransactions","RetrieveTransactiontype","transactionTypeId","AddTransactionType","UpdateTransactionType","ListUsers","RetrieveUser","ModifyUser","keyForUserToUpdate","InviteUsers","ResendInvitationToUsers","RetrieveCurrentUser","RemoveUserFromTenant","userId","EnableUserForTenant","RetrieveUserNotificationSettings","UpdateUserNotificationSettings","WorkflowsService","tags","assetName","assetGroupName","RetrieveAsset","includeTaskDetails","ListAllPrograms","ListAllProgramsRevisions","ListModelsOfAProgramRevision","ListTasks","includePhaseDetails","CreateTask","DelegateTask","assignableId","LockTasks","StealATaskLock","UnlockTasks","ExecuteTask","StopExecutingATask","CompleteTasks","WaiveTask","waiveJournalEntryId","UndoWaivedTask","RedoTask","DeferTask","ListUserOrAccountWorkflows","UpdateWorkflowEffectiveDate","SelectAWorkflowQuoteVersion","ListStartingWorkflows","proposedEffectiveDate","ListAvailableProgramWorkflows","StartWorkflow","browserMode","Decline","CloseWorkflow","StopWorkflow","RestartWorkflow","RetrieveRevisionForWorkflow","OverrideWorkflowsetStatus","BuildAWorkflow","CopyAWorkflow","RetrieveWorkflowSet","ListWorkGroups","RetrieveReservationset","reservationSetId","ListReservationsets","StartWorkingWorkGroup","ReserveAccount","includeTasksInResponse","StopWorkingWorkGroup","updateNumUnreservedAccounts","TenantPermissions","SystemAccess","SystemAccess_Users","SystemAccess_Users_ManageUsers","SystemAccess_SecurityRoles","SystemAccess_SecurityRoles_ManageSecurityRoles","SystemAccess_ApiKeys","SystemAccess_ApiKeys_ManageApiKeys","Tenant_Workforce","Tenant_Workforce_ManageAccountRoles","Tenant_Workforce_ManageWorkGroups","Tenant_Insurance","Tenant_Insurance_ManageCompanies","Tenant_Insurance_ManageProducts","Tenant_Insurance_ManageProducers","Tenant_Insurance_ManageTransactionTypes","Tenant_Areas","Tenant_Areas_ManageAreas","Tenant_Areas_DeployPrograms","Tenant_Settings","Tenant_Settings_ManageSettings","Tenant_Settings_ManageDocuments","Tenant_Settings_ManageFeatures","Tenant_Settings_ManageServiceLevels","Tenant_Integrations","Tenant_Integrations_ManageWebhooks","Tenant_Email","Tenant_Email_ManageTemplates","Tenant_Analytics","Tenant_Analytics_ManageTenantDashboards","Flag_Tenant_Analytics_Dashboards","Programs","Programs_Teams","Programs_Teams_ManageTeams","Programs_Changes","Programs_Changes_MakeChanges","Programs_Changes_RollbackChanges","Programs_Changes_CommitChanges","Flag_Programs_Changes_Patching","Flag_Programs_Changes_Assets","Programs_Data","Programs_Data_ManageDataStores","Programs_Data_ManageApplications","Programs_Workflows","Programs_Workflows_ManageWorkflows","Programs_Workflows_ManageRules","Programs_Workflows_ManageProducts","Manage","Manage_Teams","Manage_Teams_ManageTeams","Manage_Accounts","Manage_Accounts_BulkReassignAccounts","Work","Work_Accounts","Work_Accounts_AddAccounts","Work_Accounts_AssignProducers","Work_Accounts_JournalEntries","Work_Accounts_SearchAccounts","Flag_Work_Accounts_NewAccountNumberOverride","Flag_Work_Accounts_AccountPrioritization","Flag_Work_Accounts_ExplicitProgramAccess","Flag_Work_Accounts_AllowManualFieldUpdatesDuringImport","Flag_Work_Accounts_EmailManagement","Flag_Work_Accounts_PolicyInformationOverview","Work_Workflows","Work_Workflows_ExecuteTask","Work_Workflows_StopAnExecutingOrCompletingTask","Work_Workflows_AssignAccountRoles","Flag_Work_Workflows_EnhancedDataStoreImport","Flag_Work_Workflows_QueueWorkflowProvisioning","Flag_Work_Workflows_OptimizeDataImport","Flag_Work_Workflows_CopyToNewQuoteVersion","Work_Documents","Work_Documents_AddDocuments","Work_Documents_EditDocuments","Work_Documents_DeleteADocument","Work_Documents_UpdateExtractionstatus","Flag_Work_Documents_InsurityDocumentIntelligence","Flag_Work_Documents_BoxComEnhancements","Work_Reports","Billing","Billing_Balances","Billing_Balances_Modify","Billing_Invoicing","Billing_Invoicing_Modify","retryWhen","notifier","operate","source","subscriber","innerSub","errors$","syncResub","subscribeForRetryWhen","createOperatorSubscriber","err","innerFrom","next","unsubscribe","defaultExclusionFunc","response","RetryInterceptor","intercept","req","handle","BackoffRetryStrategy","maxRetryAttempts","scalingDuration","excludeWhen","attempts","mergeMap","error","i","retryAttempt","throwError","console","log","timer","finalize","ContentTypeInterceptor","headers","HttpHeaderNames","Accept","AuthInterceptor","auth","REFRESH_THRESHOLD","expiration","getExpiration","authLoaded","getSubscriptionKey","endsWith","CurrentUserURL","LogoutURL","NoAuthRetryStrategy","logout","HttpErrorResponse","subscriptionKey","interactiveHeader","withCredentials","EventInteractionType","getTime","UserInteractionTypes","Noninteractive","refresh","catchError","x","handleAuthError","of","message","HttpInterceptorProviders","provide","HTTP_INTERCEPTORS","useClass","multi","environment","env","LocalProxyRouteInterceptor","self","includes","usingBaseUrl","startsWith","fixedUrl","URL","pathname","toString","length","_baseUrl","applicationEndpoint","BaseDataContext","addOrReplace","domainid","clearAll","BehaviorSubject","broadcast","getValue","clear","splice","add","item","push","found","index","DataContext","loading","_loading","loadingStores","forEach","storeKey","stores","stopLoadingWithoutBroadcast","models","getStore","DomainType","getStoreValues","getItems","domainids","arr","val","DomainId","loadApiResponseModels","expectedType","postLoadAction","remove","_body","JSON","parse","responseContent","obj","createDomainId","deserializeSingleObject","loadResponseModels","ConfigModels","rawObj","parent","getParentPrototype","replaceModel","existing","ObjectVersionNumber","mergeRelationships","map","clearStore","dontBroadcast","isloading","store","Object","getPrototypeOf","BaseModel","d","broadcastAll","TenantContext","isLoaded","DataPointTypes","providedIn","UserContext","everythingLoaded","quickDataLoaded","accountsLoaded","DateRangeString","Today","LastThirtyDays","LastSixtyDays","LastNinetyDays","ThisWeek","LastWeek","ThisMonth","LastMonth","ThisQuarter","EditableStateEnum","None","View","Edit","Location","RetryAfter","Authorization","ContentDisposition","ApimSubscriptionKey","US_States","getStates","Abbreviation","CAN_Province_Territories","getProvincesAndTerritories","TimerType","SLA","Interactive","ContractDateUtils","convertToDate","contractDate","Year","Month","Day","convertFromDate","date","ContractDate","getFullYear","getMonth","getDate","addTimePeriod","timePeriod","unit","slice","period","Number","dateTimePeriod","DateTimeComponent","Years","Months","Days","Add","TimeSpan","DateUtils","addHours","hours","setTime","getShortYear","getUTCFullYear","substring","isSameDate","date1","date2","firstDate","secondDate","getUTCMonth","getUTCDate","isAfterDate","convertDateRangeToString","range","toLocaleDateString","EndDate","timeSpan","newDate","Units","setFullYear","Value","setMonth","days","Math","round","getTotalDays","setDate","AddTimePeriod","ConvertForDateInput","String","padStart","ConvertInputStringToDate","dateStr","split","ConvertDateRangeStringToDateRange","dateRangeString","currentDate","dateRange","daysUntilCurrentDay","getDay","thisMonth","monthsToBeginningOfQuarter","FormatUtils","getThousandSeparator","Intl","NumberFormat","navigator","language","format","charAt","getDecimalMarker","reverseFormatDecimal","thousandSeparator","decimalMarker","join","parseFloat","reverseFormatInteger","parseInt","array","getIdFromDomainId","domainId","indexOf","getVertexDataFromEdges","relationship","results","edge","vertex","getVertexIdsFromEdges","vertexid","relationshipName","serializedEdgeArray","opposingVertex","apiKeyName","_APIKEY","getIdFromApiKey","opposingData","getDataFromListOfModels","propName","extractModelErrors","errorContainer","Errors","getTaskType","task","trim","toJSON","rawDate","superDeserialize","derivedType","find","t","derivedModel","otherVerticesToDeserialize","existingModel","inRel","inVerticesToDeserialize","deserializeRelationships","concat","outRel","outVerticesToDeserialize","bind","inVertexId","InIdPair","inVertexDomainId","inVertex","_propertyName","rel","outVertexId","OutIdPair","outVertexDomainId","outVertex","baseDataContext","inRelationship","property","oppositePropertyName","oldEdgeIds","vertexObject","vertexModel","backref","foundEdges","filter","foundEdge","RegionUtils","isProgramRegionCommon","regions","programs","programRegions","program","getProgramRegion","every","region","ProgramDef","createAliasVMs","aliases","regionAliasVMs","entries","singularCounterpart","isPlural","targetVMToUpdate","aliasVM","BaseSingular","BasePlural","OverridePlural","OverrideSingular","RouteUtils","BuildEntityRoute","entity","GetIdFromEntry","entryType","routeEntries","entry","TaskUtils","getMostImminentTimerOnTask","taskTimers","taskTimer","TaskName","DueOn","calculateMostImminentTaskTimer","getMostImminentTimerInTaskList","tasks","prev","current","year","month","day","ReferenceDate","DifferenceFromDate","contractTimeZoneOffset","roundToNearestDay","getTimezoneOffset","Minutes","addToDate","valueOf","RoundToNearestFullDay","Difference","other","Equals","CompareTo","toISOString","pad","num","getHours","CONSTANTS","MILLISECONDS_PER_DAY","MILLISECONDS_PER_HOUR","MILLISECONDS_PER_MINUTE","SECONDS_PER_DAY","MINUTES_PER_DAY","units","Milliseconds","setMilliseconds","getMilliseconds","Seconds","setSeconds","getSeconds","setMinutes","getMinutes","Hours","setHours","keys","newKey","override","_out","_in","BaseEnum","getNames","enumItem","items","json","enumObject","AlertsHub","BaseHub","userService","userContext","logger","statusService","tenantService","accountService","notificationService","joinedUserGroup","route","DomainTypes","TenantTypes","Workflows","AreaTypes","Data","Accounts","Documents","initialize","isConnected","user","joinUserGroup","hubConnection","invoke","userKey","logInfo","hubName","mapMessageHandlers","on","domain","EntityDomain","logVerbose","Entity","getAreaKey","setTimeout","info","logWarn","onConnectionStartedCallback","onConnectionClosedCallback","onPollingStart","pollUser","onPollingStop","userTimeout","clearTimeout","hub","loadUserInfo","getRandomInt","i5","i6","i7","i8","DEFAULT_RETRY_DELAYS_IN_MILLISECONDS","DefaultReconnectPolicy","retryDelays","_retryDelays","nextRetryDelayInMilliseconds","retryContext","previousRetryCount","HeaderNames","Cookie","HttpResponse","statusCode","statusText","content","HttpClient","options","send","method","getCookieString","AccessTokenHttpClient","innerClient","accessTokenFactory","_innerClient","_accessTokenFactory","_this","_asyncToGenerator","allowRetry","_accessToken","_setAuthorizationHeader","FetchHttpClient","_logger","fetch","Platform","isNode","requireFunc","__non_webpack_require__","_jar","CookieJar","_fetchType","getGlobalThis","AbortController","_abortControllerType","abortSignal","aborted","AbortError","abortController","onabort","abort","timeoutId","timeout","LogLevel","Warning","TimeoutError","isArrayBuffer","cache","credentials","mode","redirect","signal","ok","errorMessage","deserializeContent","HttpError","payload","responseType","cookies","getCookies","c","arrayBuffer","text","XhrHttpClient","Promise","reject","resolve","xhr","XMLHttpRequest","open","setRequestHeader","header","onload","responseText","onerror","ontimeout","DefaultHttpClient","_httpClient","HttpTransportType","WebSockets","ServerSentEvents","LongPolling","TransferFormat","Binary","_isAborted","LongPollingTransport","pollAborted","_pollAbort","httpClient","_options","_running","onreceive","onclose","connect","transferFormat","Arg","isRequired","isIn","_url","Trace","getUserAgentHeader","Vt","pollOptions","pollUrl","now","_closeError","_receiving","_poll","_this2","Information","getDataDetail","logMessageContent","_raiseOnClose","_this3","sendMessage","stop","_this4","deleteOptions","logMessage","ServerSentEventsTransport","accessToken","encodeURIComponent","eventSource","opened","isBrowser","isWebWorker","EventSource","onmessage","_close","onopen","_eventSource","close","WebSocketTransport","webSocketConstructor","_logMessageContent","_webSocketConstructor","_headers","token","webSocket","isReactNative","binaryType","_event","_webSocket","event","ErrorEvent","readyState","OPEN","_isCloseEvent","wasClean","code","reason","HttpConnection","_stopPromiseResolver","features","_negotiateVersion","createLogger","_resolveUrl","webSocketModule","eventSourceModule","WebSocket","_connectionState","_connectionStarted","start","Debug","_startInternalPromise","_startInternal","_stopPromise","_sendQueue","TransportSendQueue","transport","_stopInternal","_stopError","_stopConnection","skipNegotiation","_constructTransport","_startTransport","negotiateResponse","redirects","_getNegotiationResponse","ProtocolVersion","_createTransport","inherentKeepAlive","_this5","negotiateUrl","_resolveNegotiateUrl","negotiateVersion","connectionToken","connectionId","useStatefulReconnect","_useStatefulReconnect","FailedToNegotiateWithServerError","_createConnectUrl","requestedTransport","requestedTransferFormat","_this6","connectUrl","_isITransport","transportExceptions","transports","availableTransports","negotiate","endpoint","transportOrError","_resolveTransportOrError","ex","FailedToStartTransportError","AggregateErrors","_this7","reconnect","_ref","callStop","disconnected","resend","_x","apply","arguments","transportMatches","actualTransport","DisabledTransportError","transferFormats","s","UnsupportedTransportError","catch","lastIndexOf","aTag","window","document","createElement","href","searchParams","URLSearchParams","append","search","_transport","_buffer","_executing","_sendBufferedData","PromiseSource","_transportResult","_sendLoopPromise","_sendLoop","_bufferData","promise","_this8","transportResult","_concatBuffers","arrayBuffers","totalLength","b","byteLength","reduce","a","result","Uint8Array","offset","buffer","_resolver","_rejecter","JsonHubProtocol","version","parseMessages","NullLogger","instance","messages","TextMessageFormat","hubMessages","parsedMessage","MessageType","Invocation","_isInvocationMessage","StreamItem","_isStreamItemMessage","Completion","_isCompletionMessage","Ping","Close","Ack","_isAckMessage","_isSequenceMessage","writeMessage","write","stringify","_assertNotEmptyString","target","invocationId","sequenceId","LogLevelNameMapping","trace","debug","information","warn","warning","critical","Critical","none","HubConnectionBuilder","configureLogging","logging","isLogger","logLevel","parseLogLevel","mapping","toLowerCase","ConsoleLogger","withUrl","transportTypeOrOptions","isNotEmpty","httpConnectionOptions","withHubProtocol","protocol","withAutomaticReconnect","retryDelaysOrReconnectPolicy","reconnectPolicy","withServerTimeout","milliseconds","_serverTimeoutInMilliseconds","withKeepAliveInterval","_keepAliveIntervalInMilliseconds","withStatefulReconnect","_statefulReconnectBufferSize","bufferSize","build","connection","HubConnection","create","isPolling","_isPolling","delayedGroupJoins","User$","takeUntilDestroyed","u","tenantKey","onReconnectingCallback","min","max","ceil","floor","random","startPolling","stopPolling","state","signalR","Connected","getAuthToken","getCookie","cookie","pop","shift","access_token","startConnection","syncHost","logEvent","setHubState","restart","onreconnecting","onreconnected","then","logException","SeverityLevel","originalError","Disconnected","leave","serviceUrls","ServiceUrls","transactionsTemplate","transactionsListTemplate","accountsSearchTemplate","baseGetUrlSubstituted","baseGetUrl","basePostUrlSubstituted","basePostUrl","basePutUrlSubstituted","basePutUrl","itemId","activities","transactionList","riskDetailsUnsubstituted","riskDetails","listPolicies","TransactionLaunchUrlUnsubstituted","TransactionLaunchUrl","RetrieveTransactionUrlUnsubstituted","RetrieveTransactionUrl","ChangeSelectionUnsubstituted","ChangeSelection","PoliciesUnsubstituted","Policies","WorkflowSetsUnsubstituted","WorkflowSets","transactionListFilters","loadAccount","accountContext","isInteractive","getUserInteractionHeader","loadPoliciesByWorkflow","loadPoliciesByAccount","updateCommission","commissionDTO","revertPolicyCommission","loadTransactions","loadTransactionsByWorkflow","retrieveTransaction","loadPolicySets","loadActivities","loadAssignables","AccountAssignable","assignAccountRole","roleId","AccountAccountRole","loadJournalEntries","saveOrUpdateJournalEntry","journal","updateJournalEntry","saveJournalEntry","loadComments","addComment","comment","updateComment","deleteComment","handleSoftDeleteRequest","resurrectComment","searchAccounts","searchString","handleRequestWithoutResponse","getLaunchUrl","handleError","updatePolicySetTerm","termDTO","changeSelectionStatus","productDTO","loadWorkflowSets","account","loadRiskDetails","AccountWorkflowService","WorkflowsByWorkflowSetUnsubstituted","WorkflowsByWorkflowSet","SingleWorkflow","AccountRoles","Phases","Tasks","TasksByWorkflowSet","getAccountIdQueryParams","refreshAccount","loadWorkflows","loadTasks","loadRoles","restartWorkflow","loadWorkflow","startWorkflow","startWorkflowDTO","responseClone","getStartingWorkflowDefs","getWorkflowDefsForWorkflowSet","retrieveRevisionForWorkflow","updateWorkflowEffectiveDate","effectiveDate","updatePhase","phase","makeRequestWithWorkflowSet","updateTask","executeAction","stopExecutingTask","assignAndUnlockTask","assigneeId","Comment","unlockTask","msg","AppMessage","createTask","dto","editTask","completeTask","redoTask","lockTasks","taskIds","lockTasksByIds","unlockTasksByIds","stealTaskLock","reloadTask","retrieveTask","pollTask","ApiManagementService","transformUrl","waiveTask","waiveJournalEntry","undoWaivedTask","deferTask","DeferTime","requestDelegate","currentWorkflowSetId","take","tenantContext","integrations","developers","integrationIndividual","developerIndividual","integrationCredentials","enableIntegration","disableIntegration","deleteIntegration","Has","loadIntegrations","loadingIntegrations","loadApiResults","getApplication","findApplication","app","applications","application","getDeveloper","findDeveloper","dev","developer","addIntegration","newApplication","updateApplication","addDeveloper","newDeveloper","updateDeveloper","getCredentials","integration","regenerateCredentials","responseObjects","ro","deserializeObject","AuthService","auth0Service","requireAPIM","InsurityBITokenURL","AdminTenantTokenURL","spaName","_spaName","BearerToken","authContext","bearerToken","isAuthenticated$","authContext$","switchMap","_observable","getCurrentUser","idTokenClaims$","error$","subscription","getIdentityKey","getTenantKey","isProgramManager","managedPrograms","getManagedPrograms","getAvailableTenants","tenants","getAvailableAreasForCurrentTenant","areas","login","loginWithRedirect","generateClaims","HttpHeaders","setValues","_logOutRequest","complete","auth0Logout","logoutParams","returnTo","insurityBIToken","getAdminTenantAreaToken","_isRefreshing","selectTenant","selectArea","recoverPassword","email","expires","calculateManagedPrograms","claim","resetUserAuthentication","errorMessageTimeout","filterModelPaths","displayError","modelError","p","convertCommonErrors","ClassName","PropertyName","PropertyValue","handleHttpError","handleNonDeleteRequest","saveToFileSystem","filename","fileSaver","autoBom","DocumentService","documents","documentsByAccount","documentUrl","anyCorrespondence","correspondence","loadDocuments","cntxt","uploadDocuments","documentsToUpload","uploadRequests","uploadDocument","File","SendForExtraction","forkJoin","file","uploadUrl","convertDocumentUploadUrl","UploadUrl","positionOfDocuments","updateDocument","deleteDocument","saveCorrespondence","getDocumentUrl","DragDropService","isDraggingSubject","setDragging","isDragging","currentValue","getDragging","asObservable","FeatureFacetService","interval","getAllFacets","resetTimer","observable","AsyncSubject","TenantFacets","tenantFacets","ConfigFacets","configFacets","AreaFacets","areaFacets","checkIfFacetExists","facetId","allFacets","currentArea","allFacetIds","f","configFacetIds","byArea","areaFacetids","clearInterval","GlobalMessages","maxLength","last","objectMessage","unshift","count","nextId","alertDuration","icon","dismissible","AppMessageAction","label","LoadingService","_a","Constructor","Prototype","strFunction","DynInstFuncTable","DynProxyTag","DynClassName","DynInstChkTag","DynAllowInstChkTag","DynProtoDefaultOptions","UnknownValue","str__Proto","DynProtoBaseProto","DynProtoGlobalSettings","DynProtoCurrent","strUseBaseInst","strSetInstFuncs","Obj","_objGetPrototypeOf","_objGetOwnProps","getOwnPropertyNames","_gbl","getGlobal","_gblInst","o","n","_isObjectOrArrayPrototype","_isObjectArrayOrFunctionPrototype","Function","_getObjProto","newProto","curProto","objHasOwnProperty","_forEachProp","func","props","name_1","lp","_isDynamicCandidate","funcName","skipOwn","_throwTypeError","throwTypeError","_hasVisited","_populatePrototype","proto","baseInstFuncs","setInstanceFunc","instFuncTable","objCreate","instFuncs_1","_createDynamicPrototype","dynProtoProxy","instFunc","_getInstFunc","currentDynProtoProxy","canAddInst","objProto","visited","protoFunc","_getProtoFunc","_getObjName","unknownValue","dynamicProto","theClass","delegateFunc","classProto","_checkPrototype","thisTarget","thisProto","perfOptions","useBaseInst","instFuncs","_getInstanceFuncs","baseFuncs","_getBaseFuncs","_instFuncProxy","funcHost","theFunc","baseProto","strShimFunction","strShimObject","strShimUndefined","strShimPrototype","ObjClass","ObjProto","strHasOwnProperty","SymbolObj","ReflectObj","__assignFn","objAssign","call","extendStaticsFn","setPrototypeOf","__proto__","__extendsFn","__","__spreadArrayFn","to","il","j","_DYN_TO_LOWER_CASE","_DYN_BLK_VAL","_DYN_LENGTH","_DYN_RD_ONLY","_DYN_NOTIFY","_DYN_WARN_TO_CONSOLE","_DYN_THROW_INTERNAL","_DYN_SET_DF","_DYN_WATCH","_DYN_LOGGER","_DYN_APPLY","_DYN_PUSH","_DYN_SPLICE","_DYN_HDLR","_DYN_CANCEL","_DYN_INITIALIZE","_DYN_IDENTIFIER","_DYN_REMOVE_NOTIFICATION_0","_DYN_ADD_NOTIFICATION_LIS1","_DYN_IS_INITIALIZED","_DYN_INSTRUMENTATION_KEY","_DYN__INACTIVE","_DYN_VALUE","_DYN_GET_NOTIFY_MGR","_DYN_GET_PLUGIN","_DYN_NAME","_DYN_I_KEY","_DYN_TIME","_DYN_PROCESS_NEXT","_DYN_GET_PROCESS_TEL_CONT2","_DYN_POLL_INTERNAL_LOGS","_DYN_ENABLED","_DYN_STOP_POLLING_INTERNA3","_DYN_UNLOAD","_DYN_ON_COMPLETE","_DYN_VERSION","_DYN_LOGGING_LEVEL_CONSOL4","_DYN_CREATE_NEW","_DYN_TEARDOWN","_DYN_MESSAGE_ID","_DYN_MESSAGE","_DYN_IS_ASYNC","_DYN_DIAG_LOG","_DYN__DO_TEARDOWN","_DYN_UPDATE","_DYN_GET_NEXT","_DYN_SET_NEXT_PLUGIN","_DYN_PROTOCOL","_DYN_USER_AGENT","_DYN_SPLIT","_DYN_NODE_TYPE","_DYN_REPLACE","_DYN_LOG_INTERNAL_MESSAGE","_DYN_TYPE","_DYN_HANDLER","_DYN_STATUS","_DYN_GET_RESPONSE_HEADER","_DYN_GET_ALL_RESPONSE_HEA5","_DYN_IS_CHILD_EVT","_DYN_DATA","_DYN_GET_CTX","_DYN_SET_CTX","_DYN_COMPLETE","_DYN_ITEMS_RECEIVED","_DYN_URL_STRING","_DYN_SEND_POST","_DYN_HEADERS","_DYN_TIMEOUT","_DYN_SET_REQUEST_HEADER","_DYN_TRACE_ID","_DYN_SPAN_ID","_DYN_TRACE_FLAGS","_DYN_GET_ATTRIBUTE","UNDEFINED_VALUE","STR_EMPTY","STR_CHANNELS","STR_CORE","STR_CREATE_PERF_MGR","STR_DISABLED","STR_EXTENSION_CONFIG","STR_EXTENSIONS","STR_PROCESS_TELEMETRY","STR_PRIORITY","STR_EVENTS_SENT","STR_EVENTS_DISCARDED","STR_EVENTS_SEND_REQUEST","STR_PERF_EVENT","STR_OFFLINE_STORE","STR_OFFLINE_SENT","STR_OFFLINE_DROP","STR_GET_PERF_MGR","STR_DOMAIN","STR_PATH","STR_NOT_DYNAMIC_ERROR","rCamelCase","rNormalizeInvalid","rLeadingNumeric","isNotNullOrUndefined","isNullOrUndefined","normalizeJsName","isString","_all","letter","toUpperCase","match","strContains","strIndexOf","getExceptionName","object","isError","setValue","field","valChk","srcChk","theValue","getSetValue","defValue","isUndefined","_createProxyFunction","srcFunc","src","isFunction","originalArguments","proxyFunctionAs","overwriteTarget","proxyFunctions","functionsToProxy","isObject","arrForEach","theFuncName","optimizeObject","theObject","ObjAssign","objExtend","obj1","obj2","obj3","obj4","obj5","obj6","theArgs","extended","argLen","deep","idx","isBoolean","arg","isArgArray","isArgObj","prop","objHasOwn","newValue","isNewArray","isPlainObject","isFeatureEnabled","feature","cfg","rlt","ft","featureOptIn","getResponseText","formatErrorMessageXdr","xdr","formatErrorMessageXhr","prependTransports","theTransports","newTransports","isNumber","strWithCredentials","_appendHeader","theHeaders","strTrim","_getAllResponseHeaders","isOneDs","convertAllHeadersToMap","headersString","headersArray","headerEntry","strLocation","strJSON","strCrypto","strMsCrypto","strMsie","strTrident","strXMLHttpRequest","_isTrident","_navUserAgentCheck","_enableMocks","_useXDomainRequest","_beaconsSupported","_hasProperty","supported","tmp","getLocation","checkForMock","mockLocation","getInst","location","hasJSON","getJSON","isIE","nav","getNavigator","userAgent","getIEVersion","userAgentStr","navigator_1","ua","doc","getDocument","tridentVer","isBeaconsSupported","useCached","hasNavigator","Boolean","sendBeacon","isFetchSupported","withKeepAlive","isSupported","isXhrSupported","xmlHttpRequest","UInt32Mask","MaxUInt32","SEED1","SEED2","_mwcSeeded","_mwcW","_mwcZ","_autoSeedMwc","utcNow","_mwcSeed","seedValue","random32","signed","getCrypto","getMsCrypto","getRandomValues","Uint32Array","mwcRandom32","newId","number","chars","instanceName","_dataUid","_canAcceptData","createUniqueNamespace","includeVersion","createElmNodeData","accept","addDefault","theCache","_getCache","objDefine","v","kill","_isConfigDefaults","isVal","fb","_getDefault","dynamicHandler","theConfig","cfgDefaults","isDefaultValid","dfVal","isDefined","fallbacks","fallback","fbValue","asString","_resolveDefaultValue","newValue_1","objForEachKey","_applyDefaultValue","defaultValue","isValid","setFn","mergeDf","reference","readOnly","blkDynamicValue","mrg","ref","usingDefault","cfgValue","dfName","dfValue","CFG_HANDLER_LINK","symbolFor","BLOCK_DYNAMIC","FORCE_DYNAMIC","_cfgDeepCopy","target_1","_canMakeDynamic","getFunc","blkVal","throwInvalidAccess","aggregationErrorType","arrayMethodsToPatch","_throwDynamicError","desc","dumpObj","_getOwnPropGetter","propDesc","objGetOwnPropertyDescriptor","_setDynamicProperty","getter","_createDynamicProperty","detail","h","trk","handler","fn","arrIndexOf","clr","checkDynamic","isObjectOrArray","_getProperty","_makeDynamicObject","activeHandler","act","chng","g","_setProperty","upd","isReferenced","rf","hdlr","valueState","newIsObjectOrArray","_setDynamicPropertyState","flags","inPlace","rdOnly","blkProp","blockDynamicConversion","objDefineProp","_patchArray","orgMethod","args","_i","symPrefix","symPostfix","_createDynamicHandler","getDynamicConfigHandler","theState","uid","newTarget","cfgHandler","_notifyWatchers","_setValue","_applyDefaults","defaultValues","_watch","configHandler","_createAndUseHandler","rm","use","_rdOnly","_blkPropValue","_block","allowUpdate","prevUpd","w","_createState","dynamicPropertySymbol","newSymbol","dynamicPropertyReadOnly","dynamicPropertyReferenced","dynamicPropertyBlockValue","dynamicPropertyDetail","_waitingHandlers","_watcherTimer","_useHandler","callback","prevWatcher","setDf","notifyHandlers","watcherFailures_1","throwAggregationError","sourceErrors","createCustomError","errors","theMessage","srcError","_addWatcher","scheduleTimeout","_trackHandler","createDynamicConfig","config","defaultConfig","onConfigChange","_logInvalidAccess","_debugListener","listenerFuncs","_aiNamespace","_listenerProxyFunc","dbgExt","getDebugExt","listener","ns","disableDbgExt","_getExtensionNamespace","ApplicationInsights","ChromeDbgExt","STR_WARN_TO_CONSOLE","loggingLevelConsole","loggingLevelTelemetry","maxMessageLimit","enableDebug","_logFuncs","_sanitizeDiagnosticText","_logToConsole","theConsole","getConsole","logFunc","_InternalLogMessage","msgId","isUserAct","properties","strProps","diagnosticText","dataType","safeGetLogger","core","DiagnosticLogger","identifier","queue","_loggingLevelConsole","_loggingLevelTelemetry","_maxInternalMessageLimit","_enableDebug","_unloadHandler","_messageCount","_messageLogged","_self","_logInternalMessage","severity","_areInternalMessagesThrottled","messageKey","_debugExtMsg","throttleLimitMessage","throttleMessage","errorToConsole","_setDefaultsFromConfig","consoleLoggingLevel","debugToConsole","resetInternalMessageCount","isAsync","__ieDyn","_getLogger","_throwInternal","_warnToConsole","StorageType","createEnumStyle","LocalStorage","SessionStorage","DistributedTracingModes","AI","AI_AND_W3C","W3C","EventPersistence","Normal","_DYN_INGESTIONENDPOINT","_DYN_TO_STRING","_DYN_REMOVE_ITEM","_DYN_COUNT","_DYN_PRE_TRIGGER_DATE","_DYN_DISABLED","_DYN_INTERVAL","_DYN_DAYS_OF_MONTH","_DYN_DATE","_DYN_GET_UTCDATE","_DYN_STRINGIFY","_DYN_PATHNAME","_DYN_CORRELATION_HEADER_E0","_DYN_EXCEPTIONS","_DYN_PARSED_STACK","_DYN_PROPERTIES","_DYN_MEASUREMENTS","_DYN_SIZE_IN_BYTES","_DYN_TYPE_NAME","_DYN_SEVERITY_LEVEL","_DYN_PROBLEM_GROUP","_DYN_IS_MANUAL","_DYN__CREATE_FROM_INTERFA1","_DYN_ASSEMBLY","_DYN_FILE_NAME","_DYN_HAS_FULL_STACK","_DYN_LEVEL","_DYN_METHOD","_DYN_LINE","_DYN_DURATION","_DYN_RECEIVED_RESPONSE","_canUseLocalStorage","_canUseSessionStorage","_storagePrefix","_getLocalStorageObject","utlCanUseLocalStorage","_getVerifiedStorageObject","storageType","storage","getGlobalInst","setItem","fail","getItem","_getSessionStorageObject","utlCanUseSessionStorage","utlSetStoragePrefix","storagePrefix","reset","utlGetLocalStorage","exception","utlSetLocalStorage","utlGetSessionStorage","utlSetSessionStorage","utlRemoveSessionStorage","PropertiesPluginIdentifier","BreezeChannelIdentifier","AnalyticsPluginIdentifier","DisabledPropertyName","SampleRate","ProcessLegacy","HttpMethod","DEFAULT_BREEZE_ENDPOINT","DEFAULT_BREEZE_PATH","strNotSpecified","strIkey","dataSanitizeKeyAndAddUniqueness","origLength","dataSanitizeKey","nameTrunc","strSubstring","uniqueField","dsPadNumber","dataSanitizeString","valueTrunc","dataSanitizeUrl","dataSanitizeInput","dataSanitizeMessage","messageTrunc","dataSanitizeProperties","tempProps_1","dataSanitizeMeasurements","measurements","tempMeasurements_1","measure","_msgId","inputTrunc","strSubstr","createTelemetryItem","baseType","envelopeName","customProperties","systemProperties","iKey","telemetryItem","time","ext","baseData","aiDataContract","ver","envelopeType","severityLevel","kind","stdDev","Metric","metrics","dataPoint","isNaN","strEmpty","msToTimeSpan","totalms","ms","sec","hour","PageView","durationMs","duration","dataSanitizeId","PageViewPerformance","unused","cs4BaseData","perfTotal","networkConnect","sentRequest","receivedResponse","domProcessing","strError","strStack","strStackDetails","strErrorSrc","strMessage","strDescription","_stringify","convertToString","_formatMessage","theEvent","errorType","evtMessage","lineno","colno","_isStackDetails","_convertStackObj","errorStack","_getStackFromErrorObj","errorObj","getWindow","opera","_getOperaStack","stack","lines","_getErrorType","typeName","exec","_formatErrorCode","Exception","exceptions","_isExceptionInternal","_ExceptionDetails","CreateAutoException","lineNumber","columnNumber","evt","errorSrc","stackDetails","CreateFromInterface","arrMap","__assign","prototype","toInterface","_b","problemGroup","isManual","exceptionDetailsInterface","CreateSimpleException","assembly","fileName","line","formatError","outerId","hasFullStack","parsedStack","_isExceptionDetailsInternal","_parseStack","frames","level_1","totalSizeInBytes_1","frame","theFrame","_StackFrame","regex","test","parsedFrame","left","right","size","acceptedLeft","acceptedRight","dataSanitizeException","exceptionTrunc","_formatStackTrace","sourceFrame","level","matches","sizeInBytes","baseSize","generateW3CId","hexValues","oct","clockSequenceHi","INVALID_TRACE_ID","INVALID_SPAN_ID","_isValid","len","invalidValue","_formatValue","createTraceParent","traceId","spanId","isValidTraceId","isValidSpanId","strLeft","traceFlags","formatTraceParent","_formatFlags","RequestHeaders","createValueMap","requestContextHeader","requestContextTargetKey","requestContextAppIdFormat","requestIdHeader","traceParentHeader","traceStateHeader","sdkContextHeader","sdkContextHeaderAppIdRequest","requestContextHeaderLowerCase","_document","_htmlAnchorIdx","_htmlAnchorElement","urlParseUrl","anchorIdx","anchorCache","tempAnchor","host","urlParseHost","inclPort","fullHost","urlParseFullHost","port","_internalEndpoints","isInternalApplicationInsightsEndpoint","endpointUrl","correlationIdCanIncludeCorrelationHeader","requestUrl","currentHost","disableCorrelationHeaders","correlationHeaderExcludePatterns","requestHost","enableCorsCorrelation","matchExists_1","includedDomains","correlationHeaderDomains","RegExp","excludedDomains","correlationHeaderExcludedDomains","correlationIdGetCorrelationContext","responseHeader","correlationId","correlationIdGetCorrelationContextValue","keyValues","keyValue","dateTimeUtilsNow","perf","getPerformance","timing","navigationStart","dateNow","dateTimeUtilsDuration","end","createDistributedTraceContextFromTrace","telemetryTrace","parentCtx","getName","setName","getTraceId","traceID","setTraceId","getSpanId","parentID","setSpanId","getTraceFlags","setTraceFlags","newTraceFlags","RemoteDependencyData","absoluteUrl","commandName","success","resultCode","requestAPI","correlationContext","dependencyKind","dependencySource","dependencyTypeName","dependencyFields","AjaxHelperParseDependencyPath","parsedUrl","pathName","createDomEvent","createEvent","initEvent","_stringToBoolOrDefault","cfgDfMerge","cfgDfSet","setter","cfgDfValidate","validator","fallBackName","cfgDfBoolean","_doc","strToGMTString","strToUTCString","strCookie","strExpires","strIsCookieUseDisabled","strDisableCookiesUsage","strConfigCookieMgr","_supportsCookies","_allowUaSameSite","_parsedCookieValue","_cookieCache","_globalCookieConfig","rootDefaultConfig","cookieCfg","path","enabled","ignoreCookies","blockedCookies","cookieDomain","cookiePath","_getDoc","getLazy","_isMgrEnabled","cookieMgr","isEnabled","_isIgnoredCookie","cookieMgrCfg","_isCfgEnabled","rootConfig","cookieMgrConfig","isCfgEnabled","cookieEnabled","safeGetCookieMgr","getCookieMgr","createCookieMgr","_gblCookieMgr","inst","_path","_domain","unloadHandler","_enabled","_getCookieFn","_setCookieFn","_delCookieFn","_getCookieValue","setCookie","_setCookieValue","delCookie","areCookiesSupported","gblManager","setEnabled","maxAgeSec","_isBlockedCookie","_extractParts","isTruthy","_isIE","expireMs","nowMs","expiry","_formatDate","location_1","uaDisallowsSameSiteNone","strEndsWith","_formatCookieValue","del","purge","parts","thePart","theDate","cookieValue","theCookie","strOnPrefix","strAttachEvent","strAddEventHelper","strDetachEvent","strRemoveEventListener","strEvents","strVisibilityChangeEvt","strPageHide","strBeforeUnload","strPageHideNamespace","rRemoveEmptyNs","rRemoveTrailingEmptyNs","_guid","elmNodeData","eventNamespace","_normalizeNamespace","_getEvtNamespace","evtNamespace","theNamespace_1","parsedEvent","sort","_getRegisteredEvents","evtName","aiEvts","registeredEvents","_doDetach","handlerRef","useCapture","_doUnregister","events","unRegFn","capture","mergeEvtNamespace","theNamespace","namespaces","eventOn","_doAttach","registeredEvent","guid","eventOff","evtName_1","found_1","_unregisterEvents","eventCache","evtType","objKeys","regEvent","_addEventListeners","excludeEvents","added","addEventHandler","removeEventListeners","removeEventHandler","addPageHideEventListener","newNamespaces","pageUnloadAdded","_handlePageVisibility","visibilityState","strExecutionContextKey","strParentContextKey","strChildrenContextKey","PerfEvent","payloadDetails","theDetails_1","childTime","childEvts","childEvt","exTime","ParentContextKey","ChildrenContextKey","PerfManager","manager","ctx","fire","perfEvent","doPerfActiveKey","doPerf","mgrSource","getSource","perfMgr","perfEvt","currentActive","children","pluginStateData","_getPluginState","plugin","initializePlugins","processContext","extensions","pluginState","initPlugins","lastPlugin","proxy","thePlugin","isInitialized","getCfg","sortPlugins","plugins","extA","extB","bHasProcess","strTelemetryPluginChain","strHasRunFlags","strGetTelCtx","_chainId","_createInternalContext","telemetryChain","startAt","_nextProxy","_onComplete","_getNextProxyStart","createTelemetryProxyChain","_next","_moveNext","nextProxy","completeDetails","diagLog","getExtCfg","_resolveExtCfg","newConfig","_getExtCfg","getConfig","_getConfig","extConfig","hasNext","getNext","setNext","nextPlugin","iterate","_iterateChain","cb","onComplete","_addOnComplete","that","createIfMissing","idCfg","extCfg","createProcessTelemetryContext","internalContext","_processNext","_createNew","createProcessTelemetryUnloadContext","unloadState","createProcessTelemetryUpdateContext","updateState","firstProxy","lastProxy_1","newProxy","createTelemetryPluginProxy","chainId","hasProcessTelemetry","hasSetNext","proxyChain","getPlugin","processTelemetry","_processTelemetry","itemCtx","_processChain","_getTelCtx","_callProcessTelemetry","sync","unload","_unloadPlugin","unloadCtx","_callTeardown","hasRun","pluginCore","update","_updatePlugin","updateCtx","_callUpdate","_id","_setNext","processPluginFn","hasRunContext","hasNextRun","objFreeze","aiInstrumentHooks","cbNames","_arrLoop","_doCallbacks","hooks","callDetails","cbArgs","hookCtx","hook","cbks","orgEx","hookErrorCb","_getOwner","checkPrototype","checkParentProto","owner","_createInstrumentHook","callbacks","aiHook","newFunc","_createFunctionHook","orgArgs","funcArgs","_replaceArg","_createArgs","rslt","theHook","InstrumentFunc","InstrumentEvent","createUnloadHandlerContainer","handlers","_addHandler","run","_runHandlers","createUnloadHookContainer","_hooks","_doUnload","oldHooks","_addHook","arrAppend","strGetPlugin","BaseTelemetryPlugin","_isinitialized","_rootCtx","_nextPlugin","_unloadHandlerContainer","_hookContainer","currentCtx","_setDefaults","pluginChain","_initDefaults","unloadDone","theUnloadCtx","theUnloadState","_unloadCallback","updateDone","theUpdateCtx","_doUpdate","_updateCallback","setInitialized","_DYN_IS_STORAGE_USE_DISAB0","_DYN__ADD_HOOK","_DYN_CORE","_DYN_DATA_TYPE","_DYN_ENVELOPE_TYPE","_DYN_TRACK","_DYN_TRACK_PAGE_VIEW","_DYN_TRACK_PREVIOUS_PAGE_1","_DYN_SEND_PAGE_VIEW_INTER2","_DYN_START_TIME","_DYN_SEND_PAGE_VIEW_PERFO3","_DYN_POPULATE_PAGE_VIEW_P4","_DYN_HREF","_DYN_SEND_EXCEPTION_INTER5","_DYN_EXCEPTION","_DYN_ERROR","_DYN__ONERROR","_DYN_ERROR_SRC","_DYN_LINE_NUMBER","_DYN_COLUMN_NUMBER","_DYN__CREATE_AUTO_EXCEPTI6","_DYN_ADD_TELEMETRY_INITIA7","_DYN_AUTO_TRACK_PAGE_VISI9","_DYN_IS_BROWSER_LINK_TRAC10","_DYN_ENABLE_AUTO_ROUTE_TR11","_DYN_ENABLE_UNHANDLED_PRO12","_DYN_AUTO_UNHANDLED_PROMI13","_DYN_GET_ENTRIES_BY_TYPE","_DYN_IS_PERFORMANCE_TIMIN14","_DYN_GET_PERFORMANCE_TIMI15","_DYN_NAVIGATION_START","_DYN_SHOULD_COLLECT_DURAT16","_DYN_IS_PERFORMANCE_TIMIN17","_DYN_RESPONSE_START","_DYN_LOAD_EVENT_END","_DYN_RESPONSE_END","_DYN_CONNECT_END","_DYN_PAGE_VISIT_START_TIM18","PageViewManager","appInsights","overridePageViewDuration","pageViewPerformanceManager","queueTimer","itemQueue","pageViewPerformanceSent","firstPageViewSent","_flushChannels","flush","_startTimer","allItems","doFlush","_addQueue","pageView","title","uri","navigationEntries","timeOrigin","loadEventStart","duration_1","customDuration","pageViewSent","processed","pageViewPerformance","teardown","cancel","botAgentNames","_isPerformanceTimingSupported","_isPerformanceTimingDataReady","domainLookupStart","domLoading","_getPerformanceTiming","_shouldCollectDuration","durations","_navigator","isGoogleBot","PageViewPerformanceManager","navigationTiming","_getPerformanceNavigationTiming","_isPerformanceNavigationTimingSupported","getEntriesByType","total","network","dom","requestStart","responseEnd","PageVisitTimeManager","pageVisitTimeTrackingHandler","prevPageVisitDataKeyName","currentPageName","currentPageUrl","prevPageVisitTimeData","restartPageVisitTimer","pageName","pageUrl","prevPageVisitData","stopPageVisitTimer","pageVisitEndTime","pageVisitDataJsonStr","pageVisitTime","currPageVisitDataStr","PageVisitData","Timing","_events","_dispatchEvent","evnt","dispatchEvent","objDeepFreeze","sessionRenewalMs","_chkConfigMilliseconds","sessionExpirationMs","disableExceptionTracking","samplingPercentage","_chkSampling","namePrefix","cfgDfString","disableFlushOnBeforeUnload","disableFlushOnUnload","expCfg","inclScripts","expLog","maxLogs","AnalyticsPlugin","_super","_eventTracking","_pageTracking","_pageViewManager","_pageViewPerformanceManager","_pageVisitTimeManager","_preInitTelemetryInitializers","_isBrowserLinkTrackingEnabled","_browserLinkInitializerAdded","_enableAutoRouteTracking","_historyListenerAdded","_disableExceptionTracking","_autoExceptionInstrumented","_enableUnhandledPromiseRejectionTracking","_autoUnhandledPromiseInstrumented","_extConfig","_autoTrackPageVisitTime","_expCfg","_prevUri","_currUri","_evtNamespace","priority","autoRoutePVDelay","_base","throwInternal","processNext","trackEvent","EventTelemetry","startTrackEvent","stopTrackEvent","trackTrace","trackMetric","metric","inPv","refUri","referrer","trackPageViewPerformance","inPvp","startTrackPage","stopTrackPage","measurement","loc","theError","exceptionPartB","scriptsInfo","findAllScripts","scripts","getElementsByTagName","script","crossOrigin","async","hasAttribute","defer","referrerPolicy","exceptionScripts","logs","exceptionLog","trackException","_window","isCrossOriginError","_sendCORSException","errorString","telemetryInitializer","initializer","_populateDefaults","_updateStorageUsage","utlDisableStorage","utlEnableStorage","_addDefaultTelemetryInitializers","browserLinkPaths_1","envelope","remoteData","trackPageVisitTime","average","sampleCount","PageName","PageUrl","hasWindow","_updateExceptionTracking","locn","autoExceptionInstrumented","rsp","_addUnhandledPromiseRejectionTracking","_location","_getReason","_updateLocationChange","win","hasHistory","_history","getHistory","pushState","replaceState","strUndefined","_addHistoryListener","history","_popstateHandler","_locationChangeHandler","distributedTraceCtx","_getDistributedTraceCtx","getTraceCtx","traceLocationName","hash","_doTeardown","__extends","STR_PROMISE","REJECTED","doAwaitResponse","doAwait","rejected","resolveFn","rejectFn","finallyFn","isPromiseLike","doFinally","finally","_debugState","_debugResult","_debugHandled","_hasInitEvent","_promiseDebugEnabled","STRING_STATES","DISPATCH_EVENT","_hasInitEventFn","_hasPromiseRejectionEvent","_promiseCls","_allSyncSettledCreator","_promiseCreator","NODE_UNHANDLED_REJECTION","UNHANDLED_REJECTION","_currentPromiseId","_uniquePromiseId","_unhandledRejectionTimeout","dumpFnObj","_createPromise","newPromise","processor","executor","_settledValue","_thePromise","additionalArgs","arrSlice","_state","_hasResolved","_queue","_parentId","_handled","_unHandledRejectionHandler","_then","onResolved","onRejected","_processQueue","_strState","pending","_createSettleIfFn","newState","allowState","_notifyUnhandledRejection","process","emit","gbl","createCachedValue","safe","emitEvent","populateEvent","useNewEvent","theEvt","_catch","_finally","onFinally","thenFinally","catchFinally","_addDebugState$1","thePromise","stateFn","resultFn","handledFn","objDefineProperties","objToString","hasSymbol","getKnownSymbol","_toString","_rejectFn","_createAllPromise","values_1","pending_1","iterForOf","_createAllSettledPromise","processItem","isIterable","syncItemProcessor","createAsyncPromise","timeoutItemProcessor","callbackTimeout","createNativePromise","PrmCls","_resolve","_reject","createSyncPromise","createPromise","createAllPromise","toStringTagSymbol","_DYN_FEATURE_OPT_IN","_DYN_ON_CFG_CHANGE_RECEIV0","_DYN_NON_OVERRIDE_CONFIGS","_DYN_SCHEDULE_FETCH_TIMEO1","replaceByNonOverrideCfg","nonOverrideConfigs","curLevel","maxLevel","exceedMaxLevel","curCfg_1","nonOverrideVal","F","OFF","udfVal","_defaultConfig","syncMode","blkCdnCfg","customEvtName","cfgUrl","overrideSyncFn","overrideFetchFn","instrumentationKey","connectionString","CfgSyncPlugin","_extensionConfig","_mainConfig","_evtName","_cfgUrl","_timeoutHandle","_receiveChanges","_broadcastChanges","_blkCdnCfg","_fetchTimeout","_retryCnt","_onCfgChangeReceive","_nonOverrideConfigs","_fetchFn","_overrideFetchFn","_overrideSyncFn","_paused","_setCfg","isAutoSync","_sendCfgsyncEvents","updateCfg","_eventOff","global_1","customDetails","sendCustomEvent","global","CustomEvent","createCustomDomEvent","initCustomEvent","_updateEventListenerName","_addEventListener","global_2","cfgEvent","newCfg","_replaceTartgetByKeys","_fetchSender","oncomplete","fetchFn","Request","_doOnComplete","res","_xhrSender","xhr_1","onreadystatechange","DONE","_onFetchComplete","JSON_1","applyCdnfeatureCfg","cdnCfg","cdnConfig_1","featureVal","resolveCdnFeatureCfg","userOptInDetails","cdnFt","cdnM","cdnOnV","onCfg","cdnOffV","offCfg","userFt","userM","userOnV","userOffV","onFld","offFld","onV","offV","blockCdnCfg","setValueByKey","_overrideCdnCfgByFeature","ftVal","_setupTimer","_cfg","unref","_clearScheduledTimer","preBlkCdn","newEvtName","_getFetchFnInterface","pause","resume","setCfg","updateEventListenerName","_getDbgPlgTargets","_disableEvents","ActiveStatus","NONE","PENDING","INACTIVE","ACTIVE","_noResponseQs","STR_POST_METHOD","SenderPostManager","_enableSendPromise","_isInitialized","_diagLog","_isOneDs","_onCompleteFuncs","_disableCredentials","_fetchCredentials","_fallbackInst","_disableXhr","_disableBeacon","_disableBeaconSync","_disableFetchKeepAlive","_addNoResponse","_timeoutWrapper","_syncFetchPayload","_sendCredentials","_onError","_onNoPayloadUrl","_doBeaconSend","plainTextBatch","Blob","_beaconSender","_onSuccess","onRetry","beaconOnRetry","resolveFunc","rejectFunc","disableXhrSync","endPointUrl","openXhr","urlString","disabled","isSync","_wrapSetXhrProp","_doOnReadyFunc","onReadyFunc","xhrOnComplete","headerName","_doFetchSender","batch","requestHeaders","Headers","batchLength","ignoreResponse","responseHandled","init","keepalive","_sendReason","_handleError","onCompleteFunc","fetchOnComplete","response_1","resp","_xdrSender","XDomainRequest","onloadFunc","xdrOnComplete","onprogress","SetConfig","senderOnCompleteCallBack","fetchCredentials","enableSendPromise","disableXhr","disableBeacon","disableBeaconSync","timeWrapper","addNoResponse","disableFetchKeepAlive","sendPOST","disableCredentials","getSyncFetchPayload","getSenderInst","_getSenderInterface","syncSupport","transportType","sendPostFunc","_isSync","getFallbackInst","runTargetUnload","doUnloadAll","targets","done","resolved","getLength","parseResponse","itemsAccepted","itemsReceived","_aiNameFunc","baseName","aiName","_aiApplication","_aiDevice","_aiLocation","_aiOperation","_aiSession","_aiUser","_aiCloud","_aiInternal","ContextTagKeys","createClassFromInterface","defaults","class_1","applicationVersion","applicationBuild","applicationTypeId","applicationLayer","deviceId","deviceIp","deviceLanguage","deviceLocale","deviceModel","deviceFriendlyName","deviceNetwork","deviceNetworkName","deviceOEMName","deviceOS","deviceOSVersion","deviceRoleInstance","deviceRoleName","deviceScreenResolution","deviceType","deviceMachineName","deviceVMName","deviceBrowser","deviceBrowserVersion","locationIp","locationCountry","locationProvince","locationCity","operationName","operationParentId","operationRootId","operationSyntheticSource","operationCorrelationVector","sessionId","sessionIsFirst","sessionIsNew","userAccountAcquisitionDate","userAccountId","userStoreRegion","userAuthUserId","userAnonymousUserAcquisitionDate","userAuthenticatedUserAcquisitionDate","cloudName","cloudRole","cloudRoleVer","cloudRoleInstance","cloudEnvironment","cloudLocation","cloudDeploymentUnit","internalNodeName","internalSdkVersion","internalAgentVersion","internalSnippet","internalSdkSrc","CtxTagKeys","Envelope","sampleRate","STR_DURATION","_DYN_TAGS","_DYN_DEVICE_TYPE","_DYN__GET","_DYN_ENQUEUE","_DYN_EVENTS_LIMIT_IN_MEM","_DYN_ITEM","_DYN_EMIT_LINE_DELIMITED_0","_DYN_CLEAR","_DYN_MARK_AS_SENT","_DYN_CLEAR_SENT","_DYN_BUFFER_OVERRIDE","_DYN__BUFFER__KEY","_DYN__SENT__BUFFER__KEY","_DYN_CONCAT","_DYN__MAX__BUFFER__SIZE","_DYN_TRIGGER_SEND","_DYN__SENDER","_DYN_ENDPOINT_URL","_DYN_CUSTOM_HEADERS","_DYN_MAX_BATCH_SIZE_IN_BY1","_DYN_ONUNLOAD_DISABLE_BEA2","_DYN_IS_BEACON_API_DISABL3","_DYN_ALWAYS_USE_XHR_OVERR4","_DYN_DISABLE_XHR","_DYN_ENABLE_SESSION_STORA5","_DYN__BUFFER","_DYN_ONUNLOAD_DISABLE_FET6","_DYN_DISABLE_SEND_BEACON_7","_DYN_ENABLE_SEND_PROMISE","_DYN_GET_SENDER_INST","_DYN_UNLOAD_TRANSPORTS","_DYN_CONVERT_UNDEFINED","_DYN_MAX_BATCH_INTERVAL","_DYN_SERIALIZE","_DYN__ON_ERROR","_DYN__ON_PARTIAL_SUCCESS","_DYN__ON_SUCCESS","_DYN_ITEMS_ACCEPTED","_DYN_ORI_PAYLOAD","_DYN_BASE_TYPE","_DYN_SAMPLE_RATE","_DYN_EVENTS_SEND_REQUEST","_DYN_GET_SAMPLING_SCORE","strBaseType","strBaseData","strProperties","strTrue","_setValueIf","_extractPropsAndMeasurements","_convertPropsUndefinedToCustomDefinedValue","customUndefinedValue","_createEnvelope","startTime","iKeyNoDashes","_extractPartAExtensions","envTags","itmExt","itmTags","extUser","authId","localId","extApp","sesId","extDevice","device","deviceClass","ip","web","browserLang","browserVer","browser","envData","envBaseData","envProps","screenRes","userConsent","extOs","os","osVer","extTrace","tgs","tg","theTags","EnvelopeCreator","EnvelopeCreatorInit","EventEnvelopeCreator","customMeasurements","baseTypeSource","eventData","BaseSendBuffer","_bufferFullMessageSent","_maxRetryCnt","maxRetryCnt","_set","cnt","batchPayloads","payloads","payloadStr_1","newLogger","canUseSessionStorage","newBuffer","SessionStorageSendBuffer","ArraySendBuffer","PREVIOUS_KEYS","_namePrefix","bufferItems","_getBuffer","itemsInSentBuffer","previousItems","_getPreviousEvents","_getItemsFromPreviousKey","prefixEvents","notDeliveredItems","_removePayloadsFromBuffer","remaining","payloadStr","prefixedKey","_getBufferBase","bufferJson","buffer_1","_setBuffer","transFormedItems_1","BUFFER_KEY","sentElements","unsentItems","sentItems","VERSION","SENT_BUFFER_KEY","MAX_BUFFER_SIZE","Serializer","_serializeObject","circularReferenceCheck","output","_serializeStringMap","_serializeArray","contract","isHidden","isPresent","isObj","sources","HashCodeScoreGenerator","getHashCodeScore","getHashCode","INT_MAX_VALUE","charCodeAt","abs","SamplingScoreGenerator","hashCodeGenerator","Sample","samplingRate","samplingScoreGenerator","isSampledIn","_getResponseText","defaultAppInsightsChannelConfig","disableTelemetry","isRetryDisabled","httpXHROverride","isOverrideFn","retryCodes","EnvelopeTypeCreator","TraceEnvelopeCreator","PageViewEnvelopeCreator","currentContextId","bd","pageType","isLoggedIn","pageViewData","PageViewPerformanceEnvelopeCreator","ExceptionEnvelopeCreator","exData","MetricEnvelopeCreator","baseMetricData","DependencyEnvelopeCreator","remoteDepData","responseCode","Sender","_consecutiveErrors","_retryAt","_serializer","_stamp_specific_redirects","_syncUnloadSender","_offlineListener","_endpointUrl","_orgEndpointUrl","_maxBatchSizeInBytes","_beaconSupported","_beaconOnUnloadSupported","_beaconNormalSupported","_customHeaders","_disableTelemetry","_instrumentationKey","_convertUndefined","_isRetryDisabled","_maxBatchInterval","_sessionStorageUsed","_bufferOverrideUsed","_alwaysUseCustomSend","_fetchKeepAlive","_xhrSend","_fallbackSend","_disableBeaconSplit","_sendPostMgr","_retryCodes","_xdrOnLoad","_xhrReadyStateChange","countOfItemsInPayload","_checkResponsStatus","responseURL","_getPayloadArr","_validate","diagLogger","_isSampledIn","_sample","_getEnvelope","aiEnvelope","constructEnvelope","doNotSendItem","callBack","_serialize","valid","_batch","_createPayload","_getHeaders","_doSend","sendInterface","markAsSent","payloadData","_getPayload","_getOnComplete","_checkMaxSize","incomingPayload","incomingSize","isOnline","responseUrl","_appId","appId","_checkAndUpdateEndPointUrl","_resendPayload","_isRetriable","_doUnloadSend","_isStringArr","_fetchKeepAliveSender","payloadSize","linearFactor","payload_1","_setRetryTime","delayInSeconds","backOffSlot","pow","backOffDelay","retryAfterTimeSpan","retryInterval","timerValue","sendReason","onunloadFlush","addHeader","createOfflineListener","parentEvtNamespace","_isListening","listenerList","rState","onLine","uState","_currentState","calCurrentState","_enableEvents","ononline","_setOnline","_setOffline","listnerNoticeCheck","offlineState","_isOnline","isListening","_unload","addListener","setOnlineState","senderConfig","curExtUrl","coreUrl","activeStatus","customHeader","bufferOverride","_validateInstrumentationKey","disableValidation","disableInstrumentationKeyValidation","disableIKeyValidationFlag","sendPostConfig","_getSendPostMgrConfig","onCompleteFuncs","resValue","canSend","_onBeaconRetry","droppedPayload","thePayload","customInterface","httpInterface","syncInterface","xhrInterface","syncTransports","payloadItem","isCompletelyIdle","getOfflineListener","forcedSender","_notifySendRequest","sendRequest","_getNotifyMgr","_notificationManager","ieVer","getOfflineSupport","getUrl","createPayload","shouldProcess","_onPartialSuccess","failed","retry","errors_1","reverse","extracted","orig","convertUndefined","parseConnectionString","kvPairs","arrReduce","fields","kv","kvParts","endpointsuffix","ThrottleMgr","_config","_localStorageObj","_isTriggered","_isReady","_isSpecificDaysGiven","_flushMessage","msgID","saveUnsentMsg","_canSampledIn","_getCfgByKey","randomValue","maxValue","limit","localStorageObj","_getLocalStorageObjByKey","canThrottle","_canThrottle","throttled","isTriggered","_isTrigger","maxSendNumber","localStorageName","_getLocalStorageName","_resetLocalStorage","_sendMessage","isThrottled","throttleNum","_getQueueByKey","_setCfgByKey","curCfg","configInterval","daysOfMonth","_getIntervalConfig","monthInterval","dayInterval","canUseLocalStorage","curDate","_getThrottleDate","monthCheck","monthExpand","_checkInterval","dayCheck","daySpan","msgKey","prefix","fix","storageName","curObj","_getLocalStorageObj","storageObj","preTriggerDate","isTrigger","_isTriggeredOnCurDate","_initConfig","addUnloadHook","coreConfig","throttleMgrCfg","localObj","isReady","flushAll","result_1","isFlushed","onReadyState","perfEvtsSendAll","_runScheduledListeners","asyncNotifications","_runListeners","listeners","NotificationManager","_listeners","_asyncNotifications","rn_1","waiting","_finishUnload","asyncUnload","TelemetryInitializerPlugin","_initializers","addTelemetryInitializer","_addInitializer","theInitializer","_runInitializers","telemetryInitializersCount","strValidationError","strSdkUnloadingError","diagnosticLogInterval","_createPerfManager","notificationMgr","_isPluginPresent","exists","_deepMergeConfig","newValues","merge","_findWatcher","newWatcher","theListener","l","AppInsightsCore","_configHandler","_eventQueue","_perfManager","_cfgPerfManager","_cookieManager","_pluginChain","_configExtensions","_channelConfig","_channels","_isUnloading","_telemetryInitializerPlugin","_internalLogsEventName","_unloadHandlers","_traceCtx","_cfgListeners","_extensions","_pluginVersionStringArr","_pluginVersionString","_activeStatus","_endpoint","_initInMemoMaxSize","_isStatusSet","_internalLogPoller","_internalLogPollerListening","_forceStopInternalLogPoller","_setStatus","_releaseQueues","releaseQueue","_startLogPoller","alwaysStart","_addUnloadHook","isRunning","createTimeout","_flushInternalLogs","_setPluginVersions","thePlugins","_addPluginVersions","channels","cfgExtensions","_createTelCtx","theCtx","_getPluginChain","_initPluginChain","theExtensions","_validateExtensions","channelPriority","allExtensions","coreExtensions","extPriorities","extPriority","rootCtx","_getPlugin","pluginIdentifier","theExt","channelHosts","getChannel","removeCb","pluginsToRemove","_removePlugins","removed","removeComplete","newConfigExtensions","newChannelConfig","newQueue","channel","track","cbTimeout","doneIterating","cbTimer","doCallback","handled_1","_updateHook","_logOrThrowError","_notifyInvalidEvent","_setPendingStatus","notificationManager","rootCfg","initInMemoMaxSize","ikey","promises","initTimeout","initTimeOut","allPromises","createSyncAllSettledPromise","_initTimer","ikeyRes","endpointRes","_initDebugListener","unloadContainer","debugListener","getDebugListener","_initPerfManager","prevCfgPerfMgr","enablePerfMgr","createPerfMgr","__spreadArray","teeController","_registerDelayedCfgListener","unloadHdl","getChannels","controls","getNotifyMgr","setCookieMgr","setPerfMgr","eventCnt","eventQueue","unloadComplete","flushComplete","processUnloadCtx","addPlugin","replaceExisting","addCb","existingPlugin","_addPlugin","removedPlugins_1","mergeExisting","oldCfg","deepExtend","createNew","createDistributedTraceContext","setTraceCtx","traceCtx","onCfgChange","unloadHook","_addDelayedCfgListener","fnd","_createUnloadHook","getWParam","hasDocument","enableWParam","STR_PROPERTIES","_DYN_REQUEST_URL","_DYN_INST","_DYN_CONTEXT","_DYN_ABORTED","_DYN_TRACE_ID0","_DYN_SPAN_ID1","_DYN_INCLUDE_CORRELATION_2","_DYN_GET_ABSOLUTE_URL","_DYN_REQUEST_HEADERS","_DYN_TRACK_DEPENDENCY_DAT3","_DYN_ENABLE_REQUEST_HEADE4","_DYN_ENABLE_AJAX_ERROR_ST5","_DYN_ENABLE_AJAX_PERF_TRA6","_DYN_MAX_AJAX_CALLS_PER_V7","_DYN_EXCLUDE_REQUEST_FROM8","_DYN_ADD_REQUEST_CONTEXT","_DYN_DISABLE_AJAX_TRACKIN9","_DYN_AJAX_PERF_LOOKUP_DEL10","_DYN_DISABLE_FETCH_TRACKI11","_DYN_ENABLE_RESPONSE_HEAD12","_DYN_STATUS_TEXT","_DYN_HEADER_MAP","_DYN_OPEN_DONE","_DYN_SEND_DONE","_DYN_REQUEST_SENT_TIME","_DYN_ABORT_DONE","_DYN_GET_TRACE_ID","_DYN_GET_TRACE_FLAGS","_DYN_ERROR_STATUS_TEXT","_DYN_STATE_CHANGE_ATTACHE13","_DYN_RESPONSE_TEXT","_DYN_RESPONSE_FINISHED_TI14","_DYN__CREATE_TRACK_ITEM","_DYN_RESPONSE","_DYN_GET_ALL_RESPONSE_HEA15","_DYN_GET_PART_APROPS","_DYN_PERF_MARK","_DYN_PERF_TIMING","_DYN_AJAX_DIAGNOSTICS_MES16","_DYN_CORRELATION_CONTEXT","_DYN_AJAX_TOTAL_DURATION","_DYN_EVENT_TRACE_CTX","_calcPerfDuration","resourceEntry","_setPerfDuration","_setPerfValue","strPerf","XHRMonitoringState","setRequestHeaderDone","ajaxRecord","completed","requestHeadersSize","responseReceivingDuration","callbackDuration","requestSize","responseStartedTime","callbackFinishedTime","endTime","xhrMonitoringState","clientFailure","getAbsoluteUrl","urlGetAbsoluteUrl","getPathName","urlGetCompleteUrl","ajaxType","enableRequestHeaderTracking","getResponse","ajaxTotalDuration","requestSentTime","responseFinishedTime","dependency","_populatePerfData","ajaxData","propsSet","strStart","strEnd","strDomainLookup","strConnect","strRedirect","strRequest","strResponse","strStartTime","strDomainLookupStart","strDomainLookupEnd","strConnectStart","strConnectEnd","strRequestStart","strRequestEnd","strResponseStart","strResponseEnd","strRedirectStart","strRedirectEnd","strTransferSize","strEncodedBodySize","strDecodedBodySize","strServerTiming","serverTiming","server_1","strName","perfAttempts","headerMap","responseHeaders","partA","traceExt","strDiagLog","AJAX_DATA_CONTAINER","STR_FETCH","ERROR_HEADER","ERROR_PREFIX","ERROR_POSTFIX","ERROR_NOT_SENT","CORRELATION_HEADER_ERROR","CUSTOM_REQUEST_CONTEXT_ERROR","FAILED_TO_CALCULATE_DURATION_ERROR","_markCount","_getAjaxData","ajaxDataId","_isHeaderSet","xh","_getFailedAjaxDiagnosticsMessage","_throwInternalCritical","ajaxMonitorInstance","_throwInternalWarning","_createErrorCallbackFunc","internalMessage","ajaxDiagnosticsMessage","_ajaxDataId","_indexOf","container","theHandler","_processDependencyContainer","BLOB_CORE","DfltAjaxCorrelationHeaderExDomains","_internalExcludeEndpoints","distributedTracingMode","maxAjaxPerfLookupAttempts","ignoreHeaders","addIntEndpoints","AjaxMonitor","_fetchInitialized","_xhrInitialized","_currentWindowHost","_enableRequestHeaderTracking","_enableAjaxErrorStatusText","_trackAjaxAttempts","_isUsingW3CHeaders","_isUsingAIHeaders","_markPrefix","_enableAjaxPerfTracking","_maxAjaxCallsPerView","_enableResponseHeaderTracking","_disabledUrls","_disableAjaxTracking","_disableFetchTracking","_excludeRequestFromAutoTrackingPatterns","_addRequestContext","_dependencyHandlerId","_dependencyListeners","_dependencyInitializers","_ignoreHeaders","_maxAjaxPerfLookupAttempts","_ajaxPerfLookupDelay","_distributedTracingMode","_polyfillInitialized","_canIncludeHeaders","_hookProto","InstrumentProto","_isDisabledRequest","isDisabled","theUrl","theRegex","idx2","_isMonitoredXhrInstance","excludeAjaxDataValidation","ajaxValidation","initialized","_createMarkId","performance_1","mark","markId","getEntriesByName","_findPerfResourceEntry","initiatorType","trackCallback","reportError","perfMark","performance","maxAttempts","retryDelay","attempt","locateResourceTiming","perfTiming","getEntries","clearMarks","_getFailedFetchDiagnosticsMessage","_reportFetchMetrics","_reportFetchError","failedProps","errorProps","fetchDiagnosticsMessage","sysProperties","_reportDependencyInternal","initializers","_instrumentXhr","_supportsAjaxMonitoring","strPrototype","xhrData","theOpen","_openHandler","spanID","xhrRequestData","ajaxDataCntr","_attachToOnReadyStateChange","_onAjaxComplete","_reportXhrError","ajaxResponse","_getAjaxCorrelationContext","responseHeadersString","getResponseHeader","responseHeaderMap_2","exceptionText","hkErr","_addSharedXhrHeaders","_instrumentFetch","_supportsFetch","_global","isPolyfill","polyfill","fetchData","_createFetchRecord","strSplit","newInit","fetchData_1","_getFetchCorrelationContext","responseHeaderMap_1","_populateContext","propExt","trackDependencyData","currentWindowHost","_processDependencyListeners","traceParent","addDependencyListener","dependencyListener","addDependencyInitializer","dependencyInitializer","Device","Internal","unloadHookContainer","sdkExtension","sdkVersion","_DYN_SESSION_MANAGER","_DYN_IS_USER_COOKIE_SET","_DYN_IS_NEW_USER","_DYN_GET_TRACE_CTX","_DYN_TELEMETRY_TRACE","_DYN_APPLY_SESSION_CONTEX0","_DYN_APPLY_APPLICATION_CO1","_DYN_APPLY_DEVICE_CONTEXT","_DYN_APPLY_OPERATION_CONT2","_DYN_APPLY_USER_CONTEXT","_DYN_APPLY_OPERATING_SYST3","_DYN_APPLY_LOCATION_CONTE4","_DYN_APPLY_INTERNAL_CONTE5","_DYN_ACCOUNT_ID","_DYN_GET_SESSION_ID","_DYN_NAME_PREFIX","_DYN_USER_COOKIE_POSTFIX","_DYN_ID_LENGTH","_DYN_GET_NEW_ID","_DYN_AUTOMATIC_SESSION","_DYN_AUTHENTICATED_ID","_DYN_ACQUISITION_DATE","_DYN_RENEWAL_DATE","_DYN_JOIN","_DYN_COOKIE_SEPARATOR","_DYN_AUTH_USER_COOKIE_NAM7","Session","_SessionManager","_storageNamePrefix","_cookieUpdatedTimestamp","_sessionExpirationMs","_sessionRenewalMs","sessionCookiePostfix","_initializeAutomaticSessionWithData","session","sessionData","sessionReset","tokens","acqMs","renewalMs","_setCookie","acq","acqTimeLeftMs","isExpired","_initializeAutomaticSession","storageValue","timeSinceAcqMs","timeSinceRenewalMs","_renew","automaticSession","backup","_setStorage","renewal","TelemetryTrace","parentId","_validateUserInput","isNewUser","isUserCookieSet","userCookieName","_generateNewId","_setUserCookie","_generateNewCookie","utlRemoveStorage","authCookie","authCookieString","decodeURI","acqStr","accountAcquisitionDate","setAuthenticatedUserContext","authenticatedUserId","storeInCookie","encodeURI","clearAuthenticatedUserContext","cookieSeparator","authUserCookieName","strExt","strTags","_removeEmpty","_nullResult","undefString","TelemetryContext","previousTraceCtx","internal","autoSession","agentVersion","snippetVer","sdkSrc","applyWebContext","cleanUp","nullValue","isBrowserLinkTrackingEnabled","dist_es5_PropertiesPlugin","PropertiesPlugin","_distributedTraceCtx","_previousTraceCtx","_disableUserInitMessage","disableUserInitMessage","_unloadHooks","breezeChannel","theContext","userCtx","_processTelemetryInternal","_c","_d","_internalSdkSrc","_AUTHENTICATED_USER_CONTEXT","_TRACK","STR_SNIPPET","STR_FLUSH","STR_POLL_INTERNAL_LOGS","STR_GET_PLUGIN","STR_EVT_NAMESPACE","STR_TRACK_EVENT","STR_TRACK_TRACE","STR_TRACK_METRIC","STR_TRACK_PAGE_VIEW","STR_TRACK_EXCEPTION","STR_TRACK_DEPENDENCY_DATA","STR_SET_AUTHENTICATED_USER_CONTEXT","STR_CLEAR_AUTHENTICATED_USER_CONTEXT","_DYN_QUEUE","_DYN_CONNECTION_STRING","_DYN_INSTRUMENTATIONKEY0","_DYN_USER_OVERRIDE_ENDPOI1","_DYN_ONUNLOAD_FLUSH","_DYN_ADD_HOUSEKEEPING_BEF2","_DYN_SEND_MESSAGE","_ignoreUpdateSnippetProperties","IKEY_USAGE","CDN_USAGE","SDK_LOADER_VER","default_throttle_config","defaultConfigValues","_chkDiagLevel","extensionConfig","AppInsightsCfgSyncPlugin","AppInsightsSku","snippet","dependencies","_sender","_snippetVersion","_houseKeepingNamespace","_core","_analyticsPlugin","_cfgSyncPlugin","_throttleMgr","_iKeySentMessage","_cdnSentMessage","_sdkVerSentMessage","sv","_removePageEventHandlers","removePageUnloadEventListener","removePageHideEventListener","DependenciesPlugin","configCs","_parseCs","curCs","parsedCs","ikeyPromise","cs","ingest","flushDone","loadAppInsights","legacyMode","throwUnsupported","_findSdkSourceFile","scrpt","currentScript","url_1","src_1","_updateSnippetProperties","emptyQueue","defaultEnable","proxyAssign","chkSet","_loop_1","length_1","appInsightsInstance","performHousekeeping_1","loadedPlugin","propertiesPlugin","_sessionManager","added_1","analyticsPlugin","excludePageUnloadEvents","disablePageUnloadEvents","addPageUnloadEventListener","addEventListeners","product","getSender","_getCurrentDependencies","LoggingService","applicationInsights","enableAutoRouteTracking","logPageView","trackPageView","writeOutput","logMetric","Verbose","NotificationService","notifications","notification","addMessage","PollingService","trackersById","initialRequestFactory","finalMessage","finalAction","tracker","addNewTracker","PollingTracker","processSuccessResponse","shouldKeepPolling","pollNext","finalizeTracker","lastResponse","requestOptions","observe","getRedirectLocation","delaySeconds","getRetryDelay","errorResponse","finalValue","locHeader","decision","trackingId","initialValue","ProgramProgramsDataStoresService","ProgramProgramsService","router","authService","loadDataStores","baseGetAll","addDataStore","newDataStore","basePost","postRevisionedEdit","modifyDataStore","dataStore","loadDataStore","baseGetOne","loadDataGroups","loadProgramDataGroups","loadDataPoints","addDataGroup","change","dataGroup","postRevisionableEdit","addDataPoint","modifyDataGroup","modifyDataPoint","deleteDataGroup","basePutAndDelete","deleteDataPoint","replaceValues","itemName","componentName","componentId","baseProgramsUrl","programsUrl","baseGetAllUnsubstitued","baseGetOneUnsubstitued","specificProgram","importProgram","changes","commitProgramChanges","uncommitProgramChanges","revertProgramChange","programRevisions","programRevisionUnsubstituted","exportProgramRevision","programRevision","undeployProgramRevision","setStandbyWorkflows","PolicyRatedStatuses","addNewChangeToRevision","editableState","EditableState","loadProgramByKey","loadingPrograms","getProgram","dummyProgram","programDomainId","findProgram","takeUntil","roles","retrieveProgramWithResponseHandleError","retrieveProgramWithResponseThrowOnError","addProgram","newProgram","updateProgram","updatedProgram","programZipFile","programDescription","validateProgramChange","getProgramValidationStatus","stopProgramValidation","testTransform","testScriptDTO","loadAssetGroups","loadAssetGroup","addAssetGroup","assetGroup","updateAssetGroup","loadAssets","loadAsset","addAsset","asset","convertAssetUploadUrl","positionOfAssets","updateAsset","downloadAsset","loadProgramWorkGroups","addWorkGroupsToProgram","workGroupIds","authLevel","fakeEdge","wgId","IsUsedById","UsesId","updateProgramUsesWorkGroup","loadProgramTeamMembers","addTenantUsersToProgram","userIds","managers","uId","IsEmployedById","EmploysId","modifyTenantUserInProgram","edgeId","isManager","loadProgramAccountRoles","addAccountRoleToProgram","initialId","IsObligatedById","ObligatesId","updateProgramObligatesAccountRole","deleteProgramAccountRole","accountRoleEdge","removeTeamMember","employsUserEdge","deployProgramTeam","loadPublishedProgramTeam","programTeam","getChange","ignoreContext","programChangeDomainId","findProgramChange","programChange","loadProgramChangeById","addChange","newChange","first","revisions","r","addChangesToRevision","loadProgramChanges","setEditableState","newEditabledState","getEditableState","lockProgramChange","unlockProgramChange","completeProgramChange","stealLockOnProgramChange","loadProgramRevisions","retrieveProgramConfiguration","loadProgramRevision","startProgramRevision","modifyProgramRevision","changeIds","removeChangesFromRevision","deployToArea","programContext","getDeploymentStatus","dataContext","exportProgramRevisions","ListProgramsUsingAdminToken","ListProgramRevisionsUsingAdminToken","ListWorkflowsUsingAdminToken","revisionID","areaStandbyWorkflowCountDTO","getProgramValidationMessages","getValidationCodes","addApplication","addElement","newElement","updateElement","element","moveElement","beforeId","deleteElement","deleteApplication","loadApplications","loadApplication","loadApplicationSectionsWithElements","getStaticElementTypes","loadRuleSets","loadRuleSet","addRuleSet","ruleSet","updateRuleSet","deleteRuleSet","loadRules","addRule","rule","updateRule","deleteRule","programKey","addWorkflowSet","workflowSet","updateWorkflowSet","deleteWorkflowSet","saveWorkflow","workflow","putUrl","postUrl","deleteWorkflow","workflowDefId","loadPhases","addPhase","phaseModel","modifyPhase","deletePhase","movePhase","loadTasksByWorkflowSet","addTask","taskDef","modifyTask","deleteTask","moveTask","loadProducers","loadPolicyRatedStatuses","ProgramRevisionWorkflowService","ReportsService","openReports","authenticateReports","appUrl","combineLatest","getInsurityBIToken","getReportsConfigValues","authToken","authUrl","logoutReports","logoutUri","SyncHubStatusService","_states","_hubs","_status","states","removeHub","HubConnectionState","Reconnecting","pushChanges","SyncStatus","newStatus","TenantAssignableService","Assignables","CachedAssignablesRequests","GetAssignable","smIdentity","cachedRequest","smIden","smIdens","smIdent","shareReplay","getAssignableAsBadge","Disabled","loadUsersByIdentity","identityKeys","identityKeysToLoad","existingTenantUsers","tenantUser","query","tenantResponse","TenantDataService","baseDataUrl","dataPointDefinitionTypesUrl","getDataPointTypes","TenantTenantService","baseId","ProgramsBase","SecurityRoles","Users","Identities","Companies","Producers","CompanyProducts","Products","TransactionTypes","TransactionInsPolicyConfigs","DocumentCategories","Areas","ProgramRevisions","CustomTables","CustomTableRows","Workgroups","EmailTemplates","ResendUserInvites","ProducerSearchTemplate","accountRoles","CompaniesUnsubstituted","CompaniesPost","ProductsUnsubstituted","ProductsPost","RemoveUserFromTenantUnsubstituted","EnableUserForTenantUnsubstituted","customTableRow","customTableRowByTable","baseWebhooksUrl","WebhooksById","updateCompany","company","handleErrors","companyForSave","addCompany","loadPrograms","loadProgramValidationMessages","loadProducer","producerIdOrCode","loadCompanies","loadProducts","hasProduct","getProduct","productDomainId","loadTransactionTypes","loadTransactionType","loadUsers","loadingUsers","getFeatureFacets","loadSecurityRoles","loadingSecurityRoles","getSecurityRole","findRole","role","getUser","findUser","createSecurityRole","securityRole","updateSecurityRole","savableRole","updateUser","userForSave","updateProduct","productForSave","updateProducer","producer","producerForSave","convertUserToSavableUser","secRole","inviteUsers","users","serializedUsers","resendUserInvite","removeUserFromTenant","enableUserForTenant","addProducer","getProducer","searchProducers","addProduct","addDocumentCategory","docCategory","updateDocumentCategory","deleteDocumentCategory","loadAccountRoles","addAccountRole","accountRole","editAccountRole","loadWorkGroups","loadWorkGroup","addWorkGroup","workGroup","updateWorkGroup","loadAreas","loadCustomTables","loadCustomTableRows","loadCustomTableRowsForTable","loadEmailTemplates","addEmailTemplate","emailTemplate","updateEmailTemplate","loadWebhooks","createWebhook","webhook","regenerateWebhookSigningKey","editWebhook","deleteWebhook","updateWebhookActivity","updateDTO","loadWebhookLogs","numActivitiesString","UserAccountsService","Activities","filterAccountsUnsubstituted","filterAccounts","bulkReassignAccountRoles","createAccount","createAccountDTO","extraContext","loadAccounts","loadUserActivity","loadAccountById","filterDTO","bulkReassign","bulkReassignDto","bulkReassignStatus","UserService","permissionsService","baseServiceUrl","CurrentUser","ChangePassword","CurrentAdminUser","getBaseUrl","permissions","_permissions","ReplaySubject","loadPermissions","_user$","getAdminUser","_adminUser$","AdminUser$","Permissions","permission","PermissionsShared","HasAny","grantedPermisssions","HasAll","windowAssign","assign","UserWorkflowsService","TenantUsers","AccountById","ReservationSets","WorkGroups","tasksReponse","accounts","loadReservationSets","startWorkingWorkGroup","stopWorkingWorkGroup","reservationSet","reserveAccount","getWorkGroup","$event","_r1","ctx_r1","inputValue","valueChange","focusin","focusout","getCurrencySymbolForHtml","applyclasses","componentMask","displayNegativesInRed","isNegative","getFormattedMoney","SmInputMoneyComponent","maskService","currency","EventEmitter","onChange","ngOnInit","ngOnChanges","convertMoneyBeforeMask","displayAsWholeNumber","getComponentMask","formatMoney","convertedDecimal","formattedMoney","applyMask","getCurrencySymbol","editModeClasses","selectors","inputs","outputs","decls","vars","consts","template","SmInputMoneyComponent_div_0_Template","SmInputMoneyComponent_ng_container_1_Template","displayAsPercentage","SmInputNumberComponent_ng_container_1_ng_container_4_Template","formatNegatives","_c0","SmInputNumberComponent","convertNumberBeforeMask","numberOfDecimals","formatNumber","numDecimalPlaces","formattedDecimal","toFixed","trimEnd","SmInputNumberComponent_ng_container_0_Template","SmInputNumberComponent_ng_container_1_Template","getClasses","SmInputZipcodeComponent","formatZipcode","SmInputZipcodeComponent_ng_container_0_Template","SmInputZipcodeComponent_ng_container_1_Template","ctx_r0","LeftText","Format","SmDateByComponent","ShowDate","SmDateFormats","Short","ShowUserBadge","ShowUserName","SmDateByComponent_ng_container_1_Template","SmDateByComponent_ng_container_2_Template","SmDateByComponent_ng_container_3_Template","SmDateByComponent_unity_avatar_4_Template","SmDateByComponent_ng_container_5_Template","SmFormCurrencyBlockComponent","onValueChanged","onDetectChanges","currencyField","FieldType","SmFormTypes","Select","moneyField","Money","updateCurrencyOnField","onCurrencyFieldChange","formState","SmFormRowComponent_ng_container_1_sm_form_field_2_Template","SmFormRowComponent","SmFormRowComponent_ng_container_0_Template","SmFormRowComponent_ng_container_1_Template","SpecialType","SmFormFieldBase","service","onFocusChanged","infoStackState","elementFocused$","getElementFocused","putFocusIntoInput","ngOnDestroy","FieldVM","NewValue","getInputIdOrName","getInputCssClass","classes","formWidth","FormWidth","onRevertToPreviousValue","PreviousValue","fieldHasPreviousValue","getPreviousValue","formatFieldValue","getInfoStack","infoLines","MainText","Classes","InternalValue","Url","prevValueClasses","Label","ForForm","InfoLines","nativeElement","querySelector","focus","encapsulation","HelpText","SmFormFieldLabelComponent","SmFormFieldLabelComponent_sm_help_tooltip_2_Template","SmFormFieldLabelComponent_span_3_Template","SmFormPreviousValueComponent","revertToPreviousValue","_r3","_r4","_r5","SmFormFieldStringComponent_ng_container_0_div_3_Template","SmFormFieldStringComponent_ng_container_0_input_4_Template","SmFormFieldStringComponent_ng_container_0_textArea_5_Template","SmFormFieldStringComponent_ng_container_0_div_6_Template","SmFormFieldStringComponent_ng_container_0_sm_form_previous_value_7_Template","SmFormFieldStringComponent","SmFormFieldStringComponent_ng_container_0_Template","SmFormFieldStringComponent_ng_container_1_Template","SmFormFieldMultiSelectComponent_ng_container_0_div_3_Template","SmFormFieldMultiSelectComponent_ng_container_0_div_5_Template","SmFormFieldMultiSelectComponent_ng_container_0_sm_form_previous_value_6_Template","getOptions","tmp_10_0","SmFormFieldMultiSelectComponent","formatValue","getFormattedValue","MultiSelect","splitItems","uniqValues","SmFormFieldMultiSelectComponent_ng_container_0_Template","SmFormFieldMultiSelectComponent_ng_container_1_Template","SmFormFieldEmailComponent_ng_container_0_div_3_Template","SmFormFieldEmailComponent_ng_container_0_div_5_Template","SmFormFieldEmailComponent_ng_container_0_sm_form_previous_value_6_Template","SmFormFieldEmailComponent","SmFormFieldEmailComponent_ng_container_0_Template","SmFormFieldEmailComponent_ng_container_1_Template","SmFormFieldPhoneComponent_ng_container_0_div_3_Template","SmFormFieldPhoneComponent_ng_container_0_div_5_Template","SmFormFieldPhoneComponent_ng_container_0_sm_form_previous_value_6_Template","SmFormFieldPhoneComponent","SmFormFieldPhoneComponent_ng_container_0_Template","SmFormFieldPhoneComponent_ng_container_1_Template","SmFormFieldYearComponent_ng_container_0_div_3_Template","SmFormFieldYearComponent_ng_container_0_div_5_Template","SmFormFieldYearComponent_ng_container_0_sm_form_previous_value_6_Template","SmFormFieldYearComponent","SmFormFieldYearComponent_ng_container_0_Template","SmFormFieldYearComponent_ng_container_1_Template","SmFormFieldZipComponent_ng_container_0_div_3_Template","SmFormFieldZipComponent_ng_container_0_div_5_Template","SmFormFieldZipComponent_ng_container_0_sm_form_previous_value_6_Template","SmFormFieldZipComponent","SmFormFieldZipComponent_ng_container_0_Template","SmFormFieldZipComponent_ng_container_1_Template","SmFormFieldIntegerComponent_ng_container_0_div_3_Template","SmFormFieldIntegerComponent_ng_container_0_div_5_Template","SmFormFieldIntegerComponent_ng_container_0_sm_form_previous_value_6_Template","tmp_4_0","tmp_5_0","tmp_6_0","SmFormFieldIntegerComponent","SmFormFieldIntegerComponent_ng_container_0_Template","SmFormFieldIntegerComponent_ng_container_1_Template","SmFormFieldDecimalComponent_ng_container_0_div_3_Template","SmFormFieldDecimalComponent_ng_container_0_div_5_Template","SmFormFieldDecimalComponent_ng_container_0_sm_form_previous_value_6_Template","NumberOfDecimals","SmFormFieldDecimalComponent","SmFormFieldDecimalComponent_ng_container_0_Template","SmFormFieldDecimalComponent_ng_container_1_Template","SmFormFieldDateComponent_ng_container_0_div_3_Template","SmFormFieldDateComponent_ng_container_0_div_5_Template","SmFormFieldDateComponent_ng_container_0_sm_form_previous_value_6_Template","valueAsDate","SmFormFieldDateComponent","setValueAsDate","SmFormFieldDateComponent_ng_container_0_Template","SmFormFieldDateComponent_ng_container_1_Template","SmFormFieldMoneyComponent_ng_container_0_div_3_Template","SmFormFieldMoneyComponent_ng_container_0_div_5_Template","SmFormFieldMoneyComponent_ng_container_0_sm_form_previous_value_6_Template","tmp_7_0","SmFormFieldMoneyComponent","SmFormFieldMoneyComponent_ng_container_0_Template","SmFormFieldMoneyComponent_ng_container_1_Template","SmFormFieldUrlComponent_ng_container_0_div_3_Template","SmFormFieldUrlComponent_ng_container_0_div_5_Template","SmFormFieldUrlComponent_ng_container_0_sm_form_previous_value_6_Template","SmFormFieldUrlComponent","SmFormFieldUrlComponent_ng_container_0_Template","SmFormFieldUrlComponent_ng_container_1_Template","SmFormFieldTimestampComponent_ng_container_0_div_3_Template","SmFormFieldTimestampComponent_ng_container_0_div_6_Template","SmFormFieldTimestampComponent_ng_container_0_sm_form_previous_value_7_Template","SmFormFieldTimestampComponent","SmFormFieldTimestampComponent_ng_container_0_Template","SmFormFieldTimestampComponent_ng_container_1_Template","SmFormFieldBooleanComponent_ng_container_0_sm_form_previous_value_4_Template","SmFormFieldBooleanComponent","SmFormFieldBooleanComponent_ng_container_0_Template","SmFormFieldBooleanComponent_ng_container_1_Template","onDblClick","option_r4","SmFormFieldRadioOptionsComponent_ng_container_0_div_3_Template","SmFormFieldRadioOptionsComponent_ng_container_0_div_5_Template","SmFormFieldRadioOptionsComponent_ng_container_0_div_6_Template","SmFormFieldRadioOptionsComponent_ng_container_0_sm_form_previous_value_7_Template","checkButtonAlignment","trackOptions","SmFormFieldRadioOptionsComponent","option","SmFormFieldRadioOptionsComponent_ng_container_0_Template","SmFormFieldRadioOptionsComponent_ng_container_1_Template","option_r3","SmFormFieldSelectComponent_ng_container_0_div_3_Template","SmFormFieldSelectComponent_ng_container_0_option_7_Template","SmFormFieldSelectComponent_ng_container_0_div_8_Template","SmFormFieldSelectComponent_ng_container_0_sm_form_previous_value_9_Template","SmFormFieldSelectComponent","SmFormFieldSelectComponent_ng_container_0_Template","SmFormFieldSelectComponent_ng_container_1_Template","focusChanged","valueChanged","_r6","_r7","_r8","_r9","_r10","_r11","_r12","_r13","_r14","_r15","_r16","_r17","err_r18","SmFormFieldComponent_div_0_div_18_div_1_Template","SmFormFieldComponent_div_0_ng_container_2_Template","SmFormFieldComponent_div_0_ng_container_3_Template","SmFormFieldComponent_div_0_ng_container_4_Template","SmFormFieldComponent_div_0_ng_container_5_Template","SmFormFieldComponent_div_0_ng_container_6_Template","SmFormFieldComponent_div_0_ng_container_7_Template","SmFormFieldComponent_div_0_ng_container_8_Template","SmFormFieldComponent_div_0_ng_container_9_Template","SmFormFieldComponent_div_0_ng_container_10_Template","SmFormFieldComponent_div_0_ng_container_11_Template","SmFormFieldComponent_div_0_ng_container_12_Template","SmFormFieldComponent_div_0_ng_container_13_Template","SmFormFieldComponent_div_0_ng_container_14_Template","SmFormFieldComponent_div_0_ng_container_15_Template","SmFormFieldComponent_div_0_ng_container_16_Template","SmFormFieldComponent_div_0_ng_container_17_Template","SmFormFieldComponent_div_0_div_18_Template","SM_FORM_TYPES","Decimal","Integer","RadioOptions","Timestamp","SmFormFieldComponent","cdRef","inputHasFocus","elementChanged$","getElementChanged","ElementId","clearIncoming","incomingSyncTimeout","updateModel","clearOutgoing","outgoingInputTimeout","ElementVM","detectChanges","hasFocus","SmFormFieldComponent_div_0_Template","Hidden","SmFormHelper","GetRecommendedWidth","FormWidths","Small","Medium","Large","ExtraLarge","GetActualValue","element_r3","SmFormSectionModalComponent_div_7_sm_form_row_1_Template","SmFormSectionModalComponent_div_7_sm_form_field_2_Template","ElementType","SmFormSectionModalComponent","activeModal","formService","elements","Items","ngAfterViewInit","elementToFocus","sendElementFocused","getTitle","firstElement","dismiss","SmFormSectionModalComponent_div_7_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_ng_template_2_div_0__svg_svg_1_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_ng_template_2_div_0__svg_svg_2_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_ng_template_2_div_0__svg_svg_3_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_ng_template_2_div_0_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_div_1_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_ng_template_2_Template","hasError","participationStatus_r2","getValueOfItemWithLabel","visibleLabel_r3","getPreviousValueOfItemWithLabel","SmFormSectionInstanceComponent_td_2_ng_template_6_ng_container_0_Template","SmFormSectionInstanceComponent_td_2_ng_container_2_Template","SmFormSectionInstanceComponent_td_2_ng_container_4_Template","SmFormSectionInstanceComponent_td_2_ng_container_5_Template","SmFormSectionInstanceComponent_td_2_ng_template_6_Template","i_r4","_c1","hasPreviousValue","normalRowValue_r5","sectionPopover_r6","element_r7","SmFormSectionInstanceComponent_ng_template_6_div_0_sm_form_row_1_Template","SmFormSectionInstanceComponent_ng_template_6_div_0_sm_form_field_2_Template","SmFormSectionInstanceComponent_ng_template_6_div_0_Template","getFieldsAndRows","openSectionInstance","deletePopover_r9","onDeleteSelf","ToggledToHide","onSectionAdded","onSectionDeleted","updateStatuses","innerSection_r14","SmFormSectionInstanceComponent_tr_14_ng_container_2_Template","getChildrenSections","SmFormSectionInstanceComponent","modalService","labels","sectionDeleted$","getSectionDeleted","InstanceId","openSectionInstance$","getOpenSectionInstance","handleElementFocused","getFieldsAndRowFields","instanceElementRef","scrollIntoViewIfNeeded","childRepeatableSectionWithMinOrMaxError","repeatableSectionHasMaxError","repeatableSectionHasMinError","findFieldAndUpdateOptions","rows","fieldsUnderRows","DateFormat","ShortGrid","hasOpenModals","modal","backdrop","centered","modalInstanceComponent","componentInstance","InstancePartitionKey","PartitionKey","ContainingSectionId","sendOutput","childrenHaveAtLeastOneError","itemsHavePreviousValue","fieldsAndRows","viewQuery","SmFormSectionInstanceComponent_td_2_Template","SmFormSectionInstanceComponent_button_5_Template","SmFormSectionInstanceComponent_ng_template_6_Template","SmFormSectionInstanceComponent_button_8_Template","SmFormSectionInstanceComponent_button_9_Template","SmFormSectionInstanceComponent_ng_template_10_Template","SmFormSectionInstanceComponent_button_12_Template","SmFormSectionInstanceComponent_button_13_Template","SmFormSectionInstanceComponent_tr_14_Template","tmp_8_0","tmp_9_0","SmFormStaticElementComponent","SmFormStaticElementComponent_label_0_Template","SmFormStaticElementComponent_p_1_Template","repeatableInstanceCount","_r2","ParentIsDeleted","MinRepeatableInstances","MaxRepeatableInstances","SmFormSectionComponent_section_0_div_11_small_1_Template","SmFormSectionComponent_section_0_div_11_small_2_Template","minInstanceError","maxInstanceError","item_r6","hideSingleSubSectionArrow","SmFormSectionComponent_section_0_div_13_ng_container_1_div_1_ng_container_1_Template","SmFormSectionComponent_section_0_div_13_ng_container_1_div_1_ng_container_2_Template","SmFormSectionComponent_section_0_div_13_ng_container_1_div_1_ng_container_3_Template","SmFormSectionComponent_section_0_div_13_ng_container_1_div_1_ng_container_4_Template","SmFormSectionComponent_section_0_div_13_ng_container_1_div_1_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_th_4_ng_container_4__svg_svg_1_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_th_4_ng_container_4__svg_svg_2_Template","currentSortOrder","visibleLabel_r10","$implicit","onChangeSort","SmFormSectionComponent_section_0_div_13_ng_container_2_th_4_ng_container_4_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_th_4_ng_container_5_Template","_c2","i_r11","_c3","currentSortLabel","toggleAllInstances","instance_r15","RepeatableVisibleLabels","SmFormSectionComponent_section_0_div_13_ng_container_2_th_4_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_button_7_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_button_8_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_tr_10_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_ng_container_11_Template","instancesHasChildSection","allInstancesToggledToHide","Instances","SmFormSectionComponent_section_0_div_13_ng_container_1_Template","SmFormSectionComponent_section_0_div_13_ng_container_2_Template","SmFormSectionComponent_section_0_div_4_Template","SmFormSectionComponent_section_0_span_7_Template","SmFormSectionComponent_section_0_button_8_Template","SmFormSectionComponent_section_0_button_9_Template","SmFormSectionComponent_section_0_button_10_Template","SmFormSectionComponent_section_0_div_11_Template","SmFormSectionComponent_section_0_p_12_Template","SmFormSectionComponent_section_0_div_13_Template","hideSingleSectionArrow","SmFormSectionComponent","sectionAdded$","getSectionAdded","SectionVM","sectionElementRef","hide","updateInstancesHasChildSection","sectionHasError","instanceItems","SmFormSectionComponent_section_0_Template","styles","SmFormService","_elementChanged$","_sectionAdded$","_openSectionInstance$","_sectionDeleted$","_elementFocused$","sendElementChanged","elementVM","sendSectionAdded","sectionVM","sendOpenSectionInstance","instanceId","sendSectionDeleted","suffix","applyPrefixAndSuffixToFieldValue","Long","datePipe","SmDatePipe","transform","convertedInteger","convertedMoney","dateString","convertedZipcode","getSectionParticipationStatus","section","childrenVMs","participationStatus","fieldVM","IsStartingOrCopy","sections","sectionHasChildWithPreviousValue","childFields","childSections","cf","fieldHasError","instancesHaveAtLeastOneError","instances","expandAllAncestorsOfElement","form","sectionIsAncestorOfElement","expandIfTrue","instanceIsAncestorOfElement","childSection","formattedValue","SmHelpTooltipComponent","placement","Placements","Auto","Icon","color","Color","Black","trigger","Click","bgColor","ngContentSelectors","SmHelpTooltipComponent_ng_template_0_Template","templateContent_r1","Info","White","Top","TopLeft","TopRight","Bottom","BottomLeft","BottomRight","Left","LeftTop","LeftBottom","Right","RightTop","RightBottom","Hover","Focus","Manual","getLineClasses","nameLine_r1","row_r4","onLinkClick","onButtonClick","DeployedBy","RightText","RightIconTooltip","RightIcon","SmInfoStackComponent_ng_container_0_div_4_span_1_Template","SmInfoStackComponent_ng_container_0_div_4_span_2_Template","SmInfoStackComponent_ng_container_0_div_4_button_3_Template","SmInfoStackComponent_ng_container_0_div_4_a_4_Template","SmInfoStackComponent_ng_container_0_div_4_a_5_Template","SmInfoStackComponent_ng_container_0_div_4_a_6_Template","SmInfoStackComponent_ng_container_0_div_4_sm_date_by_7_Template","SmInfoStackComponent_ng_container_0_div_4_span_8_Template","SmInfoStackComponent_ng_container_0_div_4_span_9_Template","AdditionalColumnText","SmInfoStackComponent_ng_container_0_div_4_Template","SmInfoStackComponent_ng_container_0_div_5_Template","LabelSize","SmInfoStackComponent","linkClicked","buttonClicked","additionalColumn","row","hostVars","hostBindings","SmInfoStackComponent_ng_container_0_Template","foundProducer_r3","ctx_r3","stopPropagation","onProducerSelected","SmProducerSearchComponent_div_1_div_4_ng_container_1_ng_container_4_Template","searchType","foundProducers","i_r5","SmProducerSearchComponent_div_1_div_4_ng_container_1_Template","SmProducerSearchComponent_div_1__svg_svg_2_Template","SmProducerSearchComponent_div_1_div_4_Template","searching","searchMessage","clearSearchInput","SmProducerSearchComponent","changeDetection","resultsDirection","placeholderLabel","producerSelectedEvent","searchFocus","searchHasValue","searchValue","searchDirty","SearchDataType","setDefaultSearchMessage","onSearchFocus","performSearch","onSearchBlur","resetSearch","onSearchKeyup","clearSearchTimeout","searchDebounceTimeout","searchSubscription$","searchResult","SearchResult","score","highlights","producerData","SmProducerSearchComponent_div_1_Template","SmProducerSearchComponent__svg_svg_5_Template","policyInfo","ProgramName","tmp_2_0","acctProgram","MatchedItem","programIds","SmQuickSearchCard_ng_container_5_ng_container_5_div_1_Template","SmQuickSearchCard_ng_container_5_h3_2_Template","SmQuickSearchCard_ng_container_5_h3_3_Template","SmQuickSearchCard_ng_container_5_div_4_Template","SmQuickSearchCard_ng_container_5_ng_container_5_Template","SmQuickSearchCard_ng_container_5_div_6_Template","explctPrgmAccess","accountTags","SmQuickSearchCard","facetService","SearchDataTypes","TENANT_PERMISSIONS","checkExplctPrgmAccess","SearchType","BuildAccountSearchResults","BuildProducerSearchResults","resultName","accountDba","dba","address1","city","zip","SmQuickSearchCard_ng_container_5_Template","SmQuickSearchCard_ng_container_6_Template","area_r1","ctx_r2","onCancel","goToConfig","SmSelectAreaComponent_ng_container_8_button_1_Template","SmSelectAreaComponent","tenantTenantService","ngUnsubscribe","filteredAreas","areaHasBeenSelected","allPermissions","canAccessConfig","grantedPermissions","allAreas","areasUserHasAccessTo","autoSelectArea","navigate","areaSelect","areaSelected","selectedArea","isModal","reload","relativeTo","aKey","selectedAreaAliasOrName","lastArea","SmSelectAreaComponent_option_4_Template","SmSelectAreaComponent_button_7_Template","SmSelectAreaComponent_ng_container_8_Template","SmSimpleDialog_ng_container_0_div_1_button_3_Template","dismissButton","performAction","buttons","leftButton","class","centerButton","rightButton","SmSimpleDialog_ng_container_0_div_3_button_1_Template","SmSimpleDialog_ng_container_0_div_3_button_2_Template","SmSimpleDialog_ng_container_0_div_3_button_3_Template","SmSimpleDialog_ng_container_0_div_1_Template","SmSimpleDialog_ng_container_0_div_2_Template","SmSimpleDialog_ng_container_0_div_3_Template","SmSimpleDialog","button","SmSimpleDialog_ng_container_0_Template","SmSimpleDialog_div_1_Template","SmSyncStatusComponent_ng_template_3_div_5_Template","syncClass","SmSyncStatusComponent","SmSyncStatusComponent_ng_template_3_Template","syncPop_r2","SmTimeSinceComponent","cdr","displayTimeUntil","timerSubscription","oneHour","_interval","setTimeStr","subject","int","tap","TimeInStrPipe","TimeMaxUnitEnum","Week","UnityAvatarComponent_ng_template_4_i_3_Template","UnityAvatarComponent","AvatarColor","Magenta","image","UnityAvatarComponent__svg_use_2_Template","UnityAvatarComponent__svg_text_3_Template","UnityAvatarComponent_ng_template_4_Template","userInfo_r2","Blue","Cyan","Purple","Ultramarine","Pink","UnityBadgeComponent","prominence","badgeCount","UnityButtonComponent","active","disableOnClick","onClick","computedClasses","classesString","click","UnityButtonComponent_unity_badge_0_Template","infoText","UnityFormControlDateComponent_label_0_span_2_Template","UnityFormControlDateComponent_label_0__svg_svg_3_Template","required","hintText","UnityFormControlDateComponent","renderer","elementRef","listen","pastedValue","clipboardData","getData","_minDate","minDate","_maxDate","maxDate","_value","hasWaitingChange","waitingChangeValue","outgoingChangeTimeout","sendChange","blur","UnityFormControlDateComponent_label_0_Template","UnityFormControlDateComponent__svg_svg_3_Template","UnityFormControlDateComponent__svg_svg_4_Template","UnityFormControlDateComponent__svg_svg_5_Template","UnityFormControlDateComponent_div_6_Template","SmSelectAreaModalComponent","vm","OriginatorBadge","getAvatarIcon","onDeleteNotification","CreatedOnDate","onUndoDelete","onClickLink","subtitle_r5","EntityText","DisplayEntityType","SmGlobalNotificationsCardComponent_ng_container_6_div_1_button_2_Template","SmGlobalNotificationsCardComponent_ng_container_6_div_1_ng_container_3_Template","tmp_3_0","IsLink","SmGlobalNotificationsCardComponent_ng_container_6_div_1_Template","IsMarkedForDelete","toggleDescription","isCollapsed","isOverflow","needsShowMoreShowLess","SmGlobalNotificationsCardComponent","readClass","IsRead","deletedClass","onClose","markAsRead","handleRedirect","entityRoute","showAvatar","SmGlobalNotificationsCardComponent_Conditional_0_Template","SmGlobalNotificationsCardComponent_Conditional_1_Template","SmGlobalNotificationsCardComponent_div_4_Template","SmGlobalNotificationsCardComponent_button_5_Template","SmGlobalNotificationsCardComponent_ng_container_6_Template","SmGlobalNotificationsCardComponent_div_7_Template","NotificationDomain","EmailNotifications","toggleInAppNotificationPopups","JournalEntryNotifications","CommentNotifications","TaskDelegationNotifications","ProgramRevisionNotifications","SmNotificationSettingsComponent_ng_container_2_div_24_Template","SmNotificationSettingsComponent_ng_container_2_option_29_Template","expirationOptions","SmNotificationSettingsComponent","unc","un","save","userNotificationCenterToSave","TaskDelegation","JournalEntry","SmNotificationSettingsComponent_unity_loading_indicator_1_Template","SmNotificationSettingsComponent_ng_container_2_Template","card_r3","SmGlobalNotificationsComponent_div_12_ng_container_1_Template","sortedAndFilteredNotifications","SmGlobalNotificationsComponent","notificationCards","activeTab","sortNotifications","ngOnChange","showSettings","onTabClick","tab","getUnreadNotificationsCount","settings","SmGlobalNotificationsComponent_div_12_Template","menuItem_r2","itemClick","SmMainMenuComponent_li_1__svg_svg_3_Template","isActive","SmMainMenuComponent","reportsService","menuItems","addMenuItem","RouteUrl","IsExternal","getPermissions","configureMenu","hasPermission","menuItem","m","ikcDocumentationUrl","SmMainMenuComponent_li_1_Template","onTaskTimerClick","userTaskTimer","UserTaskTimerComponent","destroyRef","workflows","filteredTasks","filterTasks","currDate","UserTaskTimerComponent_task_timer_0_Template","SmUserInfoComponent","updateUserInfo","userClone","MenuItem_r2","Service","UnityUserMenuComponent_ul_8_li_1_Template","MenuItems","productVersion","lastDeployedDate","UnityUserMenuComponent","featureFacetsService","buildUserVm","adminUser","populateMenu","facets","userVM","userSubscription","_user","featureFacets","userSettings","notificationSettings","resetTriggered","resetPassword","modalRef","dialogOptions","resetUsersPassword","passwordModal","passwordResetFinished","wasSuccessful","UnityUserMenuComponent_ul_8_Template","UnityUserMenuComponent_div_10_Template","onTenantClick","currentTenant","UnityHeaderComponent_div_22_button_1_Template","UnityHeaderComponent_div_22_ng_template_2_Template","availableTenants","staticTenant_r4","onAreaClick","currentAreaOrConfig","UnityHeaderComponent_div_23_button_2_Template","UnityHeaderComponent_div_23_ng_template_3_Template","availableAreas","staticArea_r6","handleDeletedNotifications","notifications_r8","handleReadNotifications","notificationCenter","notificationCardVMs","UnityHeaderComponent_ng_container_31_button_2_Template","UnityHeaderComponent_ng_container_31_ng_template_3_Template","syncStatus","p1_r11","mainMenuPop_r12","UnityHeaderComponent","syncStatusService","tenantAssignableService","inject","DestroyRef","hasLoadedAccountNotifications","hasLoadedTenantNotifications","hasAccessToConfigure","getUserAndBadge","smNomenclaturePipe","SmNomenclaturePipe","asyncPipe","AsyncPipe","guidReplacerPipe","GuidReplacerPipe","buildNotificationCardVMs","getUserAreas","getTenantUserNotifications","TenantUserNotificationCenter","AccountUserNotificationCenter","tenantCenters","accountCenters","foundArea","buildUserBadge","TenantNotification","lastSubtitleNum","subtitles","subtitle","noConfigLink","CreatedTimeUTC","entityType","badge","navigateByUrl","hideMenu","ariaLabelledBy","windowClass","modalComponent","onLogoClick","closeNotifications","notifyPopover","isOpen","deletedAccountAlerts","deletedTenantAlerts","notificationCardVM","notificationVM","markAllNotificationsAsRead","accountReadNotifications","tenantReadNotifications","i9","i10","i11","i12","UnityHeaderComponent_div_22_Template","UnityHeaderComponent_div_23_Template","UnityHeaderComponent_ng_container_31_Template","UnityHeaderComponent_sm_sync_status_33_Template","UnityHeaderComponent_button_36_Template","UnityHeaderComponent_ng_template_37_Template","UnityHeaderComponent_ng_template_41_Template","accountPop_r13","UnityIconComponent","UnityLoadingIndicatorComponent","UnityLoadingIndicatorSize","UnityLoadingIndicatorColor","UnityGradient","display","UnityLoadingIndicatorDisplay","Contained","Gray","Overlay","FullScreen","onBackAction","backAction","onPrimaryAction","primaryActionEnabled","primaryAction","onSecondaryAction","secondaryAction","UnityModalComponent","primaryActionClicked","UnityModalComponent_button_12_Template","UnityModalComponent_button_14_Template","UnityModalComponent_button_15_Template","UnityNavComponent","attrs","subtitle_r1","DisplayType","link_r3","toast","Subtitle","UnityToastComponent","standalone","UnityToastComponent_h5_6_Template","UnityToastComponent_ng_container_10_Template","UnityToastComponent_button_11_Template","Links","UnityToast","subtitlesAndLinks","UnityToastType","Announcement","Success","UnityToggleComponent","onToggle","controlName","toggledOn","ClickCursorDirective","hostAttrs","NgbTooltipStickyDirective","NgbTooltip","toggle","_elRef","_render","changeRef","triggers","openDelay","delay","ngbTooltip","ngbTooltipSticky","canCloseTooltip","tooltip","listPop","querySelectorAll","exportAs","HasPermissionDirective","templateRef","viewContainer","createEmbeddedView","HasAllPermissionDirective","hasAllPermission","HasNotPermissionDirective","hasNotPermission","TenantHasFacetDirective","TenantHasNotFacetDirective","DateTimeFormat","dateStyle","Full","timeStyle","ShortTime","hour12","ShortDayOfWeek","weekday","DayOfWeek","pure","getAlias","TextToControlIdPipe","idPrefix","idSuffix","shortHand","countdown","maxUnit","absTime","sign","oneYear","oneMonth","oneWeek","oneDay","minutes","oneMinute","Hour","SharedModule","forRoot","ngModule","NgxMaskService","provideNgxMask","allowNegativeNumbers","imports","CommonModule","FormsModule","ReactiveFormsModule","RouterModule","HttpClientModule","ClipboardModule","FileUploadModule","DropDownsModule","PopupModule","GridModule","InputsModule","ButtonsModule","DropDownListModule","NgbModule","GaugesModule","ChartsModule","ArcGaugeModule","QuillModule","NEVER","Observable","noop","AdminPollingService","noRefreshValue","$refreshRate","$refreshTimer","newRate","updateRefreshRate","refreshRate","localStorage","AdminComponent","pollingService","environmentName","minRefreshRateSeconds","maxRefreshRateSeconds","refreshRateSliderIncrement","sliderValueForNoRefresh","storedValue","storedRefreshRate","newRefreshRate","effectiveRefreshRate","ConfComponent","dragDropService","alertsHub","onDragOver","preventDefault","onDragLeave","relatedTarget","contains","MgmtComponent","NavigationStart","NavigationEnd","NavigationCancel","NavigationError","MgmtComponent_div_3_Template","assignableService","observables","substitutes","dueOn","timerState","timerClicked","TaskTimerComponent_Conditional_0_Conditional_3_Template","background","includeTimeInfo","TaskTimerComponent_Conditional_1_Conditional_7_Template","taskName","TaskTimerComponent_Conditional_2_Conditional_1_Template","TaskTimerComponent_Conditional_2_Conditional_2_Template","TaskTimerComponent_Conditional_2_Conditional_3_Template","TaskTimerComponent","isDueSoonOrPastDueSetup","previousValue","remainingTime","serviceLevelImminent","timerType","TaskTimerComponent_Conditional_0_Template","TaskTimerComponent_Conditional_1_Template","TaskTimerComponent_Conditional_2_Template","onSearchOver","foundAccount_r5","onSearchAccountAdded","AccountSearchComponent_div_0_div_8_ng_container_5_ng_container_2_Template","foundAccounts","i_r6","AccountSearchComponent_div_0_div_8__svg_svg_2_Template","AccountSearchComponent_div_0_div_8_ng_container_5_Template","onSearchOut","overSearch","AccountSearchComponent_div_0_button_6_Template","AccountSearchComponent_div_0__svg_svg_7_Template","AccountSearchComponent_div_0_div_8_Template","AccountSearchComponent","searchAccount","foundAccount","AccountSearchComponent_div_0_Template","i_r2","canClickStep","goToStep","UnityStepperComponent_li_1__svg_svg_2_Template","currentStep","step_r4","UnityStepperComponent","layoutDirection","style","backwardsCapability","steps","UnityStepperComponent_li_1_Template","accountCode","prog_r5","AccountCreationModalComponent_div_10_ng_container_22_option_9_Template","accountName","AccountCreationModalComponent_div_10_div_10_Template","setProducer","AccountCreationModalComponent_div_10_ng_container_22_Template","AccountCreationModalComponent_div_11_ng_container_36_ng_container_1_Template","CITY_r7","AccountCreationModalComponent_div_11_ng_container_37_ng_container_1_Template","STATE_r8","AccountCreationModalComponent_div_11_ng_container_39_ng_container_1_Template","AccountCreationModalComponent_div_11_ng_container_40_ng_container_1_Template","AccountCreationModalComponent_div_11_ng_template_43_ng_container_1_Template","AccountCreationModalComponent_div_11_ng_template_43_ng_container_2_Template","AccountCreationModalComponent_div_11_ng_template_43_ng_container_3_Template","country","state_r11","AccountCreationModalComponent_div_11_ng_template_45_ng_container_0_option_6_Template","us_states","prov_r14","AccountCreationModalComponent_div_11_ng_template_45_ng_container_2_option_6_Template","can_provinces","AccountCreationModalComponent_div_11_ng_template_45_ng_container_0_Template","AccountCreationModalComponent_div_11_ng_template_45_ng_container_1_Template","AccountCreationModalComponent_div_11_ng_template_45_ng_container_2_Template","AccountCreationModalComponent_div_11_ng_template_47_ng_container_1_Template","AccountCreationModalComponent_div_11_ng_template_47_ng_container_2_Template","AccountCreationModalComponent_div_11_ng_template_47_ng_container_3_Template","phone","address2","address3","AccountCreationModalComponent_div_11_ng_container_36_Template","AccountCreationModalComponent_div_11_ng_container_37_Template","AccountCreationModalComponent_div_11_ng_container_39_Template","AccountCreationModalComponent_div_11_ng_container_40_Template","AccountCreationModalComponent_div_11_ng_container_42_Template","AccountCreationModalComponent_div_11_ng_template_43_Template","AccountCreationModalComponent_div_11_ng_template_45_Template","AccountCreationModalComponent_div_11_ng_template_47_Template","ZIP_r16","disableNext","_r18","back","disableCreateAccount","AccountCreationModalComponent","onCreateAccount","accountCreationSteps","accountCreationCurrentStep","shellAccount","defaultRegion","producerName","programRequired","countryInput","changeStep","step","nameInput","AccountCreationModalComponent_div_10_Template","AccountCreationModalComponent_div_11_Template","AccountCreationModalComponent_div_12_Template","AccountCreationModalComponent_ng_container_14_Template","AccountCreationModalComponent_ng_container_15_Template","NewBusinessButtonComponent","programList","createNewAccount","programEdge","responseData","queryParams","startworkflow","NewBusinessButtonComponent__svg_svg_1_Template","NewBusinessButtonComponent__svg_svg_2_Template","WorkComponent","getCurrentNavigation","extras","skipLoading","WorkComponent_unity_loading_indicator_7_Template","production","documentationUrl","clientId","qlik","reportsUrl","ikcIntegrationDocumentationUrl","tenant_r3","selectedTenant","SmSelectTenantComponent_div_0_option_7_Template","SmSelectTenantComponent_div_0_div_8_Template","onTenantSelect","onChangeUser","tenant_invalid","SmSelectTenantComponent","SmSelectTenantComponent_div_0_Template","SmSelectTenantComponent_ng_container_1_Template","onLoginClick","LoginComponent_div_8_div_3_Template","tenantSelect","changeUser","LoginComponent","selectTenants","changeForm","form_name","LoginComponent_div_8_Template","LoginComponent_ng_template_9_Template","LoginComponent_div_11_Template","selectTenant_r4","routes","component","LoginContainerComponent","tenantClaim","recover_password_invalid","__raw","isAuthenticated","checkTenants","admin","redirectTo","pathMatch","RegisterComponent","loadChildren","all","__webpack_require__","WorkModule","ConfModule","AdminModule","MgmtModule","AppRoutingModule","paramsInheritanceStrategy","alert_r2","closeAlert","SmGlobalAlertsComponent_ng_container_0__svg_svg_2_Template","SmGlobalAlertsComponent_ng_container_0_button_5_Template","SmGlobalAlertsComponent","alerts","alert","SmGlobalAlertsComponent_ng_container_0_Template","slideOut","opacity","transition","animate","slideUp","triggerChildAnimation","animateChild","verticalCollapseAnimation","height","toast_r3","UnityToastsComponent","toasts","unitySnack","closest","classList","getAnimations","animation","finished","UnityToastsComponent_div_1_Template","SmToastListComponent","accountsService","showNotifications","nomenclaturePipe","addNotification","convertNotificationToUnityToast","LinkIds","noLink","SmToastListComponent_ng_container_0_Template","AppComponent","tooltipConfig","NgbTooltipConfig","ErrorHandlerService","ErrorHandler","invalidTimingValue","exp","ɵRuntimeError","ngDevMode","optimizeGroupPlayer","players","NoopAnimationPlayer","ɵAnimationGroupPlayer","normalizeKeyframes$1","normalizer","keyframes","preStyles","postStyles","normalizedKeyframes","previousOffset","previousKeyframe","kf","isSameOffset","normalizedKeyframe","normalizedProp","normalizedValue","normalizePropertyName","ɵPRE_STYLE","AUTO_STYLE","normalizeStyleValue","animationFailed","listenOnPlayer","player","onStart","copyAnimationEvent","onDone","onDestroy","phaseName","makeAnimationEvent","triggerName","fromState","toState","totalTime","_data","getOrSetDefaultValue","parseTimelineCommand","command","separatorPos","documentElement","getParentElement","parentNode","_CACHED_BODY","_IS_WEBKIT","containsElement","elm1","elm2","invokeQuery","selector","elem","NoopAnimationDriver","validateStyleProperty","getBodyNode","containsVendorPrefix","computeStyle","easing","previousPlayers","scrubberAccessRequested","__ngFactoryType__","ɵprov","AnimationDriver","NOOP","AnimationStyleNormalizer","ONE_SECOND","ENTER_CLASSNAME","LEAVE_CLASSNAME","NG_TRIGGER_CLASSNAME","NG_TRIGGER_SELECTOR","NG_ANIMATING_CLASSNAME","NG_ANIMATING_SELECTOR","resolveTimingValue","_convertTimeValueToMS","resolveTiming","timings","allowNegativeValues","hasOwnProperty","parseTimeExpression","delayMatch","easingVal","containsErrors","startIndex","negativeStepValue","negativeDelayValue","setStyles","formerStyles","camelProp","dashCaseToCamelCase","eraseStyles","normalizeAnimationEntry","sequence","PARAM_REGEX","extractStyleParams","lastIndex","interpolateParams","original","str","varName","localVal","invalidParamValue","DASH_CASE_REGEXP","visitDslNode","visitor","node","AnimationMetadataType","Trigger","visitTrigger","visitState","Transition","visitTransition","visitSequence","Group","visitGroup","Animate","visitAnimate","Keyframes","visitKeyframes","Style","visitStyle","Reference","visitReference","AnimateChild","visitAnimateChild","AnimateRef","visitAnimateRef","Query","visitQuery","Stagger","visitStagger","invalidNodeType","getComputedStyle","DIMENSIONAL_PROP_SET","WebAnimationsStyleNormalizer","userProvidedProperty","normalizedProperty","strVal","valAndSuffixMatch","invalidCssUnitValue","ANY_STATE","TRUE_BOOLEAN_VALUES","FALSE_BOOLEAN_VALUES","makeLambdaFromStates","lhs","rhs","LHS_MATCH_BOOLEAN","RHS_MATCH_BOOLEAN","lhsMatch","rhsMatch","SELF_TOKEN_REGEX","buildAnimationAst","driver","metadata","warnings","AnimationAstBuilderVisitor","_driver","AnimationAstBuilderContext","_resetContextStyleTimingState","currentQuerySelector","collectedStyles","currentTime","queryCount","depCount","transitions","invalidTrigger","definitions","def","stateDef","invalidDefinition","styleAst","astParams","containsDynamicStyles","missingSubs","sub","invalidState","matchers","parseTransitionExpr","transitionValue","expressions","parseInnerTransitionStr","eventStr","parseAnimationAlias","alias","invalidTransitionAlias","invalidExpression","separator","expr","normalizeAnimationOptions","furthestTime","innerAst","timingAst","constructTimingAst","makeTimingAst","strValue","some","ast","dynamic","currentAnimateTimings","styleMetadata","isEmpty","newStyleData","_styleAst","isEmptyStep","_makeStyleAst","_validateStyleAst","metadataStyles","styleTuple","collectedEasing","styleData","tuple","collectedEntry","updateCollectedStyle","invalidParallelAnimation","validateStyleParams","invalidStyleParams","invalidKeyframes","totalKeyframesWithOffsets","offsets","offsetsOutOfOrder","keyframesOutOfRange","offsetVal","consumeOffset","invalidOffset","keyframeOffsetsOutOfOrder","generatedOffset","keyframesMissingOffsets","animateDuration","durationUpToThisFrame","parentSelector","currentQuery","includeSelf","normalizeSelector","hasAmpersand","optional","originalSelector","invalidStagger","currentTransition","unsupportedCSSPropertiesFound","normalizeParams","createTimelineInstruction","preStyleProps","postStyleProps","subTimeline","ElementInstructionMap","_map","instructions","existingInstructions","ENTER_TOKEN_REGEX","LEAVE_TOKEN_REGEX","buildAnimationTimelines","rootElement","enterClassName","leaveClassName","startingStyles","finalStyles","subInstructions","AnimationTimelineBuilderVisitor","buildKeyframes","AnimationTimelineContext","currentTimeline","delayNextStep","timelines","timeline","containsAnimation","lastRootTimeline","allowOnlyTimelineStyles","elementInstructions","innerContext","createSubContext","_visitSubInstructions","transformIntoNewTimeline","previousNode","_applyAnimationRefDelays","animationsRefsOptions","animationRefOptions","animationDelay","animationDelayValue","instruction","instructionTimings","appendInstructionToTimeline","updateOptions","subContextCount","snapshotCurrentStyles","DEFAULT_NOOP_PREVIOUS_NODE","applyStylesToKeyframe","innerTimelines","mergeTimelineCollectedStyles","_visitTiming","incrementTime","hasCurrentStyleProperties","forwardFrame","applyEmptyStep","innerTimeline","forwardTime","elms","currentQueryTotal","sameElementTimeline","currentQueryIndex","parentContext","tl","maxTime","currentStaggerTime","startingTime","_enterClassName","_leaveClassName","initialTimeline","TimelineBuilder","skipIfExists","newOptions","optionsToUpdate","newParams","paramsToUpdate","_copyOptions","oldParams","newTime","fork","updatedTimings","builder","SubTimelineBuilder","stretchStartingKeyframe","invalidQuery","_elementTimelineStylesLookup","_previousKeyframe","_currentKeyframe","_keyframes","_styleSummary","_localTimelineStyles","_pendingStyles","_backFill","_currentEmptyStepKeyframe","_globalTimelineStyles","_loadKeyframe","hasPreStyleStep","_updateStyle","flattenStyles","allStyles","allProperties","getFinalKeyframe","details1","details0","finalKeyframes","keyframe","finalKeyframe","preProps","postProps","kf0","kf1","_stretchStartingKeyframe","newKeyframes","startingGap","newFirstKeyframe","oldFirstKeyframe","roundOffset","oldOffset","decimalPoints","mult","createTransitionInstruction","isRemovalTransition","fromStyles","toStyles","queriedElements","EMPTY_OBJECT","AnimationTransitionFactory","_triggerName","_stateStyles","currentState","nextState","oneOrMoreTransitionsMatch","matchFns","buildStyles","stateName","styler","currentOptions","nextOptions","skipAstBuild","transitionAnimationParams","currentStateStyles","nextAnimationParams","nextStateStyles","preStyleMap","postStyleMap","isRemoval","animationOptions","applyParamDefaults","elm","userParams","AnimationStateStyles","defaultParams","combinedParams","AnimationTrigger","_normalizer","transitionFactories","balanceProperties","fallbackTransition","createFallbackTransition","containsQueries","matchTransition","matchStyles","stateMap","key1","key2","EMPTY_INSTRUCTION_MAP","TimelineAnimationEngine","bodyNode","_animations","_playersById","register","registerFailed","_buildPlayer","autoStylesMap","missingOrDestroyedAnimation","createAnimationFailed","destroy","_getPlayer","missingPlayer","baseEvent","play","finish","setPosition","QUEUED_CLASSNAME","DISABLED_CLASSNAME","EMPTY_PLAYER_ARRAY","NULL_REMOVAL_STATE","namespaceId","setForRemoval","setForMove","hasAnimation","removedBeforeQueried","NULL_REMOVED_QUERIED_STATE","REMOVAL_FLAG","StateValue","normalizeTriggerValue","absorbOptions","VOID_VALUE","DEFAULT_STATE_VALUE","AnimationTransitionNamespace","hostElement","_engine","_triggers","_elementListeners","_hostClassName","addClass","missingTrigger","missingEvent","isTriggerEventValid","unsupportedTriggerEvent","triggersWithStates","statesByElement","afterFlush","_getTrigger","unregisteredTrigger","defaultToFallback","TransitionAnimationPlayer","objEquals","k1","k2","playersOnElement","playersByElement","queued","isFallbackTransition","totalQueuedPlayers","removeClass","deregister","clearElementCache","elementPlayers","_signalRemovalForInnerTriggers","fetchNamespacesByElement","triggerLeaveAnimation","afterFlushAnimationsDone","destroyAfterComplete","triggerStates","previousTriggersValues","markElementAsRemoved","processLeaveNode","prepareLeaveAnimationListeners","elementStates","visitedTriggers","removeNode","engine","childElementCount","containsPotentialParentTransition","totalAnimations","currentPlayers","playersByQueriedElement","removalFlag","destroyInnerAnimations","_onRemovalComplete","insertNode","drainQueuedTransitions","microtaskId","destroyed","markedForDestroy","d0","d1","TransitionAnimationEngine","onRemovalComplete","newHostElements","disabledNodes","_namespaceLookup","_namespaceList","_flushFns","_whenQuietFns","namespacesByHostElement","collectedEnterElements","collectedLeaveElements","queuedPlayers","createNamespace","_balanceNamespaceList","collectEnterElement","namespaceList","ancestor","ancestorNs","registerTrigger","_fetchNamespace","stateValue","isElementNode","insertBefore","markElementAsDisabled","hostNS","_buildInstruction","subTimelines","skipBuildAst","containerElement","destroyActiveAnimationsForElement","finishActiveQueriedAnimationOnElement","whenRenderingDone","cleanupFns","_flushAnimations","quietFns","triggerTransitionsFailed","skippedPlayers","skippedPlayersMap","queuedInstructions","allPreStyleElements","allPostStyleElements","disabledElementsSet","nodesThatAreDisabled","allTriggerElements","enterNodeMap","buildRootMap","enterNodeMapIds","nodes","root","allLeaveNodes","mergedLeaveNodes","leaveNodesWithoutAnimations","leaveNodeMapIds","leaveNodeMap","allPlayers","erroneousTransitions","nodeIsOrphaned","stringMap","setVal","transitionFailed","allPreviousPlayersMap","animationElementMap","_beforeAnimationBuild","_getPreviousPlayers","prevPlayer","replaceNodes","replacePostStylesAsPre","postStylesMap","cloakAndComputeStyles","preStylesMap","pre","rootPlayers","subPlayers","NO_PARENT_ANIMATION_ELEMENT_DETECTED","overrideTotalTime","parentWithAnimation","parentsToAdd","detectedParent","innerPlayer","_buildAnimation","setRealPlayer","parentPlayers","parentPlayer","playersForElement","syncPlayerEvents","queriedPlayerResults","queriedInnerElements","queriedPlayers","activePlayers","removeNodesAfterAnimationDone","isQueriedElement","toStateValue","queriedElementPlayers","isRemovalAnimation","targetNameSpaceId","targetTriggerName","timelineInstruction","realPlayer","getRealPlayer","beforeDestroy","allQueriedPlayers","allConsumedElements","allSubElements","allNewPlayers","flattenGroupPlayers","finalPlayers","_flattenGroupPlayersRecur","wrappedPlayer","deleteOrUnsetInMap","currentValues","_player","_containsRealPlayer","_queuedCallbacks","triggerCallback","_queueEvent","hasStarted","getPosition","nodeType","cloakElement","oldValue","valuesMap","elementPropsMap","defaultStyle","cloakVals","failedElements","roots","rootMap","nodeSet","localRootMap","getRoot","postEntry","preEntry","AnimationEngine","_triggerCache","_transitionEngine","_timelineEngine","cacheKey","triggerBuildFailed","buildTrigger","onInsert","onRemove","disableAnimations","disable","eventPhase","SpecialCasedStyles","initialStylesByElement","WeakMap","_element","_startStyles","_endStyles","initialStyles","_initialStyles","filterNonAnimatableStyles","isNonAnimatableStyle","WebAnimationsPlayer","_specialStyles","_onDoneFns","_onStartFns","_onDestroyFns","_initialized","_finished","_started","_destroyed","_originalOnDoneFns","_originalOnStartFns","currentSnapshot","_duration","_delay","_onFinish","_preparePlayerBeforeStart","domPlayer","_triggerWebAnimation","_finalKeyframe","onFinish","addEventListener","removeEventListener","_resetDomPlayerState","_convertKeyframesToObject","kfs","fromEntries","methods","WebAnimationsDriver","validateAnimatableStyleProperty","playerOptions","fill","previousStyles","previousWebAnimationPlayers","allowPreviousPlayerStylesMerge","normalizeKeyframes","balancePreviousStylesIntoKeyframes","startingKeyframe","missingStyleProps","specialStyles","packageNonAnimatableStyles","startStyles","endStyles","DISABLE_ANIMATIONS_FLAG","BaseAnimationRenderer","delegate","_onDestroy","ɵtype","destroyNode","queueMicrotask","namespace","createComment","createText","appendChild","newChild","refChild","isMove","removeChild","oldChild","isHostElement","selectRootElement","selectorOrNode","preserveContent","nextSibling","setAttribute","el","removeAttribute","setStyle","removeStyle","setProperty","AnimationRenderer","resolveElementFromTarget","parseTriggerCallbackName","dotIndex","scheduleListenerCallback","AnimationRendererFactory","_zone","_currentId","_microtaskId","_animationCallbacksBuffer","_rendererCache","_cdRecurDepth","createRenderer","onRendererDestroy","animationTriggers","begin","_scheduleCountTask","animationCallbacksBuffer","runOutsideAngular","SHARED_ANIMATION_PROVIDERS","ɵAnimationStyleNormalizer","useFactory","instantiateDefaultStyleNormalizer","ɵWebAnimationsStyleNormalizer","ɵAnimationEngine","InjectableAnimationEngine","DOCUMENT","RendererFactory2","instantiateRendererFactory","zone","ɵAnimationRendererFactory","deps","ɵDomRendererFactory2","NgZone","BROWSER_ANIMATIONS_PROVIDERS","ɵWebAnimationsDriver","ANIMATION_MODULE_TYPE","useValue","BROWSER_NOOP_ANIMATIONS_PROVIDERS","BrowserAnimationsModule","withConfig","providers","ɵmod","ɵinj","BrowserModule","AppModule","bootstrap","CodeGenAccountService","Auth0Service","AuthModule","authorizationParams","redirect_uri","NgxPermissionsModule","__NgCli_bootstrap_1","bootstrapModule","createEnum","createTypeMap","trueProto","innerErrors","HandshakeProtocol","writeHandshakeRequest","handshakeRequest","parseHandshakeResponse","messageData","remainingData","binaryData","separatorIndex","RecordSeparatorCode","responseLength","fromCharCode","textData","RecordSeparator","observers","observer","SubjectSubscription","MessageBuffer","_bufferSize","_messages","_totalMessageCount","_waitForSequenceMessage","_nextReceivingSequenceId","_latestReceivedSequenceId","_bufferedByteCount","_reconnectInProgress","_protocol","_connection","_send","serializedMessage","backpressurePromise","backpressurePromiseResolver","backpressurePromiseRejector","BufferedItem","_disconnected","_ack","ackMessage","newestAckedMessage","_message","_shouldProcessMessage","currentId","_ackTimer","_resetSequence","_resend","_dispose","_rejector","StreamInvocation","CancelInvocation","_ackTimerHandle","resolver","rejector","Connecting","Disconnecting","serverTimeoutInMilliseconds","keepAliveIntervalInMilliseconds","statefulReconnectBufferSize","_nextKeepAlive","_freezeEventListener","_reconnectPolicy","_handshakeProtocol","_processIncomingData","_connectionClosed","_callbacks","_methods","_closedCallbacks","_reconnectingCallbacks","_reconnectedCallbacks","_invocationId","_receivedHandshakeResponse","_cachedPingMessage","_startPromise","_startWithStateTransitions","_stopDuringStartError","handshakePromise","_handshakeResolver","_handshakeRejecter","_cleanupTimeout","_resetTimeoutPeriod","_resetKeepAliveInterval","_messageBuffer","_cleanupPingTimer","startPromise","_reconnectDelayHandle","_completeClose","_sendCloseMessage","_sendWithProtocol","_createCloseMessage","stream","methodName","streams","streamIds","_replaceStreamingParams","invocationDescriptor","_createStreamInvocation","promiseQueue","cancelCallback","cancelInvocation","_createCancelInvocation","invocationEvent","_launchStreams","sendPromise","_createInvocation","newMethod","off","removeIdx","_processHandshakeResponse","_invokeClientMethod","getErrorString","allowReconnect","responseMessage","serverTimeout","_pingServerHandle","nextPing","invocationMessage","_createCompletionMessage","methodsCopy","expectsResponse","completionMessage","prevRes","_cancelCallbacksWithError","_reconnect","reconnectStartTime","previousReconnectAttempts","retryError","nextRetryDelay","_getNextRetryDelay","elapsedMilliseconds","retryReason","nonblocking","streamId","_createStreamItemMessage","argument","_isObservable","_logLevel","release","includeContent","formatArrayBuffer","substr","ArrayBuffer","_x2","_x3","_x4","_x5","_x6","transportName","_subject","_observer","dispose","minimumLogLevel","_minLevel","out","userAgentHeaderName","constructUserAgent","getOsName","getRuntimeVersion","runtime","runtimeVersion","majorAndMinor","platform","versions","globalThis","_pureAssign","func1","func2","_pureRef","_primitiveTypes","UNDEF_VALUE","NULL_VALUE","EMPTY","FUNCTION","OBJECT","PROTOTYPE","__PROTO__","UNDEFINED","CONSTRUCTOR","SYMBOL","POLYFILL_TAG","LENGTH","NAME","CALL","TO_STRING","StrCls","StrProto","MathCls","ArrCls","ArrProto","ArrSlice","argArray","safeGet","_createIs","theType","_createObjIs","theName","isStrictUndefined","isStrictNullOrUndefined","isPrimitiveType","isDate","polyObjHasOwn","callbackfn","thisArg","propMap","_createProp","_createKeyValueMap","keyType","valueType","completeFn","writable","theMap","_assignMapValue","enumerable","ERROR_TYPE","propertyValueDump","objType","TypeError","_objFreeze","_doNothing","_getProto","objGetPrototypeOf","createEnumKeyMap","createSimpleMap","mapClass","_globalCfg","_wellKnownSymbolMap","asyncIterator","hasInstance","isConcatSpreadable","iterator","matchAll","species","toPrimitive","toStringTag","unscopables","GLOBAL_CONFIG_KEY","_getGlobalValue","_getGlobalConfig","_unwrapFunction","_unwrapFunctionWithPoly","clsProto","polyFunc","clsFn","_unwrapProp","mathMax","strSlice","polyStrSubstr","_polySymbols","_wellKnownSymbolCache","_globalLazyTestHooks","UNIQUE_REGISTRY_ID","_globalSymbolRegistry","gblCfg","gblSym","k","polyNewSymbol","theSymbol","polySymbolFor","registry","newSymbol_1","regId_1","polyGetKnownSymbol","knownName","_initTestHooks","lazyValue","lzy","configurable","_cachedGlobal","WINDOW","_getGlobalInstFn","getFn","cachedValue","_symbol","_symbolFor","_iterSymbol$1","WorkerGlobalScope","_initSymbol","_getSymbolKey","getSymbol","noPoly","sym","isIterator","iter","iterResult","throw","return","fnApply","theArray","_isProtoArray","_unsupportedError","polyObjCreate","tempFunc","objSetPrototypeOf","_createCustomError","_setName","baseClass","constructCb","errorBase","theBaseClass","orgName","captureFn","captureStackTrace","orgProto","polyUtcNow","_createTrimFn","_fnToString","_objCtrFnString","_gblWindow","_defaultDeepCopyHandler","plainObjDeepCopyHandler","defaultDeepCopyHandlers","arrayDeepCopyHandler","copyTo","functionDeepCopyHandler","dateDeepCopyHandler","_getSetVisited","visitMap","newPath","theEntry","_deepCopy","userHandler","newCtx","isPlain","isPrim","origin","copy","_copyProps","newEntry","objDeepCopy","_doExtend","theArg","objCopyProps","_perf","lastKey","polyStrEndsWith","REF","UNREF","HAS_REF","ENABLED","_createTimerHandler","startTimer","refreshFn","cancelFn","theTimerHandler","timerId","_unref","_cancel","_refresh","_setEnabled","dn","_createTimeoutWith","overrideFn","isArr","clearFn","timerFn","ARC","ARROW_UP","ARROW_DOWN","ARROW_LEFT","ARROW_RIGHT","ARIA_ACTIVE_DESCENDANT","BLACK","BOTTOM","CENTER","CIRCLE","CROSS","DATE","DEFAULT_FONT","DEFAULT_PRECISION","END","FORMAT_REGEX","HEIGHT","INSIDE","INHERIT","LEFT","MAX_VALUE","MIN_VALUE","OUTSIDE","RIGHT","ROUNDED_RECT","START","STRING","TOP","VALUE","WHITE","WIDTH","X","Y","POINTER","HORIZONTAL","classArray","SPACE_REGEX","alignPathToPixel","stroke","drawing","width","segments","anchor","translate","clockwise","angle1","angle2","y","convertableToNumber","isFinite","cycleUp","cycleDown","cycleIndex","deepExtendOne","destination","propInit","propValue","propType","destProp","styleValue","SIZE_STYLES_REGEX","isSizeField","elementStyles","stylesArray","getSpacing","defaultSpacing","spacing","top","bottom","compile","template_service","TemplateService","userImplementation","getTemplate","ariaTemplate","ariaContent","FIELD_REGEX","getterCache","indexAccessor","grep","hasClasses","classNames","names","HashMap","inArray","interpolateValue","progress","TRIGGER","instance_observer","InstanceObserver","handlerMap","isDefaultPrevented","callObserver","fnName","requiresHandlers","support","mousewheelDelta","delta","wheelDelta","webkit","devicePixelRatio","bindEvents","defined","deg","elementOffset","elementSize","eventCoordinates","eventElement","hashKey","limitValue","objectKey","rad","unbindEvents","valueOrDefault","FontLoader","fetchFonts","fonts","MAX_DEPTH","loadFonts","font","load","logToConsole","preloadFonts","font_loader","setDefaultOptions","KI_PREFFIX","KSVG_PREFFIX","HTMLBaseIcon","wrapper","addClasses","html","outerHTML","themeColor","flip","iconClass","stylingOptions","HTMLFontIcon","currentIconClass","_className","HTMLSvgIcon","innerHTML","iconNameMatch","svgIcons","svgElement","createElementNS","viewBox","ICON_TYPES","svg","renderIcon","iconElement","iconOptions","HTMLElement","sparseArrayLimits","predicate","Matrix","geometry","matrixRegexp","transformMatrix","parseMatrix","matrixString","members","auto_text_color","autoTextColor","isDark","DELETED","LegacySet","_index","_values","SetWrapper","createHashSet","supportsSet","defaultErrorHandler","col","each","transpose","multiply","va","vb","inverse","augment","imax","argmax","pos","common_matrix","eventMap","down","move","up","queryEventMap","applyEventMap","elementEventHandlers","ID","Symbol","eventFilter","eventHandler","attachedHandler","closestMatchingTarget","defineProperty","currentTarget","eventHandlers","handlerId","getSupportedFeatures","detectOS","agentRxs","wp","android","iphone","ipad","playbook","windows","tizen","sailfish","osRxs","ios","flat","agent","testRegex","mobileOS","regexes","dflt","_defaultPrevented","Class","unbind","one","eventNames","handlersIsFunction","eventArgs","sender","_setEvents","extend","DEFAULT_MIN_HOLD","DEFAULT_THRESHOLD","MOVE","TAP","DOUBLETAP","RELEASE","GESTURECHANGE","GESTUREEND","GESTURETAP","THRESHOLD","api","touch","mouse","pointer","getTouches","touches","originalEvent","pointerId","TouchAxis","axis","invalidZeroEvents","_updateLocationData","startLocation","velocity","timeStamp","timeDelta","initialDelta","client","screen","Touch","userEvents","touchInfo","threshold","initialTouch","pressEvent","_clicks","supportDoubleTap","_moved","press","_holdTimeout","_hold","minHold","_trigger","_tap","_clickTimeout","_shouldNotMove","_withinIgnoreThreshold","UserEvents","_start","activeTouches","activeTouchIndex","skip","isMoved","notify","xDelta","yDelta","sqrt","withEachUpEvent","downEvents","_maxTouches","multiTouch","allowSelection","captureUpIfMoved","surface","pressed","_surfaceMoveHandler","_move","_surfaceEndHandler","_end","_elementStartHandler","touchAction","preventDragEvent","_elementDragStartHandler","_elementSelectHandler","_select","surfaceElement","preventIfMovingProxy","preventIfMoving","_isMoved","_disposeAll","_isMultiTouch","touchDelta","touch1","touch2","x1","y1","x2","y2","dx","dy","center","distance","_apiCall","_maxTouchesReached","which","eventTouches","eventTouch","setPointerCapture","_eachTouch","matchingTouch","dict","pageX","pageY","clientX","clientY","defaultThreshold","autoMajorUnit","diff","scale","relativeValue","scaleMultiplier","Point","equals","point","rotate","degrees","theta","cosT","cos","sinT","sin","cx","cy","distanceTo","onCircle","angle","radius","radians","core_point","Box","box","wrap","targetBox","wrapPoint","arrayPoint","snapTo","alignTo","targetCenter","shrink","dw","dh","expand","padding","unpad","containsPoint","points","getHash","overlaps","rotation","r1","rotatePoint","r2","r3","r4","toRect","geom","hasSize","align","alignment","c1","c2","sizeFunc","core_box","Ring","innerRadius","startAngle","middle","setRadius","newRadius","radianAngle","ax","ay","adjacentBox","sector","midAndle","midPoint","hw","hh","sa","ca","endAngle","vector","startPoint","startVector","endPoint","endVector","dist","getBBox","allAngles","numericComparer","startAngleIndex","endAngleIndex","angles","core_ring","ShapeBuilder","createRing","arc","radiusX","radiusY","draw","fromArc","innerEnd","pointAt","lineTo","shape_builder","swing","position","PI","linear","easeOutElastic","asin","AnimationFactory","_items","animation_factory","Animation","setup","easingFunctions","loop","_stopped","wallTime","easingPosition","animationFrame","ChartElement","initUserOptions","reflow","currentChild","getService","chartService","translateChildren","childrenCount","renderVisual","visible","createVisual","addVisual","renderChildren","createAnimation","renderComplete","visual","chartElement","appendVisual","zIndex","childVisual","noclip","clipRoot","stackRoot","stackVisual","isStackRoot","visuals","insert","traverse","child","matched","hasHighlight","highlight","createHighlight","toggleHighlight","show","customVisual","_highlight","highlightOptions","highlightVisualArgs","series","dataItem","category","percentage","runningTotal","toggleFocusHighlight","accessibility","focusHighlight","_focusHighlight","rootBackground","highlightColor","focusHighlightOptions","border","createFocusHighlight","createGradientOverlay","gradientOptions","overlay","createGradient","closed","supportsPointInactiveOpacity","chart_element","BoxElement","margin","shrinkToFit","hasSetSize","borderWidth","reflowPaddingBox","vAlign","paddingBox","contentBox","hasBox","fromRect","visualStyle","dashType","cursor","box_element","addAccessibilityAttributesToVisual","accessibilityOptions","ariaLabel","ariaRoleDescription","ariaChecked","ShapeElement","pointData","getElement","halfWidth","halfHeight","fromPoints","moveTo","rect","borderRadius","setCornerRadius","visualOptions","shape_element","RADIAL","core_gradients","glass","stops","sharpBevel","roundedBevel","roundedGlass","supportVML","sharpGlass","bubbleShadow","boxDiff","boxes","RootElement","rootOptions","gradients","currentBox","createBackground","hashCode","gradient","GRADIENTS","drawingGradient","innerRadialStops","usedSpace","currentStops","currentStop","cleanGradients","_observers","root_element","FloatElement","_initDirection","vertical","groupAxis","elementAxis","groupSizeField","elementSizeField","groupSpacing","elementSpacing","vSpacing","reflowChildren","groups","groupsSize","maxGroupElementsSize","groupOptions","groupsCount","groupsStart","alignStart","groupStart","groupIdx","group","groupElements","elementStart","groupElementsCount","groupElementStart","groupSize","elementBox","maxSize","groupElementsSize","float_element","DrawingText","baseline","paintOrder","topLeft","core_text","rectToBox","bottomRight","ROWS_SPLIT_REGEX","text_box","TextBox","_initContainer","_autoReflow","floatElement","textOptions","rowIdx","visualFn","_boxReflow","visualBox","visualContext","clippedBBox","normalBox","rotatedBox","rotationTransform","getDefaultVisual","boxCenter","_textBox","buildTitle","defaultOptions","titleOptions","orderTitles","titles","collapseVerticalMargins","prevBox","core_title","AxisLabel","culture","widget","alignRotation","bbox","matrix","rotationMatrix","rotationOrigin","alignAxis","distanceAxis","axisAnchor","transformCopy","topRight","bottomLeft","ie","distanceLeft","distanceRight","alignEnd","alignCenter","axis_label","Note","render","childAlias","noteTemplate","auto","aliasFor","marker","wrapperBox","lineStart","linePoints","createLine","defaultVisual","over","core_note","parseDate","firstDay","intl_service","IntlService","implementation","FORMAT_REPLACE_REGEX","format_service","FormatService","intlService","_intlService","intl","formatString","localeAuto","locale","placeholderFormat","chart_service","ChartService","chart","rtl","isPannable","pannable","lock","dom_events_builder","DomEventsBuilder","createAxisTick","tickOptions","tickX","tickY","tick","createAxisGridLine","gridLine","lineEnd","Axis","majorTickSize","minorTickSize","minorTicks","minorTickType","majorTicks","majorTickType","initFields","_deferLabels","createLabels","createTitle","createNotes","labelsRange","labelsCount","normalizeLabelRotation","labelOptions","clearLabels","autoRotateLabels","createAxisLabel","clearTitle","lineBox","mirror","axisX","axisY","lineWidth","visualSize","notes","parseNoteValue","note","createPlotBands","gridLinesVisual","gridLines","_gridLines","createTicks","lineGroup","majorUnit","tickLineOptions","tickPositions","skipUnit","getMajorTickPositions","getMinorTickPositions","minorUnit","_alignLines","_lineGroup","getActualTickSize","tickSize","_backgroundPath","plotBands","plotArea","_plotbandGroup","altAxis","pane","axes","slotX","slotY","getSlot","createPlotBandLabel","bandRect","textbox","labelTemplate","createGridLines","minorGridLines","majorGridLines","axisLineVisible","linePos","lineOptions","sizeFn","titleSize","space","boxSize","maxLabelSize","labelSize","arrangeTitle","arrangeLabels","arrangeNotes","getLabelsTickPositions","labelTickIndex","labelsBetweenTicks","tickIx","firstTickPosition","nextTickPosition","positionStart","positionEnd","positionLabel","labelOffset","labelBox","labelX","labelY","autoRotateLabelAngle","slotWidth","labelAngle","slot","shouldRenderNote","noteSlot","secondAxis","axisLabelText","tmpl","defaultText","maxLabelOffset","lastLabel","offsetField","startPosition","endPosition","maxStartOffset","maxEndOffset","startTick","endTick","limitRange","rangeSize","minValue","valueRange","seriesMin","seriesMax","lineDir","lineInfo","lineSize","axisDir","axisOrigin","pointOffset","scaleToDelta","rawScale","MAX_SCALE","justified","prepareUserOptions","axisCrossingValue","MILLISECONDS","SECONDS","MINUTES","HOURS","DAYS","WEEKS","MONTHS","YEARS","TIME_PER_SECOND","TIME_PER_MINUTE","TIME_PER_HOUR","TIME_PER_DAY","TIME_PER_WEEK","TIME_PER_MONTH","TIME_PER_YEAR","TIME_PER_UNIT","years","months","weeks","seconds","absoluteDateDiff","addTicks","ticks","toDate","adjustDST","addDuration","dateValue","weekStartDay","startOfWeek","daysToSubtract","roundedDate","tzDiff","floorDate","ceilDate","dateComparer","dateDiff","toTime","dateEquals","timeIndex","baseUnit","dateIndex","baseUnitStep","startDate","parseDates","dates","CategoryAxis","_ticks","categoriesHash","categories","srcCategories","definedMin","definedMax","rangeIndices","totalRange","roundedRange","_seriesMax","scaleOptions","hideOutOfRangeLabels","valueAxis","firstLabel","getTicks","labelTicks","tickIndices","stepSize","indices","getTickPositions","positions","_hash","hasMinor","filterOutOfRangePositions","inRange","endIndex","slotBox","singleSlot","p1","p2","limitSlot","limittedSlot","categoryIndex","pointCategoryIndex","getCategory","totalIndex","categoryAt","categoriesCount","translateRange","scaleRange","limitedRangeIndices","zoomRange","totalMin","totalMax","labelContext","dataItems","hideOutOfRangeNotes","pan","pointsRange","rangeMin","rangeMax","_categoriesMap","currentRangeIndices","totalCount","totalLimit","totalRangeIndices","indexCategories","category_axis","DateLabelFormats","BASE_UNITS","FIT","categoryRange","clearCache","_range","EmptyDateRange","displayIndices","displayRange","valueIndex","valuesCount","dateAt","DateRange","roundToBaseUnit","lowerEnd","roundToTotalStep","expandEnd","justifyEnd","valueStart","displayStart","valueEnd","displayEnd","_indices","minIdx","maxIdx","upper","roundedStep","autoBaseUnit","startUnit","startStep","categoryLimits","span","autoBaseUnitSteps","maxDateGroups","autoUnit","unitSteps","nextStep","autoUnitIx","totalUnits","DateCategoryAxis","dataRange","_parsed","panning","userSetBaseUnit","userSetBaseUnitStep","maxDivisions","safeOptions","initUnit","defaultBaseUnit","lastCategory","minDiff","categoryIx","forecast","_forecast","after","divisionOptions","dataRangeOptions","divisionRange","rangeLabels","totalLimits","panRange","datesRange","indicesRange","fit","minDelta","maxDelta","maxDiff","rangeDiff","autoBaseUnitStep","baseUnitIndex","stepIndex","createRangeLabels","arrangeRangeLabels","autoRotateRangeLabels","hideOverlappingLabels","clip","rangeLabel","firstRangeLabel","lastRangeLabel","dateFormats","createLabel","rotateLabel","date_category_axis","limitCoordinate","MIN_VALUE_RANGE","NumericAxis","autoOptions","autoAxisOptions","narrowRange","autoMin","autoAxisMin","narrow","axisMin","autoMax","autoAxisMax","axisMax","roundToMajorUnit","remainderClose","totalOptions","totalAxisOptions","axisOptions","userOptions","userSetMin","userSetMax","clearNullValues","userSetLimits","totalMajorUnit","startValue","getDivisions","stepValue","divisions","skipStep","endValue","isValidRange","divisor","ratio","remainder","numeric_axis","DateValueAxis","axisCrossingValues","applyDefaults","timeUnits","baseUnitTime","actualUnits","unitsToAdd","head","tail","dir","limittedRange","date_value_axis","LogarithmicAxis","base","logMaxRemainder","initRange","throwNegativeValuesError","logMin","logMax","floorMax","traverseMajorTicksPositions","tickPosition","traverseMinorTicksPositions","power","minorOptions","_minorIntervalOptions","minorStep","logarithmic_axis","grid_lines_mixin","majorAngles","minorAngles","skipMajor","majorGridLineAngles","renderMajorGridLines","minorGridLineAngles","renderMinorGridLines","renderGridLines","radiusCallback","circle","gridLineAngles","skipAngles","divs","intervals","altAxisVisible","alpha","intervalAngle","RadarCategoryAxis","reflowLabels","measureBox","skipOption","stepOption","divCount","divAngle","majorIntervals","minorIntervals","minorAngle","minorRadius","band","plotBandSlot","ring","totalDivs","slotAngle","fromValue","slotStart","GridLinesMixin","radar_category_axis","PolarAxis","instanceOptions","atan2","polar_axis","angularDistance","radar_numeric_axis_mixin","polarAxis","bandStyle","shape","plotBandPoints","innerPoints","outerPoints","innerCircle","outerCircle","radarMajorGridLinePositions","radarMinorGridLinePositions","tickRadius","angleIx","midAngle","gamma","axisType","RadarNumericAxis","minorSkipStep","RadarNumericAxisMixin","radar_numeric_axis","RadarLogarithmicAxis","radar_logarithmic_axis","numberSign","curve_processor","CurveProcessor","dataPoints","removeDuplicates","initialControlPoint","lastControlPoint","p0","tangent","controlOut","firstControlPoint","secondControlPoint","controlPoints","cp0","invertAxis","lineFunction","calculateFunction","isLine","xField","yField","restrict","switchOrientation","monotonic","isMonotonicByField","oldXField","restrictControlPoint","cp","p3","t1","t2","xValue","yValue","controlPoint","chart_axis","ChartAxis","_axis","findAxisByName","chart_pane","ChartPane","chartsVisual","chartContainer","_pane","chart_plotarea","ChartPlotArea","_plotArea","backgroundVisual","_bgVisual","countNumbers","Aggregates","sum","sumOrNull","avg","aggregates","getField","SeriesBinder","_valueFields","_otherFields","_nullValue","_undefinedValue","seriesTypes","valueFields","otherFields","_makeValue","canonicalFields","bindPoint","pointIx","fieldData","_bindFromArray","srcValueFields","sourceFields","srcPointFields","_bindFromObject","srcFields","srcFieldName","fieldName","sourceFieldName","series_binder","percentRegex","standardDeviationRegex","error_range_calculator","ErrorRangeCalculator","errorValue","initGlobalRanges","deviationMatch","valueGetter","createValueGetter","getAverage","deviation","getStandardDeviation","multiple","errorRange","low","high","globalRange","standardError","getStandardError","binder","getErrorRange","pointValue","percentValue","isSample","squareDifferenceSum","INITIAL_ANIMATION_DURATION","FADEIN","START_SCALE","msie","ERROR_LOW_FIELD","ERROR_HIGH_FIELD","ZERO","INTERPOLATE","ABOVE","BELOW","SMOOTH","STEP","AREA","BAR","BOX_PLOT","BUBBLE","BULLET","CANDLESTICK","COLUMN","DONUT","FUNNEL","PYRAMID","HEATMAP","HORIZONTAL_WATERFALL","LINE","OHLC","PIE","POLAR_AREA","POLAR_LINE","POLAR_SCATTER","RADAR_AREA","RADAR_COLUMN","RADAR_LINE","RANGE_AREA","RANGE_BAR","RANGE_COLUMN","SCATTER","SCATTER_LINE","VERTICAL_AREA","VERTICAL_BOX_PLOT","VERTICAL_BULLET","VERTICAL_LINE","VERTICAL_RANGE_AREA","WATERFALL","EQUALLY_SPACED_SERIES","TRENDLINE_EXPONENTIAL","TRENDLINE_LINEAR","TRENDLINE_LOGARITHMIC","TRENDLINE_MOVING_AVERAGE","TRENDLINE_POLYNOMIAL","TRENDLINE_POWER","TRENDLINE_SERIES","LEGEND_ITEM_CLICK","SERIES_CLICK","SERIES_HOVER","SERIES_OVER","SERIES_LEAVE","PLOT_AREA_HOVER","PLOT_AREA_LEAVE","DRAG","DRAG_END","DRAG_START","ZOOM_START","ZOOM","ZOOM_END","SELECT_START","SELECT","SELECT_END","SHOW_TOOLTIP","HIDE_TOOLTIP","CHART_POINT_ROLE","CHART_POINT_CLASSNAME","CHART_POINT_ROLE_DESCRIPTION","LOGARITHMIC","CATEGORY","INSIDE_END","OUTSIDE_END","MOUSEWHEEL","DRILLDOWN_FIELD","ErrorBarBase","isVertical","endCaps","valueBox","getAxis","centerBox","capsWidth","getCapsWidth","capValue","capStart","capEnd","createDefaultVisual","error_bar_base","categorical_error_bar","CategoricalErrorBar","seriesValueAxis","anyHasZIndex","appendIfNotNull","areNumbers","segmentVisible","pointVisibility","bindSegments","seriesCount","equalsIgnoreCase","evalOptions","dryRun","needsEval","excluded","filterSeriesByType","types","currentSeries","dateCache","parseDateCategory","hasGradientOverlay","hasValue","isDateAxis","sampleCategory","dateCategory","singleItemOrArray","AREA_REGEX","findNext","hasItem","pointHasValue","outPoint","createOutOfRangePoints","hasMinPoint","hasMaxPoint","missingValues","seriesMissingValues","minPoint","maxPoint","_outOfRangeMinPoint","_outOfRangeMaxPoint","CategoricalChart","categoryAxis","seriesCategoryAxis","valueAxisRanges","categoryPoints","seriesPoints","seriesOptions","_evalSeries","traverseDataPoints","addValue","pointOptions","seriesIx","pointType","invertAxes","plotValue","isStacked100","otherValues","categorySum","otherStack","plotRange","isStacked","positive","prevValue","isStackedBar","defaultStack","isNonGroupStack","otherValue","categoryAxisCrossingValue","stackLimits","axisName","stackName","pIx","updateStackRange","chartSeries","limitsCache","limits","errorTotals","negative","addErrorBar","errorBars","lowValue","highValue","seriesErrorRanges","addPointErrorBar","stackedErrorRange","updateRange","errorBar","createPoint","noteText","evalPointOptions","_defaults","doEval","axisRange","namedValueAxes","categorySlots","chartPoints","categorySlot","valueSlot","pointSlot","aboveAxis","stackValue","reflowPoint","reflowCategories","limitPoints","limitPoint","limitedSlot","axisIndex","_outOfRangeCallback","currentCategory","outOfRangePoint","formatPointValue","categorical_chart","point_events_mixin","hover","note_mixin","createNote","LinePoint","tooltipTracking","markers","_rendered","createMarker","createLabelElement","getLabelText","getAriaLabelText","getAriaTemplate","markerBorder","brightness","toHex","markerBox","_childBox","childBox","reflowLabel","noteTargetBox","defaultColor","shadow","highlightVisual","halfSize","markerOptions","tooltipAnchor","clipBox","horizontalAlign","verticalAlign","horizontal","overlapsBox","unclipElements","focusVisual","clearFocusFromVisual","getIndex","tabIndex","PointEventsMixin","NoteMixin","line_point","LineSegment","toGeometryPoints","segmentVisual","coords","getNearestPoint","line_segment","toGeometryPoint","lintPoint","stepAxis","stepDir","step_line_mixin","calculateStepPoints","previousPoint","stepPoint","StepLineSegment","StepLineMixin","step_line_segment","spline_segment","SplineSegment","curve","line_chart_mixin","renderSegments","lastSegment","_segments","sortedPoints","sortPoints","pointCount","createSegment","_addSegment","segment","allPoints","nearestPoint","nearestPointDistance","pointDistance","ClipAnimation","_setEnd","suspend","setX","clip_animation","clip_animation_mixin","clipPath","_setChildrenAnimation","animationPoints","LineChart","LineChartMixin","ClipAnimationMixin","line_chart","area_segment","AreaSegment","prevSegment","stackPoints","createFill","createStroke","lineCap","strokeSegments","_strokeSegments","createStrokeSegments","segmentsFromPoints","stackSegments","createStackSegments","hasStackSegment","fillSegments","hasStackSegments","fillToAxes","fillPath","crossingValue","endSlot","firstPoint","lastPoint","StepAreaSegment","step_area_segment","spline_area_segment","SplineAreaSegment","curveProcessor","controlIn","area_chart","AreaChart","previousSegment","_gapStackPoints","_stackPoints","stackPoint","startIdx","endIdx","currentSeriesIx","_previousSegmentPoint","gapStackPoint","_createGapStackPoint","segmentIx","seriesIdx","axis_group_range_tracker","AxisGroupRangeTracker","axisRanges","chartAxisRanges","chartRange","BarLabel","textBox","alignToClipBox","parentBox","bar_label","accessibility_attributes_mixin","Bar","rectVisual","createRect","strokeOpacity","getBorderColor","lineJoin","baseColor","_brightness","borderColor","AccessibilityAttributesMixin","bar","forEachReverse","ClusterLayout","gap","slots","slotSize","cluster_layout","StackWrap","positionAxis","stack_wrap","BarChart","clusterType","stackType","stackOrDefault","negativeColor","cluster","getStackWrap","stackGroup","wraps","stackWrap","_stackGroup","zeroSlot","stackAxis","childrenLength","_setAnimationOptions","pointVisual","bar_chart","Candlestick","ocSlot","lhSlot","realBody","mid","reflowNote","_mainVisual","mainVisual","createOverlay","createBody","createLines","drawLines","lineStyle","normalColor","meanPoints","medianPoints","whiskerPoints","candlestick","CandlestickChart","splitValue","downColor","candlestick_chart","BoxPlot","whiskerSlot","boxSlot","q1","q3","reflowBoxSlot","lower","reflowWhiskerSlot","medianSlot","median","mean","meanSlot","calcMeanPoints","calcWhiskerPoints","calcMedianPoints","renderOutliers","outliers","outerFence","outlierValue","extremes","markersBorder","reflowOutliers","whiskers","box_plot","vertical_box_plot","VerticalBoxPlot","box_plot_chart","BoxPlotChart","filterOutliers","scatter_error_bar","ScatterErrorBar","seriesAxes","ScatterChart","_initFields","xAxisRanges","yAxisRanges","valueErrorField","lowField","highField","createMissingValue","xAxis","xAxisName","yAxis","yAxisName","xAxisRange","yAxisRange","namedXAxes","namedYAxes","scatter_chart","Bubble","highlightGroup","bubble","BubbleChart","_maxSize","negativeValues","updateBubblesSize","minR","minSize","maxR","minArea","areaRatio","bubble_chart","Target","Bullet","targetValueSlot","targetSlotX","targetSlotY","targetSlot","bodyVisual","bullet_chart_bullet","BulletChart","wrapData","seriesItem","bulletOptions","bullet","bullet_chart","BaseTooltip","getStyle","pointColor","backgroundColor","paddingTop","paddingBottom","paddingLeft","paddingRight","tooltipOptions","base_tooltip","CrosshairTooltip","crosshair","formatService","initAxisName","showAt","stickyMode","getAnchor","crosshair_tooltip","Crosshair","moveLine","getBox","dim","axisLineBox","currentAxis","ChartContainer","shouldClip","_clipBox","chartsBox","clipRect","unclipLabels","charts","chart_container","Pane","paneID","appendAxis","appendAxisAt","appendChart","empty","removeAxis","removeChart","allAxes","vGridLines","hGridLines","notifyRender","axisValueField","paneIndex","PlotAreaBase","initSeries","legend","crosshairs","originalOptions","originalSeries","_bindCache","createPanes","createCrosshairs","cached","paneDefaults","paneOptions","panes","panesLength","currentPane","crosshairOptions","currentCrosshair","removeCrosshairs","hideCrosshairs","findPane","matchingPane","findPointPane","axisToRemove","filteredAxes","chartToRemove","filteredCharts","addToLegend","inactiveItems","inactiveItemsLabels","seriesVisible","visibleInLegend","itemLabelOptions","markerColor","groupAxes","xAxes","yAxes","paneIx","paneAxes","axisIx","any","groupSeriesByPane","seriesByPane","seriesPaneName","filterVisibleSeries","reflowPanes","detachLabels","reflowAxes","reflowCharts","redraw","panesArray","crossingAxes","crossingValues","valuesToAdd","alignAxisTo","targetAxis","targetCrossingValue","slotEdge","targetEdge","axisBox","alignAxes","xAnchor","yAnchor","xAnchorCrossings","yAnchorCrossings","leftAnchors","rightAnchors","topAnchors","bottomAnchors","paneId","paneAnchor","anchorCrossings","_overlap","_mirrored","paneYAnchor","shrinkAxisWidth","axisGroupBox","overflowX","shrinkAxisHeight","shrinked","overflowY","fitAxes","offsetX","paneBox","offsetY","reflowPaneAxes","autoRotateAxisLabels","groupedAxes","allPaneAxes","rotated","chartPane","remainingHeight","autoHeightPanes","percents","backgroundBox","axesCount","axisA","axisB","chartsBoxes","addBackgroundPaths","multipath","paths","backgroundContainsPoint","isTransparent","bg","pointsByCategoryIndex","pointsBySeriesIndex","seriesIndex","filterPoints","pointsByPointIndex","pointIndex","pointsBySeriesName","findPoint","paneByPoint","detachAxisGroupLabels","labelAxisCount","labelAxis","createLabelAxis","isTrendline","trendlineFactory","createTrendlineSeries","modifiedSeries","forSeries","seriesByName","for","trendlineSeries","getFirstPoint","getPointBelow","_getNextPoint","_pointsByVertical","getPointAbove","getPointToTheRight","_pointsByHorizontal","getPointToTheLeft","getPointsFunc","increment","nextIndex","loopPoints","direction","at","basePoint","isSingleAxis","acc","plotarea_base","plotarea_events_mixin","parentObj","series_aggregator","SeriesAggregator","defaultAggregates","seriesFields","_seriesFields","rootAggregate","aggregate","_series","_binder","fieldAggregate","canonicalName","aggregatePoints","srcPoints","_bindPoints","firstDataItem","srcValues","_bindField","DefaultAggregates","seriesType","default_aggregates","RangeBar","fromOptions","toOptions","labelFrom","labelTo","range_bar","RangeBarChart","plotLimits","range_bar_chart","range_line_point","RangeLinePoint","RangeAreaPoint","initLabelsFormat","fromPoint","toPoint","copyFields","fromBox","toBox","positionLabels","fromLabelPosition","toLabelPosition","range_area_point","range_area_segment","RangeAreaSegment","toPoints","fromSegments","toPath","fromPath","spline_range_area_segment","SplineRangeAreaSegment","createCurveSegments","StepRangeAreaSegment","step_range_area_segment","RangeAreaChart","segmentType","fromSlot","toSlot","range_area_chart","ohlc_point","OHLCPoint","oPoints","cPoints","lhPoints","oSlot","cSlot","ohlc_chart","OHLCChart","WaterfallSegment","waterfall_segment","waterfall_chart","WaterfallChart","createSegments","totalCategories","summary","prevPoint","trendline_factory","impl","calculate_slope","calculateSlope","sourceValues","slope","xy","xMin","xMax","check_all_positive","checkAllPositive","get_trendline_data","getTrendlineData","valueMapper","currentRange","calculate_moving_average","calculateMovingAverage","averagePoints","lastValue","calculate_polynomial","calculatePolynomial","order","coefficients","linearRegression","Xt","B","exponentialTrendline","seriesValues","categoryField","linearTrendline","logarithmicTrendline","movingAverageTrendline","calculatePoints","trendline","polynomialTrendline","powerTrendline","trendline_registry","AREA_SERIES","OUT_OF_RANGE_SERIES","CategoricalPlotArea","namedCategoryAxes","valueAxisRangeTracker","_seriesPointsCache","_currentPointsCache","stack100","createCategoryAxes","aggregateCategories","createCategoryAxesLabels","createCharts","createValueAxes","trendlineRegistry","filterSeries","trendlineAggregateForecast","srcSeries","aggregateSeries","paneSeries","visibleSeries","groupSeriesByCategoryAxis","groupIx","createChartGroup","createAreaChart","createRangeAreaChart","createBarChart","createRangeBarChart","createBulletChart","createCandlestickChart","createBoxPlotChart","createOHLCChart","createWaterfallChart","createLineChart","processedSeries","axisPane","dataLength","outOfRangePoints","clearSeriesPointsCache","seriesSourcePoints","dateAxis","srcData","aggregator","categoryItem","categoryIdx","categoriesToAdd","stackableChartOptions","anyStackedSeries","categoryAxes","unique","axisSeries","groupSeries","firstSeries","barChart","rangeColumnChart","bulletChart","lineChart","areaChart","rangeAreaChart","waterfallChart","axisRequiresRounding","categoryAxisName","categoryAxisIndex","centeredSeries","seriesAxis","aggregatedAxis","isJustified","primaryAxis","defaultRange","baseOptions","defaultAxisRange","eventType","_eventCoordinates","pointPane","updateAxisOptions","_siblingsBySeriesIndex","_siblingsByPointIndex","siblings","_getSeriesCompareFn","_isInStackedSeries","sortableSeries","stackableSeries","targetOptions","PlotAreaEventsMixin","categorical_plotarea","Highlight","_points","arrayPoints","togglePointHighlight","toggleHandler","isHighlighted","acceptKey","mouseKey","ctrlKey","shiftKey","altKey","toChartAxisRanges","ranges","Pannable","_active","_panAxes","updatedAxes","ZoomSelection","marquee","_marquee","marqueeColor","removeElement","zoomPane","_zoomPane","_elementOffset","_zoomPaneClipBox","_selectionPosition","selectionPosition","_updateAxisRanges","zoom","zoom_selection","mousewheel_zoom","MousewheelZoom","rate","updateRanges","sizeField","alignStartReverse","DEFAULT_OPTIONS","alignContent","justifyContent","alignItems","orientation","lineSpacing","revers","layout","Layout","_rect","_fieldMap","_initMap","fieldMap","groupsSizeField","groupsAxis","justifyAlign","_initGroups","groupOrigin","elementOrigin","groupBox","arrangeElements","translateToPoint","transofrm","createTransform","Rect","bboxes","scaledStart","newStart","_newGroup","addGroup","_addToGroup","legend_layout","LegendLayout","legendItem","LegendItemMarker","markerHighlightOptions","DEFAULT_MARKER_SIZE","legend_item_marker","MarkerLineArea","legend_item_line_area","LegendItemLine","centerY","createHighlightLine","createHighlightMarker","highlightLine","highlightMarker","legend_item_line","LegendItemSquare","legend_item_square","LegendItem","createContainer","markerWrap","createMarkerArea","_marker","_createMarker","_createLine","_createMarkerLine","_createSquare","_highlightOptions","_line","_markerLineArea","_square","_highlightMarkers","_toggleHighlight","_restoreMarkers","eventSink","_itemOverlay","_legendItemHover","_unsetActivePoint","legend_item","CUSTOM","Legend","createContainers","createLegendTitle","createItems","userAlign","itemsContainer","hasTitle","innerElement","markersOptions","itemOptions","hasItems","legendBox","containerCustomReflow","containerReflow","alignTarget","containerBox","createTitleLayout","appendTitleLayoutContent","legend_legend","PlotAreaFactory","_registry","trendlines","plotarea_factory","createDiv","closestHandle","Selection","_dateAxis","initOptions","offsetHeight","createElements","onPane","selection","leftMask","rightMask","leftHandle","rightHandle","selectionStyles","leftHandleHeight","rightHandleHeight","borderLeftWidth","borderRightWidth","cssText","mousewheel","_mousewheelHandler","_mousewheel","co","_domEvents","_press","gesturestart","_gesturestart","gesturechange","_gesturechange","gestureend","_gestureend","_mwTimeout","_rangeEventArgs","_pointInPane","modelCoords","_toModelCoordinates","bodyRect","getBoundingClientRect","inBody","moveTarget","oldRange","rightClick","_slot","leftMaskWidth","rightMaskWidth","toValue","zDir","relative","chart_selection","tooltip_tooltip","Tooltip","_current","SharedTooltip","tooltipPoints","_slotAnchor","_defaultAnchor","shared","categoryText","categoryFormat","slotCenter","centerPoint","shared_tooltip","BarChartAnimation","fromScale","scaleX","scaleY","BubbleAnimation","FadeInAnimation","fadeTo","PieAnimation","ScatterLineChart","missingValue","scatter_line_chart","get_scatter_trendline_data","getScatterTrendlineData","samplingInterval","scatter_value_getter","x_value_limits","xValueLimits","scatterRegistry","scatterExponentialTrendline","scatterLinearTrendline","scatterValueGetter","scatterLogarithmicTrendline","logValueGetter","scatterMovingAverageTrendline","scatterPolynomialTrendline","scatterPowerTrendline","scatter_trendline_registry","XYPlotArea","xAxisRangeTracker","yAxisRangeTracker","filteredSeries","createScatterChart","createScatterLineChart","createBubbleChart","createAxes","createXYAxis","namedAxes","isLog","typeSamples","seriesAxisName","firstPointValue","inferredDate","xAxesOptions","yAxesOptions","xValues","yValues","scatterTrendlineRegistry","xy_plotarea","PieSegment","labelText","themeLabels","theme","seriesDefaults","labelsOptions","labelsDistance","labelHeight","labelWidth","createSegmentVisual","borderOptions","fallbackFill","userSpace","singleSegment","tooltipAlignment","RAD_30","RAD_60","sine","cosine","pie_segment","pie_chart_mixin","createLegendItem","legendOptions","pointVisible","legendItems","PieChart","seriesColors","colorsCount","anglePerValue","constantAngle","currentAngle","explode","evalSegmentOptions","segmentOptions","seriesConfigs","minWidth","halfMinWidth","defaultPadding","newBox","newBoxCenter","leftSideLabels","rightSideLabels","seriesConfig","labelComparator","leftLabelsReflow","rightLabelsReflow","distances","distanceBetweenLabels","distributeLabels","lr","firstBox","_takeDistance","amount","available","labelDistance","boxX","boxY","hAlignLabel","connectors","_connectorLines","connectorLine","sr","crossing","intersection","pointInCircle","autoFit","pieCenter","bboxBottom","reverseValue","originalX","a1","a2","b1","b2","ub","PieChartMixin","pie_chart","pie_plotarea","PiePlotArea","createPieChart","pieChart","DonutSegment","donut_segment","DonutChart","holeSize","totalSize","seriesWithoutSize","donut_chart","polar_plotarea_base","PolarPlotAreaBase","createPolarAxis","createValueAxis","valueAxisOptions","axisDefaultRange","valueAxisBox","heightDiff","PolarScatterChart","polar_scatter_chart","PolarLineChart","polar_line_chart","spline_polar_area_segment","SplinePolarAreaSegment","_polarAxisCenter","polar_area_segment","PolarAreaSegment","centerSegment","xComparer","polar_area_chart","PolarAreaChart","_hasMissingValuesGap","PolarPlotArea","scatterChart","polar_plotarea","RadarLineChart","valueRadius","seriesSegments","groupBySeriesIx","radar_line_chart","spline_radar_area_segment","SplineRadarAreaSegment","radar_area_segment","RadarAreaSegment","radar_area_chart","RadarAreaChart","RadarSegment","radar_segment","RadarClusterLayout","slotSector","radar_cluster_layout","radar_stack_layout","RadarStackLayout","childSector","RadarBarChart","radar_bar_chart","RadarPlotArea","_hasBarCharts","_isStacked100","chartOptions","radar_plotarea","FunnelSegment","chartBox","createPath","funnel_segment","FunnelChart","labelPadding","dynamicSlopeReflow","totalHeight","firstSegment","maxSegment","lastUpperSide","previousHeight","nextSegment","nextPercentage","dynamicHeight","segmentSpacing","constantSlopeReflow","decreasingWidth","neckRatio","finalNarrow","dynamicSlope","funnel_chart","pyramid_chart","PyramidChart","HeatmapPoint","labelColor","isRoundRect","halfBorderWidth","heatmap_point","HeatmapChart","setRange","colorScale","minLightnessOffset","parseColor","hsl","toHSL","toCss","indexX","indexY","xRange","yRange","xIndex","yIndex","heatmap_chart","HeatmapPlotArea","bindCategories","createAxisLabels","xCategories","yCategories","createHeatmapChart","xAxisOptions","yAxisOptions","normalizedOffset","axisXItems","_getPointAxisXIndex","targetXValue","compareValues","_getPointAxisYIndex","axisYItems","targetYValue","_getPointAxisIndex","findIndex","axisItem","heatmap_plotarea","COLOR","FIRST","MAX","NOTE_TEXT","DonutPlotArea","createDonutChart","donutChart","FunnelPlotArea","createChart","chartType","errorLow","errorHigh","AXIS_NAMES","MOUSEDOWN","MOUSEMOVE","CONTEXTMENU","MOUSELEAVE","KEYDOWN","FOCUS","BLUR","Chart","themeOptions","addObserver","_initElement","_originalOptions","_theme","_initTheme","_focusState","_initHandlers","_initSurface","fontLoaded","_redraw","_attachEvents","_setElementClass","getAttribute","firstChild","seriesCopies","resolveAxisAliases","applySeriesColors","getSize","chartArea","offsetWidth","resize","force","currentSize","_size","_resize","_selections","_destroySelections","_setupSelection","_noTransitionsRedraw","paneName","findPaneByName","findPaneByIndex","seriesName","categoryName","pointByCategoryName","togglePointsHighlight","showTooltip","_sharedTooltip","_tooltip","hideTooltip","_surfaceWrap","renderAs","_destroySurface","_surfaceMouseenterHandler","_surfaceMouseleaveHandler","_kendoExportVisual","_getModel","_destroyView","_setElementAccessibilityAttributes","_legend","_createTooltip","_createPannable","_createZoomSelection","_createMousewheelZoom","triggerPaneRender","_navState","_cancelDomEvents","_redrawFocusHighlight","legendInFocus","preserveHighlight","_focusElement","_getFocusedLegendItem","exportVisual","exportOptions","clearMissingValues","_pannable","zoomable","_zoomSelection","_mousewheelZoom","_toggleDragZoomEvents","allowDrag","allowZoom","_dragZoomEnabled","_touchAction","_toggleDomEvents","drag","domEvents","toggleDrag","toggleZoom","_createSharedTooltip","applyAxisDefaults","themeAxisDefaults","axisDefaults","mapAxisOptions","axisColor","applySeriesDefaults","seriesLength","commonDefaults","themeSeriesDefaults","commonThemeDefaults","cleanupNestedSeriesDefaults","colors","seriesColor","_createPlotArea","_modelOptions","skipSeries","selections","select","_selectStart","_selectEnd","_clickHandler","_click","_keydownHandler","_keydown","_focusHandler","_focus","_blurHandler","_blur","_mousedownHandler","_mousedown","_mouseleaveHandler","_mouseleave","_mouseover","_mouseout","_mousemove","throttle","removeObserver","_toDocumentCoordinates","_updateDrilldownPoint","_resetDrilldownPoint","_focusPoint","_startDrilldown","_focusLegendItem","p_","f_","Qg","Sy","F1","mm","_shouldAttachMouseMove","Zm","_hoveredPoint","_plotAreaHovered","_hasInactiveOpacity","_activeChartInstance","_applySeriesOpacity","_updateSeriesOpacity","_stopChartHandlers","_gestureDistance","_clearFocusedElement","suspendTracking","_zooming","resumeTracking","mousewheelZoom","scaleDelta","_drawingChartElement","_startNavigation","_suppressHover","_endNavigation","_mousewheelZoomRate","totalDelta","chartEvent","_getChartElement","eventTarget","coordinates","_elementPadding","_padding","inverseTransform","elementScale","parentElement","parentMatrix","multiplyCopy","invert","drawingElement","sharedTooltip","_startHover","_trackSharedTooltip","_propagateClick","handlingTap","_isLegendBeforeChart","legendPosition","_preventInitialPointFocus","_focusFirstLegendItem","_focusFirstPoint","focusedElement","isLegendBeforeChart","_navigatePoints","_navigateLegend","_hideTooltip","focusState","moveFocus","focusedPoint","_displayTooltip","itemsLength","cycleFunc","focusedLegendItemIndex","_hasFocus","ownerDocument","activeElement","_focusChart","omitHighlight","_setElementActiveDescendant","_showSeriesInactiveOpacity","_showInactiveOpacity","_clearElementActiveDescendant","_pseudoFocusedElement","_createPseudoFocusedElement","pseudoElement","checked","_hideInactiveOpacity","activePoint","_activePoint","_updateHoveredPoint","_displayInactiveOpacity","multipleSeries","highlightPoints","chartInstance","_chartInstanceFromPoint","inactivePoints","_getInactivePoints","_getInactiveOpacityForSeries","_getAllPointsOfType","hoveredPoint","drilldown","_drilldownState","resetOpacity","currSeries","defaultOpacity","_getDefaultOpacityForSeries","inactiveOpacity","activeSeries","hasDefaultInactiveOpacity","hasInactiveOpacity","_mouseMoveTrackHandler","_mouseMoveTracking","seriesPoint","_trackCrosshairs","overPlotArea","_tooltipCategoryIx","_sharedHighlight","pointArgs","hoverArgs","hideElements","keepTooltipOpen","_deferRedraw","_clearRedrawTimeout","_redrawTimeout","autoBind","bindCategoryAxisFromSeries","uniqueCategories","seriesOnAxis","hasCategoryBinding","seriesWithData","categorySamples","firstCategory","_isBindable","transitionsState","updateMouseMoveHandler","applyOptions","setOptions","setDirection","setIntlService","noTransitionsRedraw","column","rangeColumn","verticalLine","pie","donut","verticalArea","scatter","scatterLine","ohlc","boxPlot","verticalBullet","polarArea","polarLine","radarArea","radarLine","waterfall","DATA_FIELDS","fieldValue","originalValue","sparkline_shared_tooltip","ChartSharedTooltip","NO_CROSSHAIR","wrapNumber","Sparkline","_initialWidth","childNodes","stage","displayState","_autoWidth","inline","_calculateWidth","currentChart","pointsCount","pointWidth","normalizeOptions","sparkline","fade_out_animation","FadeOutAnimation","_initialOpacity","div","NavigatorHint","chartPadding","scroll","scrollWidth","minPos","clearHideTimeout","_visible","visibility","tooltipStyle","marginTop","borderTopWidth","_hideTimeout","_hideAnimation","hideDelay","navigator_hint","NAVIGATOR_PANE","NAVIGATOR_AXIS","DEFAULT_PANE","Navigator","hint","chartObserver","Qd","Xh","Bd","clean","_redrawSelf","initSelection","mainAxis","axisClone","ClonedObject","selectStart","selectEnd","filterAxes","silent","redrawSlaves","slavePanes","_drag","navigatorAxis","naviRange","inNavigator","liveDrag","showHint","_dragEnd","readSelection","_zoom","fromIx","toIx","_zoomEnd","__navi","naviOptions","attachAxes","attachSeries","valueAxes","justifyAxis","_collapse","autoBindElements","navigatorSeries","dateField","stock_navigator","StockChart","stockDefaults","destroyNavigator","_fullRedraw","_dirty","partialRedraw","dirty","_seriesCount","copyNavigatorCategories","stock_chart","Arc","paintable","measurable","withGeometry","GeometryArc","_bbox","_geometry","rawBBox","curvePoints","curveTo","_containsPoint","_isOnPath","ARROW_POINTER","BAR_POINTER","DEGREE","LINEAR","RADIAL_POINTER","RADIAL_RANGE_POINTER","getOrigin","setOrigin","setSize","buildLabelElement","geo","styleGeometry","styleBox","getRange","Surface","Gauge","contextService","pointerValue","pointers","_setValueOptions","_draw","_visuals","allValues","arrayValues","_toggleTransitions","_surfaceSize","gaugeArea","_createGaugeArea","_createModel","_gaugeAreaMargin","currentTheme","areaGeometry","_surfaceElement","_getSize","defaultSize","_defaultSize","gauge","renderAxisTick","tickRenderOptions","renderTicks","tickGroup","LinearScale","renderLabels","scaleLine","renderLine","scaleTicks","renderRanges","linePath","linear_scale","Pointer","_oldValue","repaint","LinearPointer","trackSize","pointerHalfSize","pointerBox","pointerRangeBox","trackBox","getElementOptions","_margin","linear_pointer","ArrowLinearPointerAnimation","toScale","translateX","translateY","arrow_linear_pointer_animation","arrow_linear_pointer","ArrowLinearPointer","pointerShape","elementOptions","BarLinearPointerAnimation","newPoints","oldPoints","speed","bar_linear_pointer_animation","bar_linear_pointer","BarLinearPointer","minSlot","sizeAxis","p4","pointerPath","oldShape","renderTrack","LinearGauge","bboxX","bboxY","_shrinkScaleWidth","_getBox","_alignElements","_shrinkElements","_buildVisual","scaleElements","plotAreaBox","scaleBox","overflow","linear_gauge","drawTicks","tickAngles","getRadiusX","tickStart","tickEnd","rangeSegment","RadialScale","renderArc","labelElements","repositionRanges","hasRanges","ticksSize","labelsGroup","rangeDistance","isInside","hasLabelElements","setRadiusX","setRadiusY","paddingWidth","paddingHeight","labelPos","labelElement","prevLabelPos","labelTransform","union","rangeRadius","getRangeRadius","rangeSegments","segmentsCount","createRange","rangeGeom","rangePlaceholderColor","tickArc","majorTickAngles","allTicks","_tickDifference","minorTickAngles","normalizeTickAngles","tickCount","repositionTicks","minor","newPoint","xDiff","yDiff","radial_scale","RadialPointerAnimation","newAngle","oldAngle","radial_pointer_animation","Circle","RadialPointer","setAngle","_renderNeedle","_renderCap","capSize","cap","needleColor","needlePath","capColor","arrow","radial_pointer","RadialGauge","_initialPlotArea","fitScale","alignScale","_buildPointers","getDiff","midDiff","oldDiff","staleFlag","getPlotBox","scaleArc","plotBbox","plotBox","plotBoxCenter","paddingX","paddingY","pointersArr","radial_gauge","ArcScale","rangeLineCap","placeholderRangeAngle","setEndAngle","setStartAngle","addRange","arc_scale","RangePointerAnimation","startColor","currentColor","range_pointer_animation","RangePointer","rangeColor","range_pointer","arc_gauge","ArcGauge","centerLabelPosition","yLimit","circular_gauge","CircularGauge","Encoding","initProperties","quietZoneLength","addQuietZone","encode","convertedValue","initValue","addData","pattern","invalidCharacterError","character","addCheckSum","Code11","characterMap","cCheckSumTotal","kCheckSumTotal","kCheckSumMinLength","checkSumMod","DASH_VALUE","DASH","STOP","addPattern","addCharacter","setBaseUnit","cValue","getWeightedSum","checksum","kValue","weightedSum","weightedValue","Code39Base","minBaseUnitLength","addStart","pushCheckSum","addStop","prepareValues","characterData","addBase","Code39","minRatio","maxRatio","gapWidth","splitCharacter","patternMappings","W","A","C","D","E","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","Z","$","patternString","minBaseUnit","minHeight","getBaseUnit","getBaseWidth","addCharacterGap","Code39ExtendedBase","addExtended","patterns","extendedMappings","patternIndex","shiftCharacters","dataCharacter","specialAsciiCodes","shiftValuesAsciiCodes","Code93","SHIFT0","SHIFT1","SHIFT2","SHIFT3","TERMINATION_BAR","checkSumLength","charData","checkValues","_getCheckValues","_findCharacterByValue","wightedSum","numberRegex","alphanumericRegex","State128","encoding","is","isCode","State128AB","_initMoves","FNC4","SHIFT","encodingState","_moves","numberMatch","_moveFNC","_shiftState","_moveState","fnc","previousState","shifted","states128","next4","getSubstring","_initSubStates","dependentStates","subState","_getSubState","_initSubState","_pushStart","pushData","subStates","_getAll","FNC1","startState","startAI","endAI","applicationIdentifiers","multiKey","nextStart","separatorLength","regexSeparators","getBySeparator","getByLength","ai","validate","applicationIdentifier","getApplicationIdentifier","unsupportedAIError","Code128Base","_initStates","checkSum","getNextState","temp","MsiBase","checkSumType","checkSums","startStopLength","Modulo10","evenSum","oddSum","odd","Modulo11","weight","checkValue","Modulo11Modulo10","mod11Value","Modulo10Modulo10","mod10Value","Ean13","keyTable","digits","valueAsString","calculateChecksum","leftKey","leftPart","rightPart","addPieces","addSide","arrToAdd","limitedHeight","even","Encodings","code11","code39","code39extended","Code39Extended","code93","code93extended","Code93Extended","characterByValue","code128","Code128","code128a","Code128a","code128b","Code128b","code128c","Code128c","CodeGS1128","msimod10","MsiMod10","msimod11","MsiMod11","msimod1010","MsiMod1010","msimod1110","MsiMod1110","postnet","Postnet","VALID_CODE_LENGTHS","DIGIT_SEPARATOR","baseHeight","ean8","Ean8","ean13","surfaceSize","surfaceType","clientWidth","clientHeight","Barcode","errorHandler","onError","_setOptions","_initSurfaceElement","_createSurface","_destroySurfaceElement","textMargin","encodedValue","textToDisplay","textHeight","barHeight","_getBackground","_getText","_bandsGroup","_getBands","stepX","patternItem","_textbox","splitInto","chunkLength","toBitsString","bitString","toDecimal","FreeCellVisitor","startColumn","getNextCell","getNextRemainderCell","EncodingResult","dataString","IsoEncoder","getEncodingResult","inputString","errorCorrectionLevel","modes","getModes","previousMode","chooseMode","initMinNumericBeforeAlpha","initMinNumericBeforeByte","initMinAlphaBeforeByte","modeString","nextMode","minNumericBeforeAlpha","minNumericBeforeByte","minAlphaBeforeByte","dataCodewordsCount","getDataCodewordsCount","DataModeInstances","getStringBitsLength","getVersion","getDataString","QRDataMode","modeIndicator","bitsInCharacterCount","getVersionIndex","getBitsCharacterCount","getModeCountString","NUMERIC","ALPHA_NUMERIC","BYTE","U0","NumericQRDataMode","inputLength","mod3","Ny","AlphaNumericQRDataMode","characters","x3","ByteQRDataMode","Utf8Encoder","encodingMode","utfBOM","initialModeCountStringLength","encodeCharacter","bytesCount","getBytesCount","bc","significantOnes","VersionsCodewordsInformation","totalDataCodewords","errorCodewordsPerBlock","powersOfTwo","powersOfTwoResult","irregularAlignmentPatternsStartDistance","finderPattern","alignmentPattern","errorCorrectionPatterns","paddingCodewords","finderPatternValue","maskPatternConditions","alphaPattern","alphaRegex","alphaNumericRegex","byteRegex","generatorPolynomials","fillFunctionCell","matrices","bit","fillDataCell","xorPolynomials","multiplyPolynomials","multiplyByConstant","polynomial","generateErrorCodewords","errorCodewordsCount","generator","generatorPolynomial","errorCodewords","numeric","numericMatch","alphaMatch","alphaNumeric","alphaNumericMatch","encodeBCH","codeLength","generatorNumber","polynomialLength","valueNumber","valueString","dividePolynomials","numberX","numberY","yLength","xLength","getNumberAt","addFormatInformation","addVersionInformation","quotient","mod","modules","addCentricPattern","addFinderSeparator","nextX","nextY","scoreFinderPatternOccurance","scores","rowColumn","scoreAdjacentSameBits","previousBits","adjacentBits","calculateDarkModulesRatioScore","darkModules","percent","mod5","previous","generatePowersOfTwo","generateGeneratorPolynomials","crossPattern","squarePattern","QRCode","elementWidth","elementHeight","quietZoneSize","dataSize","contentSize","encodeData","encoder","createQRCodeDataEncoder","encodingResult","versionInformation","padDataString","initialDataString","dataBitsCount","terminatorIndex","paddingCodewordIndex","terminator","blocks","getBlocks","dataStream","versionCodewordsInformation","dataBlock","blockCodewordsCount","groupBlocksCount","messagePolynomial","codeword","codewordStart","dataBlocks","errorBlocks","versionGroups","blockIdx","codewordIdx","initMatrices","addFinderPatterns","addAlignmentPatterns","startDistance","addTimingFunctions","fillData","block","cell","cellVisitor","scoreMaskMatrixes","adjacentSameBits","modulesLength","rowIndex","columnIndex","matrixIndex","optimalMatrix","encodeVersionInformation","encodeFormatInformation","encodedString","errorCorrection","_calculateBaseUnit","_renderBackground","_renderMatrix","_hasCustomLogo","_renderLogo","_isSwiss","_renderSwissCode","qrSize","imageRect","logoSize","_getLogoSize","logoUrl","imageUrl","crossSize","crossOffset","_renderShape","matrixSize","defautLogoSize","datums","WGS84","toSquare","math","atan","tan","lat","lng","DISTANCE_ITERATIONS","DISTANCE_CONVERGENCE","DISTANCE_PRECISION","FORMAT","toArray","precision","dest","datum","greatCircleTo","initialBearing","initialDatum","bearing","fromLat","fromLng","dToR","initialDest","azimuthFrom","azimuthTo","prevLambda","sinLambda","cosLambda","sino","cosA2","coso","cos2om","sigma","U1","sinU1","cosU1","U2","sinU2","cosU2","lambda","converged","sinA","u2","deltao","fromLngLat","lngAndLat","fromLatLng","PI_DIV_2","PI_DIV_4","DEG_TO_RAD","Mercator","_initOptions","MAX_LNG","MAX_LAT","INVERSE_ITERATIONS","INVERSE_CONVERGENCE","forward","clamp","proj","lng0","centralMeridian","_projectLat","ecc","ts","con","_inverseY","ecch","phi","dphi","SphericalMercator","EPSG3857","_proj","_tm","_itm","toLocation","convertToHtml","removeChildren","prepend","originElement","toHyphens","toPixels","setDefaultEvents","renderPos","Attribution","extent","_extent","newItem","_itemText","appendHtml","showElement","hideElement","inZoomLevel","_inZoomLevel","minZoom","maxZoom","inArea","_inArea","newMin","newMax","directionsMap","createButton","navigateUpButton","icons","navigateRightlButton","navigateDownButton","navigateLeftButton","_keyroot","_tabindex","targetElement","TABINDEX","tabindex","_pan","panStep","ZoomControl","zoomInButton","zoomOutButton","_change","zoomStep","Extent","initialNw","initialSe","nw","se","containsAny","locs","include","includeAll","ne","sw","World","CENTER_CHANGE","widgetService","_anchor","documentPoint","Layer","scrollElement","_beforeReset","_reset","_panEnd","_activate","_updateAttribution","_deactivate","_applyExtent","_setVisibility","matchMinZoom","matchMaxZoom","inside","attribution","_readData","_hasData","_layerIndex","layers","compileTemplate","renderSize","newSize","TileLayer","subdomains","viewType","_viewType","_view","locationToLayer","viewOrigin","_updateView","TileView","extentToPoint","tileSize","urlTemplate","pool","TilePool","_center","_viewOrigin","pointToTileIndex","tileCount","firstTileIndex","indexToPoint","subdomainText","subdomainIndex","tile","createTile","currentIndex","tileOptions","wrapIndex","subdomain","errorUrlTemplate","boundary","wrapValue","wrappedValue","ImageTile","maxWidth","maxHeight","urlOptions","errorUrl","z","quadkey","q","_remove","_create","maxDist","CHANGE","TapCapture","domElement","_release","attachEvent","captureNext","cancelCapture","PaneDimension","forcedEnabled","scrollSize","makeVirtual","virtual","_virtualMin","_virtualMax","virtualSize","outOfBounds","forceEnabled","getTotal","rescale","scaledTotal","minScale","centerOffset","PaneDimensions","forcedMinScale","maxScale","newScale","centerCoordinates","PaneAxis","dimension","movable","dragMove","dragDelta","resistance","translateAxis","elastic","dimensions","gesture","closestAnchor","previousGesture","previousCenter","scaleWith","tagName","Movable","transformOrigin","_saveCoordinates","by","scaleTo","moveAxis","newCoordinates","ShapeLayer","_initRoot","_markers","_handler","_mouseenter","_translateSurface","_load","_root","geometries","_clearMarkers","_loader","GeoJsonLoader","shapeCreated","cancelled","renderPointsAsMarkers","layer","featureCreated","_panning","locationToView","_eventArgs","layerIndex","shapeIndex","_tooltipAnchor","_tooltipContext","eventOffset","_panHandler","panHandler","locator","unwrap","_loadGeometryTo","_featureCreated","_shapeCreated","_loadPolygon","_setLineFill","_loadPoint","_loadShape","rings","_buildPolygon","viewToLocation","BubbleLayer","valueField","newData","scaleType","_scaleType","locationField","symbol","_createSymbol","_drawSymbol","Scales","Symbols","SqrtScale","domainRange","_ratio","square","MOUSE_ENTER","MOUSE_LEAVE","MARKER_CLASS_NAME","MARKER_CLASS","MarkerLayer","_markerClickHandler","_markerClick","_addOne","Marker","addTo","titleField","_kendoNode","markerIndex","_markerMouseEnter","_createMarkerEventArgs","_markerMouseLeave","_mouseEnterHandler","_mouseEnter","_mouseLeaveHandler","_mouseLeave","templateHtml","_compileTemplate","templateElement","svgIcon","attributes","_createEventArgs","paramName","useWithBlock","requestAnimationFrame","_tickProxy","_tick","onEnd","timePassed","initial","_easeProxy","ease","easeOutExpo","ZoomSnapBack","tapCapture","DragInertia","freeze","_moveTo","paneAxis","_snapBack","velocityMultiplier","friction","AnimatedScroller","_updateCoordinates","setCoordinates","setCallback","ScrollBar","scrollMovable","alwaysVisible","paneSize","sizeRatio","Scroller","hasScrolling","hasNativeScrolling","_native","useNative","scrollHeader","fixedContainer","wrapInner","inner","avoidScrolling","velocityX","velocityY","horizontalSwipe","verticalSwipe","zoomSnapBack","animatedScroller","scrollTo","scrollTop","scrollLeft","mousewheelScrolling","_wheelScrollHandler","_wheelScroll","pulled","_initAxis","_wheelEnd","_wheel","_wheelY","pullToRefresh","_initPullToRefresh","_wheelTimeout","deltaY","wheelDeltaY","VERTICAL_AXIS","scrollHeight","contentResized","_scale","zoomOut","enable","animatedScrollTo","pullHandled","_paneChange","scrollBar","visibleScrollHints","pullOffset","pullTemplate","releaseTemplate","refreshTemplate","map_service","MapService","MARKER","LOCATION","layersMap","QC","_init","scroller","zoomControl","markerLayer","initObserver","initServices","_notifyObserver","crs","_getOrigin","_initScroller","_initMarkers","_initControls","_initLayers","mousewheelThrottled","zoomLevel","_setExtent","_getExtent","wraparound","locationObject","_layerSize","layerToLocation","pointObject","translateWith","pointResult","eventToView","eventToLayer","eventToLocation","viewSize","_setOrigin","originLocation","_origin","invalidate","newExtent","raw","layerWidth","layerHeight","_zoomAround","pivot","_createAttribution","_createNavigator","_createZoomControl","_createControlElement","defaultPosition","posSelector","_navigatorPan","_navigatorCenter","bounds","_virtualSize","_scrollEnd","_zoomControlChange","_scroll","_scaleStart","_doubleTap","defs","_createLayer","layerDefaults","layerOptions","markerDefaults","layerConstructor","_scrollOffset","_panComplete","_panEndTimestamp","_scaleToZoom","gestureCenter","centerLocation","originPoint","tiles","_resetScroller","xBounds","yBounds","_renderLayers","newZoom","toZoom","fromZoom","mapFn","curr","sortAsc","y0","sortSource","sortTarget","sortLinks","targetLinks","link","sourceLinks","calcLayer","maxDepth","Sankey","nodesOptions","links","nodeWidth","nodePadding","targetColumnIndex","loops","autoLayout","calculate","connectLinksToNodes","calculateNodeValues","circularLinks","calculateNodeHeights","columns","calculateNodeDepths","calculateNodeColumns","calculateNodeBreadths","applyNodesOffset","calculateLinkBreadths","nodesMap","sourceId","targetId","currDepth","currentNodes","nodesLength","currentHeight","eachNode","columnWidth","x0","kSize","uncurlLinksToRight","uncurlLinksToLeft","targetTopPos","arrangeNodesVertically","sourceTopPos","arrangeUp","arrangeDown","yPos","currentY","calculateSankey","rotationDirection","p1x","p1y","p2x","p2y","p3x","p3y","expression1","expression2","intersect","link1","link2","f1","f2","f3","f4","SankeyElement","Node","getRect","navigatable","nodeColor","nodeColors","resolveNodeOptions","nodeOptions","bezierPoint","t1t1","tt","Link","xC","calculateControlPointsOffsetX","upperCurveMiddleLine","actualWidth","distanceToLine","y3","upperNarrowness","angelBetweenTwoLines","line1","line2","x4","y4","BEFORE","AFTER","diagramMinX","diagramMaxX","nodeBox","textSizeBox","textY","labelAfterLastNode","labelBeforeFirstNode","side","textOrigin","textRect","resolveLabelOptions","drawingRect","ChartTitle","sortData","sortDataRTL","areaBackground","areaOpacity","ChartLegend","LINK","NODE","_initResizeObserver","_initNavigation","_destroyResizeObserver","_onDownHandler","disableKeyboardNavigation","_onDown","firstFocusableNode","ResizeObserver","contentRect","_resizeObserver","mouseenter","mouseleave","mousemove","setLinksOpacity","linksVisuals","setOpacity","linkOptions","setLinksInactivityOpacity","linkValue","ev","targetType","isLink","isLegendItem","highlightLinks","nodeVisual","nodesVisuals","nodeName","tooltipTimeOut","tooltipShown","followPointer","tooltipElType","mouseEvent","tooltipData","popupOffset","popupAlign","nodeValue","sameNode","_focusNode","sameLink","_focusLink","node1","node2","_cleanFocusHighlight","linkData","_focusNextNode","columnNodes","nodeIndex","nextNode","_focusNextLink","sourceLinkIndex","targetLinkIndex","nextLink","_focusSourceNode","sourceNode","_focusTargetNode","targetNode","_focusSourceLink","_focusTargetLink","_skipFocusHighlight","onArrowRight","onArrowLeft","onEscape","onArrowDown","onArrowUp","disconnect","titleBox","calcOptions","sankeyOptions","disableAutoLayout","sankeyBox","legendArea","titleHeight","calculatedNodes","sankey","Infinity","nodeEl","nodeOps","nodeInstance","labelVisual","permutation","columnsLength","crosses","linksLength","lNext","crossesValue","minCrosses","bestResult","sankeyContext","startX","toRtl","newColumn","titleVisual","visualNodes","focusHighlights","sortedLinks","resolvedOptions","resolveLinkOptions","colorType","linkInstance","linkVisual","textOps","legendVisual","createSankeyData","linksMap","existingValue","nodesId","ActionTypes","stacked","categoryAxisX","valueAxisY","seriesChange","areaMarginLeft","areaMarginRight","areaMarginTop","areaMarginBottom","titleText","titleFontName","titleFontSize","titleColor","subtitleText","subtitleFontName","subtitleFontSize","subtitleColor","seriesLabel","legendVisible","legendFontName","legendFontSize","legendColor","categoryAxisTitleText","categoryAxisTitleFontName","categoryAxisTitleFontSize","categoryAxisTitleColor","categoryAxisLabelsFontName","categoryAxisLabelsFontSize","categoryAxisLabelsColor","categoryAxisLabelsRotation","categoryAxisReverseOrder","valueAxisTitleText","valueAxisTitleFontName","valueAxisTitleFontSize","valueAxisTitleColor","valueAxisLabelsFormat","valueAxisLabelsFontName","valueAxisLabelsFontSize","valueAxisLabelsColor","valueAxisLabelsRotation","labelSizeDefault","fontNames","fontFamily","fontNameDefault","scatterType","categoricalTypes","scatterSeries","isCategorical","categoryTypes","valueTypes","axesDefinitions","getFont","parseFont","spaceIndex","updateFontName","fontName","currentFont","updateFontSize","fontSize","defaultFontName","recordWithValues","structuredClone","getCategoryColumnIndex","categoryDef","candidates","sampleRecord","record","getValueColumnIndexes","valuesDef","emptyState","initialSeries","categoryValueChartState","chartDef","firstRecord","catIndex","valuesIndexes","valuesColumn","valuesResult","pieChartState","categoriesAxis","flatData","createState","mergeStates","windowTitle","exportButton","exportPDFButton","exportSVGButton","exportPNGButton","tabChart","tabData","tabFormat","barChartBar","barChartStackedBar","barChart100StackedBar","pieChartPie","columnChart","columnChartColumn","columnChartStackedColumn","columnChart100StackedColumn","lineChartLine","lineChartStackedLine","lineChart100StackedLine","scatterChartScatter","configuration","configurationCategoryAxis","configurationXAxis","configurationValueAxis","configurationSeries","configurationSeriesAdd","formatChartArea","formatChartAreaMargins","formatChartAreaMarginsAuto","formatChartAreaMarginsLeft","formatChartAreaMarginsRight","formatChartAreaMarginsTop","formatChartAreaMarginsBottom","formatChartAreaBackground","formatChartAreaBackgroundColor","formatTitle","formatTitleApplyTo","formatTitleChartTitle","formatTitleChartSubtitle","formatTitleLabel","formatTitleFont","formatTitleFontPlaceholder","formatTitleSize","formatTitleSizePlaceholder","formatTitleColor","formatSeries","formatSeriesApplyTo","formatSeriesAllSeries","formatSeriesColor","formatSeriesShowLabels","formatLegend","formatLegendShowLegend","formatLegendFont","formatLegendFontPlaceholder","formatLegendSize","formatLegendSizePlaceholder","formatLegendColor","formatLegendPosition","formatLegendPositionTop","formatLegendPositionBottom","formatLegendPositionLeft","formatLegendPositionRight","formatCategoryAxis","formatXAxis","formatCategoryAxisTitle","formatCategoryAxisTitlePlaceholder","formatCategoryAxisTitleFont","formatCategoryAxisTitleFontPlaceholder","formatCategoryAxisTitleSize","formatCategoryAxisTitleSizePlaceholder","formatCategoryAxisTitleColor","formatCategoryAxisLabels","formatCategoryAxisLabelsFont","formatCategoryAxisLabelsFontPlaceholder","formatCategoryAxisLabelsSize","formatCategoryAxisLabelsSizePlaceholder","formatCategoryAxisLabelsColor","formatCategoryAxisLabelsRotation","formatCategoryAxisLabelsRotationAuto","formatCategoryAxisLabelsReverseOrder","formatValueAxis","formatYAxis","formatValueAxisTitle","formatValueAxisTitlePlaceholder","formatValueAxisTitleFont","formatValueAxisTitleFontPlaceholder","formatValueAxisTitleSize","formatValueAxisTitleSizePlaceholder","formatValueAxisTitleColor","formatValueAxisLabels","formatValueAxisLabelsFormat","formatValueAxisLabelsFormatText","formatValueAxisLabelsFormatNumber","formatValueAxisLabelsFormatCurrency","formatValueAxisLabelsFormatPercent","formatValueAxisLabelsFont","formatValueAxisLabelsFontPlaceholder","formatValueAxisLabelsSize","formatValueAxisLabelsSizePlaceholder","formatValueAxisLabelsColor","formatValueAxisLabelsRotation","formatValueAxisLabelsRotationAuto","SANS","getWizardDataFromDataRows","dataRows","dataColumns","createInitialState","defaultState","fontSizes","SANS11","SANS12","SANS16","TRANSPARENT","lineSeriesLegendItem","areaSeriesLegendItem","areaNoMarkersSeriesLegendItem","areaSeries","rangeAreaSeries","boxPlotSeries","outliersField","meanField","bulletSeries","lineSeries","radarAreaSeries","radarLineSeries","waterfallSeries","funnelSeries","pyramidSeries","trendlineSeriesDefaults","rangeArea","verticalRangeArea","barSeries","bubbleSeries","candlestickSeries","columnSeries","heatmap","heatmapSeries","pieSeries","donutSeries","funnel","pyramid","horizontalWaterfall","ohlcSeries","radarColumn","radarColumnSeries","polarScatter","polarScatterSeries","rangeBar","rangeBarSeries","rangeColumnSeries","scatterLineSeries","verticalBoxPlot","baseTheme","isWindowAvailable","meego","webos","blackberry","ffos","desktopBrowserRxs","safari","mozilla","mobileBrowserRxs","omini","omobile","firefox","mobilesafari","chrome","testRx","rxs","rx","detectMobileOS","minorVersion","majorVersion","flatVersion","cordova","PhoneGap","appMode","detectDesktopBrowser","browserInfo","documentMode","msPointers","MSPointerEvent","PointerEvent","touchEnabled","fieldList","_match","setterCache","nextField","arrays","isBlank","isNumeric","isCompositeFilterDescriptor","filters","ifElse","compose","reduceRight","pairwise","accessor","isNotEmptyArray","runOrEmpty","formatDescriptors","formatter","sanitizeDateLiterals","removeAfterDot","directionFormatter","formatSort","formatGroup","formatAggregates","aggregateFormatter","formatDateValue","UTC","transformSkip","calcPage","transformTake","transformGroup","transformSort","transformAggregates","filterFormatter","isNullOrEmptyString","isNotNullOrEmptyString","operator","formatDate","ignoreCase","g1","toCamelCase","convert","mapper","translateAggregate","translateAggregates","translateGroup","hasSubgroups","Member","member","HasSubgroups","compare","localeCompare","compareDesc","descriptorAsFunc","descriptor","isTransformerResult","__value","identity","aggregateBy","descriptors","transformers","expandAggregates","functions","fieldAccessor","aggregateName","aggregateAccessor","fieldAggregates","aggregateFunction","calc","NEGATIVE_INFINITY","POSITIVE_INFINITY","aggregatesFuncs","agg","aggregatesCombinator","normalizeOperator","equal","equalto","ge","greater","greaterthan","greaterthanequal","isempty","isequalto","isgreaterthan","isgreaterthanorequalto","islessthan","islessthanorequalto","isnotempty","isnotequalto","isnull","le","less","lessthan","lessthanequal","notequal","notequals","notequalto","notsubstringof","operatorMap","normalizeFilters","logic","normalizeDescriptor","or","and","operatorsMap","doesnotcontain","doesnotendwith","doesnotstartwith","endswith","eq","gt","gte","isnotnull","lt","lte","neq","startswith","dateRegExp","transformCompositeFilter","combiner","transformFilter","itemProp","typedGetter","convertValue","op","compileFilter","filterBy","normalizeGroups","groupBy","originalData","groupValue","valueToString","__position","groupCombinator","aggregateResult","filteredData","orderBy","comparer","composeSortDescriptors","skipCount","takeCount","filterDescriptor","sortDescriptors","hasFilters","hasGroups","counter","reduced","touchRegExp","normalizeEvent","changedTouches","isTouch","Draggable","supportPointerEvent","mouseOnly","_pressHandler","_dragHandler","_releaseHandler","_ignoreMouse","_mouseOnly","_touchstart","_touchmove","_touchend","_restoreMouse","_mouseup","_pointerdown","isPrimary","_pointermove","_pointerup","cancelDrag","bindTo","_unbindFromCurrent","_bindToCurrent","_usePointers","default","exportImage","cors","exportRoot","surfaceOptions","node_map","BaseNode","srcElement","initClip","clearClip","setClip","beginPath","NODE_MAP","renderPoints","optionsChange","setTransform","loadElements","childNode","insertAt","globalAlpha","opactity","GroupNode","traversable","renderTo","restore","group_node","FRAME_DELAY","RootNode","canvas","getContext","invalidateHandler","_invalidate","_rescale","_devicePixelRatio","fixedScale","clearRect","root_node","quad_root","QuadRoot","shapes","_add","_quadNode","pointShapes","QuadNode","inBounds","nodeRect","nodeBottomRight","inserted","_initChildren","quad_node","ROOT_SIZE","zIndexComparer","_zIndex","shapes_quad_tree","ShapesQuadTree","initRoots","rootElements","pointShape","sectorRoot","assignZindex","levelWeight","parents","bboxChange","geometryChange","_insertShape","elementsArray","_insert","childrenChange","sectors","getSectors","inRoot","bottomX","bottomY","surface_cursor","SurfaceCursor","_resetCursor","_shapeCursor","_defaultCursor","_getCursor","_setCursor","renderPath","prevOut","bezierCurveTo","closePath","path_node","PathNode","setLineDash","setLineCap","setLineJoin","setFill","setStroke","hasFill","setGradientFill","PATTERN","setPatternFill","fillStyle","LinearGradient","createLinearGradient","RadialGradient","createRadialGradient","addGradientStops","addColorStop","toCssRgba","patternCanvas","patternContext","getWidth","getHeight","createPattern","strokeStyle","SOLID","dashArray","DASH_ARRAYS","mozDash","webkitLineDash","BUTT","ArcNode","CircleNode","Image","ImageNode","onLoad","img","drawImage","MultiPath","MultiPathNode","RectNode","ry","cornerRadius","TextNode","textAlign","strokeText","fillText","canvas_surface","BaseSurface","_template","firstElementChild","_rootElement","_mouseTrackHandler","_trackMouse","_searchTree","_cursor","_surfacePoint","loadingStates","resolveDataURL","toDataURL","promiseAll","_enableTracking","_suspendedTracking","currentShape","_currentShape","animationFrameProxy","wnd","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","__WEBPACK_DEFAULT_EXPORT__","formats","resolvedColor","resolveColor","re","normalizeByte","padDigit","namedColors","percBrightness","fromBytes","Bytes","fromRGB","RGB","fromHSV","HSV","fromHSL","HSL","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgrey","darkgreen","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","grey","green","greenyellow","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgrey","lightgreen","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","matchNamedColor","colorNames","regexp","BaseColor","toHSV","toRGB","toBytes","rgb","toDisplay","NaN","hex","hue2rgb","alphaFromHex","ampRegExp","ltRegExp","quoteRegExp","aposRegExp","gtRegExp","htmlEncode","matchUserAgent","browserRxs","lastExecTime","elapsed","removeSelf","dot","dash","longdash","dashdot","longdashdot","longdashdotdot","HasObservers","_suspended","_observerField","OptionsStore","_wrap","composite","_clear","wrapped","getArray","_visual","domNode","elementPadding","coord","closeOrLess","tolerance","accessors","withAccessors","setCenter","anticlockwise","xRotation","getCenter","radian","_arcInterval","subIntervalsCount","subIntervalAngle","transformation","nextAngle","_intervalCurvePoints","cp1","cp2","extremeAngles","ellipseExtremeAngles","extremeX","extremeY","currentAngleX","bboxStartAngle","currentAngleY","currentPoint","currentPointX","currentPointY","oldStart","p1Derivative","_derivativeAt","p2Derivative","angleRad","pointRadius","PRECISION","lineIntersection","s1x","s2x","s1y","s2y","nx","ny","calculateAngle","inAngleRange","largeArc","swipe","arcParameters","normalizeArcParameters","parameters","xT","yT","xt2","yt2","rx2","ry2","constT","cxT","cyT","uX","uY","vX","vY","acos","angleCosine","signEndAngle","_pointAt","lineIntersectionsCount","intersects","minX","maxX","minY","maxY","det","IDENTITY","scaleCopy","toMatrix","doRound","arg0","arg1","MAX_NUM","MIN_NUM","getCornerRadius","tr","br","bl","expandCopy","rectOuter","rectInner","rect1","rect2","isOutOfEndPoint","calculateCurveAt","toCubicPolynomial","ComplexNumber","real","cNumber","addConstant","negate","multiplyConstant","nthRoot","nthR","isReal","complex_number","solveCubicEquation","solveQuadraticEquation","squareRoot","b3a","z1","z2","hasRootsInRange","rootField","Segment","withPoints","bboxTo","toSegment","segmentAnchor","toSegmentAnchor","_curveBoundingBox","_lineBoundingBox","extremesX","_curveExtremesFor","extremesY","xLimits","arrayLimits","yLimits","_curveExtremes","_intersectionsTo","intersectionsCount","curveIntersectionsCount","rayIntersection","intersectsRay","_isOnCurveTo","endSegment","rotatedPoints","_isOnLineTo","_isOnPathTo","isOnPath","Transformation","_matrix","_optionsChange","stops_array","StopsArray","ElementsArray","optionsAccessor","GradientStop","withOptions","TBase","defineOptionsAccessors","gradient_stop","Gradient","_createStops","_userSpace","definitionId","removeStop","_radius","_fallbackFill","literals","arabicToRoman","roman","mergeSort","cmp","bi","GeometryRect","thing","KENDO_PSEUDO_ELEMENT","KENDO_BULLET_TYPE","IMAGE_CACHE","nodeInfo","microsoft","TextRect","_pdfRect","setCSS","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","cloneNodes","cloneNode","$el","$clone","selected","dive","canvases","kendo","jQuery","drawDOM","PDF","getFontFaces","styleSheets","doStylesheet","ss","rules","cssRules","addRules","styleSheet","family","splitProperty","getPropertyValue","bold","italic","findFonts","getFontURL","getXY","doOne","_clipbox","_stackingContext","_avoidLinks","avoidLinks","cls","renderElement","word","cacheImages","forceBreak","forcePageBreak","hasPaperSize","paperSize","paperOptions","pageWidth","pageHeight","hasMargin","pdf","multiPage","_ignoreMargin","handlePageBreaks","makeTemplate","setInnerHTML","pages","_destructive","adjust","doPageBreak","splitElement","page","makePage","pageNum","totalPages","keepTogether","tableLayout","bottomPadding","bottomBorder","saveAdjust","isFirst","breakAtElement","fall","fallsOnMargin","splitText","firstInParent","table","colgroup","thead","grid","gridHead","repeatHeaders","setStartBefore","setEndBefore","extractContents","preventBulletOnListItem","boxSizing","pageClassName","selectNodeContents","nextnode","findEOP","setEnd","endOffset","li","tfoot","ol","whenImagesAreActuallyLoaded","beforePageBreak","canceled","parseBackgroundImage","tok_linear_gradient","tok_percent","tok_length","tok_keyword","tok_angle","tok_whitespace","tok_popen","tok_pclose","tok_comma","tok_url","tok_content","cache1","cache2","tok","read","skip_ws","read_stop","utils_parseColor","read_linear_gradient","to1","to2","parseAngle","read_url","in_paren","in_string","looking_at","getFontHeight","measureText","incCounter","inc","resetCounter","doCounters","updateCounters","counterReset","counterIncrement","css","images","urls","alphaNumeral","updateClipbox","pseudoElt","defa","pleaseSetPropertyValue","important","getBorder","saveStyle","getBorderRadius","sanitizeRadius","getContentBox","innerBox","wt","wr","wb","wl","radiansToDegrees","setClipping","addArcToPath","adjustBorderRadiusForBox","rTL","rTR","rBR","rBL","tl_x","tl_y","tr_x","tr_y","br_x","br_y","bl_x","bl_y","elementRoundBox","bt","bb","pt","pr","pb","pl","roundBox","rTL0","rTR0","rBR0","rBL0","formatCounter","getCssText","_renderWithPseudoElements","_renderElement","fake","pseudo","place","psel","textContent","evalPseudoElementContent","displayCounter","getAllCounters","getCounter","saveClass","textOverflow","saveTextOverflow","backgroundImage","backgroundRepeat","backgroundPosition","backgroundOrigin","backgroundSize","currentStyle","innerbox","cells","getClientRects","adjustBoxes","tableBorderLeft","tableBorderTop","tableBox","firstCellBox","drawOneBox","_pdfLink","drawBullet","listStyleType","listStylePosition","_drawBullet","elementIndex","isFormField","clipit","maybeRenderWidget","attr","widgetInstance","exportDOMVisual","maybeRenderBullet","bulletType","rectSize","renderContents","drawEdge","Wtop","Wleft","Wright","rl","rr","drawRoundCorner","ri","drawOneBackground","drawBackgroundImage","gradientRenderer","pxlen","scaledAngle","implicit","img_width","img_height","renderBG","aspect_ratio","orgBox","rewX","rewY","repeatX","isLast","drawBackground","shouldDrawLeft","shouldDrawRight","inv","renderImage","zIndexSort","sb","za","zb","pa","xml","serializeSVG","serializer","XMLSerializer","serializeToString","DOMParser","parseFromString","encodeBase64","renderFormField","tag","renderCheckbox","whiteSpace","getSelectedOption","selectedOptions","selectedIndex","floats","positioned","renderText","floating","emptyClipbox","lineHeight","columnCount","textTransform","estimateLineLength","prevLineBottom","underline","lineThrough","overline","underlineOffset","forEachRect","decorateUnder","underlinePos","drawTextLine","doChunk","decorateOver","selectNode","clientRects","actuallyGetRangeBoundingRect","rectangles","origStart","setStart","findEOL","eol","startOffset","cc","indent","drawText","ypos","getTransform","groupInStackingContext","main","_dom_zIndex","pushNodeInfo","decoration","createsStackingContext","mmul","popNodeInfo","e1","d2","IDENTITY_MATRIX_HASH","combinedMatrix","currentTransform","matrixHash","_bboxCache","_matrixHash","strokeWidth","newFill","childrenField","setAccessor","getAccessor","defineAccessors","capitalized","geometryAccessor","defineGeometryAccessors","pointAccessor","definePointAccessors","HAS_TYPED_ARRAYS","BASE64","keyStr","decode","enc1","enc2","enc3","enc4","chr2","chr3","bytes","chr1","BinaryStream","ensure","writeString","writeByte","readByte","readShort","writeShort","readLong","writeLong","readLong_","writeLong_","times","reader","eof","readFixed","writeFixed","readShort_","writeShort_","readFixed_","writeFixed_","readString","nbytes","saveExcursion","writeBase64","base64","atob","ucs2encode","sortedKeys","Directory","scalerType","tableCount","searchRange","entrySelector","rangeShift","tables","readTable","Ctor","maxpow2","LN2","directoryLength","headOffset","tableData","adjustment","Table","definition","rawData","HeadTable","checkSumAdjustment","magicNumber","unitsPerEm","created","modified","yMin","yMax","macStyle","lowestRecPPEM","fontDirectionHint","indexToLocFormat","glyphDataFormat","LocaTable","offsetOf","lengthOf","needsLongFormat","HheaTable","ascent","descent","lineGap","advanceWidthMax","minLeftSideBearing","minRightSideBearing","xMaxExtent","caretSlopeRise","caretSlopeRun","caretOffset","metricDataFormat","numOfLongHorMetrics","MaxpTable","numGlyphs","maxPoints","maxContours","maxComponentPoints","maxComponentContours","maxZones","maxTwilightPoints","maxStorage","maxFunctionDefs","maxInstructionDefs","maxStackElements","maxSizeOfInstructions","maxComponentElements","maxComponentDepth","glyphIds","HmtxTable","hhea","advance","lsb","leftSideBearings","maxp","forGlyph","POSTSCRIPT_GLYPHS","GlyfTable","SimpleGlyph","compound","CompoundGlyph","idOffsets","old2new","glyphFor","loca","numberOfContours","glyph","glyphs","oldIds","NameTable","NameEntry","platformID","platformSpecificID","languageID","nameID","stringOffset","nameRecords","strings","rec","postscriptEntry","postscriptName","psName","strCount","strTable","list","PostTable","numberOfGlyphs","italicAngle","underlinePosition","underlineThickness","isFixedPitch","minMemType42","maxMemType42","minMemType1","maxMemType1","glyphNameIndex","indexes","CmapTable","CmapEntry","codeMap","segCount","endCode","startCode","idDelta","idRangeOffset","glyphId","ngroups","endCharCode","glyphCode","ncid2ogid","ogid2ngid","renderCharmap","codes","startCodes","endCodes","new_gid","charcode","segCountX2","deltas","rangeOffsets","startGlyph","OS2Table","averageCharWidth","weightClass","widthClass","ySubscriptXSize","ySubscriptYSize","ySubscriptXOffset","ySubscriptYOffset","ySuperscriptXSize","ySuperscriptYSize","ySuperscriptXOffset","ySuperscriptYOffset","yStrikeoutSize","yStrikeoutPosition","familyClass","panose","charRange","vendorID","firstCharIndex","lastCharIndex","winAscent","winDescent","codePageRange","xHeight","capHeight","defaultChar","breakChar","maxContext","subsetTag","Subfont","subset","unicodes","ngid2ogid","firstChar","nextGid","nextSubsetTag","ch","ucs2decode","string","extra","old_gid","cmap","encodeText","glyphsFor","glyf","old_gid_ids","lastChar","hmtx","os2","directory","cidToGidMap","cid","TTFFont","contents","numFonts","widthOfGlyph","makeSubset","deflate","pakoDeflate","NL","RESOURCE_COUNTER","PAPER_SIZE","a0","a3","a4","a5","a6","a7","a8","a9","a10","b0","b3","b4","b5","b6","b7","b8","b9","b10","c0","c3","c4","c5","c6","c7","c8","c9","c10","executive","folio","legal","tabloid","makeOutput","indentLevel","PDFValue","beforeRender","renderArray","renderDate","PDFDictionary","writeData","withIndent","getPaperOptions","getOption","unitsToPoints","FONT_CACHE","Helvetica","Courier","ZapfDingbats","clearImageCache","manyLoader","loadOne","loadFont","cont","loadBinary","base64ToUint8Array","atobUint8Array","createUint8Array","VBArray","responseBody","loadImages","jpegQuality","keepPNG","loadImage","bloburl","blob","FileReader","createObjectURL","readAsText","_onerror","_onload","_trycanvas","imgdata","getImageData","revokeObjectURL","hasAlpha","rawbytes","PDFRawImage","PDFJpegImage","readAsArrayBuffer","PDFDocument","objcount","objects","defval","attach","wrapObject","renderValue","renderFull","_offset","FONTS","IMAGES","GRAD_COL_FUNCTIONS","GRAD_OPC_FUNCTIONS","GRAD_COL","GRAD_OPC","catalog","PDFCatalog","pageTree","PDFPageTree","nameTree","JavaScript","Names","PDFString","JS","setPages","Keywords","Creator","CreationDate","addPage","contentWidth","contentHeight","PDFStream","Contents","Parent","MediaBox","PDFPage","_content","xrefOffset","zeropad","Root","PDFStandardFont","PDFFont","getImage","asStream","getOpacityGS","forStroke","_opacityGSCache","gs","CA","_resourceName","getUTCHours","getUTCMinutes","getUTCSeconds","mm2pt","cm2pt","cm","in2pt","inch","in","utf16be","txt","BOM","encodeUTF16BE","PDFHexString","PDFName","escape","compress","Filter","Length","pagesObj","Pages","Kids","Count","pageObj","SOF_CODES","colorSpace","bitsPerComponent","Subtype","Width","Height","BitsPerComponent","ColorSpace","Decode","mask","SMask","BaseFont","_pdf","_font","_sub","stemV","isSerif","isScript","getTextWidth","fontStream","Length1","FontName","FontBBox","Flags","StemV","ItalicAngle","Ascent","Descent","CapHeight","XHeight","FontFile2","charWidths","chunk","gid","descendant","CIDSystemInfo","Registry","Ordering","Supplement","FontDescriptor","FirstChar","LastChar","DW","CIDToGIDMap","_makeCidToGidMap","DescendantFonts","unimap","PDFToUnicodeCmap","unimapStream","ToUnicode","makeHash","cacheColorGradientFunction","g2","FunctionType","Range","C0","C1","cacheOpacityGradientFunction","_rcount","_textMode","_fontResources","_gsResources","_xResources","_patResources","_shResources","_opacity","_annotations","_fontSize","_contextStack","ProcSet","Resources","Font","ExtGState","XObject","Pattern","Shading","Annots","isIdentityMatrix","sx","sy","beginText","endText","_requireTextMode","_requireFont","setFont","setTextLeading","setTextRenderingMode","showText","requestedWidth","outputWidth","showTextNL","addLink","ll","_toPage","ur","Border","URI","setStrokeColor","setFillOpacity","setStrokeOpacity","setFillColor","oname","cacheGradient","isRadial","funcs","makeGradientFunctions","cur","prevColor","curColor","opacities","assemble","Functions","Bounds","Encode","shading","cacheColorGradient","ShadingType","Coords","Extend","cacheOpacityGradient","AIS","FormType","BBox","CS","s0","sname","setDashPattern","dashPhase","setLineWidth","setMitterLimit","mitterLimit","bezier","bezier1","bezier2","ellipse","_X","_Y","nop","clipStroke","closeStroke","fillStroke","unquote","parseFontDef","fontdef","variant","FONT_MAPPINGS","serif","monospace","zapfdingbats","fontAlias","defineFont","TEXT_RENDERING_MODE","fillAndStroke","invisible","fillAndClip","strokeAndClip","fillStrokeClip","GeometryCircle","parentTransform","elementTransform","elementMatrix","_clippedBBox","transformedPoint","_hasFill","_hasStroke","_splice","howMany","_clearObserver","_setObserver","_reparent","removeAt","elementsBoundingBox","elementsClippedBoundingBox","newParent","geometry_elements_array","GeometryElementsArray","WEIGHT","EXTREMUM_ALLOWED_DEVIATION","getControlPoints","getTangent","secondCP","firstCP","toLineParamaters","insertPosition","reflectionPoint","third","quadraticToCubicControlPoints","scaledPoint","shape_map","isRelative","arcTo","previousCommand","lastControlIn","cubicControlPoints","SEGMENT_REGEX","SPLIT_REGEX","segmentStart","segmentEnd","_addArcSegments","print","currentType","pathWidth","boundingBox","segmentBox","curveFromPoints","pointsToCurve","pointsIn","parsePath","pathInstance","parseParameters","ShapeMap","applyTransform","elementBoundingBox","ATTRIBUTE_MAP","renderData","allAttr","mapFill","removeAttr","mapStroke","transformChange","accessibilityOptionsChange","POINT_DIGITS","renderLinecap","renderDashType","renderStroke","renderAllAttr","renderFill","renderId","renderStyle","renderOpacity","renderAttr","renderDefinitions","renderTransform","renderClassName","renderRole","renderAriaLabel","renderAriaRoleDescription","renderAriaChecked","ENTITY_REGEX","decodeEntities","innerText","mapPosition","mapSource","renderPosition","renderSource","mapStyle","setY","renderContent","normalizeText","renderTextAnchor","renderPaintOrder","svg_surface","renderSVG","alignToScreen","ctm","getScreenCTM","attachTo","mouseover","mouseout","svgStyles","SVG_NS","SurfaceFactory","hasFeature","SVGSurface","CanvasSurface","preferred","surface_factory","es2015_surface","exportSVG","exportGroup","skipBaseHref","rootGroup","TRANSFORM","DefinitionMap","isDefinition","clearDefinitions","createDefinitions","setElement","updateDefinition","toggleAttr","allCss","mapTransform","hasDefinitions","definitionChange","refUrl","mapDefinitions","baseHref","hashIndex","gradient_stop_node","GradientStopNode","renderOffset","gradient_node","GradientNode","loadStops","stopNode","mapCoordinates","renderCoordinates","mapSpace","linear_gradient_node","LinearGradientNode","radial_gradient_node","RadialGradientNode","PatternNode","clip_node","ClipNode","renderClipRule","definition_node","DefinitionNode","definitionMap","addDefinitions","removeDefinitions","createDefinition","addDefinition","mapItem","removeDefinition","testFragment","testContainer","hasParser","namespaceURI","chartDoc","replaceStyleAttr","restoreStyleAttr","importedDoc","adoptNode","lru_cache","LRUCache","_length","_head","_tail","newer","older","baselineMarkerSize","defaultMeasureBox","TextMetrics","_cache","styleKey","cachedResult","baselineMarker","_baselineMarker","textStr","offsetTop","text_metrics","REPLACE_REGEX","SPACE","second","defId","pageYOffset","clientTop","pageXOffset","clientLeft","reComment","reDeclaration","reDoubleQuoted","reSingleQuoted","styleString","parseInlineStyles","styleObject","replaceQuoteEntities","styleAttr","getPixels","KEY_STR","utfInput","encodeUTF8","hi","encodeUnit","codeUnit","trail","formatRegExp","IntlError","formatMessage","flattenValues","flatten","formattedMessage","NoLocale","NoCurrency","NoSupplementalCurrency","NoCurrencyRegion","NoCurrencyDisplay","NoGMTInfo","NoWeekData","NoFirstDay","NoValidCurrency","NoDateFieldNames","cldr","en","_unicodeVersion","_cldrVersion","territory","numbers","symbols","decimal","percentSign","plusSign","minusSign","exponential","superscriptingExponent","perMille","infinity","nan","timeSeparator","approximatelySign","scientific","currencies","BGN","displayName","EUR","USD","localeCurrency","accounting","calendar","gmtFormat","gmtZeroFormat","dateTimeFormats","full","long","medium","short","availableFormats","Bh","Bhm","Bhms","EBhm","EBhms","Ed","Ehm","EHm","Ehms","EHms","Gy","GyMd","GyMMM","GyMMMd","GyMMMEd","hm","Hm","hms","Hms","hmsv","Hmsv","hmv","Hmv","Md","MEd","MMM","MMMd","MMMEd","MMMMd","yM","yMd","yMEd","yMMM","yMMMd","yMMMEd","yMMMM","yQQQ","yQQQQ","timeFormats","abbreviated","wide","quarters","dayPeriods","midnight","am","noon","pm","morning1","afternoon1","evening1","night1","eras","dateFields","era","quarter","week","weekOfMonth","dayOfYear","weekdayOfMonth","dayperiod","minute","millisecond","supplemental","likelySubtags","currencyData","US","_from","weekData","weekendStart","weekendEnd","getLocaleInfo","localeInfo","suffixes","fullName","localeFullName","availableLocaleInfo","DECIMAL","CURRENCY","ACCOUNTING","PERCENT","SCIENTIFIC","CURRENCY_PLACEHOLDER","PERCENT_PLACEHOLDER","NUMBER_PLACEHOLDER","LIST_SEPARATOR","GROUP_SEPARATOR","POINT","DEFAULT_LOCALE","LATIN_NUMBER_FORMATS","LATIN_NUMBER_SYMBOLS","patternRegExp","cldrCurrencyRegExp","getPatterns","getGroupSize","loadCurrencyUnitPatterns","currencyInfo","currencyFormats","loadNumbersInfo","standard","predefinedDatePatterns","YEAR_REGEX","SHORT_DATE","datePatterns","getCalendarNames","formatType","loadCalendarNames","localeCalendar","getEraNames","eraNameMap","eraAbbr","eraNames","eraNarrow","eraFormatName","loadCalendarDateFields","fieldInfo","getPredefinedFormat","pathIdx","loadCalendarPatterns","cldrCalendar","loadCalendarInfo","gregorian","localeTerritory","territoryFromName","likelyName","part","MILLISECOND","UNIT_PATTERN_ONE","UNIT_PATTERN_OTHER","placeholderPattern","extractUnit","loadUnits","loadLocale","fractions","dateFieldName","fieldNameInfo","nameType","dateFormatNames","standAlone","lowerNameType","formatNames","cloneLower","lowerArray","lowerObject","parseRangeDate","DEFAULT_CURRENCY_FRACTIONS","INVALID_CURRENCY_CODE","GLOBAL_CURRENCIES","getCurrencyInfo","throwIfNoValid","currencyDisplayInfo","lengthComparer","territoryCurrencyCode","regionCurrencies","regionCurrency","latestValidUntil","latestValidUntilRange","latestStillValid","latestStillValidDate","_tender","_to","validFrom","validTo","stillValidDate","DAYS_OF_WEEK","DEFAULT_TERRITORY","weekendRange","numberSymbols","isNegativeZero","formatCurrencySymbol","currencyDisplay","groupInteger","decimalIndex","groupSizes","integerEnd","integer","integerLength","newGroupSize","isCurrencyStyle","padString","MAX_PRECISION","decimals","DEFAULT_DECIMAL_ROUNDING","DEFAULT_PERCENT_ROUNDING","trailingZeroRegex","standardNumberFormat","isCurrency","minimumFractionDigits","toExponential","maximumFractionDigits","fractionOptions","currencyFractions","currencyFractionOptions","_digits","negativeZero","fraction","minimumIntegerDigits","useGrouping","currencyUnitPattern","applyPattern","literalRegExp","PLACEHOLDER","setStyleOptions","formatOptions","setFormatLiterals","quoteChar","literal","SHARP","trailingZerosRegExp","trailingPointRegExp","commaRegExp","placeholderIndex","index1","index2","customNumberFormat","setValueSpecificFormat","hasNegativeFormat","zeroFormat","isConstantFormat","constant","setGroupOptions","hasGroup","roundNumber","zeroIndex","sharpIndex","hasZero","hasSharp","trailingZeros","trimTrailingZeros","lastZero","trimRegex","setPlaceholderIndices","lastZeroIndex","applyCustomFormat","replacePlaceHolders","replacement","replaceStyleSymbols","replaceLiterals","standardFormatRegExp","standardFormatOptions","formatAndPrecision","exponentRegExp","nonBreakingSpaceRegExp","cleanNegativePattern","parseNumber","isPercent","cleanLiterals","negativeCurrency","currencyNumber","cleanCurrencyNumber","displays","currencyDisplays","cleanNumber","negativeSignIndex","divideBy100","strNumber","REMOVAL_PENALTY","ADDITION_PENALTY","LENGHT_DELTA","PENALTIES","VALUE_FORMAT_LENGTH","TIME_SPECIFIERS_REGEX","DATE_OPTIONS_MAP","specifier","getSpecifier","getHourSpecifier","STAND_ALONE_SPECIFIERS","specifiersRegex","resolvedFormats","getSpecifierRegex","skeletonSpecifiers","skeleton","findBestMatch","specifiers","specifiersLength","bestMatches","maxScore","currentFormat","bestMatch","matchSpecifier","datePattern","datetime","skeletonFromOptions","spcifier","repeat","skeletonFormat","timeStartIndex","dateSkeleton","timeSkeleton","cacheFormat","dateNameType","formatLength","fun","HOUR","ZONE","WEEKDAY","QUARTER","DATE_FIELD_MAP","dateFormatRegExp","formatMonth","formatQuarter","formatTimeZone","shortHours","optionalMinutes","localizedName","zZeroOffset","hoursMinutes","formatDayOfWeek","formatDayOfWeekIndex","firstDayIndex","dayIndex","formatters","convertTimeZone","fromOffset","toOffset","fromLocalOffset","offsetDate","toLocalOffset","timeZoneOffsetRegExp","offsetRegExp","numberRegExp","leadingSpacesRegex","trailingSpacesRegex","standardDateFormats","FORMATS_SEQUENCE","outOfRange","lookAhead","getNumber","valueIdx","getIndexByName","nameLength","subValue","matchLength","matchIdx","checkLiteral","parseTimeZoneOffset","noSeparator","zLiteral","calendarGmtFormats","hoursMatch","minutesMatch","hoursOffset","minutesOffset","parseMonth","parseDayOfWeek","dayOfWeek","parsers","addFormatSpaces","parseExact","createDate","pmHour","hasTime","parseValue","parseMicrosoftDateFormat","tzoffset","parseMicrosoftDateOffset","parseFormats","defaultFormats","currentYear","periodFormats","shortFormat","invalid","NAME_TYPES","minLength","LITERAL","addLiteral","lastPart","isHour12","splitDateFormat","patternLength","es2015_align","anchorRect","anchorAlign","elementRect","elementAlign","anchorHorizontal","anchorVertical","elementHorizontal","elementVertical","horizontalMargin","verticalMargin","addScroll","es2015_window","defaultView","es2015_document","cachedWidth","windowViewport","innerHeight","innerWidth","scrollbarWidth","bounding_offset","viewport","es2015_offset","rectOfHiddenElement","until","scrollPosition","docElement","element_scroll_position","offset_parent","offsetParent","position_with_scroll","offsetParentElement","offsetRect","parentOffset","parentStyles","elementScrollPosition","parentScrollPosition","offsetParentScrollPosition","positionScale","removeScroll","viewPortSize","anchorSize","anchorAlignPoint","elementAlignPoint","marginToAdd","isBeforeAnchor","restrict_to_view","collisions","viewPort","elementTop","elementLeft","viewPortHeight","viewPortWidth","isVerticalFit","isHorizontalFit","isVerticalFlip","isHorizontalFlip","flippedVertical","flippedHorizontal","fittedVertical","fittedHorizontal","flipped","fitted","sibling","nextElementSibling","sibling_container","parentElements","siblingElements","memoize","called","elementSource","canUseDOM","currentDocument","isDifferent","caretAltUpIcon","caretAltRightIcon","caretAltDownIcon","caretAltLeftIcon","caretAltToRightIcon","caretAltToLeftIcon","caretAltExpandIcon","chevronUpIcon","chevronRightIcon","chevronDownIcon","chevronLeftIcon","arrowRightIcon","arrowLeftIcon","columnsIcon","reorderIcon","moreVerticalIcon","displayInlineFlexIcon","dropletSliderIcon","maxWidthIcon","clockIcon","calendarIcon","lockIcon","unlockIcon","cancelIcon","checkIcon","checkCircleIcon","xIcon","xCircleIcon","plusIcon","minusIcon","sortAscSmallIcon","sortDescSmallIcon","filterIcon","filterClearIcon","hyperlinkOpenIcon","windowIcon","windowRestoreIcon","windowMinimizeIcon","searchIcon","stickIcon","unstickIcon","setColumnPositionIcon","starOutlineIcon","starIcon","exclamationCircleIcon","paletteIcon","slidersIcon","dropletSlashIcon","insertTopIcon","insertMiddleIcon","insertBottomIcon","Z_STREAM_ERROR","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN","_has","shrinkBuf","buf","subarray","fnTyped","arraySet","src_offs","dest_offs","flattenChunks","chunks","Buf8","Buf16","Uint16Array","Buf32","Int32Array","fnUntyped","typedOK","strApplyOK","strApplyUintOK","utf8len","string2buf","m_pos","str_len","buf_len","_buf2binstring","buf2string","c_len","utf16buf","utf8border","adler32","adler","s1","s2","crcTable","makeTable","crc32","crc","BAD","TYPE","inflate_fast","strm","beg","dmax","wsize","whave","wnext","s_window","hold","bits","lcode","dcode","lmask","dmask","here","from_source","next_in","avail_in","next_out","avail_out","lencode","distcode","lenbits","distbits","dolen","sane","MAXBITS","ENOUGH_LENS","ENOUGH_DISTS","CODES","LENS","DISTS","lbase","lext","dbase","dext","inflate_table","lens","lens_index","table_index","work","opts","incr","here_bits","here_op","here_val","drop","used","huff","base_index","offs","extra_index","LENS$1","DISTS$1","Z_OK$1","Z_STREAM_ERROR$1","HEAD","ENOUGH_LENS$1","ENOUGH_DISTS$1","zswap32","InflateState","havedict","check","wbits","ncode","nlen","ndist","have","lendyn","distdyn","was","inflateInit2","windowBits","inflateReset2","inflateReset","inflateResetKeep","total_in","total_out","lenfix","distfix","virgin","fixedtables","updatewindow","inflate","last_bits","last_op","last_val","hbuf","inf_leave","xflags","extra_len","hcrc","data_type","inflateSetDictionary","dictionary","dictLength","ZStream","GZheader","Inflate","chunkSize","opt","ended","inflateGetHeader","_mode","next_out_utf8","utf8str","allowBufError","binstring2buf","onData","inflateEnd","zero","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","static_l_desc","static_d_desc","static_bl_desc","STORED_BLOCK","STATIC_TREES","DYN_TREES","MIN_MATCH","MAX_MATCH","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","pending_buf","send_bits","bi_valid","bi_buf","send_code","tree","bi_reverse","gen_codes","bl_count","next_code","init_block","dyn_ltree","dyn_dtree","bl_tree","opt_len","static_len","last_lit","bi_windup","smaller","_n2","_m2","pqdownheap","heap","heap_len","compress_block","ltree","dtree","lc","lx","d_buf","l_buf","build_tree","stree","heap_max","gen_bitlen","xbits","scan_tree","curlen","prevlen","nextlen","max_count","min_count","send_tree","static_init_done","_tr_stored_block","stored_len","copy_block","_tr_tally","lit_bufsize","MIN_MATCH$1","MAX_MATCH$1","MIN_LOOKAHEAD","errorCode","rank","zero$1","flush_pending","pending_out","flush_block_only","_tr_flush_block","opt_lenb","static_lenb","max_blindex","detect_data_type","black_mask","l_desc","d_desc","build_bl_tree","bl_desc","strategy","send_all_trees","lcodes","dcodes","blcodes","block_start","strstart","put_byte","putShortMSB","read_buf","longest_match","cur_match","chain_length","max_chain_length","scan","best_len","prev_length","nice_match","w_size","_win","wmask","w_mask","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","more","_w_size","window_size","hash_size","ins_h","hash_shift","hash_mask","deflate_stored","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","max_lazy_match","deflate_slow","max_insert","prev_match","match_available","Config","good_length","max_lazy","nice_length","max_chain","configurationTable","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","HEAP_SIZE$1","MAX_BITS$1","deflateReset","deflateResetKeep","_tr_init","tr_static_init","lm_init","old_flush","Z_OK","bstate","deflate_huff","deflate_rle","_tr_align","bi_flush","toString$1","Deflate","memLevel","gzip","deflateInit2","deflateSetHeader","deflateSetDictionary","avail","tmpDict","_dict_set","deflateEnd","deflate$1","deflator","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_RESULT__","MouseEvent","initMouseEvent","saveAs","HTMLAnchorElement","webkitURL","download","msSaveOrOpenBlob","onloadend","readAsDataURL","module","exports","FUNC_ERROR_TEXT","HASH_UNDEFINED","WRAP_PARTIAL_FLAG","INFINITY","MAX_SAFE_INTEGER","MAX_ARRAY_LENGTH","wrapFlags","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reEmptyStringLeading","reEmptyStringMiddle","reEmptyStringTrailing","reEscapedHtml","reUnescapedHtml","reHasEscapedHtml","reHasUnescapedHtml","reEscape","reEvaluate","reInterpolate","reIsDeepProp","reIsPlainProp","rePropName","reRegExpChar","reHasRegExpChar","reTrimStart","reWhitespace","reWrapComment","reWrapDetails","reSplitDetails","reAsciiWord","reForbiddenIdentifierChars","reEscapeChar","reEsTemplate","reFlags","reIsBadHex","reIsBinary","reIsHostCtor","reIsOctal","reIsUint","reLatin","reNoMatch","reUnescapedString","rsAstralRange","rsComboRange","rsComboMarksRange","rsDingbatRange","rsLowerRange","rsUpperRange","rsVarRange","rsBreakRange","rsMathOpRange","rsAstral","rsBreak","rsCombo","rsDigits","rsDingbat","rsLower","rsMisc","rsFitz","rsNonAstral","rsRegional","rsSurrPair","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","reOptMod","rsModifier","rsOptVar","rsSeq","rsEmoji","rsSymbol","reApos","reComboMark","reUnicode","reUnicodeWord","reHasUnicode","reHasUnicodeWord","contextProps","templateCounter","typedArrayTags","cloneableTags","stringEscapes","freeParseFloat","freeParseInt","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","freeProcess","nodeUtil","require","binding","nodeIsArrayBuffer","nodeIsDate","nodeIsMap","isMap","nodeIsRegExp","isRegExp","nodeIsSet","isSet","nodeIsTypedArray","isTypedArray","arrayAggregator","iteratee","accumulator","arrayEach","arrayEachRight","arrayEvery","arrayFilter","resIndex","arrayIncludes","baseIndexOf","arrayIncludesWith","comparator","arrayMap","arrayPush","arrayReduce","initAccum","arrayReduceRight","arraySome","asciiSize","baseProperty","baseFindKey","collection","eachFunc","baseFindIndex","fromIndex","fromRight","strictIndexOf","baseIsNaN","baseIndexOfWith","baseMean","baseSum","basePropertyOf","baseReduce","baseTimes","baseTrim","trimmedEndIndex","baseUnary","baseValues","cacheHas","charsStartIndex","strSymbols","chrSymbols","charsEndIndex","deburrLetter","escapeHtmlChar","escapeStringChar","chr","hasUnicode","mapToArray","overArg","replaceHolders","placeholder","setToArray","stringSize","unicodeSize","stringToArray","unicodeToArray","asciiToArray","unescapeHtmlChar","runInContext","pick","arrayProto","objectProto","coreJsData","funcToString","idCounter","maskSrcKey","IE_PROTO","nativeObjectToString","objectCtorString","oldDash","reIsNative","Buffer","allocUnsafe","getPrototype","objectCreate","propertyIsEnumerable","spreadableSymbol","symIterator","symToStringTag","getNative","ctxClearTimeout","ctxNow","ctxSetTimeout","nativeCeil","nativeFloor","nativeGetSymbols","getOwnPropertySymbols","nativeIsBuffer","isBuffer","nativeIsFinite","nativeJoin","nativeKeys","nativeMax","nativeMin","nativeNow","nativeParseInt","nativeRandom","nativeReverse","DataView","nativeCreate","metaMap","realNames","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","symbolToString","lodash","isObjectLike","LazyWrapper","LodashWrapper","wrapperClone","baseCreate","baseLodash","chainAll","__wrapped__","__actions__","__chain__","__index__","__values__","__dir__","__filtered__","__iteratees__","__takeCount__","__views__","Hash","ListCache","MapCache","SetCache","__data__","Stack","arrayLikeKeys","inherited","isArg","isArguments","isBuff","isType","skipIndexes","isIndex","arraySample","baseRandom","arraySampleSize","shuffleSelf","copyArray","baseClamp","arrayShuffle","assignMergeValue","baseAssignValue","assignValue","objValue","assocIndexOf","baseAggregator","baseEach","baseAssign","copyObject","baseAt","baseClone","bitmask","customizer","isDeep","isFlat","isFull","initCloneArray","getTag","isFunc","cloneBuffer","initCloneObject","copySymbolsIn","getSymbolsIn","baseAssignIn","keysIn","copySymbols","getSymbols","initCloneByTag","cloneArrayBuffer","cloneDataView","dataView","byteOffset","cloneTypedArray","cloneRegExp","cloneSymbol","getAllKeysIn","getAllKeys","baseConformsTo","baseDelay","wait","baseDifference","isCommon","valuesLength","outer","computed","valuesIndex","templateSettings","evaluate","interpolate","variable","hashClear","hashDelete","hashGet","hashHas","hashSet","listCacheClear","listCacheDelete","listCacheGet","listCacheHas","listCacheSet","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","setCacheAdd","setCacheHas","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","LARGE_ARRAY_SIZE","createBaseEach","baseForOwn","baseEachRight","baseForOwnRight","baseEvery","baseExtremum","isSymbol","baseFilter","baseFlatten","isStrict","isFlattenable","baseFor","createBaseFor","baseForRight","baseFunctions","baseGet","castPath","toKey","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","getRawTag","isOwn","unmasked","objectToString","baseGt","baseHas","baseHasIn","baseIntersection","othLength","othIndex","caches","seen","baseInvoke","baseIsArguments","baseIsEqual","baseIsEqualDeep","equalFunc","objIsArr","othIsArr","objTag","othTag","objIsObj","othIsObj","isSameTag","equalArrays","equalByTag","objIsWrapped","othIsWrapped","objUnwrapped","othUnwrapped","equalObjects","isPartial","objProps","objLength","objStacked","othStacked","skipCtor","othValue","compared","objCtor","othCtor","baseIsMatch","matchData","noCustomizer","srcValue","COMPARE_PARTIAL_FLAG","baseIsNative","isMasked","baseIteratee","baseMatchesProperty","baseMatches","baseKeys","isPrototype","baseLt","baseMap","isArrayLike","getMatchData","matchesStrictComparable","isKey","isStrictComparable","hasIn","baseMerge","srcIndex","baseMergeDeep","mergeFunc","isTyped","isArrayLikeObject","toPlainObject","baseNth","baseOrderBy","iteratees","orders","getIteratee","baseSortBy","criteria","compareMultiple","objCriteria","othCriteria","ordersLength","compareAscending","basePickBy","baseSet","basePullAll","basePullAt","baseUnset","baseRepeat","baseRest","setToString","overRest","baseSample","baseSampleSize","nested","baseSetData","baseSetToString","baseShuffle","baseSlice","baseSome","baseSortedIndex","retHighest","baseSortedIndexBy","valIsNaN","valIsNull","valIsSymbol","valIsUndefined","othIsDefined","othIsNull","othIsReflexive","othIsSymbol","setLow","baseSortedUniq","baseToNumber","baseToString","baseUniq","createSet","seenIndex","baseUpdate","updater","baseWhile","isDrop","baseWrapperValue","actions","baseXor","baseZipObject","assignFunc","valsLength","castArrayLikeObject","castFunction","stringToPath","castRest","castSlice","typedArray","valIsDefined","valIsReflexive","composeArgs","partials","holders","isCurried","argsIndex","argsLength","holdersLength","leftIndex","leftLength","rangeLength","isUncurried","composeArgsRight","holdersIndex","rightIndex","rightLength","isNew","createAggregator","createAssigner","assigner","guard","isIterateeCall","iterable","createCaseFirst","trailing","createCompounder","words","deburr","createCtor","thisBinding","createFind","findIndexFunc","createFlow","flatRest","prereq","thru","getFuncName","isLaziable","plant","createHybrid","partialsRight","holdersRight","argPos","ary","arity","isAry","isBind","isBindKey","isFlip","getHolder","holdersCount","countHolders","newHolders","createRecurry","reorder","arrLength","oldArray","createInverter","toIteratee","baseInverter","createMathOperation","createOver","arrayFunc","createPadding","charsLength","toFinite","baseRange","createRelationalOperation","toNumber","wrapFunc","isCurry","setData","setWrapToString","createRound","toInteger","pair","createToPairs","setToPairs","baseToPairs","createWrap","mergeData","srcBitmask","newBitmask","createCurry","createPartial","createBind","customDefaultsAssignIn","customDefaultsMerge","customOmitClone","arrStacked","arrValue","otherFunc","isKeyable","stubArray","hasPath","hasFunc","isLength","ctorString","isMaskable","stubFalse","otherArgs","shortOut","insertWrapDetails","updateWrapDetails","getWrapDetails","lastCalled","stamp","rand","memoizeCapped","quote","subString","difference","differenceBy","differenceWith","findLastIndex","mapped","intersectionBy","intersectionWith","pull","pullAll","pullAt","unionBy","unionWith","unzip","unzipWith","without","xor","xorBy","xorWith","zipWith","chain","interceptor","wrapperAt","countBy","findLast","forEachRight","invokeMap","keyBy","partition","sortBy","bindKey","WRAP_BIND_FLAG","debounce","lastArgs","lastThis","maxWait","lastCallTime","lastInvokeTime","leading","maxing","invokeFunc","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","timeWaiting","debounced","isInvoking","leadingEdge","memoized","Cache","overArgs","transforms","funcsLength","partial","partialRight","rearg","baseIsArrayBuffer","baseIsDate","isInteger","baseIsMap","baseIsRegExp","baseIsSet","baseIsTypedArray","iteratorToArray","toLength","isBinary","assignIn","assignInWith","assignWith","propsIndex","propsLength","defaultsDeep","mergeWith","invertBy","baseKeysIn","nativeKeysIn","isProto","omit","CLONE_DEEP_FLAG","basePick","pickBy","toPairs","toPairsIn","camelCase","capitalize","upperFirst","kebabCase","lowerCase","lowerFirst","snakeCase","startCase","upperCase","hasUnicodeWord","unicodeWords","asciiWords","bindAll","methodNames","flow","flowRight","methodOf","mixin","overEvery","overSome","basePropertyDeep","rangeRight","augend","addend","divide","dividend","multiplier","multiplicand","subtract","minuend","subtrahend","castArray","compact","cond","conforms","baseConforms","curry","curryRight","dropRight","dropRightWhile","dropWhile","baseFill","flatMap","flatMapDeep","flatMapDepth","flattenDeep","flattenDepth","fromPairs","functionsIn","mapKeys","mapValues","matchesProperty","nthArg","omitBy","once","propertyOf","pullAllBy","pullAllWith","rest","sampleSize","setWith","shuffle","sortedUniq","sortedUniqBy","spread","takeRight","takeRightWhile","takeWhile","isArrLike","unary","uniq","uniqBy","uniqWith","unset","updateWith","valuesIn","zipObject","zipObjectDeep","entriesIn","extendWith","cloneDeep","cloneDeepWith","cloneWith","conformsTo","defaultTo","escapeRegExp","findKey","findLastKey","forIn","forInRight","forOwn","forOwnRight","baseInRange","isElement","isEqual","isEqualWith","isMatch","isMatchWith","isNative","isNil","isNull","isSafeInteger","isWeakMap","isWeakSet","strictLastIndexOf","maxBy","meanBy","minBy","stubObject","stubString","stubTrue","nth","noConflict","strLength","padEnd","radix","sample","sortedIndex","sortedIndexBy","sortedIndexOf","sortedLastIndex","sortedLastIndexBy","sortedLastIndexOf","sumBy","isEscaping","isEvaluating","importsKeys","importsValues","reDelimiters","sourceURL","escapeValue","esTemplateValue","evaluateValue","toLower","toSafeInteger","toUpper","trimStart","truncate","omission","newEnd","unescape","uniqueId","eachRight","isFilter","takeName","dropName","checkIteratee","isTaker","lodashFunc","retUnwrapped","isLazy","useLazy","isUnwrapped","onlyLazy","chainName","lazyClone","lazyReverse","isRight","getView","iterLength","iterIndex","wrapperChain","commit","wrapperCommit","wrapperNext","wrapperPlant","wrapperReverse","wrapperValue","wrapperToIterator","define","_hasValue","_isComplete","_checkFinalizedStatuses","thrownError","isStopped","_subscribe","_throwIfClosed","lift","observerOrNext","isSubscriber","Subscriber","isObserver","isSubscription","SafeSubscriber","errorContext","_trySubscribe","sink","promiseCtor","getPromiseCtor","Symbol_observable","operations","pipeFromArray","toPromise","_windowTime","_timestampProvider","dateTimestampProvider","_infiniteTimeWindow","_trimBuffer","_innerSubscribe","adjustedBufferSize","ObjectUnsubscribedError","createErrorClass","currentObservers","AnonymousSubject","observed","EMPTY_SUBSCRIPTION","Subscription","arrRemove","COMPLETE_NOTIFICATION","createNotification","EMPTY_OBSERVER","handleStoppedNotification","nextNotification","errorNotification","_error","_complete","_bind","ConsumerObserver","partialObserver","handleUnhandledError","useDeprecatedNextContext","useDeprecatedSynchronousErrorHandling","captureError","reportUnhandledError","onStoppedNotification","timeoutProvider","UnsubscriptionError","initialTeardown","_parentage","_finalizers","initialFinalizer","finalizer","execFinalizer","_hasParent","_addParent","_removeParent","onUnhandledError","ConnectableObservable","subjectFactory","_refCount","hasLift","getSubject","_teardown","refCount","higherOrderRefCount","scheduler","popScheduler","resultSelector","popResultSelector","argsArgArrayOrObject","combineLatestInit","valueTransform","maybeSchedule","remainingFirstValues","hasFirstValue","createObject","mapOneOrManyArgs","execute","executeSchedule","concatAll","mergeAll","observableFactory","remainingCompletions","remainingEmissions","sourceIndex","observeOn","subscribeOn","schedule","scheduleAsyncIterable","scheduled","isInteropObservable","scheduleObservable","scheduleArray","isPromise","schedulePromise","isAsyncIterable","scheduleIterable","Symbol_iterator","isReadableStreamLike","scheduleReadableStreamLike","readableStreamLikeToAsyncGenerator","createInvalidObservableTypeError","nodeEventEmitterMethods","eventTargetMethods","jqueryMethods","fromEvent","isEventTarget","isNodeStyleEventEmitter","removeListener","toCommonHandlerRegistry","isJQueryStyleEventEmitter","subTarget","fromInteropObservable","obs","fromArrayLike","fromPromise","fromAsyncIterable","fromIterable","fromReadableStreamLike","readableStream","asyncIterable","asyncIterable_1","asyncIterable_1_1","e_1","__awaiter","__asyncValues","e_1_1","asyncScheduler","concurrent","popNumber","errorOrErrorFactory","errorFactory","dueTime","intervalOrScheduler","intervalDuration","isScheduler","due","isValidDate","argsOrArgArray","buffers","onNext","onFinalize","OperatorSubscriber","shouldUnsubscribe","auditTime","audit","durationSelector","durationSubscriber","isComplete","endDuration","cleanupDuration","handledResult","syncUnsub","concatMap","project","debounceTime","activeTask","lastTime","emitWhenIdle","targetTime","defaultIfEmpty","delayWhen","delayDurationSelector","subscriptionDelay","ignoreElements","mapTo","distinctUntilChanged","keySelector","defaultCompare","previousKey","currentKey","hasDefaultValue","throwIfEmpty","EmptyError","ii","mergeInternals","onBeforeNext","innerSubScheduler","additionalFinalizer","checkComplete","outerNext","doInnerSub","innerComplete","innerValue","bufferedValue","refCounter","sharedConnection","conn","seed","scanInternals","hasSeed","emitOnNext","emitBeforeComplete","hasState","connector","resetOnError","resetOnComplete","resetOnRefCountZero","wrapperSource","resetConnection","hasCompleted","hasErrored","cancelReset","resetAndUnsubscribe","handleReset","onSubscriber","configOrBufferSize","windowTime","startWith","innerSubscriber","innerIndex","outerIndex","tapObserver","isUnsub","throttleTime","duration$","sendValue","endThrottling","cleanupThrottling","startThrottle","defaultErrorFactory","withLatestFrom","ready","intervalProvider","setInterval","AsyncAction","recycleAsyncId","requestAsyncId","_scheduler","_execute","errored","Scheduler","schedulerActionCtor","AsyncScheduler","SchedulerAction","animationFrameProvider","cancelAnimationFrame","timestamp","animationFrameScheduler","AnimationFrameScheduler","flushId","_scheduled","AnimationFrameAction","getSymbolIterator","getKeys","isPOJO","createImpl","ctorFunc","isRoot","errorThrown","parentSubscription","scheduleSubscription","isObservable","__asyncGenerator","getReader","__await","releaseLock","liftedSource","callOrApply","fns","stateChangeExpr","stagger","AnimationBuilder","BrowserAnimationBuilder","rootRenderer","animationModuleType","_nextAnimationId","_renderer","ViewEncapsulation","isAnimationRenderer","issueAnimationCommand","BrowserAnimationFactory","RendererAnimationPlayer","_command","_listen","unwrapAnimationRenderer","animationRenderer","_position","_onStart","triggerMicrotask","AnimationGroupPlayer","_players","doneCount","destroyCount","startCount","timeAtPosition","longestPlayer","longestSoFar","PendingCopy","textarea","_textarea","fullscreenElement","successful","currentFocus","setSelectionRange","execCommand","Clipboard","pendingCopy","beginCopy","CDK_COPY_TO_CLIPBOARD_CONFIG","InjectionToken","CdkCopyToClipboard","_clipboard","_ngZone","copied","_pending","remainingAttempts","_currentTimeout","ɵdir","_DOM","getDOM","setRootDomAdapter","adapter","DomAdapter","PlatformLocation","historyGo","relativePosition","BrowserPlatformLocation","LOCATION_INITIALIZED","getBaseHrefFromDOM","getBaseHref","onPopState","getGlobalEventTarget","onHashChange","hostname","go","getState","joinWithSlash","slashes","stripTrailingSlash","pathEndIdx","normalizeQueryParams","LocationStrategy","PathLocationStrategy","APP_BASE_HREF","_platformLocation","_removeListenerFns","_baseHref","prepareExternalUrl","includeHash","externalUrl","HashLocationStrategy","locationStrategy","_urlChangeListeners","_urlChangeSubscription","_locationStrategy","_basePath","_stripOrigin","_stripIndexHtml","normalize","isCurrentPathEqualTo","_stripBasePath","basePath","strippedUrl","_notifyUrlChangeListeners","onUrlChange","fnIndex","onThrow","onReturn","createLocation","ɵɵinject","CURRENCIES_EN","ADP","AFN","AMD","AOA","ARS","AUD","AZN","BAM","BBD","BDT","BHD","BIF","BMD","BND","BOB","BRL","BSD","BWP","BYN","BYR","BZD","CAD","CHF","CLF","CLP","CNY","COP","CRC","CUC","CUP","CZK","DJF","DKK","DOP","EGP","ESP","FJD","FKP","GBP","GEL","GHS","GIP","GNF","GTQ","GYD","HKD","HNL","HRK","HUF","IDR","ILS","INR","IQD","IRR","ISK","ITL","JMD","JOD","JPY","KHR","KMF","KPW","KRW","KWD","KYD","KZT","LAK","LBP","LKR","LRD","LTL","LUF","LVL","LYD","MGA","MGF","MMK","MNT","MRO","MUR","MXN","MYR","NAD","NGN","NIO","NOK","NPR","NZD","OMR","PHP","PKR","PLN","PYG","RON","RSD","RUB","RWF","SBD","SEK","SGD","SHP","SLE","SLL","SOS","SRD","SSP","STD","STN","SYP","THB","TMM","TND","TRL","TRY","TTD","TWD","TZS","UAH","UGX","UYI","UYU","UYW","UZS","VEF","VND","VUV","XAF","XCD","XOF","XPF","XXX","YER","ZAR","ZMK","ZMW","ZWD","NumberFormatStyle","Percent","Scientific","FormStyle","Standalone","TranslationWidth","Narrow","Abbreviated","Wide","FormatWidth","NumberSymbol","List","PercentSign","PlusSign","MinusSign","Exponential","SuperscriptingExponent","PerMille","TimeSeparator","CurrencyDecimal","CurrencyGroup","getLocaleDateFormat","getLastDefinedValue","ɵfindLocaleData","ɵLocaleDataIndex","getLocaleTimeFormat","TimeFormat","getLocaleDateTimeFormat","dateTimeFormatData","getLocaleNumberSymbol","NumberSymbols","checkFullData","ExtraData","LocaleId","extractTime","getLocaleCurrencies","Currencies","symbolNarrow","ISO8601_DATE_REGEX","NAMED_FORMATS","DATE_FORMATS_SPLIT","ZoneWidth","ShortGMT","Extended","DateType","FullYear","FractionalSeconds","TranslationType","DayPeriods","Eras","timezone","parsedNb","isoStringToDate","tzHour","tzMin","dateSetter","setUTCFullYear","timeSetter","setUTCHours","getNamedFormat","dateTimezoneOffset","timezoneToOffset","convertTimezoneToLocal","addDateMinutes","dateFormatter","getDateFormatter","DATE_FORMATS","dateStrGetter","dateGetter","weekNumberingYearGetter","weekGetter","timeZoneGetter","localeId","getLocaleId","shortTime","shortDate","formatDateTime","mediumTime","mediumDate","longTime","longDate","fullTime","fullDate","opt_values","padNumber","negWrap","neg","strNum","getDatePart","formatFractionalSeconds","localeMinus","getDateTranslation","getLocaleMonthNames","formStyle","MonthsFormat","MonthsStandalone","getLocaleDayNames","DaysFormat","DaysStandalone","currentHours","currentMinutes","getLocaleExtraDayPeriodRules","getLocaleExtraDayPeriods","afterFrom","beforeTo","getLocaleDayPeriods","amPm","DayPeriodsFormat","DayPeriodsStandalone","getLocaleEraNames","erasData","JANUARY","THURSDAY","getThursdayThisIsoWeek","currentDay","deltaToThursday","monthBased","nbDaysBefore1stDayOfMonth","today","thisThurs","firstThurs","getFirstThursdayOfYear","firstDayOfYear","requestedTimezoneOffset","NUMBER_FORMAT_REGEXP","parseIntAutoRadix","parseCookieValue","cookieStr","eqIndex","cookieName","decodeURIComponent","WS_REGEXP","EMPTY_ARRAY","NgClass","_ngEl","initialClasses","klass","ngClass","rawClass","ngDoCheck","_updateState","_applyStateDiff","nextEnabled","changed","touched","stateEntry","_toggleClass","NgForOfContext","ngForOf","NgForOf","_ngForOf","_ngForOfDirty","ngForTrackBy","_trackByFn","_viewContainer","_differs","_differ","ngForTemplate","_applyChanges","forEachOperation","adjustedPreviousIndex","previousIndex","applyViewChange","ilen","forEachIdentityChange","ngTemplateContextGuard","NgIf","NgIfContext","_thenTemplateRef","_elseTemplateRef","_thenViewRef","_elseViewRef","ngIf","condition","ngIfThen","assertTemplate","ngIfElse","ɵstringify","SwitchView","_viewContainerRef","_templateRef","_created","enforceState","NgSwitch","_defaultViews","_defaultUsed","_caseCount","_lastCaseCheckIndex","_lastCasesMatched","ngSwitch","_ngSwitch","_updateDefaultCases","_addCase","_addDefault","_matchCase","useDefault","NgSwitchCase","ngSwitchCase","NgSwitchDefault","NgStyle","_ngStyle","ngStyle","_setStyle","nameAndUnit","RendererStyleFlags2","DashCase","forEachRemovedItem","forEachAddedItem","forEachChangedItem","NgTemplateOutlet","_viewRef","ngTemplateOutletContext","ngTemplateOutlet","ngTemplateOutletInjector","_shouldRecreateView","viewContainerRef","viewContext","_createContextForwardProxy","injector","Proxy","_target","Reflect","receiver","invalidPipeArgumentError","SubscribableStrategy","createSubscription","updateLatestValue","untracked","PromiseStrategy","_promiseStrategy","_subscribableStrategy","_latestValue","markForCheckOnValueUpdate","_subscription","_obj","_strategy","_selectStrategy","_updateLatestValue","ɵisPromise","ɵisSubscribable","markForCheck","ɵpipe","UpperCasePipe","DATE_PIPE_DEFAULT_TIMEZONE","DATE_PIPE_DEFAULT_OPTIONS","DatePipe","defaultTimezone","dateFormat","LOCALE_ID","JsonPipe","KeyValuePipe","differs","compareFn","defaultComparator","differ","differChanges","compareFnChanged","forEachItem","makeKeyValuePair","keyValueA","keyValueB","aString","bString","PercentPipe","_locale","digitsInfo","isValue","formatPercent","formatNumberToLocaleString","groupSymbol","decimalSymbol","formattedText","isZero","parsedNumber","integerLen","zeros","numStr","exponent","MAX_DIGITS","toPercent","fractionLen","minInt","minFraction","minFrac","maxFraction","maxFrac","minIntPart","minFractionPart","maxFractionPart","fractionSize","roundAt","digit","dropTrailingZeros","minLen","carry","lgSize","gSize","negPre","negSuf","posPre","posSuf","parseNumberFormat","patternParts","positiveParts","trunkLen","getLocaleNumberFormat","NumberFormats","strToNumber","PLATFORM_BROWSER_ID","PLATFORM_SERVER_ID","isPlatformBrowser","platformId","isPlatformServer","ViewportScroller","ɵɵdefineInjectable","PLATFORM_ID","BrowserViewportScroller","NullViewportScroller","setOffset","getScrollPosition","scrollX","scrollY","scrollToPosition","scrollToAnchor","elSelected","findAnchorFromDocument","documentResult","getElementById","getElementsByName","createTreeWalker","attachShadow","treeWalker","NodeFilter","SHOW_ELEMENT","currentNode","shadowRoot","scrollToElement","setHistoryScrollRestoration","scrollRestoration","XhrFactory","HttpHandler","HttpBackend","normalizedNames","lazyUpdate","lazyInit","maybeSetNormalizedName","setHeaderEntries","getAll","lcName","copyFrom","applyUpdate","toDelete","headerValues","HttpUrlEncodingCodec","encodeKey","standardEncoding","encodeValue","decodeKey","decodeValue","STANDARD_ENCODING_REGEX","STANDARD_ENCODING_REPLACEMENTS","updates","cloneFrom","fromString","fromObject","paramParser","rawParams","codec","param","eqIdx","appendAll","eKey","HttpContext","isBlob","isFormData","FormData","HttpRequest","fourth","reportProgress","mightHaveBody","transferCache","urlWithParams","qIdx","serializeBody","isUrlSearchParams","detectContentTypeHeader","setHeaders","setParams","HttpEventType","Sent","UploadProgress","ResponseHeader","DownloadProgress","Response","HttpResponseBase","defaultStatus","defaultStatusText","HttpHeaderResponse","addBody","events$","res$","jsonp","callbackParam","XSSI_PREFIX$1","getResponseUrl$1","xRequestUrl","toLocaleLowerCase","FetchBackend","fetchImpl","FetchFactory","ngZone","aborter","doRequest","createRequestInit","fetchPromise","silenceSuperfluousUnhandledPromiseRejection","contentLength","decoder","partialText","receivedLength","reqZone","Zone","TextDecoder","loaded","chunksAll","concatChunks","contentType","parseBody","binContent","detectedType","interceptorChainEndFn","finalHandlerFn","adaptLegacyInterceptorToChain","chainTailFn","initialRequest","downstreamRequest","HTTP_INTERCEPTOR_FNS","HTTP_ROOT_INTERCEPTOR_FNS","REQUESTS_CONTRIBUTE_TO_STABILITY","legacyInterceptorFnFactory","pendingTasks","ɵPendingTasks","HttpInterceptorHandler","backend","contributeToStability","dedupedInterceptorFns","nextSequencedFn","interceptorFn","chainedInterceptorFn","runInInjectionContext","XSSI_PREFIX","HttpXhrBackend","xhrFactory","ɵloadImpl","reqBody","headerResponse","partialFromXhr","getAllResponseHeaders","getResponseUrl","originalBody","sentHeaders","onDownProgress","progressEvent","lengthComputable","onUpProgress","upload","XSRF_ENABLED","XSRF_COOKIE_NAME","XSRF_HEADER_NAME","HttpXsrfTokenExtractor","HttpXsrfCookieExtractor","lastCookieString","lastToken","parseCount","getToken","cookieString","ɵparseCookieValue","xsrfInterceptorFn","lcUrl","HttpFeatureKind","Interceptors","LegacyInterceptors","CustomXsrfConfiguration","NoXsrfProtection","JsonpSupport","RequestsMadeViaParent","Fetch","makeHttpFeature","ɵkind","ɵproviders","provideHttpClient","useExisting","makeEnvironmentProviders","LEGACY_INTERCEPTOR_FN","defaultEquals","activeConsumer","inNotificationPhase","epoch","SIGNAL","setActiveConsumer","consumer","REACTIVE_NODE","lastCleanEpoch","producerNode","producerLastReadVersion","producerIndexOfThis","nextProducerIndex","liveConsumerNode","liveConsumerIndexOfThis","consumerAllowSignalWrites","consumerIsAlwaysLive","producerMustRecompute","producerRecomputeValue","consumerMarkedDirty","consumerOnSignalRead","producerAccessed","assertConsumerNode","consumerIsLive","producerRemoveLiveConsumerAtIndex","producerAddLiveConsumer","producerUpdateValueVersion","consumerPollProducersForChange","producerNotifyConsumers","consumerMarkDirty","producerUpdatesAllowed","consumerBeforeComputation","consumerAfterComputation","prevConsumer","seenVersion","consumerDestroy","indexOfThis","assertProducerNode","isConsumerNode","lastIdx","idxProducer","UNSET","COMPUTING","ERRORED","COMPUTED_NODE","computation","throwInvalidWriteToSignalErrorFn","defaultThrowError","throwInvalidWriteToSignalError","postSignalSetFn","signalSetFn","signalValueChanged","producerIncrementEpoch","SIGNAL_NODE","XSS_SECURITY_URL","RuntimeError","formatRuntimeError","noSideEffects","PARAMETERS","makeParamDecorator","parentClass","metaCtor","makeMetadataCtor","ParamDecoratorFactory","annotationInstance","ParamDecorator","annotation","unusedKey","ngMetadataName","annotationCls","getClosureSafeProperty","objWithPropertyToExtract","fillProperties","overriddenName","newLineIndex","concatStringsWithSpace","__forward_ref__","forwardRef","forwardRefFn","resolveForwardRef","isForwardRef","assertEqual","actual","expected","comparison","ɵɵdefineInjector","getInjectableDef","getOwnDefinition","NG_PROV_DEF","NG_INJECTABLE_DEF","isInjectable","getInjectorDef","NG_INJ_DEF","NG_INJECTOR_DEF","ngInjectableDef","ngInjectorDef","_desc","__NG_ELEMENT_ID__","isEnvironmentProviders","NG_COMP_DEF","ɵcmp","NG_DIR_DEF","NG_PIPE_DEF","NG_MOD_DEF","NG_FACTORY_DEF","NG_ELEMENT_ID","NG_ENV_ID","__NG_ENV_ID__","renderStringify","throwProviderNotFoundError","injectorName","InjectFlags","Default","Host","Self","SkipSelf","_injectImplementation","getInjectImplementation","setInjectImplementation","injectRootLimpMode","notFoundValue","injectableDef","THROW_IF_NOT_FOUND","DI_DECORATOR_FLAG","NG_TEMP_TOKEN_PATH","NEW_LINE","SOURCE","_currentInjector","setCurrentInjector","former","injectInjectorOnly","convertToBitFlags","skipSelf","injectArgs","meta","flag","getInjectFlag","attachInjectFlag","decorator","Inject","getFactoryDef","throwNotFound","deepForEach","addToArray","removeFromArray","keyValueArraySet","keyValueArray","keyValueArrayIndexOf","arrayInsert2","value1","value2","keyValueArrayGet","_arrayIndexOfSorted","EMPTY_OBJ","ENVIRONMENT_INITIALIZER","INJECTOR$1","INJECTOR_DEF_TYPES","NullInjector","ChangeDetectionStrategy","OnPush","ViewEncapsulation$1","Emulated","ShadowDom","InputFlags","SignalBased","HasDecoratorInputTransform","classIndexOf","classToSearch","startingIndex","foundIndex","setUpAttributes","native","attrName","attrVal","isAnimationProp","isNameOnlyAttributeMarker","mergeHostAttrs","dst","srcMarker","mergeHostAttribute","markerInsertPosition","dstValue","NG_TEMPLATE_SELECTOR","isCssClassMatching","tNode","cssClassToMatch","isProjectionMode","isInlineTemplate","hasTagAndTypeMatch","currentSelector","isNodeMatchingSelector","nodeAttrs","nameOnlyMarkerIdx","getNameOnlyMarkerIndex","skipToNextSelector","isPositive","selectorAttrValue","attrIndexInNode","findAttrIndexInNode","nodeAttrValue","bindingsMode","maybeAttrName","matchTemplateAttribute","isNodeMatchingSelectorList","isSelectorInSelectorList","selectorListLoop","currentSelectorInList","maybeWrapInNotSelector","isNegativeMode","stringifyCSSSelector","currentChunk","valueOrMarker","attrValue","ɵɵdefineComponent","componentDefinition","baseDef","getNgDirectiveDef","onPush","directiveDefs","pipeDefs","getStandaloneInjector","signals","schemas","tView","initFeatures","extractDefListOrFactory","getComponentId","componentDef","hashSelectors","contentQueries","char","imul","extractDirectiveDef","getComponentDef","getDirectiveDef","nonNull","ɵɵdefineNgModule","declarations","transitiveCompileScopes","parseAndConvertBindingsForDefinition","declaredInputs","newLookup","minifiedKey","publicName","declaredName","inputFlags","ɵɵdefineDirective","directiveDefinition","ɵɵdefinePipe","pipeDef","getPipeDef$1","isStandalone","getNgModuleDef","ngModuleDef","providersResolver","inputTransforms","inputConfig","setInput","findHostDirectiveDefs","hostDirectives","debugInfo","defExtractor","dep","importProvidersFrom","internalImportProvidersFrom","ɵfromNgModule","checkForStandaloneCmp","providersOut","dedup","injectorTypesWithProviders","collectProviders","provider","internalSource","walkProviderTree","processInjectorTypesWithProviders","typesWithProviders","deepForEachProvider","defType","injDef","cmpDef","isDuplicate","importTypesWithProviders","imported","defProviders","injectorType","USE_VALUE$1","isValueProvider","isTypeProvider","INJECTOR_SCOPE","NOT_YET","CIRCULAR","NULL_INJECTOR","getNullInjector","EnvironmentInjector","R3Injector","scopes","records","_ngOnDestroyHooks","_onDestroyHooks","forEachSingleProvider","processProvider","makeRecord","injectorDefTypes","assertNotDestroyed","setActiveConsumer$1","onDestroyHooks","removeOnDestroy","previousInjector","previousInjectImplementation","couldBeInjectableType","injectableDefInScope","injectableDefOrInjectorDefFactory","hydrate","catchInjectorError","injectorErrorName","tokenPath","resolveInjectorInitializers","providerToRecord","providerToFactory","multiRecord","hasOnDestroy","destroyCBIdx","getUndecoratedInjectableFactory","inheritedInjectableDef","getInheritedInjectableDef","ngModuleType","unwrappedProvider","isFactoryProvider","isExistingProvider","classRef","hasDeps","prevInjector","isInInjectionContext","getCurrentInjector","assertInInjectionContext","debugFn","HOST","TVIEW","FLAGS","PARENT","NEXT","T_HOST","HYDRATION","CLEANUP","CONTEXT","INJECTOR","ENVIRONMENT","RENDERER","CHILD_HEAD","CHILD_TAIL","DECLARATION_VIEW","DECLARATION_COMPONENT_VIEW","DECLARATION_LCONTAINER","PREORDER_HOOK_FLAGS","QUERIES","EMBEDDED_VIEW_INJECTOR","ON_DESTROY_HOOKS","EFFECTS_TO_SCHEDULE","REACTIVE_TEMPLATE_CONSUMER","HEADER_OFFSET","NATIVE","MOVED_VIEWS","CONTAINER_HEADER_OFFSET","LContainerFlags","HasTransplantedViews","isLView","isLContainer","isContentQueryHost","isComponentHost","componentOffset","isDirectiveHost","isComponentDef","isRootView","SimpleChange","firstChange","isFirstChange","applyValueToInputField","inputSignalNode","privateName","applyValueToInputSignal","ɵɵNgOnChangesFeature","NgOnChangesFeatureImpl","ngOnChangesSetInput","rememberChangeHistoryAndInvokeOnChangesHook","simpleChangesStore","getSimpleChangesStore","setSimpleChangesStore","SIMPLE_CHANGES_STORE","previousChange","ngInherit","profiler","hookOrListener","SVG_NAMESPACE","unwrapRNode","getNativeByIndex","lView","getNativeByTNode","getTNode","getComponentLViewByIndex","hostView","slotValue","viewAttachedToChangeDetector","getConstant","resetPreOrderHookFlags","markViewForRefresh","markAncestorsForTraversal","requiresRefreshOrTraversal","updateAncestorTraversalFlagsOnAttach","changeDetectionScheduler","getLViewParent","storeLViewOnDestroy","onDestroyCallback","instructionState","lFrame","createLFrame","bindingsEnabled","skipHydrationRootTNode","_isRefreshingViews","getBindingsEnabled","isInSkipHydrationBlock$1","getLView","getTView","ɵɵrestoreView","viewToRestore","contextLView","ɵɵresetView","getCurrentTNode","currentTNode","getCurrentTNodePlaceholderOk","getCurrentParentTNode","isParent","setCurrentTNode","isCurrentTNodeParent","setCurrentTNodeAsNotParent","isRefreshingViews","setIsRefreshingViews","getBindingRoot","bindingRootIndex","bindingStartIndex","getBindingIndex","bindingIndex","nextBindingIndex","incrementBindingIndex","setInI18nBlock","isInI18nBlock","inI18n","setBindingRootForHostBindings","currentDirectiveIndex","setCurrentDirectiveIndex","getCurrentDirectiveDef","tData","getCurrentQueryIndex","setCurrentQueryIndex","getDeclarationTNode","declTNode","enterDI","parentTNode","parentLView","allocLFrame","enterView","newView","newLFrame","currentLFrame","childLFrame","elementDepthCount","currentNamespace","leaveViewLight","oldLFrame","leaveDI","leaveView","getSelectedIndex","setSelectedIndex","getSelectedTNode","ɵɵnamespaceSVG","ɵɵnamespaceHTML","namespaceHTMLInternal","_wasLastNodeCreated","wasLastNodeCreated","lastNodeWasCreated","registerPostOrderHooks","directiveStart","directiveEnd","lifecycleHooks","ngAfterContentInit","ngAfterContentChecked","ngAfterViewChecked","contentHooks","contentCheckHooks","viewHooks","viewCheckHooks","destroyHooks","executeCheckHooks","callHooks","executeInitAndCheckHooks","initPhase","incrementInitPhaseFlags","currentView","currentNodeIndex","nodeIndexLimit","lastNodeIndexFound","callHook","callHookInternal","directive","isInitHook","NO_PARENT_INJECTOR","NodeInjectorFactory","isViewProvider","injectImplementation","resolving","canSeeViewProviders","injectImpl","NOT_FOUND_CHECK_ONLY_ELEMENT_INJECTOR","ChainedInjector","parentInjector","hasParentInjector","parentLocation","getParentInjectorIndex","getParentInjectorView","startView","viewOffset","getParentInjectorViewOffset","parentView","includeViewProviders","setIncludeViewProviders","BLOOM_MASK","BLOOM_BUCKET_BITS","nextNgElementId","NOT_FOUND","getOrCreateNodeInjectorForNode","existingInjectorIndex","getInjectorIndex","firstCreatePass","injectorIndex","insertBloom","blueprint","parentLoc","getParentInjectorLocation","parentIndex","parentData","footer","declarationViewOffset","lViewCursor","getTNodeFromLView","diPublicInInjector","bloomAdd","bloomHash","notFoundValueOrThrow","lookupTokenUsingModuleInjector","moduleInjector","getOrCreateInjectable","embeddedInjectorValue","lookupTokenUsingEmbeddedInjector","currentLView","nodeInjectorValue","lookupTokenUsingNodeInjector","embeddedViewInjector","embeddedViewInjectorValue","bloomHashBitOrFactory","tokenId","createNodeInjector","previousTView","hostTElementNode","shouldSearchParent","bloomHasToken","searchTokensOnInjector","currentTView","injectableIdx","locateDirectiveOrProvider","getNodeInjectable","canAccessViewProviders","isHostSpecialCase","nodeProviderIndexes","providerIndexes","tInjectables","injectablesStart","directivesStart","cptViewProvidersCount","providerTokenOrDef","dirDef","isFactory","throwCyclicDependencyError","stringifyForError","previousIncludeViewProviders","registerPreOrderHooks","directiveIndex","directiveDef","wrappedOnChanges","preOrderHooks","preOrderCheckHooks","injectorView","isFirstHostTNode","NodeInjector","_tNode","_lView","ɵɵgetInheritedFactory","ownConstructor","ownFactory","getFactoryOf","objectPrototype","tViewType","ɵɵinjectAttribute","attrNameToInject","injectAttributeImpl","attrsLength","createInjector","additionalProviders","createInjectorWithoutInjectorInstances","Injector","NULL","getOriginalError","SCHEDULE_IN_ROOT_ZONE_DEFAULT","injectDestroyRef","NodeInjectorDestroyRef","removeLViewOnDestroy","PendingTasks","hasPendingTasks","_hasPendingTasks","EventEmitter_","__isAsync","nextFn","errorFn","wrapInTimeout","scheduleCallbackWithRafRace","animationFrameId","cleanup","scheduleCallbackWithMicrotask","isAngularZoneProperty","angularZoneInstanceIdProperty","ngZoneInstanceId","hasPendingMacrotasks","hasPendingMicrotasks","isStable","onUnstable","onMicrotaskEmpty","onStable","enableLongStackTrace","shouldCoalesceEventChangeDetection","shouldCoalesceRunChangeDetection","scheduleInRootZone","assertZonePatched","_nesting","_outer","_inner","TaskTrackingZoneSpec","longStackTraceZoneSpec","callbackScheduled","forkInnerZoneWithAngularBehavior","delayChangeDetectionForEventsDelegate","delayChangeDetectionForEvents","scheduleCheckStable","updateMicroTaskStatus","isCheckStableRunning","checkStable","ug","Mg","onInvokeTask","applyThis","applyArgs","shouldBeIgnoredByZone","hasApplyArgsData","invokeTask","onEnter","onLeave","onInvoke","isSchedulerTick","onHasTask","hasTaskState","hasTask","_hasPendingMicrotasks","microTask","macroTask","onHandleError","isInAngularZone","assertInAngularZone","assertNotInAngularZone","runTask","scheduleEventTask","EMPTY_PAYLOAD","cancelTask","runGuarded","NoopNgZone","_console","_findOriginalError","INTERNAL_APPLICATION_ERROR_HANDLER","userErrorHandler","injectElementRef","createElementRef","ElementRef","unwrapElementRef","symbolIterator","_results","QueryList","_changes","_emitDistinctChangesOnly","_onDirty","_changesDetected","resultsTree","identityAccessor","newResultFlat","arrayEquals","valueA","valueB","notifyOnChanges","onDirty","setDirty","hasInSkipHydrationBlockFlag","TRACKED_LVIEWS","uniqueIdCounter","unregisterLView","MONKEY_PATCH_KEY_NAME","attachPatchData","registerLView","getFirstLContainer","getNearestLContainer","getNextLContainer","viewOrContainer","setDocument","APP_ID","DEFAULT_APP_ID","PLATFORM_INITIALIZER","CSP_NONCE","_retrieveHydrationInfoImpl","retrieveHydrationInfo","rNode","PRESERVE_HOST_CONTENT","policy$1","policy","trustedHTMLFromString","getPolicy$1","trustedTypes","createPolicy","createHTML","createScript","createScriptURL","getPolicy","trustedHTMLFromStringBypass","trustedScriptURLFromStringBypass","SafeValueImpl","changingThisBreaksApplicationSecurity","SafeHtmlImpl","getTypeName","SafeStyleImpl","SafeScriptImpl","SafeUrlImpl","SafeResourceUrlImpl","unwrapSafeValue","allowSanitizationBypassAndThrow","actualType","getSanitizationBypassType","bypassSanitizationTrustHtml","trustedHtml","bypassSanitizationTrustStyle","trustedStyle","bypassSanitizationTrustScript","trustedScript","bypassSanitizationTrustUrl","trustedUrl","bypassSanitizationTrustResourceUrl","trustedResourceUrl","getInertBodyHelper","defaultDoc","inertDocumentHelper","InertDocumentHelper","isDOMParserAvailable","DOMParserHelper","getInertBodyElement","inertDocument","createHTMLDocument","templateEl","SAFE_URL_PATTERN","_sanitizeUrl","tagSet","sets","VOID_ELEMENTS","OPTIONAL_END_TAG_BLOCK_ELEMENTS","OPTIONAL_END_TAG_INLINE_ELEMENTS","VALID_ELEMENTS","URI_ATTRS","VALID_ATTRS","SKIP_TRAVERSING_CONTENT_IF_INVALID_ELEMENTS","SanitizingHtmlSerializer","sanitizedSomething","sanitizeChildren","traverseContent","parentNodes","ELEMENT_NODE","startElement","TEXT_NODE","getFirstChild","endElement","getNextSibling","getNodeName","elAttrs","elAttr","encodeEntities","previousSibling","clobberedElementError","isClobberedElement","compareDocumentPosition","DOCUMENT_POSITION_CONTAINED_BY","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","inertBodyHelper","_sanitizeHtml","unsafeHtmlInput","inertBodyElement","unsafeHtml","mXSSAttempts","parsedHtml","getTemplateContent","isTemplateElement","SecurityContext","HTML","STYLE","SCRIPT","RESOURCE_URL","ɵɵsanitizeHtml","sanitizer","getSanitizer","sanitize","ɵɵsanitizeUrl","unsafeUrl","ɵɵsanitizeResourceUrl","unsafeResourceUrl","ɵɵsanitizeUrlOrResourceUrl","getUrlSanitizer","COMMENT_DISALLOWED","COMMENT_DELIMITER","COMMENT_DELIMITER_ESCAPED","ɵɵresolveWindow","ɵɵresolveDocument","maybeUnwrapFn","Important","_icuContainerIterate","icuContainerIterate","tIcuContainerNode","applyToElementOrContainer","lNodeToHandle","beforeNode","lContainer","isComponent","nativeAppendChild","nativeInsertBefore","nativeRemoveNode","applyContainer","parentRElement","applyView","createTextNode","updateTextNode","createCommentNode","escapeCommentText","createElementNode","detachViewFromDOM","trackMovedView","declarationContainer","movedViews","detachMovedView","declarationViewIndex","detachView","removeIndex","indexInContainer","viewToDetach","declarationLContainer","removedLView","removeViewFromDOM","lQueries","destroyLView","destroyViewTree","rootView","lViewOrLContainer","cleanUpView","firstView","consumerDestroy$1","executeOnDestroys","toCall","callContext","processCleanups","tCleanup","lCleanup","targetIdx","destroyHooksFn","getParentRElement","getClosestRElement","nativeAppendOrInsertBefore","nativeParentNode","getInsertInFrontOfRNode","_getInsertInFrontOfRNodeWithI18n","getInsertInFrontOfRNodeWithNoI18n","_processI18nInsertBefore","setI18nHandling","getInsertInFrontOfRNodeWithI18n","processI18nInsertBefore","childRNode","childTNode","parentRNode","anchorNode","getFirstNativeNode","tNodeType","getBeforeNodeForView","elIcuContainerChild","rNodeOrLContainer","projectionNodes","getProjectionNodes","projection","viewIndexInContainer","nextViewIndex","firstTNodeOfView","applyNodes","isProjection","rawSlotValue","nextRNode","applyProjectionRecursive","projectionNext","tProjectionNode","componentLView","nodeToProjectOrRNodes","nodeToProject","projectedComponentLView","writeDirectClass","setupStaticAttributes","mergedAttrs","writeDirectStyle","NO_CHANGE","ɵɵadvance","selectIndexInternal","checkNoChangesMode","ɵɵdirectiveInject","ɵɵinvalidFactory","writeToDirectiveInput","SIGNAL$1","transformFn","createLView","tHostNode","hydrationInfo","getUniqueLViewId","getOrCreateTNode","createTNodeAtIndex","createTNode","tParent","insertBeforeIndex","directiveStylingLast","propertyBindings","localNames","initialInputs","stylesWithoutHost","residualStyles","classesWithoutHost","residualClasses","classBindings","styleBindings","allocExpando","numSlotsToAlloc","allocIdx","executeTemplate","templateFn","prevSelectedIndex","isUpdatePhase","executeContentQueries","createDirectivesInstances","instantiateAllDirectives","addComponentLogic","hostTNode","getOrCreateComponentTView","lViewFlags","componentView","addToViewTree","rendererFactory","setInputsFromAttrs","invokeDirectivesHostBindings","saveResolvedLocalsInData","viewData","localRefExtractor","localIndex","incompleteFirstPass","createTView","directives","pipes","constsOrFactory","ssrId","initialViewLength","createViewBlueprint","queries","expandoStartIndex","hostBindingOpCodes","firstUpdatePass","staticViewQueries","staticContentQueries","components","directiveRegistry","pipeRegistry","_applyRootElementTransformImpl","captureNodeBindings","aliasMap","bindingsResult","hostDirectiveAliasMap","internalName","finalPublicName","addPropertyBinding","bindings","elementPropertyInternal","nativeOnly","dataValue","inputData","setInputsForProperty","markDirtyIfOnPush","viewIndex","childComponentLView","mapPropName","resolveDirectives","localRefs","exportsMap","matchResult","findDirectiveDefMatches","hostDirectiveDefs","hostDirectiveMatches","markAsComponentHost","initializeDirectives","cacheMatchingLocalNames","initTNodeFlags","numberOfDirectives","preOrderHooksFound","preOrderCheckHooksFound","directiveIdx","configureViewWithDirective","saveNameToExportMap","lifeCycleHooks","initializeInputAndOutputAliases","hostDirectiveDefinitionMap","tViewData","tNodeAttrs","inputsFromAttrs","inputsStore","outputsStore","aliasData","aliasedOutputs","generateInitialInputs","getCurrentDirectiveIndex","dirIndex","invokeHostBindingsInCreationMode","directiveFactory","nodeInjectorFactory","registerHostBindingOpCodes","directiveVarsIdx","elementIndx","lastSelectedElementIdx","elementAttributeInternal","setElementAttribute","initialInputData","inputsToStore","createLContainer","hostNative","refreshContentQueries","directiveDefIdx","executeViewQueryFn","viewQueryFn","getOrCreateLViewCleanup","getOrCreateTViewCleanup","loadComponentRenderer","currentDef","unwrapLView","textBindingInternal","renderComponent","hostLView","componentHostIdx","componentTView","syncViewWithBlueprint","hostRNode","renderView","finishViewCreation","renderChildComponents","createAndRenderEmbeddedLView","declarationLView","templateTNode","embeddedTView","embeddedLView","dehydratedView","declarationViewLQueries","getLViewFromLContainer","adjustedIndex","shouldAddViewToDom","addLViewToLContainer","addToDOM","insertView","containerLength","addViewToDOM","parentNativeNode","removeLViewFromLContainer","collectNativeNodes","lNode","collectNativeNodesInLContainer","nodesInSlot","lViewInAContainer","lViewFirstChildTNode","freeConsumers","REACTIVE_LVIEW_CONSUMER_NODE","REACTIVE_NODE$1","TEMPORARY_CONSUMER_NODE","viewShouldHaveReactiveConsumer","MAXIMUM_REFRESH_RERUNS$1","detectChangesInternal","notifyErrorHandler","detectChangesInViewWhileDirty","lastIsRefreshingViewsValue","detectChangesInView","retries","inlineEffectRunner","refreshView","returnConsumerToPool","currentConsumer","getOrBorrowReactiveLViewConsumer","borrowReactiveLViewConsumer","consumerBeforeComputation$1","getActiveConsumer","getActiveConsumer$1","getOrCreateTemporaryConsumer","setBindingIndex","hooksInitPhaseCompleted","markTransplantedViewsForRefresh","detectChangesInEmbeddedViews","processHostBindingOpCodes","opCode","bindingRootIndx","hostBindingFn","detectChangesInChildComponents","notifyEffect","consumerAfterComputation$1","maybeReturnReactiveLViewConsumer","detectChangesInViewIfAttached","detectChangesInComponent","shouldRefreshView","consumerPollProducersForChange$1","markViewDirty","dirtyBitsToUse","ViewRef$1","rootNodes","_cdRefInjectingView","_appRef","_attachedToViewContainer","viewRefs","detach","reattach","checkNoChanges","attachToViewContainerRef","detachFromAppRef","attachToAppRef","appRef","TemplateRef","injectTemplateRef","ViewEngineTemplateRef","R3TemplateRef","_declarationLView","_declarationTContainer","createEmbeddedViewImpl","createTemplateRef","tNodeInsertBeforeIndex","i18nParent","anchorRNode","addTNodeAndUpdateInsertBeforeIndex","previousTNodes","newTNode","existingTNode","isI18nText","isNewTNodeCreatedBefore","getInsertBeforeIndex","setInsertBeforeIndex","getTIcu","createTNodePlaceholder","getCurrentICUCaseIndex","tIcu","currentCase","currentCaseLViewIndex","getParentFromIcuCreateOpCode","mergedCode","getRefFromIcuCreateOpCode","enterIcu","removes","icuContainerIteratorNext","removeOpCode","loadIcuContainerVisitor","icuContainerIteratorStart","_prepareI18nBlockForHydrationImpl","_claimDehydratedIcuCaseImpl","_findMatchingDehydratedViewImpl","findMatchingDehydratedView","ChangeDetectionScheduler","ZONELESS_ENABLED","ZONELESS_SCHEDULER_DISABLED","SCHEDULE_IN_ROOT_ZONE","ComponentRef$1","ComponentFactory$1","_NullComponentFactoryResolver","resolveComponentFactory","noComponentFactoryError","ComponentFactoryResolver$1","Renderer2","injectRenderer2","nodeAtIndex","Sanitizer","isNgModule","computeStaticStyling","writeToHost","ComponentFactoryResolver","ComponentFactory","toRefArray","isInputMap","templateName","isSignal","refArray","componentType","stringifyCSSSelectorList","selectorList","isBoundToModule","projectableNodes","rootSelectorOrNode","environmentInjector","realEnvironmentInjector","rootViewInjector","hostRenderer","elementName","locateHostElement","elementOrSelector","applyRootElementTransform","getNamespace","rootFlags","rootTView","rootLView","tElementNode","rootComponentDef","rootDirectives","createRootComponentTNode","createRootComponentView","applyRootComponentStyling","viewRenderer","setRootNodeAttributes","extractAttrsAndClassesFromSelector","projectNodes","nodesforSlot","createRootComponent","hostFeatures","rootTNode","LifecycleHooksFeature","ComponentRef","_rootLView","previousInputValues","changeDetectorRef","ViewContainerRef","injectViewContainerRef","createContainerRef","VE_ViewContainerRef","R3ViewContainerRef","_lContainer","_hostTNode","_hostLView","getViewRefs","indexOrOptions","viewRef","insertImpl","createComponent","componentFactoryOrType","isComponentFactory","ngModuleRef","componentFactory","contextInjector","componentRef","viewAttachedToContainer","prevIdx","prevLContainer","prevVCRef","adjustedIdx","_adjustIndex","getOrCreateViewRefs","newIndex","viewRefsArr","detachedView","_locateOrCreateAnchorNode","createAnchorNode","commentNode","insertAnchorNode","nativeNextSibling","_populateDehydratedViewsInLContainer","LQuery_","queryList","LQueries_","tQueries","noOfInheritedQueries","viewLQueries","tQuery","getByIndex","indexInDeclarationView","dirtyQueriesWithMatches","getTQuery","TQueryMetadata_","splitQueryMultiSelectors","TQueries_","elementEnd","queriesForTemplateRef","childQueryIndex","tqueryClone","tquery","TQuery_","crossesNgTemplate","_appliesToNextNode","_declarationNodeIndex","isApplyingToNode","matchTNode","addMatch","declarationNodeIdx","matchTNodeWithReadOption","getIdxOfMatchingSelector","nodeMatchIdx","directiveOrProviderIdx","tNodeIdx","createResultForNode","matchingIdx","createResultByTNodeType","createSpecialToken","materializeViewResults","queryIndex","lQuery","tQueryMatches","matchedNodeIdx","collectQueryResults","lViewResults","embeddedLViews","createLQuery","storeCleanupWithContext","cleanupFn","createTQuery","getQueryResults","markedFeatures","performanceMarkFeature","signalFn","createSignal","createSignal$1","signalSetFn$1","updateFn","signalUpdateFn","signalUpdateFn$1","asReadonly","signalAsReadonlyFn","readonlyFn","isWritableSignal","ɵɵInheritDefinitionFeature","superType","getSuperType","shouldInheritFields","inheritanceChain","superDef","writeableDef","maybeUnwrapEmpty","superHostBindings","inheritHostBindings","superViewQuery","superContentQueries","inheritViewQuery","inheritContentQueries","mergeInputsWithTransforms","defData","mergeHostAttrsAcrossInheritance","minifiedName","prevViewQuery","prevContentQueries","prevHostBindings","ɵɵHostDirectivesFeature","rawHostDirectives","isEager","createHostDirectiveDef","matchedDefs","configOrFn","trackHostDirectiveDef","hostDirectiveDef","patchDeclaredInputs","exposedInputs","bindingArrayToMap","ɵɵInputTransformsFeature","NgModuleRef$1","NgModuleFactory$1","createNgModule","NgModuleRef","_parent","runInjectorInitializers","_bootstrapComponents","destroyCbs","componentFactoryResolver","_r3Injector","NgModuleFactory","moduleType","EnvironmentNgModuleRefAdapter","debugName","runEnvironmentInitializers","createEnvironmentInjector","isListLikeIterable","isJsObject","updateBinding","getBinding","bindingUpdated","bindingUpdated2","exp1","exp2","different","bindingUpdated3","exp3","bindingUpdated4","exp4","declareTemplate","declarationTView","localRefsIndex","templateFirstCreatePass","tViewConsts","_locateOrCreateContainerAnchor","populateDehydratedViewsInLContainer","ɵɵtemplate","attrsIndex","createContainerAnchorImpl","AfterRenderPhase","EarlyRead","Write","MixedReadWrite","AfterRenderManager","AfterRenderImpl","sequences","deferredRegistrations","executing","PHASES","erroredOrDestroyed","pipelinedValue","afterRun","unregister","AfterRenderSequence","unregisterOnDestroy","afterRender","callbackOrSpec","afterRenderImpl","NOOP_AFTER_RENDER_REF","afterNextRender","manualCleanup","getHooks","earlyRead","mixedReadWrite","ɵɵattribute","interpolation1","v0","interpolation2","v1","interpolation3","v2","interpolation4","v3","ɵɵattributeInterpolate1","interpolatedValue","toTStylingRange","getTStylingRangePrev","tStylingRange","setTStylingRangePrevDuplicate","getTStylingRangeNext","setTStylingRangeNext","setTStylingRangeNextDuplicate","markDuplicates","tStylingKey","isPrevDir","tStylingAtIndex","foundDuplicate","tStyleRangeAtCursor","isStylingMatch","tStylingKeyCursor","parserState","textEnd","keyEnd","getLastParsedKey","getLastParsedValue","parseClassNameNext","consumeClassToken","consumeWhitespace","parseStyleNext","consumeStyleKey","consumeSeparator","consumeStyleValue","ch1","ch2","ch3","lastChIndex","consumeQuotedText","resetParserState","quoteCharCode","ɵɵproperty","setDirectiveInputsWhichShadowsStyling","isClassBased","ɵɵstyleProp","checkStylingProperty","ɵɵclassProp","ɵɵstyleMap","checkStylingMap","styleKeyValueArraySet","styleStringParser","parseStyle","ɵɵclassMap","classKeyValueArraySet","classStringParser","parseClassName","stylingFirstUpdatePass","updateStyling","normalizeSuffix","stringParser","hasStylingInputShadow","isInHostBindings","staticPrefix","updateStylingMap","oldKeyValueArray","newKeyValueArray","oldIndex","oldKey","setKey","toStylingKeyValueArray","styleKeyValueArray","unwrappedValue","isHostBindings","wrapInStaticStylingKey","stylingKey","residual","collectStylingFromTAttrs","collectStylingFromDirectives","templateStylingKey","getTemplateHeadTStylingKey","setTemplateHeadTStylingKey","collectResidual","insertTStylingBinding","tStylingKeyWithStatic","isHostBinding","isClassBinding","tBindings","tmplHead","tmplTail","isKeyDuplicateOfStatic","setTStylingRangePrev","markDuplicateOfResidualStyling","currentDirective","desiredMarker","currentMarker","stringKey","tRange","higherPriorityValue","getTStylingRangeNextDuplicate","findStylingValue","isStylingValuePresent","getTStylingRangePrevDuplicate","applyStyling","isPrevDirection","rawKey","containsStatics","isStylingMap","valueAtLViewIndex","ɵɵclassMapInterpolate1","ɵɵclassMapInterpolate2","ɵɵclassMapInterpolate3","ɵɵclassMapInterpolate4","LiveCollection","updateValue","swap","endItem","startItem","prevIndex","newIdx","valuesMatching","liveIdx","liveValue","trackBy","attachPreviouslyDetached","prevCollection","detachedItems","createOrAttach","liveCollection","trackByFn","initLiveItemsInTheFuture","UniqueValueMultiKeyMap","kvMap","_vMap","vMap","ɵɵconditional","matchingTemplateIndex","contextValue","prevMatchingTemplateIndex","prevContainer","getLContainer","nextLContainerIndex","nextContainer","getExistingTNode","RepeaterContext","$index","$count","ɵɵrepeaterTrackByIndex","ɵɵrepeaterTrackByIdentity","RepeaterMetadata","hasEmptyBlock","ɵɵrepeaterCreate","trackByUsesComponentInstance","emptyTemplateFn","emptyDecls","emptyVars","emptyTagName","emptyAttrsIndex","boundTrackBy","LiveCollectionLContainerImpl","operationsCounter","needsIndexUpdate","detachExistingView","recordCreate","recordDestroy","updateIndexes","getExistingLViewFromLContainer","ɵɵrepeater","metadataSlotIdx","hostTView","containerIndex","itemTemplateTNode","reconcile","newCollection","liveKeysInTheFuture","liveStartIdx","liveEndIdx","newEndIdx","liveStartValue","newStartValue","isStartMatching","liveEndValue","newEndValue","isEndMatching","liveStartKey","liveEndKey","newStartKey","newEndKey","newCollectionIterator","newIterationResult","liveKey","isCollectionEmpty","emptyTemplateIndex","lContainerForEmpty","emptyTemplateTNode","ɵɵelementStart","elementStartFirstCreatePass","_locateOrCreateElementNode","hasDirectives","isDetachedByI18n","getElementDepthCount","increaseElementDepthCount","ɵɵelementEnd","isSkipHydrationRootTNode","leaveSkipHydrationBlock","decreaseElementDepthCount","hasClassInput","hasStyleInput","ɵɵelement","getNamespace$1","ɵɵelementContainerStart","elementContainerStartFirstCreatePass","_locateOrCreateElementContainerNode","ɵɵelementContainerEnd","ɵɵelementContainer","ɵɵgetCurrentView","ɵɵhostProperty","ɵɵsyntheticHostProperty","localeEn","plural","LOCALE_DATA","findLocaleData","normalizedLocale","normalizeLocale","getLocaleData","parentLocale","getLocalePluralCase","LocaleDataIndex","PluralCase","ng","common","locales","FirstDayOfWeek","WeekendRange","CurrencyCode","CurrencySymbol","CurrencyName","Directionality","pluralMapping","DEFAULT_LOCALE_ID","ELEMENT_MARKER","ICU_MARKER","I18nCreateOpCode","APPEND_EAGERLY","LOCALE_ID$1","changeMask","changeMaskCounter","_locateOrCreateNode","textOrName","createNodeWithoutHydration","COMMENT_NODE","applyMutableOpCodes","mutableOpCodes","rootRNode","rootIdx","textNodeIndex","parentIdx","insertInFrontOf","refIdx","caseIndex","commentValue","commentNodeIndex","elementNodeIndex","applyUpdateOpCodes","updateOpCodes","bindingsStartIndex","checkBit","skipCodes","sanitizeFn","tNodeOrTagName","rText","applyIcuSwitchCase","applyIcuUpdateCase","activeCaseIndex","getCaseIndex","icuExpression","bindingValue","cases","resolvedCase","getPluralCase","applyIcuSwitchCaseRemove","claimDehydratedIcuCase","icuIndex","removeCodes","nodeOrIcuIndex","BINDING_REGEXP","ICU_REGEXP","NESTED_ICU","ICU_BLOCK_REGEXP","SUBTEMPLATE_REGEXP","PH_REGEXP","NGSP_UNICODE_REGEXP","createTNodeAndAddOpCode","existingTNodes","createOpCodes","isICU","i18nNodeIdx","ensureIcuContainerVisitorLoaded","loader","setTNodeInsertBeforeIndex","i18nStartFirstCreatePassProcessTextNode","hasBinding","generateBindingUpdateOpCodes","destinationNode","bindingStart","maskIndex","sizeIndex","textParts","textValue","toMaskBit","countBindings","opCodes","removeInnerTemplateTranslation","tagMatched","inTemplate","icuStart","bindingMask","addUpdateIcuSwitch","mainBinding","setTIcu","valueArr","nestedIcus","caseAst","parseIcuCase","addUpdateIcuUpdate","parseICUBlock","icuType","i18nParseTextIntoPartsAndICU","prevPos","braceStack","braces","caseName","unsafeCaseHtml","inertRootNode","walkIcuTree","sharedUpdateOpCodes","addCreateNodeAndAppend","lowerAttrName","addCreateAttribute","elementNode","addRemoveNode","isNestedIcu","addRemoveNestedIcu","appendToParentIdx","createAtIdx","icuCreateOpCode","ɵɵi18nStart","messageIndex","subTemplateIndex","i18nStartFirstCreatePass","parentTNodeIndex","existingTNodeStack","astStack","getTranslationForTemplate","isRootTemplateMessage","msgParts","replaceNgsp","isClosing","placeholderNode","icuNodeIndex","tI18n","prepareI18nBlockForHydration","applyCreateOpCodes","appendNow","ɵɵi18n","ɵɵi18nEnd","ɵɵi18nAttributes","i18nAttributesFirstPass","previousElementIndex","ɵɵi18nExp","setMaskBit","hasChange","ɵɵi18nApply","applyI18n","stashEventListener","listenerFn","ɵɵlistener","eventTargetResolver","listenerInternal","isTNodeDirectiveHost","processOutputs","lCleanupIndex","idxOrTargetGetter","existingListener","findExistingListener","cleanupEventName","listenerIdxInLCleanup","__ngLastListenerFn__","__ngNextListenerFn__","wrapListener","executeListenerWithErrorHandling","wrapListenerIn_markDirtyAndPreventDefault","nextListenerFn","ɵɵnextContext","nextContextImpl","walkUpViews","nestingLevel","matchingProjectionSlotIndex","projectionSlots","wildcardNgContentIndex","ngProjectAsAttrVal","getProjectAsAttrValue","ngProjectAsAttrIdx","ɵɵprojectionDef","componentNode","projectionHeads","newArray","tails","componentChild","slotIndex","ɵɵprojection","selectorIndex","fallbackTemplateFn","fallbackDecls","fallbackVars","fallbackIndex","isNodeCreationMode","insertFallbackContent","fallbackTNode","fallbackLContainer","applyProjection","ɵɵpropertyInterpolate","ɵɵpropertyInterpolate1","ɵɵpropertyInterpolate2","ɵɵcontentQuery","createContentQuery","saveContentQueryAndDirectiveIndex","tViewContentQueries","ɵɵviewQuery","createViewQuery","ɵɵqueryRefresh","isCreationMode","ɵɵloadQuery","loadQueryInternal","ɵɵreference","getContextLView","ɵɵtext","textNative","_locateOrCreateTextNode","ɵɵtextInterpolate","ɵɵtextInterpolate1","interpolated","ɵɵtextInterpolate2","ɵɵtextInterpolate3","ɵɵtextInterpolate4","ɵɵtextInterpolate5","v4","interpolation5","ɵɵtwoWayProperty","ɵɵtwoWayBindingSet","canWrite","ɵɵtwoWayListener","resolveProvider","lInjectablesBlueprint","providerFactory","beginIndex","existingFactoryIndex","registerDestroyHooksIfSupported","existingProvidersFactoryIndex","existingViewProvidersFactoryIndex","doesViewProvidersFactoryExist","multiFactory","factoryFn","componentProviders","multiFactoryAdd","multiViewProvidersFactoryResolver","multiProvidersFactoryResolver","contextIndex","indexInFactory","providerIsTypeProvider","providerIsClassProvider","isClassProvider","existingCallbacksIndex","isComponentProvider","lData","multiResolve","factories","componentCount","multiProviders","ɵɵProvidersFeature","viewProviders","processProvidersFn","StandaloneService","_injector","cachedInjectors","getOrCreateStandaloneInjector","standaloneInjector","ɵɵStandaloneFeature","ɵɵsetComponentScope","ɵɵpureFunction0","slotOffset","pureFn","ɵɵpureFunction1","pureFunction1Internal","ɵɵpureFunction2","pureFunction2Internal","ɵɵpureFunction3","pureFunction3Internal","ɵɵpureFunction4","pureFunction4Internal","ɵɵpureFunction5","exp5","ɵɵpureFunction6","exp6","ɵɵpureFunction7","exp7","ɵɵpureFunction8","exp8","ɵɵpureFunctionV","exps","pureFunctionVInternal","bindingRoot","getPureFunctionReturnValue","returnValueIndex","lastReturnValue","ɵɵpipe","pipeName","getPipeDef","pipeFactory","pipeInstance","ɵɵpipeBind1","isPure","ɵɵpipeBind2","ɵɵpipeBind3","ɵɵpipeBind4","ɵɵtemplateRefExtractor","major","Console","TESTABILITY","TESTABILITY_GETTER","_testabilityGetter","Testability","testabilityGetter","_isZoneStable","taskTrackingZone","setTestabilityGetter","addToWindow","_watchAngularEvents","_runCallbacksIfReady","doneCb","getPendingTasks","updateCb","macroTasks","creationLocation","addCallback","whenStable","registerApplication","unregisterApplication","findProviders","using","exactMatch","TestabilityRegistry","_applications","testability","unregisterAllApplications","getTestability","getAllTestabilities","getAllRootElements","findTestabilityInTree","findInAncestors","isSubscribable","APP_INITIALIZER","ApplicationInitStatus","donePromise","rej","appInits","runInitializers","asyncInitPromises","initResult","observableAsPromise","APP_BOOTSTRAP_LISTENER","optionsReducer","objs","ApplicationRef","_bootstrapListeners","_runningTick","_destroyListeners","_views","internalErrorHandler","afterRenderManager","zonelessEnabled","dirtyFlags","deferredDirtyFlags","externalTestViews","afterTick","componentTypes","allViews","stable","componentOrFactory","compRef","_loadComponent","synchronize","runs","synchronizeOnce","useGlobalCheck","detectChangesInViewIfRequired","syncDirtyFlagsWithViews","attachView","viewCount","warnIfDestroyed","isFirstPass","ModuleWithComponentFactories","ngModuleFactory","componentFactories","Compiler","compileModuleSync","compileModuleAsync","compileModuleAndAllComponentsSync","declaration","compileModuleAndAllComponentsAsync","clearCacheFor","getModuleId","NgZoneChangeDetectionScheduler","applicationRef","_onMicrotaskEmptySubscription","runningTick","internalProvideZoneChangeDetection","ngZoneFactory","ignoreChangesOutsideZone","getNgZoneOptions","ngZoneChangeDetectionScheduler","ZoneStablePendingTask","eventCoalescing","runCoalescing","ChangeDetectionSchedulerImpl","taskService","disableScheduling","zoneIsDefined","schedulerTickApplyArgs","__scheduler_tick__","subscriptions","angularZoneId","cancelScheduledCallback","useMicrotaskScheduler","pendingRenderTaskId","shouldScheduleTick","scheduleCallback","getGlobalLocale","$localize","DEFAULT_CURRENCY_CODE","PLATFORM_DESTROY_LISTENERS","isApplicationBootstrapConfig","moduleRef","PlatformRef","_modules","bootstrapModuleFactory","moduleFactory","allAppProviders","getNgZone","ngZoneToUse","ngZoneEventCoalescing","ngZoneRunCoalescing","createNgModuleRefWithProviders","envInjector","r3Injector","exceptionHandler","onErrorSubscription","destroyListener","onPlatformDestroyListeners","platformInjector","allPlatformModules","_callAndReportToErrorHandler","initStatus","setLocaleId","rootComponent","moduleDoBootstrap","ngDoBootstrap","compilerOptions","compileNgModuleFactory","destroyListeners","_platformInjector","ALLOW_MULTIPLE_PLATFORMS","createPlatformFactory","parentPlatformFactory","extraProviders","getPlatform","platformProviders","createPlatform","publishSignalConfiguration","setThrowInvalidWriteToSignalError","setThrowInvalidWriteToSignalError$1","runPlatformInitializers","createPlatformInjector","assertPlatform","isDevMode","ChangeDetectorRef","injectChangeDetectorRef","createViewRef","isPipe","DefaultIterableDifferFactory","supports","DefaultIterableDiffer","trackByIdentity","_linkedRecords","_unlinkedRecords","_previousItHead","_itHead","_itTail","_additionsHead","_additionsTail","_movesHead","_movesTail","_removalsHead","_removalsTail","_identityChangesHead","_identityChangesTail","nextIt","nextRemove","addRemoveOffset","moveOffsets","getPreviousIndex","adjPreviousIndex","_nextRemoved","localMovePreviousIndex","localCurrentIndex","forEachPreviousItem","_nextPrevious","_nextAdded","forEachMovedItem","_nextMoved","_nextIdentityChange","itemTrackBy","mayBeDirty","trackById","_verifyReinsertion","_addIdentityChange","_mismatch","iterateListLike","_truncate","isDirty","previousRecord","_prev","_reinsertAfter","_moveAfter","_addAfter","IterableChangeRecord_","reinsertRecord","_addToMoves","nextRecord","_addToRemovals","_unlink","prevRecord","_prevRemoved","_insertAfter","_DuplicateMap","toIndex","_prevDup","_nextDup","_DuplicateItemRecordList","atOrAfterIndex","duplicates","recordList","moveOffset","DefaultKeyValueDifferFactory","DefaultKeyValueDiffer","_records","_mapHead","_appendAfter","_previousMapHead","_changesHead","_changesTail","_nextChanged","_forEach","_maybeAddToChanges","_getOrCreateRecordForKey","_insertBeforeOrAppend","KeyValueChangeRecord_","_addToAdditions","_addToChanges","defaultIterableDiffersFactory","IterableDiffers","defaultKeyValueDiffersFactory","KeyValueDiffers","platformCore","ApplicationModule","booleanAttribute","createComputed","createComputed$1","nonReactiveReadsFn","elementInjector","reflectComponentType","destroyed$","BaseControlValueAccessor","_elementRef","onTouched","registerOnTouched","registerOnChange","setDisabledState","BuiltInControlValueAccessor","ɵBuiltInControlValueAccessor_BaseFactory","NG_VALUE_ACCESSOR","CHECKBOX_VALUE_ACCESSOR","CheckboxControlValueAccessor","writeValue","ɵCheckboxControlValueAccessor_BaseFactory","DEFAULT_VALUE_ACCESSOR","DefaultValueAccessor","COMPOSITION_BUFFER_MODE","_compositionMode","_composing","_isAndroid","ɵgetDOM","getUserAgent","_handleInput","_compositionStart","_compositionEnd","isEmptyInputValue","hasValidLength","NG_VALIDATORS","NG_ASYNC_VALIDATORS","EMAIL_REGEXP","Validators","minValidator","maxValidator","control","requiredValidator","requiredTrue","requiredTrueValidator","emailValidator","minLengthValidator","maxLengthValidator","patternValidator","nullValidator","validators","composeAsync","minlength","requiredLength","actualLength","maxlength","regexStr","requiredPattern","actualValue","toObservable","mergeErrors","arrayOfErrors","executeValidators","normalizeValidators","isValidatorFn","presentValidators","composeValidators","composeAsyncValidators","mergeValidators","controlValidators","dirValidator","getControlValidators","_rawValidators","getControlAsyncValidators","_rawAsyncValidators","makeValidatorsArray","hasValidator","addValidators","currentValidators","validatorsToAdd","removeValidators","AbstractControlDirective","_onDestroyCallbacks","pristine","untouched","statusChanges","valueChanges","_setValidators","_composedValidatorFn","_setAsyncValidators","_composedAsyncValidatorFn","asyncValidator","_registerOnDestroy","_invokeOnDestroyCallbacks","getError","ControlContainer","formDirective","NgControl","valueAccessor","AbstractControlStatus","cd","_cd","isTouched","_touched","isUntouched","isPristine","_pristine","isInvalid","isPending","isSubmitted","_submitted","submitted","NgControlStatus","NgControlStatusGroup","VALID","INVALID","DISABLED","ControlEvent","ValueChangeEvent","PristineChangeEvent","TouchedChangeEvent","StatusChangeEvent","FormSubmittedEvent","FormResetEvent","pickValidators","validatorOrOpts","isOptionsObj","pickAsyncValidators","asyncValidators","assertControlPresent","isGroup","assertAllValuesPresent","_forEachChild","AbstractControl","_pendingDirty","_hasOwnPendingAsyncValidator","_pendingTouched","_onCollectionChange","statusReactive","pristineReactive","touchedReactive","_onDisabledChange","_assignValidators","_assignAsyncValidators","validatorFn","asyncValidatorFn","updateOn","_updateOn","setValidators","setAsyncValidators","addAsyncValidators","removeAsyncValidators","hasAsyncValidator","clearValidators","clearAsyncValidators","markAsTouched","sourceControl","onlySelf","markAllAsTouched","markAsUntouched","_updateTouched","markAsDirty","markAsPristine","_updatePristine","markAsPending","skipPristineCheck","_parentMarkedDirty","_updateValue","_updateAncestors","changeFn","updateValueAndValidity","setParent","getRawValue","_setInitialStatus","shouldHaveEmitted","_cancelExistingSubscription","_runValidator","_calculateStatus","_runAsyncValidator","_updateTreeValidity","ctrl","_allControlsDisabled","_asyncValidationSubscription","setErrors","_updateControlsErrors","currPath","_find","changedControl","_initObservables","_anyControlsHaveStatus","_anyControls","_anyControlsDirty","_anyControlsTouched","newPristine","_registerOnCollectionChange","_setUpdateStrategy","coerceToValidator","coerceToAsyncValidator","FormGroup","_setUpControls","registerControl","addControl","removeControl","setControl","patchValue","_reduceChildren","_syncPendingControls","subtreeUpdated","updated","_reduceValue","FormRecord","CALL_SET_DISABLED_STATE","setDisabledStateDefault","controlPath","setUpControl","callSetDisabledState","setUpValidators","setUpViewChangePipeline","_pendingValue","_pendingChange","updateControl","setUpModelChangePipeline","emitModelEvent","viewToModelUpdate","_unregisterOnChange","setUpBlurPipeline","setUpDisabledChangeHandler","onDisabledChange","registerOnDisabledChange","_unregisterOnDisabledChange","cleanUpControl","validateControlPresenceOnChange","cleanUpValidators","registerOnValidatorChange","onValidatorChange","isControlUpdated","updatedValidators","updatedAsyncValidators","emitModelToViewChange","setUpFormContainer","isPropertyUpdated","viewModel","syncPendingControls","selectValueAccessor","valueAccessors","defaultAccessor","builtinAccessor","customAccessor","isBuiltInAccessor","formDirectiveProvider$1","NgForm","resolvedPromise$1","submittedReactive","_directives","ngSubmit","_findContainer","getControl","addFormGroup","removeFormGroup","getFormGroup","onSubmit","onReset","resetForm","removeListItem","isFormControlState","FormControl","_onChange","_applyFormState","nonNullable","initialValueIsDefault","emitViewToModelChange","AbstractFormGroupDirective","_checkParentType","ɵAbstractFormGroupDirective_BaseFactory","formControlBinding$1","NgModel","resolvedPromise","_changeDetectorRef","_registered","_checkForErrors","_checkName","oldName","_getPath","_setUpControl","_updateDisabled","_isStandalone","_setUpStandalone","disabledValue","ɵNgNoValidate","NUMBER_VALUE_ACCESSOR","NumberValueAccessor","ɵNumberValueAccessor_BaseFactory","RADIO_VALUE_ACCESSOR","RadioControlValueAccessor","RadioControlRegistry","_accessors","_isSameGroup","fireUncheck","controlPair","_control","setDisabledStateFired","_fn","formControlName","NG_MODEL_WITH_FORM_CONTROL_WARNING","formControlBinding","FormControlDirective","_ngModelWarningSentOnce","_ngModelWarningConfig","_ngModelWarningSent","_isControlChanged","previousForm","formDirectiveProvider","FormGroupDirective","_submittedReactive","_updateDomValue","_checkFormPresent","_updateValidators","_updateRegistrations","_oldForm","removeListItem$1","_setUpFormContainer","_cleanUpFormContainer","addFormArray","removeFormArray","getFormArray","oldCtrl","newCtrl","isFormControl","cleanUpFormContainer","formGroupNameProvider","FormGroupName","_hasInvalidParent","formArrayNameProvider","FormArrayName","controlNameBinding","FormControlName","_added","SELECT_VALUE_ACCESSOR","SelectControlValueAccessor","_buildValueString$1","_optionMap","_idCounter","_compareWith","compareWith","_getOptionId","_getOptionValue","_registerOption","_extractId$1","ɵSelectControlValueAccessor_BaseFactory","NgSelectOption","ngValue","_setElementValue","SELECT_MULTIPLE_VALUE_ACCESSOR","SelectMultipleControlValueAccessor","_buildValueString","optionSelectedStateSetter","_setSelected","_extractId","ɵSelectMultipleControlValueAccessor_BaseFactory","ɵNgSelectMultipleOption","toFloat","AbstractValidatorDirective","_validator","inputName","normalizeInput","createValidator","MAX_VALIDATOR","MaxValidator","ɵMaxValidator_BaseFactory","MIN_VALIDATOR","MinValidator","ɵMinValidator_BaseFactory","REQUIRED_VALIDATOR","RequiredValidator","ɵRequiredValidator_BaseFactory","MIN_LENGTH_VALIDATOR","MinLengthValidator","ɵMinLengthValidator_BaseFactory","MAX_LENGTH_VALIDATOR","MaxLengthValidator","ɵMaxLengthValidator_BaseFactory","PATTERN_VALIDATOR","PatternValidator","ɵPatternValidator_BaseFactory","ɵInternalFormsSharedModule","FormArray","_registerControl","isAbstractControlOptions","FormBuilder","useNonNullable","nnfb","reducedControls","_reduceControls","createdControls","_createControl","warnOnNgModelWithFormControl","BLOCK_MARKER$1","$localize$1","messageParts","translation","stripBlock","BLOCK_MARKER","messagePart","rawMessagePart","findEndOfBlock","cooked","cookedIndex","rawIndex","ɵ$localize","GenericBrowserDomAdapter","ɵDomAdapter","supportsDOMEvents","BrowserDomAdapter","makeCurrent","ɵsetRootDomAdapter","onAndCancel","getDefaultDocument","createHtmlDocument","isShadowRoot","DocumentFragment","getBaseElementHref","baseElement","relativePath","baseURI","resetBaseElement","BrowserXhr","EVENT_MANAGER_PLUGINS","EventManager","_eventNameToPlugin","_plugins","_findPluginFor","getZone","EventManagerPlugin","APP_ID_ATTRIBUTE_NAME","SharedStylesHost","nonce","styleRef","hostNodes","styleNodesInDOM","collectServerRenderedStyles","platformIsServer","resetHostNodes","addStyles","changeUsageCount","onStyleAdded","removeStyles","onStyleRemoved","getAllStyles","addHost","hostNode","addStyleToHost","removeHost","styleMap","styleRefValue","usage","getStyleElement","styleEl","styleElRef","NAMESPACE_URIS","xhtml","xlink","xmlns","COMPONENT_REGEX","COMPONENT_VARIABLE","HOST_ATTR","CONTENT_ATTR","REMOVE_STYLES_ON_COMPONENT_DESTROY","shimStylesContent","compId","DomRendererFactory2","eventManager","sharedStylesHost","removeStylesOnCompDestroy","rendererByCompId","defaultRenderer","DefaultDomRenderer2","getOrCreateRenderer","EmulatedEncapsulationDomRenderer2","applyToHost","NoneEncapsulationDomRenderer","applyStyles","ShadowDomRenderer","throwOnSyntheticProps","isTemplateNode","namespaceUri","setAttributeNS","removeAttributeNS","removeProperty","decoratePreventDefault","hostEl","nodeOrShadowRoot","contentAttr","shimContentAttribute","componentShortId","hostAttr","shimHostAttribute","DomEventsPlugin","MODIFIER_KEYS","_keyMap","Del","Esc","Up","Down","Menu","Scroll","Win","MODIFIER_KEY_GETTERS","alt","metaKey","KeyEventsPlugin","parseEventName","outsideHandler","eventCallback","fullKey","domEventName","_normalizeKey","codeIX","modifierName","matchEventFullKeyCode","fullKeyCode","keycode","modifierGetter","keyName","platformBrowser","ɵPLATFORM_BROWSER_ID","initDomAdapter","ɵsetDocument","BROWSER_MODULE_PROVIDERS_MARKER","TESTABILITY_PROVIDERS","ɵTESTABILITY_GETTER","BrowserGetTestability","ɵglobal","getAngularTestability","getAllAngularTestabilities","getAllAngularRootElements","frameworkStabilizers","testabilities","decrement","ɵTESTABILITY","BROWSER_MODULE_PROVIDERS","ɵINJECTOR_SCOPE","providersAlreadyPresent","withServerTransition","setTitle","newTitle","DomSanitizer","__ngConditionalFactory__","DomSanitizerImpl","ɵallowSanitizationBypassAndThrow","ɵunwrapSafeValue","ɵ_sanitizeHtml","ɵ_sanitizeUrl","bypassSecurityTrustHtml","ɵbypassSanitizationTrustHtml","bypassSecurityTrustStyle","ɵbypassSanitizationTrustStyle","bypassSecurityTrustScript","ɵbypassSanitizationTrustScript","bypassSecurityTrustUrl","ɵbypassSanitizationTrustUrl","bypassSecurityTrustResourceUrl","ɵbypassSanitizationTrustResourceUrl","takeLast","PRIMARY_OUTLET","RouteTitleKey","ParamsAsMap","convertToParamMap","defaultUrlMatcher","segmentGroup","hasChildren","posParams","consumed","shallowEqual","getDataKeys","equalArraysOrString","aSorted","bSorted","wrapIntoObservable","pathCompareMap","exact","equalSegmentGroups","containee","matrixParams","equalPath","matrixParamsMatch","numberOfChildren","containsSegmentGroup","paramCompareMap","equalParams","containsParams","ignored","containsTree","fragment","containsSegmentGroupHelper","containeePaths","containerPaths","containeeSegment","UrlTree","UrlSegmentGroup","queryParamMap","_queryParamMap","DEFAULT_SERIALIZER","serializePaths","UrlSegment","parameterMap","_parameterMap","serializePath","as","bs","UrlSerializer","DefaultUrlSerializer","UrlParser","parseRootSegment","parseQueryParams","parseFragment","serializeSegment","serializeQueryParams","strParams","encodeUriQuery","encodeUriFragment","primary","mapChildrenIntoArray","childOutlet","encodeUriString","encodeUriSegment","decodeQuery","serializeMatrixParams","SEGMENT_RE","matchSegments","MATRIX_PARAM_SEGMENT_RE","QUERY_PARAM_RE","QUERY_PARAM_VALUE_RE","consumeOptional","peekStartsWith","parseChildren","parseQueryParam","parseSegment","parseParens","parseMatrixParams","parseParam","matchMatrixKeySegments","valueMatch","matchQueryParams","matchUrlQueryParamValue","decodedKey","decodedVal","currentVal","allowPrimary","outletName","createRoot","rootCandidate","Ee","squashSegmentGroup","newChildren","childCandidate","grandChildOutlet","grandChild","mergeTrivialChildren","isUrlTree","createSegmentGroupFromRoute","targetGroup","rootSegmentGroup","createSegmentGroupFromRouteRecursive","currentRoute","childOutlets","childSnapshot","outlet","createUrlTreeFromSegmentGroup","commands","computeNavigation","Navigation","numberOfDoubleDots","isAbsolute","cmd","cmdIdx","outlets","segmentPath","urlPart","partIndex","toRoot","findStartingPositionForTargetGroup","Position","modifier","isMatrixParams","createPositionApplyingDoubleDots","ci","dd","newSegmentGroup","processChildren","updateSegmentGroupChildren","updateSegmentGroup","isCommandWithOutlets","oldRoot","oldSegmentGroup","qp","replaceSegment","newRoot","oldSegment","newSegment","cmdWithOutlet","prefixedWith","currentCommandIndex","currentPathIndex","noMatch","pathIndex","commandIndex","slicedCommands","createNewSegmentGroup","getOutlets","childrenOfEmptyChild","createNewSegmentChildren","IMPERATIVE_NAVIGATION","EventType","RoutesRecognized","ResolveStart","ResolveEnd","GuardsCheckStart","GuardsCheckEnd","RouteConfigLoadStart","RouteConfigLoadEnd","ChildActivationStart","ChildActivationEnd","ActivationStart","ActivationEnd","NavigationSkipped","RouterEvent","navigationTrigger","restoredState","urlAfterRedirects","NavigationCancellationCode","Redirect","SupersededByNewNavigation","NoDataFromResolver","GuardRejected","NavigationSkippedCode","IgnoredSameUrlNavigation","IgnoredByUrlHandlingStrategy","shouldActivate","snapshot","routeConfig","routerEvent","BeforeActivateRoutes","RedirectRequest","navigationBehaviorOptions","getOutlet","getClosestRouteInjector","_loadedInjector","OutletContext","rootInjector","ChildrenOutletContexts","attachRef","onChildOutletCreated","childName","getOrCreateContext","onChildOutletDestroyed","onOutletDeactivated","onOutletReAttached","Tree","pathFromRoot","findNode","findPath","TreeNode","nodeChildrenAsMap","RouterState","setRouterState","createEmptyState","createEmptyStateSnapshot","activated","ActivatedRouteSnapshot","RouterStateSnapshot","emptyUrl","emptyParams","emptyData","emptyQueryParams","ActivatedRoute","urlSubject","paramsSubject","queryParamsSubject","fragmentSubject","dataSubject","futureSnapshot","_futureSnapshot","_routerState","paramMap","_paramMap","getInherited","loadComponent","_resolvedData","hasStaticTitle","serializeNode","advanceActivatedRoute","nextSnapshot","shallowEqualArrays","equalParamsAndUrlSegments","equalUrlParams","equalSegments","RouterOutlet","_activatedRoute","activateEvents","deactivateEvents","attachEvents","detachEvents","parentContexts","changeDetector","inputBinder","INPUT_BINDER","supportsBindingToComponentInputs","activatedComponentRef","isTrackedInParentContexts","deactivate","initializeOutletWithName","unsubscribeFromRouteData","activateWith","isActivated","activatedRoute","activatedRouteData","bindActivatedRouteToOutletComponent","childContexts","OutletInjector","__ngOutletInjector","RoutedComponentInputBinder","outletDataSubscriptions","subscribeToRouteData","dataSubscription","createNode","routeReuseStrategy","prevState","shouldReuseRoute","createOrReuseChildren","shouldAttach","detachedRouteHandle","retrieve","createActivatedRoute","RedirectCommand","NAVIGATION_CANCELING_ERROR","redirectingNavigationError","urlSerializer","navigationCancelingError","cancellationCode","isNavigationCancelingError","ActivateRoutes","futureState","currState","forwardEvent","inputBindingEnabled","activate","futureRoot","currRoot","deactivateChildRoutes","activateChildRoutes","futureNode","currNode","futureChild","childOutletName","deactivateRoutes","deactivateRouteAndItsChildren","future","shouldDetach","detachAndStoreRouteSubtree","deactivateRouteAndOutlet","treeNode","activateRoutes","stored","CanActivate","CanDeactivate","getAllRouteGuards","getChildRouteGuards","getTokenOrFunctionIdentity","tokenOrFunction","ɵisInjectable","futurePath","checks","canDeactivateChecks","canActivateChecks","prevChildren","getRouteGuards","shouldRun","shouldRunGuardsAndResolvers","runGuardsAndResolvers","isEmptyError","INITIAL_VALUE","prioritizedGuardValue","isRedirect","redirectIfUrlTree","NoMatch","AbsoluteRedirect","urlTree","noMatch$1","ApplyRedirects","lineralizeSegments","applyRedirectCommands","redirectToFn","newRedirect","newTree","applyRedirectCreateUrlTree","createSegmentGroup","createQueryParams","redirectToParams","actualParams","sourceName","updatedSegments","redirectToSegments","actualSegments","findPosParam","findOrReturn","redirectToUrlSegment","consumedSegments","remainingSegments","positionalParamSegments","matchWithChecks","getOrCreateRouteInjectorIfNeeded","currentInjector","runCanMatchGuards","canMatch","canMatchObservables","injectionToken","isCanMatch","createWildcardMatchResult","matcher","slicedSegments","containsEmptyPathMatchesWithNamedOutlets","emptyPathMatch","createChildrenForEmptyPaths","containsEmptyPathMatches","addEmptyPathsToChildrenIfNeeded","primarySegment","NoLeftoversInUrl","Recognizer","configLoader","rootComponentType","applyRedirects","absoluteRedirectCount","allowRedirects","noMatchError","recognize","rootSnapshot","rootNode","routeState","createUrlTreeFromSnapshot","processSegmentGroup","parentRoute","processSegment","sortedConfig","sortByMatchingOutlets","outletChildren","last$1","mergedChildren","mergeEmptyPathMatches","sortActivatedRouteSnapshots","processSegmentAgainstRoute","noLeftoversInUrl","rawSegment","matchSegmentAgainstRoute","expandSegmentAgainstRouteUsingRedirect","_loadedComponent","getResolve","newSegments","getChildConfig","childConfig","childInjector","matchedOnOutlet","_loadedRoutes","runCanLoadGuards","canLoad","canLoadObservables","isCanLoad","shouldLoadResult","canLoadFails","hasEmptyPathConfig","mergedNodes","duplicateEmptyPathNode","resultNode","mergedNode","flattenRouteTree","descendants","switchTap","nextResult","TitleStrategy","pageTitle","getResolvedTitleForRoute","DefaultTitleStrategy","updateTitle","ROUTER_CONFIGURATION","ɵEmptyOutletComponent","standardizeConfig","ROUTES","RouterConfigLoader","componentLoaders","childrenLoaders","compiler","onLoadStartListener","loadRunner","maybeUnwrapDefaultExport","onLoadEndListener","factoryOrRoutes","rawRoutes","requireStandaloneComponents","isWrappedDefaultExport","UrlHandlingStrategy","DefaultUrlHandlingStrategy","shouldProcessUrl","extract","newUrlPart","wholeUrl","CREATE_VIEW_TRANSITION","VIEW_TRANSITION_OPTIONS","createViewTransition","transitionOptions","startViewTransition","skipNextTransition","resolveViewTransitionStarted","viewTransitionStarted","createRenderPromise","onViewTransitionCreated","NAVIGATION_ERROR_HANDLER","NavigationTransitions","hasRequestedNavigation","navigationId","currentNavigation","lastSuccessfulNavigation","transitionAbortSubject","rootContexts","titleStrategy","urlHandlingStrategy","navigationErrorHandler","afterPreactivation","handleNavigationRequest","setupNavigations","initialUrlTree","initialRouterState","currentUrlTree","currentRawUrl","extractedUrl","rawUrl","targetSnapshot","currentRouterState","targetRouterState","guards","guardsResult","overallTransitionState","cancelNavigationTransition","initialUrl","targetBrowserUrl","browserUrl","previousNavigation","urlTransition","navigated","isUpdatingInternalState","isUpdatedBrowserUrl","onSameUrlNavigation","recognize$1","finalUrl","routesRecognized","navStart","skipLocationChange","replaceUrl","guardsStart","checkGuards","runCanDeactivateChecks","futureRSS","currRSS","runCanDeactivate","currARS","canDeactivate","canDeactivateObservables","closestInjector","isCanDeactivate","runCanActivateChecks","fireChildActivationStart","fireActivationStart","runCanActivateChild","futureARS","canActivateChildGuardsMapped","getCanActivateChild","canActivateChild","guardsMapped","isCanActivateChild","runCanActivate","canActivate","canActivateObservables","isCanActivate","guardsEnd","resolveStart","dataResolved","resolveData","routesWithResolversToRun","routesNeedingDataUpdates","newRoute","routesProcessed","runResolve","resolveNode","getResolver","resolvedData","resolveEnd","loadComponents","loaders","loadedComponent","createRouterState","isRedirectingNavigationCancelingError","navigationError","navigationErrorHandlerResult","errorHandlerResult","ee","resolveNavigationPromiseOnError","navCancel","currentBrowserUrl","isBrowserTriggeredNavigation","RouteReuseStrategy","DefaultRouteReuseStrategy","BaseRouteReuseStrategy","detachedTree","ɵDefaultRouteReuseStrategy_BaseFactory","StateManager","HistoryStateManager","canceledNavigationResolution","urlUpdateStrategy","rawUrlTree","currentPageId","lastSuccessfulId","routerState","stateMemento","createStateMemento","getCurrentUrlTree","getRawUrlTree","browserPageId","ɵrouterPageId","getRouterState","registerNonRouterCurrentEntryChangeListener","handleRouterEvent","setBrowserUrl","restoreHistory","generateNgRouterState","navigation","restoringFromCaughtError","targetPagePosition","resetState","resetUrlToCurrentUrlTree","routerPageId","ɵHistoryStateManager_BaseFactory","NavigationResult","COMPLETE","FAILED","REDIRECTING","afterNextNavigation","exactMatchOptions","subsetMatchOptions","Router","stateManager","disposed","ɵConsole","navigationTransitions","componentInputBindingEnabled","eventsSubscription","resetConfig","subscribeToNavigationEvents","mergedTree","scheduleNavigation","isPublicRouterEvent","resetRootComponentType","initialNavigation","setUpLocationChangeListener","navigateToSyncWithBrowser","nonRouterCurrentEntryChangeSubscription","stateCopy","parseUrl","serializeUrl","createUrlTree","navigationExtras","queryParamsHandling","preserveFragment","relativeToUrlSegmentGroup","defaultQueryParamsHandling","removeEmptyProps","validateCommands","matchOptions","priorPromise","RouterLink","tabIndexAttribute","onChanges","routerLinkInput","isAnchorElement","updateHref","setTabIndexIfNotOnNativeEl","newTabIndex","applyAttributeValue","routerLink","commandsOrUrlTree","sanitizedValue","RouterLinkActive","_isActive","routerLinkActiveOptions","isActiveChange","routerEventsSubscription","subscribeToEachLinkOnChanges","linkInputChangesSubscription","allLinkChanges","isLinkActive","routerLinkActive","hasActiveLinks","ariaCurrentWhenActive","isActiveMatchOptions","isActiveCheckFn","_t","PreloadingStrategy","RouterPreloader","preloadingStrategy","setUpPreloading","preload","processRoutes","injectorForCurrentRoute","injectorForChildren","preloadConfig","loadedChildren$","recursiveLoadChildren$","loadComponent$","ROUTER_SCROLLER","RouterScroller","viewportScroller","lastId","lastSource","restoredId","scrollPositionRestoration","anchorScrolling","createScrollEvents","scrollEventsSubscription","consumeScrollEvents","scheduleScrollEvent","routerFeature","getBootstrapListener","bootstrappedComponentRef","bootstrapDone","BOOTSTRAP_DONE","INITIAL_NAVIGATION","ROUTER_PRELOADER","withPreloading","withViewTransitions","skipInitialTransition","ROUTER_FORROOT_GUARD","ROUTER_PROVIDERS","rootRoute","provideForRootGuard","useHash","scrollOffset","provideInitialNavigation","bindToComponentInputs","enableViewTransitions","ROUTER_INITIALIZER","forChild","locationInitialized","SuppressedError","__esModule","locked","addToLocked","isLocked","unlock","getInstance","__generator","sent","trys","ops","removeItem","keySync","getItemSync","clearSync","removeItemSync","setItemSync","acquiredIatSet","storageHandler","acquireLock","releaseLock__private__","waitForSomethingToChange","refreshLockWhileAcquired","waiters","iat","timeoutKey","timeAcquired","timeRefreshed","lockCorrector","removeFromWaiting","addToWaiting","notifyWaiters","timeoutInSeconds","error_description","fromPayload","appState","popup","mfa_token","audience","scope","crypto","btoa","client_id","Qe","_ref2","race","_ref3","fetchUrl","fetchOptions","useFormData","MessageChannel","port1","postMessage","port2","_x7","_x8","_x9","_x10","_x11","_x12","_ref4","_x13","_x14","_x15","_x16","_x17","_x18","_T","auth0Client","_ref9","_x26","_x27","_x28","_x29","_x30","_x31","_x32","fromKey","fromCacheEntry","allKeys","enclosedCache","keyManifest","nowProvider","setIdToken","getIdTokenCacheKey","id_token","decodedToken","getIdToken","getCacheKeys","matchExistingCacheKey","expiresAt","refresh_token","wrapCacheEntry","_ref5","_x21","_x22","expires_in","storageKey","daysUntilExpire","toUTCString","secure","sameSite","sessionStorage","Worker","manifestKey","createManifestKeyFrom","_this9","memory","localstorage","openUrl","onRedirect","te","_this10","userCache","useRefreshTokensFallback","_releaseLockOnPageHide","subtle","cacheLocation","httpTimeoutMs","httpTimeoutInSeconds","cookieStorage","legacySameSiteCookie","orgHintCookieName","isAuthenticatedCookieName","sessionCheckExpiryDays","useCookiesForTransactions","useRefreshTokens","transactionManager","cacheManager","domainUrl","tokenIssuer","issuer","worker","workerUrl","_authorizeUrl","_verifyIdToken","_this11","encoded","signature","claims","iss","alg","aud","azp","max_age","auth_time","leeway","setUTCSeconds","nbf","organization","org_id","org_name","_processOrgHint","_prepareAuthorizeUrl","_this12","_ref7","digest","TextEncoder","_x23","response_type","response_mode","code_challenge","code_challenge_method","code_verifier","loginWithPopup","_this13","screenX","screenY","authorizeTimeoutInSeconds","_requestToken","grant_type","nonceIn","_this14","_getIdTokenFromCache","getIdTokenClaims","_this15","_this16","handleRedirectCallback","_this17","checkSession","_this18","getTokenSilently","_this19","cacheMode","_getTokenSilently","detailedResponse","_this20","_getEntryFromCache","_ref8","_x24","_getTokenUsingRefreshToken","_getTokenFromIFrame","oauthTokenScope","getTokenWithPopup","_this21","_this22","_buildLogoutUrl","federated","_this23","_this24","prompt","crossOriginIsolated","_this25","_saveEntryInCache","_this26","_this27","_this28","_this29","_x19","_x20","Auth0ClientFactory","createClient","configFactory","Auth0Client","Auth0ClientService","AuthConfigService","AuthClientConfig","AbstractNavigator","AuthState","isLoadingSubject$","refresh$","accessToken$","errorSubject$","isLoading$","accessTokenTrigger$","isAuthenticatedTrigger$","user$","authenticated","setIsLoading","isLoading","setAccessToken","setError","authState","appStateSubject$","ngUnsubscribe$","appState$","checkSessionOrCallback$","isCallback","iif","trueResult","falseResult","shouldHandleCallback","errorPath","getAccessTokenSilently","getAccessTokenWithPopup","skipRedirectCallback","AuthGuard","redirectIfUnauthenticated","childRoute","loggedIn","raceInit","getOppositePlacement","getBasePlacement","getOppositeVariationPlacement","basePlacements","popper","variationPlacements","placements","modifierPhases","isHTMLElement","ShadowRoot","getDocumentElement","getUAString","uaData","userAgentData","brands","brand","isLayoutViewport","includeScale","isFixedStrategy","clientRect","visualViewport","addVisualOffsets","offsetLeft","getWindowScroll","getWindowScrollBarX","getParentNode","assignedSlot","isScrollParent","_getComputedStyle","getScrollParent","listScrollParents","_element$ownerDocumen","scrollParent","isBody","updatedList","isTableElement","getTrueOffsetParent","getOffsetParent","getContainingBlock","isFirefox","perspective","contain","willChange","getRootNode","isSameNode","rectToClientRect","getClientRectFromMixedType","clippingParent","getViewportRect","layoutViewport","getInnerBoundingClientRect","getDocumentRect","winScroll","getVariation","getMainAxisFromPlacement","computeOffsets","basePlacement","variation","commonX","commonY","mergePaddingObject","paddingObject","expandToHashMap","hashMap","detectOverflow","_options$placement","_options$strategy","_options$boundary","_options$rootBoundary","rootBoundary","_options$elementConte","elementContext","_options$altBoundary","altBoundary","_options$padding","popperRect","rects","clippingClientRect","getClippingRect","mainClippingParents","getClippingParents","clippingParents","clipperElement","clippingRect","accRect","contextElement","referenceClientRect","popperOffsets","popperClientRect","elementClientRect","overflowOffsets","offsetData","modifiersData","modifiers_flip","_skip","_options$mainAxis","checkMainAxis","_options$altAxis","checkAltAxis","specifiedFallbackPlacements","fallbackPlacements","_options$flipVariatio","flipVariations","allowedAutoPlacements","preferredPlacement","getExpandedFallbackPlacements","oppositePlacement","computeAutoPlacement","_options$allowedAutoP","allPlacements","allowedPlacements","overflows","referenceRect","checksMap","makeFallbackChecks","firstFittingPlacement","_basePlacement","isStartVariation","mainVariationSide","altVariationSide","_loop","fittingPlacement","requiresIfExists","within","mathMin","getLayoutRect","modifiers_preventOverflow","preventOverflow","_options$tether","tether","_options$tetherOffset","tetherOffset","isBasePlacement","getAltAxis","tetherOffsetValue","normalizedTetherOffsetValue","offsetModifierState","_offsetModifierState$","mainSide","altSide","additive","maxLen","arrowElement","arrowRect","arrowPaddingObject","arrowPaddingMin","arrowPaddingMax","arrowLen","minOffset","maxOffset","arrowOffsetParent","clientOffset","offsetModifierValue","tetherMax","preventedOffset","_offsetModifierState$2","_len","_min","_max","isOriginSide","_offsetModifierValue","_tetherMin","_tetherMax","_preventedOffset","withinMaxClamp","modifiers_arrow","_state$modifiersData$","toPaddingObject","minProp","maxProp","endDiff","startDiff","clientSize","effect","_options$element","requires","getCompositeRect","elementOrVirtualElement","isFixed","isOffsetParentAnElement","offsetParentIsScaled","isElementScaled","getNodeScroll","getHTMLElementScroll","modifiers","depModifier","areValidElements","_key","popperGenerator","generatorOptions","_generatorOptions$def","defaultModifiers","_generatorOptions$def2","orderedModifiers","effectCleanupFns","isDestroyed","setOptionsAction","cleanupModifierEffects","scrollParents","orderModifiers","mergeByName","merged","runModifierEffects","_ref$options","forceUpdate","_state$elements","_state$orderedModifie","_state$orderedModifie2","onFirstUpdate","passive","unsetSides","mapToStyles","_Object$assign2","gpuAcceleration","adaptive","roundOffsets","_offsets$x","_offsets$y","hasX","hasY","sideX","sideY","heightProp","widthProp","_Object$assign","commonStyles","roundOffsetsByDPR","dpr","createPopper","_options$scroll","_options$resize","computeStyles","_options$gpuAccelerat","_options$adaptive","_options$roundOffsets","attribute","modifiers_offset","_options$offset","distanceAndSkiddingToXY","invertDistance","skidding","_data$state$placement","NgbAlert_Conditional_1_Template","_c6","_c7","_c8","NgbNavOutlet_For_1_Conditional_0_ng_template_1_Template","NgbNavOutlet_For_1_Conditional_0_Template","item_r1","paneRole","contentTpl","isPanelTransitioning","NgbNavOutlet_For_1_Template","isPanelInDom","NgbPopoverWindow_Conditional_1_ng_template_1_Template","NgbPopoverWindow_Conditional_1_ng_template_3_Template","NgbPopoverWindow_Conditional_1_Template","simpleTitle_r2","isTitleTemplate","NgbProgressbar_Conditional_1_Template","NgbTimepicker_Conditional_3_Template","changeHour","hourStep","isSmallSize","isLargeSize","NgbTimepicker_Conditional_5_Template","NgbTimepicker_Conditional_9_Template","changeMinute","minuteStep","NgbTimepicker_Conditional_11_Template","NgbTimepicker_Conditional_12_Conditional_3_Template","changeSecond","secondStep","NgbTimepicker_Conditional_12_Conditional_5_Template","NgbTimepicker_Conditional_12_Template","updateSecond","handleBlur","formatInput","spinners","formatMinSec","readonlyInputs","NgbTimepicker_Conditional_13_Conditional_3_Template","i18n","getAfternoonPeriod","NgbTimepicker_Conditional_13_Conditional_4_Template","getMorningPeriod","NgbTimepicker_Conditional_13_Template","toggleMeridian","transitionTimerDelayMs","NgbConfig","NgbAccordionConfig","_ngbConfig","closeOthers","destroyOnHide","_animation","getActiveElement","activeEl","noopFn","runningTransitions","ngbRunTransition","startFn","running","runningTransition","transition$","endFn","transitionProperty","runInZone","finishTransition$","stop$","endWith","transitionDurationMs","getTransitionDurationMs","transitionDelay","transitionDuration","transitionEnd$","timer$","ngbCollapsingTransition","setInitialClasses","measureCollapsingElementDimensionPx","hasShownClass","dimensionSize","NgbCollapseConfig","NgbCollapse","_afterInit","_isCollapsed","ngbCollapseChange","shown","hidden","collapsed","_runTransitionWithEvents","_runTransition","nextId$3","NgbAccordionCollapse","NgbAccordionItem","ngbCollapse","collapseId","toggleId","NgbAccordionToggle","accordion","NgbAccordionDirective","NgbAccordionHeader","_accordion","_destroyRef","_collapsed","_collapseAnimationRunning","_destroyOnHide","collapse","_shouldBeInDOM","_ensureCanExpand","_anItemWasAlreadyExpandedDuringInitialisation","_getItem","expandAll","collapseAll","isExpanded","toExpand","NgbAccordionModule","NgbAlertConfig","ngbAlertFadingTransition","NgbAlert","i18n_0","NgbAlertModule","NgbCarouselModule","NgbCollapseModule","isContainedIn","matchesSelectorIfAny","isMobile","maxTouchPoints","ngbAutoClose","closed$","insideElements","insideSelector","wrapAsyncForMobile","escapes$","mouseDowns$","closeableClicks$","shouldClose","FOCUSABLE_ELEMENTS_SELECTOR","getFocusableBoundaryElements","NgbRTL","isRTL","placementSeparator","spacesRegExp","bootstrapPopperMatches","popperStartPrimaryPlacement","popperEndPrimaryPlacement","popperStartSecondaryPlacement","popperEndSecondaryPlacement","getPopperOptions","placementVals","hasAuto","popperPlacements","_placement","getPopperClassPlacement","leftClass","rightClass","bsClassRegExp","popperElement","popperPlacement","getBootstrapBaseClassPlacement","secondary","newPrimary","classnames","newSecondary","classname","ngbPositioning","popperInstance","positioningOption","popperOptions","updatePopperOptions","createPopperLite","addPopperOffset","offset$1","NgbDatepickerModule","NgbDropdownConfig","autoClose","NgbDropdownItem","_disabled","NgbDropdownButtonItem","NgbDropdownMenu","dropdown","NgbDropdown","onKeyDown","NgbDropdownAnchor","NgbDropdownToggle","ɵNgbDropdownToggle_BaseFactory","_changeDetector","_nativeElement","_destroyCloseHandlers$","_bodyContainer","_positioning","_open","openChange","_applyPlacementClasses","_setCloseHandlers","_applyContainer","_menu","dropdownClass","_applyCustomDropdownClass","_afterRenderRef","_positionMenu","_resetContainer","itemElements","_getMenuElements","itemElement","isEventFromToggle","_isEventFromToggle","_isDropup","focusableElements","menu","_getFirstPlacement","dropdownMenuElement","bodyContainer","newClass","oldClass","NgbDropdownModule","NgbModalConfig","fullscreen","keyboard","ContentRef","PopupService","_componentType","_windowRef","_contentRef","_applicationRef","templateContext","_getContentRef","nextRenderSubject","windowRef","bodyStyle","actualPadding","NgbModalBackdrop","backdropClass","NgbActiveModal","WINDOW_ATTRIBUTES","BACKDROP_ATTRIBUTES","NgbModalRef","_applyWindowOptions","windowInstance","optionName","_applyBackdropOptions","backdropInstance","_windowCmptRef","_backdropCmptRef","_closed","_hidden","dismissed","_dismissed","_beforeDismiss","dismissEvent","_removeModalElements","_dismiss","windowTransition$","backdropTransition$","ModalDismissReasons","BACKDROP_CLICK","ESC","NgbModalWindow","_closed$","_elWithFocus","fullscreenClass","_show","_disableEventHandling","dialogTransition$","_dialogEl","transitions$","_restoreFocus","_enableEventHandling","_setFocus","defaultPrevented","_bumpBackdrop","preventClose","autoFocusable","firstFocusable","elWithFocus","ariaDescribedBy","scrollable","modalDialogClass","NgbModalStack","_environmentInjector","_scrollBar","_activeWindowCmptHasChanged","_ariaHiddenValues","_scrollBarRestoreFn","_modalRefs","_windowCmpts","_activeInstances","activeWindowCmpt","ngbFocusTrap","stopFocusTrap$","refocusOnClick","lastFocusedElement$","tabEvent","lastFocusedElement","_revertAriaHidden","_setAriaHidden","_restoreScrollBar","scrollBarRestoreFn","_hideScrollBar","contentInjector","containerEl","contentRef","backdropCmptRef","_attachBackdrop","windowCmptRef","_attachWindowComponent","ngbModalRef","beforeDismiss","_registerModalRef","_registerWindowCmpt","activeInstances","dismissAll","_createFromTemplateRef","_createFromString","_createFromComponent","componentNativeEl","unregisterModalRef","ngbWindowCmpt","NgbModal","_modalStack","combinedOptions","NgbModalModule","NgbNavConfig","isValidNavId","navCounter","NgbNavContent","NgbNavItem","_nav","NgbNav","domId","activeId","panelDomId","isNgContainer","_navigatingWithKeyboard","activeIdChange","navItemChange$","navChange","_updateActiveId","onFocusout","enabledLinks","navItem","_notifyItemChanged","emitNavChange","nextItemId","_getItemById","NgbNavLinkBase","NgbNavLink","ɵNgbNavLink_BaseFactory","ngbNavFadeOutTransition","ngbNavFadeInTransition","NgbNavPane","NgbNavOutlet","_activePane","_updateActivePane","nextItem","activeItem","_getPaneForItem","_getActivePane","_panes","NgbNavModule","NgbPaginationModule","ALIASES","listenToTriggers","isOpenedFn","openFn","closeFn","openDelayMs","closeDelayMs","parsedTriggers","parseTriggers","trimmedTriggers","triggerPair","manualTriggers","activeOpenTriggers","withDelay","delayMs","openTrigger","closeTrigger","NgbPopoverConfig","disablePopover","closeDelay","nextId$1","NgbPopoverWindow","popoverClass","NgbPopover","_ngbPopoverWindowId","_popupService","_isDisabled","ngbPopover","popoverContext","popoverTitle","_getPositionTargetElement","_unregisterListenersFn","positionTarget","NgbPopoverModule","NgbProgressbarConfig","animated","striped","showValue","NgbProgressbar","NgbProgressbarStacked","textType","getValueInRange","getPercentValue","i18n_20","NgbProgressbarModule","NgbRatingModule","NgbScrollSpyModule","NgbTime","updateHour","updateMinute","checkSecs","NgbTimepickerConfig","meridian","NgbTimeAdapter","NGB_DATEPICKER_TIME_ADAPTER_FACTORY","NgbTimeStructAdapter","fromModel","toModel","ɵNgbTimeStructAdapter_BaseFactory","NgbTimepickerI18n","NgbTimepickerI18nDefault","_periods","ɵNgbTimepickerI18nDefault_BaseFactory","FILTER_REGEX","NgbTimepicker","_hourStep","_minuteStep","_secondStep","_ngbTimeAdapter","structValue","propagateModelChange","newVal","isPM","enteredHour","formatHour","i18n_21","i18n_22","i18n_23","i18n_24","i18n_25","i18n_26","i18n_27","i18n_28","i18n_29","i18n_30","i18n_31","i18n_32","i18n_33","NgbTimepickerModule","NgbToastModule","disableTooltip","NgbTooltipWindow","tooltipClass","_ngbTooltipWindowId","_ngbTooltip","tooltipContext","NgbTooltipModule","NgbTypeaheadModule","NgbOffcanvasModule","NGB_MODULES","ButtonComponent_kendo_icon_wrapper_0_Template","ButtonComponent_span_1_Template","ButtonComponent_span_2_Template","ButtonComponent_span_5_Template","arrowIcon","ButtonComponent_kendo_icon_wrapper_6_Template","ChipComponent_kendo_icon_wrapper_0_Template","ChipComponent_kendo_icon_wrapper_1_Template","customIconClass","ChipComponent_span_2_Template","chipAvatarClass","ChipComponent_span_4_Template","ChipComponent_ng_content_5_Template","ChipComponent_span_6_span_1_Template","onMenuClick","defaultMenuIcon","menuSvgIcon","menuIcon","ChipComponent_span_6_span_2_Template","onRemoveClick","removeSvgIcon","defaultRemoveIcon","removeIcon","ChipComponent_span_6_Template","hasMenu","removable","_c4","ListComponent_li_1_ng_template_1_ng_template_1_Template","ListComponent_li_1_ng_template_1_Template","dataItem_r4","cssClass","itemTemplate","ListComponent_li_1_ng_template_2_kendo_icon_wrapper_1_Template","ListComponent_li_1_ng_template_2_img_2_Template","imageAlt","ListComponent_li_1_ng_template_2_span_3_Template","getText","ListComponent_li_1_ng_template_2_Template","ListComponent_li_1_Template","index_r2","stopImmediatePropagation","onBlur","_c5","DropDownButtonComponent_ng_template_3_Template","onItemClick","keyDownHandler","keyUpHandler","listId","textField","buttonId","_c9","_c10","isFocused","DialItemComponent_0_ng_template_0_Template","DialItemComponent_0_Template","dialItemTemplate","DialItemComponent_ng_container_1_span_1_Template","DialItemComponent_ng_container_1_kendo_icon_wrapper_2_Template","DialItemComponent_ng_container_1_Template","_c11","DialListComponent_ng_container_0_Template","idx_r2","dialItems","cssStyle","_c12","keydown","pointerdown","_c13","FloatingActionButtonComponent_2_ng_template_0_Template","FloatingActionButtonComponent_2_Template","fabTemplate","FloatingActionButtonComponent_ng_container_3_kendo_icon_wrapper_1_Template","FloatingActionButtonComponent_ng_container_3_span_2_Template","FloatingActionButtonComponent_ng_container_3_Template","FloatingActionButtonComponent_ng_template_4_Template","dialListId","dialClass","focusOutHandler","_c14","SplitButtonComponent_span_4_Template","SplitButtonComponent_ng_template_8_Template","KendoButtonService","buttonClicked$","packageMetadata","productName","productCodes","publishDate","licensingDocsUrl","isDocumentNode","sel","SIZES","small","large","ROUNDNESS","getStylingClasses","stylingOption","toRemove","toAdd","getThemeColorClasses","prevFillMode","fillMode","BUTTON_TAG_NAME","ButtonComponent","localization","toggleable","selectedChange","_rounded","_fillMode","_themeColor","_focused","subs","validatePackage","togglable","_selected","_iconClass","_icon","isDocumentAvailable","handleClasses","rounded","newRounded","newFillMode","newThemeColor","handleThemeColor","_svgIcon","toggleClass","classButton","isToggleable","iconButtonClass","hasText","roleSetter","classDisabled","classActive","getDirection","onFocus","look","elementTagName","isSpanOrKendoButton","toggleAriaPressed","_onButtonClick","keyCode","Keys","Space","Enter","isButton","isBrowserSafari","isSafari","isChanged","setSelected","hasObservers","shouldSet","addFillMode","themeColorClass","LocalizationService","L10N_PREFIX","IconWrapperComponent","PreventableEvent","prevented","ButtonGroupComponent","navigable","_tabIndex","currentTabIndex","lastFocusedIndex","focusHandler","defocus","firstFocusableIndex","wrapperClass","disabledClass","stretchedClass","ariaDisabled","wrapperWidth","wrapperTabIndex","newSelectionValue","isSelectionSingle","handleSubs","navigateFocus","verifySettings","navigationButtons","focusedIndex","ArrowRight","ArrowLeft","ChipComponent","localizationService","menuToggle","contentClick","hostClass","focused","hasIconClass","avatarClass","selectedClass","focusedClass","chip","attachElementEventHandlers","kendoIconClass","verifyIconSettings","removeIconClass","iconsToCheck","isDeleteOrBackspace","Delete","Backspace","ChipListComponent","_navigable","currentActiveIndex","sizeValue","single","isRemoveClicked","clickedChip","chips","removedChip","setSelection","dynamicRTLSubscription","updateChips","selectedChips","clearSelection","chiplist","isLeftArrow","isRightArrow","removeEventArgs","handleArrowKeys","normalizeActiveIndex","chipEl","ButtonItemTemplateDirective","FocusService","resetFocus","KeyEvents","keypress","keyup","NavigationAction","Undefined","Open","EnterPress","EnterUp","Tab","Navigate","NAVIGATION_CONFIG","NavigationService","enter","enterpress","enterup","esc","useLeftRightArrows","keyEvent","isEnterOrSpace","ArrowDown","ArrowUp","Escape","flipNavigation","Home","End","PopupContainerService","ListButton","MultiTabStop","focusService","navigationService","wrapperRef","popupService","elRef","containerService","_popupSettings","popupClass","_isFocused","popupSubs","isClosePrevented","subscribeEvents","openState","componentTabIndex","appendTo","popupSettings","popupRef","newSettings","popupClasses","togglePopupVisibility","_toggle","emitItemClickHandler","focusButton","destroyPopup","subscribeListItemFocusEvent","subscribeComponentBlurredEvent","subscribeNavigationEvents","handleTab","wrapperContains","blurWrapper","onArrowKeyNavigate","onNavigationEnterUp","onNavigationOpen","onNavigationClose","isHost","keyHandler","_itemClick","focusWrapper","createPopup","popupAnchorViewportLeave","buttonClass","FocusableDirective","ListComponent","onItemBlur","sizeClass","getIconClasses","NgFor","TemplateContextDirective","NAVIGATION_SETTINGS_PROVIDER$2","DropDownButtonComponent","_buttonAttributes","buttonAttributes","newButtonAttributes","handleButtonAttributes","widgetClasses","mousedown","mouseup","openPopup","onButtonBlur","popupTemplate","handleFocus","relatedTargetInList","popupElement","mainButton","isPresent$1","buttonList","getAnchorAlign","fabAlign","getPopupAlign","DialItemTemplateDirective","FloatingActionButtonTemplateDirective","DialItemComponent","localisationService","itemTitle","indexAttr","iconClasses","getTextDirectionClass","hAlign","ltr","DialListComponent","bottomClass","topClass","NAVIGATION_SETTINGS_PROVIDER$1","SIZE_CLASSES","ROUNDED_CLASSES","FILLMODE_CLASS","DEFAULT_OFFSET","DEFAULT_THEME_COLOR","FloatingActionButtonComponent","positionMode","dialItemAnimation","dialItemClick","_align","animationEnd","initialSetup","focusChangedProgrammatically","fixedClass","absoluteClass","offsetStyles","alignClass","toggleDial","hasDialItems","shouldOpen","openDial","closeDial","ariaExpanded","ariaHasPopup","ariaControls","clickHandler","toggleDialWithEvents","pointerdownHandler","emitItemClick","blurHandler","onNavigationEnterPress","focusedItem","onEnterPressed","classesToAdd","isIconFab","popupOpen","positionPopup","popupMouseDownListener","closePopup","isValidAnimation","playAnimation","fabWidth","popupEl","popupLeft","isEndAlign","horizontalPosition","horizontalOffset","verticalPosition","verticalOffset","playerFor","durationSettings","animationSettings","openAnimation","closeAnimation","isBottom","animationDuration","animationGap","EventsOutsideAngularDirective","ComponentMessages","ɵMessages_BaseFactory","splitButtonLabel","SplitButtonCustomMessagesComponent","LocalizedSplitButtonMessagesDirective","NAVIGATION_SETTINGS_PROVIDER","SplitButtonComponent","arrowButtonIcon","arrowButtonSvgIcon","buttonClick","activeArrow","buttonText","arrowButtonClicked","hasContent","replaceMessagePlaceholder","onButtonFocus","onArrowButtonClick","toggleButtonActiveState","toggleArrowButtonActiveState","containerRef","updateButtonText","anyChanged","toggleButtonIconClass","isIconButton","hasIcon","hasTextContent","arrowButton","arrowButtonClass","KENDO_BUTTON","IconsService","ResizeBatchService","homeIcon","CrosshairTooltipComponent_ng_template_0_Template","CrosshairTooltipsContainerComponent_kendo_chart_crosshair_tooltip_0_Template","key_r1","TooltipPopupComponent_ng_template_0_1_ng_template_0_Template","TooltipPopupComponent_ng_template_0_1_Template","seriesTooltipTemplateRef","seriesTooltipContext","TooltipPopupComponent_ng_template_0_2_ng_template_0_Template","TooltipPopupComponent_ng_template_0_2_Template","seriesSharedTooltipTemplateRef","seriesSharedTooltipContext","TooltipPopupComponent_ng_template_0_Template","TooltipPopupComponent_ng_template_2_Template","TooltipPopupComponent_ng_template_3_tr_4_td_1_Template","point_r3","TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_1_Template","TooltipPopupComponent_ng_template_3_tr_4_td_2_ng_container_2_Template","TooltipPopupComponent_ng_template_3_tr_4_td_2_Template","TooltipPopupComponent_ng_template_3_tr_4_ng_template_4_Template","TooltipPopupComponent_ng_template_3_tr_4_Template","colorMarker_r5","colorMarker","nameColumn_r6","nameColumn","TooltipPopupComponent_ng_template_3_Template","points_r7","categoryText_r8","colspan_r9","colspan","ChartComponent_div_5_ng_template_1_Template","ChartComponent_div_5_Template","donutCenterStyle","donutCenterTemplate","ChartComponent_div_6_Template","StockChartComponent_div_5_Template","SparklineComponent_div_5_Template","SankeyTooltipPopupComponent_ng_template_0_2_ng_template_0_Template","SankeyTooltipPopupComponent_ng_template_0_2_Template","nodeTooltipTemplateRef","nodeTooltipContext","SankeyTooltipPopupComponent_ng_template_0_3_ng_template_0_Template","SankeyTooltipPopupComponent_ng_template_0_3_Template","linkTooltipTemplateRef","linkTooltipContext","SankeyTooltipPopupComponent_ng_template_0_Template","SankeyTooltipPopupComponent_ng_template_2_Template","color_r2","label_r3","value_r4","textStyle","formatUnits","SankeyTooltipPopupComponent_ng_template_3_Template","source_r5","target_r6","value_r7","SankeyComponent_div_4_Template","dateValueAxisFormats","DonutCenterTemplateDirective","ItemChange","CollectionService","onItemChange$","THROTTLE_MS","Change","ConfigurationService","initSource","onFastChange$","onChange$","copyChanges","toSimpleChanges","CollectionItemComponent","configurationService","collectionService","notifyChanges","SettingsComponent","configKey","markAsVisible","SeriesTooltipComponent","seriesTooltipTemplate","SeriesDrilldownTemplateDirective","SeriesItemComponent","toggleVisibility","togglePointVisibility","pv","seriesTooltip","drilldownTemplate","closeField","colorField","currentField","downColorField","drilldownField","errorHighField","errorLowField","explodeField","fromField","lowerField","medianField","noteTextField","openField","q1Field","q3Field","summaryField","toField","upperField","visibleInLegendField","xErrorHighField","xErrorLowField","yErrorHighField","yErrorLowField","COLLISION","collision","onInit","bodyFactory","CrosshairTooltipComponent","POPUP_CONTAINER","AXES","CrosshairTooltipsContainerComponent","tooltipKeys","tooltipsMap","tooltipComponents","crossahirTooltipComponents","createCrosshairTooltips","newMap","mapTooltips","removeTooltip","tooltips","axesCrosshairTooltipOptions","tooltipIdx","SeriesTooltipTemplateDirective","SharedTooltipTemplateDirective","TooltipTemplatePoint","xLow","xHigh","yLow","yHigh","hasParent","TooltipTemplateService","setTemplate","seriesTemplates","setSeriesTemplates","setSharedTemplate","sharedTemplate","getSharedTemplate","SHARED_TOOLTIP_CLASS","TOOLTIP_CLASS","TooltipPopupComponent","templateService","Iv","Dv","defaultSharedTooltipTemplate","sharedTemplateContext","pointTemplateRef","wrapPoints","defaultSeriesTooltipTemplate","mouseleaveSubscription","ChartInstanceObserver","legendItemClick","fontWeight","computedBackgroundColor","ThemeService","loadTheme","readTheme","readDefaultTheme","queryColor","chartBaseTheme","setColors","setFonts","setSeriesColors","destroyElement","seriesTemplate","mapColor","queryStyle","setInactiveOpacity","defaultFont","titleFont","paneTitleFont","labelFont","unsetColor","letterPos","seriesPos","BaseEvent","ɵPreventableEvent_BaseFactory","LegendEvent","NoteEvent","RenderEvent","_e","SeriesEvent","EVENT_MAP$2","axisLabelClick","AxisLabelClickEvent","DragEvent","dragEnd","DragEndEvent","dragStart","DragStartEvent","legendItemHover","LegendItemHoverEvent","legendItemLeave","LegendItemLeaveEvent","noteClick","NoteClickEvent","noteHover","NoteHoverEvent","noteLeave","NoteLeaveEvent","paneRender","PaneRenderEvent","plotAreaClick","PlotAreaClickEvent","plotAreaHover","PlotAreaHoverEvent","plotAreaLeave","PlotAreaLeaveEvent","SelectEvent","SelectEndEvent","SelectStartEvent","seriesClick","SeriesClickEvent","seriesHover","SeriesHoverEvent","seriesOver","SeriesOverEvent","seriesLeave","SeriesLeaveEvent","ZoomEvent","zoomEnd","ZoomEndEvent","zoomStart","ZoomStartEvent","InstanceEventService$1","LegendItemClickEvent","CollectionComponent","processChanges","readItems","SeriesComponent","tooltipTemplateService","readTooltipTemplates","templates","DrilldownEvent","emitter","ChartComponent","themeService","instanceEventService","drilldownLevelChange","resizeRateLimit","showLicenseWatermark","suppressTransitions","hostClasses","drilldownState","shouldShowValidationUI","refreshWait","drilldownLevel","currentLevel","seriesComponents","canRender","chartMouseleave","domSubscriptions","intlChange","rtlChange","onDrilldown","seriesCollection","seriesCollectionComponent","seriesComponent","sc","drilldownValue","autoResize","resizeTimeout","redrawTimeout","createInstance","getPlotArea","instanceObserver","onResize","reloadTheme","onLegendItemClick","onRender","getDonutCenterStyle","onShowTooltip","crossahirTooltips","tooltipInstance","onHideTooltip","activeEmitter","updateDirection","setChartAreaSize","tooltipMouseleave","inZone","deferredRedraw","ResizeSensorComponent","WatermarkOverlayComponent","XAxisItemComponent","XAxisComponent","XAxisCrosshairComponent","XAxisCrosshairTooltipComponent","XAxisLabelsComponent","XAxisNotesComponent","XAxisNotesIconComponent","XAxisNotesLabelComponent","XAxisTitleComponent","YAxisItemComponent","YAxisComponent","YAxisCrosshairComponent","YAxisCrosshairTooltipComponent","YAxisLabelsComponent","YAxisNotesComponent","YAxisNotesIconComponent","YAxisNotesLabelComponent","YAxisTitleComponent","ZoomableComponent","RootConfigurationService","ɵRootConfigurationService_BaseFactory","EVENT_MAP$1","navigatorFilter","NavigatorFilterEvent","StockInstanceEventService","NAVIGATOR_DEFAULTS","StockChartComponent","skipNavigatorRedraw","applyNavigatorDefaults","PREFIX","PrefixConfigurationService","rootService","NavigatorComponent","CategoryAxisItemComponent","NavigatorCategoryAxisComponent","CategoryAxisCrosshairComponent","NavigatorCategoryAxisCrosshairComponent","CategoryAxisCrosshairTooltipComponent","NavigatorCategoryAxisCrosshairTooltipComponent","CategoryAxisLabelsComponent","NavigatorCategoryAxisLabelsComponent","CategoryAxisNotesComponent","NavigatorCategoryAxisNotesComponent","CategoryAxisNotesIconComponent","NavigatorCategoryAxisNotesIconComponent","CategoryAxisNotesLabelComponent","NavigatorCategoryAxisNotesLabelComponent","CategoryAxisSelectComponent","NavigatorCategoryAxisSelectComponent","CategoryAxisTitleComponent","NavigatorCategoryAxisTitleComponent","NavigatorHintComponent","PaneComponent","NavigatorPaneComponent","PanesTitleComponent","NavigatorPaneTitleComponent","NavigatorSelectComponent","NavigatorSeriesItemComponent","NavigatorSeriesComponent","SeriesErrorBarsComponent","NavigatorSeriesErrorBarsComponent","SeriesExtremesComponent","NavigatorSeriesExtremesComponent","SeriesHighlightComponent","NavigatorSeriesHighlightComponent","SeriesLabelsComponent","NavigatorSeriesLabelsComponent","SeriesLabelsFromComponent","NavigatorSeriesLabelsFromComponent","SeriesLabelsToComponent","NavigatorSeriesLabelsToComponent","SeriesMarkersComponent","NavigatorSeriesMarkersComponent","SeriesNotesComponent","NavigatorSeriesNotesComponent","SeriesNotesIconComponent","NavigatorSeriesNotesIconComponent","SeriesNotesLabelComponent","NavigatorSeriesNotesLabelComponent","SeriesOutliersComponent","NavigatorSeriesOutliersComponent","NavigatorSeriesTooltipComponent","SparklineComponent","tooltipWrapperClass","tooltipContentClasses","AxisDefaultsComponent","AxisDefaultsCrosshairComponent","AxisDefaultsCrosshairTooltipComponent","AxisDefaultsLabelsComponent","AxisDefaultsTitleComponent","CategoryAxisComponent","CategoryAxisRangeLabelsComponent","ChartAreaComponent","LegendComponent","LegendInactiveItemsComponent","LegendItemComponent","PaneDefaultsComponent","PaneDefaultsTitleComponent","PanesComponent","PlotAreaComponent","SeriesDefaultsComponent","SeriesDefaultsLabelsComponent","SeriesDefaultsLabelsFromComponent","SeriesDefaultsLabelsToComponent","SeriesDefaultsNotesComponent","SeriesDefaultsNotesIconComponent","SeriesDefaultsNotesLabelComponent","SeriesDefaultsTooltipComponent","SeriesTrendlineComponent","SeriesTrendlineForecastComponent","SubtitleComponent","TitleComponent","TooltipComponent","sharedTooltipTemplate","ValueAxisItemComponent","ValueAxisComponent","ValueAxisCrosshairComponent","ValueAxisCrosshairTooltipComponent","ValueAxisLabelsComponent","ValueAxisNotesComponent","ValueAxisNotesIconComponent","ValueAxisNotesLabelComponent","ValueAxisTitleComponent","ChartBreadcrumbComponent","rootItem","onDrilldownLevelChange","rootItemChange","breadcrumb","BreadCrumbComponent","SankeyBaseEvent","PreventableEvent$1","SankeyNodeEvent","SankeyLinkEvent","EVENT_MAP","nodeEnter","nodeLeave","linkEnter","linkLeave","nodeClick","linkClick","InstanceEventService","SankeyLinkTooltipTemplateContext","SankeyLinkTooltipTemplateDirective","SankeyNodeTooltipTemplateContext","SankeyNodeTooltipTemplateDirective","SankeyTooltipTemplateService","SquareSymbol","marginLeft","SankeyTooltipPopupComponent","nodeTemplate","defaultNodeTooltipTemplate","linkTemplate","defaultLinkTooltipTemplate","tooltipUnitFormat","LocalizedMessagesDirective","SankeyComponent","messageFor","instanceElement","chartTheme","SankeyLabelsComponent","SankeyLegendComponent","SankeyLinksComponent","SankeyCustomMessagesComponent","SankeyNodesComponent","SankeyTitleComponent","SankeyTooltipComponent","linkTooltipTemplate","nodeTooltipTemplate","alignSelf","marginRight","WatermarkOverlayComponent_div_0_Template","closeBanner","bannerStyles","licenseKeyUrl","buttonStyles","skipFirstChange","propertyNames","desktopBrowser","isObjectPresent","splitStringToArray","parseCSSClassNames","parseArrayClassNames","parseObjectClassNames","parseStringClassNames","currentClassName","classesArray","setHTMLAttributes","applyAttributes","removeHTMLAttributes","parseAttributes","targetObj","isControlRequired","DraggableDirective","enableDrag","kendoPress","kendoDrag","kendoRelease","toggleDraggable","destroyDraggable","draggable","closestInScope","matchSelf","findElement","focusableRegex","isFocusable","hasTabIndex","findFocusableChild","checkVisibility","isFocusableWithTabKey","isVisible","ResizeService","resizeBatchService","acceptedSize","acceptSize","lastWidth","lastHeight","checkChanges","checkSize","initSize","WRAP_STYLE","EXPAND_CHILD_STYLE","SHRINK_CHILD_STYLE","ResizeCompatService","isScheduled","expandChild","shrinkChild","HAS_OBSERVER","ResizeObserverService","resizeObserver","rateLimit","serviceType","resizeService","KendoInput","Alt","Control","Digit0","Digit1","Digit2","Digit3","Digit4","Digit5","Digit6","Digit7","Digit8","Digit9","F2","F10","Insert","KeyA","KeyB","KeyC","KeyD","KeyE","KeyF","KeyG","KeyH","KeyI","KeyJ","KeyK","KeyL","KeyM","KeyN","KeyO","KeyP","KeyQ","KeyR","KeyS","KeyT","KeyU","KeyV","KeyW","KeyX","KeyY","KeyZ","NumpadDecimal","PageDown","PageUp","Shift","focusableSelector","boxShadow","outline","bannerPresentOnPage","watermarkStyle","bannerMounted","isBannerRendered","banner","allowed","isPackageValid","PrefixTemplateDirective","_showSeparator","showSeparator","SuffixTemplateDirective","SeparatorComponent","insertedViewRef","KENDO_RESIZESENSOR","AdornmentsModule","ScrollbarWidthService","DialogActionsComponent_ng_content_0_Template","DialogActionsComponent_ng_container_1_ng_container_1_ng_container_1_Template","DialogActionsComponent_ng_container_1_ng_container_1_ng_template_2_Template","action_r2","DialogActionsComponent_ng_container_1_ng_container_1_Template","defaultAction_r4","isDivider","DialogActionsComponent_ng_container_1_Template","actionsArray","DialogActionsComponent_ng_template_2_Template","DialogComponent_kendo_dialog_titlebar_4_Template","closeTitle","titleId","DialogComponent_ng_content_5_Template","DialogComponent_ng_content_7_Template","DialogComponent_8_ng_template_0_Template","DialogComponent_8_Template","contentTemplate","DialogComponent_ng_content_9_Template","DialogComponent_kendo_dialog_actions_10_Template","actionsLayout","DialogComponent_div_11_Template","WindowTitleBarComponent_ng_content_0_Template","WindowTitleBarComponent_1_ng_template_0_Template","WindowTitleBarComponent_1_Template","WindowCloseActionDirective_kendo_icon_wrapper_0_Template","WindowCloseActionDirective_span_1_Template","WindowCloseActionDirective_span_2_Template","WindowRestoreActionDirective_kendo_icon_wrapper_0_Template","WindowRestoreActionDirective_span_1_Template","WindowRestoreActionDirective_span_2_Template","WindowMaximizeActionDirective_kendo_icon_wrapper_0_Template","WindowMaximizeActionDirective_span_1_Template","WindowMaximizeActionDirective_span_2_Template","WindowMinimizeActionDirective_kendo_icon_wrapper_0_Template","WindowMinimizeActionDirective_span_1_Template","WindowMinimizeActionDirective_span_2_Template","WindowComponent_kendo_window_titlebar_2_Template","titleBarTemplate","minimizeButtonTitle","maximizeButtonTitle","restoreButtonTitle","closeButtonTitle","WindowComponent_ng_content_3_Template","WindowComponent_div_4_ng_content_1_Template","WindowComponent_div_4_2_ng_template_0_Template","WindowComponent_div_4_2_Template","WindowComponent_div_4_Template","keepContent","WindowComponent_ng_template_5_div_0_Template","WindowComponent_ng_template_5_Template","resizeDirections","WindowComponent_div_6_Template","toClassList","DIALOG_ELEMENTS_HANDLING_ESC_KEY","namesList","validTabIndex","focusable","RESIZE_DIRECTIONS","OFFSET_STYLES","createValueWithUnit","DialogActionsComponent","actionsTemplate","startClassName","centerClassName","endClassName","stretchedClassName","cssClasses","actionTemplate_r5","DIALOG_LOCALIZATION_SERVICE","TitleBarLocalizationService","messageService","dialogLocalization","shortKey","RTL","restoreTitle","maximizeTitle","minimizeTitle","DialogTitleBarComponent","onCloseClick","DialogCloseResult","DEFAULT_ANIMATION_CONFIG","DialogComponent","contentId","domSubs","generateTitleId","generateContentId","handleThemeColorClass","htmlAttributes","tIndex","_htmlAttributes","setServiceClasses","_cssClass","titlebarContent","handleInitialFocus","titlebarView","actionsView","initDomEvents","animateContent","defAnimationConfig","animatedElement","animationConfig","animationSpecs","animations","animationType","endScale","createPlayer","dialog","handleActionButtonFocus","keepFocusWithinComponent","primaryButton","findPrimary","autoFocusedElement","initiallyFocusedElement","shouldFocusPrimary","findPrimaryButton","focusableActionButtons","getAllFocusableChildren","lastFocusable","getFirstAndLastFocusable","shiftTabAfterFirstFocusable","i18n_1","DialogRef","DialogContentBase","dialogTitleBar","dialogActions","DialogContainerService","DialogInjector","getDialogRef","DialogService","initializeDialog","dialogRef","contentFrom","apiClose","preventAction","dialogRefParameter","isNotComponent$1","hasContentTitle","hasContentActions","titleNodes","actionNodes","newZIndex","resizable","createMoveStream","mouseDown","originalY","DragResizeService","stateChange","resizeStart","resizeEnd","lastAction","dragSubscription","restoreOptions","onDrag","dragStarted","currentPosition","ensureWidth","handleDrag","startOffsetAndPosition","resizeStarted","currentOffsetAndPosition","handleResize","deltaX","old","newWidth","newHeight","newTop","newLeft","restoreAction","storeOptions","maximizeAction","maximizeState","windowViewPort","minimizeAction","minimizeState","applyManualState","clearHeight","closeAction","windowOffset","positionWithScroll","setRestoreOption","nextPossibleZIndex","nextZIndex","getWindowViewPort","ResizeHandleDirective","setDisplay","i1$1","WindowTitleBarComponent","dragDirective","isDraggable","subscribeDrag","subscribeStateChange","unsubscribeDrag","unsubscribeState","titleBar","stateSubscription","handleArrow","handleEscape","handleStateChange","WindowCloseActionDirective","Button","_service","buttonType","WindowRestoreActionDirective","WindowMaximizeActionDirective","WindowMinimizeActionDirective","WindowComponent","widthChange","heightChange","topChange","leftChange","draged","resized","windowSubscription","localizationChangeSubscription","setOption","setNextZIndex","setInitialOffset","titleBarView","titleBarContent","updateAllOffset","bringToFront","setDimension","showDefaultTitleBar","styleMinWidth","styleMinHeight","stylePosition","wrapperMaximizedClass","wrapperMinimizedClass","onComponentFocus","onComponentBlur","currentZIndex","parsedValue","resizeHandles","i18n_2","i18n_3","i18n_4","i18n_5","WindowCloseResult","WindowRef","WindowContainerService","WindowInjector","getWindowRef","WindowService","windowRefParameter","isNotComponent","not","pred","skipWhile","taking","TreeViewGroupComponent_li_0_span_2_Template","node_r3","index_r4","ctx_r4","expandNode","isItemExpandable","getFontIcon","getSvgIcon","TreeViewGroupComponent_li_0_kendo_checkbox_3_Template","checkbox_r7","checkNode","isItemDisabled","getCheckBoxState","getCheckboxAttributes","TreeViewGroupComponent_li_0_ng_container_7_ng_template_1_Template","TreeViewGroupComponent_li_0_ng_container_7_Template","nodeTemplateRef","TreeViewGroupComponent_li_0_ng_container_8_Template","nodeText","TreeViewGroupComponent_li_0_ul_9_Template","fetchChildren","loadOnDemand","checkboxes","expandIcons","selectable","touchActions","isChecked","hasCheckbox","expandDisabledNodes","isSelected","loadMoreButtonTemplateRef","nextFields","loadMoreService","disableParentNodesOnly","TreeViewGroupComponent_li_0_Template","parentDataItem","totalNodesCount","setItemClasses","hasTemplate","TreeViewGroupComponent_li_1_span_2_Template","TreeViewGroupComponent_li_1_5_ng_template_0_Template","TreeViewGroupComponent_li_1_5_Template","loadMoreButtonIndex","TreeViewGroupComponent_li_1_ng_container_6_Template","loadMoreTitle","TreeViewGroupComponent_li_1_Template","loadingMoreNodes","TreeViewComponent_span_1_ng_template_3_Template","TreeViewComponent_span_1_Template","filterChange","filterInputPlaceholder","DataChangeNotificationService","ExpandStateService","IndexBuilderService","INDEX_SEPARATOR","indexForLevel","lastLevelIndex","LoadingNotificationService","notifyLoaded","closestWithMatch","closestNode","skipTab","isContent","isLoadMoreButton","focusableNode","nodeId","buildTreeIndex","itemIndex","getSizeClass","safeChildren","lastVisibleNode","NavigationModel","ib","firstVisibleNode","lastVisibleChild","visibleSibling","findParent","parentLevel","findVisibleChild","findVisiblePrev","levelIndex","prevNodesHidden","findVisibleNext","hasVisibleChildren","registerItem","loadMoreButton","unregisterItem","childLevel","indexToMatch","isLeaf","nextItemIndex","expands","moves","selects","deselectAllButCurrentItem","loadMore","isTreeViewActive","focusableItem","moveToFirstVisibleChild","moveToParent","handleEnter","handleSpace","shouldScroll","activeIndex","isActiveExpanded","notifyMove","activateParent","activateIndex","activateClosest","activateFocusable","checkIndex","selectIndex","notifyLoadMore","itemAtIndex","updateItem","moveAction","notifyExpand","navigationState","NodeChildrenService","childrenLoaded","NodeTemplateDirective","LoadMoreButtonTemplateDirective","DataBoundComponent","ExpandableComponent","SelectionService","isFirstSelected","firstIndex","setFirstSelected","INDEX_REGEX","TreeViewLookupService","currentLookup","registerChildren","replaceItem","addToParent","itemLookup","mapChildren","parentItem","TreeViewItemContentDirective","selectionService","initialSelection","updateFocusClass","updateSelectionClass","LoadingIndicatorDirective","expandService","loadingNotifications","buildItem","TreeViewItemDirective","lookupService","_isExpanded","_isSelected","treeItem","parentTreeItem","registerNavigationItem","setAriaAttributes","updateTabIndex","moveLookupItem","moveNavigationItem","updateNodeAvailability","navState","focusItem","activateItem","shouldExpand","scrollIntoView","preventScroll","indexChange","expandable","checkable","TOP_ITEM","MID_ITEM","BOT_ITEM","TreeViewGroupComponent","indexBuilder","treeViewLookupService","nodeChildrenService","dataChangeNotification","kGroupClass","initialNodesLoaded","singleRecordSubscriptions","localizationSubscriptions","moreNodesAvailable","pageSize","setGroupSize","registerLoadedNodes","getTotalNodesCount","checkBox","nodesSubscription","loadMoreNodesSubscription","subscribeToNodesChange","loadMoreNodes","l10nChange","setNodeChildren","mapToTreeItem","fetchMoreNodes","loadMoreLocalNodes","initialLoadMoreButtonIndex","getInitialPageSize","reselectItemAt","emitChildrenLoaded","contentChildren","mappedChildren","CheckBoxComponent","TreeViewMessages","ɵTreeViewMessages_BaseFactory","TreeViewComponent","fetchNodes","nodeDragStart","nodeDrag","filterStateChange","nodeDrop","nodeDragEnd","addItem","checkedChange","selectionChange","nodeDblClick","filterable","_animate","_nextId","_nodeTemplateRef","nodeTemplateQuery","_loadMoreButtonTemplateRef","loadMoreButtonTemplateQuery","_hasChildren","_isChecked","treeviewId","preloadChildNodes","attachDomHandlers","searchbox","focusIndex","rebindChildren","collapseNode","getNodePageSize","verifyLoadMoreService","setNodePageSize","registerLookupItems","keydownHandler","lookup","treeItems","buildTreeItem","currentLevelIndex","assetsContainer","TextBoxComponent","TextBoxPrefixTemplateDirective","innerDiv","SelectDirective","treeView","selectedKeysChange","selectActions","selectMultiple","selectSingle","itemKey","getAriaMultiselectable","selectionSettings","selectedKeys","lastChange","selectKey","ListComponent_div_0_1_ng_template_0_Template","ListComponent_div_0_1_Template","fixedGroupTemplate","currentGroup","ListComponent_div_0_ng_template_2_Template","listGroupStickyHeaderTextClass","ListComponent_div_0_Template","listGroupStickyHeaderClass","itemHeight","ListComponent_5_ng_template_0_input_1_Template","itemIndex_r4","onCheckedChange","checkboxClasses","ListComponent_5_ng_template_0_2_ng_template_0_Template","ListComponent_5_ng_template_0_2_Template","dataItem_r5","ListComponent_5_ng_template_0_ng_template_3_Template","ListComponent_5_ng_template_0_Template","listItemClass","startFrom","multipleSelection","isAltRow","optionPrefix","isItemSelected","ListComponent_5_Template","ListComponent_6_ng_template_0_li_0_3_ng_template_0_Template","ListComponent_6_ng_template_0_li_0_3_Template","dataItem_r6","groupTemplate","ListComponent_6_ng_template_0_li_0_ng_template_4_Template","ListComponent_6_ng_template_0_li_0_Template","ctx_r6","itemIndex_r8","listGroupItemClass","listGroupItemTextClass","ListComponent_6_ng_template_0_li_1_2_ng_template_0_Template","ListComponent_6_ng_template_0_li_1_2_Template","ListComponent_6_ng_template_0_li_1_ng_template_3_Template","ListComponent_6_ng_template_0_li_1_Template","offsetIndex","ListComponent_6_ng_template_0_Template","ListComponent_6_Template","ListComponent_kendo_resize_sensor_7_Template","listResize","ListComponent_div_8_Template","ResponsiveRendererComponent_ng_template_2_kendo_textbox_10_ng_template_2_Template","ResponsiveRendererComponent_ng_template_2_kendo_textbox_10_Template","onValueChange","searchBarValue","ResponsiveRendererComponent_ng_template_2_ng_container_13_Template","ResponsiveRendererComponent_ng_template_2_div_14_Template","onApply","ResponsiveRendererComponent_ng_template_2_Template","showTextInput","sharedPopupActionSheetTemplate","showActionButtons","AutoCompleteComponent_span_2_ng_template_1_Template","AutoCompleteComponent_span_2_Template","prefixTemplate","AutoCompleteComponent_kendo_separator_3_Template","AutoCompleteComponent_span_5_Template","clearValue","clearButtonVisiblity","AutoCompleteComponent_span_6_Template","AutoCompleteComponent_kendo_separator_7_Template","AutoCompleteComponent_span_8_ng_template_1_Template","AutoCompleteComponent_span_8_Template","suffixTemplate","AutoCompleteComponent_ng_template_9_ng_container_0_Template","AutoCompleteComponent_ng_template_9_Template","sharedPopupActionSheetTemplate_r4","AutoCompleteComponent_kendo_resize_sensor_13_Template","AutoCompleteComponent_ng_template_15_0_ng_template_0_Template","AutoCompleteComponent_ng_template_15_0_Template","headerTemplate","AutoCompleteComponent_ng_template_15_div_3_ng_template_1_Template","AutoCompleteComponent_ng_template_15_div_3_ng_template_2_Template","AutoCompleteComponent_ng_template_15_div_3_Template","noDataTemplate","AutoCompleteComponent_ng_template_15_4_ng_template_0_Template","AutoCompleteComponent_ng_template_15_4_Template","footerTemplate","AutoCompleteComponent_ng_template_15_Template","pageChange","listBoxId","listHeight","showStickyHeader","ComboBoxComponent_span_2_ng_template_1_Template","ComboBoxComponent_span_2_Template","ComboBoxComponent_kendo_separator_3_Template","ComboBoxComponent_span_5_Template","preventEventDefault","ComboBoxComponent_span_6_Template","ComboBoxComponent_kendo_separator_7_Template","ComboBoxComponent_span_8_ng_template_1_Template","ComboBoxComponent_span_8_Template","ComboBoxComponent_ng_template_12_ng_container_0_Template","ComboBoxComponent_ng_template_12_Template","ComboBoxComponent_kendo_resize_sensor_14_Template","ComboBoxComponent_ng_template_18_0_ng_template_0_Template","ComboBoxComponent_ng_template_18_0_Template","ComboBoxComponent_ng_template_18_div_3_ng_template_1_Template","ComboBoxComponent_ng_template_18_div_3_ng_template_2_Template","ComboBoxComponent_ng_template_18_div_3_Template","ComboBoxComponent_ng_template_18_4_ng_template_0_Template","ComboBoxComponent_ng_template_18_4_Template","ComboBoxComponent_ng_template_18_Template","_c15","DropDownListComponent_3_ng_template_0_Template","DropDownListComponent_3_Template","valueTemplate","DropDownListComponent_ng_template_4_Template","DropDownListComponent_span_5_Template","DropDownListComponent_ng_template_8_ng_container_0_Template","DropDownListComponent_ng_template_8_Template","sharedPopupActionSheetTemplate_r3","DropDownListComponent_kendo_resize_sensor_10_Template","DropDownListComponent_ng_template_14_ng_template_0_Template","filterText","searchInput_r7","handleFilter","onFilterFocus","blurFilterInput","handleClick","filterInputClasses","DropDownListComponent_ng_template_14_ng_template_1_Template","optionLabelSizeClass","isDisabledDefaultItem","getDefaultItemText","DropDownListComponent_ng_template_14_ng_template_2_ng_template_2_Template","DropDownListComponent_ng_template_14_ng_template_2_Template","defaultItem","DropDownListComponent_ng_template_14_3_ng_template_0_Template","DropDownListComponent_ng_template_14_3_Template","DropDownListComponent_ng_template_14_div_6_ng_template_1_Template","DropDownListComponent_ng_template_14_div_6_ng_template_2_Template","DropDownListComponent_ng_template_14_div_6_Template","DropDownListComponent_ng_template_14_7_ng_template_0_Template","DropDownListComponent_ng_template_14_7_Template","DropDownListComponent_ng_template_14_Template","isActionSheetExpanded","ariaLive","_c16","_c17","a11","TagListComponent_div_0_2_ng_template_0_Template","TagListComponent_div_0_2_Template","TagListComponent_div_0_ng_template_3_1_ng_template_0_Template","TagListComponent_div_0_ng_template_3_1_Template","tag_r2","TagListComponent_div_0_ng_template_3_ng_template_2_Template","TagListComponent_div_0_ng_template_3_Template","TagListComponent_div_0_ng_template_5_1_ng_template_0_Template","TagListComponent_div_0_ng_template_5_1_Template","TagListComponent_div_0_ng_template_5_ng_template_2_Template","index_r5","tagProp","TagListComponent_div_0_ng_template_5_Template","TagListComponent_div_0_Template","ctx_r5","deleteTag","groupTag_r7","singleTag_r8","isTagDisabled","isGroupTag","MultiSelectComponent_span_2_ng_template_1_Template","MultiSelectComponent_span_2_Template","MultiSelectComponent_kendo_separator_3_Template","MultiSelectComponent_span_7_Template","MultiSelectComponent_span_8_Template","MultiSelectComponent_kendo_separator_9_Template","MultiSelectComponent_span_10_ng_template_1_Template","MultiSelectComponent_span_10_Template","MultiSelectComponent_ng_template_11_ng_container_0_Template","MultiSelectComponent_ng_template_11_Template","MultiSelectComponent_kendo_resize_sensor_13_Template","MultiSelectComponent_ng_template_17_0_ng_template_0_Template","MultiSelectComponent_ng_template_17_0_Template","MultiSelectComponent_ng_template_17_div_1_2_ng_template_0_Template","MultiSelectComponent_ng_template_17_div_1_2_Template","customItemTemplate","MultiSelectComponent_ng_template_17_div_1_ng_template_3_Template","MultiSelectComponent_ng_template_17_div_1_Template","default_custom_item_template_r7","customItemSizeClass","MultiSelectComponent_ng_template_17_div_4_ng_template_1_Template","MultiSelectComponent_ng_template_17_div_4_ng_template_2_Template","MultiSelectComponent_ng_template_17_div_4_Template","MultiSelectComponent_ng_template_17_5_ng_template_0_Template","MultiSelectComponent_ng_template_17_5_Template","MultiSelectComponent_ng_template_17_Template","allowCustom","_c18","_c19","_c20","MultiColumnComboBoxComponent_span_2_ng_template_1_Template","MultiColumnComboBoxComponent_span_2_Template","MultiColumnComboBoxComponent_kendo_separator_3_Template","MultiColumnComboBoxComponent_span_5_Template","MultiColumnComboBoxComponent_span_6_Template","MultiColumnComboBoxComponent_kendo_separator_7_Template","MultiColumnComboBoxComponent_span_8_ng_template_1_Template","MultiColumnComboBoxComponent_span_8_Template","MultiColumnComboBoxComponent_ng_template_12_ng_container_0_Template","MultiColumnComboBoxComponent_ng_template_12_Template","MultiColumnComboBoxComponent_kendo_resize_sensor_14_Template","MultiColumnComboBoxComponent_ng_template_18_0_ng_template_0_Template","MultiColumnComboBoxComponent_ng_template_18_0_Template","MultiColumnComboBoxComponent_ng_template_18_ng_container_8_col_1_Template","column_r7","MultiColumnComboBoxComponent_ng_template_18_ng_container_8_Template","matchesMedia","MultiColumnComboBoxComponent_ng_template_18_ng_container_11_th_1_ng_container_1_Template","column_r8","MultiColumnComboBoxComponent_ng_template_18_ng_container_11_th_1_2_ng_template_0_Template","MultiColumnComboBoxComponent_ng_template_18_ng_container_11_th_1_2_Template","MultiColumnComboBoxComponent_ng_template_18_ng_container_11_th_1_Template","headerStyle","headerClass","MultiColumnComboBoxComponent_ng_template_18_ng_container_11_Template","MultiColumnComboBoxComponent_ng_template_18_ng_template_12_ng_container_0_span_1_ng_container_1_Template","column_r9","dataItem_r10","textFrom","MultiColumnComboBoxComponent_ng_template_18_ng_template_12_ng_container_0_span_1_2_ng_template_0_Template","MultiColumnComboBoxComponent_ng_template_18_ng_template_12_ng_container_0_span_1_2_Template","cellTemplate","MultiColumnComboBoxComponent_ng_template_18_ng_template_12_ng_container_0_span_1_Template","MultiColumnComboBoxComponent_ng_template_18_ng_template_12_ng_container_0_Template","MultiColumnComboBoxComponent_ng_template_18_ng_template_12_Template","MultiColumnComboBoxComponent_ng_template_18_div_16_ng_template_1_Template","MultiColumnComboBoxComponent_ng_template_18_div_16_ng_template_2_Template","MultiColumnComboBoxComponent_ng_template_18_div_16_Template","MultiColumnComboBoxComponent_ng_template_18_ng_container_17_ng_template_6_Template","MultiColumnComboBoxComponent_ng_template_18_ng_container_17_Template","MultiColumnComboBoxComponent_ng_template_18_Template","header_r11","updateHeaderPadding","headerWrap_r12","rowTemplate_r13","tableSizeClass","_c21","_c22","_c23","DropDownTreeComponent_3_ng_template_0_Template","DropDownTreeComponent_3_Template","DropDownTreeComponent_ng_template_4_Template","DropDownTreeComponent_span_5_Template","DropDownTreeComponent_span_6_Template","DropDownTreeComponent_ng_template_9_ng_container_0_Template","DropDownTreeComponent_ng_template_9_Template","DropDownTreeComponent_ng_template_14_span_0_Template","handleFilterInputChange","filterInput_r6","handleKeydown","DropDownTreeComponent_ng_template_14_1_ng_template_0_Template","DropDownTreeComponent_ng_template_14_1_Template","DropDownTreeComponent_ng_template_14_kendo_treeview_2_Template","onSelectionChange","nodeExpand","nodeCollapse","onChildrenLoaded","selectBy","isNodeExpanded","itemDisabled","isNodeVisible","treeViewId","DropDownTreeComponent_ng_template_14_3_ng_template_0_Template","DropDownTreeComponent_ng_template_14_3_Template","DropDownTreeComponent_ng_template_14_div_4_ng_template_1_Template","DropDownTreeComponent_ng_template_14_div_4_ng_template_2_Template","DropDownTreeComponent_ng_template_14_div_4_Template","DropDownTreeComponent_ng_template_14_Template","allNodesHidden","DropDownTreeComponent_kendo_resize_sensor_16_Template","_c24","_c25","MultiSelectTreeComponent_span_3_Template","MultiSelectTreeComponent_span_4_Template","MultiSelectTreeComponent_span_5_Template","MultiSelectTreeComponent_ng_template_6_ng_container_0_Template","MultiSelectTreeComponent_ng_template_6_Template","MultiSelectTreeComponent_ng_template_11_div_0_Template","filterInput_r7","MultiSelectTreeComponent_ng_template_11_1_ng_template_0_Template","MultiSelectTreeComponent_ng_template_11_1_Template","MultiSelectTreeComponent_ng_template_11_div_2_Template","handleCheckedItemsChange","toggleCheckAll","treeview_r9","checkAllCheckboxClasses","checkedItems","MultiSelectTreeComponent_ng_template_11_5_ng_template_0_Template","MultiSelectTreeComponent_ng_template_11_5_Template","MultiSelectTreeComponent_ng_template_11_div_6_ng_template_1_Template","MultiSelectTreeComponent_ng_template_11_div_6_ng_template_2_Template","MultiSelectTreeComponent_ng_template_11_div_6_Template","MultiSelectTreeComponent_ng_template_11_Template","handleNodeClick","checkAll","isHeterogeneous","checkableSettings","MultiSelectTreeComponent_kendo_resize_sensor_13_Template","isEmptyString","isObjectArray","selectedIndices","extractedValues","getter$1","matchText","hasProps","inDropDown","getHierarchicalItemLevel","fetchDescendentNodes","filterExpression","descendent","valueFrom","valueLevel","normalizedLevel","getRoundedClass","getFillModeClass","solid","isLetter","getSearchableItems","liElement","windowSize","updateActionSheetAdaptiveAppearance","actionSheet","animationContainer","setListBoxAriaLabelledBy","optionsList","listBox","setActionSheetTitle","actionSheetTitle","SearchBarComponent","onNavigate","_userInput","_previousValue","_placeholder","_isSuggestable","_isFilterable","parsedAttributes","readonly","_readonly","_isRequired","isSuggestable","setAriaAutocomplete","isFilterable","userInput","formControl","inputAttributes","_inputAttributes","defaultAttributes","setInputAttributes","attrAriaInvalid","setInputSize","activeDescendant","mutableAttributes","autocomplete","tagListId","previousUserInput","suggestedText","caretStart","selectionStart","caretAtEnd","writeInputValue","combineStr","setInputSelection","handleInput","isJapanese","placeholderLength","textLength","attributesToRender","ItemTemplateDirective","HeaderTemplateDirective","FooterTemplateDirective","GroupTemplateDirective","FixedGroupTemplateDirective","grouped","groupIndices","isGrouped","getGroupIndices","_flatData","itemsCount","closestGroup","itemAt","flatIndex","groupAt","groupItemsIndices","filterAndMap","mappedItem","groupField","itemGroup","groupIndex","DisabledItemsService","dataService","isIndexDisabled","disabledItemsService","onSelect","indicesToBeRemoved","indicesToBeAdded","newSelection","preventClosingPopup","emitMultipleAddedRemoved","isMultipleSelection","addMultiple","deselect","lastClickedIndex","unselectMultiple","resetSelection","selectFromTo","addedIndices","unselectFromTo","indicesToBeUnselected","unselectNotNeededIndices","startOfSelection","endOfSelection","totalItems","SelectPrevious","SelectNext","SelectAll","SelectAllToBeginning","SelectAllToEnd","NavigationEvent","backspace","home","pagedown","pageup","selectnext","selectprevious","selectall","selectalltobeginning","selectalltoend","openOnSpace","closeOnSpace","clampIndex","NoDataTemplateDirective","FilterableComponent","ListItemDirective","SelectableDirective","focusedClassName","selectedClassName","checkOnClick","isMultiselect","popupListScroll","lastLoaded","lastScrollTop","scrollToFocused","selectSubscription","scrollToItem","prepareClasses","hasVirtualScrollbar","setOverflow","setComponentClasses","scrollSubscription","prefetchData","findCurrentGroup","setGroupAttributes","liItems","previousGroup","childrenliItemsIds","firstGroupReached","positionItems","listContentClass","listClass","listVirtualClass","firstVisibleItem","elementFromPoint","visibleItems","trunc","prevPage","changePage","scrollToIndex","scrollWithOnePage","contentOffsetHeight","contentScrollTop","itemOffsetTop","bottomDistance","hasScrollbar","virtualContainer","firstGroupHeaderInTargetedPage","DEFAULTS","normalizeVirtualizationSettings","defaultOverrides","ResponsiveRendererComponent","textInputChange","onExpand","onCollapse","ActionSheetComponent","actionSheetSearchBar","ActionSheetTemplateDirective","IconComponent","SharedDropDownEventsDirective","isFocusedChange","cursorInsideWrapper","tabbing","closest$1","clearButtonClicked","noDataText","checkAllText","selectButtonText","filterInputLabel","popupLabel","applyButton","cancelButton","AUTOCOMPLETE_VALUE_ACCESSOR","AutoCompleteComponent","highlightFirst","focusableId","adaptiveMode","_listHeight","clearButton","inputFocus","inputBlur","onChangeCallback","onTouchedCallback","popupMouseDownHandler","valueChangeSubject","subscribeTouchEvents","responsiveRendererComponent","wrapperOffsetWidth","popupHeight","listContainerClasses","containerClasses","suggestion","hasMatch","suggest","backspacePressed","isAdaptive","togglePopup","triggerPopupEvents","_subtitle","isAdaptiveModeEnabled","_virtualSettings","expanded","touchstartDisposeHandler","onAdaptiveTextBoxChange","focusItemAt","isInRange","searchbar","popupWrapper","emitChange","handleNavigate","searchBarChange","currentTextLength","onFilterChange","handleInputFocus","valueHasChanged","handleInputBlur","insensitiveMatch","handleItemChange","handleItemFocus","findIndexPredicate","openActionSheet","popupClose","closeActionSheet","maxIndex","itemText","MultiSelectTreeMessages","COMBOBOX_VALUE_ACCESSOR","ComboBoxComponent","valueNormalizer","defaultVirtualItemHeight","defaultVirtualPageSize","_filtering","_text","customValueSubject","valueSubject","clearValueSubject","setState","valuePrimitive","isPrimitive","_valuePrimitive","popupWidth","attachStreams","createValueStream","attachSelectClickHandler","valueStream","candidate","newText","clearFilter","customValueStreams","allowCustomValueStream","custom","disableCustomValueStream","clearValueStream","valueSubscription","selectionChanged","emitValueChange","handleNavigationOpen","selectClickDisposeHandler","clearState","textEmpty","valueEmpty","_previousDataItem","selectButtonClasses","findDataItem","confirm","getSuggestion","hasSelected","hasFocused","previousText","focusedItemText","textHasChanged","useSuggestion","unresolvedSelection","currentText","restoreItemFocus","isCustom","selectClick","focusedDataItem","isInDropDown","i18n_6","ValueTemplateDirective","FilterInputDirective","nextTick","DROPDOWNLIST_VALUE_ACCESSOR","DropDownListComponent","caretAltDownSVGIcon","leftRightArrowsNavigation","haspopup","filterFocused","filterBlurred","hostElementFocused","hostElementBlurred","subscribeFocusEvents","onMouseDown","widgetTabIndex","providedTabIndex","ariaActivedescendant","blurComponent","focusComponent","isDisabledClass","isDisabledAttribute","hostTabIndex","readonlyClass","readonlyAttr","isBusy","hostAriaInvalid","focusedItemNotSelected","HTMLInputElement","onKeyPress","assignAriaDescribedBy","unSubscribeFocusEvents","setAriaactivedescendant","itemFromEvent","shouldUsePrevious","shouldUseNewValue","componentBlur","searchInput","currentOrDefault","defaultItemIndex","charCode","typingTimeout","selectNext","isInLoop","sameCharsOnly","shuffleData","splitIndex","loopMatch","nextMatch","primitive","ofSameType","trimmed","valueLabelId","i18n_7","i18n_8","i18n_9","i18n_10","CustomItemTemplateDirective","TagTemplateDirective","GroupTagTemplateDirective","RemoveTagEvent","TagListComponent","disabledIndices","removeTag","taglistRole","multiselectable","hostId","propField","getPropField","positionIndex","_tag","tagPrefix","tagAriaHidden","fieldsCount","valueDepth","MULTISELECT_VALUE_ACCESSOR","MultiSelectComponent","SCROLLBAR_WIDTH","focusedTagIndex","tagMapper","matchingValue","_valueHolder","_checkboxes","selectedDataItems","searchTextAndFocus","valueChangeDetected","normalizeCheckboxesSettings","focusedListIndex","applyValue","cancelValue","addCustomValue","resolveAllValues","customValues","validateComplexValues","resolveValuesInArray","resolveDataItemFromTags","disabledItemsMapper","navigateInput","selectValue","handleBackspace","handleRemoveTag","removeGroupTag","removeSingleTag","_item","createCustomValueStream","handleMousedown","tagList","unsubscribeEvents","onTagMapperChange","isClosed","isTagFocused","handleClose","handleUp","handleHome","handleEnd","handleDelete","handleRightKey","handleLeftKey","handleDownKey","handleSelectUpDown","handleSelectAllToBeginning","handleSelectAllToEnd","customValueSubscription","dataItemValues","isDataItemDisabled","customItem","handleSelectAll","sortSelectionAscending","selectedItemsCount","dataItemsCount","dataItemsWithoutHeadersCount","largestIndex","lastItemIndex","indexToSelect","selectRangeFromTo","startsFrom","tagTemplate","groupTagTemplate","i18n_11","i18n_12","i18n_13","i18n_14","i18n_15","ColumnCellTemplateDirective","ColumnHeaderTemplateDirective","ComboBoxColumnComponent","media","MultiColumnComboBoxComponent","removeWindowResizeListener","allColumnsWidthsSet","initialRowWidht","totalWidth","getRowWidthFromColumnsMeta","updateColumnsMediaState","addWindowResizeListener","headerPaddingPosition","matchMedia","i18n_16","i18n_17","i18n_18","i18n_19","DEFAULT_POPUP_SETTINGS$1","hasChildren$1","fetchChildren$1","itemDisabled$1","isNodeVisible$1","DropDownTreeComponent","guid$1","_searchableNodes","_typedValue","printableCharacters","isReadonly","hostAriaControls","isAriaExpanded","hostAriaAutocomplete","treeview","_treeview","_nodes","_dataItem","isFilterActive","filterInput","itemToFocus","areNodesHidden","popupContainerClasses","removeTreeViewFromTabOrder","handleDocumentBlur","lastNodeOnFocus","nodeIndex$1","MultiSelectTreeLookupService","BaseCheckDirective","isItemChecked","getKey","checkedKeys","updateItems","CheckDirective","checkedItemsChange","handleCheckedChange","getCheckedState","toggleCheckOnClick","unsubscribeClick","checkChildren","isItemIndeterminate","checkParents","clickSubscription","pendingCheck","shouldCheck","currentParent","CheckAllDirective","handleChange","currentCheckedState","currentIndeterminateState","isIndeterminate","_node","someChecked","allChecked","DEFAULT_POPUP_SETTINGS","DEFAULT_CHECKABLE_SETTINGS","MultiSelectTreeComponent","showAfter","_checkableSettings","_initiallyCheckedItems","ariaActiveDescendant","focusedTagId","isWrapperActive","spaceKeyDownEvent","KeyboardEvent","isContentInit","_dataItems","isCheckAllActive","checkAllInput","_tempValue","setTags","sameState","removeParents","keysToRemove","handleTagMapperChange","_depth","isEveryDataItemObject","handleTabKey","handleUpKey","isFirstNodeActive","registerChildLookupItems","CustomMessagesComponent","ArcGaugeComponent_div_2_ng_template_2_Template","ArcGaugeComponent_div_2_Template","centerTemplate","centerTemplateContext","CircularGaugeComponent_div_2_ng_template_2_Template","CircularGaugeComponent_div_2_Template","ArcCenterTemplateDirective","diffOptions","hasChanges","readValues","readValue","optionContext","diffPointerOptions","CollectionChangesService","pointerColor","getColor","rangePlaceholder","textColor","collectionChangesService","GaugeComponent","updateMethod","inDocument","updateCall","updateSize","resizeSensor","GaugeAreaComponent","LabelsComponent","RangeComponent","ɵRangeComponent_BaseFactory","ScaleComponent","ArcGaugeComponent","updateCenterTemplate","updateElements","ColorComponent","ColorsComponent","ArcGaugeAreaComponent","RadialLabelsComponent","ArcLabelsComponent","ArcScaleComponent","CircularGaugeCenterTemplateDirective","CircularGaugeComponent","ɵCircularGaugeComponent_BaseFactory","CircularGaugeAreaComponent","ɵCircularGaugeAreaComponent_BaseFactory","CircularGaugeLabelsComponent","ɵCircularGaugeLabelsComponent_BaseFactory","CircularGaugeScaleComponent","ɵCircularGaugeScaleComponent_BaseFactory","LinearGaugeAreaComponent","LinearLabelsComponent","LinearGaugeComponent","LinearPointerComponent","LinearPointersComponent","LinearRangeComponent","LinearRangesComponent","LinearScaleComponent","RadialGaugeAreaComponent","RadialPointerComponent","RadialPointersComponent","RadialGaugeComponent","RadialRangeComponent","RadialRangesComponent","RadialScaleComponent","CircularGaugeModule","switchMapTo","innerObservable","cloneDate","addDays","lastDayOfMonth","addMonths","expectedMonth","setYear","addYears","addDecades","addCenturies","normalizeYear","firstDecadeOfCentury","lastDecadeOfCentury","firstYearOfDecade","lastYearOfDecade","lastMonthOfYear","durationInCenturies","durationInDecades","addWeeks","firstDayOfMonth","Direction","Forward","Backward","weekDay","newDay","durationInMonths","firstMonthOfYear","durationInYears","Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","calcWeekInYear","firstWeekInYear","diffInMS","moveDateToWeekStart","prevDayOfWeek","weekInYear","prevWeekDate","nextWeekDate","weekNumber","Mask","partMap","padZero","unpadZero","dateSymbolMap","parseToInt","isParseableToInt","setYears","areDatePartsEqualTo","SHORT_PATTERN_LENGTH_REGEXP","DateObject","formatPlaceholder","cycleTime","twoDigitYearMax","autoCorrectParts","leadingZero","typedMonthPart","knownParts","getDefaultDate","_partiallyInvalidDate","invalidDateParts","startDateOffset","sampleFormat","dateFormatString","setExisting","resetInvalidDate","cldrKeys","monthNames","allFormattedMonths","allDayPeriods","modifyExisting","getExisting","createDefaultDate","getFormattedDate","getTextAndFormat","customFormat","partiallyInvalidText","formattedDate","formattedDates","getFormattedInvalidDates","getInvalidDatePartValue","partsForSegment","getPartsForSegment","datePartText","formattedDatesForSymbol","getInvalidDatePart","formattedInvalidDate","modifyPart","invalidDateFound","timeModified","isMonth","isDay","symbolExists","invalidDatePartValue","resetInvalidDateSymbol","monthValue","dayValue","dateCandidate","newValueCandidate","modifyDateSymbolWithValue","dateCandidateExists","markDatePartsAsExisting","setInvalidDatePart","shouldNormalizeCentury","normalizeCentury","parsePart","currentChar","resetSegmentValue","cycleSegmentValue","rawTextValue","rawInputValue","isDeleting","originalFormat","isInCaretMode","dateParts","datePartsLiterals","datePartIndex","flatDateParts","datePart","parseResult","switchToNext","resetPart","hasInvalidDatePart","resetLeadingZero","rawValueStartsWithLiteral","rawValueEndsWithLiteral","rawValueHasConsecutiveLiterals","baseDate","baseFormat","replaced","basePrefix","baseSuffix","convertedBaseFormat","hasFixedFormat","datePartStartIndex","segmentLength","formatToTextLengthDiff","parsedDate","matchMonth","dayPeriod","matchDayPeriod","isZeroCurrentChar","isAbbrMonth","incrementLeadingZero","partPattern","patternValue","tryParse","middleNumber","autoCorrectedPrefixAndSuffix","isCurrentCharParsable","monthNumber","peekResult","isPeekDateOverflowingDatePart","useBasePrefixAndSuffix","peekedDate","parsedPeekedValue","datePartValue","textToParse","valueCandidate","symbolMap","hasLeadingZero","setLeadingZero","getLeadingZero","twoDigitYear","cropTwoDigitYear","centuryBase","getNormalizedCenturyBase","peek","peekValue","typedChar","monthAsNum","lowerChart","dateFormatParts","partLength","returnValue","resultText","resultFormat","processTextSymbolsEnded","ignoreFormatSymbolsCount","formatSymbolIndex","formatSymbolIndexModifier","resetInvalidDatePart","shouldResetInvalidDate","modifyDateSymbolWithOffset","segmentPart","maskPartIndex","peekedValue","peekedDateString","patternSatisfied","DateInputInteractionMode","Caret","TOUCH_START","MOUSE_DOWN","MOUSE_UP","INPUT","KEY_DOWN","MOUSE_SCROLL","MOUSE_WHEEL","VALUE_CHANGE","INPUT_END","BLUR_END","FOCUS_END","defaultDateInputOptions","hasPlaceholder","Nt","Uo","Xn","Xi","xs","Ve","Ni","di","zr","selectNearestSegmentOnFocus","selectPreviousSegmentOnBackspace","enableMouseWheel","allowCaretMode","autoSwitchParts","autoSwitchKeys","autoFill","DateInput","dateObject","interactionMode","previousElementSelection","createDateObject","setTextAndFormat","onElementDragStart","onElementDrop","onElementClick","onElementMouseDown","onElementMouseUp","onElementInput","onElementKeyDown","onElementFocus","onElementBlur","onElementChange","onElementPaste","onElementMouseWheel","setDateObjectOptions","getDateObjectOptions","resetLocale","selectNearestSegment","mouseDownStarted","focusedPriorToMouseDown","switchedPartOnPreviousKeyAction","selectionPresent","selectionEnd","placeholderToggled","caret","selectionByIndex","triggerInput","oldElementValue","elementValue","isPasteInProgress","updateOnPaste","keyDownEvent","isBackspaceKey","isDeleteKey","originalInteractionMode","hasCaret","restorePreviousInputEventState","oldExistingDateValue","oldDateValue","oldText","previousElementValue","approximateStringMatching","formatPattern","oldTextSeparator","oldSegmentText","newSegmentText","deletedSymbol","navigationOnly","parsePartsResults","switchPart","parsePartResult","lastParseResult","lastParseResultHasNoValue","parsingFailedOnDelete","newExistingDateValue","hasExistingDateValueChanged","newDateValue","symbolForSelection","currentSelection","diffChar","forceUpdateWithSelection","switchDateSegment","selectionBySymbol","tryTriggerValueChange","triggerInputEnd","newElementValue","triggerFocus","refreshElementValue","triggerFocusEnd","triggerBlur","triggerBlurEnd","triggerChange","triggerKeyDown","keyEventMatchesAutoSwitchKeys","isTabKey","getStepFromSymbol","shouldPreventDefault","modifyDateSegmentValue","triggerMouseWheel","inputFormat","oldDateObjectValue","displayFormat","currentSymbol","symbolCandidate","previousFormatSymbol","msDigits","millisecondDigitsInFormat","millisecondStepFor","triggerValueChange","elementValueLength","selectionOffset","setElementValue","restorePreviousElementValue","restorePreviousElementSelection","verifyValue","getDateObject","showPlaceholder","isPosition","selectDateSegment","keyObject","cellContext","ViewComponent_ng_template_0_Template","ViewComponent_tr_2_Template","ariaHidden","colSpan","ViewComponent_tr_3_ng_template_1_td_0_ng_template_1_Template","row_r3","getWeekNumber","ViewComponent_tr_3_ng_template_1_td_0_ng_template_2_Template","ViewComponent_tr_3_ng_template_1_td_0_Template","handleWeekNumberClick","weekNumberTemplateRef","getWeekNumberContext","ViewComponent_tr_3_ng_template_1_Template","emptyCell_r4","ViewComponent_tr_3_ng_container_2_td_1_ng_template_2_Template","cell_r5","ViewComponent_tr_3_ng_container_2_td_1_3_ng_template_0_Template","ViewComponent_tr_3_ng_container_2_td_1_3_Template","ViewComponent_tr_3_ng_container_2_td_1_Template","cellIndex_r7","rowIndex_r8","getStyles","tableCellIndex","isRangeStart","isRangeMid","isRangeEnd","getMonthLabel","ViewComponent_tr_3_ng_container_2_Template","shouldRenderCellContent","ViewComponent_tr_3_Template","HorizontalViewListComponent_ng_template_0_caption_1_Template","date_r3","getCaptionTitle","HorizontalViewListComponent_ng_template_0_thead_2_th_2_Template","name_r4","wideWeekNames","HorizontalViewListComponent_ng_template_0_thead_2_Template","weekNames","HorizontalViewListComponent_ng_template_0_Template","handleClassicCalendarFocus","handleClassicCalendarBlur","cellClick","weekNumberCellClick","cellEnter","cellLeave","focusedCellChange","class_r6","views","getActiveDescendant","getTabIndex","showViewHeader","isMonthView","allowReverse","showOtherMonthDays","activeView","cellUID","focusedDate","selectedDates","selectionRange","activeRangeEnd","cellTemplateRef","HorizontalViewListComponent_2_ng_template_0_Template","HorizontalViewListComponent_2_Template","tableTemplate_r7","nextAnimationDate","HorizontalViewListComponent_3_ng_template_0_Template","HorizontalViewListComponent_3_Template","date_r8","HorizontalViewListComponent_4_ng_template_0_Template","HorizontalViewListComponent_4_Template","prevAnimationDate","HeaderComponent_0_ng_template_0_Template","HeaderComponent_0_Template","headerTemplateRef","activeViewValue","HeaderComponent_ng_template_1_ng_template_1_Template","HeaderComponent_ng_template_1_ng_template_2_Template","HeaderComponent_ng_template_1_button_5_Template","prevButtonClick","isPrevDisabled","prevButtonTitle","HeaderComponent_ng_template_1_button_8_Template","nextButtonClick","isNextDisabled","nextButtonTitle","HeaderComponent_ng_template_1_Template","handleNavigation","parentViewButtonTitle","titleTemplateRef","showNavigationButtons","todayAvailable","handleTodayClick","todayMessage","FooterComponent_0_ng_template_0_Template","FooterComponent_0_Template","footerTemplateRef","FooterComponent_ng_template_1_Template","getToday","MultiViewCalendarComponent_kendo_calendar_header_1_Template","handleTodayButtonClick","navigateView","prevView","nextView","activeViewEnum","activeDate","headerId","headerTitleTemplateRef","MultiViewCalendarComponent_kendo_calendar_footer_3_Template","NavigationComponent_li_4_ng_template_2_Template","date_r2","navigationTitle","NavigationComponent_li_4_ng_template_3_Template","NavigationComponent_li_4_Template","ViewListComponent_table_1_th_3_Template","name_r2","i_r3","ViewListComponent_table_1_Template","ViewListComponent_col_6_Template","ViewListComponent_tbody_7_Template","date_r6","headerTitle","ViewListComponent_kendo_calendar_footer_8_Template","CalendarComponent_ng_container_1_kendo_calendar_navigation_1_Template","onPageChange","navigationItemTemplateRef","CalendarComponent_ng_container_1_Template","handleDateChange","handleCellClick","handleActiveDateChange","onCellEnter","tmp_11_0","weekDaysFormat","activeCellTemplate","CalendarComponent_ng_container_2_Template","handleActiveViewChange","multiviewcalendar_r5","handleMultiViewCalendarValueChange","handleMultiViewCalendarKeydown","bottomView","topView","animateNavigation","monthCellTemplateRef","yearCellTemplateRef","decadeCellTemplateRef","centuryCellTemplateRef","disabledDates","dragstart","DateInputComponent_span_3_Template","resetInput","DateInputComponent_span_4_Template","arrowDirection","handleButtonClick","DatePickerComponent_ng_template_9_ng_container_0_Template","DatePickerComponent_ng_template_9_Template","calendarTemplate_r2","DatePickerComponent_kendo_resize_sensor_11_Template","DatePickerComponent_ng_template_14_ng_container_10_Template","DatePickerComponent_ng_template_14_Template","DatePickerComponent_ng_template_15_Template","mergeTime","calendarType","animateCalendarNavigation","monthCellTemplate","yearCellTemplate","decadeCellTemplate","centuryCellTemplate","weekNumberTemplate","headerTitleTemplate","navigationItemTemplate","_c35","DateRangePopupComponent_ng_template_3_Template","handleShiftTab","onRangeSelectionChange","dateRangeService","DateRangePopupComponent_ng_template_7_kendo_resize_sensor_0_Template","DateRangePopupComponent_ng_template_7_Template","handleAccept","DateRangeComponent_kendo_daterange_popup_1_Template","PrevView","NextView","FirstInView","LastInView","LowerView","UpperView","EMPTY_SELECTIONRANGE","MIN_DATE","MAX_DATE","requiresZoneOnBlur","ngControl","currentFocusTarget","blurArgs","isNullOrDate","isArrowWithShiftPressed","setHours$1","dateInRange","noop$2","shiftWeekNames","domContainerFactory","hasExistingValue","isInSelectionRange","either","clampRange","isEqualRange","initialStart","initialEnd","updatedStart","updatedEnd","areDatesEqual","sortDates","DEFAULT_ROUNDED","DEFAULT_SIZE","DEFAULT_FILL_MODE","EMPTY_DATA$3","ACTIONS$3","decadeOfCentury","upStep$1","downStep$1","CenturyViewService","datesList","isActiveView","viewDate","lastDate","rowOffset","cellOffset","cellDate","nextCentury","isInMiddle","isWeekend","isRangeSplitEnd","isRangeSplitStart","isToday","cellTitle","isInArray","aboveMin","belowMax","beginningOfPeriod","firstYear","lastDayOfPeriod","decade","rowLength","viewsCount","viewsInRange","EMPTY_DATA$2","ACTIONS$2","yearOfDecade","upStep","downStep","DecadeViewService","nextDecade","EMPTY_DATA$1","ACTIONS$1","MonthViewService","isDateDisabled","firstMonthDate","firstMonthDay","lastMonthDate","lastMonthDay","cellDay","otherMonth","isOtherMonth","lowerBound","upperBound","abbrMonthNames","wideMonthNames","prependCell","EMPTY_DATA","ACTIONS","YearViewService","changedYear","candidateValue","CalendarViewEnum","century","services$1","nextCalendarId","BusViewService","viewChanged","calendarId","configure","moveDown","moveUp","moveToBottom","canMoveDown","canMoveUp","WeekNamesService","getWeekNames","includeWeekNumber","KForOfContext","kForOf","KForOf","kForTemplate","kForTrackBy","getTypeNameForDebugging","viewContainerLength","tuples","noop$1","DisabledDatesService","isNumberArray","disabledWeekDays","isDateArray","normalizedDisabledDates","notifyInvalidInput","notifyServiceChange","ViewComponent","bus","disabledDatesService","focusedCellId","disabledDatesChange","showWeekNumbers","updateData","currentCellIndex","unsubscribeCallback","isHorizontal","cellCtx","rowCtx","firstWeekDateContext","pushToAcc","stringifyClassObject","cellIndex","availableDates","cellMouseoverHandler","mouseLeaveHandler","closestCell","cellByIndex","emitCellLeave","HorizontalViewListComponent","weekService","activeDateChange","focusCalendar","blurCalendar","getComponentClass","intlSubscription","handleMultiViewCalendarFocus","handleMultiViewCalendarBlur","horizontalHostClass","verticalHostClass","getComponentMonthClass","getComponentYearClass","getComponentDecadeClass","getComponentCenturyClass","initService","clampDate","activeViewChanged","viewsHasChanged","isInDates","getTake","setAriaActivedescendant","animateView","initialContainerWidth","tableWidth","tabRect","containerGap","columnGap","oncancel","onfinish","isListInRange","canNavigate","HeaderComponent","todayButtonClick","setTodayAvailability","nextDate","isTodayInRange","defaultRendering_r4","performSelection","selectionMode","rangePivot","isDateSelected","anyArrow","lastClicked","CellTemplateDirective","MonthCellTemplateDirective","YearCellTemplateDirective","DecadeCellTemplateDirective","CenturyCellTemplateDirective","WeekNumberCellTemplateDirective","HeaderTitleTemplateDirective","handleRangeSelection","minError","maxError","KEY_TO_ACTION","FooterComponent","showFooter","defaultRendering_r2","MultiViewCalendarLocalizedMessagesDirective","VALUE_DOC_LINK$5","RANGE_CALENDAR_VALUE_ACCESSOR","MultiViewCalendarComponent","RANGE_CALENDAR_RANGE_VALIDATORS","showCalendarHeader","rangeValidation","disabledDatesRangeValidation","_selection","activeViewChange","rangeSelectionChange","blurEvent","focusEvent","onClosePopup","onTabPress","onShiftTabPress","isHovered","shouldHoverWhenNoStart","canHover","valueSetter","selectionSetter","_focusedDate","_selectionRange","onControlChange","onControlTouched","minValidateFn","maxValidateFn","disabledDatesRangeValidateFn","multiViewCalendarHeaderIdLabel","calendarHeaderIdLabel","_activeRangeEnd","_cellTemplateRef","_monthCellTemplateRef","_yearCellTemplateRef","_decadeCellTemplateRef","_centuryCellTemplateRef","_weekNumberTemplateRef","_footerTemplateRef","_headerTitleTemplateRef","_headerTemplateRef","bottomViewEnum","topViewEnum","widgetId","handleFocusout","handleMouseEnter","handleMouseLeave","setRangeSelectionToValue","arrowUpOrDownKeyPressed","Keys$1","onArrowLeftAndControl","onTKeyPress","onEnterKeyPress","onArrowUpPress","escKey","tabKeyPress","shiftKeyPress","performRangeSelection","viewList","emitNavigate","setClasses","updateButtonState","verifyChanges","selectedRange","disabledDatesInRange","disabledDatesRangeValidator","canNavigateDown","sameDates","parseSelectionToValue","emitCellEvent","todayDate","isSameView","isBottomView","setActiveDate","shouldEmitValueChange","lastSelected","clonedRangeSelection","rangeSelection","selectionModifiers","headerElement","div$1","ul$1","li$1","td","th","tbody","scrollable$1","navigationList","navElement","viewFactory","renderWeekHeader","viewElement","contentElement","getScrollable","monthView","yearView","decadeView","getBody","CalendarDOMService","ensureHeights","calendarHeight","calculateHeights","hostContainer","monthViewHeight","headerHeight","scrollableContentHeight","calendarWidth","monthViewWidth","scrollableContentWidth","yearViewHeight","scrollableYearContentHeight","yearViewWidth","decadeViewHeight","centuryViewHeight","decadeViewWidth","centuryViewWidth","navigationItemHeight","viewHeight","viewDimension","viewWidth","viewProp","hostClone","RowHeightService","rowHeight","detailRowHeight","heights","expandDetail","updateRowHeight","collapseDetail","ScrollAction","PageAction","ScrollerService","scrollObservable","firstLoaded","bottomOffset","topOffset","rowHeightService","lastScroll","offsetBufferRows","rowsForHeight","skipWithOffset","onScroll","offsetSize","firstItemIndex","nonVisibleBuffer","SCROLLER_FACTORY_TOKEN","DEFAULT_SCROLLER_FACTORY","ScrollDirection","scrollModifiers","scrollNormalizers","scrollValidators","VirtualizationComponent","scrollerFactory","scrollBarWidthService","itemWidth","maxScrollDifference","scrollOffsetSize","scrollDuration","activeIndexChange","scrollChange","wrapperClasses","dispatcher","horizontalClass","totalVertexLength","containerOffsetSize","getContainerProperty","containerScrollSize","containerScrollPosition","createRowHeightService","containerScrollSubscription","scroll$","emitActiveIndex","animationSubscription","itemOffset","isIndexVisible","containerTop","containerBottom","isListScrolled","scrollToBottom","animateToIndex","indexOffset","getContainerScrollDirection","scrollRange","scrollStep","modifyScroll","normalizeScroll","isScrollValid","inclusive","containerScroll","maxScroll","containerMaxScroll","differenceToScroll","staticOffset","lastActiveIndex","i1$2","NavigationComponent","indexToScroll","maxViewHeight","totalChanged","virtualization","ViewListComponent","cols","minViewsToRender","headerComponent","getBottomOffset","generateDates","isEqualMonthYear","updateIndex","isScrolled","getScrollableHeight","ScrollSyncService","magnitude","divideByMagnitude","powerByMagnitude","navScrolled","monthScrolled","navSubscription","scrollSiblingOf","viewSubscription","scrolledElement","siblingComponent","calculateScroll","scrollableElement","NavigationItemTemplateDirective","PickerService","sameDateSelected","dateCompletenessChange","MultiViewCalendarCustomMessagesComponent","CalendarMessages","ɵCalendarMessages_BaseFactory","CalendarLocalizedMessagesDirective","VALUE_DOC_LINK$4","virtualizationProp","CALENDAR_VALUE_ACCESSOR","CalendarComponent","CALENDAR_RANGE_VALIDATORS","KENDO_INPUT_PROVIDER","scrollSyncService","pickerService","activeViewDateChange","syncNavigation","_type","_showOtherMonthDays","popupId","activeViewDate","lastDayInPeriod","_disabledDates","_navigationItemTemplateRef","viewChangeSubscription","multiViewCalendar","navigationView","unbindCallback","pageChangeSubscription","currentlyFocusedElement","blurTarget","focusTarget","emitSameDate","emitBlur","emitFocus","handleComponentClick","arrowKeyPressed","focusToday","infiniteCalendarTable","incompleteDateValidator","incomplete","incompleteDate","Arrow","DateInputMessages","ɵDateInputMessages_BaseFactory","DateInputLocalizedMessagesDirective","DATE_PART_REGEXP","TIME_PART_REGEXP","DateInputIntl","_localeData","localeData","DateInputComponent","ariaReadOnly","incompleteDateValidation","valueUpdate","formatSections","hasMousedown","focusedPriorToMousedown","showClearButton","isDateIncomplete","incompleteValidator","_focusableId","_formatPlaceholder","kendoDate","kendoDateObject","pickerType","_pickerType","spinup","spindown","setSpinnerFill","dateInput","inputElement","isPopupOpen","hasPopup","autocorrect","autocapitalize","spellcheck","handleDragAndDrop","initKendoDate","updateFormatSections","verifyRange","updateIncompleteValidationStatus","setAriaInvalid","onWidgetValueChange","inputEnd","onWidgetInputEnd","focusEnd","onWidgetFocus","blurEnd","onWidgetBlur","onWidgetKeyDown","spinner","oldFill","disabledDatesValidator","disabledDate","CalendarCustomMessagesComponent","DateInputCustomMessagesComponent","DatePickerMessages","ɵDatePickerMessages_BaseFactory","DatePickerLocalizedMessagesDirective","DatePickerComponent","readOnlyInput","_navigation","disabledDatesValidation","disabledDatesValidateFn","pickerSubscriptions","handleSameSelection","handleDateCompletenessChange","toggleButton","popupUID","toggleCalendar","toggleActionSheet","windowBlurSubscription","handleActionSheetCollapse","handleActionSheetClick","handleIconClick","focusInput","handleDateInputClick","handleInputChange","isTabExitingCalendar","toggleFocus","setAriaActiveDescendant","ariaActiveDescendantSubscription","handleWindowBlur","isInsideActionSheet","i1$3","limit$3","borderValue","barrier","HOURS_IN_DAY","limit$2","MINUTES_IN_HOUR","limit$1","SECONDS_IN_HOUR","MILLISECONDS_IN_SECOND","isEqualTillMinute","isEqualTillSecond","defaultGetters","minGetter","isEqualTillMillisecond","DateRangePopupTemplateDirective","DateRangeService","activeRangeEnd$","focusedDate$","endInput$","startInput$","dateRangePopup$","range$","inputStartElement","inputEndElement","activatePopup","dateRangePopup","deactivatePopup","setActiveDescendent","cancelPopup","hasActiveComponent","isPopup","isStart","isEnd","hasActiveContent","registerStartInput","startInput","registerEndInput","endInput","registerPopup","setActiveRangeEnd","activeRange","setFocusedDate","DateRangeSelectionDirective","autoCorrectOn","shouldSetRange","activeRangeEndChange","selectionRangeChange","calendarSubscriptions","isEqualCalendarRange","updateFocusedDate","calendarRange","addSubscriptions","handleHover","rangeEnd","acceptAndEmit","autoCorrect","shouldAutoCorrect","activeEnd","hasCompleteRange","DateRangePopupMessages","ɵDateRangePopupMessages_BaseFactory","acceptLabel","cancelLabel","DateRangePopupLocalizedMessagesDirective","DateRangePopupComponent","popupSubscriptions","_calendar","subscribeFocusBlur","toggleDateRange","contentCalendar","viewCalendar","activateSubscription","blurSubscription","focusSubscription","_rangeSelection","calendarElement","addPopupSubscriptions","_appendTo","defaultTemplate","dateRangeSelectionDirective","i18n_57","i18n_58","i18n_59","i18n_60","DateRangeComponent","showDefault","hasContentPopup","contentPopup","DateRangeInput","navigateCalendarOnFocus","isActiveEnd","popupCalendarActivated","focusActiveDate","toggleActiveClass","initPopup","updateInputValue","unsubscribePopup","correctOn","DateRangeEndInputDirective","rangeService","DateRangeStartInputDirective","DatePickerCustomMessagesComponent","DateRangePopupCustomMessagesComponent","dateToJulianDays","foreach","SPREADSHEET_FILTERS","generators","SPREADSHEET_CUSTOM_FILTER","spreadsheetFilters","customOperator","customValue","SPREADSHEET_DYNAMIC_FILTER","dynamicFilterType","SPREADSHEET_TOP_FILTER","SPREADSHEET_VALUE_FILTER","blanks","doesnotmatch","quarter1","quarter2","quarter3","quarter4","january","february","march","april","may","june","july","august","september","october","november","december","LabelComponent_span_3_Template","textFor","nativeLabelForTargets","LabelDirective","labelClass","getFocusableComponent","labelFor","isInputElement","inputElementHasAttr","setAriaLabelledby","clickListener","labelTarget","getRootElement","iframe","contentAreaLoaded","contentDocument","existingAriaLabelledBy","LabelComponent","forValue","_for","wrappedNativeInput","getWrappedNativeInput","kendoInput","labelDirective","labelCssStyle","labelCssClass","scrollableRoot","detectBrowser","DOCUMENT_NODE","isScrollable","getScrollableParent","DOCUMENT_FRAGMENT_NODE","DRAG_AND_DROP_DISPATCH_ACTION","POINTER_DOWN","POINTER_MOVE","POINTER_UP","POINTER_CANCEL","MOUSE_MOVE","CONTEXT_MENU","TOUCH_MOVE","TOUCH_END","TOUCH_CANCEL","SCROLL","CANCEL","dispatchDragAndDrop","onIsPressedChange","onIsScrollingChange","onVelocityChange","onOffsetChange","onPageOffsetChange","onClientOffsetChange","onScrollOffsetChange","onInitialScrollOffsetChange","autoScrollDirection","overrideScrollableParent","scrollableParent","isTouchEvent","isScrollEvent","pageOffset","ignoreMouse","Window","onPress","initialScrollOffset","autoScroll","newVelocity","autoScrollVelocity","mouseX","mouseY","AUTO_SCROLL_AREA","scrollableViewPort","onDragStart","dropElement","ration","getRatio","targetRect","intersectionArea","drops","isPointerInsideContainer","onDragEnter","onRelease","onDrop","onDragEnd","HintComponent_ng_container_0_Template","getAction","closestBySelector","setElementStyles","allPointerDownEvents","allPointerMoveEvents","allPointerUpEvents","DragStateService","dragTarget","dropTarget","dragTargets","dropTargets","isScrolling","initialClientOffset","dragIndex","dropIndex","scrollInterval","setCallbacks","setPressed","setScrolling","vel","yIsScrollable","xIsScrollable","xInBounds","setVelocity","setClientOffset","setPageOffset","setInitialClientOffset","setScrollOffset","setInitialScrollOffset","dragTargetPresent","dropTargetPresent","drags","onInitialClientOffsetChange","HintComponent","pointerEvents","targetIndex","contextData","DragTargetPressEvent","normalizedEvent","dragEvent","DragTargetDragReadyEvent","DragTargetDragStartEvent","DragTargetDragEndEvent","DragTargetDragEvent","DragTargetReleaseEvent","isDragStartPrevented$1","isDragPrevented$1","DragTargetContainerDirective","dragDelay","onDragReady","currentDragTarget","dragTimeout","hintComponent","defaultHint","currentDragTargetElement","previousDragTargets","initialPosition","positionsMap","_dragTargetFilter","_dragDisabled","_dragData","_dragTargetId","dragTargetFilter","dragDisabled","initializeDragTargets","dragTargetId","dragData","clearPreviousTargets","hintElem","destroyHint","allDragTargets","queryHost","dragHandles","isHandleSelectorValid","dragHandle","hintTemplate","isTargetPresent","onPointerDown","isDragHandle","onPointerMove","onPointerUp","handlePress","emitZoneAwareEvent","getDragIndex","handleDragStart","createHint","targetIdArgs","dragTargetIndex","targetDataArgs","calculatePosition","thresholdNotReached","performDrag","handleRelease","handleDragEnd","isDroppedOverParentTarget","pointerDownSubscription","pointerMoveSubscription","pointerUpSubscription","pointerMoveStreams","pointerUpStreams","pointerDownStreams","eventProps","hintElement","createCustomHint","createDefaultHint","hintClass","dragTargetEl","dt","serviceDragTarget","setCursorStyle","getStylesPerElement","hintCoordinates","DropTargetEvent","DropTargetContainerDirective","currentDropTargetElement","previousDropTargets","_dropTargetFilter","_dropDisabled","dropTargetFilter","dropDisabled","initializeDropTargets","allDropTargets","handleDragEnter","currDropTargetElem","currDropTarget","getDropIndex","handleDragLeave","handleDragOver","handleDrop","dropTargetEl","serviceDropTarget","dropTargetIndex","ColGroupComponent_col_1_Template","ColGroupComponent_col_2_Template","ColGroupComponent_col_3_Template","column_r1","isSorted","getColumnComponent","LoadingComponent_ng_container_0_Template","loadingText","LoadingComponent_1_ng_template_0_Template","LoadingComponent_1_Template","loadingTemplate","GroupHeaderComponent_ng_container_0_td_1_Template","GroupHeaderComponent_ng_container_0_Template","prefixGroupCell","GroupHeaderComponent_td_1_ng_container_2_ng_container_3_Template","groupTitle","formatForGroup","GroupHeaderComponent_td_1_ng_container_2_ng_template_4_Template","GroupHeaderComponent_td_1_ng_container_2_Template","toggleGroup","groupButtonTitle","arrowSVGIcon","groupHeaderTemplate","GroupHeaderComponent_td_1_Template","logicalRowIndex","skipGroupDecoration","logicalColSpan","groupSpan","ariaRole","GroupHeaderComponent_ng_container_2_td_1_1_ng_template_0_Template","GroupHeaderComponent_ng_container_2_td_1_1_Template","column_r3","groupHeaderColumnTemplateRef","GroupHeaderComponent_ng_container_2_td_1_Template","GroupHeaderComponent_ng_container_2_Template","groupHeaderColumns","lastTarget","GroupPanelComponent_div_0_Template","GroupPanelComponent_kendo_chiplist_1_kendo_chip_1_Template","group_r3","directionChange","first_r5","last_r6","chip_r7","toggleMenu","ctx_r7","index_r9","groupTitles","getDirectionIcon","getDirectionSvgIcon","isChipMenuOpen","gridId","GroupPanelComponent_kendo_chiplist_1_Template","GroupPanelComponent_div_2_Template","GroupPanelComponent_ng_template_3_Template","handleKeyDown","FilterCellOperatorsComponent_kendo_dropdownlist_0_Template","dropdownKeydown","operators","filterSVGIcon","columnLabel","FilterCellOperatorsComponent_button_1_Template","clearClick","clearKeydown","clearText","StringFilterMenuComponent_kendo_dropdownlist_1_Template","logicChange","filterMenuDropDownLabel","logicOperators","StringFilterMenuComponent_kendo_grid_string_filter_menu_input_2_Template","secondFilter","filterService","extraPlaceholder","menuTabbingService","NumericFilterMenuComponent_kendo_dropdownlist_1_Template","NumericFilterMenuComponent_kendo_grid_numeric_filter_menu_input_2_Template","DateFilterMenuComponent_kendo_dropdownlist_1_Template","DateFilterMenuComponent_kendo_grid_date_filter_menu_input_2_Template","BooleanFilterMenuComponent_li_1_Template","item_r2","input_r3","onShiftTab","radioId","FilterMenuContainerComponent_ng_container_3_Template","childService","childFilter","FilterMenuContainerComponent_ng_container_4_1_ng_template_0_Template","FilterMenuContainerComponent_ng_container_4_1_Template","filterMenuTemplateRef","FilterMenuContainerComponent_ng_container_4_Template","FilterMenuComponent_ng_template_3_Template","FilterCellComponent_ng_container_0_ng_container_2_Template","FilterCellComponent_ng_container_0_ng_container_3_1_ng_template_0_Template","FilterCellComponent_ng_container_0_ng_container_3_1_Template","filterCellTemplateRef","FilterCellComponent_ng_container_0_ng_container_3_Template","FilterCellComponent_ng_container_0_Template","FilterRowComponent_td_0_Template","FilterRowComponent_td_1_Template","FilterRowComponent_td_2_Template","columnIndex_r2","sticky","addStickyStyles","filterClass","getLogicalColIndex","filterLabel","ColumnListComponent_label_1_Template","displayTitle","ColumnListComponent_div_2_Template","applyChanges","onTab","cancelChanges","actionsClass","applyText","resetText","ColumnChooserComponent_ng_template_2_Template","autoSync","allowHideAll","ColumnMenuItemComponent_div_0_Template","content_r1","ColumnMenuItemComponent_ng_template_1_span_3_Template","ColumnMenuItemComponent_ng_template_1_span_4_Template","expandedIcon","expandedSvgIcon","ColumnMenuItemComponent_ng_template_1_div_5_Template","contentState","ColumnMenuItemComponent_ng_template_1_Template","ColumnMenuAutoSizeAllColumnsComponent_kendo_grid_columnmenu_item_0_Template","autoSizeAllColumns","ColumnMenuAutoSizeColumnComponent_kendo_grid_columnmenu_item_0_Template","autoSizeColumn","ColumnMenuChooserComponent_ng_template_1_Template","ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_lock_0_Template","showStick","ColumnMenuPositionComponent_ng_template_1_kendo_grid_columnmenu_stick_1_Template","ColumnMenuPositionComponent_ng_template_1_Template","showLock","ColumnMenuFilterComponent_ng_template_1_Template","ColumnMenuComponent_ng_template_3_Template","defaultTemplate_r6","tabbedInterfaceTemplate_r7","columnMenuTemplateRef","columnMenuTemplate","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_sort_1_Template","sortItem_r9","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_lock_2_Template","lockItem_r10","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_stick_3_Template","stickItem_r11","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_position_4_Template","positionItem_r12","hasLock","hasStick","expandedPosition","ColumnMenuComponent_ng_template_5_span_5_Template","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_chooser_6_Template","chooserItem_r13","expandedColumns","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_autosize_column_7_Template","autoSizeColumnItem_r14","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_autosize_all_columns_8_Template","autoSizeAllColumnsItem_r15","ColumnMenuComponent_ng_template_5_span_9_Template","ColumnMenuComponent_ng_template_5_kendo_grid_columnmenu_filter_10_Template","filterItem_r16","expandedFilter","ColumnMenuComponent_ng_template_5_Template","hasSort","hasPosition","hasColumnChooser","hasAutoSizeColumn","hasAutoSizeAllColumns","hasFilter","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_2_ng_template_1_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_2_ng_template_2_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_2_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_1_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_kendo_grid_columnmenu_sort_0_Template","sortItem_r19","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_span_1_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_kendo_grid_columnmenu_lock_2_Template","lockItem_r20","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_kendo_grid_columnmenu_stick_3_Template","stickItem_r21","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_span_4_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_kendo_grid_columnmenu_position_5_Template","positionItem_r22","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_span_6_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_kendo_grid_columnmenu_autosize_column_7_Template","autoSizeColumnItem_r23","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_kendo_grid_columnmenu_autosize_all_columns_8_Template","autoSizeAllColumnsItem_r24","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_ng_template_2_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_3_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_4_ng_template_1_Template","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_4_ng_template_2_Template","_r25","ColumnMenuComponent_ng_template_7_kendo_tabstrip_tab_4_Template","ColumnMenuComponent_ng_template_7_Template","showGeneralTab","_c26","lastColumn","_c27","_c28","HeaderComponent_tr_1_th_1_Template","HeaderComponent_tr_1_th_2_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_1_ng_template_3_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_1_ng_container_4_Template","column_r2","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_1_kendo_grid_filter_menu_5_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_1_kendo_grid_column_menu_6_Template","columnMenuSettings","sortable","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_1_Template","leafIndex","showFilterMenu","showColumnMenu","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_ng_template_4_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_ng_container_5_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_kendo_icon_wrapper_7_Template","sortDescriptor","sortableLabel","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_span_8_Template","sortOrder","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_kendo_grid_filter_menu_9_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_kendo_grid_column_menu_10_Template","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_2_Template","link_r5","onSortClick","showSortNumbering","HeaderComponent_tr_1_ng_container_3_th_1_ng_container_3_Template","selectAllCheckboxId","selectAllCheckboxLabel","HeaderComponent_tr_1_ng_container_3_th_1_span_4_Template","HeaderComponent_tr_1_ng_container_3_th_1_Template","onHeaderKeydown","columnIndex_r7","last_r8","levelIndex_r9","sortState","isFirstOnRow","logicalColumnIndex","rowspan","totalColumnLevels","isNavigable","isCheckboxColumn","showSelectAll","HeaderComponent_tr_1_ng_container_3_th_2_ng_template_3_Template","HeaderComponent_tr_1_ng_container_3_th_2_ng_container_4_Template","HeaderComponent_tr_1_ng_container_3_th_2_kendo_grid_column_menu_5_Template","HeaderComponent_tr_1_ng_container_3_th_2_span_6_Template","HeaderComponent_tr_1_ng_container_3_th_2_Template","lockedColumnsCount","HeaderComponent_tr_1_ng_container_3_Template","isColumnGroupComponent","HeaderComponent_tr_1_Template","unlockedColumnsCount","totalColumns","detailTemplate","columnsForLevel","trackByIndex","HeaderComponent_tr_2_Template","leafColumns","_c29","FooterComponent_td_2_Template","FooterComponent_td_3_Template","FooterComponent_ng_container_4_td_1_ng_template_1_Template","FooterComponent_ng_container_4_td_1_Template","footerClass","footerStyle","FooterComponent_ng_container_4_Template","_c30","_c31","CellComponent_ng_container_1_ng_container_1_1_ng_template_0_Template","CellComponent_ng_container_1_ng_container_1_1_Template","CellComponent_ng_container_1_ng_container_1_ng_container_2_ng_container_1_Template","childColumn_r2","CellComponent_ng_container_1_ng_container_1_ng_container_2_Template","childColumns","CellComponent_ng_container_1_ng_container_1_ng_container_3_Template","CellComponent_ng_container_1_ng_container_1_ng_container_4_Template","selectionCheckboxId","selectionCheckboxLabel","CellComponent_ng_container_1_ng_container_1_ng_container_5_Template","CellComponent_ng_container_1_ng_container_1_Template","isSpanColumn","isBoundColumn","isRowReorderColumn","CellComponent_ng_container_1_ng_template_2_0_ng_template_0_Template","CellComponent_ng_container_1_ng_template_2_0_Template","CellComponent_ng_container_1_ng_template_2_div_1_Template","CellComponent_ng_container_1_ng_template_2_Template","CellComponent_ng_container_1_Template","loading_r3","showLoading","CellComponent_ng_container_2_1_ng_template_0_Template","CellComponent_ng_container_2_1_Template","editTemplateRef","editTemplateContext","CellComponent_ng_container_2_ng_container_2_kendo_numerictextbox_1_Template","formGroup","CellComponent_ng_container_2_ng_container_2_kendo_datepicker_2_Template","CellComponent_ng_container_2_ng_container_2_input_4_Template","CellComponent_ng_container_2_ng_container_2_input_5_Template","CellComponent_ng_container_2_ng_container_2_Template","editor","CellComponent_ng_container_2_Template","_c32","_c33","_c34","_c36","TableBodyComponent_ng_container_0_ng_container_2_td_1_Template","TableBodyComponent_ng_container_0_ng_container_2_Template","TableBodyComponent_ng_container_0_td_3_Template","addRowLogicalIndex","TableBodyComponent_ng_container_0_td_4_Template","columnIndex_r3","newDataItem","addStickyColumnStyles","logicalColIndex","tableCellsRole","TableBodyComponent_ng_container_0_Template","trackByColumns","TableBodyComponent_tr_1_2_ng_template_0_Template","TableBodyComponent_tr_1_2_Template","noRecordsTemplate","TableBodyComponent_tr_1_ng_container_3_Template","noRecordsText","TableBodyComponent_tr_1_Template","TableBodyComponent_ng_container_2_tr_1_Template","item_r5","rowIndex_r6","hasGroupHeaderColumn","totalColumnsCount","groupHeaderSlaveCellsCount","TableBodyComponent_ng_container_2_tr_2_ng_container_1_td_1_Template","TableBodyComponent_ng_container_2_tr_2_ng_container_1_Template","TableBodyComponent_ng_container_2_tr_2_td_2_a_1_Template","toggleRow","detailButtonTitle","detailButtonIconName","detailButtonSvgIcon","TableBodyComponent_ng_container_2_tr_2_td_2_Template","showIf","TableBodyComponent_ng_container_2_tr_2_td_3_Template","columnIndex_r9","isSelectable","isEditingCell","cellSelectionService","isCellSelected","isVirtual","cellLoadingTemplate","isAriaSelected","TableBodyComponent_ng_container_2_tr_2_Template","isOdd","rowSticky","isEditingRow","isRowSelected","rowClass","TableBodyComponent_ng_container_2_tr_3_td_1_Template","TableBodyComponent_ng_container_2_tr_3_ng_template_4_Template","TableBodyComponent_ng_container_2_tr_3_Template","allColumnsSpan","columnsSpan","TableBodyComponent_ng_container_2_tr_4_ng_container_1_td_1_Template","TableBodyComponent_ng_container_2_tr_4_ng_container_1_Template","TableBodyComponent_ng_container_2_tr_4_td_2_Template","TableBodyComponent_ng_container_2_tr_4_td_3_ng_template_1_Template","TableBodyComponent_ng_container_2_tr_4_td_3_Template","column_r10","groupFooterTemplateRef","TableBodyComponent_ng_container_2_tr_4_Template","footerColumns","TableBodyComponent_ng_container_2_Template","isParentGroupExpanded","showGroupHeader","isDataItem","isDataItemInExpandedGroup","isFooter","isFooterItemInExpandedGroup","showGroupFooters","hideFooter","TableBodyComponent_kendo_resize_sensor_3_Template","resizeHandler","_c37","EditCommandDirective_kendo_icon_wrapper_0_Template","EditCommandDirective_span_1_Template","EditCommandDirective_span_2_Template","_c38","CancelCommandDirective_kendo_icon_wrapper_0_Template","CancelCommandDirective_span_1_Template","CancelCommandDirective_span_2_Template","_c39","SaveCommandDirective_kendo_icon_wrapper_0_Template","SaveCommandDirective_span_1_Template","SaveCommandDirective_span_2_Template","_c40","RemoveCommandDirective_kendo_icon_wrapper_0_Template","RemoveCommandDirective_span_1_Template","RemoveCommandDirective_span_2_Template","_c41","AddCommandDirective_kendo_icon_wrapper_0_Template","AddCommandDirective_span_1_Template","AddCommandDirective_span_2_Template","_c42","_c43","_c44","_c45","PagerNumericButtonsComponent_option_2_Template","pageLabel","PagerNumericButtonsComponent_option_3_Template","num_r3","currentPage","PagerNumericButtonsComponent_option_4_Template","PagerNumericButtonsComponent_button_7_Template","PagerNumericButtonsComponent_button_8_Template","num_r6","PagerNumericButtonsComponent_button_9_Template","_c46","PagerComponent_div_0_Template","onInnerFocusIn","focusTrapTabIndex","PagerComponent_ng_container_1_Template","PagerComponent_ng_container_2_kendo_pager_prev_buttons_2_Template","PagerComponent_ng_container_2_kendo_pager_numeric_buttons_3_Template","buttonCount","PagerComponent_ng_container_2_kendo_pager_input_4_Template","PagerComponent_ng_container_2_kendo_pager_next_buttons_5_Template","PagerComponent_ng_container_2_kendo_pager_info_6_Template","PagerComponent_ng_container_2_kendo_pager_page_sizes_7_Template","pageSizes","PagerComponent_ng_container_2_Template","previousNext","PagerComponent_div_3_Template","PagerComponent_kendo_resize_sensor_4_Template","_c47","StatusBarComponent_0_ng_template_0_Template","StatusBarComponent_0_Template","statusBarTemplate","_c48","_c49","_c50","_c51","_c52","_c53","DOMMouseScroll","lockedWidth","lockedKeydown","lockedScroll","lockedMousewheel","lockedLeafColumns","ListComponent_kendo_resize_sensor_8_Template","ListComponent_kendo_resize_sensor_9_Template","ListComponent_div_12_Template","ToolbarComponent_0_ng_template_0_Template","ToolbarComponent_0_Template","toolbarTemplateRef","_c54","_c55","_c56","_c57","_c58","GridComponent_kendo_grid_toolbar_2_Template","toolbarEnabled","ariaRootId","GridComponent_kendo_pager_3_Template","notifyPageChange","pagerEnabled","pagerTemplate","pageable","GridComponent_kendo_grid_group_panel_4_Template","groupChange","groupableEmptyText","GridComponent_ng_container_7_div_1_div_1_Template","lockedColumns","showGroupPanel","reorderable","columnMenuOptions","columnsContainer","tableEnabled","GridComponent_ng_container_7_div_1_div_7_Template","unlockedWidth","GridComponent_ng_container_7_div_1_Template","headerPadding","nonLockedWidth","virtualColumns","headerLeafColumns","headerColumns","GridComponent_ng_container_7_div_3_div_1_Template","ariaRowCount","GridComponent_ng_container_7_div_3_Template","GridComponent_ng_container_7_Template","notifyScrollBottom","contentScroll","hideHeader","groupable","marqueeSelection","GridComponent_ng_container_8_thead_3_Template","visibleColumns","GridComponent_ng_container_8_tfoot_5_Template","GridComponent_ng_container_8_Template","GridComponent_div_9_Template","GridComponent_kendo_grid_status_bar_10_Template","GridComponent_kendo_pager_11_Template","GridComponent_kendo_grid_toolbar_12_Template","GridComponent_ng_template_13_Template","getHintSettings","GridComponent_div_15_Template","appended","getDocument$1","getWindow$1","isTargetBefore","contains$2","DragAndDropService","notifyDrag","targetFor","notifyDrop","updateClass","updateLock","DragHintService","santizer","iconsService","decorate","safeTitle","innerHtml","isSVG","svgIconsMarkup","fontIconsMarkup","removeLock","toggleLock","iconSettings","DropCueService","EMPTY_REGEX","isUniversal","extractFormat","conditions","getIterator$1","FRAME_DURATION","msCancelRequestAnimationFrame","recursiveFlatMap","isGroupResult","FOCUS_ROOT_ACTIVE","FocusRoot","registerGroup","unregisterGroup","NODE_NAME_PREDICATES","matchesClasses","matchesNodeName","contains$1","isInputTag","navigableRegex","DefaultFocusableElement","findFocusable","canFocus","isNavigableInput","CELL_CONTEXT","EMPTY_CELL_CONTEXT","GridToolbarNavigationService","navigableElements","defaultFocusableSelector","updateFocus","ContextService","topToolbarNavigation","bottomToolbarNavigation","focusGroup","registerElement","unregisterElement","GridFocusableElement","focusCell","NavigationCursor","activeRow","activeCol","virtualCol","virtualRow","_metadata","newActiveCol","hasDetailTemplate","headerRows","findRow","findCell","dataRowIndex","colIndex","isActiveRange","prevColIndex","prevRowIndex","cellRange","assume","announce","activateVirtualCell","rowRange","offsetRow","moveLeft","offsetCol","moveRight","lastCellIndex","leafColumnsToRender","groupItem","prevRow","nextColIndex","nextRowIndex","nextCell","maxLogicalRowIndex","lastRow","nextRow","rowSpan","ItemMap","firstRow","registerCell","modelCell","detailExpandCell","unregisterCell","registerRow","modelRow","updateRow","unregisterRow","rowCell","firstCell","DomEventsService","cellMousedown","cellMouseup","focusIn","focusOut","windowBlur","paste","CellCloseEvent","isNewRow","EditService","editedIndices","keepEditCell","closingCell","changedSource","editRow","onChanged","addRow","newItemGroup","editCell","editable","editTemplate","preventCellClose","closeCell","isEditing","hasNewItem","isNotEqual","cancelCell","shouldCloseCell","keepCellTimeout","findByIndex","columnContext","isEdited","hasEdited","isEditedColumn","beginEdit","beginAdd","endEdit","getGroupRowArgs","parentGroup","GroupsService","rowState","groupArgs","userCallback","isInExpandedGroup","expandChildren","isChildIndex","sameIndex","lastSeparatorIndex","sameSubGroupIndex","PagerContextService","changePageSize","nextPage","DetailCollapseEvent","DetailExpandEvent","DetailsService","collapseRow","expandRow","eventArg","ScrollRequestService","requests","adjustIndex","isInSameGrid","gridElement","matchHeaderCell","matchDataCell","matchFooterCell","matchCell","targetCell","gridCell","isNavigationKey","isArrowKey","isInput","NavigationViewport","containsRow","pagerContextService","scrollRequestService","groupsService","detailsService","focusRoot","editService","focusableParent","cellKeydown","activeRowIndex","alive","pagerIsNavigable","tableIsNavigable","toolbarIsNavigable","activeCell","activeDataRow","navigableOptions","setActiveSections","onStableSubscriber","onCursorChanges","navigateTo","onFocusOut","onWindowBlur","leaveCell","onKeydown","onTabout","deactivateElements","pendingRowIndex","virtualCell","registerCellOnCurrentRow","needsViewport","isCellFocusable","isCellFocused","oldMode","focusInCell","focusInActiveRowContent","activateRow","alreadyActive","tryFocus","activateElements","enterCell","setViewport","behind","setColumnViewport","columnViewport","activeColumnIndex","focusCellByElement","focusNextCell","focusAdjacentCell","focusPrevCell","autoFocusCell","fwd","moveCursorFwd","moveCursorBwd","colIdx","onCursorKeydown","onCellKeydown","hasPager","firstColumnIndex","lastRowIndex","isPrintableCharacter","onContentKeydown","isTextInput","hasClass","isDeleteButton","isSortIcon","skipButtons","elementUnderCursor","DraggableColumnDirective","cue","updateTouchAction","preventOnDblClick$1","upEvent","cursorElement","hideThenShow","DropTargetDirective","GroupHeaderTemplateDirective","GroupHeaderColumnTemplateDirective","EditTemplateDirective","GroupFooterTemplateDirective","ColumnMenuTemplateDirective","IdService","cellId","ColumnMenuErrorMessages","ColumnConfigurationErrorMessages","columnType","nestedInside","nestedColumnNameType","parentColumnType","GridConfigurationErrorMessages","functionType","incompatibleFeatures","feat1Name","feat2Name","expandCollapseMethods","expandMethodName","collapseMethodName","directiveName","callbackName","requiredModule","exportedType","moduleName","componentSelector","ColumnBase","idService","orderIndex","isColumnGroup","minResizableWidth","_locked","lockable","stickable","columnMenu","includeInChooser","headerTemplates","columnMenuTemplates","isColumnContainer","_leafIndex","_width","maxResizableWidth","autoSize","filterStyle","FilterCellTemplateDirective","FilterMenuTemplateDirective","isColumnComponent","ColumnComponent","groupHeaderTemplateRef","groupHeaderColumnTemplate","groupFooterTemplate","filterCellTemplate","filterMenuTemplate","isSpanColumnComponent","SpanColumnComponent","_editable","childrenArray","expandColumns","expandColumnsWithSpan","columnsToRender","sumProp","sumColumnWidths","validField","someLeafColumn","sortColumns","isInSpanColumn$1","ColumnGroupComponent","DetailTemplateDirective","_condition","ColGroupComponent","isSortable","LoadingTemplateDirective","LoadingComponent","resizeSubscription","resizes","ResizableContainerDirective","_lockedWidth","attachResize","kendoGridResizableContainer","FocusGroup","focusableChildren","toggleState","ColumnsContainer","allColumns","nonLockedColumns","nonLockedLeafColumns","totalLevels","lockedColumnsToRender","nonLockedColumnsToRender","hasGroupFooter","hasFooter","currentLevels","containerLeafColumns","containerColumns","toRenderContainer","leaf","lists","NO_STICKY","ColumnInfoService","visibilityChange","lockedChange","stickyChange","columnRangeChange","hiddenColumns","leafNamedColumns","filterSort","unlockedRootCount","rootColumns","stickyColumnsStyles","stickyColumns","changeVisibility","changeLocked","changeStuck","id$3","LogicalCellDirective","columnInfoService","logicalSlaveCell","ariaColIndex","navigationChange","onNavigationChange","registerNoChanges","rowIndexChange","registerChanges","microtask","headerLabelText","id$2","LogicalRowDirective","logicalSlaveRow","logicalSlaveCellsCount","tableRowClass","hostRole","ariaRowIndex","ariaOwns","logicalCellsCount","columnsArray","FieldAccessorPipe","GridTableDirective","sizeSmallClass","sizeMediumClass","forEachColumn","forEachLevel","filterHierarchy","ColumnList","GroupInfoService","_columnList","registerColumnsContainer","columnForGroup","isGroupable","GroupHeaderComponent","groupInfoService","hasDetails","groupItemClass","tableGroupRowClass","groupCount","detailOffset","withoutField","alreadyGrouped","indicatorRules","overSameTarget","overLastTarget","isLastGroup","GroupPanelComponent","relatedItemType","activateMenuItem","destroyMenu","handleMenuClick","menuItemEl","activeMenuItem","groupHeaderClass","emptyText","attachTargets","currentTitles","targetSubscription","popupAnchor","canDrop","groupService","isNotGroupable","columnRules","enterStream","leaveStream","dropStream","focusAnchor","relatedItem","groupChip","groupChipIndex","isPrev","operatorTexts","filterEqOperator","filterNotEqOperator","filterGteOperator","filterGtOperator","filterLteOperator","filterLtOperator","filterIsNullOperator","filterIsNotNullOperator","filterIsEmptyOperator","filterIsNotEmptyOperator","filterContainsOperator","filterNotContainsOperator","filterStartsWithOperator","filterEndsWithOperator","filterAfterOrEqualOperator","filterAfterOperator","filterBeforeOrEqualOperator","filterBeforeOperator","FilterOperatorBase","refreshText","ContainsFilterOperatorComponent","DoesNotContainFilterOperatorComponent","EndsWithFilterOperatorComponent","EqualFilterOperatorComponent","IsEmptyFilterOperatorComponent","IsNotEmptyFilterOperatorComponent","IsNotNullFilterOperatorComponent","IsNullFilterOperatorComponent","NotEqualFilterOperatorComponent","StartsWithFilterOperatorComponent","GreaterFilterOperatorComponent","GreaterOrEqualToFilterOperatorComponent","LessFilterOperatorComponent","LessOrEqualToFilterOperatorComponent","AfterFilterOperatorComponent","AfterEqFilterOperatorComponent","BeforeEqFilterOperatorComponent","BeforeFilterOperatorComponent","SizingOptionsService","FilterCellOperatorsComponent","sizing","showOperators","localizationMsg","showButton","composing","filterDelay","changeRequests","unsubscribeStart","unsubscribeEnd","addAriaAttributes","subscribeChanges","isChanged$1","unsubscribeChanges","changeRequestsSubscription","ariaValue","focusableElement","MenuTabbingService","isColumnMenu","isTabbedInterface","FilterService","headerSubscription","bodySubscription","registerEmitter","sourceType","PopupCloseEvent","SinglePopupService","pointerEventsSub","attachClose","attachMouseListeners","detachClose","removeClick","skipElement","canClosePopup","setFilter","defaultOperator","insertDefaultFilter","rootFilter","trimFilterByField","filtersByField","removeFilter","localizeOperators","BaseFilterCellComponent","operatorList","_operators","defaultOperators","operationListSubscription","filterByField","currentFilter","updateFilter","applyFilter","cloneFilters","cloneFilter","FilterHostDirective","initComponent","stringOperators$1","StringFilterComponent","currentOperator","localizationChange","FilterMenuDropDownListDirective","wrapperElement","i1$4","EMPTY_VALUE_OPERATORS","isEmptyValueOperator","FilterInputWrapperComponent","_operator","emptyValueOperator","filterInputDisabled","applyNoValueFilter","_defaultOperator","changeSubscription","onClear","FilterMenuInputWrapperComponent","shouldFocusFirstFocusable","isFirstDropDown","firstOperatorDropDown","operatorChange","_currentFilter","StringFilterMenuInputComponent","TextBoxDirective","StringFilterMenuComponent","firstFilter","numericOperators","NumericFilterComponent","_format","columnFormat","NumericFilterMenuInputComponent","NumericTextBoxComponent","NumericTextBoxCustomMessagesComponent","NumericFilterMenuComponent","dateOperators","DateFilterComponent","DateFilterMenuInputComponent","picker","picker_r2","DateFilterMenuComponent","BooleanFilterComponent","BooleanFilterRadioButtonDirective","radioButtonEl","BooleanFilterMenuComponent","radioButtons","radioValue","RadioButtonDirective","FilterMenuHostDirective","boolean","filterMenuComponentFactory","validFilters","isNoValueOperator","parentLogicOfDefault","FilterMenuContainerComponent","parentService","_templateContext","_filter","_childFilter","resetButton","filterButton","submit","trimFilters","id$1","FilterMenuComponent","ariaRoot","popupAriaElement","getId$1","anchor_r2","template_r3","EMPTY_FILTER_OPERATORS","FilterCellWrapperComponent","overrideBaseClasses","stringOperators","AutoCompleteFilterCellComponent","sizingOptionsService","_valueField","BooleanFilterCellComponent","sizingService","DateFilterCellComponent","StringFilterCellComponent","NumericFilterCellComponent","FilterCellHostDirective","filterComponentFactory","FilterCellComponent","FilterRowComponent","filterRowClass","ColumnMenuChooserItemCheckedDirective","checkedChangeSub","kendoColumnMenuChooserItemChecked","ColumnMenuService","closeMenu","ColumnListKeyboardNavigation","toggleCheckedState","ColumnListComponent","listNavigationService","columnChange","unlockedCount","checkbox","_columns","updateColumnState","closestItem","updateDisabled","hasFiltered","hasVisibleLocked","hasUnlockedFiltered","forEachCheckBox","getElementsByClassName","hasLocked","checkedUnlocked","filteredColumns","attributeCommand","ColumnChooserComponent","escapeListener","closeClick","columnList","ColumnMenuItemBase","columnChooser","autoFitColumn","autoFitColumns","ColumnMenuItemContentTemplateDirective","ColumnMenuItemComponent","updateContentState","ColumnMenuAutoSizeAllColumnsComponent","ColumnMenuAutoSizeColumnComponent","ColumnMenuChooserComponent","ColumnMenuStickComponent","toggleColumn","toggleHierarchy","allChanged","ColumnMenuLockComponent","ColumnMenuPositionComponent","_isLast","getLastFocusableItem","isLastItem","ColumnMenuFilterComponent","ColumnMenuItemDirective","_isFirst","columnMenuItems","menuItemComponent","getLastColumnMenuItem","firstItemKeydownSub","lastFocusableElement","lastItemKeydownSub","isExpandableItem","columnMenuContainer","templateMenuItems","ColumnMenuContainerComponent","SortService","allowUnsort","showIndexes","initialDirection","multiSortKey","normalize$1","ColumnMenuSortComponent","sortService","sortedAsc","sortedDesc","toggleSort","ColumnMenuComponent","closeSubscription","stick","setColumnPosition","getExpandedState","getId","columnMenuTitle","tabStrip","selectTab","menuItemSettings","TabStripComponent","tabbedInterfaceTemplate","TabStripTabComponent","TabTitleDirective","TabContentDirective","ExcelService","saveToExcel","exportClick","SuspendService","PDFService","savePDF","drawPDF","dataChanged","hasFilterRow","ColumnReorderService","ColumnReorderEvent","resizeArgs","ColumnResizingService","trackColumns","resizeColumns","deltaPercent","resizeTable","resizedColumn","resizedColumns","registerTable","tableMetadata","unregisterTable","measureColumns","autoFitBatch","autoFitStart","zip$1","widths","headerWidth","allLeafColumns","isInSpanColumn","ColumnHandleDirective","leftStyle","rightStyle","allLeafs","currentLeafs","columnInfo","isParentSpan","isLastInSpan","ignore","isParentSpanColumn","headerIndex","implicitWidth","initState","shouldUpdate","initColumnWidth","preventOnDblClick","toPercentage","resizeStartWidth","sizeToFit","oldWidth","fromPercentage","tableDelta","getTableDelta","updateWidth","startWidth","isAboveMin","isBelowMax","LocalDataChangesService","CellSelectionAggregateService","dataChanges","selectedItems","groupedAggregates","booleans","isTrue","isFalse","earliest","latest","isAggregateIncluded","cellAggregates","selectionDirective","isRowSelection","selectionArgs","handleSelectedItems","nullifyAggregates","handleAggregateChanges","selectedItemsLength","cellValue","groupAggregates","columnKey","calculateAggregates","isTrueCount","bool","isFalseCount","deselectedItems","aggregateService","localDataChangesService","ctxService","selectAllChecked","dragging","lastSelectionData","enableMarquee","checkboxOnly","selectableSettings","dragAndMultiple","lastSelectionStartIndex","rangeSelectionStartRow","getIterator","_selectAllState","rowArgs","rowSelected","addAllTo","selectedRows","deselectedRows","rangeStartRow","rangeEndRow","toggleByIndex","itemToToggle","removedItem","updateAll","selectRange","selectAllState","removeSubscriptions","targetArgs","mouseDownEventArgs","cellClickSubscription","mousedownSubscription","dataChangedSubscription","SelectAllCheckboxDirective","selectAllChange","stateSet","destroyClick","detectIE","trident","enabledAndMultiple","shouldEmitSelectAll","stateToBool","mergeObjects","inSameParent","ofColumnType","notInSpanColumn","notSameElement","sameParent","lastNonLocked","isRootLevel","modifierKeys","reorderService","sortedFields","sortColumn","matchModifier","toggledColumn","filterMenu","filterMenus","fm","columnMenus","isCtrlOrMeta","gr","isReorderable","columnsCount","reorderDirectionOffset","normalizedNewIndex","gridInstance","reorderColumn","columnReorder","toggleDirection","_leafColumns","sortChange","isTailing","hasFilterMenu","showFilterRow","canReorder","stickyStyles","directions","columnLevels","targetLocked","draggableLocked","trackMove","calculateBefore","changeContainer","normalizeTarget","firstSpan","levelColumns","CommandColumnComponent","CheckboxColumnComponent","SelectionCheckboxDirective","destroyKeyDown","setCheckedState","ChangeNotificationService","NoRecordsTemplateDirective","defaultTrackBy","NON_DATA_CELL_CLASSES","CellSelectionService","mouseUpEvent","dragSelectDeselect","lastSelectionItem","lastSelectionItemRowIndex","lastSelectionItemColIndex","selectedCellArgs","cellSelected","startRowIndex","startColIndex","endRowIndex","endColIndex","selectedCells","deselectedCells","rangeStartCell","rangeEndCell","selectedItem","cellsToRemove","contender","selectionStartRow","selectionStartCol","selectionEndRow","selectionEndCol","isInSelectionRect","CellComponent","_editTemplateContext","commandCellClass","isCommand","dragHandleCellClass","dragRowHandleLabel","_rowIndex","updateCellContext","isColumnEditable","editContext","isFieldEditable","updateTemplateContext","TableBodyComponent","changeNotification","cellKeydownSubscription","cellKeydownHandler","trackByWrapper","allColumnsCount","contentColumnsCount","headerFooterColumnsCount","viewItem","applyStickyRowsStyling","absoluteRowIndex","addRowOffset","filterRowOffset","mouseupSubscription","contextmenuSubscription","touchstartSubscription","touchendSubscription","touchSubscription","originalNoRecordText","l10nSubscription","clickTimeout","skipHeader","cellClickArgs","emitCellClick","isEditedRow","columnCellIndex","stickyRows","nodesToArray","accumulatedHeight","stickyRowsOffsets","EditCommandDirective","commandClass","CancelCommandDirective","SaveCommandDirective","RemoveCommandDirective","AddCommandDirective","CellLoadingTemplateDirective","RowReorderColumnComponent","dragHandleIcon","dragHandleSVGIcon","normalizeSettings","responsive","PagerTemplateDirective","PagerElementComponent","pagerContext","prevArrowIcons","prevArrowSVGIcons","nextArrowIcons","nextArrowSVGIcons","PagerInfoComponent","maxItems","currentPageText","PagerDropDownListDirective","PagerPageSizesComponent","_pageSizes","normalizedItems","showInitialPageSize","pageSizeChange","dropdownlist_r2","PagerNumericButtonsComponent","reminder","pageText","onSelectChange","valueAsNumber","selectElement","numbersElement","PagerNextButtonsComponent","PagerInputDirective","numericInput","i1$5","PagerInputComponent","incomingValue","hasPages","PagerPrevButtonsComponent","PagerComponent","gridPagerClass","numericButtons","pagerInfo","pagerPageSizes","pagerAriaLabel","pagerLabel","onFocusIn","focusFirstElement","navigateToPreviousPage","shouldTriggerPageChange","navigateToNextPage","navigateToFirstPage","navigateToLastPage","changesInTemplate","clearResponsiveStyling","focusLastElement","findLastFocusableChild","findLastElement","ZoneAwareEventEmitter","generatorOrNext","schedulerFn","canCreateElement","cachedPixelRatio","cachedScrollbarWidth","cachedRtlScrollLeft","BrowserSupportService","rtlScrollLeft","isGroupItem","flattenGroups","footers","dataIndex","parentGroupIndex","isVirtualGroupItem","GroupIterator","ItemIterator","ArrayIterator","Iterator","resultMap","_innerIterator","outputFooters","currentGroupIndex","_iterator","nextGroupItem","footerItem","innerIterator","nextDataItem","DataResultIterator","groupFooters","isGridDataResult","DataCollection","PairSet","keyXField","keyYField","keysX","totalKeysCount","keyX","keyY","keysY","rangeSelectionStartColumnIndex","rowSelectionState","cellSelectionState","isCellSelectionMode","lastSelectionState","getItemKey","getSelectionItem","selectionChangeSubscription","selectionKey","stateToArray","itemIdentifiers","notifyChange","syncRowsHeight","table1","table2","arr1","arr2","offsetHeight2","getHeights","setHeight$1","PDFExportEvent","browserMatchMedia","ResponsiveService","sm","md","lg","xl","bootstrapToMedia","ToolbarTemplateDirective","NavigationMetadata","ColumnVisibilityChangeEvent","ColumnLockedChangeEvent","ColumnStickyChangeEvent","hintIcons","forbidden","hintSVGIcons","hintStyles","hintClasses","dropIndicatorStyles","dropIndicatorClasses","defaultSelectors","RowReorderService","lastDropPosition","rowReorder","createDropIndicator","decorateHint","positionDropIndicator","dragEnter","dragLeave","destroyDropIndicator","rowReorderArgs","reorderRows","draggedRows","dropTargetRow","draggedDataItem","dropTargetDataItem","draggedItemIndex","idxToAdd","calculateIndexToAdd","hintIcon","hintSVGIcon","getDefaultHintText","columnFieldsArray","getDragRowPerElement","columnValue","dragRow","dropRow","dropPosition","dropIndicator","decorateDropIndicator","getDropPosition","updateDropIndicatorPosition","isDifferentParent","itemViewPortCoords","itemDivisionHeight","pointerPosition","itemTop","currentDropPosition","isNextSibling","isPreviousSibling","previousElementSibling","shouldHideDropIndicator","destinationItemOffset","getOffset","indicatorOffsetTop","StatusBarTemplateDirective","ClipboardService","itemToString","createClipboardData","gridItems","fieldCols","dataStrings","colFields","wholeRow","targetColField","targetRowIndex","operationType","copyHeaders","addHeaders","tabular","groupSelection","colIdentifier","selectionKeys","selectedFieldCols","selectedColFields","itemString","existingItem","rowIdentifier","colField","copiedData","getGridData","rowData","activeCellIndex","isCellSelection","visibleCols","rowString","targetColFieldIndex","affectedFields","areEqual","initialData","StatusBarComponent","isStatusBarTemplate","GridMarqueeDirective","cellSelection","selectionStarted","moveMarquee","isInvalidTarget","pressArgs","pressTarget","dragEndSubscription","endSelection","initMarquee","marqueeElement","marqueeQuadrant","getMarqueeQuadrant","pointerX","pointerY","startY","leftHalf","rightHalf","topHalf","bottomHalf","targetOffset","ScrollBottomAction","firstItemOffset","nextTake","columnsToResize","resizableColumns","TableDirective","firstResize","bufferCount","startBufferEvery","toEmit","autoFitSubscription","autoFitObservable","originalWidth","measureColumn","headerRow","elementAt","elementIdx","rowAt","maybeNativeElement","suspendService","supportService","columnResizingService","pdfService","scrollBottom","columnsStartIdx","resizeSensors","containerScrollTop","detailExpand","exporting","viewportColumns","groupCellsWidth","handleRowSync","handleRowNavigationLocked","updateViewportColumns","changesInSkip","handleInitialScrollToSkip","rebind","skipScroll","viewportWidthChange","resetNavigationViewport","attachContainerScroll","initResizeService","hasLockedContainer","lockedContainer","lockedTable","cleanupScroller","createScroller","lockedScrollTop","preventLockedScroll","scrollDelta","onContainerScroll","handleColumnScroll","rowViewport","startRow","endRow","endColumn","scrollerSubscription","syncContainerHeight","sensor","scrollToVirtualRow","adjustIndexForDetailTemplate","normalizeScrollLeft","cellAt","elementScrollLeft","dataItemIndex","idField","dataAttribute","lastItemOffset","viewportStart","viewportEnd","lastItemHeight","setHeight","calculateViewportColumns","currentColumns","viewportColumnsWidth","stickyBeforeStart","stickyAfterEnd","offsetColumn","columnsEndIdx","updateColumnViewport","columnUpdateFrame","lockedCount","normalizedScrollLeft","rtlScrollPosition","stickyRowHeight","ToolbarComponent","closestFocusable","isFocusable$1","arrowLeftListener","arrowRightListener","homeKeyListener","endKeyListener","toolbarTemplate","GridMessages","ɵGridMessages_BaseFactory","groupPanelEmpty","noRecords","pagerFirstPage","pagerLastPage","pagerPreviousPage","pagerNextPage","pagerPage","pagerItemsPerPage","pagerOf","pagerItems","pagerPageNumberInputTitle","selectPage","filterMenuTitle","filterMenuOperatorsDropDownLabel","filterMenuLogicDropDownLabel","filterCellOperatorLabel","booleanFilterCellLabel","filterIsTrue","filterIsFalse","filterBooleanAll","filterFilterButton","filterClearButton","filterAndLogic","filterOrLogic","gridLabel","unstick","sortAscending","sortDescending","autosizeThisColumn","autosizeAllColumns","sortedAscending","sortedDescending","sortedDefault","columnsApply","columnsReset","detailCollapse","filterDateToday","filterDateToggle","filterNumericDecrement","filterNumericIncrement","groupCollapse","groupExpand","topToolbarLabel","bottomToolbarLabel","groupPanelLabel","columnMenuFilterTabTitle","columnMenuGeneralTabTitle","columnMenuColumnsTabTitle","groupChipMenuPrevious","groupChipMenuNext","isInEditedCell","GridComponent","responsiveService","excelService","columnReorderService","rowReorderService","gridData","dataStateChange","edit","cellClose","pdfExport","excelExport","columnResize","columnVisibilityChange","columnLockedChange","columnStickyChange","hasGroupFooters","shouldGenerateColumns","notifyTimeout","_sort","_group","cachedWindowWidth","_rowSelected","_cellSelected","_rowReorderable","_rowClass","localizationSubscription","columnVisibilityChangeSubscription","columnLockedChangeSubscription","columnStickyChangeSubscription","groupExpandCollapseSubscription","handleExpandCollapseGroupsService","expandEmitter","collapseEmitter","detailsServiceSubscription","handleExpandCollapseDetailsService","filterSubscription","sortSubscription","attachStateChangesEmitter","attachEditHandlers","attachDomEventHandlers","pdfSubscription","emitPDFExportEvent","excelSubscription","saveAsExcel","columnsContainerChange","handleColumnResize","columnReorderSubscription","columnRangeChangeSubscription","onColumnRangeChange","rowReorderable","notifyReorderContainers","showStatusBar","showTopToolbar","showBottomToolbar","showTopPager","showBottomPager","rowReorderSubscription","_rowSticky","defaultSelection","lockedClasses","virtualClasses","noScrollbarClass","_customDetailTemplate","detailTemplateChildren","_cellLoadingTemplate","cellLoadingTemplateChildren","_loadingTemplate","loadingTemplateChildren","_statusBarTemplate","statusBarTemplateChildren","_customNoRecordsTemplate","noRecordsTemplateChildren","customNoRecordsTemplate","_customPagerTemplate","pagerTemplateChildren","customPagerTemplate","_customToolbarTemplate","toolbarTemplateChildren","customToolbarTemplate","ariaColCount","leafViewportColumns","getDefaultSelectors","toggleDetailRowLegacy","expandGroup","toggleGroupRowLegacy","collapseGroup","resetGroupsState","onDataChange","autoGenerateColumns","initSelectionService","updateNavigationMetadata","syncHeaderHeight","attachScrollSync","shouldResetSelection","navigationMetadata","applyAutoSize","columnsChangeSubscription","selectionSubscription","stateChangeSubscription","editServiceSubscription","columnsContainerChangeSubscription","detachElementEventHandlers","footerChangeSubscription","columnResizingSubscription","focusElementSubscription","skipFocus","focusEditElement","closeRow","createControl","columnInstance","saveAsPDF","containerSelector","setEditFocus","assertNavigable","destIndex","allColumnsForLevel","isDetailExpanded","isGroupExpanded","handleReorderEvents","evType","updateColumnIndices","sourceColumnIndex","nextSourceIndex","toSkip","updateIndicesForLevel","colsForParentLevel","colsForLevel","cellSelectionMode","activeService","inactiveService","isValidFieldName","validateColumnsField","emitCRUDEvent","resizeCheck","orientationSubscription","documentClickSubscription","keydownSubscription","focusInSubscription","focusOutSubscription","lockedHeader","notifyResize","lastFromGroup","hasCallback","groupBindingDirective","selectableChanges","dragTargetContainer","dropTargetContainer","i18n_34","i18n_35","i18n_36","i18n_37","i18n_38","i18n_39","i18n_40","i18n_41","i18n_42","i18n_43","i18n_44","i18n_45","i18n_46","i18n_47","i18n_48","i18n_49","i18n_50","i18n_51","i18n_52","i18n_53","i18n_54","i18n_55","i18n_56","i18n_61","i18n_62","i18n_63","i18n_64","i18n_65","i18n_66","i18n_67","i18n_68","i18n_69","i18n_70","i18n_71","i18n_72","i18n_73","i18n_74","i18n_75","i18n_76","i18n_77","i18n_78","i18n_79","i18n_80","i18n_81","i18n_82","defaultHint_r7","DataBindingDirective","applyState","onStateChange","onRowReorder","updateGridData","notifyDataChange","SelectionDirective","GridSpacerComponent","sizedClass","flexBasisStyle","GridToolbarFocusableDirective","toolbarPosition","KENDO_GRID_FILTER_SHARED","KENDO_GRID_FILTER_MENU_EXPORTS","KENDO_GRID_FOOTER_EXPORTS","NavigationService$1","SVGIconComponent__svg_svg_0_Template","IconWrapperComponent_kendo_svgicon_0_Template","innerCssClass","IconWrapperComponent_ng_template_1_kendo_icon_0_Template","IconWrapperComponent_ng_template_1_ng_template_1_Template","customClasses","IconWrapperComponent_ng_template_1_Template","custom_r2","customFontIconClass","sizeClasses","xsmall","xlarge","xxlarge","xxxlarge","IconBaseDirective","horizontalFlip","verticalFlip","hostAriaHidden","_name","SVGIconComponent","domSanitizer","newName","areSame","verifyIconProperty","IconSettingsService","getCustomFontIconClass","ICON_SETTINGS","_iconSettings","iconSettingsService","customFontClass","cl","hasSvgIcon","groupCollapsed","groupEnd","font_r3","SignaturePad","lastMoveTime","resolveColors","smooth","onDraw","onDrawEnd","pathOptions","initSurface","readThemeColors","themeBackgroundColor","themeElement","computedStyle","isDrawing","pathData","importWidth","importHeight","exportWidth","exportHeight","exportRect","contentGroup","detachPointerMove","attachPointerMove","touchPoint","isMainButton","SliderTicksComponent_li_0_span_3_Template","tick_r1","defaultLabel_r3","SliderTicksComponent_li_0_ng_container_4_Template","SliderTicksComponent_li_0_Template","tickTitle","SliderTicksComponent_ng_template_1_Template","SliderComponent_button_1_Template","decreaseButtonArrowIcon","decreaseButtonArrowSVGIcon","decrementMessage","SliderComponent_ul_4_Template","smallStep","largeStep","SliderComponent_button_11_Template","increaseButtonArrowIcon","increaseButtonArrowSVGIcon","incrementMessage","RangeSliderComponent_ul_3_Template","dragenter","NumericTextBoxComponent_span_2_ng_template_1_Template","NumericTextBoxComponent_span_2_Template","NumericTextBoxComponent_kendo_input_separator_3_Template","NumericTextBoxComponent_kendo_input_separator_6_Template","NumericTextBoxComponent_span_7_ng_template_1_Template","NumericTextBoxComponent_span_7_Template","NumericTextBoxComponent_span_8_Template","releaseArrow","ArrowDirection","increasePress","incrementTitle","arrowUpIcon","decreasePress","decrementTitle","arrowDownIcon","MaskedTextBoxComponent_span_1_ng_template_1_Template","MaskedTextBoxComponent_span_1_Template","MaskedTextBoxComponent_kendo_input_separator_2_Template","MaskedTextBoxComponent_kendo_input_separator_5_Template","MaskedTextBoxComponent_span_6_ng_template_1_Template","MaskedTextBoxComponent_span_6_Template","ColorInputComponent_div_3_Template","handleHexInputBlur","hexInput_r3","handleHexValueChange","focusDragHandle","ColorInputComponent_ng_container_4_div_16_Template","rgba","handleRgbaInputBlur","handleRgbaValueChange","alpha_r6","ColorInputComponent_ng_container_4_Template","red_r7","green_r8","blue_r9","ContrastValidationComponent_ng_container_2_span_1_Template","passMessage","ContrastValidationComponent_ng_container_2_span_2_Template","failMessage","ContrastValidationComponent_ng_container_2_Template","pass","ContrastComponent_ng_container_3_span_1_kendo_icon_wrapper_2_Template","ContrastComponent_ng_container_3_span_1_Template","satisfiesAAACondition","ContrastComponent_ng_container_3_span_2_Template","ContrastComponent_ng_container_3_Template","satisfiesAACondition","ColorContrastSvgComponent__svg_path_0_Template","ColorGradientComponent__svg_svg_8_Template","gradientWrapper_r4","hsva","contrastTool","ColorGradientComponent_button_10_Template","innerTabIndex","clearButtonTitle","ColorGradientComponent_kendo_slider_12_Template","handleAlphaSliderChange","opacitySliderTitle","alphaSliderValue","ColorGradientComponent_div_15_Template","ColorPaletteComponent_tr_3_td_1_Template","color_r3","colIndex_r4","rowIndex_r5","handleCellSelection","selectedCell","focusInComponent","focusedCell","tileLayout","ColorPaletteComponent_tr_3_Template","row_r7","FlatColorPickerHeaderComponent_div_1_button_1_Template","view_r2","onViewButtonClick","onHeaderTabOut","getViewButtonIcon","getViewButtonsSVGIcon","FlatColorPickerHeaderComponent_div_1_Template","FlatColorPickerHeaderComponent_button_4_Template","clearButtonClick","FlatColorPickerHeaderComponent_div_5_Template","valuePaneClick","FlatColorPickerComponent_div_1_Template","onClearButtonClick","onViewChange","preview","FlatColorPickerComponent_kendo_colorgradient_3_Template","focusFirstHeaderButton","handleValueChange","gradientSettings","gradientSliderSmallStep","gradientSliderStep","FlatColorPickerComponent_kendo_colorpalette_4_Template","paletteSettings","palette","FlatColorPickerComponent_div_5_Template","onAction","ColorPickerComponent_kendo_icon_wrapper_4_Template","iconStyles","customIconStyles","ColorPickerComponent_ng_template_7_Template","handleCancelEvent","handlePopupBlur","handlePopupKeyDown","FormFieldComponent_ng_content_3_Template","FormFieldComponent_ng_content_4_Template","RatingComponent_span_1_ng_container_1_ng_container_1_kendo_icon_wrapper_1_Template","item_r4","hovered","svgIconOutline","RatingComponent_span_1_ng_container_1_ng_container_1_kendo_icon_wrapper_2_Template","RatingComponent_span_1_ng_container_1_ng_container_1_Template","RatingComponent_span_1_ng_container_1_2_ng_template_0_Template","RatingComponent_span_1_ng_container_1_2_Template","RatingComponent_span_1_ng_container_1_3_ng_template_0_Template","RatingComponent_span_1_ng_container_1_3_Template","hoveredItemTemplate","RatingComponent_span_1_ng_container_1_4_ng_template_0_Template","RatingComponent_span_1_ng_container_1_4_Template","selectedItemTemplate","RatingComponent_span_1_ng_container_1_Template","RatingComponent_span_1_ng_container_2_ng_container_1_kendo_icon_wrapper_2_Template","RatingComponent_span_1_ng_container_2_ng_container_1_kendo_icon_wrapper_3_Template","RatingComponent_span_1_ng_container_2_ng_container_1_kendo_icon_wrapper_5_Template","RatingComponent_span_1_ng_container_2_ng_container_1_kendo_icon_wrapper_6_Template","RatingComponent_span_1_ng_container_2_ng_container_1_Template","RatingComponent_span_1_ng_container_2_ng_template_3_Template","RatingComponent_span_1_ng_container_2_span_4_ng_template_1_Template","RatingComponent_span_1_ng_container_2_span_4_Template","RatingComponent_span_1_ng_container_2_span_5_ng_template_1_Template","RatingComponent_span_1_ng_container_2_span_5_Template","RatingComponent_span_1_ng_container_2_Template","RatingComponent_span_1_Template","onMouseEnter","onMouseOut","changeValue","selectedIndicator","half","RatingComponent_span_2_Template","SignatureComponent_button_4_Template","onMaximize","SignatureComponent_button_5_Template","onMinimize","SignatureComponent_div_6_Template","SignatureComponent_button_8_Template","SignatureComponent_kendo_dialog_9_Template","onDialogClick","onDialogKeydown","onDialogValueChange","onDialogClose","popupValue","hideLine","popupScale","exportScale","_c59","_c60","TextAreaComponent_kendo_input_separator_2_Template","separatorOrientation","TextAreaComponent_kendo_input_separator_5_Template","TextBoxComponent_span_2_ng_template_1_Template","TextBoxComponent_span_2_Template","TextBoxComponent_kendo_input_separator_3_Template","TextBoxComponent_span_6_Template","clearButtonClass","customClearButtonClasses","clearButtonSvgIcon","TextBoxComponent_kendo_icon_wrapper_7_Template","errorIconClasses","customIconClasses","errorSvgIcon","TextBoxComponent_kendo_icon_wrapper_8_Template","successIconClasses","customSuccessIconClasses","successSvgIcon","TextBoxComponent_kendo_input_separator_9_Template","TextBoxComponent_span_10_ng_template_1_Template","TextBoxComponent_span_10_Template","fitIntoBounds","SIZE_MAP","ROUNDED_MAP","isNone","COMPONENT_TYPE","limitPrecision","fractionLength","maxFractionLength","toFixedPrecision","maxPrecision","correctionValue","calculateFixedTrackSize","fixedTickWidth","calculateTicksCount","adjustedRange","adjustedRatio","calculateValueFromTick","calculateHandlePosition","trackWidth","decreaseValueToStep","stepRemainder","increaseValueToStep","isStartHandle","trimValue","trimValueRange","eventValue","scaleElement","trackOffset","offsetValue","stepFractionLength","snapValue","limited","incrementLarge","decrementLarge","validateValue","SliderModelBase","tickSizes","getTickSizes","resizeTrack","altOrientation","resizeTicks","ticksContainer","adjustPadding","resizeWrapper","getTrackOffset","distStep","totalTickSize","wrapperGap","SliderModel","positionHandle","handlePosition","positionSelection","invokeElementMethod","LabelTemplateDirective","SliderBase","tickPlacement","sliderClass","ifEnabled","verticalClass","sizeComponent","keyBinding","resetStyles","sliderSelection","SliderTick","SliderTicksComponent","tickValueProps","endTickClasses","tickElements","SliderMessages","ɵSliderMessages_BaseFactory","LocalizedSliderMessagesDirective","PRESSED$1","SliderComponent","showButtons","onWrapClick","getProps","draghandle","ngChange","ngTouched","decreaseValue","increaseValue","setValueChangeInterval","increaseButton","decreaseButton","isSliderInvalid","dragHandleMessage","dragHandleTitle","handleDragPress","onHandleDrag","onHandleRelease","selectionEl","dragHandleEl","isDragged","pointerup","pointerout","RangeSliderModel","startHandlePosition","endHandlePosition","currentSelectionPosition","RangeSliderMessages","ɵRangeSliderMessages_BaseFactory","dragHandleStart","dragHandleEnd","LocalizedRangeSliderMessagesDirective","PRESSED","RangeSliderComponent","startHandleId","endHandleId","activeHandle","trackValue","newRangeValue","draghandleStart","draghandleEnd","startHandleIsActive","trimmedValue","isRangeSliderInvalid","valueText","draggedHandle","lastCoords","lastHandlePosition","mousePos","moveStartHandle","moveEndHandle","moveBothHandles","activeStartHandle","isSameRange","dragHandleStartEl","dragHandleEndEl","LocalizedSwitchMessagesDirective","FOCUSED$5","SwitchComponent","_checked","_trackRounded","_thumbRounded","setHostClasses","thumbRounded","newThumbRounded","handleThumbClasses","trackRounded","newTrackRounded","handleTrackClasses","ieClass","ariaInvalid","isControlInvalid","ariaReadonly","onLabelMessage","onLabel","offLabelMessage","offLabel","attachHostHandlers","thumb","autoFillStart","autoFillEnd","animationName","EXPONENT_REGEX","decimalPart","InputSeparatorComponent","SharedInputEventsDirective","NumericTextBoxMessages","ɵNumericTextBoxMessages_BaseFactory","LocalizedNumericTextBoxMessagesDirective","PARSABLE_OPTIONS","PARSABLE_DEFAULTS","FOCUSED$4","changeValueOnScroll","selectOnFocus","isPasted","ngValidatorChange","arrowPress","spinTimeout","handlePaste","pressedKey","replaceNumpadDotValue","formatInputValue","restrictDecimals","limitInputValue","hasTrailingZeros","setInputValue","previousSelection","handleMouseDown","shouldSelectAll","selectAll","selectCaret","addStep","handleWheel","getDeltaFromMouseWheel","disableClass","parseOptions","createMinValidator","createMaxValidator","numericRegex","restrictModelValue","unbindHandler","restrictedValue","notifyValueChange","decimalSeparator","hasDecimals","isRightClick","spin","numberPattern","enteredValue","limitedValue","selectToEnd","lengthChange","hasMax","hasMin","padLimit","replaceNext","correctedValue","paddedValue","tryPadValue","limitLength","zeroPadded","zeroPaddedNext","stringValue","exponentMatch","parsed","caretPosition","getCaretPosition","partialValue","significantCharsInFormattedValue","extractSignificantNumericChars","formattedString","significantCharacters","adjustedSignificantChars","adjustSignificantChars","numberOfLeadingZeroes","matchedLeadingZeroes","lengthOfLeadingZeroesMatch","significantChars","leadingZeroes","ResultType","Literal","Result","fold","vs","Stream","inputCursor","controlCursor","eat_input","eat_control","eat","Parser","isLiteral","creator","rawMask","promptPlaceholder","rawLiteral","includeLiterals","parser","always","greedy","MaskingService","maskTokens","unmaskTokens","rawTokens","validationTokens","tokenize","validationValue","maskedValue","rawValue","maskRaw","masked","maskInput","splitPoint","maskRemoved","maskInserted","maskInRange","pasted","beforeChange","afterChange","unchanged","adjustPosition","caretChar","maskTokenCreator","_token","unmaskTokenCreator","unliteral","unmask","rawTokenCreator","validationTokenCreator","FOCUSED$3","MaskedTextBoxComponent","maskOnFocus","maskValidation","focusClick","defaultRules","emptyMask","updateInput","setFocusSelection","updateService","_rules","hostDisabledClass","handleDragDrop","pasteHandler","inputHandler","updateValueWithEvents","normalizeValue","extractChanges","patternError","callOnChange","isFromOnChanges","present","FOCUSED$2","RadioCheckBoxBase","isFocusedElement","inputElem","checkedStateChange","_checkedState","checkedState","indeterminate","opacityEnabled","nameFormat","parseColor$1","parsedColor","getHexValue","getRGBA","getColorFromHSV","hue","saturation","getColorFromHue","getRGBFromRGBA","foregroundColor","getLuminance","getContrastFromTwoRGBAs","getContrast","luminance1","luminance2","pointA","pointB","lengthX","lengthY","svgPath","ColorPickerLocalizationService","_rtl","FlatColorPickerLocalizationService","colorPickerLocalization","ColorGradientLocalizationService","flatColorPickerLocalization","NumericLabelDirective","kendoAdditionalNumericLabel","ColorInputComponent","tabOut","colorInputClass","rgbaInputValid","formatButtonTitle","getColorFromRGBA","focusLast","lastInput","toggleFormatView","formatView","toggleFormatButton","hexInput","opacityInput","blueInput","DEFAULT_ACCESSIBLE_PRESET$1","ContrastValidationComponent","contrastText","ContrastComponent","formatedRatio","contrastRatio","contrastRatioText","ColorContrastSvgComponent","oldA","oldH","setPaths","bezierCommandCalc","controlPointCalc","cpsX","cpsY","cpeX","cpeY","bezierCommand","lineCalc","getPaths","findValue","contrast","currentContrast","stepCount","reversed","ColorPickerMessages","ɵColorPickerMessages_BaseFactory","colorPaletteNoColor","colorGradientNoColor","flatColorPickerNoColor","colorPickerNoColor","colorGradientHandle","hueSliderHandle","opacitySliderHandle","hexInputPlaceholder","redInputPlaceholder","greenInputPlaceholder","blueInputPlaceholder","alphaInputPlaceholder","redChannelLabel","greenChannelLabel","blueChannelLabel","alphaChannelLabel","passContrast","failContrast","previewColor","revertSelection","gradientView","paletteView","formatButton","LocalizedColorPickerMessagesDirective","serial$3","ColorGradientComponent","internalNavigation","hueSliderTouched","alphaSliderTouched","updateValues","hsvHandleCoordinates","notifyNgChanged","notifyNgTouched","readonlyAttribute","gradientId","hostTabindex","enterHandler","gradientDragHandle","escapeHandler","_contrastTool","gradientRect","gradientWrapper","hsvSliderValueText","contrastToolVisible","updateUI","changePosition","onKeyboardAction","dragHandleElement","keyboardMoveX","keyboardMoveY","newY","newX","moveDragHandle","handleHueSliderChange","setBackgroundColor","setAlphaSliderBackground","handleInputsValueChange","colorGradientHandleTitle","colorGradientHandleAriaLabel","hueSliderTitle","positionX","positionY","gradientRectWidth","gradientRectHeight","setDragHandleElementPosition","setHostElementAriaLabel","alphaSlider","hsvRectangle","getHSV","focusOutListener","containsFocus","keydownListener","keyupListener","dragHandleFocusInListener","dragHandleFocusOutListener","inputs_r2","gradientDragHandle_r7","ColorPaletteLocalizationService","PALETTEPRESETS","basic","office","apex","austin","clarity","slipstream","metro","hardcover","trek","verve","monochrome","accessible","ColorPaletteService","colorRows","setColorMatrix","getCellCoordsFor","getColorAt","cellCoords","horizontalStep","verticalStep","minArrayIndex","serial$2","ColorPaletteComponent","activeCellId","paletteId","minColumnsCount","_palette","setRows","handleHostBlur","selectCell","handleCellNavigation","handleCellFocusOnBlur","selectedColor","FlatColorPickerService","getPaletteSettings","settingsPalette","paletteTileLayout","ColorPickerCancelEvent","ColorPickerCloseEvent","ColorPickerOpenEvent","ActiveColorClickEvent","openPrevented","preventOpen","isOpenPrevented","FlatColorPickerHeaderComponent","viewChange","viewButtonsCollection","buttonElem","viewButtons","clearButtonElement","FlatColorPickerActionButtonsComponent","actionButtonClick","onActionButtonClick","firstButton","lastButton","FlatColorPickerComponent","_gradientSettings","_paletteSettings","headerHasContent","setActiveView","setSizingVariables","removeGradientAttributes","gradientElement","nextTabStop","previousTabStop","resetInnerComponentValue","changeCurrentValue","setFlatColorPickerValue","ariaLabelValue","paletteTileSize","DOM_FOCUS_EVENTS","nextColorPickerId","ColorPickerComponent","activeColorClick","domFocusListener","colorPickerId","parsedIconClass","handleHostId","handleDomEvents","toggleWithEvents","handleWrapperClick","activeColor","handleWrapperFocus","handleWrapperBlur","popupBlurInvalid","handleWrapperKeyDown","nextElement","firstFocusableElement","focusInFlatColorPickerElement","flatColorPicker","closestPopup","closestWrapper","existingId","ColorPickerCustomMessagesComponent","serial$1","ErrorComponent","roleAttribute","startClass","endClass","idAttribute","serial","FormFieldComponent","showHints","showErrors","errorClass","isRadioControl","disabledControl","disabledElement","disabledKendoInput","formControls","validateFormControl","hasHints","showHintsInitial","hasErrors","showErrorsInitial","setDescription","updateDescription","controlElementRefs","isControlGroup","findControlElements","errorChildren","hintChildren","ariaIds","generateDescriptionIds","errorAttribute","RadioButtonComponent","kendoClass","RangeSliderCustomMessagesComponent","RatingHoveredItemTemplateDirective","RatingItemTemplateDirective","RatingSelectedItemTemplateDirective","RatingComponent","valueMin","ratingItems","_precision","updateRatingItems","valueMax","valueNow","createRatingItems","onMouseMove","isHalf","halfPrecision","isFirstHalf","elementPosition","setMinValue","setMaxValue","SignatureMessages","ɵSignatureMessages_BaseFactory","minimize","maximize","canvasLabel","SignatureCustomMessagesComponent","SignatureCloseEvent","SignatureOpenEvent","LocalizedSignatureMessagesDirective","FOCUSED_CLASS","iconsMap$1","index_es","i3N","SignatureComponent","staticHostClasses","maximizable","maximized","getMessage","baseWidth","showMaximize","showMinimize","showClear","applyHostClasses","minimizeButton","maximizeButton","defaultBackgroundColor","onWrapperFocus","onWrapperBlur","onWrapperClick","parentLocalization","SliderCustomMessagesComponent","SwitchCustomMessagesComponent","TextAreaPrefixComponent","verticalOrientation","horizontalOrientation","TextAreaSuffixComponent","TextFieldsBase","resizeClasses","both","FOCUSED$1","TextAreaComponent","_flow","showPrefixSeparator","showSuffixSeparator","_adornmentsOrientation","flowCol","flowRow","adornmentsOrientation","handleFlow","initialHeight","resizableClass","TextBoxMessages","ɵTextBoxMessages_BaseFactory","TextBoxCustomMessagesComponent","TextBoxSuffixTemplateDirective","LocalizedTextBoxMessagesDirective","FOCUSED","iconsMap","oEo","FlX","showSuccessIcon","showErrorIcon","caretEnd","checkClearButton","configureAdornments","textBoxPrefixTemplate","textBoxSuffixTemplate","showSuccessInitial","successIcon","errorIcon","clearButtonIcon","isSuccessful","DOCS_URL","errorSolutions","errorSolution","intlMethod","LOCALE_REGEX","cldrServiceFactory","CldrIntlService","format$1","MessageService","ProgressBarComponent_span_2_Template","formattedLabelValue","ProgressBarComponent_span_7_Template","adjustValueToRange","calculateRatio","extractValueFromChanges","ProgressBarBase","displayValue","reverseClass","indeterminateClass","dirAttribute","ariaMinAttribute","ariaMaxAttribute","ariaValueAttribute","isCompleted","statusWidth","_progressRatio","statusHeight","statusWrapperWidth","statusWrapperHeight","validateRange","ProgressBarMessages","ɵProgressBarMessages_BaseFactory","progressBarLabel","LocalizedProgressBarMessagesDirective","ProgressBarComponent","showLabel","labelPosition","isPositionStart","isPositionCenter","isPositionEnd","defaultFormattedValue","numberParts","truncateNumber","calculatePercentage","isAnimationInProgress","isAnimationChanged","stopCurrentAnimation","cancelCurrentAnimation","runAnimation","startAnimation","progressStatusElement","progressStatusWrapperElement","getAnimationOptions","startSize","deltaSize","renderValueChange","resetProgress","stopAnimation","previousRatio","previousStatusWidth","previousStatusHeight","wrapperSize","progressCssStyle","progressCssClass","emptyCssStyle","emptyCssClass","PanelBarItemComponent_kendo_icon_wrapper_2_Template","PanelBarItemComponent_img_3_Template","PanelBarItemComponent_ng_container_4_Template","PanelBarItemComponent_5_ng_template_0_Template","PanelBarItemComponent_5_Template","titleTemplate","PanelBarItemComponent_kendo_icon_wrapper_6_Template","expanderSVGIcon","dirInnerCssClasses","PanelBarItemComponent_div_7_div_2_Template","contentOverflow","PanelBarItemComponent_div_7_div_3_ng_template_1_Template","PanelBarItemComponent_div_7_div_3_Template","PanelBarItemComponent_div_7_div_4_ng_container_1_kendo_panelbar_item_1_Template","item_r3","PanelBarItemComponent_div_7_div_4_ng_container_1_Template","PanelBarItemComponent_div_7_div_4_Template","PanelBarItemComponent_div_7_div_5_ng_template_1_Template","PanelBarItemComponent_div_7_div_5_ng_template_2_Template","PanelBarItemComponent_div_7_div_5_Template","PanelBarItemComponent_div_7_Template","hasChildItems","PanelBarComponent_ng_content_0_Template","PanelBarComponent_ng_template_1_ng_container_0_kendo_panelbar_item_1_Template","PanelBarComponent_ng_template_1_ng_container_0_Template","PanelBarComponent_ng_template_1_Template","PanelBarComponent_div_2_Template","SplitterPaneComponent_ng_container_0_Template","SplitterPaneComponent_div_1_Template","SplitterBarComponent_div_0_Template","togglePrevious","previousArrowClass","previousSVGArrowClass","SplitterBarComponent_div_2_Template","toggleNext","nextArrowClass","nextSVGArrowClass","SplitterComponent_ng_container_1_kendo_splitter_bar_1_Template","index_r1","splitbarWidth","SplitterComponent_ng_container_1_Template","last_r3","TabComponent_ng_container_0_span_1_Template","TabComponent_ng_container_0_span_2_ng_template_1_Template","TabComponent_ng_container_0_span_2_Template","tabTitle","TabComponent_ng_container_0_Template","TabComponent_ng_template_1_Template","TabComponent_button_3_Template","closeTab","closeButtonClasses","customCloseButtonClasses","closeSVGIconClass","TabStripComponent_ng_container_1_ng_container_1_Template","TabStripComponent_ng_container_1_ng_container_2_ng_container_1_Template","TabStripComponent_ng_container_1_ng_container_2_Template","TabStripComponent_ng_container_1_Template","heading_r3","showContentArea","TabStripComponent_ng_container_2_ng_container_1_ng_container_1_Template","TabStripComponent_ng_container_2_ng_container_1_Template","TabStripComponent_ng_container_2_ng_container_2_Template","TabStripComponent_ng_container_2_Template","TabStripComponent_ng_template_3_span_1_Template","tabScroll","onScrollButtonClick","tabPosition","TabStripComponent_ng_template_3_ng_container_4_Template","tabClose","tab_r7","closable","closeIcon","closeIconClass","closeSVGIcon","getTabId","getTabPanelId","TabStripComponent_ng_template_3_span_5_Template","TabStripComponent_ng_template_3_Template","itemsWrapperClass","hasScrollButtons","tabsAlignmentStyles","tabListWidth","tabListHeight","tabs","TabStripComponent_ng_template_5_ng_template_0_div_0_ng_template_1_Template","TabStripComponent_ng_template_5_ng_template_0_div_0_Template","ctx_r8","tab_r10","keepTabContent","tabContent","TabStripComponent_ng_template_5_ng_template_0_Template","TabStripComponent_ng_template_5_Template","TabStripComponent_kendo_resize_sensor_7_Template","TabStripComponent_div_8_Template","isItemExpanded","DrawerItemComponent_0_ng_template_0_Template","DrawerItemComponent_0_Template","DrawerItemComponent_ng_template_1_ng_container_0_kendo_icon_wrapper_1_Template","innerCssClasses","DrawerItemComponent_ng_template_1_ng_container_0_span_4_Template","DrawerItemComponent_ng_template_1_ng_container_0_kendo_icon_wrapper_5_Template","DrawerItemComponent_ng_template_1_ng_container_0_Template","DrawerItemComponent_ng_template_1_ng_container_1_kendo_icon_wrapper_1_Template","DrawerItemComponent_ng_template_1_ng_container_1_Template","DrawerItemComponent_ng_template_1_Template","mini","DrawerListComponent_ng_container_0_li_1_Template","v_r2","idx_r3","DrawerListComponent_ng_container_0_li_2_Template","DrawerListComponent_ng_container_0_Template","DrawerComponent_div_0_ng_container_1_1_ng_template_0_Template","DrawerComponent_div_0_ng_container_1_1_Template","DrawerComponent_div_0_ng_container_1_3_ng_template_0_Template","DrawerComponent_div_0_ng_container_1_3_Template","DrawerComponent_div_0_ng_container_1_Template","viewItems","DrawerComponent_div_0_2_ng_template_0_Template","DrawerComponent_div_0_2_Template","drawerTemplate","DrawerComponent_div_0_Template","drawerWidth","DrawerComponent_div_1_Template","DrawerContainerComponent_div_0_Template","closeDrawer","StepperStepComponent_2_ng_template_0_Template","StepperStepComponent_2_Template","stepTemplate","StepperStepComponent_ng_container_3_span_1_1_ng_template_0_Template","StepperStepComponent_ng_container_3_span_1_1_Template","indicatorTemplate","StepperStepComponent_ng_container_3_span_1_ng_container_2_kendo_icon_wrapper_1_Template","indicatorIconClass","customIndicatorIconClass","SVGIndicatorIcon","StepperStepComponent_ng_container_3_span_1_ng_container_2_span_2_Template","indicatorText","StepperStepComponent_ng_container_3_span_1_ng_container_2_Template","showIndicatorIcon","StepperStepComponent_ng_container_3_span_1_Template","StepperStepComponent_ng_container_3_span_2_1_ng_template_0_Template","StepperStepComponent_ng_container_3_span_2_1_Template","StepperStepComponent_ng_container_3_span_2_ng_container_2_span_1_Template","StepperStepComponent_ng_container_3_span_2_ng_container_2_kendo_icon_wrapper_2_Template","validationIconClasses","customValidationIconClasses","validationSVGIcon","StepperStepComponent_ng_container_3_span_2_ng_container_2_span_3_Template","optionalText","StepperStepComponent_ng_container_3_span_2_ng_container_2_Template","showLabelText","showLabelIcon","StepperStepComponent_ng_container_3_span_2_Template","StepperStepComponent_ng_container_3_Template","showIndicator","StepperListComponent_ng_container_0_Template","step_r1","maxStepWidth","maxStepHeight","focusedStep","stepType","successSVGIcon","errorSVGIcon","StepperComponent_kendo_progressbar_2_Template","progressAnimation","progressBarStyling","AvatarComponent_ng_content_1_Template","AvatarComponent_ng_container_2_Template","imageSrc","AvatarComponent_ng_container_3_Template","initials","AvatarComponent_ng_container_4_Template","CardActionsComponent_ng_content_0_Template","CardActionsComponent_ng_container_1_button_1_Template","CardActionsComponent_ng_container_1_Template","CardActionsComponent_2_ng_template_0_Template","CardActionsComponent_2_Template","ExpansionPanelComponent_ng_container_2_div_1_Template","ExpansionPanelComponent_ng_container_2_div_3_Template","ExpansionPanelComponent_ng_container_2_Template","ExpansionPanelComponent_3_ng_template_0_Template","ExpansionPanelComponent_3_Template","TileLayoutItemComponent_kendo_tilelayout_item_header_0_Template","TileLayoutItemComponent_ng_container_2_div_1_Template","dir_r2","TileLayoutItemComponent_ng_container_2_Template","TileLayoutComponent_div_3_Template","TimelineCardComponent_div_3_2_ng_template_0_Template","TimelineCardComponent_div_3_2_Template","TimelineCardComponent_div_3_div_3_button_3_Template","calloutFontIcon","calloutSvgIcon","TimelineCardComponent_div_3_div_3_Template","collapsible","TimelineCardComponent_div_3_div_4_Template","TimelineCardComponent_div_3_kendo_card_body_5_1_ng_template_0_Template","TimelineCardComponent_div_3_kendo_card_body_5_1_Template","bodyTemplate","TimelineCardComponent_div_3_kendo_card_body_5_div_2_p_1_Template","TimelineCardComponent_div_3_kendo_card_body_5_div_2_ng_container_2_img_1_Template","image_r4","TimelineCardComponent_div_3_kendo_card_body_5_div_2_ng_container_2_img_2_Template","TimelineCardComponent_div_3_kendo_card_body_5_div_2_ng_container_2_Template","TimelineCardComponent_div_3_kendo_card_body_5_div_2_Template","TimelineCardComponent_div_3_kendo_card_body_5_Template","animationStart","animationDone","TimelineCardComponent_div_3_kendo_card_actions_6_1_ng_template_0_Template","TimelineCardComponent_div_3_kendo_card_actions_6_1_Template","TimelineCardComponent_div_3_kendo_card_actions_6_ng_container_2_a_1_Template","onActionClick","action_r6","TimelineCardComponent_div_3_kendo_card_actions_6_ng_container_2_Template","TimelineCardComponent_div_3_kendo_card_actions_6_Template","TimelineCardComponent_div_3_Template","transformValue","TimelineHorizontalComponent_ng_container_7_li_1_Template","event_r2","tabStyle","isFlag","TimelineHorizontalComponent_ng_container_7_li_2_span_3_Template","TimelineHorizontalComponent_ng_container_7_li_2_Template","navigateToEvent","showDateLabels","TimelineHorizontalComponent_ng_container_7_Template","TimelineHorizontalComponent_ul_9_li_1_Template","onTransitionEnd","index_r8","selectedCardIndex","selectedEvent","collapsibleEvents","calloutStyle","selectedEventIndex","eventHeight","TimelineHorizontalComponent_ul_9_Template","onSlideDone","animationState","eventsInInterval","TimelineVerticalComponent_ul_0_ng_container_1_li_1_Template","event_r1","TimelineVerticalComponent_ul_0_ng_container_1_span_5_Template","TimelineVerticalComponent_ul_0_ng_container_1_Template","alterMode","eventWidth","TimelineVerticalComponent_ul_0_Template","TimelineComponent_kendo_timeline_vertical_2_Template","TimelineComponent_kendo_timeline_horizontal_3_Template","PanelBarExpandMode","Single","Multiple","nextPanelbarId","PanelBarService","parentSource","keepContentSource","childSource","parent$","children$","keepContent$","pbId","onKeepContent","PanelBarContentDirective","PanelBarItemTitleDirective","SHAPE_TO_ROUNDED","parsePanelBarItems","isHorizontalArrowKey","isVerticalArrowKey","targetAttr","hasItemIndex","PanelBarItemComponent","eventService","titleAttribute","kItemClass","wrapperFocused","_expanded","onWrapperFocusChange","toggleExpandedChildAnimations","kStateExpandedClass","ariaSelected","titleTemplates","contentWrapper","addLevelClass","contentItems","validateConfiguration","childrenItems","viewChildItems","onItemAction","subTreeViewItems","subTree","toggleAnimationState","expandMode","PanelBarItemTemplateDirective","PanelBarCollapseEvent","PanelBarExpandEvent","PanelBarSelectEvent","PanelBarStateChangeEvent","PanelBarComponent","isViewInit","_keepItemContent","updateChildrenHeight","childrenHeight","panelbarHeight","keyBindings","computedKeys","keepItemContent","hostHeight","invertKeys","inverted","selectFocusedItem","focusPreviousItem","collapseItem","focusNextItem","expandItem","focusLastItem","focusFirstItem","contentChildItems","onComponentClick","itemClicked","onComponentKeyDown","modifiedItems","selectPreventedItems","currentItem","selectedState","focusedState","preventedCollapseItem","expandedItems","expandedState","isEventPrevented","getVisibleParent","firstChildIndex","flatVisibleItems","listOfItems","flattedItems","SplitterPaneComponent","separatorLabel","overlayContent","sizeChange","collapsedChange","forceExpand","isResized","paneOrder","_order","setOrderStyles","staticPaneClass","containsSplitter","fixedSize","scrollablePaneClass","computedSize","toggleOverlay","SplitterService","layoutChange","resizeStep","containerSize","tryToggle","notCollapsed","allHaveFixedSize","togglePane","shouldTogglePrev","leftArrow","upArrow","expandPrev","shouldToggleNext","expandNext","resizePane","dragState","toggleContentOverlay","splitbarIndex","px","initialSize","paneState","splitterSize","splitBarIndex","isStatic","allPanesWithSize","hasResizedPane","classFromObject","SplitterBarComponent","splitterService","hostOrientation","shouldShowIcon","iconName","relatedPaneIndex","relatedPane","isCollapsible","expandLast","tryToggleNearest","shouldToggle","shouldToggleOrResize","isVerticalChange","SplitterComponent","enclosingPane","horizontalHostClasses","verticalHostClasses","splitbars","splitBarsArray","reconfigure","paneChangesSubscription","TabTemplateDirective","_tabDirective","_tabContent","_tabTitleDirective","tabTemplate","TabCloseEvent","mouseScrollEnabled","scrollableSettings","mouseScroll","getActiveTab","focusedTab","selectedTab","getTabByIndex","filtered","_tab","isTablistHorizontal","tabStripId","TabStripService","isTabElement","shouldHandleKey","onDelete","onTabSelect","selectArgs","tabSelect","focusTabHeader","resetTabSelection","scrollToSelectedTab","firstNavigatableIndex","computeNextIndex","activateTab","activeTabIndex","isTabClosable","getTabHeaderByIndex","tabHeaderContainers","_tabHeader","prevNavigatableIndex","nextNavigatableIndex","lastNavigatableIndex","ScrollService","scrollButtonActiveStateChange","tablistElement","tablist","tabstripSize","wrapperHeight","tablistOverflowSize","overflowSize","tabsOverflow","scrollButtonsSize","prevRect","prevScrollButton","hostBoundingClientRect","prevSize","nextRect","nextScrollButton","toggleScrollButtonsState","currentPrevButtonActive","currentNextButtonActive","calculatedPrevButtonActive","calculatedNextButtonActive","getScrollOffset","isLastTabActive","activeTabRect","tablistRect","activeTabStart","activeTabEnd","tablistStart","tablistEnd","tabEndIsInVisibleRange","tabStartIsInVisibleRange","onMouseScroll","calculateListPosition","mouseScrollSpeed","scrollTabs","buttonScrollSpeed","behavior","scrollSpeed","adjustedMaxScroll","restoreScrollPosition","normalizeScrollableSettings","scrollButtons","prevButtonIcon","nextButtonIcon","prevSVGButtonIcon","nextSVGButtonIcon","TabScrollEvent","TabStripScrollableButtonComponent","scrollEvent","emitScrollEvent","prevClass","nextClass","scrollButtonIconClass","customScrollButtonIconClass","scrollButtonSVGIcon","defaultPrevIcon","defaultNextIcon","prevIcon","nextIcon","defaultPrevSVGIcon","defaultNextSVGIcon","TabComponent","activeClass","tabClosable","tabStripClosable","customTabstripCloseIcon","tabStripCloseIcon","closeArgs","tabTemplate_r3","TabStripMessages","ɵTabStripMessages_BaseFactory","previousTabButton","nextTabButton","LocalizedTabStripMessagesDirective","tabstripService","scrollService","_scrollableSettings","subscriptionsArePresent","activeButtonSettings","_height","toggleScrollButtons","attachWheelHandler","_closeSVGIcon","tabsAtTop","tabsAtRight","tabsAtBottom","tabsAtLeft","tabStripScrollable","tabsChangesSub","positionChange","tabsAtBottomChanged","activeStateChangeSub","justify","tabAlignment","tabStripHasScrollButtons","resetTabFocus","scrollButtonsSetting","scrollButtonsArePresent","shouldShowButtons","wheelEvent","TabStripCustomMessagesComponent","DrawerTemplateDirective","DrawerItemTemplateDirective","DrawerHeaderTemplateDirective","DrawerFooterTemplateDirective","defaultIsItemExpanded","DrawerService","originalItems","idxCounter","resetViewData","rootItems","populateViewData","changeFocusedItem","selectedIdx","drawer","autoCollapse","minimized","DRAWER_ITEM_INDEX","nestedLink","DrawerListSelectEvent","DrawerItemComponent","drawerService","defaultTemplate_r2","DrawerListComponent","identifyItem","isArrowUpOrDown","onEnterOrSpaceKeyDown","viewItemIdx","getDrawerItemIndex","selectedItemIndex","DEFAULT_ANIMATION","DrawerComponent","miniWidth","expandedChange","startPositionClass","endPositionClass","overlayTransofrmStyles","flexStyles","setExpanded","onAnimationEnd","currentExpanded","expandAnimation","miniExpandPush","flexBasis","miniExpandOverlay","expandRTLOverlay","expandOverlay","expandPush","collapseAnimation","miniCollapsePush","miniCollapseOverlay","collapseRTLOverlay","collapseOverlay","translateDir","collapsePush","DrawerContainerComponent","overlayClass","miniClass","pushClass","isExpandedClass","DrawerContentComponent","StepperStepTemplateDirective","StepperLabelTemplateDirective","StepperIndicatorTemplateDirective","handlersRTL","StepperActivateEvent$1","StepperService","triggerValidation","focusedStepChange","stepper","onActivate","currentIdx","currentStepChange","validateSteps","focusPrevStep","focusNextStep","isStepDisabled","isPrevOrNextStep","focusedIdx","STEPPER_STEP_INDEX","StepperStepComponent","isStepValid","shouldCheckValidity","onFocusedStepChange","handleValidityChecks","errorStepClass","successStepClass","stepLink","tabIndexAttr","updateStepValidity","_shouldCheckValidity","StepperListComponent","listKeydown","listClick","maxStepDimension","stepIdx","getStepIndex","StepperMessages","ɵStepperMessages_BaseFactory","LocalizedStepperMessagesDirective","StepperComponent","stepperService","displayStyle","_steps","linearClass","applyHostStyling","resetHostStyling","stepsListStyling","onListKeydown","onListClick","StepperCustomMessagesComponent","avatarAlt","LocalizedAvatarMessagesDirective","AvatarComponent","borderClass","mapShapeToRounded","handleFillModeAndThemeColorClasses","avatarWidth","avatarHeight","verifyProperties","customAvatar","styleType","AvatarCustomMessagesComponent","CardComponent","widthStyle","CardHeaderComponent","CardBodyComponent","CardFooterComponent","CardActionsComponent","centerClass","CardTitleDirective","CardSubtitleDirective","CardMediaDirective","ExpansionPanelTitleDirective","ExpansionPanelActionEvent","CONTENT_HIDDEN_CLASS","ExpansionPanelComponent","_svgExpandIcon","_svgCollapseIcon","removeContentHiddenClass","addContentHiddenClass","svgExpandIcon","expandIcon","svgCollapseIcon","collapseIcon","expandedClass","focusExpansionPanel","blurExpansionPanel","onHeaderAction","onHeaderClick","emitExpandCollapseEvent","expanderIndicatorClasses","customExpanderIndicatorClasses","expanderSvgIcon","propsChanged","initialProps","newProps","calculateCellFromPosition","tileLayoutElement","cellSize","tileLayoutRect","totalRows","distanceFromTop","distanceToCellWidthRatio","cappedColumnPosition","distanceToCellHeightRatio","cappedRowPosition","RTL_RESIZE_DIRECTIONS","RESIZE_HANDLE_DIMENSIONS","ew","overlapX","overlapY","nwse","nesw","TileLayoutReorderEvent","newCol","oldCol","newRow","oldRow","TileLayoutResizeEvent","newRowSpan","oldRowSpan","newColSpan","oldColSpan","TileLayoutDraggingService","lastDragCursorOffset","colStart","currentColStart","rowStart","currentRowStart","itemWrapper","draggedItemWrapper","targetOrder","resizing","closestTile","tileLayoutSettings","closestHeader","draggedItem","reordering","focusableTarget","tileRect","targetSize","headerEl","startingPoint","currentResizingColSpan","currentResizingRowSpan","reorderItems","resizeItem","initialOrder","initialCol","initialRow","targetCol","targetRow","reorderEvent","initialRowSpan","initialColSpan","targetColSpan","targetRowSpan","isRowItemPresent","targetSpan","resizeEvent","elementsFromPoint","getDropTarget","tileOrder","autoFlow","directionX","directionY","horizontalGap","verticalGap","targetStartCol","getTargetCol","targetStartRow","getTargetRow","hintBefore","hintAfter","currentWidth","hintRect","hintWidth","hintHeight","horizontalDragDirection","verticalDragDirection","startCol","resizeHorizontally","leftBoundary","shrinkingCondition","gridColumnEnd","resizeVertically","gridRowEnd","calculateHintHeight","grabHandle","itemRect","startingCell","targetEndCell","TileLayoutKeyboardNavigationService","focusableItems","isTileFocused","focusedTile","getCurrentCol","selectedTile","changeTabIndex","isResizable","reorderItem","isTargetFocusable","isRelatedTargetFocusable","resizeRight","resizeLeft","resizeDown","resizeUp","shouldResize","resizeVertical","resizeDir","reorderLeft","reorderRight","shouldReorder","onReorderRight","nextTile","targetTile","onReorderLeft","prevTile","TileLayoutItemHeaderComponent","TileLayoutResizeHandleDirective","sizeHandle","setHorizontalPosition","resizeDirection","setBottom","handleHeight","TileLayoutItemComponent","draggingService","keyboardNavigationService","itemClass","hostDropEffect","ariaKeyShortcuts","hostGrabbed","hostLabelledBy","colEnd","rowEnd","keyboardNavigation","toggleCursorClass","keyboardNavigationSubs","autoFlowClasses","TileLayoutComponent","_gap","gapStyle","applyColStyling","applyRowStyling","initializeDraggable","draggingServiceConfig","applyAutoFlow","setItemsOrder","classToRemove","classToAdd","TileLayoutItemBodyComponent","VERTICAL_SUFFIX","stretch","JUSTIFY_PREFIX","ALIGN_PREFIX","GridLayoutComponent","handleAlignClasses","handleGridTemplateStyling","setGap","justifyClass","parsedGap","normalizeGap","generateGapStyle","validateGridLayoutRowsCols","gridTemplateStyle","gridStyle","generateGridStyle","itemType","styling","colWidth","GridLayoutItemComponent","setItemStyle","StackLayoutComponent","TimelineMessages","ɵTimelineMessages_BaseFactory","TimelineCustomMessagesComponent","TimelineCardActionsTemplateDirective","TimelineCardBodyTemplateDirective","TimelineCardHeaderTemplateDirective","defaultModelFields","TimelineService","TimelineCardComponent","timelineService","animationInProgress","calloutElementRef","collapsedClass","makeOverflowVisible","cardBody","TimelineHorizontalComponent","svgLeftIcon","svgRightIcon","translateValue","tabWidth","firstCircleInView","visibleEvents","trackItems","previousTitle","nextTitle","_selectedEvent","newSelectedIndex","calloutOffset","handleWindowResize","trackElementRef","trackWrapWidth","scrollableTrackWidth","scrollableTrackElementRef","onCirclesChange","circleElementRefs","cardElementRefs","onCardsChange","cardComponents","focusTrackItem","visibleTabsCount","cardWidth","transformCards","changeTabsCount","card","onTrackTransitionEnd","updateInterval","previousClick","nextClick","trackItemIndex","navigateToInterval","getOtherSelectedCardIndex","animateCards","eventIndex","TRANSITION_EVENTS_COUNT","tabFlex","flex","getTransformation","isFirstRange","isLastRange","flagElementRefs","onHomeKey","onEndKey","onArrowRightKey","onArrowLeftKey","selectedTrackItem","removeTrackItemAttributes","removeCardsAttributes","newTrackItem","setTrackItemAttributes","innerCard","selectedCircle","assignAriaLabel","cardElement","dateElement","dateLabelId","cardId","navigateToFirstInterval","navigateToLastInterval","navigateToOtherEvent","selectFirst","selectLast","TimelineVerticalComponent","ariaDescribedByAllEvents","innerDateElementRefs","removeAriaDescribedBy","cards","innerDate","dateElementRefs","LocalizedTimelineMessagesDirective","DEFAULT_DATE_FORMAT","TimelineComponent","_modelFields","_eventWidth","_eventHeight","_dateFormat","processItems","parseItem","modelFields","alternatingClass","collapsibleClass","initTemplates","timelineHorizontal","timelineVertical","cardHeaderTemplate","cardBodyTemplate","cardActionsTemplate","KENDO_TILELAYOUT","LayoutModule","TileLayoutModule","ActionSheetItemComponent_0_ng_template_0_Template","ActionSheetItemComponent_0_Template","ActionSheetItemComponent_ng_template_1_span_1_Template","manageIconStyles","manageIconClasses","ActionSheetItemComponent_ng_template_1_span_2_span_1_Template","ActionSheetItemComponent_ng_template_1_span_2_span_2_Template","ActionSheetItemComponent_ng_template_1_span_2_Template","ActionSheetItemComponent_ng_template_1_Template","ActionSheetListComponent_span_0_Template","setAttrIndex","ActionSheetComponent_ng_container_0_6_ng_template_0_Template","ActionSheetComponent_ng_container_0_6_Template","actionSheetTemplate","ActionSheetComponent_ng_container_0_ng_template_7_div_0_1_ng_template_0_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_0_1_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_0_ng_template_2_div_2_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_0_ng_template_2_div_3_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_0_ng_template_2_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_0_Template","defaultHeaderTemplate_r3","ActionSheetComponent_ng_container_0_ng_template_7_div_1_1_ng_template_0_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_1_1_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_1_ng_template_2_div_0_Template","topGroupItems","ActionSheetComponent_ng_container_0_ng_template_7_div_1_ng_template_2_hr_1_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_1_ng_template_2_div_2_Template","bottomGroupItems","ActionSheetComponent_ng_container_0_ng_template_7_div_1_ng_template_2_Template","shouldRenderSeparator","ActionSheetComponent_ng_container_0_ng_template_7_div_1_Template","defaultContentTemplate_r6","ActionSheetComponent_ng_container_0_ng_template_7_div_2_ng_template_1_Template","ActionSheetComponent_ng_container_0_ng_template_7_div_2_Template","ActionSheetComponent_ng_container_0_ng_template_7_Template","ActionSheetComponent_ng_container_0_Template","onOverlayClick","defaultTemplate_r7","BottomNavigationItemComponent_ng_container_0_kendo_icon_wrapper_1_Template","BottomNavigationItemComponent_ng_container_0_span_2_Template","BottomNavigationItemComponent_ng_container_0_Template","itemIcon","BottomNavigationItemComponent_1_ng_template_0_Template","BottomNavigationItemComponent_1_Template","BottomNavigationComponent_ng_container_0_span_1_Template","itemFlow","BottomNavigationComponent_ng_container_0_Template","BreadCrumbItemComponent_ng_template_0_Template","BreadCrumbItemComponent_ng_container_2_ng_container_1_Template","BreadCrumbItemComponent_ng_container_2_Template","separator_r1","BreadCrumbItemComponent_ng_container_3_span_1_img_1_Template","onImageLoad","BreadCrumbItemComponent_ng_container_3_span_1_kendo_icon_wrapper_2_Template","BreadCrumbItemComponent_ng_container_3_span_1_Template","BreadCrumbItemComponent_ng_container_3_2_ng_template_0_Template","BreadCrumbItemComponent_ng_container_3_2_Template","BreadCrumbItemComponent_ng_container_3_Template","BreadCrumbItemComponent_ng_container_4_ng_container_1_Template","BreadCrumbItemComponent_ng_container_4_Template","BreadCrumbListComponent_ng_container_0_li_1_span_2_Template","separatorIcon","separatorSVGIcon","BreadCrumbListComponent_ng_container_0_li_1_span_3_Template","BreadCrumbListComponent_ng_container_0_li_1_Template","isFirst_r5","isLast_r6","collapseMode","BreadCrumbListComponent_ng_container_0_Template","isRootItemContainer","BreadCrumbComponent_ol_0_Template","firstItem$","AppBarComponent","_positionMode","DEFAULT_POSITION_MODE","newPosition","handleHostClasses","newPositionMode","AppBarSectionComponent","outerWidth","hexColorRegex","ACTIONSHEET_ITEM_INDEX_ATTRIBUTE","getActionSheetItemIndex","closestItem$1","itemIndex$1","closestInScope$1","hasItemIndex$1","AppBarSpacerComponent","ActionSheetHeaderTemplateDirective","ActionSheetItemTemplateDirective","ActionSheetContentTemplateDirective","ActionSheetFooterTemplateDirective","ActionSheetItemComponent","pointerClass","isHexColor","iconColor","isSizeSet","iconSize","ActionSheetListComponent","groupItems","overlayClick","setCssVariables","triggerItemClick","childContainer","slideDown","BottomNavigationSelectEvent","BottomNavigationItemTemplateDirective","BOTTOMNAVIGATION_ITEM_INDEX","BottomNavigationItemComponent","disabledComponent","BottomNavigationComponent","_fill","_itemFlow","_nativeHostElement","applyClasses","selectItem","itemIdx","getBottomNavigationItemIndex","BreadCrumbItemTemplateDirective","BREADCRUMB_ITEM_INDEX","BreadCrumbItemComponent","isRootItem","DEFAULT_SVG_ICON","DEFAULT_RTL_SVG_ICON","BreadCrumbSeparatorDirective","defaultClasses","hasDefaultIcon","hasDefaultSvgIcon","localizationChangesSubscription","BreadCrumbListComponent","click$","enterKey$","domEventsSubscription","getItemIndex","renderedItems","getCollapsed","itemComponent","toggleFirst","itemComponents","ic","collapseFirst","expandFirst","hostAriaLabel","_collapseMode","afterViewInit","updateItems$","itemsData$","wrapMode","getDir","attachResizeHandler","autoCollapseCandidates","listComponent","componentWidth","itemsContainerWidth","itemsContainers","nextExpandWidth","KENDO_NAVIGATION","PopupComponent_ng_template_4_Template","eitherRect","OVERFLOW_REGEXP","overflowStyle","overflowElementStyle","overflowComputedStyle","hasRelativeStackingContext","childElement","scaleRect","STYLES","DOMService","addOffset","addition","boundingOffset","getFontStyles","computedStyles","hasOffsetParent","offsetAtPoint","currentLocation","currentOffset","_dummy","restrictToView","scrollableParents","stackingElementOffset","relativeContextElement","getRelativeContextElement","stackingElementScroll","useRelativePosition","siblingContainer","zIndexStyle","isZoomed","SCALE","AlignService","_dom","alignElement","relativeRect","absoluteRect","scrollPos","stackScale","stackScroll","stackOffset","removeStackingOffset","stackingOffset","PositionService","positionElement","anchorOffset","isUnsubscribed","ScrollableService","forElement","elemRect","containerRect","DOWN","animationTypes","AnimationService","animationBuilder","statesFn","playStates","stopPlayer","PopupComponent","_alignService","domService","_positionService","_resizeService","_scrollableService","animationService","copyAnchorStyles","anchorViewportLeave","initialCheck","updateFixedClass","reposition","animationSubscriptions","onAnimationStart","setZIndex","copyFontStyles","unsubscribeReposition","repositionSubscription","_currentOffset","setContainerStyle","isDifferentOffset","newOffset","oldLeft","oldTop","contentContainer","alignedOffset","isInViewPort","hasLeaveObservers","rootViewContainer","rootComponents","rootViewContainerNode","getComponentRootNode","popupComponentRef","appendPopup","popupInstance","projectComponentInputs","popupPositionChange","getComponentFactory","componentClass","KENDO_POPUP","_0x50aaef","_0x10f4b0","_0x10f4","_0x421c90","_0x145713","_0x1457","aWziBr","XjGMHe","_0x2c6af5","_0x1b5a14","_0x1aecb4","_0x5ea27f","_0x25dc8b","_0x27d11b","_0x46c2e8","_0x29c8dd","_0xcce210","_0x2181c6","_0x4e0ecf","_0x1a2fc4","XQgCdR","_0x1b62be","_0x401145","_0x379487","_0x13003c","_0x487465","_0x5ac69b","_0x12f1b9","_0x404bc6","KendoLicensing","_0x21bd47","matchProduct","_0x408a16","_0x9b416b","_0x45ca78","_0x1880f2","_0x226118","_0x16f928","_0x4632fe","packageName","docsUrl","getCurrentDate","expiryDate","_0x3e0d1b","_0x225671","_0x594e89","_0x2d7e52","_0x415e0e","_0xe99283","_0x4b71d2","_0x1df709","_0x4f97fc","FileLikeObject","fileOrInput","rawFile","fakePathOrObject","_createFromFakePath","lastModifiedDate","_createFromObject","FileItem","uploader","formData","isUploading","isUploaded","isSuccess","isCancel","_file","itemAlias","uploadItem","_onCompleteItem","_onErrorItem","cancelItem","removeFromQueue","onBeforeUpload","onBuildForm","onProgress","onSuccess","_onBeforeUpload","_onBuildForm","_onProgress","_onCancel","removeAfterUpload","_prepareToUploading","_nextIndex","FileType","mime_doc","mime_xsl","mime_ppt","mime_psd","mime_compress","getMimeClass","mimeClass","fileTypeDetection","inputFilename","jpg","jpeg","tif","psd","bmp","png","nef","tiff","cr2","dwg","indd","pin","cdp","skp","stp","mp3","wav","wma","m4a","rar","lz","z01","bz2","gz","xls","xlsx","ods","mp4","avi","wmv","mpg","mts","flv","vob","m4v","mpeg","m2ts","mov","docx","eps","odt","rtf","ppt","pptx","pps","ppsx","odp","extension","FileUploader","autoUpload","isHTML5","disableMultipart","formatDataFunction","formatDataFunctionIsAsync","authTokenHeader","_queueLimitFilter","maxFileSize","_fileSizeFilter","allowedFileType","_fileTypeFilter","allowedMimeType","_mimeTypeFilter","addToQueue","files","arrayOfFilters","_getFilters","addedFileItems","_isValidFile","fileItem","_onAfterAddingFile","_failFilterIndex","_onWhenAddingFileFailed","_onAfterAddingAll","_getTotalProgress","uploadAll","getIndexOfItem","clearQueue","_xhr","_form","getNotUploadedItems","cancelAll","isFile","isFileLikeObject","getReadyItems","item1","item2","onAfterAddingAll","fileItems","onBuildItemForm","onAfterAddingFile","onWhenAddingFileFailed","onBeforeUploadItem","onProgressItem","onProgressAll","onSuccessItem","onErrorItem","onCancelItem","onCompleteItem","onCompleteAll","_headersGetter","parsedHeaders","_xhrTransport","sendable","_onBeforeUploadItem","_onBuildItemForm","appendFile","parametersBeforeFiles","additionalParameter","paramVal","_onProgressItem","_parseHeaders","_transformResponse","_isSuccessCode","_onCancelItem","notUploaded","queueLimit","_onSuccessItem","FileDropDirective","fileOver","onFileDrop","getFilters","transfer","_getTransfer","_preventAndStop","_haveFiles","dropEffect","dataTransfer","FileSelectDirective","onFileSelected","isEmptyAfterSelection","NGX_MASK_CONFIG","NEW_CONFIG","INITIAL_CONFIG","initialConfig","clearIfNotMatch","showTemplate","showMaskTyped","placeHolderCharacter","dropSpecialCharacters","hiddenInput","shownMaskExpression","separatorLimit","validation","specialCharacters","leadZeroDateTime","apm","leadZero","keepCharacterPositions","triggerOnMaskChange","inputTransformFn","outputTransformFn","maskFilled","timeMasks","withoutValidation","NgxMaskApplierService","_shift","plusOnePosition","maskExpression","showKeepCharacterExp","deletedSpecialCharacter","_formatWithSeparators","thousandSeparatorChar","decimalChars","decimalChar","regExp","rgx","sanitizedStr","getPrecision","checkAndRemoveSuffix","checkInputPrecision","dm","precisionRegEx","_charToRegExpExpression","precisionMatch","precisionMatchLength","_compareOrIncludes","applyMaskWithPattern","maskAndPattern","customPattern","justPasted","backspaced","backspaceShift","stepBack","inputArray","valuesIP","ipError","_validIP","cpfCnpjError","_stripToDecimal","_splitPercentZero","inputValueAfterZero","_findFirstNonZeroDigitIndex","positionOfZeroOrDecimalMarker","zeroIndexNumberZero","zeroIndexMinus","zeroIndexThousand","firstIndexNumberZero","secondIndexDecimalMarker","thousandSeparatorCharEscaped","invalidChars","invalidCharRegexp","strForSep","commaShift","shiftStep","inputSymbol","symbolStarInPattern","_checkSymbolMask","_shiftStep","daysCount","inputValueCursor","inputValueCursorPlusOne","inputValueCursorPlusTwo","inputValueCursorMinusOne","inputValueCursorMinusTwo","inputValueSliceMinusThreeMinusOne","inputValueSliceMinusOnePlusOne","inputValueSliceCursorPlusTwo","inputValueSliceMinusTwoCursor","maskStartWithMonth","startWithMonthInput","withoutDays","monthsCount","specialChart","day1monthInput","day2monthInput","day2monthInputDot","day1monthPaste","day2monthPaste","_findSpecialChar","actualShift","onlySpecial","isSpecialCharacterMaskFirstSymbol","_findDropSpecialChar","maskSymbol","isDecimalMarker","comparedValue","excludedValue","emptyOrMinus","integerPart","integerString","isNumberValue","maskIsShown","selStart","selEnd","writingValue","maskChanged","_maskExpressionArray","_currentValue","_emitValue","showMaskInInput","formControlResult","newInputValue","actualResult","removeMask","shiftTypedSymbols","getActualValue","hideInput","resLen","prefNmask","countSkipedSymbol","_numberSkipedSymbols","applyValueChanges","formElement","_getActiveElement","clearIfNotMatchFn","maskChar","symbolToReplace","currSymbol","replaceSymbol","numberToString","toLocaleString","inputVal","_checkForIp","_checkForCpfCnpj","formElementProperty","checkDropSpecialCharAmount","_removeMask","_removeSuffix","_removePrefix","cpf","cnpj","shadowRootEl","_toNumber","_checkSymbols","specialCharactersForRemove","_regExpForRemove","_retrieveSeparatorValue","_checkPatternForSpace","_replaceDecimalMarkerToDot","separatorPrecision","_retrieveSeparatorPrecision","separatorValue","_checkPrecision","maskExpretion","separatorExpression","_repeatPatternSymbols","maskExp","accum","currVal","repeatNumber","replaceWith","currentLocaleDecimalMarker","ɵNgxMaskService_BaseFactory","_configFactory","initConfig","configValue","NgxMaskDirective","_maskValue","_allowFewMaskChangeMask","_justPasted","_isComposing","_maskService","onTouch","_setMask","_applyMask","_createValidationError","_validateTime","counterOfOpt","lastIndexArray","special","onPaste","onModelChange","onInput","transformedValue","_inputValue","prefixLength","checkSymbols","checkSpecialCharacter","selectRangeBackspace","_code","part1","part2","caretShift","_backspaceShift","specialChartMinusOne","specialChartPlusOne","positionToApply","_getActualInputLength","onCompositionStart","onCompositionEnd","nextValue","checkSelectionOnDeletion","controlValue","localeDecimalMarker","rowMaskLen","requiredMask","_areAllCharactersInEachStringSame","expression","indexMask","removeSpecialCharacters","NgxMaskPipe","currentConfig","NgxPermissionsConfigurationStore","strategiesSource","strategies$","USE_CONFIGURATION_STORE","NgxPermissionsConfigurationService","isolate","configurationStore","onAuthorisedDefaultStrategy","onUnAuthorisedDefaultStrategy","setDefaultOnAuthorizedStrategy","getDefinedStrategy","setDefaultOnUnauthorizedStrategy","addPermissionStrategy","getStrategy","getAllStrategies","isPredefinedStrategy","transformStringToArray","NgxPermissionsStore","permissionsSource","permissions$","USE_PERMISSIONS_STORE","NgxPermissionsService","permissionsStore","flushPermissions","hasArrayPermission","validationFunction","newPermissions","reducePermission","addPermission","removePermission","permissionName","getPermission","me","hasPermissionValidationFunction","immutableValue","NgxRolesStore","rolesSource","roles$","USE_ROLES_STORE","NgxRolesService","rolesStore","addRole","addRoleWithPermissions","addRoles","rolesObj","addRolesWithPermissions","flushRoles","flushRolesAndPermissions","removeRole","roleName","getRoles","getRole","hasOnlyRoles","hasRoleKey","hasRolePermission","hasRoles","hasPermissions","roleNames","NgxPermissionsGuard","rolesService","transformPermission","isParameterAvailable","except","passingExceptPermissionsValidation","only","passingOnlyPermissionsValidation","isRedirectionWithParameters","failedPermission","permissionsExcept","isAllFalse","handleRedirectOfFailedPermission","onlyRedirectCheck","redirectToAnotherRoute","checkOnlyPermissions","permissionRedirectTo","failedPermissionName","navigationCommands","transformNavigationCommands","transformNavigationExtras","permissionsOnly","isFailedPermissionPropertyOfRedirectTo","purePermissions","hasRole","permissionsIsolate","rolesIsolate","configurationIsolate","defaultModules","toolbar","QUILL_CONFIG_TOKEN","firstValueFrom","hasConfig","QuillEditorComponent_Conditional_0_Conditional_0_Template","QuillEditorComponent_Conditional_0_Conditional_1_Template","QuillEditorComponent_Conditional_0_Template","preserve","QuillEditorComponent_Conditional_4_Conditional_0_Template","QuillEditorComponent_Conditional_4_Conditional_1_Template","QuillEditorComponent_Conditional_4_Template","QuillViewComponent_Conditional_0_Template","QuillViewComponent_Conditional_1_Template","getFormat","configFormat","QuillService","quill$","Quill","maybePatchedAddEventListener","__zone_symbol__addEventListener","quillImport","customOptions","customOption","newCustomOption","import","whitelist","suppressGlobalRegisterWarning","registerCustomModules","customModules","getQuill","QuillEditorBase","customToolbarPosition","strict","preserveWhitespace","trimOnValidation","filterNull","defaultEmptyValue","onEditorCreated","onEditorChanged","onContentChanged","onSelectionChanged","onNativeFocus","onNativeBlur","quillSubscription","quillEditor","editorElement","modelValue","getContents","clipboard","selectionChangeHandler","trackChanges","shouldTriggerOnModelTouched","onModelTouched","textChangeHandler","oldDelta","editorElem","shouldTriggerOnModelChange","editorChangeHandler","normalizeClassNames","toolbarElem","scrollingContainer","getModule","linkPlaceholder","dataset","setText","setContents","addQuillEventListeners","onValidatorChanged","currentStyling","previousStyling","currentClasses","previousClasses","removeClasses","currentEditorValue","deltaOperations","onlyEmptyOperation","minLengthError","given","maxLengthError","requiredError","textChange$","editorChange$","QuillEditorComponent","ɵQuillEditorComponent_BaseFactory","QuillViewHTMLComponent","themeClass","QuillViewComponent","i2$1","asyncGeneratorStep","_throw","_arguments","fulfilled","adopt","AsyncIterator","verb","awaitReturn","fulfill","settle","__values"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./src/Core/CodeGen/Eums/library.enums.ts","./src/Core/CodeGen/Models/admin.models.ts","./src/Core/CodeGen/Models/area.models.ts","./src/Core/CodeGen/Models/configuration.models.ts","./src/Core/CodeGen/Services/accounts.service.ts","./src/Core/CodeGen/Services/data.service.ts","./src/Core/CodeGen/Services/documents.service.ts","./src/Core/CodeGen/Services/programs.service.ts","./src/Core/CodeGen/Services/tenant.service.ts","./src/Core/CodeGen/Services/workflows.service.ts","./src/Core/CodeGen/tenant-permissions.enum.ts","./node_modules/rxjs/dist/esm/internal/operators/retryWhen.js","./src/Core/Lib/retry-strategy.ts","./src/Core/Http-Interceptors/retry-http-interceptor.ts","./src/Core/Http-Interceptors/content-type-http-interceptor.ts","./src/Core/Lib/no-auth-retry-strategy.ts","./src/Core/Http-Interceptors/auth-http-interceptor.ts","./src/Core/Http-Interceptors/index.ts","./src/Core/Http-Interceptors/local-proxy-route-http-interceptor.ts","./src/Core/Lib/Contexts/base-data-context.ts","./src/Core/Lib/Contexts/data-store.ts","./src/Core/Lib/Contexts/data-context.ts","./src/Core/Lib/Contexts/tenant-context.ts","./src/Core/Lib/Contexts/user-context.ts","./src/Core/Lib/Enums/date-range-string-enum.ts","./src/Core/Lib/Enums/editable-state-enum.ts","./src/Core/Lib/Enums/http-header-names.ts","./src/Core/Lib/Enums/locations.ts","./src/Core/Lib/Enums/timer-type-enum.ts","./src/Core/Lib/Enums/user-interaction-type.enum.ts","./src/Core/Lib/Utils/contract-date-utils.ts","./src/Core/Lib/Utils/date-utils.ts","./src/Core/Lib/Utils/format-utils.ts","./src/Core/Lib/Utils/model-utils.ts","./src/Core/Lib/Utils/region-utils.ts","./src/Core/Lib/Utils/route-utils.ts","./src/Core/Lib/Utils/task-utils.ts","./src/Core/Lib/contract-date.ts","./src/Core/Lib/model.ts","./src/Services/Hubs/AlertsHub.ts","./node_modules/@microsoft/signalr/dist/esm/DefaultReconnectPolicy.js","./node_modules/@microsoft/signalr/dist/esm/HeaderNames.js","./node_modules/@microsoft/signalr/dist/esm/HttpClient.js","./node_modules/@microsoft/signalr/dist/esm/AccessTokenHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/FetchHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/XhrHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/DefaultHttpClient.js","./node_modules/@microsoft/signalr/dist/esm/ITransport.js","./node_modules/@microsoft/signalr/dist/esm/AbortController.js","./node_modules/@microsoft/signalr/dist/esm/LongPollingTransport.js","./node_modules/@microsoft/signalr/dist/esm/ServerSentEventsTransport.js","./node_modules/@microsoft/signalr/dist/esm/WebSocketTransport.js","./node_modules/@microsoft/signalr/dist/esm/HttpConnection.js","./node_modules/@microsoft/signalr/dist/esm/JsonHubProtocol.js","./node_modules/@microsoft/signalr/dist/esm/HubConnectionBuilder.js","./src/Services/Hubs/BaseHub.ts","./src/Services/account-accounts-service.ts","./src/Services/account-workflow-service.ts","./src/Services/api-management.ts","./src/Services/auth-service.ts","./src/Services/base-service.ts","./src/Services/document-services.ts","./src/Services/drag-drop-service.ts","./src/Services/feature-facet.service.ts","./src/Services/global-messages.ts","./src/Services/loading-service.ts","./node_modules/@microsoft/dynamicproto-js/dist-es5/DynamicProto.js","./node_modules/@microsoft/applicationinsights-shims/dist-es5/Constants.js","./node_modules/@microsoft/applicationinsights-shims/dist-es5/TsLibShims.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InternalConstants.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/HelperFuncs.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EnvUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/RandomHelper.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DataCacheHelper.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaults.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicSupport.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicProperty.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AggregationError.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicState.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/DynamicConfig.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DbgExtensionUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/DiagnosticLogger.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Enums.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/StorageHelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/applicationinsights-common.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Constants.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataSanitizer.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/TelemetryItemCreator.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Event.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Trace.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/DataPoint.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Metric.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/HelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageView.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/PageViewPerformance.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Exception.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CoreUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/W3cTraceParent.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/RequestResponseHeaders.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/UrlHelperFuncs.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Util.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/RemoteDependencyData.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/DomHelperFuncs.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/Config/ConfigDefaultHelpers.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/CookieMgr.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/EventHelpers.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/PerfManager.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryHelpers.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ProcessTelemetryContext.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/InstrumentHooks.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHandlerContainer.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/UnloadHookContainer.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/BaseTelemetryPlugin.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewManager.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageViewPerformanceManager.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/AnalyticsPlugin.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Telemetry/PageVisitTimeManager.js","./node_modules/@microsoft/applicationinsights-analytics-js/dist-es5/JavaScriptSDK/Timing.js","./node_modules/@nevware21/ts-async/dist/es5/mod/ts-async.js","./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncHelperFuncs.js","./node_modules/@microsoft/applicationinsights-cfgsync-js/dist-es5/CfgSyncPlugin.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Offline.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/InitActiveStatusEnum.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/Constants.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/SenderPostManager.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AsyncUtils.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/ResponseHelpers.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/ContextTagKeys.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/PartAExtensions.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Envelope.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/Telemetry/Common/Data.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/InternalConstants.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/EnvelopeCreator.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/SendBuffer.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Sender.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/Serializer.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/HashCodeScoreGenerator.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/SamplingScoreGenerators/SamplingScoreGenerator.js","./node_modules/@microsoft/applicationinsights-channel-js/dist-es5/TelemetryProcessors/Sample.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/ConnectionStringParser.js","./node_modules/@microsoft/applicationinsights-common/dist-es5/ThrottleMgr.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/NotificationManager.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/AppInsightsCore.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK/TelemetryInitializerPlugin.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/InternalConstants.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajaxRecord.js","./node_modules/@microsoft/applicationinsights-dependencies-js/dist-es5/ajax.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Application.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Device.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Internal.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Location.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/__DynamicConstants.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/Session.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/TelemetryTrace.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/Context/User.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/TelemetryContext.js","./node_modules/@microsoft/applicationinsights-properties-js/dist-es5/PropertiesPlugin.js","./node_modules/@microsoft/applicationinsights-web/dist-es5/InternalConstants.js","./node_modules/@microsoft/applicationinsights-web/dist-es5/AISku.js","./node_modules/@microsoft/applicationinsights-web/dist-es5/__DynamicConstants.js","./src/Services/logging-service.ts","./src/Services/notification-service.ts","./src/Services/polling-service.ts","./src/Services/program-programs-datastores-service.ts","./src/Services/program-programs-service.ts","./src/Services/program-revision-workflow-service.ts","./src/Services/reports-service.ts","./src/Services/sync-hub-status-service.ts","./src/Services/tenant-assignable-service.ts","./src/Services/tenant-data-service.ts","./src/Services/tenant-tenant-service.ts","./src/Services/user-accounts-service.ts","./src/Services/user-service.ts","./src/Services/user-workflows-service.ts","./src/Shared/Components/inputs/sm-input-money/sm-input-money.component.html","./src/Shared/Components/inputs/sm-input-money/sm-input-money.component.ts","./src/Shared/Components/inputs/sm-input-number/sm-input-number.component.html","./src/Shared/Components/inputs/sm-input-number/sm-input-number.component.ts","./src/Shared/Components/inputs/sm-input-zipcode/sm-input-zipcode.component.html","./src/Shared/Components/inputs/sm-input-zipcode/sm-input-zipcode.component.ts","./src/Shared/Components/sm-date-by/sm-date-by.component.html","./src/Shared/Components/sm-date-by/sm-date-by.component.ts","./src/Shared/Components/sm-form/rows/sm-form-currency-block.component.ts","./src/Shared/Components/sm-form/rows/sm-form-currency-block.component.html","./src/Shared/Components/sm-form/rows/sm-form-row.component.html","./src/Shared/Components/sm-form/rows/sm-form-row.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-base.component.ts","./src/Shared/Components/sm-form/fields/label/sm-form-field-label.component.html","./src/Shared/Components/sm-form/fields/label/sm-form-field-label.component.ts","./src/Shared/Components/sm-form/fields/previous-value/sm-form-previous-value.component.ts","./src/Shared/Components/sm-form/fields/previous-value/sm-form-previous-value.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-string.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-string.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-multi-select.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-multi-select.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-email.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-email.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-phone.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-phone.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-year.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-year.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-zip.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-zip.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-integer.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-integer.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-decimal.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-decimal.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-date.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-date.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-money.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-money.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-url.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-url.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-timestamp.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-timestamp.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-boolean.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-boolean.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-radio-options.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-radio-options.component.ts","./src/Shared/Components/sm-form/fields/sm-form-field-select.component.html","./src/Shared/Components/sm-form/fields/sm-form-field-select.component.ts","./src/Shared/Components/sm-form/sm-form-field.component.html","./src/Shared/Components/sm-form/sm-form-field.component.ts","./src/Shared/Components/sm-form/sm-form-helper.ts","./src/Shared/Components/sm-form/sm-form-section-modal.component.html","./src/Shared/Components/sm-form/sm-form-section-modal.component.ts","./src/Shared/Components/sm-form/sm-form-section-instance.component.html","./src/Shared/Components/sm-form/sm-form-section-instance.component.ts","./src/Shared/Components/sm-form/sm-form-static-element.component.html","./src/Shared/Components/sm-form/sm-form-static-element.component.ts","./src/Shared/Components/sm-form/sm-form-section.component.html","./src/Shared/Components/sm-form/sm-form-section.component.ts","./src/Shared/Components/sm-form/sm-form-service.ts","./src/Shared/Components/sm-form/sm-form.model.ts","./src/Shared/Components/sm-help-tooltip/sm-help-tooltip.component.html","./src/Shared/Components/sm-help-tooltip/sm-help-tooltip.component.ts","./src/Shared/Components/sm-info-stack/sm-info-stack.component.html","./src/Shared/Components/sm-info-stack/sm-info-stack.component.ts","./src/Shared/Components/sm-producer-search/sm-producer-search.component.html","./src/Shared/Components/sm-producer-search/sm-producer-search.component.ts","./src/Shared/Components/sm-quick-search-card/sm-quick-search-card.component.html","./src/Shared/Components/sm-quick-search-card/sm-quick-search-card.component.ts","./src/Shared/Components/sm-select-area/sm-select-area.component.html","./src/Shared/Components/sm-select-area/sm-select-area.component.ts","./src/Shared/Components/sm-simple-dialog/sm-simple-dialog.component.html","./src/Shared/Components/sm-simple-dialog/sm-simple-dialog.component.ts","./src/Shared/Components/sm-sync-status/sm-sync-status.component.html","./src/Shared/Components/sm-sync-status/sm-sync-status.component.ts","./src/Shared/Components/sm-time-since/sm-time-since.component.ts","./src/Shared/Components/sm-time-since/sm-time-since.component.html","./src/Shared/Components/unity-avatar/unity-avatar.component.html","./src/Shared/Components/unity-avatar/unity-avatar.component.ts","./src/Shared/Components/unity-badge/unity-badge.component.ts","./src/Shared/Components/unity-badge/unity-badge.component.html","./src/Shared/Components/unity-button/unity-button.component.html","./src/Shared/Components/unity-button/unity-button.component.ts","./src/Shared/Components/unity-form/unity-control-date/unity-control-date.component.html","./src/Shared/Components/unity-form/unity-control-date/unity-control-date.component.ts","./src/Shared/Components/sm-select-area/sm-select-area-modal.component.ts","./src/Shared/Components/sm-select-area/sm-select-area-modal.component.html","./src/Shared/Components/sm-global-notifications/sm-global-notifications-card/sm-global-notifications-card.component.html","./src/Shared/Components/sm-global-notifications/sm-global-notifications-card/sm-global-notifications-card.component.ts","./src/Shared/Components/sm-notification-settings/sm-notification-settings.component.html","./src/Shared/Components/sm-notification-settings/sm-notification-settings.component.ts","./src/Shared/Components/sm-global-notifications/sm-global-notifications.component.html","./src/Shared/Components/sm-global-notifications/sm-global-notifications.component.ts","./src/Shared/Components/sm-main-menu/sm-main-menu.component.html","./src/Shared/Components/sm-main-menu/sm-main-menu.component.ts","./src/Views/Work/Shared/user-task-timer/user-task-timer.component.html","./src/Views/Work/Shared/user-task-timer/user-task-timer.component.ts","./src/Shared/Components/sm-user-info/sm-user-info.component.ts","./src/Shared/Components/sm-user-info/sm-user-info.component.html","./src/Shared/Components/unity-user-menu/unity-user-menu.component.html","./src/Shared/Components/unity-user-menu/unity-user-menu.component.ts","./src/Shared/Components/unity-header/unity-header.component.html","./src/Shared/Components/unity-header/unity-header.component.ts","./src/Shared/Components/unity-icon/unity-icon.component.ts","./src/Shared/Components/unity-icon/unity-icon.component.html","./src/Shared/Components/unity-loading-indicator/unity-loading-indicator.component.ts","./src/Shared/Components/unity-loading-indicator/unity-loading-indicator.component.html","./src/Shared/Components/unity-modal/unity-modal.component.html","./src/Shared/Components/unity-modal/unity-modal.component.ts","./src/Shared/Components/unity-nav/unity-nav.component.ts","./src/Shared/Components/unity-toasts/unity-toast.component.html","./src/Shared/Components/unity-toasts/unity-toast.component.ts","./src/Shared/Components/unity-toggle/unity-toggle.component.ts","./src/Shared/Components/unity-toggle/unity-toggle.component.html","./src/Shared/Directives/click-cursor.directive.ts","./src/Shared/Directives/ngbtooltip-sticky.directive.ts","./src/Shared/Directives/sm-permissions-shared.class.ts","./src/Shared/Directives/sm-permissions.directive.ts","./src/Shared/Directives/sm-tenant-facets.directive.ts","./src/Shared/Pipes/sm-date.pipe.ts","./src/Shared/Pipes/sm-nomenclature.pipe.ts","./src/Shared/Pipes/text-to-control-id.pipe.ts","./src/Shared/Pipes/time.pipe.ts","./src/Shared/shared.module.ts","./node_modules/rxjs/dist/esm/internal/observable/never.js","./src/Views/Admin/admin-polling-service.ts","./src/Views/Admin/admin.component.ts","./src/Views/Admin/admin.component.html","./src/Views/Conf/conf.component.ts","./src/Views/Conf/conf.component.html","./src/Views/Mgmt/mgmt.component.html","./src/Views/Mgmt/mgmt.component.ts","./src/Views/Work/Pipes/guid-replacer.pipe.ts","./src/Views/Work/Shared/task-timer/task-timer.component.html","./src/Views/Work/Shared/task-timer/task-timer.component.ts","./src/Views/Work/Shared/account-search/account-search.component.html","./src/Views/Work/Shared/account-search/account-search.component.ts","./src/Shared/Components/unity-stepper/unity-stepper.component.html","./src/Shared/Components/unity-stepper/unity-stepper.component.ts","./src/Views/Work/Shared/account-creation-modal/account-creation-modal.component.html","./src/Views/Work/Shared/account-creation-modal/account-creation-modal.component.ts","./src/Views/Work/Shared/new-business-button/new-business-button.component.html","./src/Views/Work/Shared/new-business-button/new-business-button.component.ts","./src/Views/Work/work.component.html","./src/Views/Work/work.component.ts","./src/environments/environment.prod.ts","./src/Shared/Components/sm-select-tenant/sm-select-tenant.component.html","./src/Shared/Components/sm-select-tenant/sm-select-tenant.component.ts","./src/Views/Mktg/Login/login.component.html","./src/Views/Mktg/Login/login.component.ts","./src/app-routing.module.ts","./src/Views/Mktg/Login/login-container.component.ts","./src/Views/Mktg/Login/login-container.component.html","./src/Views/Mktg/Register/register.component.ts","./src/Views/Mktg/Register/register.component.html","./src/Shared/Components/sm-global-alerts/sm-global-alerts.component.html","./src/Shared/Components/sm-global-alerts/sm-global-alerts.component.ts","./src/Shared/Animations/slide-out.animation.ts","./src/Shared/Animations/slide-up.animation.ts","./src/Shared/Animations/trigger-child.animation.ts","./src/Shared/Animations/vertical-collapse.animation.ts","./src/Shared/Components/unity-toasts/unity-toasts.component.html","./src/Shared/Components/unity-toasts/unity-toasts.component.ts","./src/Shared/Components/sm-toast-list/sm-toast-list.component.html","./src/Shared/Components/sm-toast-list/sm-toast-list.component.ts","./src/app.component.ts","./src/app.component.html","./src/Services/error-handler-service.ts","./node_modules/@angular/animations/fesm2022/browser.mjs","./node_modules/@angular/platform-browser/fesm2022/animations.mjs","./src/app.module.ts","./src/main.ts","./node_modules/@microsoft/applicationinsights-common/dist-es5/Interfaces/Contracts/SeverityLevel.js","./node_modules/@microsoft/applicationinsights-core-js/dist-es5/JavaScriptSDK.Enums/EnumHelperFuncs.js","./node_modules/@microsoft/signalr/dist/esm/Errors.js","./node_modules/@microsoft/signalr/dist/esm/HandshakeProtocol.js","./node_modules/@microsoft/signalr/dist/esm/Subject.js","./node_modules/@microsoft/signalr/dist/esm/MessageBuffer.js","./node_modules/@microsoft/signalr/dist/esm/HubConnection.js","./node_modules/@microsoft/signalr/dist/esm/IHubProtocol.js","./node_modules/@microsoft/signalr/dist/esm/ILogger.js","./node_modules/@microsoft/signalr/dist/esm/Loggers.js","./node_modules/@microsoft/signalr/dist/esm/TextMessageFormat.js","./node_modules/@microsoft/signalr/dist/esm/Utils.js","./node_modules/@nevware21/ts-utils/dist/es5/mod/ts-utils.js","./node_modules/@progress/kendo-charts/dist/es2015/common/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-array.js","./node_modules/@progress/kendo-charts/dist/es2015/common/add-class.js","./node_modules/@progress/kendo-charts/dist/es2015/common/remove-class.js","./node_modules/@progress/kendo-charts/dist/es2015/common/align-path-to-pixel.js","./node_modules/@progress/kendo-charts/dist/es2015/common/clockwise.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-number.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-string.js","./node_modules/@progress/kendo-charts/dist/es2015/common/convertable-to-number.js","./node_modules/@progress/kendo-charts/dist/es2015/common/cycleUp.js","./node_modules/@progress/kendo-charts/dist/es2015/common/cycleDown.js","./node_modules/@progress/kendo-charts/dist/es2015/common/cycleIndex.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-function.js","./node_modules/@progress/kendo-charts/dist/es2015/common/deep-extend.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-object.js","./node_modules/@progress/kendo-charts/dist/es2015/common/style-value.js","./node_modules/@progress/kendo-charts/dist/es2015/common/element-styles.js","./node_modules/@progress/kendo-charts/dist/es2015/common/get-spacing.js","./node_modules/@progress/kendo-charts/dist/es2015/services/template-service.js","./node_modules/@progress/kendo-charts/dist/es2015/common/get-template.js","./node_modules/@progress/kendo-charts/dist/es2015/common/get-aria-template.js","./node_modules/@progress/kendo-charts/dist/es2015/common/getter.js","./node_modules/@progress/kendo-charts/dist/es2015/common/grep.js","./node_modules/@progress/kendo-charts/dist/es2015/common/has-classes.js","./node_modules/@progress/kendo-charts/dist/es2015/common/hash-map.js","./node_modules/@progress/kendo-charts/dist/es2015/common/in-array.js","./node_modules/@progress/kendo-charts/dist/es2015/common/interpolate-value.js","./node_modules/@progress/kendo-charts/dist/es2015/common/instance-observer.js","./node_modules/@progress/kendo-charts/dist/es2015/common/map.js","./node_modules/@progress/kendo-charts/dist/es2015/common/mousewheel-delta.js","./node_modules/@progress/kendo-charts/dist/es2015/drawing-utils.js","./node_modules/@progress/kendo-charts/dist/es2015/common/font-loader.js","./node_modules/@progress/kendo-charts/dist/es2015/common/set-default-options.js","./node_modules/@progress/kendo-charts/dist/es2015/common/render-icon.js","./node_modules/@progress/kendo-charts/dist/es2015/common/is-plain-object.js","./node_modules/@progress/kendo-charts/dist/es2015/common/sparse-array-limits.js","./node_modules/@progress/kendo-charts/dist/es2015/common/find.js","./node_modules/@progress/kendo-charts/dist/es2015/common/element-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/common/auto-text-color.js","./node_modules/@progress/kendo-charts/dist/es2015/common/create-hash-set.js","./node_modules/@progress/kendo-charts/dist/es2015/common/default-error-handler.js","./node_modules/@progress/kendo-charts/dist/es2015/common/has-own-property.js","./node_modules/@progress/kendo-charts/dist/es2015/common/matrix.js","./node_modules/@progress/kendo-charts/dist/es2015/common/event-map.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/guid.js","./node_modules/@progress/kendo-charts/dist/es2015/common/event-utils.js","./node_modules/@progress/kendo-charts/dist/es2015/common/get-supported-features.js","./node_modules/@progress/kendo-charts/dist/es2015/common/noop.js","./node_modules/@progress/kendo-charts/dist/es2015/common/now.js","./node_modules/@progress/kendo-charts/dist/es2015/common/observable.js","./node_modules/@progress/kendo-charts/dist/es2015/common/user-events.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/auto-major-unit.js","./node_modules/@progress/kendo-charts/dist/es2015/core/point.js","./node_modules/@progress/kendo-charts/dist/es2015/core/box.js","./node_modules/@progress/kendo-charts/dist/es2015/core/ring.js","./node_modules/@progress/kendo-charts/dist/es2015/core/shape-builder.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations/easing-functions.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations/animation-factory.js","./node_modules/@progress/kendo-drawing/dist/es2015/animations/animation.js","./node_modules/@progress/kendo-charts/dist/es2015/core/chart-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/box-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/add-accessibility-attributes-to-visual.js","./node_modules/@progress/kendo-charts/dist/es2015/core/shape-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/gradients.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/box-diff.js","./node_modules/@progress/kendo-charts/dist/es2015/core/root-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/float-element.js","./node_modules/@progress/kendo-charts/dist/es2015/core/text.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/rect-to-box.js","./node_modules/@progress/kendo-charts/dist/es2015/core/text-box.js","./node_modules/@progress/kendo-charts/dist/es2015/core/title.js","./node_modules/@progress/kendo-charts/dist/es2015/core/axis-label.js","./node_modules/@progress/kendo-charts/dist/es2015/core/note.js","./node_modules/@progress/kendo-charts/dist/es2015/services/intl-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/format-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/chart-service.js","./node_modules/@progress/kendo-charts/dist/es2015/services/dom-events-builder.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/create-axis-tick.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/create-axis-grid-line.js","./node_modules/@progress/kendo-charts/dist/es2015/core/axis.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/absolute-date-diff.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/add-ticks.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/to-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/add-duration.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/start-of-week.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/floor-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/ceil-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-comparer.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-diff.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/to-time.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-equals.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/date-index.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/duration.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/parse-date.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/parse-dates.js","./node_modules/@progress/kendo-charts/dist/es2015/date-utils/first-day.js","./node_modules/@progress/kendo-charts/dist/es2015/core/category-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/core/date-category-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/floor.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/ceil.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/limit-coordinate.js","./node_modules/@progress/kendo-charts/dist/es2015/core/numeric-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/auto-axis-min.js","./node_modules/@progress/kendo-charts/dist/es2015/core/utils/auto-axis-max.js","./node_modules/@progress/kendo-charts/dist/es2015/core/date-value-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/logarithmic-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/mixins/grid-lines-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/core/radar-category-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/polar-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/mixins/radar-numeric-axis-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/core/radar-numeric-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/radar-logarithmic-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/core/curve-processor.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/chart-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/find-axis-by-name.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/chart-pane.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/api-elements/chart-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/count-numbers.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/aggregates/aggregates.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/get-field.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/series-binder.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/error-range-calculator.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/error-bar-base.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/categorical-error-bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/any-has-z-index.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/append-if-not-null.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/are-numbers.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/segment-visible.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/bind-segments.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/categories-count.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/equals-ignore-case.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/eval-options.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/filter-series-by-type.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/parse-date-category.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/has-gradient-overlay.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/has-value.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/is-date-axis.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/single-item-or-array.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/utils/create-out-of-range-points.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/categorical-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/point-events-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/note-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/line-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/line-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/step-line-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/step-line-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/spline-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/line-chart-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/clip-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/clip-animation-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/line-chart/line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/step-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/spline-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/area-chart/area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/axis-group-range-tracker.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bar-chart/bar-label.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/accessibility-attributes-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bar-chart/bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/cluster-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/stack-wrap.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bar-chart/bar-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/candlestick-chart/candlestick.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/candlestick-chart/candlestick-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/box-plot-chart/box-plot.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/box-plot-chart/vertical-box-plot.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/box-plot-chart/box-plot-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/error-bars/scatter-error-bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/scatter-charts/scatter-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bubble-chart/bubble.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bubble-chart/bubble-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bullet-chart/target.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bullet-chart/bullet.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/bullet-chart/bullet-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/tooltip/base-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/crosshair/crosshair-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/crosshair/crosshair.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/chart-container.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pane.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/plotarea-base.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/plotarea-events-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/aggregates/series-aggregator.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/aggregates/default-aggregates.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-bar-chart/range-bar.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-bar-chart/range-bar-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-line-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-area-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/spline-range-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/step-range-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/range-area-chart/range-area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/ohlc-chart/ohlc-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/ohlc-chart/ohlc-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/waterfall-chart/waterfall-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/waterfall-chart/waterfall-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/trendline-factory.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/calculate-slope.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/check-all-positive.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/get-trendline-data.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/calculate-moving-average.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/calculate-polynomial.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/trendline-registry.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/exponential-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/linear-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/logarithmic-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/moving-average.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/polynomial-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/power-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/categorical-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/highlight.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/accept-key.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/to-chart-axis-ranges.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/pannable.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/zoom-selection.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pan-and-zoom/mousewheel-zoom.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/align-start.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/align-start-reverse.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/layout.js","./node_modules/@progress/kendo-drawing/dist/es2015/alignment/translate-to-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-item-marker.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-item-line-area.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-item-line.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-item-square.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend-item.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/legend/legend.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/plotarea-factory.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/selection.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/tooltip/tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/tooltip/shared-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/bar-chart-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/bubble-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/fade-in-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/animations/pie-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/scatter-charts/scatter-line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/get-scatter-trendline-data.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-value-getter.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/x-value-limits.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-trendline-registry.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-exponential-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-linear-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-logarithmic-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-moving-average.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-polynomial-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/trendlines/scatter-power-trendline.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/xy-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pie-chart/pie-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/mixins/pie-chart-mixin.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/pie-chart/pie-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/pie-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/donut-chart/donut-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/donut-chart/donut-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/polar-plotarea-base.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-scatter-chart/polar-scatter-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-line-chart/polar-line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-area-chart/spline-polar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-area-chart/polar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/polar-area-chart/polar-area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/polar-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-line-chart/radar-line-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-area-chart/spline-radar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-area-chart/radar-area-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-area-chart/radar-area-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-bar-chart/radar-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/radar-cluster-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/layout/radar-stack-layout.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/radar-bar-chart/radar-bar-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/radar-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/funnel-chart/funnel-segment.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/funnel-chart/funnel-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/funnel-chart/pyramid-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/heatmap-chart/heatmap-point.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/heatmap-chart/heatmap-chart.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/heatmap-chart/color-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/heatmap-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/register-charts.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/donut-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/plotarea/funnel-plotarea.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/chart.js","./node_modules/@progress/kendo-charts/dist/es2015/sparkline/shared-tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/sparkline/sparkline.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/fade-out-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/navigator-hint.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/navigator.js","./node_modules/@progress/kendo-charts/dist/es2015/stock/stock-chart.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/arc.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/pad.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/build-label-element.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/get-range.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/utils/unpad.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/linear-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/linear-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/arrow-linear-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/arrow-linear-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/bar-linear-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/bar-linear-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/linear/linear-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/radial/radial-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/arc-scale.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/range-pointer-animation.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/range-pointer.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/arc/arc-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/gauges/circular/circular-gauge.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/encoding.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code11.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code39.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code39-extended.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code93.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/postnet.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code128.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/msi.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/ean13.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/ean8.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/main.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/encodings/code93-extended.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/surface-size.js","./node_modules/@progress/kendo-charts/dist/es2015/barcode/barcode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/free-cell-visitor.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoding-result.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoders/iso-encoder.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoding.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/qr-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/data-mode-instances.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/numeric-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/alpha-numeric-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/data-modes/byte-data-mode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/encoders/utf8-encoder.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/encodings/version-codewords.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/qrcode.js","./node_modules/@progress/kendo-charts/dist/es2015/qrcode/qrcode-validator.js","./node_modules/@progress/kendo-charts/dist/es2015/map/datums.js","./node_modules/@progress/kendo-charts/dist/es2015/map/location.js","./node_modules/@progress/kendo-charts/dist/es2015/map/crs.js","./node_modules/@progress/kendo-charts/dist/es2015/map/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/map/attribution.js","./node_modules/@progress/kendo-charts/dist/es2015/map/navigator.js","./node_modules/@progress/kendo-charts/dist/es2015/common/keys.js","./node_modules/@progress/kendo-charts/dist/es2015/map/zoom.js","./node_modules/@progress/kendo-charts/dist/es2015/map/extent.js","./node_modules/@progress/kendo-charts/dist/es2015/map/constants.js","./node_modules/@progress/kendo-charts/dist/es2015/map/tooltip/tooltip.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/layer.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/tile.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/draggable.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/shape.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/bubble.js","./node_modules/@progress/kendo-charts/dist/es2015/map/layers/marker.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/fx.js","./node_modules/@progress/kendo-charts/dist/es2015/map/scroller/scroller.js","./node_modules/@progress/kendo-charts/dist/es2015/services/map-service.js","./node_modules/@progress/kendo-charts/dist/es2015/map/map.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/calculation.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/element.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/node.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/link.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/label.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/title.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/legend.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/sankey.js","./node_modules/@progress/kendo-charts/dist/es2015/sankey/utils.js","./node_modules/@progress/kendo-charts/dist/es2015/chart-wizard/state.js","./node_modules/@progress/kendo-charts/dist/es2015/chart-wizard/messages.js","./node_modules/@progress/kendo-charts/dist/es2015/chart/base-theme.js","./node_modules/@progress/kendo-charts/dist/es2015/chart-wizard.js","./node_modules/@progress/kendo-charts/dist/es2015/chart-wizard/get-wizard-data-from-data-rows.js","./node_modules/@progress/kendo-common/dist/es2015/util.js","./node_modules/@progress/kendo-common/dist/es2015/support.js","./node_modules/@progress/kendo-common/dist/es2015/accessors/field-list.js","./node_modules/@progress/kendo-common/dist/es2015/accessors/getter.js","./node_modules/@progress/kendo-common/dist/es2015/accessors/setter.js","./node_modules/@progress/kendo-data-query/dist/es2015/utils.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter-descriptor.interface.js","./node_modules/@progress/kendo-data-query/dist/es2015/funcs.js","./node_modules/@progress/kendo-data-query/dist/es2015/accessor.js","./node_modules/@progress/kendo-data-query/dist/es2015/mvc/operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/filter-serialization.common.js","./node_modules/@progress/kendo-data-query/dist/es2015/mvc/deserialization.js","./node_modules/@progress/kendo-data-query/dist/es2015/sorting/sort-array.operator.js","./node_modules/@progress/kendo-data-query/dist/es2015/transducers.js","./node_modules/@progress/kendo-data-query/dist/es2015/grouping/aggregate.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter-no-eval.js","./node_modules/@progress/kendo-data-query/dist/es2015/filtering/filter-expression.factory.js","./node_modules/@progress/kendo-data-query/dist/es2015/grouping/group.operators.js","./node_modules/@progress/kendo-data-query/dist/es2015/array.operators.js","./node_modules/@progress/kendo-draggable/dist/es2015/main.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/export-image.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/node-map.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/group-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/root-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/search/quad-root.js","./node_modules/@progress/kendo-drawing/dist/es2015/search/quad-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/search/shapes-quad-tree.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/surface-cursor.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/utils/render-path.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/arc-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/circle-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/image-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/multi-path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/rect-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/canvas/text-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/promise-all.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/animation-frame.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/class.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/color/color.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/color/named-colors.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/color/parse-color.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/html-encode.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/log-to-console.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/support.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/throttle.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/base-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/has-observers.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/options-store.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/observable.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-scale.js","./node_modules/@progress/kendo-drawing/dist/es2015/core/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-padding.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/close-or-less.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/arc.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/line-intersection.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/circle.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/close.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/ellipse-extreme-angles.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/line-intersections-count.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/matrix.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/point.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/rect.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/is-out-of-end-point.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/calculate-curve-at.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/to-cubic-polynomial.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/complex-number.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/solve-cubic-equation.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/has-roots-in-range.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/segment.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/math/curve-intersections-count.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/size.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/to-matrix.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/transformation.js","./node_modules/@progress/kendo-drawing/dist/es2015/geometry/transform.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/stops-array.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-options.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/gradient-stop.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/gradient.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/linear-gradient.js","./node_modules/@progress/kendo-drawing/dist/es2015/gradients/radial-gradient.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/arabic-to-roman.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/merge-sort.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/rect.js","./node_modules/@progress/kendo-drawing/dist/es2015/html/core.js","./node_modules/@progress/kendo-drawing/dist/es2015/common/template.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/measurable.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/paintable.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/traversable.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-accessors.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-geometry.js","./node_modules/@progress/kendo-drawing/dist/es2015/mixins/with-points.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/utils.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/ttf.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/deflate.js","./node_modules/@progress/kendo-drawing/dist/es2015/pdf/core.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/circle.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/element.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/elements-array.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/group.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/image.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/geometry-elements-array.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/utils/points-to-curve.js","./node_modules/@progress/kendo-drawing/dist/es2015/parsing/shape-map.js","./node_modules/@progress/kendo-drawing/dist/es2015/parsing/parse-path.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/path.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/text.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/utils/elements-bounding-box.js","./node_modules/@progress/kendo-drawing/dist/es2015/shapes/utils/elements-clippend-bounding-box.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/text-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/arc-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/circle-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/group-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/image-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/multi-path-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/rect-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/surface-factory.js","./node_modules/@progress/kendo-drawing/dist/es2015/surface.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/export-svg.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/export-group.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/node-map.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/gradient-stop-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/gradient-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/linear-gradient-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/radial-gradient-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/pattern-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/clip-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/definition-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/root-node.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-all-attributes.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-attribute.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-style.js","./node_modules/@progress/kendo-drawing/dist/es2015/svg/utils/render-svg.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/lru-cache.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/text-metrics.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/measure-text.js","./node_modules/@progress/kendo-drawing/dist/es2015/text-metrics/util.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/append.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/bind-events.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/constants.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/create-promise.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/defined.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/definition-id.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/deg.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-offset.js","./node_modules/@progress/kendo-drawing/node_modules/@progress/kendo-common/dist/es2015/util.js","./node_modules/@progress/kendo-drawing/node_modules/@progress/kendo-common/dist/es2015/support.js","./node_modules/@progress/kendo-drawing/node_modules/@progress/kendo-common/dist/es2015/accessors/getter.js","./node_modules/@progress/kendo-drawing/node_modules/@progress/kendo-common/dist/es2015/parse-style.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-set-styles-safe.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-size.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/element-styles.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/encode-base64.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/encode-utf.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/event-coordinates.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/event-element.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/is-transparent.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/last.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/limit-value.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/now.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/rad.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/round.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/unbind-events.js","./node_modules/@progress/kendo-drawing/dist/es2015/util/value-or-default.js","./node_modules/@progress/kendo-intl/dist/es2015/common/is-string.js","./node_modules/@progress/kendo-intl/dist/es2015/error-details.js","./node_modules/@progress/kendo-intl/dist/es2015/errors.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/info.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/default-data.js","./node_modules/@progress/kendo-intl/dist/es2015/common/constants.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/load-numbers.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/load-dates.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/territory.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/load-units.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/load.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/date-field-name.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/date-format-names.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/parse-range-date.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/currency.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/constants.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/first-day.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/weekend-range.js","./node_modules/@progress/kendo-intl/dist/es2015/cldr/number-symbols.js","./node_modules/@progress/kendo-intl/dist/es2015/common/is-negative-zero.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/format-currency-symbol.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/group-integer.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/is-currency-style.js","./node_modules/@progress/kendo-intl/dist/es2015/common/pad.js","./node_modules/@progress/kendo-intl/dist/es2015/common/round.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/standard-number-format.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/utils.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/custom-number-format.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/format-options.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/format-number.js","./node_modules/@progress/kendo-intl/dist/es2015/common/is-number.js","./node_modules/@progress/kendo-intl/dist/es2015/numbers/parse-number.js","./node_modules/@progress/kendo-intl/dist/es2015/common/format-string.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/date-pattern.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/date-name-type.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/format-names.js","./node_modules/@progress/kendo-intl/dist/es2015/common/is-date.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/constants.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/format-date.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/time-utils.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/parse-date.js","./node_modules/@progress/kendo-intl/dist/es2015/dates/split-date-format.js","./node_modules/@progress/kendo-intl/dist/es2015/format.js","./node_modules/@progress/kendo-popup-common/dist/es2015/align-point.js","./node_modules/@progress/kendo-popup-common/dist/es2015/align.js","./node_modules/@progress/kendo-popup-common/dist/es2015/add-scroll.js","./node_modules/@progress/kendo-popup-common/dist/es2015/owner-document.js","./node_modules/@progress/kendo-popup-common/dist/es2015/window.js","./node_modules/@progress/kendo-popup-common/dist/es2015/document.js","./node_modules/@progress/kendo-popup-common/dist/es2015/scrollbar-width.js","./node_modules/@progress/kendo-popup-common/dist/es2015/window-viewport.js","./node_modules/@progress/kendo-popup-common/dist/es2015/bounding-offset.js","./node_modules/@progress/kendo-popup-common/dist/es2015/offset.js","./node_modules/@progress/kendo-popup-common/dist/es2015/parents.js","./node_modules/@progress/kendo-popup-common/dist/es2015/scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/element-scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/offset-parent.js","./node_modules/@progress/kendo-popup-common/dist/es2015/position-with-scroll.js","./node_modules/@progress/kendo-popup-common/dist/es2015/position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/offset-parent-scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/parent-scroll-position.js","./node_modules/@progress/kendo-popup-common/dist/es2015/remove-scroll.js","./node_modules/@progress/kendo-popup-common/dist/es2015/collision.js","./node_modules/@progress/kendo-popup-common/dist/es2015/restrict-to-view.js","./node_modules/@progress/kendo-popup-common/dist/es2015/siblings.js","./node_modules/@progress/kendo-popup-common/dist/es2015/sibling-container.js","./node_modules/@progress/kendo-popup-common/dist/es2015/utils.js","./node_modules/@progress/kendo-svg-icons/dist/index.es.js","./node_modules/@progress/pako-esm/dist/pako-esm2015.js","./node_modules/file-saver/dist/FileSaver.min.js","./node_modules/lodash/lodash.js","./node_modules/rxjs/dist/esm/internal/AsyncSubject.js","./node_modules/rxjs/dist/esm/internal/BehaviorSubject.js","./node_modules/rxjs/dist/esm/internal/Observable.js","./node_modules/rxjs/dist/esm/internal/ReplaySubject.js","./node_modules/rxjs/dist/esm/internal/util/ObjectUnsubscribedError.js","./node_modules/rxjs/dist/esm/internal/Subject.js","./node_modules/rxjs/dist/esm/internal/NotificationFactories.js","./node_modules/rxjs/dist/esm/internal/Subscriber.js","./node_modules/rxjs/dist/esm/internal/util/UnsubscriptionError.js","./node_modules/rxjs/dist/esm/internal/Subscription.js","./node_modules/rxjs/dist/esm/internal/config.js","./node_modules/rxjs/dist/esm/internal/observable/ConnectableObservable.js","./node_modules/rxjs/dist/esm/internal/observable/combineLatest.js","./node_modules/rxjs/dist/esm/internal/observable/concat.js","./node_modules/rxjs/dist/esm/internal/operators/concatAll.js","./node_modules/rxjs/dist/esm/internal/observable/defer.js","./node_modules/rxjs/dist/esm/internal/observable/empty.js","./node_modules/rxjs/dist/esm/internal/observable/forkJoin.js","./node_modules/rxjs/dist/esm/internal/operators/observeOn.js","./node_modules/rxjs/dist/esm/internal/operators/subscribeOn.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/observable/from.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduled.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleObservable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleArray.js","./node_modules/rxjs/dist/esm/internal/scheduled/schedulePromise.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleIterable.js","./node_modules/rxjs/dist/esm/internal/scheduled/scheduleReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/observable/fromEvent.js","./node_modules/rxjs/dist/esm/internal/observable/innerFrom.js","./node_modules/rxjs/dist/esm/internal/observable/interval.js","./node_modules/rxjs/dist/esm/internal/observable/merge.js","./node_modules/rxjs/dist/esm/internal/observable/of.js","./node_modules/rxjs/dist/esm/internal/observable/throwError.js","./node_modules/rxjs/dist/esm/internal/observable/timer.js","./node_modules/rxjs/dist/esm/internal/util/isDate.js","./node_modules/rxjs/dist/esm/internal/observable/zip.js","./node_modules/rxjs/dist/esm/internal/operators/OperatorSubscriber.js","./node_modules/rxjs/dist/esm/internal/operators/auditTime.js","./node_modules/rxjs/dist/esm/internal/operators/audit.js","./node_modules/rxjs/dist/esm/internal/operators/catchError.js","./node_modules/rxjs/dist/esm/internal/operators/concatMap.js","./node_modules/rxjs/dist/esm/internal/operators/debounceTime.js","./node_modules/rxjs/dist/esm/internal/operators/defaultIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/delayWhen.js","./node_modules/rxjs/dist/esm/internal/operators/ignoreElements.js","./node_modules/rxjs/dist/esm/internal/operators/delay.js","./node_modules/rxjs/dist/esm/internal/operators/distinctUntilChanged.js","./node_modules/rxjs/dist/esm/internal/operators/filter.js","./node_modules/rxjs/dist/esm/internal/operators/finalize.js","./node_modules/rxjs/dist/esm/internal/operators/first.js","./node_modules/rxjs/dist/esm/internal/operators/map.js","./node_modules/rxjs/dist/esm/internal/operators/mapTo.js","./node_modules/rxjs/dist/esm/internal/operators/mergeAll.js","./node_modules/rxjs/dist/esm/internal/operators/mergeMap.js","./node_modules/rxjs/dist/esm/internal/operators/mergeInternals.js","./node_modules/rxjs/dist/esm/internal/operators/refCount.js","./node_modules/rxjs/dist/esm/internal/operators/scan.js","./node_modules/rxjs/dist/esm/internal/operators/scanInternals.js","./node_modules/rxjs/dist/esm/internal/operators/share.js","./node_modules/rxjs/dist/esm/internal/operators/shareReplay.js","./node_modules/rxjs/dist/esm/internal/operators/skip.js","./node_modules/rxjs/dist/esm/internal/operators/startWith.js","./node_modules/rxjs/dist/esm/internal/operators/switchMap.js","./node_modules/rxjs/dist/esm/internal/operators/take.js","./node_modules/rxjs/dist/esm/internal/operators/takeUntil.js","./node_modules/rxjs/dist/esm/internal/operators/tap.js","./node_modules/rxjs/dist/esm/internal/operators/throttleTime.js","./node_modules/rxjs/dist/esm/internal/operators/throttle.js","./node_modules/rxjs/dist/esm/internal/operators/throwIfEmpty.js","./node_modules/rxjs/dist/esm/internal/operators/withLatestFrom.js","./node_modules/rxjs/dist/esm/internal/scheduler/Action.js","./node_modules/rxjs/dist/esm/internal/scheduler/intervalProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncAction.js","./node_modules/rxjs/dist/esm/internal/Scheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AsyncScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrameProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/animationFrame.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameScheduler.js","./node_modules/rxjs/dist/esm/internal/scheduler/AnimationFrameAction.js","./node_modules/rxjs/dist/esm/internal/scheduler/async.js","./node_modules/rxjs/dist/esm/internal/scheduler/dateTimestampProvider.js","./node_modules/rxjs/dist/esm/internal/scheduler/timeoutProvider.js","./node_modules/rxjs/dist/esm/internal/symbol/iterator.js","./node_modules/rxjs/dist/esm/internal/symbol/observable.js","./node_modules/rxjs/dist/esm/internal/util/EmptyError.js","./node_modules/rxjs/dist/esm/internal/util/args.js","./node_modules/rxjs/dist/esm/internal/util/argsArgArrayOrObject.js","./node_modules/rxjs/dist/esm/internal/util/argsOrArgArray.js","./node_modules/rxjs/dist/esm/internal/util/arrRemove.js","./node_modules/rxjs/dist/esm/internal/util/createErrorClass.js","./node_modules/rxjs/dist/esm/internal/util/createObject.js","./node_modules/rxjs/dist/esm/internal/util/errorContext.js","./node_modules/rxjs/dist/esm/internal/util/executeSchedule.js","./node_modules/rxjs/dist/esm/internal/util/identity.js","./node_modules/rxjs/dist/esm/internal/util/isArrayLike.js","./node_modules/rxjs/dist/esm/internal/util/isAsyncIterable.js","./node_modules/rxjs/dist/esm/internal/util/isFunction.js","./node_modules/rxjs/dist/esm/internal/util/isInteropObservable.js","./node_modules/rxjs/dist/esm/internal/util/isIterable.js","./node_modules/rxjs/dist/esm/internal/util/isObservable.js","./node_modules/rxjs/dist/esm/internal/util/isPromise.js","./node_modules/rxjs/dist/esm/internal/util/isReadableStreamLike.js","./node_modules/rxjs/dist/esm/internal/util/isScheduler.js","./node_modules/rxjs/dist/esm/internal/util/lift.js","./node_modules/rxjs/dist/esm/internal/util/mapOneOrManyArgs.js","./node_modules/rxjs/dist/esm/internal/util/noop.js","./node_modules/rxjs/dist/esm/internal/util/pipe.js","./node_modules/rxjs/dist/esm/internal/util/reportUnhandledError.js","./node_modules/rxjs/dist/esm/internal/util/throwUnobservableError.js","./node_modules/@angular/animations/fesm2022/animations.mjs","./node_modules/@angular/cdk/fesm2022/clipboard.mjs","./node_modules/@angular/common/fesm2022/common.mjs","./node_modules/@angular/common/fesm2022/http.mjs","./node_modules/@angular/core/fesm2022/primitives/signals.mjs","./node_modules/@angular/core/fesm2022/core.mjs","./node_modules/@angular/core/fesm2022/rxjs-interop.mjs","./node_modules/@angular/forms/fesm2022/forms.mjs","./node_modules/@angular/localize/fesm2022/localize.mjs","./node_modules/@angular/localize/fesm2022/init.mjs","./node_modules/@angular/platform-browser/fesm2022/platform-browser.mjs","./node_modules/rxjs/dist/esm/internal/operators/takeLast.js","./node_modules/@angular/router/fesm2022/router.mjs","./node_modules/rxjs/dist/esm/internal/operators/last.js","./node_modules/@auth0/auth0-spa-js/dist/auth0-spa-js.production.esm.js","./node_modules/@auth0/auth0-angular/fesm2020/auth0-auth0-angular.mjs","./node_modules/rxjs/dist/esm/internal/observable/iif.js","./node_modules/rxjs/dist/esm/internal/observable/race.js","./node_modules/@popperjs/core/lib/utils/getOppositePlacement.js","./node_modules/@popperjs/core/lib/utils/getBasePlacement.js","./node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js","./node_modules/@popperjs/core/lib/enums.js","./node_modules/@popperjs/core/lib/dom-utils/getWindow.js","./node_modules/@popperjs/core/lib/dom-utils/instanceOf.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js","./node_modules/@popperjs/core/lib/utils/math.js","./node_modules/@popperjs/core/lib/utils/userAgent.js","./node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js","./node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js","./node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeName.js","./node_modules/@popperjs/core/lib/dom-utils/getParentNode.js","./node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js","./node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js","./node_modules/@popperjs/core/lib/dom-utils/isTableElement.js","./node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js","./node_modules/@popperjs/core/lib/dom-utils/contains.js","./node_modules/@popperjs/core/lib/utils/rectToClientRect.js","./node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js","./node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js","./node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js","./node_modules/@popperjs/core/lib/utils/getVariation.js","./node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js","./node_modules/@popperjs/core/lib/utils/computeOffsets.js","./node_modules/@popperjs/core/lib/utils/mergePaddingObject.js","./node_modules/@popperjs/core/lib/utils/getFreshSideObject.js","./node_modules/@popperjs/core/lib/utils/expandToHashMap.js","./node_modules/@popperjs/core/lib/utils/detectOverflow.js","./node_modules/@popperjs/core/lib/modifiers/flip.js","./node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","./node_modules/@popperjs/core/lib/utils/within.js","./node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js","./node_modules/@popperjs/core/lib/modifiers/preventOverflow.js","./node_modules/@popperjs/core/lib/utils/getAltAxis.js","./node_modules/@popperjs/core/lib/modifiers/arrow.js","./node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js","./node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js","./node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js","./node_modules/@popperjs/core/lib/utils/orderModifiers.js","./node_modules/@popperjs/core/lib/utils/debounce.js","./node_modules/@popperjs/core/lib/createPopper.js","./node_modules/@popperjs/core/lib/utils/mergeByName.js","./node_modules/@popperjs/core/lib/modifiers/eventListeners.js","./node_modules/@popperjs/core/lib/modifiers/computeStyles.js","./node_modules/@popperjs/core/lib/popper-lite.js","./node_modules/@popperjs/core/lib/modifiers/popperOffsets.js","./node_modules/@popperjs/core/lib/modifiers/applyStyles.js","./node_modules/@popperjs/core/lib/modifiers/offset.js","./node_modules/@ng-bootstrap/ng-bootstrap/fesm2022/ng-bootstrap.mjs","./node_modules/rxjs/dist/esm/internal/operators/endWith.js","./node_modules/@progress/kendo-angular-buttons/fesm2020/progress-kendo-angular-buttons.mjs","./node_modules/@progress/kendo-angular-charts/node_modules/@progress/kendo-svg-icons/dist/index.es.js","./node_modules/@progress/kendo-angular-charts/fesm2020/progress-kendo-angular-charts.mjs","./node_modules/@progress/kendo-angular-common/fesm2020/progress-kendo-angular-common.mjs","./node_modules/@progress/kendo-angular-dialog/fesm2020/progress-kendo-angular-dialog.mjs","./node_modules/rxjs/dist/esm/internal/util/not.js","./node_modules/rxjs/dist/esm/internal/operators/skipWhile.js","./node_modules/@progress/kendo-angular-treeview/fesm2020/progress-kendo-angular-treeview.mjs","./node_modules/@progress/kendo-angular-dropdowns/fesm2020/progress-kendo-angular-dropdowns.mjs","./node_modules/rxjs/dist/esm/internal/operators/partition.js","./node_modules/@progress/kendo-angular-gauges/fesm2020/progress-kendo-angular-gauges.mjs","./node_modules/rxjs/dist/esm/internal/operators/switchMapTo.js","./node_modules/@progress/kendo-date-math/dist/es2015/clone-date.js","./node_modules/@progress/kendo-date-math/dist/es2015/adjust-dst.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-days.js","./node_modules/@progress/kendo-date-math/dist/es2015/create-date.js","./node_modules/@progress/kendo-date-math/dist/es2015/get-date.js","./node_modules/@progress/kendo-date-math/dist/es2015/is-equal.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-day-of-month.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-months.js","./node_modules/@progress/kendo-date-math/dist/es2015/set-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-years.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-decades.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-centuries.js","./node_modules/@progress/kendo-date-math/dist/es2015/normalize-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-decade-of-century.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-decade-of-century.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-year-of-decade.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-year-of-decade.js","./node_modules/@progress/kendo-date-math/dist/es2015/set-month.js","./node_modules/@progress/kendo-date-math/dist/es2015/last-month-of-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-centuries.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-decades.js","./node_modules/@progress/kendo-date-math/dist/es2015/add-weeks.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-day-of-month.js","./node_modules/@progress/kendo-date-math/dist/es2015/direction.enum.js","./node_modules/@progress/kendo-date-math/dist/es2015/day-of-week.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-months.js","./node_modules/@progress/kendo-date-math/dist/es2015/first-month-of-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/duration-in-years.js","./node_modules/@progress/kendo-date-math/dist/es2015/day.enum.js","./node_modules/@progress/kendo-date-math/dist/es2015/prev-day-of-week.js","./node_modules/@progress/kendo-date-math/dist/es2015/week-in-year.js","./node_modules/@progress/kendo-date-math/dist/es2015/constants.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/mask.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/constants.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/dateinput/utils.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/utils.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/dateobject.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/keycode.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/observable.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/dateinput/interaction-mode.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/dateinput/dateinput.js","./node_modules/@progress/kendo-dateinputs-common/dist/es2015/common/key.js","./node_modules/@progress/kendo-angular-dateinputs/fesm2020/progress-kendo-angular-dateinputs.mjs","./node_modules/rxjs/dist/esm/internal/operators/takeWhile.js","./node_modules/@progress/kendo-ooxml/dist/es2015/services/intl-service.js","./node_modules/@progress/kendo-ooxml/dist/es2015/services/template-service.js","./node_modules/@progress/kendo-ooxml/dist/es2015/utils/getter.js","./node_modules/@progress/kendo-ooxml/dist/es2015/utils/time.js","./node_modules/@progress/kendo-ooxml/dist/es2015/ooxml.js","./node_modules/@progress/kendo-angular-excel-export/fesm2020/progress-kendo-angular-excel-export.mjs","./node_modules/@progress/kendo-angular-label/fesm2020/progress-kendo-angular-label.mjs","./node_modules/@progress/kendo-draggable-common/dist/es2015/algorithms/intersect.js","./node_modules/@progress/kendo-draggable-common/dist/es2015/utils/index.js","./node_modules/@progress/kendo-draggable-common/dist/es2015/drag-n-drop.js","./node_modules/@progress/kendo-angular-utils/fesm2020/progress-kendo-angular-utils.mjs","./node_modules/@progress/kendo-draggable-common/dist/es2015/auto-scroll.js","./node_modules/@progress/kendo-angular-grid/fesm2020/progress-kendo-angular-grid.mjs","./node_modules/rxjs/dist/esm/internal/operators/bufferCount.js","./node_modules/@progress/kendo-angular-icons/fesm2020/progress-kendo-angular-icons.mjs","./node_modules/@progress/kendo-inputs-common/dist/es2015/common/drawing-utils.js","./node_modules/@progress/kendo-inputs-common/dist/es2015/signature/signature-pad.js","./node_modules/@progress/kendo-angular-inputs/fesm2020/progress-kendo-angular-inputs.mjs","./node_modules/@progress/kendo-angular-intl/fesm2020/progress-kendo-angular-intl.mjs","./node_modules/@progress/kendo-angular-l10n/fesm2020/progress-kendo-angular-l10n.mjs","./node_modules/@progress/kendo-angular-progressbar/fesm2020/progress-kendo-angular-progressbar.mjs","./node_modules/@progress/kendo-angular-layout/fesm2020/progress-kendo-angular-layout.mjs","./node_modules/@progress/kendo-angular-navigation/fesm2020/progress-kendo-angular-navigation.mjs","./node_modules/@progress/kendo-angular-popup/fesm2020/progress-kendo-angular-popup.mjs","./node_modules/@progress/kendo-licensing/dist/index.mjs","./node_modules/ng2-file-upload/fesm2022/ng2-file-upload.mjs","./node_modules/ngx-mask/fesm2022/ngx-mask.mjs","./node_modules/ngx-permissions/fesm2022/ngx-permissions.mjs","./node_modules/rxjs/dist/esm/internal/operators/every.js","./node_modules/ngx-quill/fesm2022/ngx-quill-config.mjs","./node_modules/rxjs/dist/esm/internal/firstValueFrom.js","./node_modules/ngx-quill/fesm2022/ngx-quill.mjs","./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","./node_modules/tslib/tslib.es6.mjs"],"sourcesContent":["export enum DocumentExtractionStatus {\r\n EXTRACTING = 'Extracting',\r\n REVIEW = 'Review',\r\n IMPORTING = 'Importing',\r\n COMPLETE = 'Complete',\r\n STOPPING = 'Stopping',\r\n STOPPED = 'Stopped',\r\n FAILED = 'Failed',\r\n}\r\n\r\nexport enum CompanyType {\r\n PRODUCER = 'Producer',\r\n INSURED = 'Insured',\r\n}\r\n\r\nexport enum EmailType {\r\n PERSONAL = 'Personal',\r\n WORK = 'Work',\r\n}\r\n\r\nexport enum PhoneNumberType {\r\n HOME = 'Home',\r\n MOBILE = 'Mobile',\r\n WORK = 'Work',\r\n}\r\n\r\nexport enum AccountStatus {\r\n TEMP = 'Temp',\r\n OPEN = 'Open',\r\n CLOSED = 'Closed',\r\n FROZEN = 'Frozen',\r\n}\r\n\r\nexport enum AddressPart {\r\n CAREOF = 'c/o',\r\n NUMBER = 'Honorific',\r\n STREET = 'Street',\r\n UNIT = 'Unit',\r\n CITY = 'City',\r\n COUNTY = 'County',\r\n STATE = 'State',\r\n ZIP = 'Zip',\r\n ZIPPLUS = 'ZipPlus4',\r\n}\r\n\r\nexport enum AreaType {\r\n DEV = 'Dev',\r\n TEST = 'Test',\r\n QA = 'QA',\r\n STAGING = 'Staging',\r\n PRODUCTION = 'Production',\r\n}\r\n\r\nexport enum BusinessTimeUnits {\r\n CALENDAR_HOURS = 'calendar hours',\r\n BUSINESS_HOURS = 'business hours',\r\n CALENDAR_DAYS = 'calendar days',\r\n BUSINESS_DAYS = 'business days',\r\n WEEKS = 'weeks',\r\n MONTHS = 'months',\r\n}\r\n\r\nexport enum DashboardExternalSourceType {\r\n InsurityBI = 'Insurity BI',\r\n}\r\n\r\nexport enum DashboardWidgetType {\r\n KPI = 'KPI',\r\n Gauge = 'Gauge',\r\n UserInfo = 'User Info',\r\n External = 'External',\r\n}\r\n\r\nexport enum DataType {\r\n STRING = 'string',\r\n INTEGER = 'integer',\r\n DECIMAL = 'decimal',\r\n MONEY = 'money',\r\n BOOLEAN = 'boolean',\r\n DATE = 'date',\r\n TIMESTAMP = 'timestamp',\r\n LIST_OF_STRINGS = 'list_of_strings',\r\n EMAIL = 'email',\r\n URL = 'url',\r\n PHONE = 'phone',\r\n ZIP = 'zip',\r\n}\r\n\r\nexport enum DeployableDeploymentStatus {\r\n VALIDATING = 'Validating',\r\n PUBLISHING = 'Publishing',\r\n DEPLOYING = 'Deploying',\r\n DEPLOYED = 'Deployed',\r\n ERRORED = 'Errored',\r\n}\r\n\r\nexport enum DocumentSourceType {\r\n RatingService = 'RatingService',\r\n DocumentGeneration = 'DocumentGeneration',\r\n DocumentUpload = 'DocumentUpload',\r\n}\r\n\r\nexport enum EventActionType {\r\n FIRE_WEBHOOK = 'FireWebhook',\r\n CHANGE_WORKFLOW_SET_STATUS = 'ChangeWorkflowSetStatus',\r\n START_WORKFLOW = 'StartWorkflow',\r\n TRIGGER_RULE = 'TriggerRule',\r\n SEND_ACCOUNT_INFO = 'SendAccountInfo',\r\n POLICY_OPERATION = 'PolicyOperation',\r\n}\r\n\r\nexport enum ExecutionStatuses {\r\n NOT_READY = 'NotReady',\r\n READY = 'Ready',\r\n EXECUTING = 'Executing',\r\n}\r\n\r\nexport enum ValidationCode {\r\n I1001 = 'I1001',\r\n I1002 = 'I1002',\r\n I1005 = 'I1005',\r\n I1010 = 'I1010',\r\n I1011 = 'I1011',\r\n I1012 = 'I1012',\r\n I1014 = 'I1014',\r\n I1015 = 'I1015',\r\n I1016 = 'I1016',\r\n I1017 = 'I1017',\r\n I1018 = 'I1018',\r\n I1024 = 'I1024',\r\n I1030 = 'I1030',\r\n I1031 = 'I1031',\r\n I1032 = 'I1032',\r\n I1033 = 'I1033',\r\n I9999 = 'I9999',\r\n E1001 = 'E1001',\r\n E1002 = 'E1002',\r\n E1003 = 'E1003',\r\n E1004 = 'E1004',\r\n E1005 = 'E1005',\r\n E1006 = 'E1006',\r\n E1007 = 'E1007',\r\n C1001 = 'C1001',\r\n C1002 = 'C1002',\r\n C1003 = 'C1003',\r\n C1004 = 'C1004',\r\n C1005 = 'C1005',\r\n C1006 = 'C1006',\r\n C1008 = 'C1008',\r\n C1010 = 'C1010',\r\n C1017 = 'C1017',\r\n B1001 = 'B1001',\r\n B1002 = 'B1002',\r\n B1003 = 'B1003',\r\n B1004 = 'B1004',\r\n B1006 = 'B1006',\r\n B1008 = 'B1008',\r\n B1010 = 'B1010',\r\n B1011 = 'B1011',\r\n B1012 = 'B1012',\r\n B1013 = 'B1013',\r\n B1014 = 'B1014',\r\n B1015 = 'B1015',\r\n B1016 = 'B1016',\r\n B1017 = 'B1017',\r\n B1018 = 'B1018',\r\n B1019 = 'B1019',\r\n B1020 = 'B1020',\r\n B1021 = 'B1021',\r\n B1022 = 'B1022',\r\n B1023 = 'B1023',\r\n B1024 = 'B1024',\r\n B1025 = 'B1025',\r\n B1027 = 'B1027',\r\n B1028 = 'B1028',\r\n B1029 = 'B1029',\r\n B1030 = 'B1030',\r\n B1031 = 'B1031',\r\n B1032 = 'B1032',\r\n}\r\n\r\nexport enum InjectionSourceType {\r\n Application = 'Application',\r\n Service = 'Service',\r\n ObjectSync = 'ObjectSync',\r\n ImportOrCopy = 'Import/Copy',\r\n Calculation = 'Calculation',\r\n Wireup = 'Wireup',\r\n}\r\n\r\nexport enum NamePart {\r\n HONORIFIC = 'Honorific',\r\n FIRST = 'First',\r\n MIDDLE = 'Middle',\r\n LAST = 'Last',\r\n SUFFIX = 'Suffix',\r\n FULL = 'Full',\r\n}\r\n\r\nexport enum NotificationType {\r\n JOURNAL_ENTRY = 'JournalEntry',\r\n COMMENT = 'Comment',\r\n TASK_DELEGATION = 'TaskDelegation',\r\n PROGRAM_REVISION = 'ProgramRevision',\r\n EMAIL = 'Email',\r\n}\r\n\r\nexport enum PolicyOperation {\r\n START_TRANSACTION = 'StartTransaction',\r\n REVERT_ALL = 'RevertAll',\r\n REVERT_UNUSED = 'RevertUnused',\r\n SEND_POLICY_DATA = 'SendPolicyData',\r\n RETRIEVE_POLICY_DATA = 'RetrievePolicyData',\r\n CUSTOM = 'Custom',\r\n}\r\n\r\nexport enum PolicyOperationAction {\r\n RATE = 'Rate',\r\n START_TRANSACTION = 'StartTransaction',\r\n REVERT_TRANSACTION = 'RevertTransaction',\r\n SEND_POLICY_DATA = 'SendPolicyData',\r\n RETRIEVE_POLICY_DATA = 'RetrievePolicyData',\r\n CUSTOM_POLICY_OPERATION = 'CustomPolicyOperation',\r\n}\r\n\r\nexport enum PolicyRatedStatus {\r\n RATE = 'Rate',\r\n QUOTE = 'Quote',\r\n BIND = 'Bind',\r\n ISSUE = 'Issue',\r\n}\r\n\r\nexport enum PolicyState {\r\n IN_FORCE = 'InForce',\r\n PREVIOUSLY_CANCELLED = 'PreviouslyCancelled',\r\n}\r\n\r\nexport enum PolicyStatus {\r\n EXCLUDED = 'Excluded',\r\n SELECTED = 'Selected',\r\n QUOTED = 'Quoted',\r\n IN_FORCE = 'In Force',\r\n CANCELLED = 'Cancelled',\r\n EXPIRED = 'Expired',\r\n CLOSED = 'Closed',\r\n}\r\n\r\nexport enum PolicyUpdateType {\r\n Essential = 'Essential',\r\n Coverage = 'Coverage',\r\n Forms = 'Forms',\r\n Custom = 'Custom',\r\n EssentialWC = 'EssentialWC',\r\n CoverageWC = 'CoverageWC',\r\n EssentialAuto = 'EssentialAuto',\r\n CoverageAuto = 'CoverageAuto',\r\n}\r\n\r\nexport enum PrimaryPolicyAction {\r\n ADD = 'Add',\r\n MODIFY = 'Modify',\r\n REMOVE = 'Remove',\r\n}\r\n\r\nexport enum PrioritizationType {\r\n LATE_DEADLINE = 'LateDeadline',\r\n IMMINENT_DEADLINE = 'ImminentDeadline',\r\n PENDING_DEADLINE = 'PendingDeadline',\r\n LATE_SERVICE_LEVEL = 'LateServiceLevel',\r\n IMMINENT_SERVICE_LEVEL = 'ImminentServiceLevel',\r\n PENDING_SERVICE_LEVEL = 'PendingServiceLevel',\r\n LATE_DUE_DATE = 'LateDueDate',\r\n IMMINENT_DUE_DATE = 'ImminentDueDate',\r\n PENDING_DUE_DATE = 'PendingDueDate',\r\n}\r\n\r\nexport enum ProductEligibilityStatus {\r\n INELIGIBLE = 'Ineligible',\r\n ELIGIBLE = 'Eligible',\r\n PRESELECTED = 'Preselected',\r\n REQUIRED = 'Required',\r\n}\r\n\r\nexport enum RatingCommitOptions {\r\n NOT_ALLOWED = 'Not Allowed',\r\n ALLOWED = 'Allowed',\r\n REQUIRED = 'Required',\r\n}\r\n\r\nexport enum RatingDocumentGenerationOptions {\r\n NONE = 'None',\r\n FULL = 'Full',\r\n ENDORSEMENT = 'Endorsement',\r\n ADDED = 'Added',\r\n}\r\n\r\nexport enum SettingsKeyNames {\r\n ENDPOINT = 'Endpoint',\r\n VIEW_URL = 'ViewURL',\r\n EDIT_URL = 'EditURL',\r\n}\r\n\r\nexport enum TaskApprovalRejectionType {\r\n ALL = 'All',\r\n ONLY_THIS = 'OnlyThis',\r\n}\r\n\r\nexport enum TaskRatingResults {\r\n NOT_RATED = 'NotRated',\r\n ERRORED = 'Errored',\r\n SUCCESS = 'Success',\r\n UPDATED = 'Updated',\r\n INVALID = 'Invalid',\r\n}\r\n\r\nexport enum TransactionRatingStatus {\r\n NOT_RATED = 'NotRated',\r\n SETUP = 'Setup',\r\n RATING = 'Rating',\r\n RATED = 'Rated',\r\n ISSUED = 'Issued',\r\n ERRORED = 'Errored',\r\n REVERTED = 'Reverted',\r\n}\r\n\r\nexport enum TransactionSelectionStatus {\r\n SELECTED = 'Selected',\r\n DESELECTED = 'Deselected',\r\n AUTOMATIC = 'Automatic',\r\n}\r\n\r\nexport enum ValidationLevels {\r\n TIP = 'Tip',\r\n WARNING = 'Warning',\r\n SOFT = 'Soft',\r\n HARD = 'Hard',\r\n}\r\n\r\nexport enum WebhookActions {\r\n GENERAL = 'General',\r\n SEND_ACCOUNT_INFO = 'SendAccountInfo',\r\n POLICY_OPERATION = 'PolicyOperation',\r\n RATING = 'Rating',\r\n}\r\n\r\nexport enum WebhookEventType {\r\n TASK_EXECUTED = 'TaskExecuted',\r\n TASK_COMPLETED = 'TaskCompleted',\r\n TASK_COMPLETING = 'TaskCompleting',\r\n TASK_UNCOMPLETED = 'TaskUncompleted',\r\n PHASE_COMPLETED = 'PhaseCompleted',\r\n PHASE_COMPLETING = 'PhaseCompleting',\r\n WORKFLOW_STARTED = 'WorkflowStarted',\r\n WORKFLOW_COMPLETED = 'WorkflowCompleted',\r\n WORKFLOW_COMPLETING = 'WorkflowCompleting',\r\n WORKFLOW_STOPPED = 'WorkflowStopped',\r\n WORKFLOW_STOPPING = 'WorkflowStopping',\r\n WORKFLOW_RESUMED = 'WorkflowResumed',\r\n QUEUE_WORKFLOW_PROVISIONING = 'QueueWorkflowProvisioning',\r\n COPY_TO_QUOTE = 'CopyToQuote',\r\n}\r\n\r\nexport enum WebhookMode {\r\n FIRE_AND_FORGET = 'FireAndForget',\r\n VERIFY_COMPLETION = 'VerifyCompletion',\r\n}\r\n\r\nexport enum WorkflowStatus {\r\n RUNNING = 'Running',\r\n STOPPING = 'Stopping',\r\n STOPPED = 'Stopped',\r\n COMPLETING = 'Completing',\r\n COMPLETED = 'Completed',\r\n CLOSED = 'Closed',\r\n}\r\n\r\nexport enum AdminDBVersion {\r\n _1 = '1',\r\n _2 = '2',\r\n _3 = '3',\r\n _4 = '4',\r\n _5 = '5',\r\n}\r\n\r\nexport enum AreaDBVersion {\r\n _1 = '1',\r\n _2 = '2',\r\n _3 = '3',\r\n _4 = '4',\r\n _5 = '5',\r\n}\r\n\r\nexport enum ConfigurationDBVersion {\r\n _1 = '1',\r\n _2 = '2',\r\n _3 = '3',\r\n _4 = '4',\r\n _5 = '5',\r\n _6 = '6',\r\n _7 = '7',\r\n _8 = '8',\r\n _9 = '9',\r\n _10 = '10',\r\n _11 = '11',\r\n _12 = '12',\r\n _13 = '13',\r\n _14 = '14',\r\n _15 = '15',\r\n _16 = '16',\r\n}\r\n\r\nexport enum Currency {\r\n USD = 'USD',\r\n CAD = 'CAD',\r\n EUR = 'EUR',\r\n GBP = 'GBP',\r\n}\r\n\r\nexport enum RatingMessageType {\r\n INFO = 'Info',\r\n WARNING = 'Warning',\r\n ERROR = 'Error',\r\n}\r\n\r\nexport enum WidgetType {\r\n DATA = 'Data',\r\n}\r\n\r\n","import { ModelUtils, EdgeRelationship } from '@Core/Lib/Utils/model-utils';\r\nimport { BaseDataContext } from '@Core/Lib/Contexts/base-data-context';\r\nimport { BaseModel, EdgeModel, VertexModel, DocumentModel } from '@Core/Lib/model';\r\nimport { ContractDate } from '@Core/Lib/contract-date';\r\nimport { ActionEligibilityStatus } from '@Core/Lib/Enums/action-eligibility-status';\r\n\r\nimport * as _ from 'lodash';\r\n\r\nexport class AdminInfo extends DocumentModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"AdminInfo\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get SubscriptionKey(): string {\r\n return this.data.SubscriptionKey;\r\n }\r\n set SubscriptionKey(value: string) {\r\n this.data.SubscriptionKey = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): AdminInfo {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: AdminInfo) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n SubscriptionKey: model.SubscriptionKey,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AdminInfo {\r\n let clone = new AdminInfo();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AdminUserFillsSecurityRole extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"AdminUserFillsSecurityRole\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n set CreatedDate(value: Date) {\r\n this.data.CreatedDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to AdminUser\r\n private __IsFilledBy: AdminUser;\r\n\r\n IsFilledBy(context?: BaseDataContext): AdminUser {\r\n if (this.__IsFilledBy)\r\n return this.__IsFilledBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsFilledBy) as AdminUser;\r\n }\r\n setIsFilledBy(value: AdminUser) {\r\n this.__IsFilledBy = value;\r\n }\r\n get _IsFilledBy(): string {\r\n return this.Out;\r\n }\r\n set _IsFilledBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to SecurityRole\r\n private __FillsSecurityRole: SecurityRole;\r\n\r\n FillsSecurityRole(context?: BaseDataContext): SecurityRole {\r\n if (this.__FillsSecurityRole)\r\n return this.__FillsSecurityRole;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._FillsSecurityRole) as SecurityRole;\r\n }\r\n setFillsSecurityRole(value: SecurityRole) {\r\n this.__FillsSecurityRole = value;\r\n }\r\n get _FillsSecurityRole(): string {\r\n return this.In;\r\n }\r\n set _FillsSecurityRole(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AdminUserFillsSecurityRole {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AdminUserFillsSecurityRole {\r\n let clone = new AdminUserFillsSecurityRole();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AreaTier extends DocumentModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"AreaTier\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get DatabaseThroughputRUs(): number {\r\n return this.data.DatabaseThroughputRUs;\r\n }\r\n set DatabaseThroughputRUs(value: number) {\r\n this.data.DatabaseThroughputRUs = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): AreaTier {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: AreaTier) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n DatabaseThroughputRUs: model.DatabaseThroughputRUs,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AreaTier {\r\n let clone = new AreaTier();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IFeature {\r\n Id: string\r\n\r\n IsInModule?: object[],\r\n IsSecuredBy?: object[]\r\n\r\n}\r\n\r\nexport class Feature extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Feature\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Feature }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsInModule, returns Module ModuleProvidesFeature[]\r\n private __IsInModule: ModuleProvidesFeature[];\r\n IsInModule(_context?: BaseDataContext): ModuleProvidesFeature[] {\r\n if (this.__IsInModule)\r\n return this.__IsInModule;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsInModule), (id) => context.get(id) as ModuleProvidesFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsInModule(values: ModuleProvidesFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsInModule = values;\r\n }\r\n get _IsInModule(): Set {\r\n if (!this._relationships.has(\"IsInModule\"))\r\n this._relationships.set(\"IsInModule\", new Set());\r\n\r\n return this._relationships.get(\"IsInModule\");\r\n }\r\n set _IsInModule(values: Set) {\r\n this._relationships.set(\"IsInModule\", values);\r\n }\r\n\r\n // Relationship IsSecuredBy, returns Permission PermissionSecuresFeature[]\r\n private __IsSecuredBy: PermissionSecuresFeature[];\r\n IsSecuredBy(_context?: BaseDataContext): PermissionSecuresFeature[] {\r\n if (this.__IsSecuredBy)\r\n return this.__IsSecuredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSecuredBy), (id) => context.get(id) as PermissionSecuresFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSecuredBy(values: PermissionSecuresFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSecuredBy = values;\r\n }\r\n get _IsSecuredBy(): Set {\r\n if (!this._relationships.has(\"IsSecuredBy\"))\r\n this._relationships.set(\"IsSecuredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSecuredBy\");\r\n }\r\n set _IsSecuredBy(values: Set) {\r\n this._relationships.set(\"IsSecuredBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsInModule',\r\n edgeType: ModuleProvidesFeature,\r\n otherVertexPropertyName: 'ProvidesFeature',\r\n otherVertexType: Module,\r\n },\r\n {\r\n propertyName: 'IsSecuredBy',\r\n edgeType: PermissionSecuresFeature,\r\n otherVertexPropertyName: 'Secures',\r\n otherVertexType: Permission,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Feature {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Feature) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IsInModule: ModelUtils.serializeShallowEdge(model.IsInModule(), 'IsInModule'),\r\n IsSecuredBy: ModelUtils.serializeShallowEdge(model.IsSecuredBy(), 'IsSecuredBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Feature {\r\n let clone = new Feature();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsInModule = _.cloneDeep(this._IsInModule);\r\n clone._IsSecuredBy = _.cloneDeep(this._IsSecuredBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class IdentityRepresentsOrganization extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"IdentityRepresentsOrganization\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __IsRepresentedBy: SMIdentity;\r\n\r\n IsRepresentedBy(context?: BaseDataContext): SMIdentity {\r\n if (this.__IsRepresentedBy)\r\n return this.__IsRepresentedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRepresentedBy) as SMIdentity;\r\n }\r\n setIsRepresentedBy(value: SMIdentity) {\r\n this.__IsRepresentedBy = value;\r\n }\r\n get _IsRepresentedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsRepresentedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Organization\r\n private __Represents: Organization;\r\n\r\n Represents(context?: BaseDataContext): Organization {\r\n if (this.__Represents)\r\n return this.__Represents;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Represents) as Organization;\r\n }\r\n setRepresents(value: Organization) {\r\n this.__Represents = value;\r\n }\r\n get _Represents(): string {\r\n return this.In;\r\n }\r\n set _Represents(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): IdentityRepresentsOrganization {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): IdentityRepresentsOrganization {\r\n let clone = new IdentityRepresentsOrganization();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IModule {\r\n Id: string,\r\n\r\n ProvidesFeature?: object[]\r\n\r\n}\r\n\r\nexport class Module extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Module\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Module }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship ProvidesFeature, returns Feature ModuleProvidesFeature[]\r\n private __ProvidesFeature: ModuleProvidesFeature[];\r\n ProvidesFeature(_context?: BaseDataContext): ModuleProvidesFeature[] {\r\n if (this.__ProvidesFeature)\r\n return this.__ProvidesFeature;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ProvidesFeature), (id) => context.get(id) as ModuleProvidesFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setProvidesFeature(values: ModuleProvidesFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ProvidesFeature = values;\r\n }\r\n get _ProvidesFeature(): Set {\r\n if (!this._relationships.has(\"ProvidesFeature\"))\r\n this._relationships.set(\"ProvidesFeature\", new Set());\r\n\r\n return this._relationships.get(\"ProvidesFeature\");\r\n }\r\n set _ProvidesFeature(values: Set) {\r\n this._relationships.set(\"ProvidesFeature\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'ProvidesFeature',\r\n edgeType: ModuleProvidesFeature,\r\n otherVertexPropertyName: 'IsInModule',\r\n otherVertexType: Feature,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Module {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Module) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n ProvidesFeature: ModelUtils.serializeShallowEdge(model.ProvidesFeature(), 'ProvidesFeature'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Module {\r\n let clone = new Module();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._ProvidesFeature = _.cloneDeep(this._ProvidesFeature);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ModuleProvidesFeature extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"ModuleProvidesFeature\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Module\r\n private __IsInModule: Module;\r\n\r\n IsInModule(context?: BaseDataContext): Module {\r\n if (this.__IsInModule)\r\n return this.__IsInModule;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsInModule) as Module;\r\n }\r\n setIsInModule(value: Module) {\r\n this.__IsInModule = value;\r\n }\r\n get _IsInModule(): string {\r\n return this.Out;\r\n }\r\n set _IsInModule(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Feature\r\n private __ProvidesFeature: Feature;\r\n\r\n ProvidesFeature(context?: BaseDataContext): Feature {\r\n if (this.__ProvidesFeature)\r\n return this.__ProvidesFeature;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ProvidesFeature) as Feature;\r\n }\r\n setProvidesFeature(value: Feature) {\r\n this.__ProvidesFeature = value;\r\n }\r\n get _ProvidesFeature(): string {\r\n return this.In;\r\n }\r\n set _ProvidesFeature(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ModuleProvidesFeature {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ModuleProvidesFeature {\r\n let clone = new ModuleProvidesFeature();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IOrganization {\r\n Id: string,\r\n LegalName: string,\r\n Address?: { [index: string]: string },\r\n Phones?: { [index: string]: any }[],\r\n Website?: string,\r\n readonly Super: boolean,\r\n\r\n IsRepresentedBy?: object[],\r\n Owns?: object[]\r\n\r\n}\r\n\r\nexport class Organization extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Organization\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Organization }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get LegalName(): string {\r\n return this.data.LegalName;\r\n }\r\n set LegalName(value: string) {\r\n this.data.LegalName = value;\r\n }\r\n get Address(): { [index: string]: string } {\r\n return this.data.Address;\r\n }\r\n set Address(value: { [index: string]: string }) {\r\n this.data.Address = value;\r\n }\r\n get Phones(): { [index: string]: any }[] {\r\n return this.data.Phones;\r\n }\r\n set Phones(value: { [index: string]: any }[]) {\r\n this.data.Phones = value;\r\n }\r\n get Website(): string {\r\n return this.data.Website;\r\n }\r\n set Website(value: string) {\r\n this.data.Website = value;\r\n }\r\n get Super(): boolean {\r\n return this.data.Super;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRepresentedBy, returns SMIdentity IdentityRepresentsOrganization[]\r\n private __IsRepresentedBy: IdentityRepresentsOrganization[];\r\n IsRepresentedBy(_context?: BaseDataContext): IdentityRepresentsOrganization[] {\r\n if (this.__IsRepresentedBy)\r\n return this.__IsRepresentedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRepresentedBy), (id) => context.get(id) as IdentityRepresentsOrganization);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRepresentedBy(values: IdentityRepresentsOrganization[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRepresentedBy = values;\r\n }\r\n get _IsRepresentedBy(): Set {\r\n if (!this._relationships.has(\"IsRepresentedBy\"))\r\n this._relationships.set(\"IsRepresentedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsRepresentedBy\");\r\n }\r\n set _IsRepresentedBy(values: Set) {\r\n this._relationships.set(\"IsRepresentedBy\", values);\r\n }\r\n\r\n // Relationship Owns, returns Tenant OrganizationOwnsTenant[]\r\n private __Owns: OrganizationOwnsTenant[];\r\n Owns(_context?: BaseDataContext): OrganizationOwnsTenant[] {\r\n if (this.__Owns)\r\n return this.__Owns;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Owns), (id) => context.get(id) as OrganizationOwnsTenant);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setOwns(values: OrganizationOwnsTenant[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Owns = values;\r\n }\r\n get _Owns(): Set {\r\n if (!this._relationships.has(\"Owns\"))\r\n this._relationships.set(\"Owns\", new Set());\r\n\r\n return this._relationships.get(\"Owns\");\r\n }\r\n set _Owns(values: Set) {\r\n this._relationships.set(\"Owns\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsRepresentedBy',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'Represents',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Owns',\r\n edgeType: OrganizationOwnsTenant,\r\n otherVertexPropertyName: 'IsOwnedBy',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Organization {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Organization) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LegalName: model.LegalName,\r\n Address: model.Address,\r\n Phones: model.Phones,\r\n Website: model.Website,\r\n Super: model.Super,\r\n IsRepresentedBy: ModelUtils.serializeShallowEdge(model.IsRepresentedBy(), 'IsRepresentedBy'),\r\n Owns: ModelUtils.serializeShallowEdge(model.Owns(), 'Owns'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Organization {\r\n let clone = new Organization();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsRepresentedBy = _.cloneDeep(this._IsRepresentedBy);\r\n clone._Owns = _.cloneDeep(this._Owns);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class OrganizationOwnsTenant extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"OrganizationOwnsTenant\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Organization\r\n private __IsOwnedBy: Organization;\r\n\r\n IsOwnedBy(context?: BaseDataContext): Organization {\r\n if (this.__IsOwnedBy)\r\n return this.__IsOwnedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsOwnedBy) as Organization;\r\n }\r\n setIsOwnedBy(value: Organization) {\r\n this.__IsOwnedBy = value;\r\n }\r\n get _IsOwnedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsOwnedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Tenant\r\n private __Owns: Tenant;\r\n\r\n Owns(context?: BaseDataContext): Tenant {\r\n if (this.__Owns)\r\n return this.__Owns;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Owns) as Tenant;\r\n }\r\n setOwns(value: Tenant) {\r\n this.__Owns = value;\r\n }\r\n get _Owns(): string {\r\n return this.In;\r\n }\r\n set _Owns(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): OrganizationOwnsTenant {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): OrganizationOwnsTenant {\r\n let clone = new OrganizationOwnsTenant();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IPermission {\r\n Id: string,\r\n\r\n IsRequiredBy?: object[],\r\n IsGrantedBy?: object[],\r\n Requires?: object[],\r\n Secures?: object[]\r\n\r\n}\r\n\r\nexport class Permission extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Permission\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Permission }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRequiredBy, returns Permission PermissionRequiresPermission[]\r\n private __IsRequiredBy: PermissionRequiresPermission[];\r\n IsRequiredBy(_context?: BaseDataContext): PermissionRequiresPermission[] {\r\n if (this.__IsRequiredBy)\r\n return this.__IsRequiredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRequiredBy), (id) => context.get(id) as PermissionRequiresPermission);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRequiredBy(values: PermissionRequiresPermission[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRequiredBy = values;\r\n }\r\n get _IsRequiredBy(): Set {\r\n if (!this._relationships.has(\"IsRequiredBy\"))\r\n this._relationships.set(\"IsRequiredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsRequiredBy\");\r\n }\r\n set _IsRequiredBy(values: Set) {\r\n this._relationships.set(\"IsRequiredBy\", values);\r\n }\r\n\r\n // Relationship IsGrantedBy, returns SecurityRole SecurityRoleGrantsPermission[]\r\n private __IsGrantedBy: SecurityRoleGrantsPermission[];\r\n IsGrantedBy(_context?: BaseDataContext): SecurityRoleGrantsPermission[] {\r\n if (this.__IsGrantedBy)\r\n return this.__IsGrantedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsGrantedBy), (id) => context.get(id) as SecurityRoleGrantsPermission);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsGrantedBy(values: SecurityRoleGrantsPermission[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsGrantedBy = values;\r\n }\r\n get _IsGrantedBy(): Set {\r\n if (!this._relationships.has(\"IsGrantedBy\"))\r\n this._relationships.set(\"IsGrantedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsGrantedBy\");\r\n }\r\n set _IsGrantedBy(values: Set) {\r\n this._relationships.set(\"IsGrantedBy\", values);\r\n }\r\n\r\n // Relationship Requires, returns Permission PermissionRequiresPermission[]\r\n private __Requires: PermissionRequiresPermission[];\r\n Requires(_context?: BaseDataContext): PermissionRequiresPermission[] {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Requires), (id) => context.get(id) as PermissionRequiresPermission);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRequires(values: PermissionRequiresPermission[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Requires = values;\r\n }\r\n get _Requires(): Set {\r\n if (!this._relationships.has(\"Requires\"))\r\n this._relationships.set(\"Requires\", new Set());\r\n\r\n return this._relationships.get(\"Requires\");\r\n }\r\n set _Requires(values: Set) {\r\n this._relationships.set(\"Requires\", values);\r\n }\r\n\r\n // Relationship Secures, returns Feature PermissionSecuresFeature[]\r\n private __Secures: PermissionSecuresFeature[];\r\n Secures(_context?: BaseDataContext): PermissionSecuresFeature[] {\r\n if (this.__Secures)\r\n return this.__Secures;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Secures), (id) => context.get(id) as PermissionSecuresFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSecures(values: PermissionSecuresFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Secures = values;\r\n }\r\n get _Secures(): Set {\r\n if (!this._relationships.has(\"Secures\"))\r\n this._relationships.set(\"Secures\", new Set());\r\n\r\n return this._relationships.get(\"Secures\");\r\n }\r\n set _Secures(values: Set) {\r\n this._relationships.set(\"Secures\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsRequiredBy',\r\n edgeType: PermissionRequiresPermission,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Permission,\r\n },\r\n {\r\n propertyName: 'IsGrantedBy',\r\n edgeType: SecurityRoleGrantsPermission,\r\n otherVertexPropertyName: 'Grants',\r\n otherVertexType: SecurityRole,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Requires',\r\n edgeType: PermissionRequiresPermission,\r\n otherVertexPropertyName: 'IsRequiredBy',\r\n otherVertexType: Permission,\r\n },\r\n {\r\n propertyName: 'Secures',\r\n edgeType: PermissionSecuresFeature,\r\n otherVertexPropertyName: 'IsSecuredBy',\r\n otherVertexType: Feature,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Permission {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Permission) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IsRequiredBy: ModelUtils.serializeShallowEdge(model.IsRequiredBy(), 'IsRequiredBy'),\r\n IsGrantedBy: ModelUtils.serializeShallowEdge(model.IsGrantedBy(), 'IsGrantedBy'),\r\n Requires: ModelUtils.serializeShallowEdge(model.Requires(), 'Requires'),\r\n Secures: ModelUtils.serializeShallowEdge(model.Secures(), 'Secures'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Permission {\r\n let clone = new Permission();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsRequiredBy = _.cloneDeep(this._IsRequiredBy);\r\n clone._IsGrantedBy = _.cloneDeep(this._IsGrantedBy);\r\n clone._Requires = _.cloneDeep(this._Requires);\r\n clone._Secures = _.cloneDeep(this._Secures);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class PermissionRequiresPermission extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"PermissionRequiresPermission\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Permission\r\n private __IsRequiredBy: Permission;\r\n\r\n IsRequiredBy(context?: BaseDataContext): Permission {\r\n if (this.__IsRequiredBy)\r\n return this.__IsRequiredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRequiredBy) as Permission;\r\n }\r\n setIsRequiredBy(value: Permission) {\r\n this.__IsRequiredBy = value;\r\n }\r\n get _IsRequiredBy(): string {\r\n return this.Out;\r\n }\r\n set _IsRequiredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Permission\r\n private __Requires: Permission;\r\n\r\n Requires(context?: BaseDataContext): Permission {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Requires) as Permission;\r\n }\r\n setRequires(value: Permission) {\r\n this.__Requires = value;\r\n }\r\n get _Requires(): string {\r\n return this.In;\r\n }\r\n set _Requires(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PermissionRequiresPermission {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PermissionRequiresPermission {\r\n let clone = new PermissionRequiresPermission();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class PermissionSecuresFeature extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"PermissionSecuresFeature\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Permission\r\n private __IsSecuredBy: Permission;\r\n\r\n IsSecuredBy(context?: BaseDataContext): Permission {\r\n if (this.__IsSecuredBy)\r\n return this.__IsSecuredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSecuredBy) as Permission;\r\n }\r\n setIsSecuredBy(value: Permission) {\r\n this.__IsSecuredBy = value;\r\n }\r\n get _IsSecuredBy(): string {\r\n return this.Out;\r\n }\r\n set _IsSecuredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Feature\r\n private __Secures: Feature;\r\n\r\n Secures(context?: BaseDataContext): Feature {\r\n if (this.__Secures)\r\n return this.__Secures;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Secures) as Feature;\r\n }\r\n setSecures(value: Feature) {\r\n this.__Secures = value;\r\n }\r\n get _Secures(): string {\r\n return this.In;\r\n }\r\n set _Secures(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PermissionSecuresFeature {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PermissionSecuresFeature {\r\n let clone = new PermissionSecuresFeature();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IPersona {\r\n Id: string,\r\n Name: string,\r\n MenuLabel: string,\r\n ApplicationUrl: string,\r\n\r\n IsPerformedBy?: object[],\r\n Experiences?: object[]\r\n\r\n}\r\n\r\nexport class Persona extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Persona\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Persona }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get MenuLabel(): string {\r\n return this.data.MenuLabel;\r\n }\r\n set MenuLabel(value: string) {\r\n this.data.MenuLabel = value;\r\n }\r\n get ApplicationUrl(): string {\r\n return this.data.ApplicationUrl;\r\n }\r\n set ApplicationUrl(value: string) {\r\n this.data.ApplicationUrl = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPerformedBy, returns User UserActsAsPersona[]\r\n private __IsPerformedBy: UserActsAsPersona[];\r\n IsPerformedBy(_context?: BaseDataContext): UserActsAsPersona[] {\r\n if (this.__IsPerformedBy)\r\n return this.__IsPerformedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPerformedBy), (id) => context.get(id) as UserActsAsPersona);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPerformedBy(values: UserActsAsPersona[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPerformedBy = values;\r\n }\r\n get _IsPerformedBy(): Set {\r\n if (!this._relationships.has(\"IsPerformedBy\"))\r\n this._relationships.set(\"IsPerformedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPerformedBy\");\r\n }\r\n set _IsPerformedBy(values: Set) {\r\n this._relationships.set(\"IsPerformedBy\", values);\r\n }\r\n\r\n // Relationship Experiences, returns Tenant PersonaExperiencesTenant[]\r\n private __Experiences: PersonaExperiencesTenant[];\r\n Experiences(_context?: BaseDataContext): PersonaExperiencesTenant[] {\r\n if (this.__Experiences)\r\n return this.__Experiences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Experiences), (id) => context.get(id) as PersonaExperiencesTenant);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setExperiences(values: PersonaExperiencesTenant[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Experiences = values;\r\n }\r\n get _Experiences(): Set {\r\n if (!this._relationships.has(\"Experiences\"))\r\n this._relationships.set(\"Experiences\", new Set());\r\n\r\n return this._relationships.get(\"Experiences\");\r\n }\r\n set _Experiences(values: Set) {\r\n this._relationships.set(\"Experiences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPerformedBy',\r\n edgeType: UserActsAsPersona,\r\n otherVertexPropertyName: 'ActsAs',\r\n otherVertexType: User,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Experiences',\r\n edgeType: PersonaExperiencesTenant,\r\n otherVertexPropertyName: 'IsExperienceFor',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Persona {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Persona) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n MenuLabel: model.MenuLabel,\r\n ApplicationUrl: model.ApplicationUrl,\r\n IsPerformedBy: ModelUtils.serializeShallowEdge(model.IsPerformedBy(), 'IsPerformedBy'),\r\n Experiences: ModelUtils.serializeShallowEdge(model.Experiences(), 'Experiences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Persona {\r\n let clone = new Persona();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPerformedBy = _.cloneDeep(this._IsPerformedBy);\r\n clone._Experiences = _.cloneDeep(this._Experiences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class PersonaExperiencesTenant extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"PersonaExperiencesTenant\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Persona\r\n private __IsExperienceFor: Persona;\r\n\r\n IsExperienceFor(context?: BaseDataContext): Persona {\r\n if (this.__IsExperienceFor)\r\n return this.__IsExperienceFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsExperienceFor) as Persona;\r\n }\r\n setIsExperienceFor(value: Persona) {\r\n this.__IsExperienceFor = value;\r\n }\r\n get _IsExperienceFor(): string {\r\n return this.Out;\r\n }\r\n set _IsExperienceFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Tenant\r\n private __Experiences: Tenant;\r\n\r\n Experiences(context?: BaseDataContext): Tenant {\r\n if (this.__Experiences)\r\n return this.__Experiences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Experiences) as Tenant;\r\n }\r\n setExperiences(value: Tenant) {\r\n this.__Experiences = value;\r\n }\r\n get _Experiences(): string {\r\n return this.In;\r\n }\r\n set _Experiences(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PersonaExperiencesTenant {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PersonaExperiencesTenant {\r\n let clone = new PersonaExperiencesTenant();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ISecurityRole {\r\n Id: string,\r\n\r\n IsFilledBy?: object[],\r\n Grants?: object[]\r\n\r\n}\r\n\r\nexport class SecurityRole extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"SecurityRole\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof SecurityRole }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsFilledBy, returns AdminUser AdminUserFillsSecurityRole[]\r\n private __IsFilledBy: AdminUserFillsSecurityRole[];\r\n IsFilledBy(_context?: BaseDataContext): AdminUserFillsSecurityRole[] {\r\n if (this.__IsFilledBy)\r\n return this.__IsFilledBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsFilledBy), (id) => context.get(id) as AdminUserFillsSecurityRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsFilledBy(values: AdminUserFillsSecurityRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsFilledBy = values;\r\n }\r\n get _IsFilledBy(): Set {\r\n if (!this._relationships.has(\"IsFilledBy\"))\r\n this._relationships.set(\"IsFilledBy\", new Set());\r\n\r\n return this._relationships.get(\"IsFilledBy\");\r\n }\r\n set _IsFilledBy(values: Set) {\r\n this._relationships.set(\"IsFilledBy\", values);\r\n }\r\n\r\n // Relationship Grants, returns Permission SecurityRoleGrantsPermission[]\r\n private __Grants: SecurityRoleGrantsPermission[];\r\n Grants(_context?: BaseDataContext): SecurityRoleGrantsPermission[] {\r\n if (this.__Grants)\r\n return this.__Grants;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Grants), (id) => context.get(id) as SecurityRoleGrantsPermission);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setGrants(values: SecurityRoleGrantsPermission[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Grants = values;\r\n }\r\n get _Grants(): Set {\r\n if (!this._relationships.has(\"Grants\"))\r\n this._relationships.set(\"Grants\", new Set());\r\n\r\n return this._relationships.get(\"Grants\");\r\n }\r\n set _Grants(values: Set) {\r\n this._relationships.set(\"Grants\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsFilledBy',\r\n edgeType: AdminUserFillsSecurityRole,\r\n otherVertexPropertyName: 'FillsSecurityRole',\r\n otherVertexType: AdminUser,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Grants',\r\n edgeType: SecurityRoleGrantsPermission,\r\n otherVertexPropertyName: 'IsGrantedBy',\r\n otherVertexType: Permission,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): SecurityRole {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: SecurityRole) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IsFilledBy: ModelUtils.serializeShallowEdge(model.IsFilledBy(), 'IsFilledBy'),\r\n Grants: ModelUtils.serializeShallowEdge(model.Grants(), 'Grants'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SecurityRole {\r\n let clone = new SecurityRole();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsFilledBy = _.cloneDeep(this._IsFilledBy);\r\n clone._Grants = _.cloneDeep(this._Grants);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class SecurityRoleGrantsPermission extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"SecurityRoleGrantsPermission\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SecurityRole\r\n private __IsGrantedBy: SecurityRole;\r\n\r\n IsGrantedBy(context?: BaseDataContext): SecurityRole {\r\n if (this.__IsGrantedBy)\r\n return this.__IsGrantedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsGrantedBy) as SecurityRole;\r\n }\r\n setIsGrantedBy(value: SecurityRole) {\r\n this.__IsGrantedBy = value;\r\n }\r\n get _IsGrantedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsGrantedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Permission\r\n private __Grants: Permission;\r\n\r\n Grants(context?: BaseDataContext): Permission {\r\n if (this.__Grants)\r\n return this.__Grants;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Grants) as Permission;\r\n }\r\n setGrants(value: Permission) {\r\n this.__Grants = value;\r\n }\r\n get _Grants(): string {\r\n return this.In;\r\n }\r\n set _Grants(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SecurityRoleGrantsPermission {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SecurityRoleGrantsPermission {\r\n let clone = new SecurityRoleGrantsPermission();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ISMIdentity {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n\r\n IsPermittedFor?: object[],\r\n Represents?: object[]\r\n\r\n}\r\n\r\nexport class SMIdentity extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentity\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof SMIdentity }[] = [\r\n {className: 'AdminUser', type: AdminUser},\r\n {className: 'User', type: User},\r\n {className: 'App', type: App},\r\n {className: 'Contact', type: Contact},\r\n {className: 'Developer', type: Developer},\r\n {className: 'TenantUser', type: TenantUser},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DisplayName(): string {\r\n return this.data.DisplayName;\r\n }\r\n set DisplayName(value: string) {\r\n this.data.DisplayName = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n get LastLoginDate(): Date {\r\n return this.data.LastLoginDate ? new Date(this.data.LastLoginDate) : undefined;\r\n }\r\n set LastLoginDate(value: Date) {\r\n this.data.LastLoginDate = value;\r\n }\r\n get IsActive(): boolean {\r\n return this.data.IsActive;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPermittedFor, returns Tenant TenantPermitsIdentity[]\r\n private __IsPermittedFor: TenantPermitsIdentity[];\r\n IsPermittedFor(_context?: BaseDataContext): TenantPermitsIdentity[] {\r\n if (this.__IsPermittedFor)\r\n return this.__IsPermittedFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPermittedFor), (id) => context.get(id) as TenantPermitsIdentity);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPermittedFor(values: TenantPermitsIdentity[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPermittedFor = values;\r\n }\r\n get _IsPermittedFor(): Set {\r\n if (!this._relationships.has(\"IsPermittedFor\"))\r\n this._relationships.set(\"IsPermittedFor\", new Set());\r\n\r\n return this._relationships.get(\"IsPermittedFor\");\r\n }\r\n set _IsPermittedFor(values: Set) {\r\n this._relationships.set(\"IsPermittedFor\", values);\r\n }\r\n\r\n // Relationship Represents, returns Organization IdentityRepresentsOrganization[]\r\n private __Represents: IdentityRepresentsOrganization[];\r\n Represents(_context?: BaseDataContext): IdentityRepresentsOrganization[] {\r\n if (this.__Represents)\r\n return this.__Represents;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Represents), (id) => context.get(id) as IdentityRepresentsOrganization);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRepresents(values: IdentityRepresentsOrganization[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Represents = values;\r\n }\r\n get _Represents(): Set {\r\n if (!this._relationships.has(\"Represents\"))\r\n this._relationships.set(\"Represents\", new Set());\r\n\r\n return this._relationships.get(\"Represents\");\r\n }\r\n set _Represents(values: Set) {\r\n this._relationships.set(\"Represents\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): SMIdentity {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: SMIdentity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SMIdentity {\r\n let clone = new SMIdentity();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITenant {\r\n Id: string,\r\n Key: string,\r\n Summary?: string,\r\n Description: string,\r\n readonly Mode: string,\r\n FeatureFacets?: { [index: string]: boolean },\r\n SubscriptionKey?: string,\r\n LastAccessed?: Date,\r\n SalesforceCustomerId?: string,\r\n\r\n IsOwnedBy?: object[],\r\n IsExperienceFor?: object[],\r\n DeploysTo?: object[],\r\n Enables?: object[],\r\n Permits?: object[],\r\n SubscribesTo?: object[]\r\n\r\n}\r\n\r\nexport class Tenant extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Tenant\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Tenant }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Key(): string {\r\n return this.data.Key;\r\n }\r\n set Key(value: string) {\r\n this.data.Key = value;\r\n }\r\n get Summary(): string {\r\n return this.data.Summary;\r\n }\r\n set Summary(value: string) {\r\n this.data.Summary = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Mode(): string {\r\n return this.data.Mode;\r\n }\r\n get FeatureFacets(): { [index: string]: boolean } {\r\n return this.data.FeatureFacets;\r\n }\r\n set FeatureFacets(value: { [index: string]: boolean }) {\r\n this.data.FeatureFacets = value;\r\n }\r\n get SubscriptionKey(): string {\r\n return this.data.SubscriptionKey;\r\n }\r\n set SubscriptionKey(value: string) {\r\n this.data.SubscriptionKey = value;\r\n }\r\n get LastAccessed(): Date {\r\n return this.data.LastAccessed ? new Date(this.data.LastAccessed) : undefined;\r\n }\r\n set LastAccessed(value: Date) {\r\n this.data.LastAccessed = value;\r\n }\r\n get SalesforceCustomerId(): string {\r\n return this.data.SalesforceCustomerId;\r\n }\r\n set SalesforceCustomerId(value: string) {\r\n this.data.SalesforceCustomerId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsOwnedBy, returns Organization OrganizationOwnsTenant[]\r\n private __IsOwnedBy: OrganizationOwnsTenant[];\r\n IsOwnedBy(_context?: BaseDataContext): OrganizationOwnsTenant[] {\r\n if (this.__IsOwnedBy)\r\n return this.__IsOwnedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsOwnedBy), (id) => context.get(id) as OrganizationOwnsTenant);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsOwnedBy(values: OrganizationOwnsTenant[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsOwnedBy = values;\r\n }\r\n get _IsOwnedBy(): Set {\r\n if (!this._relationships.has(\"IsOwnedBy\"))\r\n this._relationships.set(\"IsOwnedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsOwnedBy\");\r\n }\r\n set _IsOwnedBy(values: Set) {\r\n this._relationships.set(\"IsOwnedBy\", values);\r\n }\r\n\r\n // Relationship IsExperienceFor, returns Persona PersonaExperiencesTenant[]\r\n private __IsExperienceFor: PersonaExperiencesTenant[];\r\n IsExperienceFor(_context?: BaseDataContext): PersonaExperiencesTenant[] {\r\n if (this.__IsExperienceFor)\r\n return this.__IsExperienceFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsExperienceFor), (id) => context.get(id) as PersonaExperiencesTenant);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsExperienceFor(values: PersonaExperiencesTenant[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsExperienceFor = values;\r\n }\r\n get _IsExperienceFor(): Set {\r\n if (!this._relationships.has(\"IsExperienceFor\"))\r\n this._relationships.set(\"IsExperienceFor\", new Set());\r\n\r\n return this._relationships.get(\"IsExperienceFor\");\r\n }\r\n set _IsExperienceFor(values: Set) {\r\n this._relationships.set(\"IsExperienceFor\", values);\r\n }\r\n\r\n // Relationship DeploysTo, returns TenantArea TenantDeploysToArea[]\r\n private __DeploysTo: TenantDeploysToArea[];\r\n DeploysTo(_context?: BaseDataContext): TenantDeploysToArea[] {\r\n if (this.__DeploysTo)\r\n return this.__DeploysTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeploysTo), (id) => context.get(id) as TenantDeploysToArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeploysTo(values: TenantDeploysToArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeploysTo = values;\r\n }\r\n get _DeploysTo(): Set {\r\n if (!this._relationships.has(\"DeploysTo\"))\r\n this._relationships.set(\"DeploysTo\", new Set());\r\n\r\n return this._relationships.get(\"DeploysTo\");\r\n }\r\n set _DeploysTo(values: Set) {\r\n this._relationships.set(\"DeploysTo\", values);\r\n }\r\n\r\n // Relationship Enables, returns TenantFeature TenantEnablesTenantFeature[]\r\n private __Enables: TenantEnablesTenantFeature[];\r\n Enables(_context?: BaseDataContext): TenantEnablesTenantFeature[] {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Enables), (id) => context.get(id) as TenantEnablesTenantFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEnables(values: TenantEnablesTenantFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Enables = values;\r\n }\r\n get _Enables(): Set {\r\n if (!this._relationships.has(\"Enables\"))\r\n this._relationships.set(\"Enables\", new Set());\r\n\r\n return this._relationships.get(\"Enables\");\r\n }\r\n set _Enables(values: Set) {\r\n this._relationships.set(\"Enables\", values);\r\n }\r\n\r\n // Relationship Permits, returns SMIdentity TenantPermitsIdentity[]\r\n private __Permits: TenantPermitsIdentity[];\r\n Permits(_context?: BaseDataContext): TenantPermitsIdentity[] {\r\n if (this.__Permits)\r\n return this.__Permits;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Permits), (id) => context.get(id) as TenantPermitsIdentity);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPermits(values: TenantPermitsIdentity[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Permits = values;\r\n }\r\n get _Permits(): Set {\r\n if (!this._relationships.has(\"Permits\"))\r\n this._relationships.set(\"Permits\", new Set());\r\n\r\n return this._relationships.get(\"Permits\");\r\n }\r\n set _Permits(values: Set) {\r\n this._relationships.set(\"Permits\", values);\r\n }\r\n\r\n // Relationship SubscribesTo, returns TenantModule TenantSubscribesToTenantModule[]\r\n private __SubscribesTo: TenantSubscribesToTenantModule[];\r\n SubscribesTo(_context?: BaseDataContext): TenantSubscribesToTenantModule[] {\r\n if (this.__SubscribesTo)\r\n return this.__SubscribesTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._SubscribesTo), (id) => context.get(id) as TenantSubscribesToTenantModule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSubscribesTo(values: TenantSubscribesToTenantModule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__SubscribesTo = values;\r\n }\r\n get _SubscribesTo(): Set {\r\n if (!this._relationships.has(\"SubscribesTo\"))\r\n this._relationships.set(\"SubscribesTo\", new Set());\r\n\r\n return this._relationships.get(\"SubscribesTo\");\r\n }\r\n set _SubscribesTo(values: Set) {\r\n this._relationships.set(\"SubscribesTo\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsOwnedBy',\r\n edgeType: OrganizationOwnsTenant,\r\n otherVertexPropertyName: 'Owns',\r\n otherVertexType: Organization,\r\n },\r\n {\r\n propertyName: 'IsExperienceFor',\r\n edgeType: PersonaExperiencesTenant,\r\n otherVertexPropertyName: 'Experiences',\r\n otherVertexType: Persona,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'DeploysTo',\r\n edgeType: TenantDeploysToArea,\r\n otherVertexPropertyName: 'IsFor',\r\n otherVertexType: TenantArea,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: TenantEnablesTenantFeature,\r\n otherVertexPropertyName: 'IsEnabledBy',\r\n otherVertexType: TenantFeature,\r\n },\r\n {\r\n propertyName: 'Permits',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'IsPermittedFor',\r\n otherVertexType: SMIdentity,\r\n },\r\n {\r\n propertyName: 'SubscribesTo',\r\n edgeType: TenantSubscribesToTenantModule,\r\n otherVertexPropertyName: 'IsSubscribedBy',\r\n otherVertexType: TenantModule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Tenant {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Tenant) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Key: model.Key,\r\n Summary: model.Summary,\r\n Description: model.Description,\r\n Mode: model.Mode,\r\n FeatureFacets: model.FeatureFacets,\r\n SubscriptionKey: model.SubscriptionKey,\r\n LastAccessed: model.LastAccessed,\r\n SalesforceCustomerId: model.SalesforceCustomerId,\r\n IsOwnedBy: ModelUtils.serializeShallowEdge(model.IsOwnedBy(), 'IsOwnedBy'),\r\n IsExperienceFor: ModelUtils.serializeShallowEdge(model.IsExperienceFor(), 'IsExperienceFor'),\r\n DeploysTo: ModelUtils.serializeShallowEdge(model.DeploysTo(), 'DeploysTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n Permits: ModelUtils.serializeShallowEdge(model.Permits(), 'Permits'),\r\n SubscribesTo: ModelUtils.serializeShallowEdge(model.SubscribesTo(), 'SubscribesTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Tenant {\r\n let clone = new Tenant();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsOwnedBy = _.cloneDeep(this._IsOwnedBy);\r\n clone._IsExperienceFor = _.cloneDeep(this._IsExperienceFor);\r\n clone._DeploysTo = _.cloneDeep(this._DeploysTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n clone._Permits = _.cloneDeep(this._Permits);\r\n clone._SubscribesTo = _.cloneDeep(this._SubscribesTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class TenantActivity extends DocumentModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantActivity\";\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Message(): string {\r\n return this.data.Message;\r\n }\r\n set Message(value: string) {\r\n this.data.Message = value;\r\n }\r\n get TenantKey(): string {\r\n return this.data.TenantKey;\r\n }\r\n set TenantKey(value: string) {\r\n this.data.TenantKey = value;\r\n }\r\n get AreaName(): string {\r\n return this.data.AreaName;\r\n }\r\n set AreaName(value: string) {\r\n this.data.AreaName = value;\r\n }\r\n get EventName(): string {\r\n return this.data.EventName;\r\n }\r\n set EventName(value: string) {\r\n this.data.EventName = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get ActivityTime(): Date {\r\n return this.data.ActivityTime ? new Date(this.data.ActivityTime) : undefined;\r\n }\r\n set ActivityTime(value: Date) {\r\n this.data.ActivityTime = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): TenantActivity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: TenantActivity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Message: model.Message,\r\n TenantKey: model.TenantKey,\r\n AreaName: model.AreaName,\r\n EventName: model.EventName,\r\n IdentityKey: model.IdentityKey,\r\n ActivityTime: model.ActivityTime,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantActivity {\r\n let clone = new TenantActivity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ITenantArea {\r\n Id: string,\r\n Name: string,\r\n TenantKey: string,\r\n Description: string,\r\n readonly Mode: string,\r\n readonly IsProduction: boolean,\r\n readonly LastAccessed?: Date,\r\n readonly Tier?: string,\r\n readonly CustomDatabaseThroughputRUs?: number,\r\n Alias?: string,\r\n readonly Order: number,\r\n readonly RebuildApprovals?: any[],\r\n readonly DeleteApprovals?: any[],\r\n readonly CollectionDeleted?: boolean,\r\n FeatureFacets?: { [index: string]: boolean }\r\n\r\n IsFor?: object[],\r\n IsWorkedBy?: object[]\r\n\r\n}\r\n\r\nexport class TenantArea extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantArea\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TenantArea }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get TenantKey(): string {\r\n return this.data.TenantKey;\r\n }\r\n set TenantKey(value: string) {\r\n this.data.TenantKey = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Mode(): string {\r\n return this.data.Mode;\r\n }\r\n get IsProduction(): boolean {\r\n return this.data.IsProduction;\r\n }\r\n get LastAccessed(): Date {\r\n return this.data.LastAccessed ? new Date(this.data.LastAccessed) : undefined;\r\n }\r\n get Tier(): string {\r\n return this.data.Tier;\r\n }\r\n get CustomDatabaseThroughputRUs(): number {\r\n return this.data.CustomDatabaseThroughputRUs;\r\n }\r\n get Alias(): string {\r\n return this.data.Alias;\r\n }\r\n set Alias(value: string) {\r\n this.data.Alias = value;\r\n }\r\n get Order(): number {\r\n return this.data.Order;\r\n }\r\n get RebuildApprovals(): any[] {\r\n return this.data.RebuildApprovals;\r\n }\r\n get DeleteApprovals(): any[] {\r\n return this.data.DeleteApprovals;\r\n }\r\n get CollectionDeleted(): boolean {\r\n return this.data.CollectionDeleted;\r\n }\r\n get FeatureFacets(): { [index: string]: boolean } {\r\n return this.data.FeatureFacets;\r\n }\r\n set FeatureFacets(value: { [index: string]: boolean }) {\r\n this.data.FeatureFacets = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsFor, returns Tenant TenantDeploysToArea[]\r\n private __IsFor: TenantDeploysToArea[];\r\n IsFor(_context?: BaseDataContext): TenantDeploysToArea[] {\r\n if (this.__IsFor)\r\n return this.__IsFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsFor), (id) => context.get(id) as TenantDeploysToArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsFor(values: TenantDeploysToArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsFor = values;\r\n }\r\n get _IsFor(): Set {\r\n if (!this._relationships.has(\"IsFor\"))\r\n this._relationships.set(\"IsFor\", new Set());\r\n\r\n return this._relationships.get(\"IsFor\");\r\n }\r\n set _IsFor(values: Set) {\r\n this._relationships.set(\"IsFor\", values);\r\n }\r\n\r\n // Relationship IsWorkedBy, returns TenantUser TenantUserWorksInArea[]\r\n private __IsWorkedBy: TenantUserWorksInArea[];\r\n IsWorkedBy(_context?: BaseDataContext): TenantUserWorksInArea[] {\r\n if (this.__IsWorkedBy)\r\n return this.__IsWorkedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWorkedBy), (id) => context.get(id) as TenantUserWorksInArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWorkedBy(values: TenantUserWorksInArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWorkedBy = values;\r\n }\r\n get _IsWorkedBy(): Set {\r\n if (!this._relationships.has(\"IsWorkedBy\"))\r\n this._relationships.set(\"IsWorkedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsWorkedBy\");\r\n }\r\n set _IsWorkedBy(values: Set) {\r\n this._relationships.set(\"IsWorkedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsFor',\r\n edgeType: TenantDeploysToArea,\r\n otherVertexPropertyName: 'DeploysTo',\r\n otherVertexType: Tenant,\r\n },\r\n {\r\n propertyName: 'IsWorkedBy',\r\n edgeType: TenantUserWorksInArea,\r\n otherVertexPropertyName: 'WorksIn',\r\n otherVertexType: TenantUser,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TenantArea {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TenantArea) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n TenantKey: model.TenantKey,\r\n Description: model.Description,\r\n Mode: model.Mode,\r\n IsProduction: model.IsProduction,\r\n LastAccessed: model.LastAccessed,\r\n Tier: model.Tier,\r\n CustomDatabaseThroughputRUs: model.CustomDatabaseThroughputRUs,\r\n Alias: model.Alias,\r\n Order: model.Order,\r\n RebuildApprovals: model.RebuildApprovals,\r\n DeleteApprovals: model.DeleteApprovals,\r\n CollectionDeleted: model.CollectionDeleted,\r\n FeatureFacets: model.FeatureFacets,\r\n IsFor: ModelUtils.serializeShallowEdge(model.IsFor(), 'IsFor'),\r\n IsWorkedBy: ModelUtils.serializeShallowEdge(model.IsWorkedBy(), 'IsWorkedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantArea {\r\n let clone = new TenantArea();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsFor = _.cloneDeep(this._IsFor);\r\n clone._IsWorkedBy = _.cloneDeep(this._IsWorkedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class TenantDeploysToArea extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantDeploysToArea\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Tenant\r\n private __IsFor: Tenant;\r\n\r\n IsFor(context?: BaseDataContext): Tenant {\r\n if (this.__IsFor)\r\n return this.__IsFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsFor) as Tenant;\r\n }\r\n setIsFor(value: Tenant) {\r\n this.__IsFor = value;\r\n }\r\n get _IsFor(): string {\r\n return this.Out;\r\n }\r\n set _IsFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantArea\r\n private __DeploysTo: TenantArea;\r\n\r\n DeploysTo(context?: BaseDataContext): TenantArea {\r\n if (this.__DeploysTo)\r\n return this.__DeploysTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeploysTo) as TenantArea;\r\n }\r\n setDeploysTo(value: TenantArea) {\r\n this.__DeploysTo = value;\r\n }\r\n get _DeploysTo(): string {\r\n return this.In;\r\n }\r\n set _DeploysTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantDeploysToArea {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantDeploysToArea {\r\n let clone = new TenantDeploysToArea();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TenantEnablesTenantFeature extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantEnablesTenantFeature\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Tenant\r\n private __IsEnabledBy: Tenant;\r\n\r\n IsEnabledBy(context?: BaseDataContext): Tenant {\r\n if (this.__IsEnabledBy)\r\n return this.__IsEnabledBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEnabledBy) as Tenant;\r\n }\r\n setIsEnabledBy(value: Tenant) {\r\n this.__IsEnabledBy = value;\r\n }\r\n get _IsEnabledBy(): string {\r\n return this.Out;\r\n }\r\n set _IsEnabledBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantFeature\r\n private __Enables: TenantFeature;\r\n\r\n Enables(context?: BaseDataContext): TenantFeature {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Enables) as TenantFeature;\r\n }\r\n setEnables(value: TenantFeature) {\r\n this.__Enables = value;\r\n }\r\n get _Enables(): string {\r\n return this.In;\r\n }\r\n set _Enables(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantEnablesTenantFeature {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantEnablesTenantFeature {\r\n let clone = new TenantEnablesTenantFeature();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ITenantFeature {\r\n Id: string\r\n\r\n IsEnabledBy?: object[],\r\n IsProvidedBy?: object[]\r\n\r\n}\r\n\r\nexport class TenantFeature extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantFeature\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TenantFeature }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEnabledBy, returns Tenant TenantEnablesTenantFeature[]\r\n private __IsEnabledBy: TenantEnablesTenantFeature[];\r\n IsEnabledBy(_context?: BaseDataContext): TenantEnablesTenantFeature[] {\r\n if (this.__IsEnabledBy)\r\n return this.__IsEnabledBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEnabledBy), (id) => context.get(id) as TenantEnablesTenantFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEnabledBy(values: TenantEnablesTenantFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEnabledBy = values;\r\n }\r\n get _IsEnabledBy(): Set {\r\n if (!this._relationships.has(\"IsEnabledBy\"))\r\n this._relationships.set(\"IsEnabledBy\", new Set());\r\n\r\n return this._relationships.get(\"IsEnabledBy\");\r\n }\r\n set _IsEnabledBy(values: Set) {\r\n this._relationships.set(\"IsEnabledBy\", values);\r\n }\r\n\r\n // Relationship IsProvidedBy, returns TenantModule TenantModuleProvidesTenantFeature[]\r\n private __IsProvidedBy: TenantModuleProvidesTenantFeature[];\r\n IsProvidedBy(_context?: BaseDataContext): TenantModuleProvidesTenantFeature[] {\r\n if (this.__IsProvidedBy)\r\n return this.__IsProvidedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsProvidedBy), (id) => context.get(id) as TenantModuleProvidesTenantFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsProvidedBy(values: TenantModuleProvidesTenantFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsProvidedBy = values;\r\n }\r\n get _IsProvidedBy(): Set {\r\n if (!this._relationships.has(\"IsProvidedBy\"))\r\n this._relationships.set(\"IsProvidedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsProvidedBy\");\r\n }\r\n set _IsProvidedBy(values: Set) {\r\n this._relationships.set(\"IsProvidedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: TenantEnablesTenantFeature,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Tenant,\r\n },\r\n {\r\n propertyName: 'IsProvidedBy',\r\n edgeType: TenantModuleProvidesTenantFeature,\r\n otherVertexPropertyName: 'Provides',\r\n otherVertexType: TenantModule,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TenantFeature {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TenantFeature) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsProvidedBy: ModelUtils.serializeShallowEdge(model.IsProvidedBy(), 'IsProvidedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantFeature {\r\n let clone = new TenantFeature();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsProvidedBy = _.cloneDeep(this._IsProvidedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITenantModule {\r\n Id: string,\r\n\r\n IsSubscribedBy?: object[],\r\n Provides?: object[]\r\n\r\n}\r\n\r\nexport class TenantModule extends VertexModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantModule\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TenantModule }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsSubscribedBy, returns Tenant TenantSubscribesToTenantModule[]\r\n private __IsSubscribedBy: TenantSubscribesToTenantModule[];\r\n IsSubscribedBy(_context?: BaseDataContext): TenantSubscribesToTenantModule[] {\r\n if (this.__IsSubscribedBy)\r\n return this.__IsSubscribedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSubscribedBy), (id) => context.get(id) as TenantSubscribesToTenantModule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSubscribedBy(values: TenantSubscribesToTenantModule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSubscribedBy = values;\r\n }\r\n get _IsSubscribedBy(): Set {\r\n if (!this._relationships.has(\"IsSubscribedBy\"))\r\n this._relationships.set(\"IsSubscribedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSubscribedBy\");\r\n }\r\n set _IsSubscribedBy(values: Set) {\r\n this._relationships.set(\"IsSubscribedBy\", values);\r\n }\r\n\r\n // Relationship Provides, returns TenantFeature TenantModuleProvidesTenantFeature[]\r\n private __Provides: TenantModuleProvidesTenantFeature[];\r\n Provides(_context?: BaseDataContext): TenantModuleProvidesTenantFeature[] {\r\n if (this.__Provides)\r\n return this.__Provides;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Provides), (id) => context.get(id) as TenantModuleProvidesTenantFeature);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setProvides(values: TenantModuleProvidesTenantFeature[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Provides = values;\r\n }\r\n get _Provides(): Set {\r\n if (!this._relationships.has(\"Provides\"))\r\n this._relationships.set(\"Provides\", new Set());\r\n\r\n return this._relationships.get(\"Provides\");\r\n }\r\n set _Provides(values: Set) {\r\n this._relationships.set(\"Provides\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSubscribedBy',\r\n edgeType: TenantSubscribesToTenantModule,\r\n otherVertexPropertyName: 'SubscribesTo',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Provides',\r\n edgeType: TenantModuleProvidesTenantFeature,\r\n otherVertexPropertyName: 'IsProvidedBy',\r\n otherVertexType: TenantFeature,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TenantModule {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TenantModule) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IsSubscribedBy: ModelUtils.serializeShallowEdge(model.IsSubscribedBy(), 'IsSubscribedBy'),\r\n Provides: ModelUtils.serializeShallowEdge(model.Provides(), 'Provides'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantModule {\r\n let clone = new TenantModule();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSubscribedBy = _.cloneDeep(this._IsSubscribedBy);\r\n clone._Provides = _.cloneDeep(this._Provides);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class TenantModuleProvidesTenantFeature extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantModuleProvidesTenantFeature\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TenantModule\r\n private __IsProvidedBy: TenantModule;\r\n\r\n IsProvidedBy(context?: BaseDataContext): TenantModule {\r\n if (this.__IsProvidedBy)\r\n return this.__IsProvidedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsProvidedBy) as TenantModule;\r\n }\r\n setIsProvidedBy(value: TenantModule) {\r\n this.__IsProvidedBy = value;\r\n }\r\n get _IsProvidedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsProvidedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantFeature\r\n private __Provides: TenantFeature;\r\n\r\n Provides(context?: BaseDataContext): TenantFeature {\r\n if (this.__Provides)\r\n return this.__Provides;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Provides) as TenantFeature;\r\n }\r\n setProvides(value: TenantFeature) {\r\n this.__Provides = value;\r\n }\r\n get _Provides(): string {\r\n return this.In;\r\n }\r\n set _Provides(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantModuleProvidesTenantFeature {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantModuleProvidesTenantFeature {\r\n let clone = new TenantModuleProvidesTenantFeature();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TenantPermitsIdentity extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantPermitsIdentity\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Tenant\r\n private __IsPermittedFor: Tenant;\r\n\r\n IsPermittedFor(context?: BaseDataContext): Tenant {\r\n if (this.__IsPermittedFor)\r\n return this.__IsPermittedFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPermittedFor) as Tenant;\r\n }\r\n setIsPermittedFor(value: Tenant) {\r\n this.__IsPermittedFor = value;\r\n }\r\n get _IsPermittedFor(): string {\r\n return this.Out;\r\n }\r\n set _IsPermittedFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to SMIdentity\r\n private __Permits: SMIdentity;\r\n\r\n Permits(context?: BaseDataContext): SMIdentity {\r\n if (this.__Permits)\r\n return this.__Permits;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Permits) as SMIdentity;\r\n }\r\n setPermits(value: SMIdentity) {\r\n this.__Permits = value;\r\n }\r\n get _Permits(): string {\r\n return this.In;\r\n }\r\n set _Permits(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantPermitsIdentity {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantPermitsIdentity {\r\n let clone = new TenantPermitsIdentity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TenantSubscribesToTenantModule extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantSubscribesToTenantModule\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Tenant\r\n private __IsSubscribedBy: Tenant;\r\n\r\n IsSubscribedBy(context?: BaseDataContext): Tenant {\r\n if (this.__IsSubscribedBy)\r\n return this.__IsSubscribedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSubscribedBy) as Tenant;\r\n }\r\n setIsSubscribedBy(value: Tenant) {\r\n this.__IsSubscribedBy = value;\r\n }\r\n get _IsSubscribedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsSubscribedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantModule\r\n private __SubscribesTo: TenantModule;\r\n\r\n SubscribesTo(context?: BaseDataContext): TenantModule {\r\n if (this.__SubscribesTo)\r\n return this.__SubscribesTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._SubscribesTo) as TenantModule;\r\n }\r\n setSubscribesTo(value: TenantModule) {\r\n this.__SubscribesTo = value;\r\n }\r\n get _SubscribesTo(): string {\r\n return this.In;\r\n }\r\n set _SubscribesTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantSubscribesToTenantModule {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantSubscribesToTenantModule {\r\n let clone = new TenantSubscribesToTenantModule();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TenantUserWorksInArea extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantUserWorksInArea\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TenantUser\r\n private __IsWorkedBy: TenantUser;\r\n\r\n IsWorkedBy(context?: BaseDataContext): TenantUser {\r\n if (this.__IsWorkedBy)\r\n return this.__IsWorkedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWorkedBy) as TenantUser;\r\n }\r\n setIsWorkedBy(value: TenantUser) {\r\n this.__IsWorkedBy = value;\r\n }\r\n get _IsWorkedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsWorkedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantArea\r\n private __WorksIn: TenantArea;\r\n\r\n WorksIn(context?: BaseDataContext): TenantArea {\r\n if (this.__WorksIn)\r\n return this.__WorksIn;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._WorksIn) as TenantArea;\r\n }\r\n setWorksIn(value: TenantArea) {\r\n this.__WorksIn = value;\r\n }\r\n get _WorksIn(): string {\r\n return this.In;\r\n }\r\n set _WorksIn(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantUserWorksInArea {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantUserWorksInArea {\r\n let clone = new TenantUserWorksInArea();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class UserActsAsPersona extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"UserActsAsPersona\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to User\r\n private __IsPerformedBy: User;\r\n\r\n IsPerformedBy(context?: BaseDataContext): User {\r\n if (this.__IsPerformedBy)\r\n return this.__IsPerformedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPerformedBy) as User;\r\n }\r\n setIsPerformedBy(value: User) {\r\n this.__IsPerformedBy = value;\r\n }\r\n get _IsPerformedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPerformedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Persona\r\n private __ActsAs: Persona;\r\n\r\n ActsAs(context?: BaseDataContext): Persona {\r\n if (this.__ActsAs)\r\n return this.__ActsAs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ActsAs) as Persona;\r\n }\r\n setActsAs(value: Persona) {\r\n this.__ActsAs = value;\r\n }\r\n get _ActsAs(): string {\r\n return this.In;\r\n }\r\n set _ActsAs(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): UserActsAsPersona {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): UserActsAsPersona {\r\n let clone = new UserActsAsPersona();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class UserDevelopsAsDeveloper extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"UserDevelopsAsDeveloper\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to User\r\n private __IsDeveloperFor: User;\r\n\r\n IsDeveloperFor(context?: BaseDataContext): User {\r\n if (this.__IsDeveloperFor)\r\n return this.__IsDeveloperFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsDeveloperFor) as User;\r\n }\r\n setIsDeveloperFor(value: User) {\r\n this.__IsDeveloperFor = value;\r\n }\r\n get _IsDeveloperFor(): string {\r\n return this.Out;\r\n }\r\n set _IsDeveloperFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Developer\r\n private __DevelopsAs: Developer;\r\n\r\n DevelopsAs(context?: BaseDataContext): Developer {\r\n if (this.__DevelopsAs)\r\n return this.__DevelopsAs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DevelopsAs) as Developer;\r\n }\r\n setDevelopsAs(value: Developer) {\r\n this.__DevelopsAs = value;\r\n }\r\n get _DevelopsAs(): string {\r\n return this.In;\r\n }\r\n set _DevelopsAs(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): UserDevelopsAsDeveloper {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): UserDevelopsAsDeveloper {\r\n let clone = new UserDevelopsAsDeveloper();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class UserManagesApp extends EdgeModel {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"UserManagesApp\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to User\r\n private __IsManagedBy: User;\r\n\r\n IsManagedBy(context?: BaseDataContext): User {\r\n if (this.__IsManagedBy)\r\n return this.__IsManagedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsManagedBy) as User;\r\n }\r\n setIsManagedBy(value: User) {\r\n this.__IsManagedBy = value;\r\n }\r\n get _IsManagedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsManagedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to App\r\n private __Manages: App;\r\n\r\n Manages(context?: BaseDataContext): App {\r\n if (this.__Manages)\r\n return this.__Manages;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Manages) as App;\r\n }\r\n setManages(value: App) {\r\n this.__Manages = value;\r\n }\r\n get _Manages(): string {\r\n return this.In;\r\n }\r\n set _Manages(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): UserManagesApp {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): UserManagesApp {\r\n let clone = new UserManagesApp();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IApp {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n Description?: string,\r\n readonly ApiManagementSubscriptionPrimaryKey?: string,\r\n readonly ApiManagementSubscriptionSecondaryKey?: string,\r\n\r\n IsManagedBy?: object[],\r\n IsPermittedFor?: object[],\r\n Represents?: object[]\r\n\r\n}\r\n\r\nexport class App extends SMIdentity {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"App\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof App }[] = [\r\n {className: 'Developer', type: Developer},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get ApiManagementSubscriptionPrimaryKey(): string {\r\n return this.data.ApiManagementSubscriptionPrimaryKey;\r\n }\r\n get ApiManagementSubscriptionSecondaryKey(): string {\r\n return this.data.ApiManagementSubscriptionSecondaryKey;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsManagedBy, returns User UserManagesApp[]\r\n private __IsManagedBy: UserManagesApp[];\r\n IsManagedBy(_context?: BaseDataContext): UserManagesApp[] {\r\n if (this.__IsManagedBy)\r\n return this.__IsManagedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsManagedBy), (id) => context.get(id) as UserManagesApp);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsManagedBy(values: UserManagesApp[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsManagedBy = values;\r\n }\r\n get _IsManagedBy(): Set {\r\n if (!this._relationships.has(\"IsManagedBy\"))\r\n this._relationships.set(\"IsManagedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsManagedBy\");\r\n }\r\n set _IsManagedBy(values: Set) {\r\n this._relationships.set(\"IsManagedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsManagedBy',\r\n edgeType: UserManagesApp,\r\n otherVertexPropertyName: 'Manages',\r\n otherVertexType: User,\r\n },\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): App {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: App) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n Description: model.Description,\r\n ApiManagementSubscriptionPrimaryKey: model.ApiManagementSubscriptionPrimaryKey,\r\n ApiManagementSubscriptionSecondaryKey: model.ApiManagementSubscriptionSecondaryKey,\r\n IsManagedBy: ModelUtils.serializeShallowEdge(model.IsManagedBy(), 'IsManagedBy'),\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): App {\r\n let clone = new App();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsManagedBy = _.cloneDeep(this._IsManagedBy);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class TenantUserActivity extends TenantActivity {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantUserActivity\";\r\n }\r\n\r\n // Properties\r\n get AffectedIdentityKey(): string {\r\n return this.data.AffectedIdentityKey;\r\n }\r\n set AffectedIdentityKey(value: string) {\r\n this.data.AffectedIdentityKey = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): TenantUserActivity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: TenantUserActivity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Message: model.Message,\r\n TenantKey: model.TenantKey,\r\n AreaName: model.AreaName,\r\n EventName: model.EventName,\r\n IdentityKey: model.IdentityKey,\r\n ActivityTime: model.ActivityTime,\r\n AffectedIdentityKey: model.AffectedIdentityKey,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantUserActivity {\r\n let clone = new TenantUserActivity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IUser {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n Logon: string,\r\n Name?: { [index: string]: string },\r\n Address?: { [index: string]: string },\r\n Phones?: { [index: string]: any }[],\r\n Emails?: { [index: string]: any }[],\r\n\r\n IsPermittedFor?: object[],\r\n Represents?: object[],\r\n DevelopsAs?: object[],\r\n Manages?: object[],\r\n ActsAs?: object[]\r\n\r\n}\r\n\r\nexport class User extends SMIdentity {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"User\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof User }[] = [\r\n {className: 'AdminUser', type: AdminUser},\r\n {className: 'Contact', type: Contact},\r\n {className: 'TenantUser', type: TenantUser},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Logon(): string {\r\n return this.data.Logon;\r\n }\r\n set Logon(value: string) {\r\n this.data.Logon = value;\r\n }\r\n get Name(): { [index: string]: string } {\r\n return this.data.Name;\r\n }\r\n set Name(value: { [index: string]: string }) {\r\n this.data.Name = value;\r\n }\r\n get Address(): { [index: string]: string } {\r\n return this.data.Address;\r\n }\r\n set Address(value: { [index: string]: string }) {\r\n this.data.Address = value;\r\n }\r\n get Phones(): { [index: string]: any }[] {\r\n return this.data.Phones;\r\n }\r\n set Phones(value: { [index: string]: any }[]) {\r\n this.data.Phones = value;\r\n }\r\n get Emails(): { [index: string]: any }[] {\r\n return this.data.Emails;\r\n }\r\n set Emails(value: { [index: string]: any }[]) {\r\n this.data.Emails = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship DevelopsAs, returns Developer UserDevelopsAsDeveloper[]\r\n private __DevelopsAs: UserDevelopsAsDeveloper[];\r\n DevelopsAs(_context?: BaseDataContext): UserDevelopsAsDeveloper[] {\r\n if (this.__DevelopsAs)\r\n return this.__DevelopsAs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DevelopsAs), (id) => context.get(id) as UserDevelopsAsDeveloper);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDevelopsAs(values: UserDevelopsAsDeveloper[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DevelopsAs = values;\r\n }\r\n get _DevelopsAs(): Set {\r\n if (!this._relationships.has(\"DevelopsAs\"))\r\n this._relationships.set(\"DevelopsAs\", new Set());\r\n\r\n return this._relationships.get(\"DevelopsAs\");\r\n }\r\n set _DevelopsAs(values: Set) {\r\n this._relationships.set(\"DevelopsAs\", values);\r\n }\r\n\r\n // Relationship Manages, returns App UserManagesApp[]\r\n private __Manages: UserManagesApp[];\r\n Manages(_context?: BaseDataContext): UserManagesApp[] {\r\n if (this.__Manages)\r\n return this.__Manages;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Manages), (id) => context.get(id) as UserManagesApp);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setManages(values: UserManagesApp[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Manages = values;\r\n }\r\n get _Manages(): Set {\r\n if (!this._relationships.has(\"Manages\"))\r\n this._relationships.set(\"Manages\", new Set());\r\n\r\n return this._relationships.get(\"Manages\");\r\n }\r\n set _Manages(values: Set) {\r\n this._relationships.set(\"Manages\", values);\r\n }\r\n\r\n // Relationship ActsAs, returns Persona UserActsAsPersona[]\r\n private __ActsAs: UserActsAsPersona[];\r\n ActsAs(_context?: BaseDataContext): UserActsAsPersona[] {\r\n if (this.__ActsAs)\r\n return this.__ActsAs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ActsAs), (id) => context.get(id) as UserActsAsPersona);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setActsAs(values: UserActsAsPersona[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ActsAs = values;\r\n }\r\n get _ActsAs(): Set {\r\n if (!this._relationships.has(\"ActsAs\"))\r\n this._relationships.set(\"ActsAs\", new Set());\r\n\r\n return this._relationships.get(\"ActsAs\");\r\n }\r\n set _ActsAs(values: Set) {\r\n this._relationships.set(\"ActsAs\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n {\r\n propertyName: 'DevelopsAs',\r\n edgeType: UserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'IsDeveloperFor',\r\n otherVertexType: Developer,\r\n },\r\n {\r\n propertyName: 'Manages',\r\n edgeType: UserManagesApp,\r\n otherVertexPropertyName: 'IsManagedBy',\r\n otherVertexType: App,\r\n },\r\n {\r\n propertyName: 'ActsAs',\r\n edgeType: UserActsAsPersona,\r\n otherVertexPropertyName: 'IsPerformedBy',\r\n otherVertexType: Persona,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): User {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: User) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n Logon: model.Logon,\r\n Name: model.Name,\r\n Address: model.Address,\r\n Phones: model.Phones,\r\n Emails: model.Emails,\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n DevelopsAs: ModelUtils.serializeShallowEdge(model.DevelopsAs(), 'DevelopsAs'),\r\n Manages: ModelUtils.serializeShallowEdge(model.Manages(), 'Manages'),\r\n ActsAs: ModelUtils.serializeShallowEdge(model.ActsAs(), 'ActsAs'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): User {\r\n let clone = new User();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n clone._DevelopsAs = _.cloneDeep(this._DevelopsAs);\r\n clone._Manages = _.cloneDeep(this._Manages);\r\n clone._ActsAs = _.cloneDeep(this._ActsAs);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IAdminUser {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n Logon: string,\r\n Name?: { [index: string]: string },\r\n Address?: { [index: string]: string },\r\n Phones?: { [index: string]: any }[],\r\n Emails?: { [index: string]: any }[],\r\n Super?: boolean,\r\n\r\n IsPermittedFor?: object[],\r\n FillsSecurityRole?: object[],\r\n Represents?: object[],\r\n DevelopsAs?: object[],\r\n Manages?: object[],\r\n ActsAs?: object[]\r\n\r\n}\r\n\r\nexport class AdminUser extends User {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"AdminUser\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof AdminUser }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Super(): boolean {\r\n return this.data.Super;\r\n }\r\n set Super(value: boolean) {\r\n this.data.Super = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship FillsSecurityRole, returns SecurityRole AdminUserFillsSecurityRole[]\r\n private __FillsSecurityRole: AdminUserFillsSecurityRole[];\r\n FillsSecurityRole(_context?: BaseDataContext): AdminUserFillsSecurityRole[] {\r\n if (this.__FillsSecurityRole)\r\n return this.__FillsSecurityRole;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._FillsSecurityRole), (id) => context.get(id) as AdminUserFillsSecurityRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setFillsSecurityRole(values: AdminUserFillsSecurityRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__FillsSecurityRole = values;\r\n }\r\n get _FillsSecurityRole(): Set {\r\n if (!this._relationships.has(\"FillsSecurityRole\"))\r\n this._relationships.set(\"FillsSecurityRole\", new Set());\r\n\r\n return this._relationships.get(\"FillsSecurityRole\");\r\n }\r\n set _FillsSecurityRole(values: Set) {\r\n this._relationships.set(\"FillsSecurityRole\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'FillsSecurityRole',\r\n edgeType: AdminUserFillsSecurityRole,\r\n otherVertexPropertyName: 'IsFilledBy',\r\n otherVertexType: SecurityRole,\r\n },\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n {\r\n propertyName: 'DevelopsAs',\r\n edgeType: UserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'IsDeveloperFor',\r\n otherVertexType: Developer,\r\n },\r\n {\r\n propertyName: 'Manages',\r\n edgeType: UserManagesApp,\r\n otherVertexPropertyName: 'IsManagedBy',\r\n otherVertexType: App,\r\n },\r\n {\r\n propertyName: 'ActsAs',\r\n edgeType: UserActsAsPersona,\r\n otherVertexPropertyName: 'IsPerformedBy',\r\n otherVertexType: Persona,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): AdminUser {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: AdminUser) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n Logon: model.Logon,\r\n Name: model.Name,\r\n Address: model.Address,\r\n Phones: model.Phones,\r\n Emails: model.Emails,\r\n Super: model.Super,\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n FillsSecurityRole: ModelUtils.serializeShallowEdge(model.FillsSecurityRole(), 'FillsSecurityRole'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n DevelopsAs: ModelUtils.serializeShallowEdge(model.DevelopsAs(), 'DevelopsAs'),\r\n Manages: ModelUtils.serializeShallowEdge(model.Manages(), 'Manages'),\r\n ActsAs: ModelUtils.serializeShallowEdge(model.ActsAs(), 'ActsAs'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AdminUser {\r\n let clone = new AdminUser();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._FillsSecurityRole = _.cloneDeep(this._FillsSecurityRole);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n clone._DevelopsAs = _.cloneDeep(this._DevelopsAs);\r\n clone._Manages = _.cloneDeep(this._Manages);\r\n clone._ActsAs = _.cloneDeep(this._ActsAs);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IContact {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n Logon: string,\r\n Name?: { [index: string]: string },\r\n Address?: { [index: string]: string },\r\n Phones?: { [index: string]: any }[],\r\n Emails?: { [index: string]: any }[],\r\n\r\n IsPermittedFor?: object[],\r\n Represents?: object[],\r\n DevelopsAs?: object[],\r\n Manages?: object[],\r\n ActsAs?: object[]\r\n\r\n}\r\n\r\nexport class Contact extends User {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Contact\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Contact }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n {\r\n propertyName: 'DevelopsAs',\r\n edgeType: UserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'IsDeveloperFor',\r\n otherVertexType: Developer,\r\n },\r\n {\r\n propertyName: 'Manages',\r\n edgeType: UserManagesApp,\r\n otherVertexPropertyName: 'IsManagedBy',\r\n otherVertexType: App,\r\n },\r\n {\r\n propertyName: 'ActsAs',\r\n edgeType: UserActsAsPersona,\r\n otherVertexPropertyName: 'IsPerformedBy',\r\n otherVertexType: Persona,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Contact {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Contact) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n Logon: model.Logon,\r\n Name: model.Name,\r\n Address: model.Address,\r\n Phones: model.Phones,\r\n Emails: model.Emails,\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n DevelopsAs: ModelUtils.serializeShallowEdge(model.DevelopsAs(), 'DevelopsAs'),\r\n Manages: ModelUtils.serializeShallowEdge(model.Manages(), 'Manages'),\r\n ActsAs: ModelUtils.serializeShallowEdge(model.ActsAs(), 'ActsAs'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Contact {\r\n let clone = new Contact();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n clone._DevelopsAs = _.cloneDeep(this._DevelopsAs);\r\n clone._Manages = _.cloneDeep(this._Manages);\r\n clone._ActsAs = _.cloneDeep(this._ActsAs);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDeveloper {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n Description?: string,\r\n readonly ApiManagementSubscriptionPrimaryKey?: string,\r\n readonly ApiManagementSubscriptionSecondaryKey?: string,\r\n\r\n IsDeveloperFor?: object[],\r\n IsManagedBy?: object[],\r\n IsPermittedFor?: object[],\r\n Represents?: object[]\r\n\r\n}\r\n\r\nexport class Developer extends App {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"Developer\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Developer }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n // Relationship IsDeveloperFor, returns User UserDevelopsAsDeveloper[]\r\n private __IsDeveloperFor: UserDevelopsAsDeveloper[];\r\n IsDeveloperFor(_context?: BaseDataContext): UserDevelopsAsDeveloper[] {\r\n if (this.__IsDeveloperFor)\r\n return this.__IsDeveloperFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsDeveloperFor), (id) => context.get(id) as UserDevelopsAsDeveloper);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsDeveloperFor(values: UserDevelopsAsDeveloper[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsDeveloperFor = values;\r\n }\r\n get _IsDeveloperFor(): Set {\r\n if (!this._relationships.has(\"IsDeveloperFor\"))\r\n this._relationships.set(\"IsDeveloperFor\", new Set());\r\n\r\n return this._relationships.get(\"IsDeveloperFor\");\r\n }\r\n set _IsDeveloperFor(values: Set) {\r\n this._relationships.set(\"IsDeveloperFor\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsDeveloperFor',\r\n edgeType: UserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'DevelopsAs',\r\n otherVertexType: User,\r\n },\r\n {\r\n propertyName: 'IsManagedBy',\r\n edgeType: UserManagesApp,\r\n otherVertexPropertyName: 'Manages',\r\n otherVertexType: User,\r\n },\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Developer {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Developer) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n Description: model.Description,\r\n ApiManagementSubscriptionPrimaryKey: model.ApiManagementSubscriptionPrimaryKey,\r\n ApiManagementSubscriptionSecondaryKey: model.ApiManagementSubscriptionSecondaryKey,\r\n IsDeveloperFor: ModelUtils.serializeShallowEdge(model.IsDeveloperFor(), 'IsDeveloperFor'),\r\n IsManagedBy: ModelUtils.serializeShallowEdge(model.IsManagedBy(), 'IsManagedBy'),\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Developer {\r\n let clone = new Developer();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsDeveloperFor = _.cloneDeep(this._IsDeveloperFor);\r\n clone._IsManagedBy = _.cloneDeep(this._IsManagedBy);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITenantUser {\r\n Id: string,\r\n DisplayName?: string,\r\n readonly CreatedDate?: Date,\r\n LastLoginDate?: Date,\r\n readonly IsActive: boolean,\r\n Logon: string,\r\n Name?: { [index: string]: string },\r\n Address?: { [index: string]: string },\r\n Phones?: { [index: string]: any }[],\r\n Emails?: { [index: string]: any }[],\r\n\r\n IsPermittedFor?: object[],\r\n Represents?: object[],\r\n DevelopsAs?: object[],\r\n Manages?: object[],\r\n WorksIn?: object[],\r\n ActsAs?: object[]\r\n\r\n}\r\n\r\nexport class TenantUser extends User {\r\n get Domain(): string {\r\n return \"Admin\";\r\n }\r\n get Type(): string {\r\n return \"TenantUser\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TenantUser }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n // Relationship WorksIn, returns TenantArea TenantUserWorksInArea[]\r\n private __WorksIn: TenantUserWorksInArea[];\r\n WorksIn(_context?: BaseDataContext): TenantUserWorksInArea[] {\r\n if (this.__WorksIn)\r\n return this.__WorksIn;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._WorksIn), (id) => context.get(id) as TenantUserWorksInArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWorksIn(values: TenantUserWorksInArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__WorksIn = values;\r\n }\r\n get _WorksIn(): Set {\r\n if (!this._relationships.has(\"WorksIn\"))\r\n this._relationships.set(\"WorksIn\", new Set());\r\n\r\n return this._relationships.get(\"WorksIn\");\r\n }\r\n set _WorksIn(values: Set) {\r\n this._relationships.set(\"WorksIn\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPermittedFor',\r\n edgeType: TenantPermitsIdentity,\r\n otherVertexPropertyName: 'Permits',\r\n otherVertexType: Tenant,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Represents',\r\n edgeType: IdentityRepresentsOrganization,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: Organization,\r\n },\r\n {\r\n propertyName: 'DevelopsAs',\r\n edgeType: UserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'IsDeveloperFor',\r\n otherVertexType: Developer,\r\n },\r\n {\r\n propertyName: 'Manages',\r\n edgeType: UserManagesApp,\r\n otherVertexPropertyName: 'IsManagedBy',\r\n otherVertexType: App,\r\n },\r\n {\r\n propertyName: 'WorksIn',\r\n edgeType: TenantUserWorksInArea,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: TenantArea,\r\n },\r\n {\r\n propertyName: 'ActsAs',\r\n edgeType: UserActsAsPersona,\r\n otherVertexPropertyName: 'IsPerformedBy',\r\n otherVertexType: Persona,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TenantUser {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TenantUser) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n CreatedDate: model.CreatedDate,\r\n LastLoginDate: model.LastLoginDate,\r\n IsActive: model.IsActive,\r\n Logon: model.Logon,\r\n Name: model.Name,\r\n Address: model.Address,\r\n Phones: model.Phones,\r\n Emails: model.Emails,\r\n IsPermittedFor: ModelUtils.serializeShallowEdge(model.IsPermittedFor(), 'IsPermittedFor'),\r\n Represents: ModelUtils.serializeShallowEdge(model.Represents(), 'Represents'),\r\n DevelopsAs: ModelUtils.serializeShallowEdge(model.DevelopsAs(), 'DevelopsAs'),\r\n Manages: ModelUtils.serializeShallowEdge(model.Manages(), 'Manages'),\r\n WorksIn: ModelUtils.serializeShallowEdge(model.WorksIn(), 'WorksIn'),\r\n ActsAs: ModelUtils.serializeShallowEdge(model.ActsAs(), 'ActsAs'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantUser {\r\n let clone = new TenantUser();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPermittedFor = _.cloneDeep(this._IsPermittedFor);\r\n clone._Represents = _.cloneDeep(this._Represents);\r\n clone._DevelopsAs = _.cloneDeep(this._DevelopsAs);\r\n clone._Manages = _.cloneDeep(this._Manages);\r\n clone._WorksIn = _.cloneDeep(this._WorksIn);\r\n clone._ActsAs = _.cloneDeep(this._ActsAs);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport var Types = {\r\n AdminInfo,\r\n AdminUser,\r\n User,\r\n SMIdentity,\r\n AdminUserFillsSecurityRole,\r\n App,\r\n Contact,\r\n Developer,\r\n IdentityRepresentsOrganization,\r\n TenantUser,\r\n UserDevelopsAsDeveloper,\r\n UserManagesApp,\r\n Organization,\r\n Feature,\r\n Module,\r\n ModuleProvidesFeature,\r\n Permission,\r\n PermissionRequiresPermission,\r\n PermissionSecuresFeature,\r\n SecurityRole,\r\n SecurityRoleGrantsPermission,\r\n OrganizationOwnsTenant,\r\n Persona,\r\n PersonaExperiencesTenant,\r\n Tenant,\r\n TenantArea,\r\n TenantDeploysToArea,\r\n TenantEnablesTenantFeature,\r\n TenantFeature,\r\n TenantModule,\r\n TenantModuleProvidesTenantFeature,\r\n TenantPermitsIdentity,\r\n TenantSubscribesToTenantModule,\r\n TenantUserWorksInArea,\r\n UserActsAsPersona,\r\n AreaTier,\r\n TenantActivity,\r\n TenantUserActivity,\r\n}\r\n","import { ModelUtils, EdgeRelationship } from '@Core/Lib/Utils/model-utils';\r\nimport { BaseDataContext } from '@Core/Lib/Contexts/base-data-context';\r\nimport { BaseModel, EdgeModel, VertexModel, DocumentModel } from '@Core/Lib/model';\r\nimport { ContractDate } from '@Core/Lib/contract-date';\r\nimport { ActionEligibilityStatus } from '@Core/Lib/Enums/action-eligibility-status';\r\n\r\nimport * as _ from 'lodash';\r\n\r\nexport interface IAccount {\r\n Id: string,\r\n Name: string,\r\n Dba?: string,\r\n Phone?: string,\r\n Fax?: string,\r\n Country?: string,\r\n Address1?: string,\r\n Address2?: string,\r\n Address3?: string,\r\n City?: string,\r\n State?: string,\r\n Zip?: string,\r\n County?: string,\r\n Website?: string,\r\n FEIN?: string,\r\n Tags?: string[],\r\n readonly Status: string,\r\n readonly ClearanceStatus?: string,\r\n readonly ProducerId?: string,\r\n Code?: string,\r\n readonly BilledBalance?: number,\r\n readonly PastDueBalance?: number,\r\n readonly PastDueInvoiceDueDate?: Date,\r\n readonly PastDuePolicyBalances?: { [index: string]: number },\r\n readonly CreatedDate?: Date,\r\n readonly PrimaryAccount?: string[],\r\n readonly AssociatedAccounts?: string[],\r\n readonly IsCleared: boolean,\r\n DescriptionOfOperations?: string,\r\n LegalEntity?: string,\r\n AccountTaxLocation?: string,\r\n Unincorporated?: boolean,\r\n\r\n IsBilledFor?: object[],\r\n Communicates?: object[],\r\n IsServicedBy?: object[],\r\n IsWrittenFor?: object[],\r\n IsReservedBy?: object[],\r\n IsWorkedBy?: object[],\r\n IsFavoriteOf?: object[],\r\n Performs?: object[],\r\n Runs?: object[],\r\n Writes?: object[]\r\n\r\n}\r\n\r\nexport class Account extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Account\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Account }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Dba(): string {\r\n return this.data.Dba;\r\n }\r\n set Dba(value: string) {\r\n this.data.Dba = value;\r\n }\r\n get Phone(): string {\r\n return this.data.Phone;\r\n }\r\n set Phone(value: string) {\r\n this.data.Phone = value;\r\n }\r\n get Fax(): string {\r\n return this.data.Fax;\r\n }\r\n set Fax(value: string) {\r\n this.data.Fax = value;\r\n }\r\n get Country(): string {\r\n return this.data.Country;\r\n }\r\n set Country(value: string) {\r\n this.data.Country = value;\r\n }\r\n get Address1(): string {\r\n return this.data.Address1;\r\n }\r\n set Address1(value: string) {\r\n this.data.Address1 = value;\r\n }\r\n get Address2(): string {\r\n return this.data.Address2;\r\n }\r\n set Address2(value: string) {\r\n this.data.Address2 = value;\r\n }\r\n get Address3(): string {\r\n return this.data.Address3;\r\n }\r\n set Address3(value: string) {\r\n this.data.Address3 = value;\r\n }\r\n get City(): string {\r\n return this.data.City;\r\n }\r\n set City(value: string) {\r\n this.data.City = value;\r\n }\r\n get State(): string {\r\n return this.data.State;\r\n }\r\n set State(value: string) {\r\n this.data.State = value;\r\n }\r\n get Zip(): string {\r\n return this.data.Zip;\r\n }\r\n set Zip(value: string) {\r\n this.data.Zip = value;\r\n }\r\n get County(): string {\r\n return this.data.County;\r\n }\r\n set County(value: string) {\r\n this.data.County = value;\r\n }\r\n get Website(): string {\r\n return this.data.Website;\r\n }\r\n set Website(value: string) {\r\n this.data.Website = value;\r\n }\r\n get FEIN(): string {\r\n return this.data.FEIN;\r\n }\r\n set FEIN(value: string) {\r\n this.data.FEIN = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get ClearanceStatus(): string {\r\n return this.data.ClearanceStatus;\r\n }\r\n get ProducerId(): string {\r\n return this.data.ProducerId;\r\n }\r\n get Code(): string {\r\n return this.data.Code;\r\n }\r\n set Code(value: string) {\r\n this.data.Code = value;\r\n }\r\n get BilledBalance(): number {\r\n return this.data.BilledBalance;\r\n }\r\n get PastDueBalance(): number {\r\n return this.data.PastDueBalance;\r\n }\r\n get PastDueInvoiceDueDate(): Date {\r\n return this.data.PastDueInvoiceDueDate ? new Date(this.data.PastDueInvoiceDueDate) : undefined;\r\n }\r\n get PastDuePolicyBalances(): { [index: string]: number } {\r\n return this.data.PastDuePolicyBalances;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n get PrimaryAccount(): string[] {\r\n return this.data.PrimaryAccount;\r\n }\r\n get AssociatedAccounts(): string[] {\r\n return this.data.AssociatedAccounts;\r\n }\r\n get IsCleared(): boolean {\r\n return this.data.IsCleared;\r\n }\r\n get DescriptionOfOperations(): string {\r\n return this.data.DescriptionOfOperations;\r\n }\r\n set DescriptionOfOperations(value: string) {\r\n this.data.DescriptionOfOperations = value;\r\n }\r\n get LegalEntity(): string {\r\n return this.data.LegalEntity;\r\n }\r\n set LegalEntity(value: string) {\r\n this.data.LegalEntity = value;\r\n }\r\n get AccountTaxLocation(): string {\r\n return this.data.AccountTaxLocation;\r\n }\r\n set AccountTaxLocation(value: string) {\r\n this.data.AccountTaxLocation = value;\r\n }\r\n get Unincorporated(): boolean {\r\n return this.data.Unincorporated;\r\n }\r\n set Unincorporated(value: boolean) {\r\n this.data.Unincorporated = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsBilledFor, returns Invoice InvoiceBillsAccount[]\r\n private __IsBilledFor: InvoiceBillsAccount[];\r\n IsBilledFor(_context?: BaseDataContext): InvoiceBillsAccount[] {\r\n if (this.__IsBilledFor)\r\n return this.__IsBilledFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsBilledFor), (id) => context.get(id) as InvoiceBillsAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsBilledFor(values: InvoiceBillsAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsBilledFor = values;\r\n }\r\n get _IsBilledFor(): Set {\r\n if (!this._relationships.has(\"IsBilledFor\"))\r\n this._relationships.set(\"IsBilledFor\", new Set());\r\n\r\n return this._relationships.get(\"IsBilledFor\");\r\n }\r\n set _IsBilledFor(values: Set) {\r\n this._relationships.set(\"IsBilledFor\", values);\r\n }\r\n\r\n // Relationship Communicates, returns Correspondence CorrespondencePertainsToAccount[]\r\n private __Communicates: CorrespondencePertainsToAccount[];\r\n Communicates(_context?: BaseDataContext): CorrespondencePertainsToAccount[] {\r\n if (this.__Communicates)\r\n return this.__Communicates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Communicates), (id) => context.get(id) as CorrespondencePertainsToAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCommunicates(values: CorrespondencePertainsToAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Communicates = values;\r\n }\r\n get _Communicates(): Set {\r\n if (!this._relationships.has(\"Communicates\"))\r\n this._relationships.set(\"Communicates\", new Set());\r\n\r\n return this._relationships.get(\"Communicates\");\r\n }\r\n set _Communicates(values: Set) {\r\n this._relationships.set(\"Communicates\", values);\r\n }\r\n\r\n // Relationship IsServicedBy, returns AccountRole AccountRoleServicesAccount[]\r\n private __IsServicedBy: AccountRoleServicesAccount[];\r\n IsServicedBy(_context?: BaseDataContext): AccountRoleServicesAccount[] {\r\n if (this.__IsServicedBy)\r\n return this.__IsServicedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsServicedBy), (id) => context.get(id) as AccountRoleServicesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsServicedBy(values: AccountRoleServicesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsServicedBy = values;\r\n }\r\n get _IsServicedBy(): Set {\r\n if (!this._relationships.has(\"IsServicedBy\"))\r\n this._relationships.set(\"IsServicedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsServicedBy\");\r\n }\r\n set _IsServicedBy(values: Set) {\r\n this._relationships.set(\"IsServicedBy\", values);\r\n }\r\n\r\n // Relationship IsWrittenFor, returns Program ProgramWritesAccount[]\r\n private __IsWrittenFor: ProgramWritesAccount[];\r\n IsWrittenFor(_context?: BaseDataContext): ProgramWritesAccount[] {\r\n if (this.__IsWrittenFor)\r\n return this.__IsWrittenFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWrittenFor), (id) => context.get(id) as ProgramWritesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWrittenFor(values: ProgramWritesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWrittenFor = values;\r\n }\r\n get _IsWrittenFor(): Set {\r\n if (!this._relationships.has(\"IsWrittenFor\"))\r\n this._relationships.set(\"IsWrittenFor\", new Set());\r\n\r\n return this._relationships.get(\"IsWrittenFor\");\r\n }\r\n set _IsWrittenFor(values: Set) {\r\n this._relationships.set(\"IsWrittenFor\", values);\r\n }\r\n\r\n // Relationship IsReservedBy, returns ReservationSet ReservationSetReservesAccount[]\r\n private __IsReservedBy: ReservationSetReservesAccount[];\r\n IsReservedBy(_context?: BaseDataContext): ReservationSetReservesAccount[] {\r\n if (this.__IsReservedBy)\r\n return this.__IsReservedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsReservedBy), (id) => context.get(id) as ReservationSetReservesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsReservedBy(values: ReservationSetReservesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsReservedBy = values;\r\n }\r\n get _IsReservedBy(): Set {\r\n if (!this._relationships.has(\"IsReservedBy\"))\r\n this._relationships.set(\"IsReservedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsReservedBy\");\r\n }\r\n set _IsReservedBy(values: Set) {\r\n this._relationships.set(\"IsReservedBy\", values);\r\n }\r\n\r\n // Relationship IsWorkedBy, returns SMIdentity SMIdentityWorksAccount[]\r\n private __IsWorkedBy: SMIdentityWorksAccount[];\r\n IsWorkedBy(_context?: BaseDataContext): SMIdentityWorksAccount[] {\r\n if (this.__IsWorkedBy)\r\n return this.__IsWorkedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWorkedBy), (id) => context.get(id) as SMIdentityWorksAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWorkedBy(values: SMIdentityWorksAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWorkedBy = values;\r\n }\r\n get _IsWorkedBy(): Set {\r\n if (!this._relationships.has(\"IsWorkedBy\"))\r\n this._relationships.set(\"IsWorkedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsWorkedBy\");\r\n }\r\n set _IsWorkedBy(values: Set) {\r\n this._relationships.set(\"IsWorkedBy\", values);\r\n }\r\n\r\n // Relationship IsFavoriteOf, returns SMIdentity UserFavoritesAccount[]\r\n private __IsFavoriteOf: UserFavoritesAccount[];\r\n IsFavoriteOf(_context?: BaseDataContext): UserFavoritesAccount[] {\r\n if (this.__IsFavoriteOf)\r\n return this.__IsFavoriteOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsFavoriteOf), (id) => context.get(id) as UserFavoritesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsFavoriteOf(values: UserFavoritesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsFavoriteOf = values;\r\n }\r\n get _IsFavoriteOf(): Set {\r\n if (!this._relationships.has(\"IsFavoriteOf\"))\r\n this._relationships.set(\"IsFavoriteOf\", new Set());\r\n\r\n return this._relationships.get(\"IsFavoriteOf\");\r\n }\r\n set _IsFavoriteOf(values: Set) {\r\n this._relationships.set(\"IsFavoriteOf\", values);\r\n }\r\n\r\n // Relationship Performs, returns WorkflowSet AccountPerformsWorkflowSet[]\r\n private __Performs: AccountPerformsWorkflowSet[];\r\n Performs(_context?: BaseDataContext): AccountPerformsWorkflowSet[] {\r\n if (this.__Performs)\r\n return this.__Performs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Performs), (id) => context.get(id) as AccountPerformsWorkflowSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPerforms(values: AccountPerformsWorkflowSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Performs = values;\r\n }\r\n get _Performs(): Set {\r\n if (!this._relationships.has(\"Performs\"))\r\n this._relationships.set(\"Performs\", new Set());\r\n\r\n return this._relationships.get(\"Performs\");\r\n }\r\n set _Performs(values: Set) {\r\n this._relationships.set(\"Performs\", values);\r\n }\r\n\r\n // Relationship Runs, returns Workflow AccountRunsWorkflow[]\r\n private __Runs: AccountRunsWorkflow[];\r\n Runs(_context?: BaseDataContext): AccountRunsWorkflow[] {\r\n if (this.__Runs)\r\n return this.__Runs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Runs), (id) => context.get(id) as AccountRunsWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRuns(values: AccountRunsWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Runs = values;\r\n }\r\n get _Runs(): Set {\r\n if (!this._relationships.has(\"Runs\"))\r\n this._relationships.set(\"Runs\", new Set());\r\n\r\n return this._relationships.get(\"Runs\");\r\n }\r\n set _Runs(values: Set) {\r\n this._relationships.set(\"Runs\", values);\r\n }\r\n\r\n // Relationship Writes, returns PolicySet AccountWritesPolicySet[]\r\n private __Writes: AccountWritesPolicySet[];\r\n Writes(_context?: BaseDataContext): AccountWritesPolicySet[] {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Writes), (id) => context.get(id) as AccountWritesPolicySet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWrites(values: AccountWritesPolicySet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Writes = values;\r\n }\r\n get _Writes(): Set {\r\n if (!this._relationships.has(\"Writes\"))\r\n this._relationships.set(\"Writes\", new Set());\r\n\r\n return this._relationships.get(\"Writes\");\r\n }\r\n set _Writes(values: Set) {\r\n this._relationships.set(\"Writes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsBilledFor',\r\n edgeType: InvoiceBillsAccount,\r\n otherVertexPropertyName: 'Bills',\r\n otherVertexType: Invoice,\r\n },\r\n {\r\n propertyName: 'Communicates',\r\n edgeType: CorrespondencePertainsToAccount,\r\n otherVertexPropertyName: 'PertainsTo',\r\n otherVertexType: Correspondence,\r\n },\r\n {\r\n propertyName: 'IsServicedBy',\r\n edgeType: AccountRoleServicesAccount,\r\n otherVertexPropertyName: 'Services',\r\n otherVertexType: AccountRole,\r\n },\r\n {\r\n propertyName: 'IsWrittenFor',\r\n edgeType: ProgramWritesAccount,\r\n otherVertexPropertyName: 'Writes',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsReservedBy',\r\n edgeType: ReservationSetReservesAccount,\r\n otherVertexPropertyName: 'Reserves',\r\n otherVertexType: ReservationSet,\r\n },\r\n {\r\n propertyName: 'IsWorkedBy',\r\n edgeType: SMIdentityWorksAccount,\r\n otherVertexPropertyName: 'Works',\r\n otherVertexType: SMIdentity,\r\n },\r\n {\r\n propertyName: 'IsFavoriteOf',\r\n edgeType: UserFavoritesAccount,\r\n otherVertexPropertyName: 'Favorites',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Performs',\r\n edgeType: AccountPerformsWorkflowSet,\r\n otherVertexPropertyName: 'IsPerformedFor',\r\n otherVertexType: WorkflowSet,\r\n },\r\n {\r\n propertyName: 'Runs',\r\n edgeType: AccountRunsWorkflow,\r\n otherVertexPropertyName: 'IsRunningFor',\r\n otherVertexType: Workflow,\r\n },\r\n {\r\n propertyName: 'Writes',\r\n edgeType: AccountWritesPolicySet,\r\n otherVertexPropertyName: 'IsWrittenBy',\r\n otherVertexType: PolicySet,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Account {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Account) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Dba: model.Dba,\r\n Phone: model.Phone,\r\n Fax: model.Fax,\r\n Country: model.Country,\r\n Address1: model.Address1,\r\n Address2: model.Address2,\r\n Address3: model.Address3,\r\n City: model.City,\r\n State: model.State,\r\n Zip: model.Zip,\r\n County: model.County,\r\n Website: model.Website,\r\n FEIN: model.FEIN,\r\n Tags: model.Tags,\r\n Status: model.Status,\r\n ClearanceStatus: model.ClearanceStatus,\r\n ProducerId: model.ProducerId,\r\n Code: model.Code,\r\n BilledBalance: model.BilledBalance,\r\n PastDueBalance: model.PastDueBalance,\r\n PastDueInvoiceDueDate: model.PastDueInvoiceDueDate,\r\n PastDuePolicyBalances: model.PastDuePolicyBalances,\r\n CreatedDate: model.CreatedDate,\r\n PrimaryAccount: model.PrimaryAccount,\r\n AssociatedAccounts: model.AssociatedAccounts,\r\n IsCleared: model.IsCleared,\r\n DescriptionOfOperations: model.DescriptionOfOperations,\r\n LegalEntity: model.LegalEntity,\r\n AccountTaxLocation: model.AccountTaxLocation,\r\n Unincorporated: model.Unincorporated,\r\n IsBilledFor: ModelUtils.serializeShallowEdge(model.IsBilledFor(), 'IsBilledFor'),\r\n Communicates: ModelUtils.serializeShallowEdge(model.Communicates(), 'Communicates'),\r\n IsServicedBy: ModelUtils.serializeShallowEdge(model.IsServicedBy(), 'IsServicedBy'),\r\n IsWrittenFor: ModelUtils.serializeShallowEdge(model.IsWrittenFor(), 'IsWrittenFor'),\r\n IsReservedBy: ModelUtils.serializeShallowEdge(model.IsReservedBy(), 'IsReservedBy'),\r\n IsWorkedBy: ModelUtils.serializeShallowEdge(model.IsWorkedBy(), 'IsWorkedBy'),\r\n IsFavoriteOf: ModelUtils.serializeShallowEdge(model.IsFavoriteOf(), 'IsFavoriteOf'),\r\n Performs: ModelUtils.serializeShallowEdge(model.Performs(), 'Performs'),\r\n Runs: ModelUtils.serializeShallowEdge(model.Runs(), 'Runs'),\r\n Writes: ModelUtils.serializeShallowEdge(model.Writes(), 'Writes'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Account {\r\n let clone = new Account();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsBilledFor = _.cloneDeep(this._IsBilledFor);\r\n clone._Communicates = _.cloneDeep(this._Communicates);\r\n clone._IsServicedBy = _.cloneDeep(this._IsServicedBy);\r\n clone._IsWrittenFor = _.cloneDeep(this._IsWrittenFor);\r\n clone._IsReservedBy = _.cloneDeep(this._IsReservedBy);\r\n clone._IsWorkedBy = _.cloneDeep(this._IsWorkedBy);\r\n clone._IsFavoriteOf = _.cloneDeep(this._IsFavoriteOf);\r\n clone._Performs = _.cloneDeep(this._Performs);\r\n clone._Runs = _.cloneDeep(this._Runs);\r\n clone._Writes = _.cloneDeep(this._Writes);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class AccountPerformsWorkflowSet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountPerformsWorkflowSet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Account\r\n private __IsPerformedFor: Account;\r\n\r\n IsPerformedFor(context?: BaseDataContext): Account {\r\n if (this.__IsPerformedFor)\r\n return this.__IsPerformedFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPerformedFor) as Account;\r\n }\r\n setIsPerformedFor(value: Account) {\r\n this.__IsPerformedFor = value;\r\n }\r\n get _IsPerformedFor(): string {\r\n return this.Out;\r\n }\r\n set _IsPerformedFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkflowSet\r\n private __Performs: WorkflowSet;\r\n\r\n Performs(context?: BaseDataContext): WorkflowSet {\r\n if (this.__Performs)\r\n return this.__Performs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Performs) as WorkflowSet;\r\n }\r\n setPerforms(value: WorkflowSet) {\r\n this.__Performs = value;\r\n }\r\n get _Performs(): string {\r\n return this.In;\r\n }\r\n set _Performs(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AccountPerformsWorkflowSet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AccountPerformsWorkflowSet {\r\n let clone = new AccountPerformsWorkflowSet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AccountRoleServicesAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountRoleServicesAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to AccountRole\r\n private __IsServicedBy: AccountRole;\r\n\r\n IsServicedBy(context?: BaseDataContext): AccountRole {\r\n if (this.__IsServicedBy)\r\n return this.__IsServicedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsServicedBy) as AccountRole;\r\n }\r\n setIsServicedBy(value: AccountRole) {\r\n this.__IsServicedBy = value;\r\n }\r\n get _IsServicedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsServicedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __Services: Account;\r\n\r\n Services(context?: BaseDataContext): Account {\r\n if (this.__Services)\r\n return this.__Services;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Services) as Account;\r\n }\r\n setServices(value: Account) {\r\n this.__Services = value;\r\n }\r\n get _Services(): string {\r\n return this.In;\r\n }\r\n set _Services(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AccountRoleServicesAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AccountRoleServicesAccount {\r\n let clone = new AccountRoleServicesAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AccountRunsWorkflow extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountRunsWorkflow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Account\r\n private __IsRunningFor: Account;\r\n\r\n IsRunningFor(context?: BaseDataContext): Account {\r\n if (this.__IsRunningFor)\r\n return this.__IsRunningFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRunningFor) as Account;\r\n }\r\n setIsRunningFor(value: Account) {\r\n this.__IsRunningFor = value;\r\n }\r\n get _IsRunningFor(): string {\r\n return this.Out;\r\n }\r\n set _IsRunningFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workflow\r\n private __Runs: Workflow;\r\n\r\n Runs(context?: BaseDataContext): Workflow {\r\n if (this.__Runs)\r\n return this.__Runs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Runs) as Workflow;\r\n }\r\n setRuns(value: Workflow) {\r\n this.__Runs = value;\r\n }\r\n get _Runs(): string {\r\n return this.In;\r\n }\r\n set _Runs(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AccountRunsWorkflow {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AccountRunsWorkflow {\r\n let clone = new AccountRunsWorkflow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AccountWritesPolicySet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountWritesPolicySet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Account\r\n private __IsWrittenBy: Account;\r\n\r\n IsWrittenBy(context?: BaseDataContext): Account {\r\n if (this.__IsWrittenBy)\r\n return this.__IsWrittenBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWrittenBy) as Account;\r\n }\r\n setIsWrittenBy(value: Account) {\r\n this.__IsWrittenBy = value;\r\n }\r\n get _IsWrittenBy(): string {\r\n return this.Out;\r\n }\r\n set _IsWrittenBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to PolicySet\r\n private __Writes: PolicySet;\r\n\r\n Writes(context?: BaseDataContext): PolicySet {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Writes) as PolicySet;\r\n }\r\n setWrites(value: PolicySet) {\r\n this.__Writes = value;\r\n }\r\n get _Writes(): string {\r\n return this.In;\r\n }\r\n set _Writes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AccountWritesPolicySet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AccountWritesPolicySet {\r\n let clone = new AccountWritesPolicySet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class Activity extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Activity\";\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Action(): string {\r\n return this.data.Action;\r\n }\r\n set Action(value: string) {\r\n this.data.Action = value;\r\n }\r\n get EntityType(): string {\r\n return this.data.EntityType;\r\n }\r\n set EntityType(value: string) {\r\n this.data.EntityType = value;\r\n }\r\n get EntityId(): string {\r\n return this.data.EntityId;\r\n }\r\n set EntityId(value: string) {\r\n this.data.EntityId = value;\r\n }\r\n get EntityCorrelationKey(): string {\r\n return this.data.EntityCorrelationKey;\r\n }\r\n set EntityCorrelationKey(value: string) {\r\n this.data.EntityCorrelationKey = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get DeletedBy(): string {\r\n return this.data.DeletedBy;\r\n }\r\n set DeletedBy(value: string) {\r\n this.data.DeletedBy = value;\r\n }\r\n get ActivityTime(): Date {\r\n return this.data.ActivityTime ? new Date(this.data.ActivityTime) : undefined;\r\n }\r\n set ActivityTime(value: Date) {\r\n this.data.ActivityTime = value;\r\n }\r\n get Message(): string {\r\n return this.data.Message;\r\n }\r\n set Message(value: string) {\r\n this.data.Message = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): Activity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: Activity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Action: model.Action,\r\n EntityType: model.EntityType,\r\n EntityId: model.EntityId,\r\n EntityCorrelationKey: model.EntityCorrelationKey,\r\n IdentityKey: model.IdentityKey,\r\n DeletedBy: model.DeletedBy,\r\n ActivityTime: model.ActivityTime,\r\n Message: model.Message,\r\n Tags: model.Tags,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Activity {\r\n let clone = new Activity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IApplication {\r\n readonly CopiedFromId?: string,\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name: string,\r\n readonly Description: string,\r\n readonly TaskId: string,\r\n readonly RemainingRequiredFields?: string[],\r\n readonly TotalRequiredFields: number,\r\n readonly RemainingRequiredSections?: string[],\r\n readonly MoreThanAllowedSections?: string[],\r\n readonly RemainingInvalidFields?: string[],\r\n readonly Committed: boolean,\r\n readonly Complete: boolean,\r\n readonly DataChanged: boolean,\r\n\r\n IsCollectedFor?: object[],\r\n ContainsCondition?: object[],\r\n Collects?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class Application extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Application\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Application }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get TaskId(): string {\r\n return this.data.TaskId;\r\n }\r\n get RemainingRequiredFields(): string[] {\r\n return this.data.RemainingRequiredFields;\r\n }\r\n get TotalRequiredFields(): number {\r\n return this.data.TotalRequiredFields;\r\n }\r\n get RemainingRequiredSections(): string[] {\r\n return this.data.RemainingRequiredSections;\r\n }\r\n get MoreThanAllowedSections(): string[] {\r\n return this.data.MoreThanAllowedSections;\r\n }\r\n get RemainingInvalidFields(): string[] {\r\n return this.data.RemainingInvalidFields;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get Complete(): boolean {\r\n return this.data.Complete;\r\n }\r\n get DataChanged(): boolean {\r\n return this.data.DataChanged;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsCollectedFor, returns Workflow WorkflowCollectsApplication[]\r\n private __IsCollectedFor: WorkflowCollectsApplication[];\r\n IsCollectedFor(_context?: BaseDataContext): WorkflowCollectsApplication[] {\r\n if (this.__IsCollectedFor)\r\n return this.__IsCollectedFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsCollectedFor), (id) => context.get(id) as WorkflowCollectsApplication);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsCollectedFor(values: WorkflowCollectsApplication[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsCollectedFor = values;\r\n }\r\n get _IsCollectedFor(): Set {\r\n if (!this._relationships.has(\"IsCollectedFor\"))\r\n this._relationships.set(\"IsCollectedFor\", new Set());\r\n\r\n return this._relationships.get(\"IsCollectedFor\");\r\n }\r\n set _IsCollectedFor(values: Set) {\r\n this._relationships.set(\"IsCollectedFor\", values);\r\n }\r\n\r\n // Relationship ContainsCondition, returns ElementCondition ApplicationContainsElementCondition[]\r\n private __ContainsCondition: ApplicationContainsElementCondition[];\r\n ContainsCondition(_context?: BaseDataContext): ApplicationContainsElementCondition[] {\r\n if (this.__ContainsCondition)\r\n return this.__ContainsCondition;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ContainsCondition), (id) => context.get(id) as ApplicationContainsElementCondition);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContainsCondition(values: ApplicationContainsElementCondition[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ContainsCondition = values;\r\n }\r\n get _ContainsCondition(): Set {\r\n if (!this._relationships.has(\"ContainsCondition\"))\r\n this._relationships.set(\"ContainsCondition\", new Set());\r\n\r\n return this._relationships.get(\"ContainsCondition\");\r\n }\r\n set _ContainsCondition(values: Set) {\r\n this._relationships.set(\"ContainsCondition\", values);\r\n }\r\n\r\n // Relationship Collects, returns Section ApplicationCollectsSection[]\r\n private __Collects: ApplicationCollectsSection[];\r\n Collects(_context?: BaseDataContext): ApplicationCollectsSection[] {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Collects), (id) => context.get(id) as ApplicationCollectsSection);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCollects(values: ApplicationCollectsSection[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Collects = values;\r\n }\r\n get _Collects(): Set {\r\n if (!this._relationships.has(\"Collects\"))\r\n this._relationships.set(\"Collects\", new Set());\r\n\r\n return this._relationships.get(\"Collects\");\r\n }\r\n set _Collects(values: Set) {\r\n this._relationships.set(\"Collects\", values);\r\n }\r\n\r\n // Relationship Populates, returns DataStore ApplicationPopulatesDataStore[]\r\n private __Populates: ApplicationPopulatesDataStore[];\r\n Populates(_context?: BaseDataContext): ApplicationPopulatesDataStore[] {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Populates), (id) => context.get(id) as ApplicationPopulatesDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPopulates(values: ApplicationPopulatesDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Populates = values;\r\n }\r\n get _Populates(): Set {\r\n if (!this._relationships.has(\"Populates\"))\r\n this._relationships.set(\"Populates\", new Set());\r\n\r\n return this._relationships.get(\"Populates\");\r\n }\r\n set _Populates(values: Set) {\r\n this._relationships.set(\"Populates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsCollectedFor',\r\n edgeType: WorkflowCollectsApplication,\r\n otherVertexPropertyName: 'Collects',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'ContainsCondition',\r\n edgeType: ApplicationContainsElementCondition,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'Collects',\r\n edgeType: ApplicationCollectsSection,\r\n otherVertexPropertyName: 'IsCollectedBy',\r\n otherVertexType: Section,\r\n },\r\n {\r\n propertyName: 'Populates',\r\n edgeType: ApplicationPopulatesDataStore,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataStore,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Application {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Application) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n TaskId: model.TaskId,\r\n RemainingRequiredFields: model.RemainingRequiredFields,\r\n TotalRequiredFields: model.TotalRequiredFields,\r\n RemainingRequiredSections: model.RemainingRequiredSections,\r\n MoreThanAllowedSections: model.MoreThanAllowedSections,\r\n RemainingInvalidFields: model.RemainingInvalidFields,\r\n Committed: model.Committed,\r\n Complete: model.Complete,\r\n DataChanged: model.DataChanged,\r\n IsCollectedFor: ModelUtils.serializeShallowEdge(model.IsCollectedFor(), 'IsCollectedFor'),\r\n ContainsCondition: ModelUtils.serializeShallowEdge(model.ContainsCondition(), 'ContainsCondition'),\r\n Collects: ModelUtils.serializeShallowEdge(model.Collects(), 'Collects'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Application {\r\n let clone = new Application();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsCollectedFor = _.cloneDeep(this._IsCollectedFor);\r\n clone._ContainsCondition = _.cloneDeep(this._ContainsCondition);\r\n clone._Collects = _.cloneDeep(this._Collects);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ApplicationCollectsSection extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationCollectsSection\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __IsCollectedBy: Application;\r\n\r\n IsCollectedBy(context?: BaseDataContext): Application {\r\n if (this.__IsCollectedBy)\r\n return this.__IsCollectedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsCollectedBy) as Application;\r\n }\r\n setIsCollectedBy(value: Application) {\r\n this.__IsCollectedBy = value;\r\n }\r\n get _IsCollectedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsCollectedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Section\r\n private __Collects: Section;\r\n\r\n Collects(context?: BaseDataContext): Section {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Collects) as Section;\r\n }\r\n setCollects(value: Section) {\r\n this.__Collects = value;\r\n }\r\n get _Collects(): string {\r\n return this.In;\r\n }\r\n set _Collects(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationCollectsSection {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationCollectsSection {\r\n let clone = new ApplicationCollectsSection();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ApplicationContainsElementCondition extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationContainsElementCondition\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __IsContainedBy: Application;\r\n\r\n IsContainedBy(context?: BaseDataContext): Application {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as Application;\r\n }\r\n setIsContainedBy(value: Application) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ElementCondition\r\n private __ContainsCondition: ElementCondition;\r\n\r\n ContainsCondition(context?: BaseDataContext): ElementCondition {\r\n if (this.__ContainsCondition)\r\n return this.__ContainsCondition;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ContainsCondition) as ElementCondition;\r\n }\r\n setContainsCondition(value: ElementCondition) {\r\n this.__ContainsCondition = value;\r\n }\r\n get _ContainsCondition(): string {\r\n return this.In;\r\n }\r\n set _ContainsCondition(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationContainsElementCondition {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationContainsElementCondition {\r\n let clone = new ApplicationContainsElementCondition();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ApplicationDocument extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationDocument\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get WorkflowId(): string {\r\n return this.data.WorkflowId;\r\n }\r\n get TaskId(): string {\r\n return this.data.TaskId;\r\n }\r\n get RemainingRequiredFields(): string[] {\r\n return this.data.RemainingRequiredFields;\r\n }\r\n get TotalRequiredFields(): number {\r\n return this.data.TotalRequiredFields;\r\n }\r\n get RemainingRequiredSections(): string[] {\r\n return this.data.RemainingRequiredSections;\r\n }\r\n get MoreThanAllowedSections(): string[] {\r\n return this.data.MoreThanAllowedSections;\r\n }\r\n get RemainingInvalidFields(): string[] {\r\n return this.data.RemainingInvalidFields;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get Complete(): boolean {\r\n return this.data.Complete;\r\n }\r\n get DataChanged(): boolean {\r\n return this.data.DataChanged;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ApplicationDocument {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ApplicationDocument) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowSetId: model.WorkflowSetId,\r\n WorkflowId: model.WorkflowId,\r\n TaskId: model.TaskId,\r\n RemainingRequiredFields: model.RemainingRequiredFields,\r\n TotalRequiredFields: model.TotalRequiredFields,\r\n RemainingRequiredSections: model.RemainingRequiredSections,\r\n MoreThanAllowedSections: model.MoreThanAllowedSections,\r\n RemainingInvalidFields: model.RemainingInvalidFields,\r\n Committed: model.Committed,\r\n Complete: model.Complete,\r\n DataChanged: model.DataChanged,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ApplicationDocument {\r\n let clone = new ApplicationDocument();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ApplicationPopulatesDataStore extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationPopulatesDataStore\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __IsPopulatedBy: Application;\r\n\r\n IsPopulatedBy(context?: BaseDataContext): Application {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPopulatedBy) as Application;\r\n }\r\n setIsPopulatedBy(value: Application) {\r\n this.__IsPopulatedBy = value;\r\n }\r\n get _IsPopulatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPopulatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStore\r\n private __Populates: DataStore;\r\n\r\n Populates(context?: BaseDataContext): DataStore {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Populates) as DataStore;\r\n }\r\n setPopulates(value: DataStore) {\r\n this.__Populates = value;\r\n }\r\n get _Populates(): string {\r\n return this.In;\r\n }\r\n set _Populates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationPopulatesDataStore {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationPopulatesDataStore {\r\n let clone = new ApplicationPopulatesDataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IAssignable {\r\n Id: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n\r\n Assignee?: object[]\r\n\r\n}\r\n\r\nexport class Assignable extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Assignable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Assignable }[] = [\r\n {className: 'AccountRole', type: AccountRole},\r\n {className: 'UserPool', type: UserPool},\r\n {className: 'SMIdentity', type: SMIdentity},\r\n {className: 'WorkGroup', type: WorkGroup},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get TasksAssigned(): number {\r\n return this.data.TasksAssigned;\r\n }\r\n set TasksAssigned(value: number) {\r\n this.data.TasksAssigned = value;\r\n }\r\n get DateCreated(): Date {\r\n return this.data.DateCreated ? new Date(this.data.DateCreated) : undefined;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Assignee, returns Task AssignableAssignedTask[]\r\n private __Assignee: AssignableAssignedTask[];\r\n Assignee(_context?: BaseDataContext): AssignableAssignedTask[] {\r\n if (this.__Assignee)\r\n return this.__Assignee;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Assignee), (id) => context.get(id) as AssignableAssignedTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAssignee(values: AssignableAssignedTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Assignee = values;\r\n }\r\n get _Assignee(): Set {\r\n if (!this._relationships.has(\"Assignee\"))\r\n this._relationships.set(\"Assignee\", new Set());\r\n\r\n return this._relationships.get(\"Assignee\");\r\n }\r\n set _Assignee(values: Set) {\r\n this._relationships.set(\"Assignee\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Assignee',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'AssignedTo',\r\n otherVertexType: Task,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Assignable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Assignable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n Assignee: ModelUtils.serializeShallowEdge(model.Assignee(), 'Assignee'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Assignable {\r\n let clone = new Assignable();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Assignee = _.cloneDeep(this._Assignee);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class AssignableAssignedTask extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AssignableAssignedTask\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DateAssigned(): Date {\r\n return this.data.DateAssigned ? new Date(this.data.DateAssigned) : undefined;\r\n }\r\n set DateAssigned(value: Date) {\r\n this.data.DateAssigned = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Assignable\r\n private __AssignedTo: Assignable;\r\n\r\n AssignedTo(context?: BaseDataContext): Assignable {\r\n if (this.__AssignedTo)\r\n return this.__AssignedTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._AssignedTo) as Assignable;\r\n }\r\n setAssignedTo(value: Assignable) {\r\n this.__AssignedTo = value;\r\n }\r\n get _AssignedTo(): string {\r\n return this.Out;\r\n }\r\n set _AssignedTo(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Task\r\n private __Assignee: Task;\r\n\r\n Assignee(context?: BaseDataContext): Task {\r\n if (this.__Assignee)\r\n return this.__Assignee;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Assignee) as Task;\r\n }\r\n setAssignee(value: Task) {\r\n this.__Assignee = value;\r\n }\r\n get _Assignee(): string {\r\n return this.In;\r\n }\r\n set _Assignee(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AssignableAssignedTask {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AssignableAssignedTask {\r\n let clone = new AssignableAssignedTask();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class BusinessLocation extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"BusinessLocation\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get TimeZone(): string {\r\n return this.data.TimeZone;\r\n }\r\n set TimeZone(value: string) {\r\n this.data.TimeZone = value;\r\n }\r\n get BusinessDays(): { [index: number]: any } {\r\n return this.data.BusinessDays;\r\n }\r\n set BusinessDays(value: { [index: number]: any }) {\r\n this.data.BusinessDays = value;\r\n }\r\n get ObserveDaylightSavings(): boolean {\r\n return this.data.ObserveDaylightSavings;\r\n }\r\n set ObserveDaylightSavings(value: boolean) {\r\n this.data.ObserveDaylightSavings = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): BusinessLocation {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: BusinessLocation) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TimeZone: model.TimeZone,\r\n BusinessDays: model.BusinessDays,\r\n ObserveDaylightSavings: model.ObserveDaylightSavings,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): BusinessLocation {\r\n let clone = new BusinessLocation();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ICorrespondence {\r\n readonly ExecutionStatus: string,\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n Id: string,\r\n readonly DataStoreId?: string,\r\n readonly Locked: boolean,\r\n readonly Status: string,\r\n ToRecipients?: string,\r\n CcRecipients?: string,\r\n BccRecipients?: string,\r\n EmailSubjectTemplate: string,\r\n EmailSubject: string,\r\n EmailMessageTemplate: string,\r\n EmailMessage: string,\r\n SentMessage?: string,\r\n DocumentCategory?: { [index: string]: string },\r\n DocumentTags?: { [index: string]: string },\r\n CorrespondenceType: string,\r\n Preferences?: string[],\r\n AllowRecipientEditing: boolean,\r\n EmailThreadId?: string,\r\n AddressTo?: string,\r\n AddressLine1?: string,\r\n AddressLine2?: string,\r\n AddressLine3?: string,\r\n AddressCity?: string,\r\n AddressState?: string,\r\n AddressZip?: string,\r\n\r\n DeliveredFor?: object[],\r\n DeliversAccount?: object[],\r\n DeliversEmail?: object[],\r\n MailsTo?: object[],\r\n ParameterSubstitutes?: object[],\r\n PertainsTo?: object[],\r\n PullsFrom?: object[],\r\n Sends?: object[]\r\n\r\n}\r\n\r\nexport class Correspondence extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Correspondence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Correspondence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ExecutionStatus(): string {\r\n return this.data.ExecutionStatus;\r\n }\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n get Locked(): boolean {\r\n return this.data.Locked;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get ToRecipients(): string {\r\n return this.data.ToRecipients;\r\n }\r\n set ToRecipients(value: string) {\r\n this.data.ToRecipients = value;\r\n }\r\n get CcRecipients(): string {\r\n return this.data.CcRecipients;\r\n }\r\n set CcRecipients(value: string) {\r\n this.data.CcRecipients = value;\r\n }\r\n get BccRecipients(): string {\r\n return this.data.BccRecipients;\r\n }\r\n set BccRecipients(value: string) {\r\n this.data.BccRecipients = value;\r\n }\r\n get EmailSubjectTemplate(): string {\r\n return this.data.EmailSubjectTemplate;\r\n }\r\n set EmailSubjectTemplate(value: string) {\r\n this.data.EmailSubjectTemplate = value;\r\n }\r\n get EmailSubject(): string {\r\n return this.data.EmailSubject;\r\n }\r\n set EmailSubject(value: string) {\r\n this.data.EmailSubject = value;\r\n }\r\n get EmailMessageTemplate(): string {\r\n return this.data.EmailMessageTemplate;\r\n }\r\n set EmailMessageTemplate(value: string) {\r\n this.data.EmailMessageTemplate = value;\r\n }\r\n get EmailMessage(): string {\r\n return this.data.EmailMessage;\r\n }\r\n set EmailMessage(value: string) {\r\n this.data.EmailMessage = value;\r\n }\r\n get SentMessage(): string {\r\n return this.data.SentMessage;\r\n }\r\n set SentMessage(value: string) {\r\n this.data.SentMessage = value;\r\n }\r\n get DocumentCategory(): { [index: string]: string } {\r\n return this.data.DocumentCategory;\r\n }\r\n set DocumentCategory(value: { [index: string]: string }) {\r\n this.data.DocumentCategory = value;\r\n }\r\n get DocumentTags(): { [index: string]: string } {\r\n return this.data.DocumentTags;\r\n }\r\n set DocumentTags(value: { [index: string]: string }) {\r\n this.data.DocumentTags = value;\r\n }\r\n get CorrespondenceType(): string {\r\n return this.data.CorrespondenceType;\r\n }\r\n set CorrespondenceType(value: string) {\r\n this.data.CorrespondenceType = value;\r\n }\r\n get Preferences(): string[] {\r\n return this.data.Preferences;\r\n }\r\n set Preferences(value: string[]) {\r\n this.data.Preferences = value;\r\n }\r\n get AllowRecipientEditing(): boolean {\r\n return this.data.AllowRecipientEditing;\r\n }\r\n set AllowRecipientEditing(value: boolean) {\r\n this.data.AllowRecipientEditing = value;\r\n }\r\n get EmailThreadId(): string {\r\n return this.data.EmailThreadId;\r\n }\r\n set EmailThreadId(value: string) {\r\n this.data.EmailThreadId = value;\r\n }\r\n get AddressTo(): string {\r\n return this.data.AddressTo;\r\n }\r\n set AddressTo(value: string) {\r\n this.data.AddressTo = value;\r\n }\r\n get AddressLine1(): string {\r\n return this.data.AddressLine1;\r\n }\r\n set AddressLine1(value: string) {\r\n this.data.AddressLine1 = value;\r\n }\r\n get AddressLine2(): string {\r\n return this.data.AddressLine2;\r\n }\r\n set AddressLine2(value: string) {\r\n this.data.AddressLine2 = value;\r\n }\r\n get AddressLine3(): string {\r\n return this.data.AddressLine3;\r\n }\r\n set AddressLine3(value: string) {\r\n this.data.AddressLine3 = value;\r\n }\r\n get AddressCity(): string {\r\n return this.data.AddressCity;\r\n }\r\n set AddressCity(value: string) {\r\n this.data.AddressCity = value;\r\n }\r\n get AddressState(): string {\r\n return this.data.AddressState;\r\n }\r\n set AddressState(value: string) {\r\n this.data.AddressState = value;\r\n }\r\n get AddressZip(): string {\r\n return this.data.AddressZip;\r\n }\r\n set AddressZip(value: string) {\r\n this.data.AddressZip = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship DeliveredFor, returns TaskCorrespondence CorrespondenceDeliveredForCorrespondenceTask[]\r\n private __DeliveredFor: CorrespondenceDeliveredForCorrespondenceTask[];\r\n DeliveredFor(_context?: BaseDataContext): CorrespondenceDeliveredForCorrespondenceTask[] {\r\n if (this.__DeliveredFor)\r\n return this.__DeliveredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliveredFor), (id) => context.get(id) as CorrespondenceDeliveredForCorrespondenceTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliveredFor(values: CorrespondenceDeliveredForCorrespondenceTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliveredFor = values;\r\n }\r\n get _DeliveredFor(): Set {\r\n if (!this._relationships.has(\"DeliveredFor\"))\r\n this._relationships.set(\"DeliveredFor\", new Set());\r\n\r\n return this._relationships.get(\"DeliveredFor\");\r\n }\r\n set _DeliveredFor(values: Set) {\r\n this._relationships.set(\"DeliveredFor\", values);\r\n }\r\n\r\n // Relationship DeliversAccount, returns AccountRole CorrespondenceDeliversAccountRole[]\r\n private __DeliversAccount: CorrespondenceDeliversAccountRole[];\r\n DeliversAccount(_context?: BaseDataContext): CorrespondenceDeliversAccountRole[] {\r\n if (this.__DeliversAccount)\r\n return this.__DeliversAccount;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliversAccount), (id) => context.get(id) as CorrespondenceDeliversAccountRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliversAccount(values: CorrespondenceDeliversAccountRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliversAccount = values;\r\n }\r\n get _DeliversAccount(): Set {\r\n if (!this._relationships.has(\"DeliversAccount\"))\r\n this._relationships.set(\"DeliversAccount\", new Set());\r\n\r\n return this._relationships.get(\"DeliversAccount\");\r\n }\r\n set _DeliversAccount(values: Set) {\r\n this._relationships.set(\"DeliversAccount\", values);\r\n }\r\n\r\n // Relationship DeliversEmail, returns DataPointEmail CorrespondenceDeliversEmail[]\r\n private __DeliversEmail: CorrespondenceDeliversEmail[];\r\n DeliversEmail(_context?: BaseDataContext): CorrespondenceDeliversEmail[] {\r\n if (this.__DeliversEmail)\r\n return this.__DeliversEmail;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliversEmail), (id) => context.get(id) as CorrespondenceDeliversEmail);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliversEmail(values: CorrespondenceDeliversEmail[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliversEmail = values;\r\n }\r\n get _DeliversEmail(): Set {\r\n if (!this._relationships.has(\"DeliversEmail\"))\r\n this._relationships.set(\"DeliversEmail\", new Set());\r\n\r\n return this._relationships.get(\"DeliversEmail\");\r\n }\r\n set _DeliversEmail(values: Set) {\r\n this._relationships.set(\"DeliversEmail\", values);\r\n }\r\n\r\n // Relationship MailsTo, returns DataGroup CorrespondenceMailsToDataGroup[]\r\n private __MailsTo: CorrespondenceMailsToDataGroup[];\r\n MailsTo(_context?: BaseDataContext): CorrespondenceMailsToDataGroup[] {\r\n if (this.__MailsTo)\r\n return this.__MailsTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._MailsTo), (id) => context.get(id) as CorrespondenceMailsToDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMailsTo(values: CorrespondenceMailsToDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__MailsTo = values;\r\n }\r\n get _MailsTo(): Set {\r\n if (!this._relationships.has(\"MailsTo\"))\r\n this._relationships.set(\"MailsTo\", new Set());\r\n\r\n return this._relationships.get(\"MailsTo\");\r\n }\r\n set _MailsTo(values: Set) {\r\n this._relationships.set(\"MailsTo\", values);\r\n }\r\n\r\n // Relationship ParameterSubstitutes, returns DataPoint CorrespondenceParameterSubstitutesDataPoint[]\r\n private __ParameterSubstitutes: CorrespondenceParameterSubstitutesDataPoint[];\r\n ParameterSubstitutes(_context?: BaseDataContext): CorrespondenceParameterSubstitutesDataPoint[] {\r\n if (this.__ParameterSubstitutes)\r\n return this.__ParameterSubstitutes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ParameterSubstitutes), (id) => context.get(id) as CorrespondenceParameterSubstitutesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setParameterSubstitutes(values: CorrespondenceParameterSubstitutesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ParameterSubstitutes = values;\r\n }\r\n get _ParameterSubstitutes(): Set {\r\n if (!this._relationships.has(\"ParameterSubstitutes\"))\r\n this._relationships.set(\"ParameterSubstitutes\", new Set());\r\n\r\n return this._relationships.get(\"ParameterSubstitutes\");\r\n }\r\n set _ParameterSubstitutes(values: Set) {\r\n this._relationships.set(\"ParameterSubstitutes\", values);\r\n }\r\n\r\n // Relationship PertainsTo, returns Account CorrespondencePertainsToAccount[]\r\n private __PertainsTo: CorrespondencePertainsToAccount[];\r\n PertainsTo(_context?: BaseDataContext): CorrespondencePertainsToAccount[] {\r\n if (this.__PertainsTo)\r\n return this.__PertainsTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._PertainsTo), (id) => context.get(id) as CorrespondencePertainsToAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPertainsTo(values: CorrespondencePertainsToAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__PertainsTo = values;\r\n }\r\n get _PertainsTo(): Set {\r\n if (!this._relationships.has(\"PertainsTo\"))\r\n this._relationships.set(\"PertainsTo\", new Set());\r\n\r\n return this._relationships.get(\"PertainsTo\");\r\n }\r\n set _PertainsTo(values: Set) {\r\n this._relationships.set(\"PertainsTo\", values);\r\n }\r\n\r\n // Relationship PullsFrom, returns DataStore CorrespondencePullsFromDataStore[]\r\n private __PullsFrom: CorrespondencePullsFromDataStore[];\r\n PullsFrom(_context?: BaseDataContext): CorrespondencePullsFromDataStore[] {\r\n if (this.__PullsFrom)\r\n return this.__PullsFrom;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._PullsFrom), (id) => context.get(id) as CorrespondencePullsFromDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPullsFrom(values: CorrespondencePullsFromDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__PullsFrom = values;\r\n }\r\n get _PullsFrom(): Set {\r\n if (!this._relationships.has(\"PullsFrom\"))\r\n this._relationships.set(\"PullsFrom\", new Set());\r\n\r\n return this._relationships.get(\"PullsFrom\");\r\n }\r\n set _PullsFrom(values: Set) {\r\n this._relationships.set(\"PullsFrom\", values);\r\n }\r\n\r\n // Relationship Sends, returns Document CorrespondenceSendsDocument[]\r\n private __Sends: CorrespondenceSendsDocument[];\r\n Sends(_context?: BaseDataContext): CorrespondenceSendsDocument[] {\r\n if (this.__Sends)\r\n return this.__Sends;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sends), (id) => context.get(id) as CorrespondenceSendsDocument);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSends(values: CorrespondenceSendsDocument[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sends = values;\r\n }\r\n get _Sends(): Set {\r\n if (!this._relationships.has(\"Sends\"))\r\n this._relationships.set(\"Sends\", new Set());\r\n\r\n return this._relationships.get(\"Sends\");\r\n }\r\n set _Sends(values: Set) {\r\n this._relationships.set(\"Sends\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'DeliveredFor',\r\n edgeType: CorrespondenceDeliveredForCorrespondenceTask,\r\n otherVertexPropertyName: 'RequestsDeliveryBy',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n {\r\n propertyName: 'DeliversAccount',\r\n edgeType: CorrespondenceDeliversAccountRole,\r\n otherVertexPropertyName: 'DeliveredBy',\r\n otherVertexType: AccountRole,\r\n },\r\n {\r\n propertyName: 'DeliversEmail',\r\n edgeType: CorrespondenceDeliversEmail,\r\n otherVertexPropertyName: 'DeliveredBy',\r\n otherVertexType: DataPointEmail,\r\n },\r\n {\r\n propertyName: 'MailsTo',\r\n edgeType: CorrespondenceMailsToDataGroup,\r\n otherVertexPropertyName: 'MailedBy',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutes',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n {\r\n propertyName: 'PertainsTo',\r\n edgeType: CorrespondencePertainsToAccount,\r\n otherVertexPropertyName: 'Communicates',\r\n otherVertexType: Account,\r\n },\r\n {\r\n propertyName: 'PullsFrom',\r\n edgeType: CorrespondencePullsFromDataStore,\r\n otherVertexPropertyName: 'GivesTo',\r\n otherVertexType: DataStore,\r\n },\r\n {\r\n propertyName: 'Sends',\r\n edgeType: CorrespondenceSendsDocument,\r\n otherVertexPropertyName: 'SentBy',\r\n otherVertexType: Document,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Correspondence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Correspondence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n Id: model.Id,\r\n DataStoreId: model.DataStoreId,\r\n Locked: model.Locked,\r\n Status: model.Status,\r\n ToRecipients: model.ToRecipients,\r\n CcRecipients: model.CcRecipients,\r\n BccRecipients: model.BccRecipients,\r\n EmailSubjectTemplate: model.EmailSubjectTemplate,\r\n EmailSubject: model.EmailSubject,\r\n EmailMessageTemplate: model.EmailMessageTemplate,\r\n EmailMessage: model.EmailMessage,\r\n SentMessage: model.SentMessage,\r\n DocumentCategory: model.DocumentCategory,\r\n DocumentTags: model.DocumentTags,\r\n CorrespondenceType: model.CorrespondenceType,\r\n Preferences: model.Preferences,\r\n AllowRecipientEditing: model.AllowRecipientEditing,\r\n EmailThreadId: model.EmailThreadId,\r\n AddressTo: model.AddressTo,\r\n AddressLine1: model.AddressLine1,\r\n AddressLine2: model.AddressLine2,\r\n AddressLine3: model.AddressLine3,\r\n AddressCity: model.AddressCity,\r\n AddressState: model.AddressState,\r\n AddressZip: model.AddressZip,\r\n DeliveredFor: ModelUtils.serializeShallowEdge(model.DeliveredFor(), 'DeliveredFor'),\r\n DeliversAccount: ModelUtils.serializeShallowEdge(model.DeliversAccount(), 'DeliversAccount'),\r\n DeliversEmail: ModelUtils.serializeShallowEdge(model.DeliversEmail(), 'DeliversEmail'),\r\n MailsTo: ModelUtils.serializeShallowEdge(model.MailsTo(), 'MailsTo'),\r\n ParameterSubstitutes: ModelUtils.serializeShallowEdge(model.ParameterSubstitutes(), 'ParameterSubstitutes'),\r\n PertainsTo: ModelUtils.serializeShallowEdge(model.PertainsTo(), 'PertainsTo'),\r\n PullsFrom: ModelUtils.serializeShallowEdge(model.PullsFrom(), 'PullsFrom'),\r\n Sends: ModelUtils.serializeShallowEdge(model.Sends(), 'Sends'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Correspondence {\r\n let clone = new Correspondence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._DeliveredFor = _.cloneDeep(this._DeliveredFor);\r\n clone._DeliversAccount = _.cloneDeep(this._DeliversAccount);\r\n clone._DeliversEmail = _.cloneDeep(this._DeliversEmail);\r\n clone._MailsTo = _.cloneDeep(this._MailsTo);\r\n clone._ParameterSubstitutes = _.cloneDeep(this._ParameterSubstitutes);\r\n clone._PertainsTo = _.cloneDeep(this._PertainsTo);\r\n clone._PullsFrom = _.cloneDeep(this._PullsFrom);\r\n clone._Sends = _.cloneDeep(this._Sends);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class CorrespondenceDeliveredForCorrespondenceTask extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondenceDeliveredForCorrespondenceTask\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __RequestsDeliveryBy: Correspondence;\r\n\r\n RequestsDeliveryBy(context?: BaseDataContext): Correspondence {\r\n if (this.__RequestsDeliveryBy)\r\n return this.__RequestsDeliveryBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._RequestsDeliveryBy) as Correspondence;\r\n }\r\n setRequestsDeliveryBy(value: Correspondence) {\r\n this.__RequestsDeliveryBy = value;\r\n }\r\n get _RequestsDeliveryBy(): string {\r\n return this.Out;\r\n }\r\n set _RequestsDeliveryBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TaskCorrespondence\r\n private __DeliveredFor: TaskCorrespondence;\r\n\r\n DeliveredFor(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__DeliveredFor)\r\n return this.__DeliveredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliveredFor) as TaskCorrespondence;\r\n }\r\n setDeliveredFor(value: TaskCorrespondence) {\r\n this.__DeliveredFor = value;\r\n }\r\n get _DeliveredFor(): string {\r\n return this.In;\r\n }\r\n set _DeliveredFor(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondenceDeliveredForCorrespondenceTask {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondenceDeliveredForCorrespondenceTask {\r\n let clone = new CorrespondenceDeliveredForCorrespondenceTask();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondenceDeliversAccountRole extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondenceDeliversAccountRole\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get AddressType(): string {\r\n return this.data.AddressType;\r\n }\r\n set AddressType(value: string) {\r\n this.data.AddressType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __DeliveredBy: Correspondence;\r\n\r\n DeliveredBy(context?: BaseDataContext): Correspondence {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliveredBy) as Correspondence;\r\n }\r\n setDeliveredBy(value: Correspondence) {\r\n this.__DeliveredBy = value;\r\n }\r\n get _DeliveredBy(): string {\r\n return this.Out;\r\n }\r\n set _DeliveredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to AccountRole\r\n private __DeliversAccount: AccountRole;\r\n\r\n DeliversAccount(context?: BaseDataContext): AccountRole {\r\n if (this.__DeliversAccount)\r\n return this.__DeliversAccount;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliversAccount) as AccountRole;\r\n }\r\n setDeliversAccount(value: AccountRole) {\r\n this.__DeliversAccount = value;\r\n }\r\n get _DeliversAccount(): string {\r\n return this.In;\r\n }\r\n set _DeliversAccount(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondenceDeliversAccountRole {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondenceDeliversAccountRole {\r\n let clone = new CorrespondenceDeliversAccountRole();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondenceDeliversEmail extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondenceDeliversEmail\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get AddressType(): string {\r\n return this.data.AddressType;\r\n }\r\n set AddressType(value: string) {\r\n this.data.AddressType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __DeliveredBy: Correspondence;\r\n\r\n DeliveredBy(context?: BaseDataContext): Correspondence {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliveredBy) as Correspondence;\r\n }\r\n setDeliveredBy(value: Correspondence) {\r\n this.__DeliveredBy = value;\r\n }\r\n get _DeliveredBy(): string {\r\n return this.Out;\r\n }\r\n set _DeliveredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPointEmail\r\n private __DeliversEmail: DataPointEmail;\r\n\r\n DeliversEmail(context?: BaseDataContext): DataPointEmail {\r\n if (this.__DeliversEmail)\r\n return this.__DeliversEmail;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliversEmail) as DataPointEmail;\r\n }\r\n setDeliversEmail(value: DataPointEmail) {\r\n this.__DeliversEmail = value;\r\n }\r\n get _DeliversEmail(): string {\r\n return this.In;\r\n }\r\n set _DeliversEmail(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondenceDeliversEmail {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondenceDeliversEmail {\r\n let clone = new CorrespondenceDeliversEmail();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondenceMailsToDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondenceMailsToDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __MailedBy: Correspondence;\r\n\r\n MailedBy(context?: BaseDataContext): Correspondence {\r\n if (this.__MailedBy)\r\n return this.__MailedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._MailedBy) as Correspondence;\r\n }\r\n setMailedBy(value: Correspondence) {\r\n this.__MailedBy = value;\r\n }\r\n get _MailedBy(): string {\r\n return this.Out;\r\n }\r\n set _MailedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __MailsTo: DataGroup;\r\n\r\n MailsTo(context?: BaseDataContext): DataGroup {\r\n if (this.__MailsTo)\r\n return this.__MailsTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._MailsTo) as DataGroup;\r\n }\r\n setMailsTo(value: DataGroup) {\r\n this.__MailsTo = value;\r\n }\r\n get _MailsTo(): string {\r\n return this.In;\r\n }\r\n set _MailsTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondenceMailsToDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondenceMailsToDataGroup {\r\n let clone = new CorrespondenceMailsToDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondenceParameterSubstitutesDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondenceParameterSubstitutesDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ParameterName(): string {\r\n return this.data.ParameterName;\r\n }\r\n set ParameterName(value: string) {\r\n this.data.ParameterName = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __ParameterSubstitutedBy: Correspondence;\r\n\r\n ParameterSubstitutedBy(context?: BaseDataContext): Correspondence {\r\n if (this.__ParameterSubstitutedBy)\r\n return this.__ParameterSubstitutedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ParameterSubstitutedBy) as Correspondence;\r\n }\r\n setParameterSubstitutedBy(value: Correspondence) {\r\n this.__ParameterSubstitutedBy = value;\r\n }\r\n get _ParameterSubstitutedBy(): string {\r\n return this.Out;\r\n }\r\n set _ParameterSubstitutedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __ParameterSubstitutes: DataPoint;\r\n\r\n ParameterSubstitutes(context?: BaseDataContext): DataPoint {\r\n if (this.__ParameterSubstitutes)\r\n return this.__ParameterSubstitutes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ParameterSubstitutes) as DataPoint;\r\n }\r\n setParameterSubstitutes(value: DataPoint) {\r\n this.__ParameterSubstitutes = value;\r\n }\r\n get _ParameterSubstitutes(): string {\r\n return this.In;\r\n }\r\n set _ParameterSubstitutes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondenceParameterSubstitutesDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondenceParameterSubstitutesDataPoint {\r\n let clone = new CorrespondenceParameterSubstitutesDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondencePertainsToAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondencePertainsToAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __Communicates: Correspondence;\r\n\r\n Communicates(context?: BaseDataContext): Correspondence {\r\n if (this.__Communicates)\r\n return this.__Communicates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Communicates) as Correspondence;\r\n }\r\n setCommunicates(value: Correspondence) {\r\n this.__Communicates = value;\r\n }\r\n get _Communicates(): string {\r\n return this.Out;\r\n }\r\n set _Communicates(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __PertainsTo: Account;\r\n\r\n PertainsTo(context?: BaseDataContext): Account {\r\n if (this.__PertainsTo)\r\n return this.__PertainsTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._PertainsTo) as Account;\r\n }\r\n setPertainsTo(value: Account) {\r\n this.__PertainsTo = value;\r\n }\r\n get _PertainsTo(): string {\r\n return this.In;\r\n }\r\n set _PertainsTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondencePertainsToAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondencePertainsToAccount {\r\n let clone = new CorrespondencePertainsToAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondencePullsFromDataStore extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondencePullsFromDataStore\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __GivesTo: Correspondence;\r\n\r\n GivesTo(context?: BaseDataContext): Correspondence {\r\n if (this.__GivesTo)\r\n return this.__GivesTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._GivesTo) as Correspondence;\r\n }\r\n setGivesTo(value: Correspondence) {\r\n this.__GivesTo = value;\r\n }\r\n get _GivesTo(): string {\r\n return this.Out;\r\n }\r\n set _GivesTo(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStore\r\n private __PullsFrom: DataStore;\r\n\r\n PullsFrom(context?: BaseDataContext): DataStore {\r\n if (this.__PullsFrom)\r\n return this.__PullsFrom;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._PullsFrom) as DataStore;\r\n }\r\n setPullsFrom(value: DataStore) {\r\n this.__PullsFrom = value;\r\n }\r\n get _PullsFrom(): string {\r\n return this.In;\r\n }\r\n set _PullsFrom(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondencePullsFromDataStore {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondencePullsFromDataStore {\r\n let clone = new CorrespondencePullsFromDataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CorrespondenceSendsDocument extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"CorrespondenceSendsDocument\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Correspondence\r\n private __SentBy: Correspondence;\r\n\r\n SentBy(context?: BaseDataContext): Correspondence {\r\n if (this.__SentBy)\r\n return this.__SentBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._SentBy) as Correspondence;\r\n }\r\n setSentBy(value: Correspondence) {\r\n this.__SentBy = value;\r\n }\r\n get _SentBy(): string {\r\n return this.Out;\r\n }\r\n set _SentBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Document\r\n private __Sends: Document;\r\n\r\n Sends(context?: BaseDataContext): Document {\r\n if (this.__Sends)\r\n return this.__Sends;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sends) as Document;\r\n }\r\n setSends(value: Document) {\r\n this.__Sends = value;\r\n }\r\n get _Sends(): string {\r\n return this.In;\r\n }\r\n set _Sends(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CorrespondenceSendsDocument {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CorrespondenceSendsDocument {\r\n let clone = new CorrespondenceSendsDocument();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataGroup {\r\n readonly CommittedEditions?: number[],\r\n readonly EditionParticipation?: { [index: number]: boolean },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Repeatable: boolean,\r\n ReferenceId?: string,\r\n ReferenceObject?: string,\r\n ProductId?: string,\r\n Tag?: string,\r\n readonly DataGroupType?: string,\r\n TrackingKey?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n\r\n RepeatsWithSection?: object[],\r\n ChildOf?: object[],\r\n IsContainedBy?: object[],\r\n MailedBy?: object[],\r\n ParentOf?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class DataGroup extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataGroup\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataGroup }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CommittedEditions(): number[] {\r\n return this.data.CommittedEditions;\r\n }\r\n get EditionParticipation(): { [index: number]: boolean } {\r\n return this.data.EditionParticipation;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get Repeatable(): boolean {\r\n return this.data.Repeatable;\r\n }\r\n get ReferenceId(): string {\r\n return this.data.ReferenceId;\r\n }\r\n set ReferenceId(value: string) {\r\n this.data.ReferenceId = value;\r\n }\r\n get ReferenceObject(): string {\r\n return this.data.ReferenceObject;\r\n }\r\n set ReferenceObject(value: string) {\r\n this.data.ReferenceObject = value;\r\n }\r\n get ProductId(): string {\r\n return this.data.ProductId;\r\n }\r\n set ProductId(value: string) {\r\n this.data.ProductId = value;\r\n }\r\n get Tag(): string {\r\n return this.data.Tag;\r\n }\r\n set Tag(value: string) {\r\n this.data.Tag = value;\r\n }\r\n get DataGroupType(): string {\r\n return this.data.DataGroupType;\r\n }\r\n get TrackingKey(): string {\r\n return this.data.TrackingKey;\r\n }\r\n set TrackingKey(value: string) {\r\n this.data.TrackingKey = value;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get ParentId(): string {\r\n return this.data.ParentId;\r\n }\r\n get RepeatableAncestors(): string[] {\r\n return this.data.RepeatableAncestors;\r\n }\r\n get RepeatablePath(): any[] {\r\n return this.data.RepeatablePath;\r\n }\r\n get RepeatablePathWasCalculated(): boolean {\r\n return this.data.RepeatablePathWasCalculated;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship RepeatsWithSection, returns Section SectionRepeatsWithDataGroup[]\r\n private __RepeatsWithSection: SectionRepeatsWithDataGroup[];\r\n RepeatsWithSection(_context?: BaseDataContext): SectionRepeatsWithDataGroup[] {\r\n if (this.__RepeatsWithSection)\r\n return this.__RepeatsWithSection;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._RepeatsWithSection), (id) => context.get(id) as SectionRepeatsWithDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRepeatsWithSection(values: SectionRepeatsWithDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__RepeatsWithSection = values;\r\n }\r\n get _RepeatsWithSection(): Set {\r\n if (!this._relationships.has(\"RepeatsWithSection\"))\r\n this._relationships.set(\"RepeatsWithSection\", new Set());\r\n\r\n return this._relationships.get(\"RepeatsWithSection\");\r\n }\r\n set _RepeatsWithSection(values: Set) {\r\n this._relationships.set(\"RepeatsWithSection\", values);\r\n }\r\n\r\n // Relationship ChildOf, returns DataGroup DataGroupChildDataGroup[]\r\n private __ChildOf: DataGroupChildDataGroup[];\r\n ChildOf(_context?: BaseDataContext): DataGroupChildDataGroup[] {\r\n if (this.__ChildOf)\r\n return this.__ChildOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ChildOf), (id) => context.get(id) as DataGroupChildDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setChildOf(values: DataGroupChildDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ChildOf = values;\r\n }\r\n get _ChildOf(): Set {\r\n if (!this._relationships.has(\"ChildOf\"))\r\n this._relationships.set(\"ChildOf\", new Set());\r\n\r\n return this._relationships.get(\"ChildOf\");\r\n }\r\n set _ChildOf(values: Set) {\r\n this._relationships.set(\"ChildOf\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns DataStore DataStoreContainsDataGroup[]\r\n private __IsContainedBy: DataStoreContainsDataGroup[];\r\n IsContainedBy(_context?: BaseDataContext): DataStoreContainsDataGroup[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as DataStoreContainsDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: DataStoreContainsDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship MailedBy, returns Correspondence CorrespondenceMailsToDataGroup[]\r\n private __MailedBy: CorrespondenceMailsToDataGroup[];\r\n MailedBy(_context?: BaseDataContext): CorrespondenceMailsToDataGroup[] {\r\n if (this.__MailedBy)\r\n return this.__MailedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._MailedBy), (id) => context.get(id) as CorrespondenceMailsToDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMailedBy(values: CorrespondenceMailsToDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__MailedBy = values;\r\n }\r\n get _MailedBy(): Set {\r\n if (!this._relationships.has(\"MailedBy\"))\r\n this._relationships.set(\"MailedBy\", new Set());\r\n\r\n return this._relationships.get(\"MailedBy\");\r\n }\r\n set _MailedBy(values: Set) {\r\n this._relationships.set(\"MailedBy\", values);\r\n }\r\n\r\n // Relationship ParentOf, returns DataGroup DataGroupChildDataGroup[]\r\n private __ParentOf: DataGroupChildDataGroup[];\r\n ParentOf(_context?: BaseDataContext): DataGroupChildDataGroup[] {\r\n if (this.__ParentOf)\r\n return this.__ParentOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ParentOf), (id) => context.get(id) as DataGroupChildDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setParentOf(values: DataGroupChildDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ParentOf = values;\r\n }\r\n get _ParentOf(): Set {\r\n if (!this._relationships.has(\"ParentOf\"))\r\n this._relationships.set(\"ParentOf\", new Set());\r\n\r\n return this._relationships.get(\"ParentOf\");\r\n }\r\n set _ParentOf(values: Set) {\r\n this._relationships.set(\"ParentOf\", values);\r\n }\r\n\r\n // Relationship Contains, returns DataPoint DataGroupContainsDataPoint[]\r\n private __Contains: DataGroupContainsDataPoint[];\r\n Contains(_context?: BaseDataContext): DataGroupContainsDataPoint[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as DataGroupContainsDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: DataGroupContainsDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'RepeatsWithSection',\r\n edgeType: SectionRepeatsWithDataGroup,\r\n otherVertexPropertyName: 'RepeatsWith',\r\n otherVertexType: Section,\r\n },\r\n {\r\n propertyName: 'ChildOf',\r\n edgeType: DataGroupChildDataGroup,\r\n otherVertexPropertyName: 'ParentOf',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataStoreContainsDataGroup,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataStore,\r\n },\r\n {\r\n propertyName: 'MailedBy',\r\n edgeType: CorrespondenceMailsToDataGroup,\r\n otherVertexPropertyName: 'MailsTo',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'ParentOf',\r\n edgeType: DataGroupChildDataGroup,\r\n otherVertexPropertyName: 'ChildOf',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'Contains',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataGroup {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataGroup) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n EditionParticipation: model.EditionParticipation,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Repeatable: model.Repeatable,\r\n ReferenceId: model.ReferenceId,\r\n ReferenceObject: model.ReferenceObject,\r\n ProductId: model.ProductId,\r\n Tag: model.Tag,\r\n DataGroupType: model.DataGroupType,\r\n TrackingKey: model.TrackingKey,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n RepeatsWithSection: ModelUtils.serializeShallowEdge(model.RepeatsWithSection(), 'RepeatsWithSection'),\r\n ChildOf: ModelUtils.serializeShallowEdge(model.ChildOf(), 'ChildOf'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n MailedBy: ModelUtils.serializeShallowEdge(model.MailedBy(), 'MailedBy'),\r\n ParentOf: ModelUtils.serializeShallowEdge(model.ParentOf(), 'ParentOf'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataGroup {\r\n let clone = new DataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._RepeatsWithSection = _.cloneDeep(this._RepeatsWithSection);\r\n clone._ChildOf = _.cloneDeep(this._ChildOf);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._MailedBy = _.cloneDeep(this._MailedBy);\r\n clone._ParentOf = _.cloneDeep(this._ParentOf);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class DataGroupChildDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupChildDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataGroup\r\n private __ChildOf: DataGroup;\r\n\r\n ChildOf(context?: BaseDataContext): DataGroup {\r\n if (this.__ChildOf)\r\n return this.__ChildOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ChildOf) as DataGroup;\r\n }\r\n setChildOf(value: DataGroup) {\r\n this.__ChildOf = value;\r\n }\r\n get _ChildOf(): string {\r\n return this.Out;\r\n }\r\n set _ChildOf(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __ParentOf: DataGroup;\r\n\r\n ParentOf(context?: BaseDataContext): DataGroup {\r\n if (this.__ParentOf)\r\n return this.__ParentOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ParentOf) as DataGroup;\r\n }\r\n setParentOf(value: DataGroup) {\r\n this.__ParentOf = value;\r\n }\r\n get _ParentOf(): string {\r\n return this.In;\r\n }\r\n set _ParentOf(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataGroupChildDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataGroupChildDataGroup {\r\n let clone = new DataGroupChildDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataGroupContainsDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupContainsDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataGroup\r\n private __IsContainedBy: DataGroup;\r\n\r\n IsContainedBy(context?: BaseDataContext): DataGroup {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as DataGroup;\r\n }\r\n setIsContainedBy(value: DataGroup) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __Contains: DataPoint;\r\n\r\n Contains(context?: BaseDataContext): DataPoint {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as DataPoint;\r\n }\r\n setContains(value: DataPoint) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataGroupContainsDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataGroupContainsDataPoint {\r\n let clone = new DataGroupContainsDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataGroupDocument extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupDocument\";\r\n }\r\n\r\n // Properties\r\n get CommittedEditions(): number[] {\r\n return this.data.CommittedEditions;\r\n }\r\n get EditionParticipation(): { [index: number]: boolean } {\r\n return this.data.EditionParticipation;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get DataPoints(): any[] {\r\n return this.data.DataPoints;\r\n }\r\n get FixedDataGroups(): any[] {\r\n return this.data.FixedDataGroups;\r\n }\r\n get Repeatable(): boolean {\r\n return this.data.Repeatable;\r\n }\r\n get DataGroupLinks(): any[] {\r\n return this.data.DataGroupLinks;\r\n }\r\n get ReferenceId(): string {\r\n return this.data.ReferenceId;\r\n }\r\n set ReferenceId(value: string) {\r\n this.data.ReferenceId = value;\r\n }\r\n get ReferenceObject(): string {\r\n return this.data.ReferenceObject;\r\n }\r\n set ReferenceObject(value: string) {\r\n this.data.ReferenceObject = value;\r\n }\r\n get ProductId(): string {\r\n return this.data.ProductId;\r\n }\r\n set ProductId(value: string) {\r\n this.data.ProductId = value;\r\n }\r\n get Tag(): string {\r\n return this.data.Tag;\r\n }\r\n set Tag(value: string) {\r\n this.data.Tag = value;\r\n }\r\n get DataGroupType(): string {\r\n return this.data.DataGroupType;\r\n }\r\n get TrackingKey(): string {\r\n return this.data.TrackingKey;\r\n }\r\n set TrackingKey(value: string) {\r\n this.data.TrackingKey = value;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get ParentId(): string {\r\n return this.data.ParentId;\r\n }\r\n get ParentType(): string {\r\n return this.data.ParentType;\r\n }\r\n get RepeatableAncestors(): string[] {\r\n return this.data.RepeatableAncestors;\r\n }\r\n get RepeatablePath(): any[] {\r\n return this.data.RepeatablePath;\r\n }\r\n get RepeatablePathWasCalculated(): boolean {\r\n return this.data.RepeatablePathWasCalculated;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): DataGroupDocument {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: DataGroupDocument) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n EditionParticipation: model.EditionParticipation,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DataPoints: model.DataPoints,\r\n FixedDataGroups: model.FixedDataGroups,\r\n Repeatable: model.Repeatable,\r\n DataGroupLinks: model.DataGroupLinks,\r\n ReferenceId: model.ReferenceId,\r\n ReferenceObject: model.ReferenceObject,\r\n ProductId: model.ProductId,\r\n Tag: model.Tag,\r\n DataGroupType: model.DataGroupType,\r\n TrackingKey: model.TrackingKey,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n ParentType: model.ParentType,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataGroupDocument {\r\n let clone = new DataGroupDocument();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataStore {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Aliases?: string[],\r\n readonly OwnerId: string,\r\n readonly Editions?: { [index: number]: string },\r\n readonly CommittedEditions?: number[],\r\n readonly PartiallyCommittedEditions?: number[],\r\n readonly RepeatableAncestorsWasCalculated?: boolean,\r\n readonly MigratedEditions?: { [index: number]: number },\r\n\r\n IsPopulatedBy?: object[],\r\n CalculatedBy?: object[],\r\n GivesTo?: object[],\r\n IsStoredFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class DataStore extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataStore\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataStore }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get Aliases(): string[] {\r\n return this.data.Aliases;\r\n }\r\n get OwnerId(): string {\r\n return this.data.OwnerId;\r\n }\r\n get Editions(): { [index: number]: string } {\r\n return this.data.Editions;\r\n }\r\n get CommittedEditions(): number[] {\r\n return this.data.CommittedEditions;\r\n }\r\n get PartiallyCommittedEditions(): number[] {\r\n return this.data.PartiallyCommittedEditions;\r\n }\r\n get RepeatableAncestorsWasCalculated(): boolean {\r\n return this.data.RepeatableAncestorsWasCalculated;\r\n }\r\n get MigratedEditions(): { [index: number]: number } {\r\n return this.data.MigratedEditions;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPopulatedBy, returns Application ApplicationPopulatesDataStore[]\r\n private __IsPopulatedBy: ApplicationPopulatesDataStore[];\r\n IsPopulatedBy(_context?: BaseDataContext): ApplicationPopulatesDataStore[] {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPopulatedBy), (id) => context.get(id) as ApplicationPopulatesDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPopulatedBy(values: ApplicationPopulatesDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPopulatedBy = values;\r\n }\r\n get _IsPopulatedBy(): Set {\r\n if (!this._relationships.has(\"IsPopulatedBy\"))\r\n this._relationships.set(\"IsPopulatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPopulatedBy\");\r\n }\r\n set _IsPopulatedBy(values: Set) {\r\n this._relationships.set(\"IsPopulatedBy\", values);\r\n }\r\n\r\n // Relationship CalculatedBy, returns Map MapCalculatesDataStore[]\r\n private __CalculatedBy: MapCalculatesDataStore[];\r\n CalculatedBy(_context?: BaseDataContext): MapCalculatesDataStore[] {\r\n if (this.__CalculatedBy)\r\n return this.__CalculatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._CalculatedBy), (id) => context.get(id) as MapCalculatesDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCalculatedBy(values: MapCalculatesDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__CalculatedBy = values;\r\n }\r\n get _CalculatedBy(): Set {\r\n if (!this._relationships.has(\"CalculatedBy\"))\r\n this._relationships.set(\"CalculatedBy\", new Set());\r\n\r\n return this._relationships.get(\"CalculatedBy\");\r\n }\r\n set _CalculatedBy(values: Set) {\r\n this._relationships.set(\"CalculatedBy\", values);\r\n }\r\n\r\n // Relationship GivesTo, returns Correspondence CorrespondencePullsFromDataStore[]\r\n private __GivesTo: CorrespondencePullsFromDataStore[];\r\n GivesTo(_context?: BaseDataContext): CorrespondencePullsFromDataStore[] {\r\n if (this.__GivesTo)\r\n return this.__GivesTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._GivesTo), (id) => context.get(id) as CorrespondencePullsFromDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setGivesTo(values: CorrespondencePullsFromDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__GivesTo = values;\r\n }\r\n get _GivesTo(): Set {\r\n if (!this._relationships.has(\"GivesTo\"))\r\n this._relationships.set(\"GivesTo\", new Set());\r\n\r\n return this._relationships.get(\"GivesTo\");\r\n }\r\n set _GivesTo(values: Set) {\r\n this._relationships.set(\"GivesTo\", values);\r\n }\r\n\r\n // Relationship IsStoredFor, returns Workflow WorkflowStoresDataStore[]\r\n private __IsStoredFor: WorkflowStoresDataStore[];\r\n IsStoredFor(_context?: BaseDataContext): WorkflowStoresDataStore[] {\r\n if (this.__IsStoredFor)\r\n return this.__IsStoredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsStoredFor), (id) => context.get(id) as WorkflowStoresDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsStoredFor(values: WorkflowStoresDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsStoredFor = values;\r\n }\r\n get _IsStoredFor(): Set {\r\n if (!this._relationships.has(\"IsStoredFor\"))\r\n this._relationships.set(\"IsStoredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsStoredFor\");\r\n }\r\n set _IsStoredFor(values: Set) {\r\n this._relationships.set(\"IsStoredFor\", values);\r\n }\r\n\r\n // Relationship Contains, returns DataGroup DataStoreContainsDataGroup[]\r\n private __Contains: DataStoreContainsDataGroup[];\r\n Contains(_context?: BaseDataContext): DataStoreContainsDataGroup[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as DataStoreContainsDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: DataStoreContainsDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: ApplicationPopulatesDataStore,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Application,\r\n },\r\n {\r\n propertyName: 'CalculatedBy',\r\n edgeType: MapCalculatesDataStore,\r\n otherVertexPropertyName: 'Calculates',\r\n otherVertexType: Map,\r\n },\r\n {\r\n propertyName: 'GivesTo',\r\n edgeType: CorrespondencePullsFromDataStore,\r\n otherVertexPropertyName: 'PullsFrom',\r\n otherVertexType: Correspondence,\r\n },\r\n {\r\n propertyName: 'IsStoredFor',\r\n edgeType: WorkflowStoresDataStore,\r\n otherVertexPropertyName: 'Stores',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: DataStoreContainsDataGroup,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: DataGroup,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataStore {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataStore) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Aliases: model.Aliases,\r\n OwnerId: model.OwnerId,\r\n Editions: model.Editions,\r\n CommittedEditions: model.CommittedEditions,\r\n PartiallyCommittedEditions: model.PartiallyCommittedEditions,\r\n RepeatableAncestorsWasCalculated: model.RepeatableAncestorsWasCalculated,\r\n MigratedEditions: model.MigratedEditions,\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n CalculatedBy: ModelUtils.serializeShallowEdge(model.CalculatedBy(), 'CalculatedBy'),\r\n GivesTo: ModelUtils.serializeShallowEdge(model.GivesTo(), 'GivesTo'),\r\n IsStoredFor: ModelUtils.serializeShallowEdge(model.IsStoredFor(), 'IsStoredFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataStore {\r\n let clone = new DataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._CalculatedBy = _.cloneDeep(this._CalculatedBy);\r\n clone._GivesTo = _.cloneDeep(this._GivesTo);\r\n clone._IsStoredFor = _.cloneDeep(this._IsStoredFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class DataStoreContainsDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataStoreContainsDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataStore\r\n private __IsContainedBy: DataStore;\r\n\r\n IsContainedBy(context?: BaseDataContext): DataStore {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as DataStore;\r\n }\r\n setIsContainedBy(value: DataStore) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __Contains: DataGroup;\r\n\r\n Contains(context?: BaseDataContext): DataGroup {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as DataGroup;\r\n }\r\n setContains(value: DataGroup) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataStoreContainsDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataStoreContainsDataGroup {\r\n let clone = new DataStoreContainsDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataStoreDocument extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataStoreDocument\";\r\n }\r\n\r\n // Properties\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get OwnerId(): string {\r\n return this.data.OwnerId;\r\n }\r\n get Editions(): { [index: number]: string } {\r\n return this.data.Editions;\r\n }\r\n get CommittedEditions(): number[] {\r\n return this.data.CommittedEditions;\r\n }\r\n get PartiallyCommittedEditions(): number[] {\r\n return this.data.PartiallyCommittedEditions;\r\n }\r\n get RepeatableAncestorsWasCalculated(): boolean {\r\n return this.data.RepeatableAncestorsWasCalculated;\r\n }\r\n get MigratedEditions(): { [index: number]: number } {\r\n return this.data.MigratedEditions;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): DataStoreDocument {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: DataStoreDocument) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowSetId: model.WorkflowSetId,\r\n OwnerId: model.OwnerId,\r\n Editions: model.Editions,\r\n CommittedEditions: model.CommittedEditions,\r\n PartiallyCommittedEditions: model.PartiallyCommittedEditions,\r\n RepeatableAncestorsWasCalculated: model.RepeatableAncestorsWasCalculated,\r\n MigratedEditions: model.MigratedEditions,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataStoreDocument {\r\n let clone = new DataStoreDocument();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDocument {\r\n readonly DeletedDate?: Date,\r\n Id: string,\r\n Description: string,\r\n readonly Status: string,\r\n readonly ExtractionStatus?: string,\r\n DocumentDateLabel?: string,\r\n DocumentDate?: Date,\r\n readonly OriginDate?: Date,\r\n readonly UpdatedDate?: Date,\r\n readonly ExtractionRequestedAt?: Date,\r\n readonly ExtractionExternalTrackingId?: string,\r\n readonly Size?: number,\r\n AccountId?: string,\r\n DocumentCategoryId?: string,\r\n FileExtension?: string,\r\n Tags?: string[],\r\n PolicySets?: string[],\r\n EffectiveDate?: ContractDate,\r\n readonly UploadedBy?: string,\r\n readonly ExtractionFailureReason?: string,\r\n EmailMessageIdsForAttachment?: string[],\r\n\r\n SentBy?: object[],\r\n Informs?: object[],\r\n Invoices?: object[],\r\n Satisfies?: object[]\r\n\r\n}\r\n\r\nexport class Document extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Document\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Document }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get ExtractionStatus(): string {\r\n return this.data.ExtractionStatus;\r\n }\r\n get DocumentDateLabel(): string {\r\n return this.data.DocumentDateLabel;\r\n }\r\n set DocumentDateLabel(value: string) {\r\n this.data.DocumentDateLabel = value;\r\n }\r\n get DocumentDate(): Date {\r\n return this.data.DocumentDate ? new Date(this.data.DocumentDate) : undefined;\r\n }\r\n set DocumentDate(value: Date) {\r\n this.data.DocumentDate = value;\r\n }\r\n get OriginDate(): Date {\r\n return this.data.OriginDate ? new Date(this.data.OriginDate) : undefined;\r\n }\r\n get UpdatedDate(): Date {\r\n return this.data.UpdatedDate ? new Date(this.data.UpdatedDate) : undefined;\r\n }\r\n get ExtractionRequestedAt(): Date {\r\n return this.data.ExtractionRequestedAt ? new Date(this.data.ExtractionRequestedAt) : undefined;\r\n }\r\n get ExtractionExternalTrackingId(): string {\r\n return this.data.ExtractionExternalTrackingId;\r\n }\r\n get Size(): number {\r\n return this.data.Size;\r\n }\r\n get AccountId(): string {\r\n return this.data.AccountId;\r\n }\r\n set AccountId(value: string) {\r\n this.data.AccountId = value;\r\n }\r\n get DocumentCategoryId(): string {\r\n return this.data.DocumentCategoryId;\r\n }\r\n set DocumentCategoryId(value: string) {\r\n this.data.DocumentCategoryId = value;\r\n }\r\n get FileExtension(): string {\r\n return this.data.FileExtension;\r\n }\r\n set FileExtension(value: string) {\r\n this.data.FileExtension = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n get PolicySets(): string[] {\r\n return this.data.PolicySets;\r\n }\r\n set PolicySets(value: string[]) {\r\n this.data.PolicySets = value;\r\n }\r\n get EffectiveDate(): ContractDate {\r\n this.data.EffectiveDate = ModelUtils.deserializeContractDate(this.data.EffectiveDate);\r\n return this.data.EffectiveDate;\r\n }\r\n set EffectiveDate(value: ContractDate) {\r\n this.data.EffectiveDate = value;\r\n }\r\n get UploadedBy(): string {\r\n return this.data.UploadedBy;\r\n }\r\n get ExtractionFailureReason(): string {\r\n return this.data.ExtractionFailureReason;\r\n }\r\n get EmailMessageIdsForAttachment(): string[] {\r\n return this.data.EmailMessageIdsForAttachment;\r\n }\r\n set EmailMessageIdsForAttachment(value: string[]) {\r\n this.data.EmailMessageIdsForAttachment = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship SentBy, returns Correspondence CorrespondenceSendsDocument[]\r\n private __SentBy: CorrespondenceSendsDocument[];\r\n SentBy(_context?: BaseDataContext): CorrespondenceSendsDocument[] {\r\n if (this.__SentBy)\r\n return this.__SentBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._SentBy), (id) => context.get(id) as CorrespondenceSendsDocument);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSentBy(values: CorrespondenceSendsDocument[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__SentBy = values;\r\n }\r\n get _SentBy(): Set {\r\n if (!this._relationships.has(\"SentBy\"))\r\n this._relationships.set(\"SentBy\", new Set());\r\n\r\n return this._relationships.get(\"SentBy\");\r\n }\r\n set _SentBy(values: Set) {\r\n this._relationships.set(\"SentBy\", values);\r\n }\r\n\r\n // Relationship Informs, returns Transaction DocumentInformsTransaction[]\r\n private __Informs: DocumentInformsTransaction[];\r\n Informs(_context?: BaseDataContext): DocumentInformsTransaction[] {\r\n if (this.__Informs)\r\n return this.__Informs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Informs), (id) => context.get(id) as DocumentInformsTransaction);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setInforms(values: DocumentInformsTransaction[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Informs = values;\r\n }\r\n get _Informs(): Set {\r\n if (!this._relationships.has(\"Informs\"))\r\n this._relationships.set(\"Informs\", new Set());\r\n\r\n return this._relationships.get(\"Informs\");\r\n }\r\n set _Informs(values: Set) {\r\n this._relationships.set(\"Informs\", values);\r\n }\r\n\r\n // Relationship Invoices, returns Invoice DocumentInvoicesInvoice[]\r\n private __Invoices: DocumentInvoicesInvoice[];\r\n Invoices(_context?: BaseDataContext): DocumentInvoicesInvoice[] {\r\n if (this.__Invoices)\r\n return this.__Invoices;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Invoices), (id) => context.get(id) as DocumentInvoicesInvoice);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setInvoices(values: DocumentInvoicesInvoice[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Invoices = values;\r\n }\r\n get _Invoices(): Set {\r\n if (!this._relationships.has(\"Invoices\"))\r\n this._relationships.set(\"Invoices\", new Set());\r\n\r\n return this._relationships.get(\"Invoices\");\r\n }\r\n set _Invoices(values: Set) {\r\n this._relationships.set(\"Invoices\", values);\r\n }\r\n\r\n // Relationship Satisfies, returns Task DocumentSatisfiesTask[]\r\n private __Satisfies: DocumentSatisfiesTask[];\r\n Satisfies(_context?: BaseDataContext): DocumentSatisfiesTask[] {\r\n if (this.__Satisfies)\r\n return this.__Satisfies;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Satisfies), (id) => context.get(id) as DocumentSatisfiesTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSatisfies(values: DocumentSatisfiesTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Satisfies = values;\r\n }\r\n get _Satisfies(): Set {\r\n if (!this._relationships.has(\"Satisfies\"))\r\n this._relationships.set(\"Satisfies\", new Set());\r\n\r\n return this._relationships.get(\"Satisfies\");\r\n }\r\n set _Satisfies(values: Set) {\r\n this._relationships.set(\"Satisfies\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'SentBy',\r\n edgeType: CorrespondenceSendsDocument,\r\n otherVertexPropertyName: 'Sends',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Informs',\r\n edgeType: DocumentInformsTransaction,\r\n otherVertexPropertyName: 'IsInformedBy',\r\n otherVertexType: Transaction,\r\n },\r\n {\r\n propertyName: 'Invoices',\r\n edgeType: DocumentInvoicesInvoice,\r\n otherVertexPropertyName: 'IsInvoicedBy',\r\n otherVertexType: Invoice,\r\n },\r\n {\r\n propertyName: 'Satisfies',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'IsSatisfiedBy',\r\n otherVertexType: Task,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Document {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Document) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Description: model.Description,\r\n Status: model.Status,\r\n ExtractionStatus: model.ExtractionStatus,\r\n DocumentDateLabel: model.DocumentDateLabel,\r\n DocumentDate: model.DocumentDate,\r\n OriginDate: model.OriginDate,\r\n UpdatedDate: model.UpdatedDate,\r\n ExtractionRequestedAt: model.ExtractionRequestedAt,\r\n ExtractionExternalTrackingId: model.ExtractionExternalTrackingId,\r\n Size: model.Size,\r\n AccountId: model.AccountId,\r\n DocumentCategoryId: model.DocumentCategoryId,\r\n FileExtension: model.FileExtension,\r\n Tags: model.Tags,\r\n PolicySets: model.PolicySets,\r\n EffectiveDate: ModelUtils.serializeContractDate(model.data.EffectiveDate),\r\n UploadedBy: model.UploadedBy,\r\n ExtractionFailureReason: model.ExtractionFailureReason,\r\n EmailMessageIdsForAttachment: model.EmailMessageIdsForAttachment,\r\n SentBy: ModelUtils.serializeShallowEdge(model.SentBy(), 'SentBy'),\r\n Informs: ModelUtils.serializeShallowEdge(model.Informs(), 'Informs'),\r\n Invoices: ModelUtils.serializeShallowEdge(model.Invoices(), 'Invoices'),\r\n Satisfies: ModelUtils.serializeShallowEdge(model.Satisfies(), 'Satisfies'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Document {\r\n let clone = new Document();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._SentBy = _.cloneDeep(this._SentBy);\r\n clone._Informs = _.cloneDeep(this._Informs);\r\n clone._Invoices = _.cloneDeep(this._Invoices);\r\n clone._Satisfies = _.cloneDeep(this._Satisfies);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class DocumentAudit extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DocumentAudit\";\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get CorrelationKey(): string {\r\n return this.data.CorrelationKey;\r\n }\r\n get Version(): number {\r\n return this.data.Version;\r\n }\r\n get ReplacedByVersion(): number {\r\n return this.data.ReplacedByVersion;\r\n }\r\n get UpdatedTime(): Date {\r\n return this.data.UpdatedTime ? new Date(this.data.UpdatedTime) : undefined;\r\n }\r\n get UpdatedByIdentity(): string {\r\n return this.data.UpdatedByIdentity;\r\n }\r\n get DeletedByIdentity(): string {\r\n return this.data.DeletedByIdentity;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get DocumentDateLabel(): string {\r\n return this.data.DocumentDateLabel;\r\n }\r\n get DocumentDate(): Date {\r\n return this.data.DocumentDate ? new Date(this.data.DocumentDate) : undefined;\r\n }\r\n get OriginDate(): Date {\r\n return this.data.OriginDate ? new Date(this.data.OriginDate) : undefined;\r\n }\r\n get Size(): number {\r\n return this.data.Size;\r\n }\r\n get AccountId(): string {\r\n return this.data.AccountId;\r\n }\r\n set AccountId(value: string) {\r\n this.data.AccountId = value;\r\n }\r\n get DocumentCategoryId(): string {\r\n return this.data.DocumentCategoryId;\r\n }\r\n get FileExtension(): string {\r\n return this.data.FileExtension;\r\n }\r\n set FileExtension(value: string) {\r\n this.data.FileExtension = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n get PolicyTerms(): string[] {\r\n return this.data.PolicyTerms;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): DocumentAudit {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: DocumentAudit) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n CorrelationKey: model.CorrelationKey,\r\n Version: model.Version,\r\n ReplacedByVersion: model.ReplacedByVersion,\r\n UpdatedTime: model.UpdatedTime,\r\n UpdatedByIdentity: model.UpdatedByIdentity,\r\n DeletedByIdentity: model.DeletedByIdentity,\r\n Id: model.Id,\r\n Description: model.Description,\r\n Status: model.Status,\r\n DocumentDateLabel: model.DocumentDateLabel,\r\n DocumentDate: model.DocumentDate,\r\n OriginDate: model.OriginDate,\r\n Size: model.Size,\r\n AccountId: model.AccountId,\r\n DocumentCategoryId: model.DocumentCategoryId,\r\n FileExtension: model.FileExtension,\r\n Tags: model.Tags,\r\n PolicyTerms: model.PolicyTerms,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DocumentAudit {\r\n let clone = new DocumentAudit();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DocumentInformsTransaction extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DocumentInformsTransaction\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Document\r\n private __IsInformedBy: Document;\r\n\r\n IsInformedBy(context?: BaseDataContext): Document {\r\n if (this.__IsInformedBy)\r\n return this.__IsInformedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsInformedBy) as Document;\r\n }\r\n setIsInformedBy(value: Document) {\r\n this.__IsInformedBy = value;\r\n }\r\n get _IsInformedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsInformedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Transaction\r\n private __Informs: Transaction;\r\n\r\n Informs(context?: BaseDataContext): Transaction {\r\n if (this.__Informs)\r\n return this.__Informs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Informs) as Transaction;\r\n }\r\n setInforms(value: Transaction) {\r\n this.__Informs = value;\r\n }\r\n get _Informs(): string {\r\n return this.In;\r\n }\r\n set _Informs(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DocumentInformsTransaction {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DocumentInformsTransaction {\r\n let clone = new DocumentInformsTransaction();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DocumentInvoicesInvoice extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DocumentInvoicesInvoice\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Document\r\n private __IsInvoicedBy: Document;\r\n\r\n IsInvoicedBy(context?: BaseDataContext): Document {\r\n if (this.__IsInvoicedBy)\r\n return this.__IsInvoicedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsInvoicedBy) as Document;\r\n }\r\n setIsInvoicedBy(value: Document) {\r\n this.__IsInvoicedBy = value;\r\n }\r\n get _IsInvoicedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsInvoicedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Invoice\r\n private __Invoices: Invoice;\r\n\r\n Invoices(context?: BaseDataContext): Invoice {\r\n if (this.__Invoices)\r\n return this.__Invoices;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Invoices) as Invoice;\r\n }\r\n setInvoices(value: Invoice) {\r\n this.__Invoices = value;\r\n }\r\n get _Invoices(): string {\r\n return this.In;\r\n }\r\n set _Invoices(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DocumentInvoicesInvoice {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DocumentInvoicesInvoice {\r\n let clone = new DocumentInvoicesInvoice();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DocumentSatisfiesTask extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DocumentSatisfiesTask\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Document\r\n private __IsSatisfiedBy: Document;\r\n\r\n IsSatisfiedBy(context?: BaseDataContext): Document {\r\n if (this.__IsSatisfiedBy)\r\n return this.__IsSatisfiedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSatisfiedBy) as Document;\r\n }\r\n setIsSatisfiedBy(value: Document) {\r\n this.__IsSatisfiedBy = value;\r\n }\r\n get _IsSatisfiedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsSatisfiedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Task\r\n private __Satisfies: Task;\r\n\r\n Satisfies(context?: BaseDataContext): Task {\r\n if (this.__Satisfies)\r\n return this.__Satisfies;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Satisfies) as Task;\r\n }\r\n setSatisfies(value: Task) {\r\n this.__Satisfies = value;\r\n }\r\n get _Satisfies(): string {\r\n return this.In;\r\n }\r\n set _Satisfies(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DocumentSatisfiesTask {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DocumentSatisfiesTask {\r\n let clone = new DocumentSatisfiesTask();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IElement {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class Element extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Element\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Element }[] = [\r\n {className: 'DateField', type: DateField},\r\n {className: 'Field', type: Field},\r\n {className: 'DecimalField', type: DecimalField},\r\n {className: 'EmailField', type: EmailField},\r\n {className: 'StringField', type: StringField},\r\n {className: 'IntegerField', type: IntegerField},\r\n {className: 'ListOfStringsField', type: ListOfStringsField},\r\n {className: 'MoneyField', type: MoneyField},\r\n {className: 'PhoneField', type: PhoneField},\r\n {className: 'Section', type: Section},\r\n {className: 'StaticElement', type: StaticElement},\r\n {className: 'StaticText', type: StaticText},\r\n {className: 'TimestampField', type: TimestampField},\r\n {className: 'UrlField', type: UrlField},\r\n {className: 'YearField', type: YearField},\r\n {className: 'YesNoField', type: YesNoField},\r\n {className: 'ZipcodeField', type: ZipcodeField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get OrderNum(): number {\r\n return this.data.OrderNum;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get ParentId(): string {\r\n return this.data.ParentId;\r\n }\r\n get DisplayLabel(): string {\r\n return this.data.DisplayLabel;\r\n }\r\n get ShowHelp(): boolean {\r\n return this.data.ShowHelp;\r\n }\r\n get Help(): string {\r\n return this.data.Help;\r\n }\r\n get ConditionMet(): boolean {\r\n return this.data.ConditionMet;\r\n }\r\n get ExternalId(): string {\r\n return this.data.ExternalId;\r\n }\r\n get ApplicationId(): string {\r\n return this.data.ApplicationId;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEnabledBy, returns ElementCondition ElementConditionEnablesElement[]\r\n private __IsEnabledBy: ElementConditionEnablesElement[];\r\n IsEnabledBy(_context?: BaseDataContext): ElementConditionEnablesElement[] {\r\n if (this.__IsEnabledBy)\r\n return this.__IsEnabledBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEnabledBy), (id) => context.get(id) as ElementConditionEnablesElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEnabledBy(values: ElementConditionEnablesElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEnabledBy = values;\r\n }\r\n get _IsEnabledBy(): Set {\r\n if (!this._relationships.has(\"IsEnabledBy\"))\r\n this._relationships.set(\"IsEnabledBy\", new Set());\r\n\r\n return this._relationships.get(\"IsEnabledBy\");\r\n }\r\n set _IsEnabledBy(values: Set) {\r\n this._relationships.set(\"IsEnabledBy\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns Section SectionContainsElement[]\r\n private __IsContainedBy: SectionContainsElement[];\r\n IsContainedBy(_context?: BaseDataContext): SectionContainsElement[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as SectionContainsElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: SectionContainsElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Element {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Element) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Element {\r\n let clone = new Element();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IElementCondition {\r\n readonly CopiedFromId?: string,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly ConditionMet: boolean,\r\n\r\n IsContainedBy?: object[],\r\n Enables?: object[],\r\n Evaluates?: object[]\r\n\r\n}\r\n\r\nexport class ElementCondition extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ElementCondition\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ElementCondition }[] = [\r\n {className: 'ScriptCondition', type: ScriptCondition},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get ConditionMet(): boolean {\r\n return this.data.ConditionMet;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsContainedBy, returns Application ApplicationContainsElementCondition[]\r\n private __IsContainedBy: ApplicationContainsElementCondition[];\r\n IsContainedBy(_context?: BaseDataContext): ApplicationContainsElementCondition[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as ApplicationContainsElementCondition);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: ApplicationContainsElementCondition[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship Enables, returns Element ElementConditionEnablesElement[]\r\n private __Enables: ElementConditionEnablesElement[];\r\n Enables(_context?: BaseDataContext): ElementConditionEnablesElement[] {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Enables), (id) => context.get(id) as ElementConditionEnablesElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEnables(values: ElementConditionEnablesElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Enables = values;\r\n }\r\n get _Enables(): Set {\r\n if (!this._relationships.has(\"Enables\"))\r\n this._relationships.set(\"Enables\", new Set());\r\n\r\n return this._relationships.get(\"Enables\");\r\n }\r\n set _Enables(values: Set) {\r\n this._relationships.set(\"Enables\", values);\r\n }\r\n\r\n // Relationship Evaluates, returns DataPoint ElementConditionEvaluatesDataPoint[]\r\n private __Evaluates: ElementConditionEvaluatesDataPoint[];\r\n Evaluates(_context?: BaseDataContext): ElementConditionEvaluatesDataPoint[] {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Evaluates), (id) => context.get(id) as ElementConditionEvaluatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEvaluates(values: ElementConditionEvaluatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Evaluates = values;\r\n }\r\n get _Evaluates(): Set {\r\n if (!this._relationships.has(\"Evaluates\"))\r\n this._relationships.set(\"Evaluates\", new Set());\r\n\r\n return this._relationships.get(\"Evaluates\");\r\n }\r\n set _Evaluates(values: Set) {\r\n this._relationships.set(\"Evaluates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: ApplicationContainsElementCondition,\r\n otherVertexPropertyName: 'ContainsCondition',\r\n otherVertexType: Application,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Enables',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'IsEnabledBy',\r\n otherVertexType: Element,\r\n },\r\n {\r\n propertyName: 'Evaluates',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'IsEvaluatedForCondition',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ElementCondition {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ElementCondition) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n ConditionMet: model.ConditionMet,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n Evaluates: ModelUtils.serializeShallowEdge(model.Evaluates(), 'Evaluates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ElementCondition {\r\n let clone = new ElementCondition();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n clone._Evaluates = _.cloneDeep(this._Evaluates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ElementConditionEnablesElement extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ElementConditionEnablesElement\";\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ElementCondition\r\n private __IsEnabledBy: ElementCondition;\r\n\r\n IsEnabledBy(context?: BaseDataContext): ElementCondition {\r\n if (this.__IsEnabledBy)\r\n return this.__IsEnabledBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEnabledBy) as ElementCondition;\r\n }\r\n setIsEnabledBy(value: ElementCondition) {\r\n this.__IsEnabledBy = value;\r\n }\r\n get _IsEnabledBy(): string {\r\n return this.Out;\r\n }\r\n set _IsEnabledBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Element\r\n private __Enables: Element;\r\n\r\n Enables(context?: BaseDataContext): Element {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Enables) as Element;\r\n }\r\n setEnables(value: Element) {\r\n this.__Enables = value;\r\n }\r\n get _Enables(): string {\r\n return this.In;\r\n }\r\n set _Enables(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ElementConditionEnablesElement {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ElementConditionEnablesElement {\r\n let clone = new ElementConditionEnablesElement();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ElementConditionEvaluatesDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ElementConditionEvaluatesDataPoint\";\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Edition(): number {\r\n return this.data.Edition;\r\n }\r\n get InputLabel(): string {\r\n return this.data.InputLabel;\r\n }\r\n get FromRepeatable(): boolean {\r\n return this.data.FromRepeatable;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ElementCondition\r\n private __IsEvaluatedForCondition: ElementCondition;\r\n\r\n IsEvaluatedForCondition(context?: BaseDataContext): ElementCondition {\r\n if (this.__IsEvaluatedForCondition)\r\n return this.__IsEvaluatedForCondition;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEvaluatedForCondition) as ElementCondition;\r\n }\r\n setIsEvaluatedForCondition(value: ElementCondition) {\r\n this.__IsEvaluatedForCondition = value;\r\n }\r\n get _IsEvaluatedForCondition(): string {\r\n return this.Out;\r\n }\r\n set _IsEvaluatedForCondition(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __Evaluates: DataPoint;\r\n\r\n Evaluates(context?: BaseDataContext): DataPoint {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Evaluates) as DataPoint;\r\n }\r\n setEvaluates(value: DataPoint) {\r\n this.__Evaluates = value;\r\n }\r\n get _Evaluates(): string {\r\n return this.In;\r\n }\r\n set _Evaluates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ElementConditionEvaluatesDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ElementConditionEvaluatesDataPoint {\r\n let clone = new ElementConditionEvaluatesDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class FieldPopulatesDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"FieldPopulatesDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Edition(): number {\r\n return this.data.Edition;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Field\r\n private __IsPopulatedBy: Field;\r\n\r\n IsPopulatedBy(context?: BaseDataContext): Field {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPopulatedBy) as Field;\r\n }\r\n setIsPopulatedBy(value: Field) {\r\n this.__IsPopulatedBy = value;\r\n }\r\n get _IsPopulatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPopulatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __Populates: DataPoint;\r\n\r\n Populates(context?: BaseDataContext): DataPoint {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Populates) as DataPoint;\r\n }\r\n setPopulates(value: DataPoint) {\r\n this.__Populates = value;\r\n }\r\n get _Populates(): string {\r\n return this.In;\r\n }\r\n set _Populates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): FieldPopulatesDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): FieldPopulatesDataPoint {\r\n let clone = new FieldPopulatesDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class Holiday extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Holiday\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Date(): ContractDate {\r\n this.data.Date = ModelUtils.deserializeContractDate(this.data.Date);\r\n return this.data.Date;\r\n }\r\n set Date(value: ContractDate) {\r\n this.data.Date = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): Holiday {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: Holiday) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Date: ModelUtils.serializeContractDate(model.data.Date),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Holiday {\r\n let clone = new Holiday();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IInvoice {\r\n Id: string,\r\n InvoiceNumber: string,\r\n ProducerId: string,\r\n Status: string,\r\n GenerationDate: Date,\r\n PaymentGenerationDate?: Date,\r\n DueDate: Date,\r\n InitialBalanceDue: number,\r\n IsPaperless: boolean,\r\n\r\n IsInvoicedBy?: object[],\r\n Bills?: object[]\r\n\r\n}\r\n\r\nexport class Invoice extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Invoice\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Invoice }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get InvoiceNumber(): string {\r\n return this.data.InvoiceNumber;\r\n }\r\n set InvoiceNumber(value: string) {\r\n this.data.InvoiceNumber = value;\r\n }\r\n get ProducerId(): string {\r\n return this.data.ProducerId;\r\n }\r\n set ProducerId(value: string) {\r\n this.data.ProducerId = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n set Status(value: string) {\r\n this.data.Status = value;\r\n }\r\n get GenerationDate(): Date {\r\n return this.data.GenerationDate ? new Date(this.data.GenerationDate) : undefined;\r\n }\r\n set GenerationDate(value: Date) {\r\n this.data.GenerationDate = value;\r\n }\r\n get PaymentGenerationDate(): Date {\r\n return this.data.PaymentGenerationDate ? new Date(this.data.PaymentGenerationDate) : undefined;\r\n }\r\n set PaymentGenerationDate(value: Date) {\r\n this.data.PaymentGenerationDate = value;\r\n }\r\n get DueDate(): Date {\r\n return this.data.DueDate ? new Date(this.data.DueDate) : undefined;\r\n }\r\n set DueDate(value: Date) {\r\n this.data.DueDate = value;\r\n }\r\n get InitialBalanceDue(): number {\r\n return this.data.InitialBalanceDue;\r\n }\r\n set InitialBalanceDue(value: number) {\r\n this.data.InitialBalanceDue = value;\r\n }\r\n get IsPaperless(): boolean {\r\n return this.data.IsPaperless;\r\n }\r\n set IsPaperless(value: boolean) {\r\n this.data.IsPaperless = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsInvoicedBy, returns Document DocumentInvoicesInvoice[]\r\n private __IsInvoicedBy: DocumentInvoicesInvoice[];\r\n IsInvoicedBy(_context?: BaseDataContext): DocumentInvoicesInvoice[] {\r\n if (this.__IsInvoicedBy)\r\n return this.__IsInvoicedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsInvoicedBy), (id) => context.get(id) as DocumentInvoicesInvoice);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsInvoicedBy(values: DocumentInvoicesInvoice[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsInvoicedBy = values;\r\n }\r\n get _IsInvoicedBy(): Set {\r\n if (!this._relationships.has(\"IsInvoicedBy\"))\r\n this._relationships.set(\"IsInvoicedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsInvoicedBy\");\r\n }\r\n set _IsInvoicedBy(values: Set) {\r\n this._relationships.set(\"IsInvoicedBy\", values);\r\n }\r\n\r\n // Relationship Bills, returns Account InvoiceBillsAccount[]\r\n private __Bills: InvoiceBillsAccount[];\r\n Bills(_context?: BaseDataContext): InvoiceBillsAccount[] {\r\n if (this.__Bills)\r\n return this.__Bills;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Bills), (id) => context.get(id) as InvoiceBillsAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setBills(values: InvoiceBillsAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Bills = values;\r\n }\r\n get _Bills(): Set {\r\n if (!this._relationships.has(\"Bills\"))\r\n this._relationships.set(\"Bills\", new Set());\r\n\r\n return this._relationships.get(\"Bills\");\r\n }\r\n set _Bills(values: Set) {\r\n this._relationships.set(\"Bills\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsInvoicedBy',\r\n edgeType: DocumentInvoicesInvoice,\r\n otherVertexPropertyName: 'Invoices',\r\n otherVertexType: Document,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Bills',\r\n edgeType: InvoiceBillsAccount,\r\n otherVertexPropertyName: 'IsBilledFor',\r\n otherVertexType: Account,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Invoice {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Invoice) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n InvoiceNumber: model.InvoiceNumber,\r\n ProducerId: model.ProducerId,\r\n Status: model.Status,\r\n GenerationDate: model.GenerationDate,\r\n PaymentGenerationDate: model.PaymentGenerationDate,\r\n DueDate: model.DueDate,\r\n InitialBalanceDue: model.InitialBalanceDue,\r\n IsPaperless: model.IsPaperless,\r\n IsInvoicedBy: ModelUtils.serializeShallowEdge(model.IsInvoicedBy(), 'IsInvoicedBy'),\r\n Bills: ModelUtils.serializeShallowEdge(model.Bills(), 'Bills'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Invoice {\r\n let clone = new Invoice();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsInvoicedBy = _.cloneDeep(this._IsInvoicedBy);\r\n clone._Bills = _.cloneDeep(this._Bills);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class InvoiceBillsAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"InvoiceBillsAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Invoice\r\n private __IsBilledFor: Invoice;\r\n\r\n IsBilledFor(context?: BaseDataContext): Invoice {\r\n if (this.__IsBilledFor)\r\n return this.__IsBilledFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsBilledFor) as Invoice;\r\n }\r\n setIsBilledFor(value: Invoice) {\r\n this.__IsBilledFor = value;\r\n }\r\n get _IsBilledFor(): string {\r\n return this.Out;\r\n }\r\n set _IsBilledFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __Bills: Account;\r\n\r\n Bills(context?: BaseDataContext): Account {\r\n if (this.__Bills)\r\n return this.__Bills;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Bills) as Account;\r\n }\r\n setBills(value: Account) {\r\n this.__Bills = value;\r\n }\r\n get _Bills(): string {\r\n return this.In;\r\n }\r\n set _Bills(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): InvoiceBillsAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): InvoiceBillsAccount {\r\n let clone = new InvoiceBillsAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IMap {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name: string,\r\n\r\n Calculates?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class Map extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Map\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Map }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Calculates, returns DataStore MapCalculatesDataStore[]\r\n private __Calculates: MapCalculatesDataStore[];\r\n Calculates(_context?: BaseDataContext): MapCalculatesDataStore[] {\r\n if (this.__Calculates)\r\n return this.__Calculates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Calculates), (id) => context.get(id) as MapCalculatesDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCalculates(values: MapCalculatesDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Calculates = values;\r\n }\r\n get _Calculates(): Set {\r\n if (!this._relationships.has(\"Calculates\"))\r\n this._relationships.set(\"Calculates\", new Set());\r\n\r\n return this._relationships.get(\"Calculates\");\r\n }\r\n set _Calculates(values: Set) {\r\n this._relationships.set(\"Calculates\", values);\r\n }\r\n\r\n // Relationship Contains, returns Transform MapContainsTransform[]\r\n private __Contains: MapContainsTransform[];\r\n Contains(_context?: BaseDataContext): MapContainsTransform[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as MapContainsTransform);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: MapContainsTransform[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Calculates',\r\n edgeType: MapCalculatesDataStore,\r\n otherVertexPropertyName: 'CalculatedBy',\r\n otherVertexType: DataStore,\r\n },\r\n {\r\n propertyName: 'Contains',\r\n edgeType: MapContainsTransform,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Transform,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Map {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Map) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Calculates: ModelUtils.serializeShallowEdge(model.Calculates(), 'Calculates'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Map {\r\n let clone = new Map();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Calculates = _.cloneDeep(this._Calculates);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class MapCalculatesDataStore extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"MapCalculatesDataStore\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Map\r\n private __CalculatedBy: Map;\r\n\r\n CalculatedBy(context?: BaseDataContext): Map {\r\n if (this.__CalculatedBy)\r\n return this.__CalculatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._CalculatedBy) as Map;\r\n }\r\n setCalculatedBy(value: Map) {\r\n this.__CalculatedBy = value;\r\n }\r\n get _CalculatedBy(): string {\r\n return this.Out;\r\n }\r\n set _CalculatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStore\r\n private __Calculates: DataStore;\r\n\r\n Calculates(context?: BaseDataContext): DataStore {\r\n if (this.__Calculates)\r\n return this.__Calculates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Calculates) as DataStore;\r\n }\r\n setCalculates(value: DataStore) {\r\n this.__Calculates = value;\r\n }\r\n get _Calculates(): string {\r\n return this.In;\r\n }\r\n set _Calculates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): MapCalculatesDataStore {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): MapCalculatesDataStore {\r\n let clone = new MapCalculatesDataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class MapContainsTransform extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"MapContainsTransform\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Map\r\n private __IsContainedBy: Map;\r\n\r\n IsContainedBy(context?: BaseDataContext): Map {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as Map;\r\n }\r\n setIsContainedBy(value: Map) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Transform\r\n private __Contains: Transform;\r\n\r\n Contains(context?: BaseDataContext): Transform {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Transform;\r\n }\r\n setContains(value: Transform) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): MapContainsTransform {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): MapContainsTransform {\r\n let clone = new MapContainsTransform();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IMappable {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n\r\n IsMappingFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class Mappable extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Mappable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Mappable }[] = [\r\n {className: 'DataPoint', type: DataPoint},\r\n {className: 'DataPointDate', type: DataPointDate},\r\n {className: 'DataPointDecimal', type: DataPointDecimal},\r\n {className: 'DataPointEmail', type: DataPointEmail},\r\n {className: 'DataPointString', type: DataPointString},\r\n {className: 'DataPointInteger', type: DataPointInteger},\r\n {className: 'DataPointListOfStrings', type: DataPointListOfStrings},\r\n {className: 'DataPointMoney', type: DataPointMoney},\r\n {className: 'DataPointPhone', type: DataPointPhone},\r\n {className: 'DataPointTimestamp', type: DataPointTimestamp},\r\n {className: 'DataPointUrl', type: DataPointUrl},\r\n {className: 'DataPointYear', type: DataPointYear},\r\n {className: 'DataPointYesNo', type: DataPointYesNo},\r\n {className: 'DataPointZipcode', type: DataPointZipcode},\r\n {className: 'ScriptTransform', type: ScriptTransform},\r\n {className: 'Transform', type: Transform},\r\n {className: 'Rule', type: Rule},\r\n {className: 'RuleDateTime', type: RuleDateTime},\r\n {className: 'RuleProductSelection', type: RuleProductSelection},\r\n {className: 'RuleRiskAssessment', type: RuleRiskAssessment},\r\n {className: 'RuleRoleAssignment', type: RuleRoleAssignment},\r\n {className: 'RuleTaskObligation', type: RuleTaskObligation},\r\n {className: 'RuleWorkflowSetStatus', type: RuleWorkflowSetStatus},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CommittedEditions(): number[] {\r\n return this.data.CommittedEditions;\r\n }\r\n get Content(): { [index: number]: { [index: string]: any } } {\r\n return this.data.Content;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DataType(): string {\r\n return this.data.DataType;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsMappingFor, returns Mappable SimpleMapping[]\r\n private __IsMappingFor: SimpleMapping[];\r\n IsMappingFor(_context?: BaseDataContext): SimpleMapping[] {\r\n if (this.__IsMappingFor)\r\n return this.__IsMappingFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsMappingFor), (id) => context.get(id) as SimpleMapping);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsMappingFor(values: SimpleMapping[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsMappingFor = values;\r\n }\r\n get _IsMappingFor(): Set {\r\n if (!this._relationships.has(\"IsMappingFor\"))\r\n this._relationships.set(\"IsMappingFor\", new Set());\r\n\r\n return this._relationships.get(\"IsMappingFor\");\r\n }\r\n set _IsMappingFor(values: Set) {\r\n this._relationships.set(\"IsMappingFor\", values);\r\n }\r\n\r\n // Relationship MapsTo, returns Mappable SimpleMapping[]\r\n private __MapsTo: SimpleMapping[];\r\n MapsTo(_context?: BaseDataContext): SimpleMapping[] {\r\n if (this.__MapsTo)\r\n return this.__MapsTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._MapsTo), (id) => context.get(id) as SimpleMapping);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMapsTo(values: SimpleMapping[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__MapsTo = values;\r\n }\r\n get _MapsTo(): Set {\r\n if (!this._relationships.has(\"MapsTo\"))\r\n this._relationships.set(\"MapsTo\", new Set());\r\n\r\n return this._relationships.get(\"MapsTo\");\r\n }\r\n set _MapsTo(values: Set) {\r\n this._relationships.set(\"MapsTo\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Mappable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Mappable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Mappable {\r\n let clone = new Mappable();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface INotification {\r\n Id: string,\r\n Message: string,\r\n Description: string,\r\n ExpirationDate?: Date,\r\n EventId: string,\r\n IdentityKey: string,\r\n Subtitles?: any[],\r\n NotificationType?: string,\r\n ContextIds?: { [index: string]: string }\r\n\r\n Alerts?: object[]\r\n\r\n}\r\n\r\nexport class Notification extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Notification\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Notification }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Message(): string {\r\n return this.data.Message;\r\n }\r\n set Message(value: string) {\r\n this.data.Message = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get ExpirationDate(): Date {\r\n return this.data.ExpirationDate ? new Date(this.data.ExpirationDate) : undefined;\r\n }\r\n set ExpirationDate(value: Date) {\r\n this.data.ExpirationDate = value;\r\n }\r\n get EventId(): string {\r\n return this.data.EventId;\r\n }\r\n set EventId(value: string) {\r\n this.data.EventId = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get Subtitles(): any[] {\r\n return this.data.Subtitles;\r\n }\r\n set Subtitles(value: any[]) {\r\n this.data.Subtitles = value;\r\n }\r\n get NotificationType(): string {\r\n return this.data.NotificationType;\r\n }\r\n set NotificationType(value: string) {\r\n this.data.NotificationType = value;\r\n }\r\n get ContextIds(): { [index: string]: string } {\r\n return this.data.ContextIds;\r\n }\r\n set ContextIds(value: { [index: string]: string }) {\r\n this.data.ContextIds = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Alerts, returns UserNotificationCenter UserNotificationCenterIsAlertedByNotification[]\r\n private __Alerts: UserNotificationCenterIsAlertedByNotification[];\r\n Alerts(_context?: BaseDataContext): UserNotificationCenterIsAlertedByNotification[] {\r\n if (this.__Alerts)\r\n return this.__Alerts;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Alerts), (id) => context.get(id) as UserNotificationCenterIsAlertedByNotification);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAlerts(values: UserNotificationCenterIsAlertedByNotification[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Alerts = values;\r\n }\r\n get _Alerts(): Set {\r\n if (!this._relationships.has(\"Alerts\"))\r\n this._relationships.set(\"Alerts\", new Set());\r\n\r\n return this._relationships.get(\"Alerts\");\r\n }\r\n set _Alerts(values: Set) {\r\n this._relationships.set(\"Alerts\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Alerts',\r\n edgeType: UserNotificationCenterIsAlertedByNotification,\r\n otherVertexPropertyName: 'IsAlertedBy',\r\n otherVertexType: UserNotificationCenter,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Notification {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Notification) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Message: model.Message,\r\n Description: model.Description,\r\n ExpirationDate: model.ExpirationDate,\r\n EventId: model.EventId,\r\n IdentityKey: model.IdentityKey,\r\n Subtitles: model.Subtitles,\r\n NotificationType: model.NotificationType,\r\n ContextIds: model.ContextIds,\r\n Alerts: ModelUtils.serializeShallowEdge(model.Alerts(), 'Alerts'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Notification {\r\n let clone = new Notification();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Alerts = _.cloneDeep(this._Alerts);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class PhaseRequiresTask extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"PhaseRequiresTask\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DateStarted(): Date {\r\n return this.data.DateStarted ? new Date(this.data.DateStarted) : undefined;\r\n }\r\n set DateStarted(value: Date) {\r\n this.data.DateStarted = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Phase\r\n private __IsRequiredFor: Phase;\r\n\r\n IsRequiredFor(context?: BaseDataContext): Phase {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRequiredFor) as Phase;\r\n }\r\n setIsRequiredFor(value: Phase) {\r\n this.__IsRequiredFor = value;\r\n }\r\n get _IsRequiredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsRequiredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Task\r\n private __Requires: Task;\r\n\r\n Requires(context?: BaseDataContext): Task {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Requires) as Task;\r\n }\r\n setRequires(value: Task) {\r\n this.__Requires = value;\r\n }\r\n get _Requires(): string {\r\n return this.In;\r\n }\r\n set _Requires(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PhaseRequiresTask {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PhaseRequiresTask {\r\n let clone = new PhaseRequiresTask();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IPolicy {\r\n Id: string,\r\n readonly CopiedToPolicyIds?: string[],\r\n readonly RenewedToPolicyIds?: string[],\r\n readonly CopiedFromPolicyId?: string,\r\n readonly RenewedFromPolicyId?: string,\r\n readonly Status: string,\r\n EffectiveDate: ContractDate,\r\n ExpirationDate: ContractDate,\r\n CancellationDate?: ContractDate,\r\n readonly LastUpdated: Date,\r\n readonly Editions?: number[],\r\n ProductId: string,\r\n ProgramId: string,\r\n readonly DefaultCommission?: number,\r\n Commission?: number,\r\n readonly APICreated: boolean,\r\n readonly CopiedReason?: string,\r\n readonly QuoteNumber?: string,\r\n readonly PolicyNumber?: string,\r\n StateOfDomicile?: string,\r\n WrittenPremium?: number,\r\n WrittenTaxes?: number,\r\n WrittenFees?: number,\r\n WrittenTotal?: number,\r\n\r\n IsWrittenBy?: object[],\r\n Executes?: object[]\r\n\r\n}\r\n\r\nexport class Policy extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Policy\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Policy }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get CopiedToPolicyIds(): string[] {\r\n return this.data.CopiedToPolicyIds;\r\n }\r\n get RenewedToPolicyIds(): string[] {\r\n return this.data.RenewedToPolicyIds;\r\n }\r\n get CopiedFromPolicyId(): string {\r\n return this.data.CopiedFromPolicyId;\r\n }\r\n get RenewedFromPolicyId(): string {\r\n return this.data.RenewedFromPolicyId;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get EffectiveDate(): ContractDate {\r\n this.data.EffectiveDate = ModelUtils.deserializeContractDate(this.data.EffectiveDate);\r\n return this.data.EffectiveDate;\r\n }\r\n set EffectiveDate(value: ContractDate) {\r\n this.data.EffectiveDate = value;\r\n }\r\n get ExpirationDate(): ContractDate {\r\n this.data.ExpirationDate = ModelUtils.deserializeContractDate(this.data.ExpirationDate);\r\n return this.data.ExpirationDate;\r\n }\r\n set ExpirationDate(value: ContractDate) {\r\n this.data.ExpirationDate = value;\r\n }\r\n get CancellationDate(): ContractDate {\r\n this.data.CancellationDate = ModelUtils.deserializeContractDate(this.data.CancellationDate);\r\n return this.data.CancellationDate;\r\n }\r\n set CancellationDate(value: ContractDate) {\r\n this.data.CancellationDate = value;\r\n }\r\n get LastUpdated(): Date {\r\n return this.data.LastUpdated ? new Date(this.data.LastUpdated) : undefined;\r\n }\r\n get Editions(): number[] {\r\n return this.data.Editions;\r\n }\r\n get ProductId(): string {\r\n return this.data.ProductId;\r\n }\r\n set ProductId(value: string) {\r\n this.data.ProductId = value;\r\n }\r\n get ProgramId(): string {\r\n return this.data.ProgramId;\r\n }\r\n set ProgramId(value: string) {\r\n this.data.ProgramId = value;\r\n }\r\n get DefaultCommission(): number {\r\n return this.data.DefaultCommission;\r\n }\r\n get Commission(): number {\r\n return this.data.Commission;\r\n }\r\n set Commission(value: number) {\r\n this.data.Commission = value;\r\n }\r\n get APICreated(): boolean {\r\n return this.data.APICreated;\r\n }\r\n get CopiedReason(): string {\r\n return this.data.CopiedReason;\r\n }\r\n get QuoteNumber(): string {\r\n return this.data.QuoteNumber;\r\n }\r\n get PolicyNumber(): string {\r\n return this.data.PolicyNumber;\r\n }\r\n get StateOfDomicile(): string {\r\n return this.data.StateOfDomicile;\r\n }\r\n set StateOfDomicile(value: string) {\r\n this.data.StateOfDomicile = value;\r\n }\r\n get WrittenPremium(): number {\r\n return this.data.WrittenPremium;\r\n }\r\n set WrittenPremium(value: number) {\r\n this.data.WrittenPremium = value;\r\n }\r\n get WrittenTaxes(): number {\r\n return this.data.WrittenTaxes;\r\n }\r\n set WrittenTaxes(value: number) {\r\n this.data.WrittenTaxes = value;\r\n }\r\n get WrittenFees(): number {\r\n return this.data.WrittenFees;\r\n }\r\n set WrittenFees(value: number) {\r\n this.data.WrittenFees = value;\r\n }\r\n get WrittenTotal(): number {\r\n return this.data.WrittenTotal;\r\n }\r\n set WrittenTotal(value: number) {\r\n this.data.WrittenTotal = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsWrittenBy, returns PolicySet PolicySetWritesPolicy[]\r\n private __IsWrittenBy: PolicySetWritesPolicy[];\r\n IsWrittenBy(_context?: BaseDataContext): PolicySetWritesPolicy[] {\r\n if (this.__IsWrittenBy)\r\n return this.__IsWrittenBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWrittenBy), (id) => context.get(id) as PolicySetWritesPolicy);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWrittenBy(values: PolicySetWritesPolicy[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWrittenBy = values;\r\n }\r\n get _IsWrittenBy(): Set {\r\n if (!this._relationships.has(\"IsWrittenBy\"))\r\n this._relationships.set(\"IsWrittenBy\", new Set());\r\n\r\n return this._relationships.get(\"IsWrittenBy\");\r\n }\r\n set _IsWrittenBy(values: Set) {\r\n this._relationships.set(\"IsWrittenBy\", values);\r\n }\r\n\r\n // Relationship Executes, returns Transaction PolicyExecutesTransaction[]\r\n private __Executes: PolicyExecutesTransaction[];\r\n Executes(_context?: BaseDataContext): PolicyExecutesTransaction[] {\r\n if (this.__Executes)\r\n return this.__Executes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Executes), (id) => context.get(id) as PolicyExecutesTransaction);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setExecutes(values: PolicyExecutesTransaction[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Executes = values;\r\n }\r\n get _Executes(): Set {\r\n if (!this._relationships.has(\"Executes\"))\r\n this._relationships.set(\"Executes\", new Set());\r\n\r\n return this._relationships.get(\"Executes\");\r\n }\r\n set _Executes(values: Set) {\r\n this._relationships.set(\"Executes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsWrittenBy',\r\n edgeType: PolicySetWritesPolicy,\r\n otherVertexPropertyName: 'Writes',\r\n otherVertexType: PolicySet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Executes',\r\n edgeType: PolicyExecutesTransaction,\r\n otherVertexPropertyName: 'IsExecutedBy',\r\n otherVertexType: Transaction,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Policy {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Policy) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n CopiedToPolicyIds: model.CopiedToPolicyIds,\r\n RenewedToPolicyIds: model.RenewedToPolicyIds,\r\n CopiedFromPolicyId: model.CopiedFromPolicyId,\r\n RenewedFromPolicyId: model.RenewedFromPolicyId,\r\n Status: model.Status,\r\n EffectiveDate: ModelUtils.serializeContractDate(model.data.EffectiveDate),\r\n ExpirationDate: ModelUtils.serializeContractDate(model.data.ExpirationDate),\r\n CancellationDate: ModelUtils.serializeContractDate(model.data.CancellationDate),\r\n LastUpdated: model.LastUpdated,\r\n Editions: model.Editions,\r\n ProductId: model.ProductId,\r\n ProgramId: model.ProgramId,\r\n DefaultCommission: model.DefaultCommission,\r\n Commission: model.Commission,\r\n APICreated: model.APICreated,\r\n CopiedReason: model.CopiedReason,\r\n QuoteNumber: model.QuoteNumber,\r\n PolicyNumber: model.PolicyNumber,\r\n StateOfDomicile: model.StateOfDomicile,\r\n WrittenPremium: model.WrittenPremium,\r\n WrittenTaxes: model.WrittenTaxes,\r\n WrittenFees: model.WrittenFees,\r\n WrittenTotal: model.WrittenTotal,\r\n IsWrittenBy: ModelUtils.serializeShallowEdge(model.IsWrittenBy(), 'IsWrittenBy'),\r\n Executes: ModelUtils.serializeShallowEdge(model.Executes(), 'Executes'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Policy {\r\n let clone = new Policy();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsWrittenBy = _.cloneDeep(this._IsWrittenBy);\r\n clone._Executes = _.cloneDeep(this._Executes);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class PolicyExecutesTransaction extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"PolicyExecutesTransaction\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Policy\r\n private __IsExecutedBy: Policy;\r\n\r\n IsExecutedBy(context?: BaseDataContext): Policy {\r\n if (this.__IsExecutedBy)\r\n return this.__IsExecutedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsExecutedBy) as Policy;\r\n }\r\n setIsExecutedBy(value: Policy) {\r\n this.__IsExecutedBy = value;\r\n }\r\n get _IsExecutedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsExecutedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Transaction\r\n private __Executes: Transaction;\r\n\r\n Executes(context?: BaseDataContext): Transaction {\r\n if (this.__Executes)\r\n return this.__Executes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Executes) as Transaction;\r\n }\r\n setExecutes(value: Transaction) {\r\n this.__Executes = value;\r\n }\r\n get _Executes(): string {\r\n return this.In;\r\n }\r\n set _Executes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PolicyExecutesTransaction {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PolicyExecutesTransaction {\r\n let clone = new PolicyExecutesTransaction();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IPolicySet {\r\n readonly DeletedDate?: Date,\r\n Id: string,\r\n readonly PolicySetStackKey: string,\r\n readonly CopiedFromPolicySetId?: string,\r\n readonly RenewedFromPolicySetId?: string,\r\n EffectiveDate: ContractDate,\r\n ExpirationDate: ContractDate,\r\n DefaultTerm: string,\r\n readonly ProducerId?: string,\r\n readonly ProgramId: string,\r\n readonly WorkflowSetId?: string,\r\n readonly APICreated: boolean,\r\n readonly CopiedReason?: string,\r\n readonly InitialWorkflowId?: string,\r\n readonly Status?: string,\r\n\r\n IsWrittenBy?: object[],\r\n Writes?: object[]\r\n\r\n}\r\n\r\nexport class PolicySet extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"PolicySet\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof PolicySet }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get PolicySetStackKey(): string {\r\n return this.data.PolicySetStackKey;\r\n }\r\n get CopiedFromPolicySetId(): string {\r\n return this.data.CopiedFromPolicySetId;\r\n }\r\n get RenewedFromPolicySetId(): string {\r\n return this.data.RenewedFromPolicySetId;\r\n }\r\n get EffectiveDate(): ContractDate {\r\n this.data.EffectiveDate = ModelUtils.deserializeContractDate(this.data.EffectiveDate);\r\n return this.data.EffectiveDate;\r\n }\r\n set EffectiveDate(value: ContractDate) {\r\n this.data.EffectiveDate = value;\r\n }\r\n get ExpirationDate(): ContractDate {\r\n this.data.ExpirationDate = ModelUtils.deserializeContractDate(this.data.ExpirationDate);\r\n return this.data.ExpirationDate;\r\n }\r\n set ExpirationDate(value: ContractDate) {\r\n this.data.ExpirationDate = value;\r\n }\r\n get DefaultTerm(): string {\r\n return this.data.DefaultTerm;\r\n }\r\n set DefaultTerm(value: string) {\r\n this.data.DefaultTerm = value;\r\n }\r\n get ProducerId(): string {\r\n return this.data.ProducerId;\r\n }\r\n get ProgramId(): string {\r\n return this.data.ProgramId;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get APICreated(): boolean {\r\n return this.data.APICreated;\r\n }\r\n get CopiedReason(): string {\r\n return this.data.CopiedReason;\r\n }\r\n get InitialWorkflowId(): string {\r\n return this.data.InitialWorkflowId;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsWrittenBy, returns Account AccountWritesPolicySet[]\r\n private __IsWrittenBy: AccountWritesPolicySet[];\r\n IsWrittenBy(_context?: BaseDataContext): AccountWritesPolicySet[] {\r\n if (this.__IsWrittenBy)\r\n return this.__IsWrittenBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWrittenBy), (id) => context.get(id) as AccountWritesPolicySet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWrittenBy(values: AccountWritesPolicySet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWrittenBy = values;\r\n }\r\n get _IsWrittenBy(): Set {\r\n if (!this._relationships.has(\"IsWrittenBy\"))\r\n this._relationships.set(\"IsWrittenBy\", new Set());\r\n\r\n return this._relationships.get(\"IsWrittenBy\");\r\n }\r\n set _IsWrittenBy(values: Set) {\r\n this._relationships.set(\"IsWrittenBy\", values);\r\n }\r\n\r\n // Relationship Writes, returns Policy PolicySetWritesPolicy[]\r\n private __Writes: PolicySetWritesPolicy[];\r\n Writes(_context?: BaseDataContext): PolicySetWritesPolicy[] {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Writes), (id) => context.get(id) as PolicySetWritesPolicy);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWrites(values: PolicySetWritesPolicy[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Writes = values;\r\n }\r\n get _Writes(): Set {\r\n if (!this._relationships.has(\"Writes\"))\r\n this._relationships.set(\"Writes\", new Set());\r\n\r\n return this._relationships.get(\"Writes\");\r\n }\r\n set _Writes(values: Set) {\r\n this._relationships.set(\"Writes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsWrittenBy',\r\n edgeType: AccountWritesPolicySet,\r\n otherVertexPropertyName: 'Writes',\r\n otherVertexType: Account,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Writes',\r\n edgeType: PolicySetWritesPolicy,\r\n otherVertexPropertyName: 'IsWrittenBy',\r\n otherVertexType: Policy,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): PolicySet {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: PolicySet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n PolicySetStackKey: model.PolicySetStackKey,\r\n CopiedFromPolicySetId: model.CopiedFromPolicySetId,\r\n RenewedFromPolicySetId: model.RenewedFromPolicySetId,\r\n EffectiveDate: ModelUtils.serializeContractDate(model.data.EffectiveDate),\r\n ExpirationDate: ModelUtils.serializeContractDate(model.data.ExpirationDate),\r\n DefaultTerm: model.DefaultTerm,\r\n ProducerId: model.ProducerId,\r\n ProgramId: model.ProgramId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n APICreated: model.APICreated,\r\n CopiedReason: model.CopiedReason,\r\n InitialWorkflowId: model.InitialWorkflowId,\r\n Status: model.Status,\r\n IsWrittenBy: ModelUtils.serializeShallowEdge(model.IsWrittenBy(), 'IsWrittenBy'),\r\n Writes: ModelUtils.serializeShallowEdge(model.Writes(), 'Writes'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): PolicySet {\r\n let clone = new PolicySet();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsWrittenBy = _.cloneDeep(this._IsWrittenBy);\r\n clone._Writes = _.cloneDeep(this._Writes);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class PolicySetWritesPolicy extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"PolicySetWritesPolicy\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to PolicySet\r\n private __IsWrittenBy: PolicySet;\r\n\r\n IsWrittenBy(context?: BaseDataContext): PolicySet {\r\n if (this.__IsWrittenBy)\r\n return this.__IsWrittenBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWrittenBy) as PolicySet;\r\n }\r\n setIsWrittenBy(value: PolicySet) {\r\n this.__IsWrittenBy = value;\r\n }\r\n get _IsWrittenBy(): string {\r\n return this.Out;\r\n }\r\n set _IsWrittenBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Policy\r\n private __Writes: Policy;\r\n\r\n Writes(context?: BaseDataContext): Policy {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Writes) as Policy;\r\n }\r\n setWrites(value: Policy) {\r\n this.__Writes = value;\r\n }\r\n get _Writes(): string {\r\n return this.In;\r\n }\r\n set _Writes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PolicySetWritesPolicy {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PolicySetWritesPolicy {\r\n let clone = new PolicySetWritesPolicy();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class Prioritization extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Prioritization\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get PrioritizationTypeOrder(): string[] {\r\n return this.data.PrioritizationTypeOrder;\r\n }\r\n set PrioritizationTypeOrder(value: string[]) {\r\n this.data.PrioritizationTypeOrder = value;\r\n }\r\n get DeadlineImminentValue(): number {\r\n return this.data.DeadlineImminentValue;\r\n }\r\n set DeadlineImminentValue(value: number) {\r\n this.data.DeadlineImminentValue = value;\r\n }\r\n get DeadlineImminentUnitOfTime(): string {\r\n return this.data.DeadlineImminentUnitOfTime;\r\n }\r\n set DeadlineImminentUnitOfTime(value: string) {\r\n this.data.DeadlineImminentUnitOfTime = value;\r\n }\r\n get DueDateImminentValue(): number {\r\n return this.data.DueDateImminentValue;\r\n }\r\n set DueDateImminentValue(value: number) {\r\n this.data.DueDateImminentValue = value;\r\n }\r\n get DueDateImminentUnitOfTime(): string {\r\n return this.data.DueDateImminentUnitOfTime;\r\n }\r\n set DueDateImminentUnitOfTime(value: string) {\r\n this.data.DueDateImminentUnitOfTime = value;\r\n }\r\n get ServiceLevelImminentValue(): number {\r\n return this.data.ServiceLevelImminentValue;\r\n }\r\n set ServiceLevelImminentValue(value: number) {\r\n this.data.ServiceLevelImminentValue = value;\r\n }\r\n get ServiceLevelImminentUnitOfTime(): string {\r\n return this.data.ServiceLevelImminentUnitOfTime;\r\n }\r\n set ServiceLevelImminentUnitOfTime(value: string) {\r\n this.data.ServiceLevelImminentUnitOfTime = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): Prioritization {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: Prioritization) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n PrioritizationTypeOrder: model.PrioritizationTypeOrder,\r\n DeadlineImminentValue: model.DeadlineImminentValue,\r\n DeadlineImminentUnitOfTime: model.DeadlineImminentUnitOfTime,\r\n DueDateImminentValue: model.DueDateImminentValue,\r\n DueDateImminentUnitOfTime: model.DueDateImminentUnitOfTime,\r\n ServiceLevelImminentValue: model.ServiceLevelImminentValue,\r\n ServiceLevelImminentUnitOfTime: model.ServiceLevelImminentUnitOfTime,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Prioritization {\r\n let clone = new Prioritization();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProgram {\r\n Id: string,\r\n readonly Name: string,\r\n readonly Description: string,\r\n Aliases?: string[],\r\n\r\n IsPublishedBy?: object[],\r\n IsConfiguredBy?: object[],\r\n IsFormattedBy?: object[],\r\n Writes?: object[]\r\n\r\n}\r\n\r\nexport class Program extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Program\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Program }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get Aliases(): string[] {\r\n return this.data.Aliases;\r\n }\r\n set Aliases(value: string[]) {\r\n this.data.Aliases = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPublishedBy, returns ProgramRevision ProgramRevisionPublishesProgram[]\r\n private __IsPublishedBy: ProgramRevisionPublishesProgram[];\r\n IsPublishedBy(_context?: BaseDataContext): ProgramRevisionPublishesProgram[] {\r\n if (this.__IsPublishedBy)\r\n return this.__IsPublishedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPublishedBy), (id) => context.get(id) as ProgramRevisionPublishesProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPublishedBy(values: ProgramRevisionPublishesProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPublishedBy = values;\r\n }\r\n get _IsPublishedBy(): Set {\r\n if (!this._relationships.has(\"IsPublishedBy\"))\r\n this._relationships.set(\"IsPublishedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPublishedBy\");\r\n }\r\n set _IsPublishedBy(values: Set) {\r\n this._relationships.set(\"IsPublishedBy\", values);\r\n }\r\n\r\n // Relationship IsConfiguredBy, returns ProgramOptions ProgramConfiguredByProgramOptions[]\r\n private __IsConfiguredBy: ProgramConfiguredByProgramOptions[];\r\n IsConfiguredBy(_context?: BaseDataContext): ProgramConfiguredByProgramOptions[] {\r\n if (this.__IsConfiguredBy)\r\n return this.__IsConfiguredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsConfiguredBy), (id) => context.get(id) as ProgramConfiguredByProgramOptions);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsConfiguredBy(values: ProgramConfiguredByProgramOptions[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsConfiguredBy = values;\r\n }\r\n get _IsConfiguredBy(): Set {\r\n if (!this._relationships.has(\"IsConfiguredBy\"))\r\n this._relationships.set(\"IsConfiguredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsConfiguredBy\");\r\n }\r\n set _IsConfiguredBy(values: Set) {\r\n this._relationships.set(\"IsConfiguredBy\", values);\r\n }\r\n\r\n // Relationship IsFormattedBy, returns Region ProgramFormattedByRegion[]\r\n private __IsFormattedBy: ProgramFormattedByRegion[];\r\n IsFormattedBy(_context?: BaseDataContext): ProgramFormattedByRegion[] {\r\n if (this.__IsFormattedBy)\r\n return this.__IsFormattedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsFormattedBy), (id) => context.get(id) as ProgramFormattedByRegion);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsFormattedBy(values: ProgramFormattedByRegion[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsFormattedBy = values;\r\n }\r\n get _IsFormattedBy(): Set {\r\n if (!this._relationships.has(\"IsFormattedBy\"))\r\n this._relationships.set(\"IsFormattedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsFormattedBy\");\r\n }\r\n set _IsFormattedBy(values: Set) {\r\n this._relationships.set(\"IsFormattedBy\", values);\r\n }\r\n\r\n // Relationship Writes, returns Account ProgramWritesAccount[]\r\n private __Writes: ProgramWritesAccount[];\r\n Writes(_context?: BaseDataContext): ProgramWritesAccount[] {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Writes), (id) => context.get(id) as ProgramWritesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWrites(values: ProgramWritesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Writes = values;\r\n }\r\n get _Writes(): Set {\r\n if (!this._relationships.has(\"Writes\"))\r\n this._relationships.set(\"Writes\", new Set());\r\n\r\n return this._relationships.get(\"Writes\");\r\n }\r\n set _Writes(values: Set) {\r\n this._relationships.set(\"Writes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPublishedBy',\r\n edgeType: ProgramRevisionPublishesProgram,\r\n otherVertexPropertyName: 'Publishes',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsConfiguredBy',\r\n edgeType: ProgramConfiguredByProgramOptions,\r\n otherVertexPropertyName: 'Configures',\r\n otherVertexType: ProgramOptions,\r\n },\r\n {\r\n propertyName: 'IsFormattedBy',\r\n edgeType: ProgramFormattedByRegion,\r\n otherVertexPropertyName: 'Formats',\r\n otherVertexType: Region,\r\n },\r\n {\r\n propertyName: 'Writes',\r\n edgeType: ProgramWritesAccount,\r\n otherVertexPropertyName: 'IsWrittenFor',\r\n otherVertexType: Account,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Program {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Program) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Aliases: model.Aliases,\r\n IsPublishedBy: ModelUtils.serializeShallowEdge(model.IsPublishedBy(), 'IsPublishedBy'),\r\n IsConfiguredBy: ModelUtils.serializeShallowEdge(model.IsConfiguredBy(), 'IsConfiguredBy'),\r\n IsFormattedBy: ModelUtils.serializeShallowEdge(model.IsFormattedBy(), 'IsFormattedBy'),\r\n Writes: ModelUtils.serializeShallowEdge(model.Writes(), 'Writes'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Program {\r\n let clone = new Program();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPublishedBy = _.cloneDeep(this._IsPublishedBy);\r\n clone._IsConfiguredBy = _.cloneDeep(this._IsConfiguredBy);\r\n clone._IsFormattedBy = _.cloneDeep(this._IsFormattedBy);\r\n clone._Writes = _.cloneDeep(this._Writes);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramConfiguredByProgramOptions extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramConfiguredByProgramOptions\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __Configures: Program;\r\n\r\n Configures(context?: BaseDataContext): Program {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Configures) as Program;\r\n }\r\n setConfigures(value: Program) {\r\n this.__Configures = value;\r\n }\r\n get _Configures(): string {\r\n return this.Out;\r\n }\r\n set _Configures(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ProgramOptions\r\n private __IsConfiguredBy: ProgramOptions;\r\n\r\n IsConfiguredBy(context?: BaseDataContext): ProgramOptions {\r\n if (this.__IsConfiguredBy)\r\n return this.__IsConfiguredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsConfiguredBy) as ProgramOptions;\r\n }\r\n setIsConfiguredBy(value: ProgramOptions) {\r\n this.__IsConfiguredBy = value;\r\n }\r\n get _IsConfiguredBy(): string {\r\n return this.In;\r\n }\r\n set _IsConfiguredBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramConfiguredByProgramOptions {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramConfiguredByProgramOptions {\r\n let clone = new ProgramConfiguredByProgramOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramFormattedByRegion extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramFormattedByRegion\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __Formats: Program;\r\n\r\n Formats(context?: BaseDataContext): Program {\r\n if (this.__Formats)\r\n return this.__Formats;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Formats) as Program;\r\n }\r\n setFormats(value: Program) {\r\n this.__Formats = value;\r\n }\r\n get _Formats(): string {\r\n return this.Out;\r\n }\r\n set _Formats(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Region\r\n private __IsFormattedBy: Region;\r\n\r\n IsFormattedBy(context?: BaseDataContext): Region {\r\n if (this.__IsFormattedBy)\r\n return this.__IsFormattedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsFormattedBy) as Region;\r\n }\r\n setIsFormattedBy(value: Region) {\r\n this.__IsFormattedBy = value;\r\n }\r\n get _IsFormattedBy(): string {\r\n return this.In;\r\n }\r\n set _IsFormattedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramFormattedByRegion {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramFormattedByRegion {\r\n let clone = new ProgramFormattedByRegion();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProgramOptions {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n RevisionSelection: string,\r\n DefaultFromAddress?: string,\r\n readonly BasePoints: number,\r\n readonly ThresholdLow: number,\r\n readonly ThresholdMedium: number,\r\n readonly ThresholdHigh: number,\r\n readonly ThresholdVeryHigh: number,\r\n readonly DefaultWorkflowId?: string,\r\n readonly DefaultDelinquentWorkflowId?: string\r\n\r\n Configures?: object[]\r\n\r\n}\r\n\r\nexport class ProgramOptions extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramOptions\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramOptions }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get RevisionSelection(): string {\r\n return this.data.RevisionSelection;\r\n }\r\n set RevisionSelection(value: string) {\r\n this.data.RevisionSelection = value;\r\n }\r\n get DefaultFromAddress(): string {\r\n return this.data.DefaultFromAddress;\r\n }\r\n set DefaultFromAddress(value: string) {\r\n this.data.DefaultFromAddress = value;\r\n }\r\n get BasePoints(): number {\r\n return this.data.BasePoints;\r\n }\r\n get ThresholdLow(): number {\r\n return this.data.ThresholdLow;\r\n }\r\n get ThresholdMedium(): number {\r\n return this.data.ThresholdMedium;\r\n }\r\n get ThresholdHigh(): number {\r\n return this.data.ThresholdHigh;\r\n }\r\n get ThresholdVeryHigh(): number {\r\n return this.data.ThresholdVeryHigh;\r\n }\r\n get DefaultWorkflowId(): string {\r\n return this.data.DefaultWorkflowId;\r\n }\r\n get DefaultDelinquentWorkflowId(): string {\r\n return this.data.DefaultDelinquentWorkflowId;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Configures, returns Program ProgramConfiguredByProgramOptions[]\r\n private __Configures: ProgramConfiguredByProgramOptions[];\r\n Configures(_context?: BaseDataContext): ProgramConfiguredByProgramOptions[] {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Configures), (id) => context.get(id) as ProgramConfiguredByProgramOptions);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setConfigures(values: ProgramConfiguredByProgramOptions[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Configures = values;\r\n }\r\n get _Configures(): Set {\r\n if (!this._relationships.has(\"Configures\"))\r\n this._relationships.set(\"Configures\", new Set());\r\n\r\n return this._relationships.get(\"Configures\");\r\n }\r\n set _Configures(values: Set) {\r\n this._relationships.set(\"Configures\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Configures',\r\n edgeType: ProgramConfiguredByProgramOptions,\r\n otherVertexPropertyName: 'IsConfiguredBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramOptions {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramOptions) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n RevisionSelection: model.RevisionSelection,\r\n DefaultFromAddress: model.DefaultFromAddress,\r\n BasePoints: model.BasePoints,\r\n ThresholdLow: model.ThresholdLow,\r\n ThresholdMedium: model.ThresholdMedium,\r\n ThresholdHigh: model.ThresholdHigh,\r\n ThresholdVeryHigh: model.ThresholdVeryHigh,\r\n DefaultWorkflowId: model.DefaultWorkflowId,\r\n DefaultDelinquentWorkflowId: model.DefaultDelinquentWorkflowId,\r\n Configures: ModelUtils.serializeShallowEdge(model.Configures(), 'Configures'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramOptions {\r\n let clone = new ProgramOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Configures = _.cloneDeep(this._Configures);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IProgramRevision {\r\n Id: string,\r\n ProgramId: string,\r\n readonly RevisionNo: number,\r\n StartDate: ContractDate,\r\n StopDate?: ContractDate,\r\n readonly ComponentRevisionNos?: { [index: string]: number },\r\n readonly ComponentVersionNos?: { [index: string]: number },\r\n readonly ComponentLabels?: { [index: string]: string },\r\n readonly Undeployed: boolean,\r\n readonly DeployedOn?: Date,\r\n Description?: string,\r\n readonly SupersededDate?: ContractDate,\r\n StandbyWorkflowCountByDef?: { [index: string]: number },\r\n readonly PatchNumbers?: number[],\r\n\r\n Publishes?: object[],\r\n HasStandby?: object[]\r\n\r\n}\r\n\r\nexport class ProgramRevision extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevision\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramRevision }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ProgramId(): string {\r\n return this.data.ProgramId;\r\n }\r\n set ProgramId(value: string) {\r\n this.data.ProgramId = value;\r\n }\r\n get RevisionNo(): number {\r\n return this.data.RevisionNo;\r\n }\r\n get StartDate(): ContractDate {\r\n this.data.StartDate = ModelUtils.deserializeContractDate(this.data.StartDate);\r\n return this.data.StartDate;\r\n }\r\n set StartDate(value: ContractDate) {\r\n this.data.StartDate = value;\r\n }\r\n get StopDate(): ContractDate {\r\n this.data.StopDate = ModelUtils.deserializeContractDate(this.data.StopDate);\r\n return this.data.StopDate;\r\n }\r\n set StopDate(value: ContractDate) {\r\n this.data.StopDate = value;\r\n }\r\n get ComponentRevisionNos(): { [index: string]: number } {\r\n return this.data.ComponentRevisionNos;\r\n }\r\n get ComponentVersionNos(): { [index: string]: number } {\r\n return this.data.ComponentVersionNos;\r\n }\r\n get ComponentLabels(): { [index: string]: string } {\r\n return this.data.ComponentLabels;\r\n }\r\n get Undeployed(): boolean {\r\n return this.data.Undeployed;\r\n }\r\n get DeployedOn(): Date {\r\n return this.data.DeployedOn ? new Date(this.data.DeployedOn) : undefined;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get SupersededDate(): ContractDate {\r\n this.data.SupersededDate = ModelUtils.deserializeContractDate(this.data.SupersededDate);\r\n return this.data.SupersededDate;\r\n }\r\n get StandbyWorkflowCountByDef(): { [index: string]: number } {\r\n return this.data.StandbyWorkflowCountByDef;\r\n }\r\n set StandbyWorkflowCountByDef(value: { [index: string]: number }) {\r\n this.data.StandbyWorkflowCountByDef = value;\r\n }\r\n get PatchNumbers(): number[] {\r\n return this.data.PatchNumbers;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Publishes, returns Program ProgramRevisionPublishesProgram[]\r\n private __Publishes: ProgramRevisionPublishesProgram[];\r\n Publishes(_context?: BaseDataContext): ProgramRevisionPublishesProgram[] {\r\n if (this.__Publishes)\r\n return this.__Publishes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Publishes), (id) => context.get(id) as ProgramRevisionPublishesProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPublishes(values: ProgramRevisionPublishesProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Publishes = values;\r\n }\r\n get _Publishes(): Set {\r\n if (!this._relationships.has(\"Publishes\"))\r\n this._relationships.set(\"Publishes\", new Set());\r\n\r\n return this._relationships.get(\"Publishes\");\r\n }\r\n set _Publishes(values: Set) {\r\n this._relationships.set(\"Publishes\", values);\r\n }\r\n\r\n // Relationship HasStandby, returns Workflow ProgramRevisionStandbyWorkflow[]\r\n private __HasStandby: ProgramRevisionStandbyWorkflow[];\r\n HasStandby(_context?: BaseDataContext): ProgramRevisionStandbyWorkflow[] {\r\n if (this.__HasStandby)\r\n return this.__HasStandby;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._HasStandby), (id) => context.get(id) as ProgramRevisionStandbyWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setHasStandby(values: ProgramRevisionStandbyWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__HasStandby = values;\r\n }\r\n get _HasStandby(): Set {\r\n if (!this._relationships.has(\"HasStandby\"))\r\n this._relationships.set(\"HasStandby\", new Set());\r\n\r\n return this._relationships.get(\"HasStandby\");\r\n }\r\n set _HasStandby(values: Set) {\r\n this._relationships.set(\"HasStandby\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Publishes',\r\n edgeType: ProgramRevisionPublishesProgram,\r\n otherVertexPropertyName: 'IsPublishedBy',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'HasStandby',\r\n edgeType: ProgramRevisionStandbyWorkflow,\r\n otherVertexPropertyName: 'IsStandbyFor',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramRevision {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramRevision) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n ProgramId: model.ProgramId,\r\n RevisionNo: model.RevisionNo,\r\n StartDate: ModelUtils.serializeContractDate(model.data.StartDate),\r\n StopDate: ModelUtils.serializeContractDate(model.data.StopDate),\r\n ComponentRevisionNos: model.ComponentRevisionNos,\r\n ComponentVersionNos: model.ComponentVersionNos,\r\n ComponentLabels: model.ComponentLabels,\r\n Undeployed: model.Undeployed,\r\n DeployedOn: model.DeployedOn,\r\n Description: model.Description,\r\n SupersededDate: ModelUtils.serializeContractDate(model.data.SupersededDate),\r\n StandbyWorkflowCountByDef: model.StandbyWorkflowCountByDef,\r\n PatchNumbers: model.PatchNumbers,\r\n Publishes: ModelUtils.serializeShallowEdge(model.Publishes(), 'Publishes'),\r\n HasStandby: ModelUtils.serializeShallowEdge(model.HasStandby(), 'HasStandby'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramRevision {\r\n let clone = new ProgramRevision();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Publishes = _.cloneDeep(this._Publishes);\r\n clone._HasStandby = _.cloneDeep(this._HasStandby);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramRevisionPublishesProgram extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevisionPublishesProgram\";\r\n }\r\n\r\n // Properties\r\n get Published(): Date {\r\n return this.data.Published ? new Date(this.data.Published) : undefined;\r\n }\r\n get PublishedBy(): string {\r\n return this.data.PublishedBy;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramRevision\r\n private __IsPublishedBy: ProgramRevision;\r\n\r\n IsPublishedBy(context?: BaseDataContext): ProgramRevision {\r\n if (this.__IsPublishedBy)\r\n return this.__IsPublishedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPublishedBy) as ProgramRevision;\r\n }\r\n setIsPublishedBy(value: ProgramRevision) {\r\n this.__IsPublishedBy = value;\r\n }\r\n get _IsPublishedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPublishedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Program\r\n private __Publishes: Program;\r\n\r\n Publishes(context?: BaseDataContext): Program {\r\n if (this.__Publishes)\r\n return this.__Publishes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Publishes) as Program;\r\n }\r\n setPublishes(value: Program) {\r\n this.__Publishes = value;\r\n }\r\n get _Publishes(): string {\r\n return this.In;\r\n }\r\n set _Publishes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramRevisionPublishesProgram {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramRevisionPublishesProgram {\r\n let clone = new ProgramRevisionPublishesProgram();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramRevisionStandbyWorkflow extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevisionStandbyWorkflow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get StandbyDate(): Date {\r\n return this.data.StandbyDate ? new Date(this.data.StandbyDate) : undefined;\r\n }\r\n set StandbyDate(value: Date) {\r\n this.data.StandbyDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramRevision\r\n private __IsStandbyFor: ProgramRevision;\r\n\r\n IsStandbyFor(context?: BaseDataContext): ProgramRevision {\r\n if (this.__IsStandbyFor)\r\n return this.__IsStandbyFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsStandbyFor) as ProgramRevision;\r\n }\r\n setIsStandbyFor(value: ProgramRevision) {\r\n this.__IsStandbyFor = value;\r\n }\r\n get _IsStandbyFor(): string {\r\n return this.Out;\r\n }\r\n set _IsStandbyFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workflow\r\n private __HasStandby: Workflow;\r\n\r\n HasStandby(context?: BaseDataContext): Workflow {\r\n if (this.__HasStandby)\r\n return this.__HasStandby;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._HasStandby) as Workflow;\r\n }\r\n setHasStandby(value: Workflow) {\r\n this.__HasStandby = value;\r\n }\r\n get _HasStandby(): string {\r\n return this.In;\r\n }\r\n set _HasStandby(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramRevisionStandbyWorkflow {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramRevisionStandbyWorkflow {\r\n let clone = new ProgramRevisionStandbyWorkflow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramWritesAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ProgramWritesAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get EffectiveDate(): ContractDate {\r\n this.data.EffectiveDate = ModelUtils.deserializeContractDate(this.data.EffectiveDate);\r\n return this.data.EffectiveDate;\r\n }\r\n set EffectiveDate(value: ContractDate) {\r\n this.data.EffectiveDate = value;\r\n }\r\n get ExpirationDate(): ContractDate {\r\n this.data.ExpirationDate = ModelUtils.deserializeContractDate(this.data.ExpirationDate);\r\n return this.data.ExpirationDate;\r\n }\r\n set ExpirationDate(value: ContractDate) {\r\n this.data.ExpirationDate = value;\r\n }\r\n get ReferralLevel(): number {\r\n return this.data.ReferralLevel;\r\n }\r\n get TotalTasks(): number {\r\n return this.data.TotalTasks;\r\n }\r\n set TotalTasks(value: number) {\r\n this.data.TotalTasks = value;\r\n }\r\n get TotalWorkflows(): number {\r\n return this.data.TotalWorkflows;\r\n }\r\n set TotalWorkflows(value: number) {\r\n this.data.TotalWorkflows = value;\r\n }\r\n get DeclineReason(): string {\r\n return this.data.DeclineReason;\r\n }\r\n set DeclineReason(value: string) {\r\n this.data.DeclineReason = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsWrittenFor: Program;\r\n\r\n IsWrittenFor(context?: BaseDataContext): Program {\r\n if (this.__IsWrittenFor)\r\n return this.__IsWrittenFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWrittenFor) as Program;\r\n }\r\n setIsWrittenFor(value: Program) {\r\n this.__IsWrittenFor = value;\r\n }\r\n get _IsWrittenFor(): string {\r\n return this.Out;\r\n }\r\n set _IsWrittenFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __Writes: Account;\r\n\r\n Writes(context?: BaseDataContext): Account {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Writes) as Account;\r\n }\r\n setWrites(value: Account) {\r\n this.__Writes = value;\r\n }\r\n get _Writes(): string {\r\n return this.In;\r\n }\r\n set _Writes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramWritesAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramWritesAccount {\r\n let clone = new ProgramWritesAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IRegion {\r\n Id: string,\r\n Name: string,\r\n Currency: string,\r\n Country: string,\r\n IsDefault: boolean,\r\n Aliases?: { [index: string]: string }\r\n\r\n Formats?: object[]\r\n\r\n}\r\n\r\nexport class Region extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Region\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Region }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Currency(): string {\r\n return this.data.Currency;\r\n }\r\n set Currency(value: string) {\r\n this.data.Currency = value;\r\n }\r\n get Country(): string {\r\n return this.data.Country;\r\n }\r\n set Country(value: string) {\r\n this.data.Country = value;\r\n }\r\n get IsDefault(): boolean {\r\n return this.data.IsDefault;\r\n }\r\n set IsDefault(value: boolean) {\r\n this.data.IsDefault = value;\r\n }\r\n get Aliases(): { [index: string]: string } {\r\n return this.data.Aliases;\r\n }\r\n set Aliases(value: { [index: string]: string }) {\r\n this.data.Aliases = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Formats, returns Program ProgramFormattedByRegion[]\r\n private __Formats: ProgramFormattedByRegion[];\r\n Formats(_context?: BaseDataContext): ProgramFormattedByRegion[] {\r\n if (this.__Formats)\r\n return this.__Formats;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Formats), (id) => context.get(id) as ProgramFormattedByRegion);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setFormats(values: ProgramFormattedByRegion[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Formats = values;\r\n }\r\n get _Formats(): Set {\r\n if (!this._relationships.has(\"Formats\"))\r\n this._relationships.set(\"Formats\", new Set());\r\n\r\n return this._relationships.get(\"Formats\");\r\n }\r\n set _Formats(values: Set) {\r\n this._relationships.set(\"Formats\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Formats',\r\n edgeType: ProgramFormattedByRegion,\r\n otherVertexPropertyName: 'IsFormattedBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Region {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Region) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Currency: model.Currency,\r\n Country: model.Country,\r\n IsDefault: model.IsDefault,\r\n Aliases: model.Aliases,\r\n Formats: ModelUtils.serializeShallowEdge(model.Formats(), 'Formats'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Region {\r\n let clone = new Region();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Formats = _.cloneDeep(this._Formats);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IReservationSet {\r\n Id: string,\r\n readonly CreatedAt: Date,\r\n readonly LastActivity: Date,\r\n\r\n IsStartedBy?: object[],\r\n IsQueuedBy?: object[],\r\n Reserves?: object[]\r\n\r\n}\r\n\r\nexport class ReservationSet extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ReservationSet\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ReservationSet }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get CreatedAt(): Date {\r\n return this.data.CreatedAt ? new Date(this.data.CreatedAt) : undefined;\r\n }\r\n get LastActivity(): Date {\r\n return this.data.LastActivity ? new Date(this.data.LastActivity) : undefined;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsStartedBy, returns SMIdentity SMIdentityStartsReservationSet[]\r\n private __IsStartedBy: SMIdentityStartsReservationSet[];\r\n IsStartedBy(_context?: BaseDataContext): SMIdentityStartsReservationSet[] {\r\n if (this.__IsStartedBy)\r\n return this.__IsStartedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsStartedBy), (id) => context.get(id) as SMIdentityStartsReservationSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsStartedBy(values: SMIdentityStartsReservationSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsStartedBy = values;\r\n }\r\n get _IsStartedBy(): Set {\r\n if (!this._relationships.has(\"IsStartedBy\"))\r\n this._relationships.set(\"IsStartedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsStartedBy\");\r\n }\r\n set _IsStartedBy(values: Set) {\r\n this._relationships.set(\"IsStartedBy\", values);\r\n }\r\n\r\n // Relationship IsQueuedBy, returns WorkGroup WorkGroupQueuesReservationSet[]\r\n private __IsQueuedBy: WorkGroupQueuesReservationSet[];\r\n IsQueuedBy(_context?: BaseDataContext): WorkGroupQueuesReservationSet[] {\r\n if (this.__IsQueuedBy)\r\n return this.__IsQueuedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsQueuedBy), (id) => context.get(id) as WorkGroupQueuesReservationSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsQueuedBy(values: WorkGroupQueuesReservationSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsQueuedBy = values;\r\n }\r\n get _IsQueuedBy(): Set {\r\n if (!this._relationships.has(\"IsQueuedBy\"))\r\n this._relationships.set(\"IsQueuedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsQueuedBy\");\r\n }\r\n set _IsQueuedBy(values: Set) {\r\n this._relationships.set(\"IsQueuedBy\", values);\r\n }\r\n\r\n // Relationship Reserves, returns Account ReservationSetReservesAccount[]\r\n private __Reserves: ReservationSetReservesAccount[];\r\n Reserves(_context?: BaseDataContext): ReservationSetReservesAccount[] {\r\n if (this.__Reserves)\r\n return this.__Reserves;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Reserves), (id) => context.get(id) as ReservationSetReservesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setReserves(values: ReservationSetReservesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Reserves = values;\r\n }\r\n get _Reserves(): Set {\r\n if (!this._relationships.has(\"Reserves\"))\r\n this._relationships.set(\"Reserves\", new Set());\r\n\r\n return this._relationships.get(\"Reserves\");\r\n }\r\n set _Reserves(values: Set) {\r\n this._relationships.set(\"Reserves\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsStartedBy',\r\n edgeType: SMIdentityStartsReservationSet,\r\n otherVertexPropertyName: 'Starts',\r\n otherVertexType: SMIdentity,\r\n },\r\n {\r\n propertyName: 'IsQueuedBy',\r\n edgeType: WorkGroupQueuesReservationSet,\r\n otherVertexPropertyName: 'Queues',\r\n otherVertexType: WorkGroup,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Reserves',\r\n edgeType: ReservationSetReservesAccount,\r\n otherVertexPropertyName: 'IsReservedBy',\r\n otherVertexType: Account,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ReservationSet {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ReservationSet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n CreatedAt: model.CreatedAt,\r\n LastActivity: model.LastActivity,\r\n IsStartedBy: ModelUtils.serializeShallowEdge(model.IsStartedBy(), 'IsStartedBy'),\r\n IsQueuedBy: ModelUtils.serializeShallowEdge(model.IsQueuedBy(), 'IsQueuedBy'),\r\n Reserves: ModelUtils.serializeShallowEdge(model.Reserves(), 'Reserves'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ReservationSet {\r\n let clone = new ReservationSet();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsStartedBy = _.cloneDeep(this._IsStartedBy);\r\n clone._IsQueuedBy = _.cloneDeep(this._IsQueuedBy);\r\n clone._Reserves = _.cloneDeep(this._Reserves);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ReservationSetReservesAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ReservationSetReservesAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ReservedAt(): Date {\r\n return this.data.ReservedAt ? new Date(this.data.ReservedAt) : undefined;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ReservationSet\r\n private __IsReservedBy: ReservationSet;\r\n\r\n IsReservedBy(context?: BaseDataContext): ReservationSet {\r\n if (this.__IsReservedBy)\r\n return this.__IsReservedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsReservedBy) as ReservationSet;\r\n }\r\n setIsReservedBy(value: ReservationSet) {\r\n this.__IsReservedBy = value;\r\n }\r\n get _IsReservedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsReservedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __Reserves: Account;\r\n\r\n Reserves(context?: BaseDataContext): Account {\r\n if (this.__Reserves)\r\n return this.__Reserves;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Reserves) as Account;\r\n }\r\n setReserves(value: Account) {\r\n this.__Reserves = value;\r\n }\r\n get _Reserves(): string {\r\n return this.In;\r\n }\r\n set _Reserves(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ReservationSetReservesAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ReservationSetReservesAccount {\r\n let clone = new ReservationSetReservesAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IRuleSet {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSet extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleSet\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSet }[] = [\r\n {className: 'RuleSetRiskAssessment', type: RuleSetRiskAssessment},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Contains, returns Rule RuleSetContainsRule[]\r\n private __Contains: RuleSetContainsRule[];\r\n Contains(_context?: BaseDataContext): RuleSetContainsRule[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as RuleSetContainsRule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: RuleSetContainsRule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSet {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSet {\r\n let clone = new RuleSet();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class RuleSetContainsRule extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetContainsRule\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to RuleSet\r\n private __IsContainedBy: RuleSet;\r\n\r\n IsContainedBy(context?: BaseDataContext): RuleSet {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as RuleSet;\r\n }\r\n setIsContainedBy(value: RuleSet) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Rule\r\n private __Contains: Rule;\r\n\r\n Contains(context?: BaseDataContext): Rule {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Rule;\r\n }\r\n setContains(value: Rule) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): RuleSetContainsRule {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): RuleSetContainsRule {\r\n let clone = new RuleSetContainsRule();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SectionContainsElement extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SectionContainsElement\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Section\r\n private __IsContainedBy: Section;\r\n\r\n IsContainedBy(context?: BaseDataContext): Section {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as Section;\r\n }\r\n setIsContainedBy(value: Section) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Element\r\n private __Contains: Element;\r\n\r\n Contains(context?: BaseDataContext): Element {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Element;\r\n }\r\n setContains(value: Element) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SectionContainsElement {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SectionContainsElement {\r\n let clone = new SectionContainsElement();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SectionDocument extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SectionDocument\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get OrderNum(): number {\r\n return this.data.OrderNum;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get ApplicationId(): string {\r\n return this.data.ApplicationId;\r\n }\r\n get ParentId(): string {\r\n return this.data.ParentId;\r\n }\r\n get ParentType(): string {\r\n return this.data.ParentType;\r\n }\r\n get DisplayLabel(): string {\r\n return this.data.DisplayLabel;\r\n }\r\n get Fields(): any[] {\r\n return this.data.Fields;\r\n }\r\n get StaticElements(): any[] {\r\n return this.data.StaticElements;\r\n }\r\n get FixedSections(): any[] {\r\n return this.data.FixedSections;\r\n }\r\n get ConditionMet(): boolean {\r\n return this.data.ConditionMet;\r\n }\r\n get ExternalId(): string {\r\n return this.data.ExternalId;\r\n }\r\n get Participation(): boolean {\r\n return this.data.Participation;\r\n }\r\n get ParticipationStatus(): string {\r\n return this.data.ParticipationStatus;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get Repeatable(): boolean {\r\n return this.data.Repeatable;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): SectionDocument {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: SectionDocument) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ApplicationId: model.ApplicationId,\r\n ParentId: model.ParentId,\r\n ParentType: model.ParentType,\r\n DisplayLabel: model.DisplayLabel,\r\n Fields: model.Fields,\r\n StaticElements: model.StaticElements,\r\n FixedSections: model.FixedSections,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n Participation: model.Participation,\r\n ParticipationStatus: model.ParticipationStatus,\r\n Committed: model.Committed,\r\n Repeatable: model.Repeatable,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SectionDocument {\r\n let clone = new SectionDocument();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SectionRepeatsWithDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SectionRepeatsWithDataGroup\";\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Edition(): number {\r\n return this.data.Edition;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Section\r\n private __RepeatsWithSection: Section;\r\n\r\n RepeatsWithSection(context?: BaseDataContext): Section {\r\n if (this.__RepeatsWithSection)\r\n return this.__RepeatsWithSection;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._RepeatsWithSection) as Section;\r\n }\r\n setRepeatsWithSection(value: Section) {\r\n this.__RepeatsWithSection = value;\r\n }\r\n get _RepeatsWithSection(): string {\r\n return this.Out;\r\n }\r\n set _RepeatsWithSection(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __RepeatsWith: DataGroup;\r\n\r\n RepeatsWith(context?: BaseDataContext): DataGroup {\r\n if (this.__RepeatsWith)\r\n return this.__RepeatsWith;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._RepeatsWith) as DataGroup;\r\n }\r\n setRepeatsWith(value: DataGroup) {\r\n this.__RepeatsWith = value;\r\n }\r\n get _RepeatsWith(): string {\r\n return this.In;\r\n }\r\n set _RepeatsWith(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SectionRepeatsWithDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SectionRepeatsWithDataGroup {\r\n let clone = new SectionRepeatsWithDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ServiceLevel extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ServiceLevel\";\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ServiceLevelAgreementId(): string {\r\n return this.data.ServiceLevelAgreementId;\r\n }\r\n set ServiceLevelAgreementId(value: string) {\r\n this.data.ServiceLevelAgreementId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workable\r\n private __IsTriggeredBy: Workable;\r\n\r\n IsTriggeredBy(context?: BaseDataContext): Workable {\r\n if (this.__IsTriggeredBy)\r\n return this.__IsTriggeredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsTriggeredBy) as Workable;\r\n }\r\n setIsTriggeredBy(value: Workable) {\r\n this.__IsTriggeredBy = value;\r\n }\r\n get _IsTriggeredBy(): string {\r\n return this.Out;\r\n }\r\n set _IsTriggeredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workable\r\n private __Triggers: Workable;\r\n\r\n Triggers(context?: BaseDataContext): Workable {\r\n if (this.__Triggers)\r\n return this.__Triggers;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Triggers) as Workable;\r\n }\r\n setTriggers(value: Workable) {\r\n this.__Triggers = value;\r\n }\r\n get _Triggers(): string {\r\n return this.In;\r\n }\r\n set _Triggers(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ServiceLevel {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ServiceLevel {\r\n let clone = new ServiceLevel();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ServiceLevelAgreement extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ServiceLevelAgreement\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get TimeToCompleteValue(): number {\r\n return this.data.TimeToCompleteValue;\r\n }\r\n get TimeToCompleteUnits(): string {\r\n return this.data.TimeToCompleteUnits;\r\n }\r\n get ExcludeWeekends(): boolean {\r\n return this.data.ExcludeWeekends;\r\n }\r\n get ExcludeHolidays(): boolean {\r\n return this.data.ExcludeHolidays;\r\n }\r\n get Enabled(): boolean {\r\n return this.data.Enabled;\r\n }\r\n get Version(): number {\r\n return this.data.Version;\r\n }\r\n get VersionId(): string {\r\n return this.data.VersionId;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ServiceLevelAgreement {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ServiceLevelAgreement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n TimeToCompleteValue: model.TimeToCompleteValue,\r\n TimeToCompleteUnits: model.TimeToCompleteUnits,\r\n ExcludeWeekends: model.ExcludeWeekends,\r\n ExcludeHolidays: model.ExcludeHolidays,\r\n Enabled: model.Enabled,\r\n Version: model.Version,\r\n VersionId: model.VersionId,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ServiceLevelAgreement {\r\n let clone = new ServiceLevelAgreement();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SimpleMapping extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SimpleMapping\";\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get CommittedEditions(): number[] {\r\n return this.data.CommittedEditions;\r\n }\r\n get Content(): { [index: number]: { [index: string]: any } } {\r\n return this.data.Content;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get MapId(): string {\r\n return this.data.MapId;\r\n }\r\n set MapId(value: string) {\r\n this.data.MapId = value;\r\n }\r\n get InputLabel(): string {\r\n return this.data.InputLabel;\r\n }\r\n get OutputLabel(): string {\r\n return this.data.OutputLabel;\r\n }\r\n get InputOrder(): number {\r\n return this.data.InputOrder;\r\n }\r\n get OutputOrder(): number {\r\n return this.data.OutputOrder;\r\n }\r\n get InputType(): string {\r\n return this.data.InputType;\r\n }\r\n get FromRepeatable(): boolean {\r\n return this.data.FromRepeatable;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Mappable\r\n private __IsMappingFor: Mappable;\r\n\r\n IsMappingFor(context?: BaseDataContext): Mappable {\r\n if (this.__IsMappingFor)\r\n return this.__IsMappingFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsMappingFor) as Mappable;\r\n }\r\n setIsMappingFor(value: Mappable) {\r\n this.__IsMappingFor = value;\r\n }\r\n get _IsMappingFor(): string {\r\n return this.Out;\r\n }\r\n set _IsMappingFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Mappable\r\n private __MapsTo: Mappable;\r\n\r\n MapsTo(context?: BaseDataContext): Mappable {\r\n if (this.__MapsTo)\r\n return this.__MapsTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._MapsTo) as Mappable;\r\n }\r\n setMapsTo(value: Mappable) {\r\n this.__MapsTo = value;\r\n }\r\n get _MapsTo(): string {\r\n return this.In;\r\n }\r\n set _MapsTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SimpleMapping {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SimpleMapping {\r\n let clone = new SimpleMapping();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SMIdentityMemberOfUserPool extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentityMemberOfUserPool\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __HasMembers: SMIdentity;\r\n\r\n HasMembers(context?: BaseDataContext): SMIdentity {\r\n if (this.__HasMembers)\r\n return this.__HasMembers;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._HasMembers) as SMIdentity;\r\n }\r\n setHasMembers(value: SMIdentity) {\r\n this.__HasMembers = value;\r\n }\r\n get _HasMembers(): string {\r\n return this.Out;\r\n }\r\n set _HasMembers(value: string) {\r\n this.Out = value;\r\n }\r\n // In to UserPool\r\n private __IsMemberOf: UserPool;\r\n\r\n IsMemberOf(context?: BaseDataContext): UserPool {\r\n if (this.__IsMemberOf)\r\n return this.__IsMemberOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsMemberOf) as UserPool;\r\n }\r\n setIsMemberOf(value: UserPool) {\r\n this.__IsMemberOf = value;\r\n }\r\n get _IsMemberOf(): string {\r\n return this.In;\r\n }\r\n set _IsMemberOf(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SMIdentityMemberOfUserPool {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SMIdentityMemberOfUserPool {\r\n let clone = new SMIdentityMemberOfUserPool();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SMIdentityStartsReservationSet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentityStartsReservationSet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __IsStartedBy: SMIdentity;\r\n\r\n IsStartedBy(context?: BaseDataContext): SMIdentity {\r\n if (this.__IsStartedBy)\r\n return this.__IsStartedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsStartedBy) as SMIdentity;\r\n }\r\n setIsStartedBy(value: SMIdentity) {\r\n this.__IsStartedBy = value;\r\n }\r\n get _IsStartedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsStartedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ReservationSet\r\n private __Starts: ReservationSet;\r\n\r\n Starts(context?: BaseDataContext): ReservationSet {\r\n if (this.__Starts)\r\n return this.__Starts;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Starts) as ReservationSet;\r\n }\r\n setStarts(value: ReservationSet) {\r\n this.__Starts = value;\r\n }\r\n get _Starts(): string {\r\n return this.In;\r\n }\r\n set _Starts(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SMIdentityStartsReservationSet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SMIdentityStartsReservationSet {\r\n let clone = new SMIdentityStartsReservationSet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SMIdentityWorksAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentityWorksAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __IsWorkedBy: SMIdentity;\r\n\r\n IsWorkedBy(context?: BaseDataContext): SMIdentity {\r\n if (this.__IsWorkedBy)\r\n return this.__IsWorkedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWorkedBy) as SMIdentity;\r\n }\r\n setIsWorkedBy(value: SMIdentity) {\r\n this.__IsWorkedBy = value;\r\n }\r\n get _IsWorkedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsWorkedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __Works: Account;\r\n\r\n Works(context?: BaseDataContext): Account {\r\n if (this.__Works)\r\n return this.__Works;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Works) as Account;\r\n }\r\n setWorks(value: Account) {\r\n this.__Works = value;\r\n }\r\n get _Works(): string {\r\n return this.In;\r\n }\r\n set _Works(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SMIdentityWorksAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SMIdentityWorksAccount {\r\n let clone = new SMIdentityWorksAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ITransaction {\r\n readonly CopiedFromId?: string,\r\n Id: string,\r\n readonly TransactionNumber: number,\r\n TransactionEffectiveDate: ContractDate,\r\n readonly CopiedFromPolicyNumber?: string,\r\n readonly PolicyId: string,\r\n readonly Committed: boolean,\r\n readonly Edition: number,\r\n readonly RatingStatus: string,\r\n readonly PolicyRatedStatus?: string,\r\n readonly LastAttemptedPolicyRatedStatus?: string,\r\n readonly SuccessfulPolicyRatedStatuses?: string[],\r\n readonly LastUpdated: Date,\r\n readonly Name?: string,\r\n readonly TransactionTypeId?: string,\r\n readonly APICreated: boolean,\r\n readonly TransactionStarted: boolean,\r\n readonly QuoteNumber?: string,\r\n readonly PolicyNumber?: string,\r\n StateOfDomicile?: string,\r\n WrittenPremium?: number,\r\n WrittenTaxes?: number,\r\n WrittenFees?: number,\r\n WrittenTotal?: number,\r\n ChangeInPremium?: number,\r\n ChangeInTaxes?: number,\r\n ChangeInFees?: number,\r\n ChangeInTotal?: number,\r\n\r\n IsExecutedBy?: object[],\r\n IsInformedBy?: object[],\r\n IsManagedBy?: object[]\r\n\r\n}\r\n\r\nexport class Transaction extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Transaction\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Transaction }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get TransactionNumber(): number {\r\n return this.data.TransactionNumber;\r\n }\r\n get TransactionEffectiveDate(): ContractDate {\r\n this.data.TransactionEffectiveDate = ModelUtils.deserializeContractDate(this.data.TransactionEffectiveDate);\r\n return this.data.TransactionEffectiveDate;\r\n }\r\n set TransactionEffectiveDate(value: ContractDate) {\r\n this.data.TransactionEffectiveDate = value;\r\n }\r\n get CopiedFromPolicyNumber(): string {\r\n return this.data.CopiedFromPolicyNumber;\r\n }\r\n get PolicyId(): string {\r\n return this.data.PolicyId;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get Edition(): number {\r\n return this.data.Edition;\r\n }\r\n get RatingStatus(): string {\r\n return this.data.RatingStatus;\r\n }\r\n get PolicyRatedStatus(): string {\r\n return this.data.PolicyRatedStatus;\r\n }\r\n get LastAttemptedPolicyRatedStatus(): string {\r\n return this.data.LastAttemptedPolicyRatedStatus;\r\n }\r\n get SuccessfulPolicyRatedStatuses(): string[] {\r\n return this.data.SuccessfulPolicyRatedStatuses;\r\n }\r\n get LastUpdated(): Date {\r\n return this.data.LastUpdated ? new Date(this.data.LastUpdated) : undefined;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get TransactionTypeId(): string {\r\n return this.data.TransactionTypeId;\r\n }\r\n get APICreated(): boolean {\r\n return this.data.APICreated;\r\n }\r\n get TransactionStarted(): boolean {\r\n return this.data.TransactionStarted;\r\n }\r\n get QuoteNumber(): string {\r\n return this.data.QuoteNumber;\r\n }\r\n get PolicyNumber(): string {\r\n return this.data.PolicyNumber;\r\n }\r\n get StateOfDomicile(): string {\r\n return this.data.StateOfDomicile;\r\n }\r\n set StateOfDomicile(value: string) {\r\n this.data.StateOfDomicile = value;\r\n }\r\n get WrittenPremium(): number {\r\n return this.data.WrittenPremium;\r\n }\r\n set WrittenPremium(value: number) {\r\n this.data.WrittenPremium = value;\r\n }\r\n get WrittenTaxes(): number {\r\n return this.data.WrittenTaxes;\r\n }\r\n set WrittenTaxes(value: number) {\r\n this.data.WrittenTaxes = value;\r\n }\r\n get WrittenFees(): number {\r\n return this.data.WrittenFees;\r\n }\r\n set WrittenFees(value: number) {\r\n this.data.WrittenFees = value;\r\n }\r\n get WrittenTotal(): number {\r\n return this.data.WrittenTotal;\r\n }\r\n set WrittenTotal(value: number) {\r\n this.data.WrittenTotal = value;\r\n }\r\n get ChangeInPremium(): number {\r\n return this.data.ChangeInPremium;\r\n }\r\n set ChangeInPremium(value: number) {\r\n this.data.ChangeInPremium = value;\r\n }\r\n get ChangeInTaxes(): number {\r\n return this.data.ChangeInTaxes;\r\n }\r\n set ChangeInTaxes(value: number) {\r\n this.data.ChangeInTaxes = value;\r\n }\r\n get ChangeInFees(): number {\r\n return this.data.ChangeInFees;\r\n }\r\n set ChangeInFees(value: number) {\r\n this.data.ChangeInFees = value;\r\n }\r\n get ChangeInTotal(): number {\r\n return this.data.ChangeInTotal;\r\n }\r\n set ChangeInTotal(value: number) {\r\n this.data.ChangeInTotal = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsExecutedBy, returns Policy PolicyExecutesTransaction[]\r\n private __IsExecutedBy: PolicyExecutesTransaction[];\r\n IsExecutedBy(_context?: BaseDataContext): PolicyExecutesTransaction[] {\r\n if (this.__IsExecutedBy)\r\n return this.__IsExecutedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsExecutedBy), (id) => context.get(id) as PolicyExecutesTransaction);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsExecutedBy(values: PolicyExecutesTransaction[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsExecutedBy = values;\r\n }\r\n get _IsExecutedBy(): Set {\r\n if (!this._relationships.has(\"IsExecutedBy\"))\r\n this._relationships.set(\"IsExecutedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsExecutedBy\");\r\n }\r\n set _IsExecutedBy(values: Set) {\r\n this._relationships.set(\"IsExecutedBy\", values);\r\n }\r\n\r\n // Relationship IsInformedBy, returns Document DocumentInformsTransaction[]\r\n private __IsInformedBy: DocumentInformsTransaction[];\r\n IsInformedBy(_context?: BaseDataContext): DocumentInformsTransaction[] {\r\n if (this.__IsInformedBy)\r\n return this.__IsInformedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsInformedBy), (id) => context.get(id) as DocumentInformsTransaction);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsInformedBy(values: DocumentInformsTransaction[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsInformedBy = values;\r\n }\r\n get _IsInformedBy(): Set {\r\n if (!this._relationships.has(\"IsInformedBy\"))\r\n this._relationships.set(\"IsInformedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsInformedBy\");\r\n }\r\n set _IsInformedBy(values: Set) {\r\n this._relationships.set(\"IsInformedBy\", values);\r\n }\r\n\r\n // Relationship IsManagedBy, returns Workflow TransactionIsManagedByWorkflow[]\r\n private __IsManagedBy: TransactionIsManagedByWorkflow[];\r\n IsManagedBy(_context?: BaseDataContext): TransactionIsManagedByWorkflow[] {\r\n if (this.__IsManagedBy)\r\n return this.__IsManagedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsManagedBy), (id) => context.get(id) as TransactionIsManagedByWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsManagedBy(values: TransactionIsManagedByWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsManagedBy = values;\r\n }\r\n get _IsManagedBy(): Set {\r\n if (!this._relationships.has(\"IsManagedBy\"))\r\n this._relationships.set(\"IsManagedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsManagedBy\");\r\n }\r\n set _IsManagedBy(values: Set) {\r\n this._relationships.set(\"IsManagedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsExecutedBy',\r\n edgeType: PolicyExecutesTransaction,\r\n otherVertexPropertyName: 'Executes',\r\n otherVertexType: Policy,\r\n },\r\n {\r\n propertyName: 'IsInformedBy',\r\n edgeType: DocumentInformsTransaction,\r\n otherVertexPropertyName: 'Informs',\r\n otherVertexType: Document,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsManagedBy',\r\n edgeType: TransactionIsManagedByWorkflow,\r\n otherVertexPropertyName: 'Manages',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Transaction {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Transaction) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n Id: model.Id,\r\n TransactionNumber: model.TransactionNumber,\r\n TransactionEffectiveDate: ModelUtils.serializeContractDate(model.data.TransactionEffectiveDate),\r\n CopiedFromPolicyNumber: model.CopiedFromPolicyNumber,\r\n PolicyId: model.PolicyId,\r\n Committed: model.Committed,\r\n Edition: model.Edition,\r\n RatingStatus: model.RatingStatus,\r\n PolicyRatedStatus: model.PolicyRatedStatus,\r\n LastAttemptedPolicyRatedStatus: model.LastAttemptedPolicyRatedStatus,\r\n SuccessfulPolicyRatedStatuses: model.SuccessfulPolicyRatedStatuses,\r\n LastUpdated: model.LastUpdated,\r\n Name: model.Name,\r\n TransactionTypeId: model.TransactionTypeId,\r\n APICreated: model.APICreated,\r\n TransactionStarted: model.TransactionStarted,\r\n QuoteNumber: model.QuoteNumber,\r\n PolicyNumber: model.PolicyNumber,\r\n StateOfDomicile: model.StateOfDomicile,\r\n WrittenPremium: model.WrittenPremium,\r\n WrittenTaxes: model.WrittenTaxes,\r\n WrittenFees: model.WrittenFees,\r\n WrittenTotal: model.WrittenTotal,\r\n ChangeInPremium: model.ChangeInPremium,\r\n ChangeInTaxes: model.ChangeInTaxes,\r\n ChangeInFees: model.ChangeInFees,\r\n ChangeInTotal: model.ChangeInTotal,\r\n IsExecutedBy: ModelUtils.serializeShallowEdge(model.IsExecutedBy(), 'IsExecutedBy'),\r\n IsInformedBy: ModelUtils.serializeShallowEdge(model.IsInformedBy(), 'IsInformedBy'),\r\n IsManagedBy: ModelUtils.serializeShallowEdge(model.IsManagedBy(), 'IsManagedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Transaction {\r\n let clone = new Transaction();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsExecutedBy = _.cloneDeep(this._IsExecutedBy);\r\n clone._IsInformedBy = _.cloneDeep(this._IsInformedBy);\r\n clone._IsManagedBy = _.cloneDeep(this._IsManagedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class TransactionDetails extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TransactionDetails\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get TransactionId(): string {\r\n return this.data.TransactionId;\r\n }\r\n set TransactionId(value: string) {\r\n this.data.TransactionId = value;\r\n }\r\n get StateOfDomicile(): string {\r\n return this.data.StateOfDomicile;\r\n }\r\n set StateOfDomicile(value: string) {\r\n this.data.StateOfDomicile = value;\r\n }\r\n get WrittenPremium(): number {\r\n return this.data.WrittenPremium;\r\n }\r\n set WrittenPremium(value: number) {\r\n this.data.WrittenPremium = value;\r\n }\r\n get WrittenFees(): number {\r\n return this.data.WrittenFees;\r\n }\r\n set WrittenFees(value: number) {\r\n this.data.WrittenFees = value;\r\n }\r\n get WrittenTaxes(): number {\r\n return this.data.WrittenTaxes;\r\n }\r\n set WrittenTaxes(value: number) {\r\n this.data.WrittenTaxes = value;\r\n }\r\n get WrittenTotal(): number {\r\n return this.data.WrittenTotal;\r\n }\r\n set WrittenTotal(value: number) {\r\n this.data.WrittenTotal = value;\r\n }\r\n get ChangeInPremium(): number {\r\n return this.data.ChangeInPremium;\r\n }\r\n set ChangeInPremium(value: number) {\r\n this.data.ChangeInPremium = value;\r\n }\r\n get ChangeInFees(): number {\r\n return this.data.ChangeInFees;\r\n }\r\n set ChangeInFees(value: number) {\r\n this.data.ChangeInFees = value;\r\n }\r\n get ChangeInTaxes(): number {\r\n return this.data.ChangeInTaxes;\r\n }\r\n set ChangeInTaxes(value: number) {\r\n this.data.ChangeInTaxes = value;\r\n }\r\n get ChangeInTotal(): number {\r\n return this.data.ChangeInTotal;\r\n }\r\n set ChangeInTotal(value: number) {\r\n this.data.ChangeInTotal = value;\r\n }\r\n get PolicyNumber(): string {\r\n return this.data.PolicyNumber;\r\n }\r\n set PolicyNumber(value: string) {\r\n this.data.PolicyNumber = value;\r\n }\r\n get QuoteNumber(): string {\r\n return this.data.QuoteNumber;\r\n }\r\n set QuoteNumber(value: string) {\r\n this.data.QuoteNumber = value;\r\n }\r\n get ViewUrl(): string {\r\n return this.data.ViewUrl;\r\n }\r\n set ViewUrl(value: string) {\r\n this.data.ViewUrl = value;\r\n }\r\n get EditUrl(): string {\r\n return this.data.EditUrl;\r\n }\r\n set EditUrl(value: string) {\r\n this.data.EditUrl = value;\r\n }\r\n get RatingMessages(): any[] {\r\n return this.data.RatingMessages;\r\n }\r\n set RatingMessages(value: any[]) {\r\n this.data.RatingMessages = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): TransactionDetails {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: TransactionDetails) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n Id: model.Id,\r\n TransactionId: model.TransactionId,\r\n StateOfDomicile: model.StateOfDomicile,\r\n WrittenPremium: model.WrittenPremium,\r\n WrittenFees: model.WrittenFees,\r\n WrittenTaxes: model.WrittenTaxes,\r\n WrittenTotal: model.WrittenTotal,\r\n ChangeInPremium: model.ChangeInPremium,\r\n ChangeInFees: model.ChangeInFees,\r\n ChangeInTaxes: model.ChangeInTaxes,\r\n ChangeInTotal: model.ChangeInTotal,\r\n PolicyNumber: model.PolicyNumber,\r\n QuoteNumber: model.QuoteNumber,\r\n ViewUrl: model.ViewUrl,\r\n EditUrl: model.EditUrl,\r\n RatingMessages: model.RatingMessages,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TransactionDetails {\r\n let clone = new TransactionDetails();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TransactionIsManagedByWorkflow extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TransactionIsManagedByWorkflow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get EligibilityStatus(): string {\r\n return this.data.EligibilityStatus;\r\n }\r\n get SelectionStatus(): string {\r\n return this.data.SelectionStatus;\r\n }\r\n set SelectionStatus(value: string) {\r\n this.data.SelectionStatus = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Transaction\r\n private __Manages: Transaction;\r\n\r\n Manages(context?: BaseDataContext): Transaction {\r\n if (this.__Manages)\r\n return this.__Manages;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Manages) as Transaction;\r\n }\r\n setManages(value: Transaction) {\r\n this.__Manages = value;\r\n }\r\n get _Manages(): string {\r\n return this.Out;\r\n }\r\n set _Manages(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workflow\r\n private __IsManagedBy: Workflow;\r\n\r\n IsManagedBy(context?: BaseDataContext): Workflow {\r\n if (this.__IsManagedBy)\r\n return this.__IsManagedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsManagedBy) as Workflow;\r\n }\r\n setIsManagedBy(value: Workflow) {\r\n this.__IsManagedBy = value;\r\n }\r\n get _IsManagedBy(): string {\r\n return this.In;\r\n }\r\n set _IsManagedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TransactionIsManagedByWorkflow {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TransactionIsManagedByWorkflow {\r\n let clone = new TransactionIsManagedByWorkflow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class UserFavoritesAccount extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UserFavoritesAccount\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __IsFavoriteOf: SMIdentity;\r\n\r\n IsFavoriteOf(context?: BaseDataContext): SMIdentity {\r\n if (this.__IsFavoriteOf)\r\n return this.__IsFavoriteOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsFavoriteOf) as SMIdentity;\r\n }\r\n setIsFavoriteOf(value: SMIdentity) {\r\n this.__IsFavoriteOf = value;\r\n }\r\n get _IsFavoriteOf(): string {\r\n return this.Out;\r\n }\r\n set _IsFavoriteOf(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Account\r\n private __Favorites: Account;\r\n\r\n Favorites(context?: BaseDataContext): Account {\r\n if (this.__Favorites)\r\n return this.__Favorites;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Favorites) as Account;\r\n }\r\n setFavorites(value: Account) {\r\n this.__Favorites = value;\r\n }\r\n get _Favorites(): string {\r\n return this.In;\r\n }\r\n set _Favorites(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): UserFavoritesAccount {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): UserFavoritesAccount {\r\n let clone = new UserFavoritesAccount();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IUserNotificationCenter {\r\n Id: string,\r\n IdentityKey: string,\r\n EnableInAppNotificationPopups: boolean,\r\n NotificationTypeSettings?: { [index: string]: boolean },\r\n ExpirationDurationOfReadNotificationsInDays: number,\r\n\r\n IsAlertedBy?: object[]\r\n\r\n}\r\n\r\nexport class UserNotificationCenter extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UserNotificationCenter\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof UserNotificationCenter }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get EnableInAppNotificationPopups(): boolean {\r\n return this.data.EnableInAppNotificationPopups;\r\n }\r\n set EnableInAppNotificationPopups(value: boolean) {\r\n this.data.EnableInAppNotificationPopups = value;\r\n }\r\n get NotificationTypeSettings(): { [index: string]: boolean } {\r\n return this.data.NotificationTypeSettings;\r\n }\r\n set NotificationTypeSettings(value: { [index: string]: boolean }) {\r\n this.data.NotificationTypeSettings = value;\r\n }\r\n get ExpirationDurationOfReadNotificationsInDays(): number {\r\n return this.data.ExpirationDurationOfReadNotificationsInDays;\r\n }\r\n set ExpirationDurationOfReadNotificationsInDays(value: number) {\r\n this.data.ExpirationDurationOfReadNotificationsInDays = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsAlertedBy, returns Notification UserNotificationCenterIsAlertedByNotification[]\r\n private __IsAlertedBy: UserNotificationCenterIsAlertedByNotification[];\r\n IsAlertedBy(_context?: BaseDataContext): UserNotificationCenterIsAlertedByNotification[] {\r\n if (this.__IsAlertedBy)\r\n return this.__IsAlertedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsAlertedBy), (id) => context.get(id) as UserNotificationCenterIsAlertedByNotification);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsAlertedBy(values: UserNotificationCenterIsAlertedByNotification[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsAlertedBy = values;\r\n }\r\n get _IsAlertedBy(): Set {\r\n if (!this._relationships.has(\"IsAlertedBy\"))\r\n this._relationships.set(\"IsAlertedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsAlertedBy\");\r\n }\r\n set _IsAlertedBy(values: Set) {\r\n this._relationships.set(\"IsAlertedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsAlertedBy',\r\n edgeType: UserNotificationCenterIsAlertedByNotification,\r\n otherVertexPropertyName: 'Alerts',\r\n otherVertexType: Notification,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): UserNotificationCenter {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: UserNotificationCenter) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IdentityKey: model.IdentityKey,\r\n EnableInAppNotificationPopups: model.EnableInAppNotificationPopups,\r\n NotificationTypeSettings: model.NotificationTypeSettings,\r\n ExpirationDurationOfReadNotificationsInDays: model.ExpirationDurationOfReadNotificationsInDays,\r\n IsAlertedBy: ModelUtils.serializeShallowEdge(model.IsAlertedBy(), 'IsAlertedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UserNotificationCenter {\r\n let clone = new UserNotificationCenter();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsAlertedBy = _.cloneDeep(this._IsAlertedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class UserNotificationCenterIsAlertedByNotification extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UserNotificationCenterIsAlertedByNotification\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Read(): boolean {\r\n return this.data.Read;\r\n }\r\n set Read(value: boolean) {\r\n this.data.Read = value;\r\n }\r\n get ExpirationDate(): Date {\r\n return this.data.ExpirationDate ? new Date(this.data.ExpirationDate) : undefined;\r\n }\r\n set ExpirationDate(value: Date) {\r\n this.data.ExpirationDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to UserNotificationCenter\r\n private __Alerts: UserNotificationCenter;\r\n\r\n Alerts(context?: BaseDataContext): UserNotificationCenter {\r\n if (this.__Alerts)\r\n return this.__Alerts;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Alerts) as UserNotificationCenter;\r\n }\r\n setAlerts(value: UserNotificationCenter) {\r\n this.__Alerts = value;\r\n }\r\n get _Alerts(): string {\r\n return this.Out;\r\n }\r\n set _Alerts(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Notification\r\n private __IsAlertedBy: Notification;\r\n\r\n IsAlertedBy(context?: BaseDataContext): Notification {\r\n if (this.__IsAlertedBy)\r\n return this.__IsAlertedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsAlertedBy) as Notification;\r\n }\r\n setIsAlertedBy(value: Notification) {\r\n this.__IsAlertedBy = value;\r\n }\r\n get _IsAlertedBy(): string {\r\n return this.In;\r\n }\r\n set _IsAlertedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): UserNotificationCenterIsAlertedByNotification {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): UserNotificationCenterIsAlertedByNotification {\r\n let clone = new UserNotificationCenterIsAlertedByNotification();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class UserRecentAccounts extends DocumentModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UserRecentAccounts\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get Recents(): string[] {\r\n return this.data.Recents;\r\n }\r\n set Recents(value: string[]) {\r\n this.data.Recents = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): UserRecentAccounts {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: UserRecentAccounts) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IdentityKey: model.IdentityKey,\r\n Recents: model.Recents,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UserRecentAccounts {\r\n let clone = new UserRecentAccounts();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWorkable {\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class Workable extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Workable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Workable }[] = [\r\n {className: 'Phase', type: Phase},\r\n {className: 'Task', type: Task},\r\n {className: 'TaskApplication', type: TaskApplication},\r\n {className: 'TaskApproval', type: TaskApproval},\r\n {className: 'TaskClearance', type: TaskClearance},\r\n {className: 'TaskCorrespondence', type: TaskCorrespondence},\r\n {className: 'TaskDocumentGeneration', type: TaskDocumentGeneration},\r\n {className: 'TaskFileRequirement', type: TaskFileRequirement},\r\n {className: 'TaskManual', type: TaskManual},\r\n {className: 'TaskPolicyDates', type: TaskPolicyDates},\r\n {className: 'TaskProducts', type: TaskProducts},\r\n {className: 'TaskRatingSystem', type: TaskRatingSystem},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DueDate(): Date {\r\n return this.data.DueDate ? new Date(this.data.DueDate) : undefined;\r\n }\r\n set DueDate(value: Date) {\r\n this.data.DueDate = value;\r\n }\r\n get CompletionStatus(): string {\r\n return this.data.CompletionStatus;\r\n }\r\n get AvailabilityStatus(): string {\r\n return this.data.AvailabilityStatus;\r\n }\r\n get ObligationStatus(): string {\r\n return this.data.ObligationStatus;\r\n }\r\n get DateStatusChanged(): Date {\r\n return this.data.DateStatusChanged ? new Date(this.data.DateStatusChanged) : undefined;\r\n }\r\n get StatusChangedById(): string {\r\n return this.data.StatusChangedById;\r\n }\r\n get WaiveJournalEntryKey(): string {\r\n return this.data.WaiveJournalEntryKey;\r\n }\r\n get CompletingDependencies(): string[] {\r\n return this.data.CompletingDependencies;\r\n }\r\n set CompletingDependencies(value: string[]) {\r\n this.data.CompletingDependencies = value;\r\n }\r\n get CompletedDependencies(): string[] {\r\n return this.data.CompletedDependencies;\r\n }\r\n set CompletedDependencies(value: string[]) {\r\n this.data.CompletedDependencies = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsTriggeredBy, returns Workable ServiceLevel[]\r\n private __IsTriggeredBy: ServiceLevel[];\r\n IsTriggeredBy(_context?: BaseDataContext): ServiceLevel[] {\r\n if (this.__IsTriggeredBy)\r\n return this.__IsTriggeredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsTriggeredBy), (id) => context.get(id) as ServiceLevel);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsTriggeredBy(values: ServiceLevel[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsTriggeredBy = values;\r\n }\r\n get _IsTriggeredBy(): Set {\r\n if (!this._relationships.has(\"IsTriggeredBy\"))\r\n this._relationships.set(\"IsTriggeredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsTriggeredBy\");\r\n }\r\n set _IsTriggeredBy(values: Set) {\r\n this._relationships.set(\"IsTriggeredBy\", values);\r\n }\r\n\r\n // Relationship WaitsFor, returns Workable WorkableEnablesWorkable[]\r\n private __WaitsFor: WorkableEnablesWorkable[];\r\n WaitsFor(_context?: BaseDataContext): WorkableEnablesWorkable[] {\r\n if (this.__WaitsFor)\r\n return this.__WaitsFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._WaitsFor), (id) => context.get(id) as WorkableEnablesWorkable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWaitsFor(values: WorkableEnablesWorkable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__WaitsFor = values;\r\n }\r\n get _WaitsFor(): Set {\r\n if (!this._relationships.has(\"WaitsFor\"))\r\n this._relationships.set(\"WaitsFor\", new Set());\r\n\r\n return this._relationships.get(\"WaitsFor\");\r\n }\r\n set _WaitsFor(values: Set) {\r\n this._relationships.set(\"WaitsFor\", values);\r\n }\r\n\r\n // Relationship Triggers, returns Workable ServiceLevel[]\r\n private __Triggers: ServiceLevel[];\r\n Triggers(_context?: BaseDataContext): ServiceLevel[] {\r\n if (this.__Triggers)\r\n return this.__Triggers;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Triggers), (id) => context.get(id) as ServiceLevel);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setTriggers(values: ServiceLevel[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Triggers = values;\r\n }\r\n get _Triggers(): Set {\r\n if (!this._relationships.has(\"Triggers\"))\r\n this._relationships.set(\"Triggers\", new Set());\r\n\r\n return this._relationships.get(\"Triggers\");\r\n }\r\n set _Triggers(values: Set) {\r\n this._relationships.set(\"Triggers\", values);\r\n }\r\n\r\n // Relationship Enables, returns Workable WorkableEnablesWorkable[]\r\n private __Enables: WorkableEnablesWorkable[];\r\n Enables(_context?: BaseDataContext): WorkableEnablesWorkable[] {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Enables), (id) => context.get(id) as WorkableEnablesWorkable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEnables(values: WorkableEnablesWorkable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Enables = values;\r\n }\r\n get _Enables(): Set {\r\n if (!this._relationships.has(\"Enables\"))\r\n this._relationships.set(\"Enables\", new Set());\r\n\r\n return this._relationships.get(\"Enables\");\r\n }\r\n set _Enables(values: Set) {\r\n this._relationships.set(\"Enables\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Workable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Workable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Workable {\r\n let clone = new Workable();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WorkableEnablesWorkable extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkableEnablesWorkable\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Event(): string {\r\n return this.data.Event;\r\n }\r\n set Event(value: string) {\r\n this.data.Event = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workable\r\n private __WaitsFor: Workable;\r\n\r\n WaitsFor(context?: BaseDataContext): Workable {\r\n if (this.__WaitsFor)\r\n return this.__WaitsFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._WaitsFor) as Workable;\r\n }\r\n setWaitsFor(value: Workable) {\r\n this.__WaitsFor = value;\r\n }\r\n get _WaitsFor(): string {\r\n return this.Out;\r\n }\r\n set _WaitsFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workable\r\n private __Enables: Workable;\r\n\r\n Enables(context?: BaseDataContext): Workable {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Enables) as Workable;\r\n }\r\n setEnables(value: Workable) {\r\n this.__Enables = value;\r\n }\r\n get _Enables(): string {\r\n return this.In;\r\n }\r\n set _Enables(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkableEnablesWorkable {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkableEnablesWorkable {\r\n let clone = new WorkableEnablesWorkable();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWorkflow {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly Abbr: string,\r\n readonly Name: string,\r\n readonly Description: string,\r\n readonly Transactional: boolean,\r\n readonly Starting: boolean,\r\n readonly EffectiveDate?: ContractDate,\r\n readonly Status: string,\r\n Notes?: string,\r\n readonly CompletedTaskPercent: number,\r\n readonly DataStoreId?: string,\r\n readonly ProgramId: string,\r\n readonly Premium?: string,\r\n readonly Edition?: number,\r\n readonly TotalTasks: number,\r\n readonly ActiveTasks?: number,\r\n readonly CompletedTasks?: number,\r\n readonly DateNextDue?: Date,\r\n readonly CompletedOrStoppedOn?: Date,\r\n readonly CompletedOrStoppedBy?: string,\r\n readonly IsCopy: boolean,\r\n readonly CreatedOn?: Date,\r\n readonly CreatedAsStandby?: boolean,\r\n readonly StoppingDependencies?: string[],\r\n readonly StoppedDependencies?: string[],\r\n readonly CompletingDependencies?: string[],\r\n readonly CompletedDependencies?: string[],\r\n readonly LastCompletedTask?: string,\r\n VersionName?: string,\r\n readonly WorkflowVersionKey?: string,\r\n readonly StopReason?: string,\r\n readonly OriginalEdition?: number,\r\n\r\n IsRunningFor?: object[],\r\n Manages?: object[],\r\n IsStandbyFor?: object[],\r\n IsContainedBy?: object[],\r\n Collects?: object[],\r\n Evaluates?: object[],\r\n Requires?: object[],\r\n Stores?: object[]\r\n\r\n}\r\n\r\nexport class Workflow extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Workflow\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Workflow }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get Abbr(): string {\r\n return this.data.Abbr;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get Transactional(): boolean {\r\n return this.data.Transactional;\r\n }\r\n get Starting(): boolean {\r\n return this.data.Starting;\r\n }\r\n get EffectiveDate(): ContractDate {\r\n this.data.EffectiveDate = ModelUtils.deserializeContractDate(this.data.EffectiveDate);\r\n return this.data.EffectiveDate;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get Notes(): string {\r\n return this.data.Notes;\r\n }\r\n set Notes(value: string) {\r\n this.data.Notes = value;\r\n }\r\n get CompletedTaskPercent(): number {\r\n return this.data.CompletedTaskPercent;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n get ProgramId(): string {\r\n return this.data.ProgramId;\r\n }\r\n get Premium(): string {\r\n return this.data.Premium;\r\n }\r\n get Edition(): number {\r\n return this.data.Edition;\r\n }\r\n get TotalTasks(): number {\r\n return this.data.TotalTasks;\r\n }\r\n get ActiveTasks(): number {\r\n return this.data.ActiveTasks;\r\n }\r\n get CompletedTasks(): number {\r\n return this.data.CompletedTasks;\r\n }\r\n get DateNextDue(): Date {\r\n return this.data.DateNextDue ? new Date(this.data.DateNextDue) : undefined;\r\n }\r\n get CompletedOrStoppedOn(): Date {\r\n return this.data.CompletedOrStoppedOn ? new Date(this.data.CompletedOrStoppedOn) : undefined;\r\n }\r\n get CompletedOrStoppedBy(): string {\r\n return this.data.CompletedOrStoppedBy;\r\n }\r\n get IsCopy(): boolean {\r\n return this.data.IsCopy;\r\n }\r\n get CreatedOn(): Date {\r\n return this.data.CreatedOn ? new Date(this.data.CreatedOn) : undefined;\r\n }\r\n get CreatedAsStandby(): boolean {\r\n return this.data.CreatedAsStandby;\r\n }\r\n get StoppingDependencies(): string[] {\r\n return this.data.StoppingDependencies;\r\n }\r\n get StoppedDependencies(): string[] {\r\n return this.data.StoppedDependencies;\r\n }\r\n get CompletingDependencies(): string[] {\r\n return this.data.CompletingDependencies;\r\n }\r\n get CompletedDependencies(): string[] {\r\n return this.data.CompletedDependencies;\r\n }\r\n get LastCompletedTask(): string {\r\n return this.data.LastCompletedTask;\r\n }\r\n get VersionName(): string {\r\n return this.data.VersionName;\r\n }\r\n set VersionName(value: string) {\r\n this.data.VersionName = value;\r\n }\r\n get WorkflowVersionKey(): string {\r\n return this.data.WorkflowVersionKey;\r\n }\r\n get StopReason(): string {\r\n return this.data.StopReason;\r\n }\r\n get OriginalEdition(): number {\r\n return this.data.OriginalEdition;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRunningFor, returns Account AccountRunsWorkflow[]\r\n private __IsRunningFor: AccountRunsWorkflow[];\r\n IsRunningFor(_context?: BaseDataContext): AccountRunsWorkflow[] {\r\n if (this.__IsRunningFor)\r\n return this.__IsRunningFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRunningFor), (id) => context.get(id) as AccountRunsWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRunningFor(values: AccountRunsWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRunningFor = values;\r\n }\r\n get _IsRunningFor(): Set {\r\n if (!this._relationships.has(\"IsRunningFor\"))\r\n this._relationships.set(\"IsRunningFor\", new Set());\r\n\r\n return this._relationships.get(\"IsRunningFor\");\r\n }\r\n set _IsRunningFor(values: Set) {\r\n this._relationships.set(\"IsRunningFor\", values);\r\n }\r\n\r\n // Relationship Manages, returns Transaction TransactionIsManagedByWorkflow[]\r\n private __Manages: TransactionIsManagedByWorkflow[];\r\n Manages(_context?: BaseDataContext): TransactionIsManagedByWorkflow[] {\r\n if (this.__Manages)\r\n return this.__Manages;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Manages), (id) => context.get(id) as TransactionIsManagedByWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setManages(values: TransactionIsManagedByWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Manages = values;\r\n }\r\n get _Manages(): Set {\r\n if (!this._relationships.has(\"Manages\"))\r\n this._relationships.set(\"Manages\", new Set());\r\n\r\n return this._relationships.get(\"Manages\");\r\n }\r\n set _Manages(values: Set) {\r\n this._relationships.set(\"Manages\", values);\r\n }\r\n\r\n // Relationship IsStandbyFor, returns ProgramRevision ProgramRevisionStandbyWorkflow[]\r\n private __IsStandbyFor: ProgramRevisionStandbyWorkflow[];\r\n IsStandbyFor(_context?: BaseDataContext): ProgramRevisionStandbyWorkflow[] {\r\n if (this.__IsStandbyFor)\r\n return this.__IsStandbyFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsStandbyFor), (id) => context.get(id) as ProgramRevisionStandbyWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsStandbyFor(values: ProgramRevisionStandbyWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsStandbyFor = values;\r\n }\r\n get _IsStandbyFor(): Set {\r\n if (!this._relationships.has(\"IsStandbyFor\"))\r\n this._relationships.set(\"IsStandbyFor\", new Set());\r\n\r\n return this._relationships.get(\"IsStandbyFor\");\r\n }\r\n set _IsStandbyFor(values: Set) {\r\n this._relationships.set(\"IsStandbyFor\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns WorkflowSet WorkflowSetContainsWorkflow[]\r\n private __IsContainedBy: WorkflowSetContainsWorkflow[];\r\n IsContainedBy(_context?: BaseDataContext): WorkflowSetContainsWorkflow[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as WorkflowSetContainsWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: WorkflowSetContainsWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship Collects, returns Application WorkflowCollectsApplication[]\r\n private __Collects: WorkflowCollectsApplication[];\r\n Collects(_context?: BaseDataContext): WorkflowCollectsApplication[] {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Collects), (id) => context.get(id) as WorkflowCollectsApplication);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCollects(values: WorkflowCollectsApplication[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Collects = values;\r\n }\r\n get _Collects(): Set {\r\n if (!this._relationships.has(\"Collects\"))\r\n this._relationships.set(\"Collects\", new Set());\r\n\r\n return this._relationships.get(\"Collects\");\r\n }\r\n set _Collects(values: Set) {\r\n this._relationships.set(\"Collects\", values);\r\n }\r\n\r\n // Relationship Evaluates, returns Rule WorkflowEvaluatesRule[]\r\n private __Evaluates: WorkflowEvaluatesRule[];\r\n Evaluates(_context?: BaseDataContext): WorkflowEvaluatesRule[] {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Evaluates), (id) => context.get(id) as WorkflowEvaluatesRule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEvaluates(values: WorkflowEvaluatesRule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Evaluates = values;\r\n }\r\n get _Evaluates(): Set {\r\n if (!this._relationships.has(\"Evaluates\"))\r\n this._relationships.set(\"Evaluates\", new Set());\r\n\r\n return this._relationships.get(\"Evaluates\");\r\n }\r\n set _Evaluates(values: Set) {\r\n this._relationships.set(\"Evaluates\", values);\r\n }\r\n\r\n // Relationship Requires, returns Phase WorkflowRequiresPhase[]\r\n private __Requires: WorkflowRequiresPhase[];\r\n Requires(_context?: BaseDataContext): WorkflowRequiresPhase[] {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Requires), (id) => context.get(id) as WorkflowRequiresPhase);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRequires(values: WorkflowRequiresPhase[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Requires = values;\r\n }\r\n get _Requires(): Set {\r\n if (!this._relationships.has(\"Requires\"))\r\n this._relationships.set(\"Requires\", new Set());\r\n\r\n return this._relationships.get(\"Requires\");\r\n }\r\n set _Requires(values: Set) {\r\n this._relationships.set(\"Requires\", values);\r\n }\r\n\r\n // Relationship Stores, returns DataStore WorkflowStoresDataStore[]\r\n private __Stores: WorkflowStoresDataStore[];\r\n Stores(_context?: BaseDataContext): WorkflowStoresDataStore[] {\r\n if (this.__Stores)\r\n return this.__Stores;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Stores), (id) => context.get(id) as WorkflowStoresDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setStores(values: WorkflowStoresDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Stores = values;\r\n }\r\n get _Stores(): Set {\r\n if (!this._relationships.has(\"Stores\"))\r\n this._relationships.set(\"Stores\", new Set());\r\n\r\n return this._relationships.get(\"Stores\");\r\n }\r\n set _Stores(values: Set) {\r\n this._relationships.set(\"Stores\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsRunningFor',\r\n edgeType: AccountRunsWorkflow,\r\n otherVertexPropertyName: 'Runs',\r\n otherVertexType: Account,\r\n },\r\n {\r\n propertyName: 'Manages',\r\n edgeType: TransactionIsManagedByWorkflow,\r\n otherVertexPropertyName: 'IsManagedBy',\r\n otherVertexType: Transaction,\r\n },\r\n {\r\n propertyName: 'IsStandbyFor',\r\n edgeType: ProgramRevisionStandbyWorkflow,\r\n otherVertexPropertyName: 'HasStandby',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: WorkflowSetContainsWorkflow,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: WorkflowSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Collects',\r\n edgeType: WorkflowCollectsApplication,\r\n otherVertexPropertyName: 'IsCollectedFor',\r\n otherVertexType: Application,\r\n },\r\n {\r\n propertyName: 'Evaluates',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'IsEvaluatedFor',\r\n otherVertexType: Rule,\r\n },\r\n {\r\n propertyName: 'Requires',\r\n edgeType: WorkflowRequiresPhase,\r\n otherVertexPropertyName: 'IsRequiredFor',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'Stores',\r\n edgeType: WorkflowStoresDataStore,\r\n otherVertexPropertyName: 'IsStoredFor',\r\n otherVertexType: DataStore,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Workflow {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Workflow) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n Abbr: model.Abbr,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Transactional: model.Transactional,\r\n Starting: model.Starting,\r\n EffectiveDate: ModelUtils.serializeContractDate(model.data.EffectiveDate),\r\n Status: model.Status,\r\n Notes: model.Notes,\r\n CompletedTaskPercent: model.CompletedTaskPercent,\r\n DataStoreId: model.DataStoreId,\r\n ProgramId: model.ProgramId,\r\n Premium: model.Premium,\r\n Edition: model.Edition,\r\n TotalTasks: model.TotalTasks,\r\n ActiveTasks: model.ActiveTasks,\r\n CompletedTasks: model.CompletedTasks,\r\n DateNextDue: model.DateNextDue,\r\n CompletedOrStoppedOn: model.CompletedOrStoppedOn,\r\n CompletedOrStoppedBy: model.CompletedOrStoppedBy,\r\n IsCopy: model.IsCopy,\r\n CreatedOn: model.CreatedOn,\r\n CreatedAsStandby: model.CreatedAsStandby,\r\n StoppingDependencies: model.StoppingDependencies,\r\n StoppedDependencies: model.StoppedDependencies,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n LastCompletedTask: model.LastCompletedTask,\r\n VersionName: model.VersionName,\r\n WorkflowVersionKey: model.WorkflowVersionKey,\r\n StopReason: model.StopReason,\r\n OriginalEdition: model.OriginalEdition,\r\n IsRunningFor: ModelUtils.serializeShallowEdge(model.IsRunningFor(), 'IsRunningFor'),\r\n Manages: ModelUtils.serializeShallowEdge(model.Manages(), 'Manages'),\r\n IsStandbyFor: ModelUtils.serializeShallowEdge(model.IsStandbyFor(), 'IsStandbyFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Collects: ModelUtils.serializeShallowEdge(model.Collects(), 'Collects'),\r\n Evaluates: ModelUtils.serializeShallowEdge(model.Evaluates(), 'Evaluates'),\r\n Requires: ModelUtils.serializeShallowEdge(model.Requires(), 'Requires'),\r\n Stores: ModelUtils.serializeShallowEdge(model.Stores(), 'Stores'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Workflow {\r\n let clone = new Workflow();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsRunningFor = _.cloneDeep(this._IsRunningFor);\r\n clone._Manages = _.cloneDeep(this._Manages);\r\n clone._IsStandbyFor = _.cloneDeep(this._IsStandbyFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Collects = _.cloneDeep(this._Collects);\r\n clone._Evaluates = _.cloneDeep(this._Evaluates);\r\n clone._Requires = _.cloneDeep(this._Requires);\r\n clone._Stores = _.cloneDeep(this._Stores);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WorkflowCollectsApplication extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowCollectsApplication\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __IsCollectedFor: Workflow;\r\n\r\n IsCollectedFor(context?: BaseDataContext): Workflow {\r\n if (this.__IsCollectedFor)\r\n return this.__IsCollectedFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsCollectedFor) as Workflow;\r\n }\r\n setIsCollectedFor(value: Workflow) {\r\n this.__IsCollectedFor = value;\r\n }\r\n get _IsCollectedFor(): string {\r\n return this.Out;\r\n }\r\n set _IsCollectedFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Application\r\n private __Collects: Application;\r\n\r\n Collects(context?: BaseDataContext): Application {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Collects) as Application;\r\n }\r\n setCollects(value: Application) {\r\n this.__Collects = value;\r\n }\r\n get _Collects(): string {\r\n return this.In;\r\n }\r\n set _Collects(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowCollectsApplication {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowCollectsApplication {\r\n let clone = new WorkflowCollectsApplication();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class WorkflowEvaluatesRule extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowEvaluatesRule\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __IsEvaluatedFor: Workflow;\r\n\r\n IsEvaluatedFor(context?: BaseDataContext): Workflow {\r\n if (this.__IsEvaluatedFor)\r\n return this.__IsEvaluatedFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEvaluatedFor) as Workflow;\r\n }\r\n setIsEvaluatedFor(value: Workflow) {\r\n this.__IsEvaluatedFor = value;\r\n }\r\n get _IsEvaluatedFor(): string {\r\n return this.Out;\r\n }\r\n set _IsEvaluatedFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Rule\r\n private __Evaluates: Rule;\r\n\r\n Evaluates(context?: BaseDataContext): Rule {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Evaluates) as Rule;\r\n }\r\n setEvaluates(value: Rule) {\r\n this.__Evaluates = value;\r\n }\r\n get _Evaluates(): string {\r\n return this.In;\r\n }\r\n set _Evaluates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowEvaluatesRule {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowEvaluatesRule {\r\n let clone = new WorkflowEvaluatesRule();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class WorkflowRequiresPhase extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowRequiresPhase\";\r\n }\r\n\r\n // Properties\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Sequence(): number {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: number) {\r\n this.data.Sequence = value;\r\n }\r\n get TotalTasks(): number {\r\n return this.data.TotalTasks;\r\n }\r\n set TotalTasks(value: number) {\r\n this.data.TotalTasks = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __IsRequiredFor: Workflow;\r\n\r\n IsRequiredFor(context?: BaseDataContext): Workflow {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRequiredFor) as Workflow;\r\n }\r\n setIsRequiredFor(value: Workflow) {\r\n this.__IsRequiredFor = value;\r\n }\r\n get _IsRequiredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsRequiredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Phase\r\n private __Requires: Phase;\r\n\r\n Requires(context?: BaseDataContext): Phase {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Requires) as Phase;\r\n }\r\n setRequires(value: Phase) {\r\n this.__Requires = value;\r\n }\r\n get _Requires(): string {\r\n return this.In;\r\n }\r\n set _Requires(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowRequiresPhase {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowRequiresPhase {\r\n let clone = new WorkflowRequiresPhase();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWorkflowSet {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n Name: string,\r\n readonly DataStoreId?: string,\r\n readonly ProgramId: string,\r\n readonly Status: string,\r\n readonly RiskScore?: number,\r\n readonly CurrentRiskThreshold?: any,\r\n readonly SelectingWorkflowVersion?: string,\r\n readonly PreparingWorkflowForCopy?: string,\r\n\r\n IsPerformedFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class WorkflowSet extends VertexModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowSet\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof WorkflowSet }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n get ProgramId(): string {\r\n return this.data.ProgramId;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get RiskScore(): number {\r\n return this.data.RiskScore;\r\n }\r\n get CurrentRiskThreshold(): any {\r\n return this.data.CurrentRiskThreshold;\r\n }\r\n get SelectingWorkflowVersion(): string {\r\n return this.data.SelectingWorkflowVersion;\r\n }\r\n get PreparingWorkflowForCopy(): string {\r\n return this.data.PreparingWorkflowForCopy;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPerformedFor, returns Account AccountPerformsWorkflowSet[]\r\n private __IsPerformedFor: AccountPerformsWorkflowSet[];\r\n IsPerformedFor(_context?: BaseDataContext): AccountPerformsWorkflowSet[] {\r\n if (this.__IsPerformedFor)\r\n return this.__IsPerformedFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPerformedFor), (id) => context.get(id) as AccountPerformsWorkflowSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPerformedFor(values: AccountPerformsWorkflowSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPerformedFor = values;\r\n }\r\n get _IsPerformedFor(): Set {\r\n if (!this._relationships.has(\"IsPerformedFor\"))\r\n this._relationships.set(\"IsPerformedFor\", new Set());\r\n\r\n return this._relationships.get(\"IsPerformedFor\");\r\n }\r\n set _IsPerformedFor(values: Set) {\r\n this._relationships.set(\"IsPerformedFor\", values);\r\n }\r\n\r\n // Relationship Contains, returns Workflow WorkflowSetContainsWorkflow[]\r\n private __Contains: WorkflowSetContainsWorkflow[];\r\n Contains(_context?: BaseDataContext): WorkflowSetContainsWorkflow[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as WorkflowSetContainsWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: WorkflowSetContainsWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPerformedFor',\r\n edgeType: AccountPerformsWorkflowSet,\r\n otherVertexPropertyName: 'Performs',\r\n otherVertexType: Account,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: WorkflowSetContainsWorkflow,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): WorkflowSet {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: WorkflowSet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n DataStoreId: model.DataStoreId,\r\n ProgramId: model.ProgramId,\r\n Status: model.Status,\r\n RiskScore: model.RiskScore,\r\n CurrentRiskThreshold: model.CurrentRiskThreshold,\r\n SelectingWorkflowVersion: model.SelectingWorkflowVersion,\r\n PreparingWorkflowForCopy: model.PreparingWorkflowForCopy,\r\n IsPerformedFor: ModelUtils.serializeShallowEdge(model.IsPerformedFor(), 'IsPerformedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WorkflowSet {\r\n let clone = new WorkflowSet();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPerformedFor = _.cloneDeep(this._IsPerformedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WorkflowSetContainsWorkflow extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowSetContainsWorkflow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to WorkflowSet\r\n private __IsContainedBy: WorkflowSet;\r\n\r\n IsContainedBy(context?: BaseDataContext): WorkflowSet {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as WorkflowSet;\r\n }\r\n setIsContainedBy(value: WorkflowSet) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workflow\r\n private __Contains: Workflow;\r\n\r\n Contains(context?: BaseDataContext): Workflow {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Workflow;\r\n }\r\n setContains(value: Workflow) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowSetContainsWorkflow {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowSetContainsWorkflow {\r\n let clone = new WorkflowSetContainsWorkflow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class WorkflowStoresDataStore extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowStoresDataStore\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __IsStoredFor: Workflow;\r\n\r\n IsStoredFor(context?: BaseDataContext): Workflow {\r\n if (this.__IsStoredFor)\r\n return this.__IsStoredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsStoredFor) as Workflow;\r\n }\r\n setIsStoredFor(value: Workflow) {\r\n this.__IsStoredFor = value;\r\n }\r\n get _IsStoredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsStoredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStore\r\n private __Stores: DataStore;\r\n\r\n Stores(context?: BaseDataContext): DataStore {\r\n if (this.__Stores)\r\n return this.__Stores;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Stores) as DataStore;\r\n }\r\n setStores(value: DataStore) {\r\n this.__Stores = value;\r\n }\r\n get _Stores(): string {\r\n return this.In;\r\n }\r\n set _Stores(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowStoresDataStore {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowStoresDataStore {\r\n let clone = new WorkflowStoresDataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class WorkGroupQueuesReservationSet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkGroupQueuesReservationSet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to WorkGroup\r\n private __IsQueuedBy: WorkGroup;\r\n\r\n IsQueuedBy(context?: BaseDataContext): WorkGroup {\r\n if (this.__IsQueuedBy)\r\n return this.__IsQueuedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsQueuedBy) as WorkGroup;\r\n }\r\n setIsQueuedBy(value: WorkGroup) {\r\n this.__IsQueuedBy = value;\r\n }\r\n get _IsQueuedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsQueuedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ReservationSet\r\n private __Queues: ReservationSet;\r\n\r\n Queues(context?: BaseDataContext): ReservationSet {\r\n if (this.__Queues)\r\n return this.__Queues;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Queues) as ReservationSet;\r\n }\r\n setQueues(value: ReservationSet) {\r\n this.__Queues = value;\r\n }\r\n get _Queues(): string {\r\n return this.In;\r\n }\r\n set _Queues(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkGroupQueuesReservationSet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkGroupQueuesReservationSet {\r\n let clone = new WorkGroupQueuesReservationSet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AccountActivity extends Activity {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountActivity\";\r\n }\r\n\r\n // Properties\r\n get AccountId(): string {\r\n return this.data.AccountId;\r\n }\r\n set AccountId(value: string) {\r\n this.data.AccountId = value;\r\n }\r\n get AffectedUsers(): string[] {\r\n return this.data.AffectedUsers;\r\n }\r\n set AffectedUsers(value: string[]) {\r\n this.data.AffectedUsers = value;\r\n }\r\n get AlsoAppliesToIds(): string[] {\r\n return this.data.AlsoAppliesToIds;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): AccountActivity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: AccountActivity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Action: model.Action,\r\n EntityType: model.EntityType,\r\n EntityId: model.EntityId,\r\n EntityCorrelationKey: model.EntityCorrelationKey,\r\n IdentityKey: model.IdentityKey,\r\n DeletedBy: model.DeletedBy,\r\n ActivityTime: model.ActivityTime,\r\n Message: model.Message,\r\n Tags: model.Tags,\r\n AccountId: model.AccountId,\r\n AffectedUsers: model.AffectedUsers,\r\n AlsoAppliesToIds: model.AlsoAppliesToIds,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AccountActivity {\r\n let clone = new AccountActivity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataPoint {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPoint extends Mappable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPoint\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPoint }[] = [\r\n {className: 'DataPointDate', type: DataPointDate},\r\n {className: 'DataPointDecimal', type: DataPointDecimal},\r\n {className: 'DataPointEmail', type: DataPointEmail},\r\n {className: 'DataPointString', type: DataPointString},\r\n {className: 'DataPointInteger', type: DataPointInteger},\r\n {className: 'DataPointListOfStrings', type: DataPointListOfStrings},\r\n {className: 'DataPointMoney', type: DataPointMoney},\r\n {className: 'DataPointPhone', type: DataPointPhone},\r\n {className: 'DataPointTimestamp', type: DataPointTimestamp},\r\n {className: 'DataPointUrl', type: DataPointUrl},\r\n {className: 'DataPointYear', type: DataPointYear},\r\n {className: 'DataPointYesNo', type: DataPointYesNo},\r\n {className: 'DataPointZipcode', type: DataPointZipcode},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get Optional(): boolean {\r\n return this.data.Optional;\r\n }\r\n get RegExPattern(): string {\r\n return this.data.RegExPattern;\r\n }\r\n get ValidationType(): string {\r\n return this.data.ValidationType;\r\n }\r\n set ValidationType(value: string) {\r\n this.data.ValidationType = value;\r\n }\r\n get Options(): string[] {\r\n return this.data.Options;\r\n }\r\n set Options(value: string[]) {\r\n this.data.Options = value;\r\n }\r\n get ValidationScript(): string {\r\n return this.data.ValidationScript;\r\n }\r\n set ValidationScript(value: string) {\r\n this.data.ValidationScript = value;\r\n }\r\n get Tag(): string {\r\n return this.data.Tag;\r\n }\r\n set Tag(value: string) {\r\n this.data.Tag = value;\r\n }\r\n get ReferenceObject(): string {\r\n return this.data.ReferenceObject;\r\n }\r\n set ReferenceObject(value: string) {\r\n this.data.ReferenceObject = value;\r\n }\r\n get ReferenceProperty(): string {\r\n return this.data.ReferenceProperty;\r\n }\r\n set ReferenceProperty(value: string) {\r\n this.data.ReferenceProperty = value;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n get ParentId(): string {\r\n return this.data.ParentId;\r\n }\r\n get RepeatableAncestors(): string[] {\r\n return this.data.RepeatableAncestors;\r\n }\r\n get RepeatablePath(): any[] {\r\n return this.data.RepeatablePath;\r\n }\r\n get RepeatablePathWasCalculated(): boolean {\r\n return this.data.RepeatablePathWasCalculated;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEvaluatedForCondition, returns ElementCondition ElementConditionEvaluatesDataPoint[]\r\n private __IsEvaluatedForCondition: ElementConditionEvaluatesDataPoint[];\r\n IsEvaluatedForCondition(_context?: BaseDataContext): ElementConditionEvaluatesDataPoint[] {\r\n if (this.__IsEvaluatedForCondition)\r\n return this.__IsEvaluatedForCondition;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEvaluatedForCondition), (id) => context.get(id) as ElementConditionEvaluatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEvaluatedForCondition(values: ElementConditionEvaluatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEvaluatedForCondition = values;\r\n }\r\n get _IsEvaluatedForCondition(): Set {\r\n if (!this._relationships.has(\"IsEvaluatedForCondition\"))\r\n this._relationships.set(\"IsEvaluatedForCondition\", new Set());\r\n\r\n return this._relationships.get(\"IsEvaluatedForCondition\");\r\n }\r\n set _IsEvaluatedForCondition(values: Set) {\r\n this._relationships.set(\"IsEvaluatedForCondition\", values);\r\n }\r\n\r\n // Relationship IsPopulatedBy, returns Field FieldPopulatesDataPoint[]\r\n private __IsPopulatedBy: FieldPopulatesDataPoint[];\r\n IsPopulatedBy(_context?: BaseDataContext): FieldPopulatesDataPoint[] {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPopulatedBy), (id) => context.get(id) as FieldPopulatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPopulatedBy(values: FieldPopulatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPopulatedBy = values;\r\n }\r\n get _IsPopulatedBy(): Set {\r\n if (!this._relationships.has(\"IsPopulatedBy\"))\r\n this._relationships.set(\"IsPopulatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPopulatedBy\");\r\n }\r\n set _IsPopulatedBy(values: Set) {\r\n this._relationships.set(\"IsPopulatedBy\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns DataGroup DataGroupContainsDataPoint[]\r\n private __IsContainedBy: DataGroupContainsDataPoint[];\r\n IsContainedBy(_context?: BaseDataContext): DataGroupContainsDataPoint[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as DataGroupContainsDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: DataGroupContainsDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship ParameterSubstitutedBy, returns Correspondence CorrespondenceParameterSubstitutesDataPoint[]\r\n private __ParameterSubstitutedBy: CorrespondenceParameterSubstitutesDataPoint[];\r\n ParameterSubstitutedBy(_context?: BaseDataContext): CorrespondenceParameterSubstitutesDataPoint[] {\r\n if (this.__ParameterSubstitutedBy)\r\n return this.__ParameterSubstitutedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ParameterSubstitutedBy), (id) => context.get(id) as CorrespondenceParameterSubstitutesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setParameterSubstitutedBy(values: CorrespondenceParameterSubstitutesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ParameterSubstitutedBy = values;\r\n }\r\n get _ParameterSubstitutedBy(): Set {\r\n if (!this._relationships.has(\"ParameterSubstitutedBy\"))\r\n this._relationships.set(\"ParameterSubstitutedBy\", new Set());\r\n\r\n return this._relationships.get(\"ParameterSubstitutedBy\");\r\n }\r\n set _ParameterSubstitutedBy(values: Set) {\r\n this._relationships.set(\"ParameterSubstitutedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPoint {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPoint) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPoint {\r\n let clone = new DataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class Field extends Element {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Field\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Field }[] = [\r\n {className: 'DateField', type: DateField},\r\n {className: 'DecimalField', type: DecimalField},\r\n {className: 'EmailField', type: EmailField},\r\n {className: 'StringField', type: StringField},\r\n {className: 'IntegerField', type: IntegerField},\r\n {className: 'ListOfStringsField', type: ListOfStringsField},\r\n {className: 'MoneyField', type: MoneyField},\r\n {className: 'PhoneField', type: PhoneField},\r\n {className: 'TimestampField', type: TimestampField},\r\n {className: 'UrlField', type: UrlField},\r\n {className: 'YearField', type: YearField},\r\n {className: 'YesNoField', type: YesNoField},\r\n {className: 'ZipcodeField', type: ZipcodeField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Content(): any {\r\n return this.data.Content;\r\n }\r\n set Content(value: any) {\r\n this.data.Content = value;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get ContentType(): string {\r\n return this.data.ContentType;\r\n }\r\n get Optional(): boolean {\r\n return this.data.Optional;\r\n }\r\n get DefaultContent(): any {\r\n return this.data.DefaultContent;\r\n }\r\n get Access(): string {\r\n return this.data.Access;\r\n }\r\n get ValidationErrors(): string[] {\r\n return this.data.ValidationErrors;\r\n }\r\n get DataChanged(): boolean {\r\n return this.data.DataChanged;\r\n }\r\n get PreviousContent(): any {\r\n return this.data.PreviousContent;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Populates, returns DataPoint FieldPopulatesDataPoint[]\r\n private __Populates: FieldPopulatesDataPoint[];\r\n Populates(_context?: BaseDataContext): FieldPopulatesDataPoint[] {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Populates), (id) => context.get(id) as FieldPopulatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPopulates(values: FieldPopulatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Populates = values;\r\n }\r\n get _Populates(): Set {\r\n if (!this._relationships.has(\"Populates\"))\r\n this._relationships.set(\"Populates\", new Set());\r\n\r\n return this._relationships.get(\"Populates\");\r\n }\r\n set _Populates(values: Set) {\r\n this._relationships.set(\"Populates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Field {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Field) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Field {\r\n let clone = new Field();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IPhase {\r\n readonly OrderNum: number,\r\n readonly CopiedFromId?: string,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n readonly Name: string,\r\n readonly CompleteName: string,\r\n readonly Description: string,\r\n AutoComplete: boolean,\r\n\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n IsRequiredFor?: object[],\r\n Requires?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class Phase extends Workable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Phase\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Phase }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get OrderNum(): number {\r\n return this.data.OrderNum;\r\n }\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get CompleteName(): string {\r\n return this.data.CompleteName;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get AutoComplete(): boolean {\r\n return this.data.AutoComplete;\r\n }\r\n set AutoComplete(value: boolean) {\r\n this.data.AutoComplete = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRequiredFor, returns Workflow WorkflowRequiresPhase[]\r\n private __IsRequiredFor: WorkflowRequiresPhase[];\r\n IsRequiredFor(_context?: BaseDataContext): WorkflowRequiresPhase[] {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRequiredFor), (id) => context.get(id) as WorkflowRequiresPhase);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRequiredFor(values: WorkflowRequiresPhase[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRequiredFor = values;\r\n }\r\n get _IsRequiredFor(): Set {\r\n if (!this._relationships.has(\"IsRequiredFor\"))\r\n this._relationships.set(\"IsRequiredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsRequiredFor\");\r\n }\r\n set _IsRequiredFor(values: Set) {\r\n this._relationships.set(\"IsRequiredFor\", values);\r\n }\r\n\r\n // Relationship Requires, returns Task PhaseRequiresTask[]\r\n private __Requires: PhaseRequiresTask[];\r\n Requires(_context?: BaseDataContext): PhaseRequiresTask[] {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Requires), (id) => context.get(id) as PhaseRequiresTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRequires(values: PhaseRequiresTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Requires = values;\r\n }\r\n get _Requires(): Set {\r\n if (!this._relationships.has(\"Requires\"))\r\n this._relationships.set(\"Requires\", new Set());\r\n\r\n return this._relationships.get(\"Requires\");\r\n }\r\n set _Requires(values: Set) {\r\n this._relationships.set(\"Requires\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: WorkflowRequiresPhase,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Requires',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'IsRequiredFor',\r\n otherVertexType: Task,\r\n },\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Phase {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Phase) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n OrderNum: model.OrderNum,\r\n CopiedFromId: model.CopiedFromId,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n CompleteName: model.CompleteName,\r\n Description: model.Description,\r\n AutoComplete: model.AutoComplete,\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n Requires: ModelUtils.serializeShallowEdge(model.Requires(), 'Requires'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Phase {\r\n let clone = new Phase();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._Requires = _.cloneDeep(this._Requires);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRule {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class Rule extends Mappable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Rule\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Rule }[] = [\r\n {className: 'RuleDateTime', type: RuleDateTime},\r\n {className: 'RuleProductSelection', type: RuleProductSelection},\r\n {className: 'RuleRiskAssessment', type: RuleRiskAssessment},\r\n {className: 'RuleRoleAssignment', type: RuleRoleAssignment},\r\n {className: 'RuleTaskObligation', type: RuleTaskObligation},\r\n {className: 'RuleWorkflowSetStatus', type: RuleWorkflowSetStatus},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n get DecisionFunction(): string {\r\n return this.data.DecisionFunction;\r\n }\r\n get DecisionMatrixJson(): string {\r\n return this.data.DecisionMatrixJson;\r\n }\r\n get Decision(): string {\r\n return this.data.Decision;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsContainedBy, returns RuleSet RuleSetContainsRule[]\r\n private __IsContainedBy: RuleSetContainsRule[];\r\n IsContainedBy(_context?: BaseDataContext): RuleSetContainsRule[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as RuleSetContainsRule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: RuleSetContainsRule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship IsEvaluatedFor, returns Workflow WorkflowEvaluatesRule[]\r\n private __IsEvaluatedFor: WorkflowEvaluatesRule[];\r\n IsEvaluatedFor(_context?: BaseDataContext): WorkflowEvaluatesRule[] {\r\n if (this.__IsEvaluatedFor)\r\n return this.__IsEvaluatedFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEvaluatedFor), (id) => context.get(id) as WorkflowEvaluatesRule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEvaluatedFor(values: WorkflowEvaluatesRule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEvaluatedFor = values;\r\n }\r\n get _IsEvaluatedFor(): Set {\r\n if (!this._relationships.has(\"IsEvaluatedFor\"))\r\n this._relationships.set(\"IsEvaluatedFor\", new Set());\r\n\r\n return this._relationships.get(\"IsEvaluatedFor\");\r\n }\r\n set _IsEvaluatedFor(values: Set) {\r\n this._relationships.set(\"IsEvaluatedFor\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Rule {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Rule) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Rule {\r\n let clone = new Rule();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetRiskAssessment {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n WorkflowSetId: string,\r\n readonly RiskScore?: number,\r\n\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetRiskAssessment extends RuleSet {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetRiskAssessment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetRiskAssessment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n set WorkflowSetId(value: string) {\r\n this.data.WorkflowSetId = value;\r\n }\r\n get RiskScore(): number {\r\n return this.data.RiskScore;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetRiskAssessment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetRiskAssessment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowSetId: model.WorkflowSetId,\r\n RiskScore: model.RiskScore,\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetRiskAssessment {\r\n let clone = new RuleSetRiskAssessment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IScriptCondition {\r\n readonly CopiedFromId?: string,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ScriptFunction: string,\r\n\r\n IsContainedBy?: object[],\r\n Enables?: object[],\r\n Evaluates?: object[]\r\n\r\n}\r\n\r\nexport class ScriptCondition extends ElementCondition {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ScriptCondition\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ScriptCondition }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ScriptFunction(): string {\r\n return this.data.ScriptFunction;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: ApplicationContainsElementCondition,\r\n otherVertexPropertyName: 'ContainsCondition',\r\n otherVertexType: Application,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Enables',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'IsEnabledBy',\r\n otherVertexType: Element,\r\n },\r\n {\r\n propertyName: 'Evaluates',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'IsEvaluatedForCondition',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ScriptCondition {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ScriptCondition) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n ConditionMet: model.ConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n Evaluates: ModelUtils.serializeShallowEdge(model.Evaluates(), 'Evaluates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ScriptCondition {\r\n let clone = new ScriptCondition();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n clone._Evaluates = _.cloneDeep(this._Evaluates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ISection {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Participation: boolean,\r\n readonly ParticipationStatus?: string,\r\n readonly Committed: boolean,\r\n readonly Repeatable: boolean,\r\n readonly LayoutHint: string,\r\n readonly DisplayProperties?: string[],\r\n MinSections?: number,\r\n MaxSections?: number,\r\n\r\n IsEnabledBy?: object[],\r\n IsCollectedBy?: object[],\r\n IsContainedBy?: object[],\r\n Contains?: object[],\r\n RepeatsWith?: object[]\r\n\r\n}\r\n\r\nexport class Section extends Element {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Section\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Section }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Participation(): boolean {\r\n return this.data.Participation;\r\n }\r\n set Participation(value: boolean) {\r\n this.data.Participation = value;\r\n }\r\n get ParticipationStatus(): string {\r\n return this.data.ParticipationStatus;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get Repeatable(): boolean {\r\n return this.data.Repeatable;\r\n }\r\n get LayoutHint(): string {\r\n return this.data.LayoutHint;\r\n }\r\n get DisplayProperties(): string[] {\r\n return this.data.DisplayProperties;\r\n }\r\n get MinSections(): number {\r\n return this.data.MinSections;\r\n }\r\n set MinSections(value: number) {\r\n this.data.MinSections = value;\r\n }\r\n get MaxSections(): number {\r\n return this.data.MaxSections;\r\n }\r\n set MaxSections(value: number) {\r\n this.data.MaxSections = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsCollectedBy, returns Application ApplicationCollectsSection[]\r\n private __IsCollectedBy: ApplicationCollectsSection[];\r\n IsCollectedBy(_context?: BaseDataContext): ApplicationCollectsSection[] {\r\n if (this.__IsCollectedBy)\r\n return this.__IsCollectedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsCollectedBy), (id) => context.get(id) as ApplicationCollectsSection);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsCollectedBy(values: ApplicationCollectsSection[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsCollectedBy = values;\r\n }\r\n get _IsCollectedBy(): Set {\r\n if (!this._relationships.has(\"IsCollectedBy\"))\r\n this._relationships.set(\"IsCollectedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsCollectedBy\");\r\n }\r\n set _IsCollectedBy(values: Set) {\r\n this._relationships.set(\"IsCollectedBy\", values);\r\n }\r\n\r\n // Relationship Contains, returns Element SectionContainsElement[]\r\n private __Contains: SectionContainsElement[];\r\n Contains(_context?: BaseDataContext): SectionContainsElement[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as SectionContainsElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: SectionContainsElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n // Relationship RepeatsWith, returns DataGroup SectionRepeatsWithDataGroup[]\r\n private __RepeatsWith: SectionRepeatsWithDataGroup[];\r\n RepeatsWith(_context?: BaseDataContext): SectionRepeatsWithDataGroup[] {\r\n if (this.__RepeatsWith)\r\n return this.__RepeatsWith;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._RepeatsWith), (id) => context.get(id) as SectionRepeatsWithDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRepeatsWith(values: SectionRepeatsWithDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__RepeatsWith = values;\r\n }\r\n get _RepeatsWith(): Set {\r\n if (!this._relationships.has(\"RepeatsWith\"))\r\n this._relationships.set(\"RepeatsWith\", new Set());\r\n\r\n return this._relationships.get(\"RepeatsWith\");\r\n }\r\n set _RepeatsWith(values: Set) {\r\n this._relationships.set(\"RepeatsWith\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsCollectedBy',\r\n edgeType: ApplicationCollectsSection,\r\n otherVertexPropertyName: 'Collects',\r\n otherVertexType: Application,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Element,\r\n },\r\n {\r\n propertyName: 'RepeatsWith',\r\n edgeType: SectionRepeatsWithDataGroup,\r\n otherVertexPropertyName: 'RepeatsWithSection',\r\n otherVertexType: DataGroup,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Section {\r\n return ModelUtils.deserializeVertex
(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Section) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Participation: model.Participation,\r\n ParticipationStatus: model.ParticipationStatus,\r\n Committed: model.Committed,\r\n Repeatable: model.Repeatable,\r\n LayoutHint: model.LayoutHint,\r\n DisplayProperties: model.DisplayProperties,\r\n MinSections: model.MinSections,\r\n MaxSections: model.MaxSections,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsCollectedBy: ModelUtils.serializeShallowEdge(model.IsCollectedBy(), 'IsCollectedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n RepeatsWith: ModelUtils.serializeShallowEdge(model.RepeatsWith(), 'RepeatsWith'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Section {\r\n let clone = new Section();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsCollectedBy = _.cloneDeep(this._IsCollectedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n clone._RepeatsWith = _.cloneDeep(this._RepeatsWith);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ISMIdentity {\r\n Id: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n readonly IdentityType: string,\r\n readonly Active: boolean,\r\n\r\n Assignee?: object[],\r\n IsMemberOf?: object[],\r\n Starts?: object[],\r\n Works?: object[],\r\n Favorites?: object[]\r\n\r\n}\r\n\r\nexport class SMIdentity extends Assignable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentity\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof SMIdentity }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get IdentityType(): string {\r\n return this.data.IdentityType;\r\n }\r\n get Active(): boolean {\r\n return this.data.Active;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsMemberOf, returns UserPool SMIdentityMemberOfUserPool[]\r\n private __IsMemberOf: SMIdentityMemberOfUserPool[];\r\n IsMemberOf(_context?: BaseDataContext): SMIdentityMemberOfUserPool[] {\r\n if (this.__IsMemberOf)\r\n return this.__IsMemberOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsMemberOf), (id) => context.get(id) as SMIdentityMemberOfUserPool);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsMemberOf(values: SMIdentityMemberOfUserPool[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsMemberOf = values;\r\n }\r\n get _IsMemberOf(): Set {\r\n if (!this._relationships.has(\"IsMemberOf\"))\r\n this._relationships.set(\"IsMemberOf\", new Set());\r\n\r\n return this._relationships.get(\"IsMemberOf\");\r\n }\r\n set _IsMemberOf(values: Set) {\r\n this._relationships.set(\"IsMemberOf\", values);\r\n }\r\n\r\n // Relationship Starts, returns ReservationSet SMIdentityStartsReservationSet[]\r\n private __Starts: SMIdentityStartsReservationSet[];\r\n Starts(_context?: BaseDataContext): SMIdentityStartsReservationSet[] {\r\n if (this.__Starts)\r\n return this.__Starts;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Starts), (id) => context.get(id) as SMIdentityStartsReservationSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setStarts(values: SMIdentityStartsReservationSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Starts = values;\r\n }\r\n get _Starts(): Set {\r\n if (!this._relationships.has(\"Starts\"))\r\n this._relationships.set(\"Starts\", new Set());\r\n\r\n return this._relationships.get(\"Starts\");\r\n }\r\n set _Starts(values: Set) {\r\n this._relationships.set(\"Starts\", values);\r\n }\r\n\r\n // Relationship Works, returns Account SMIdentityWorksAccount[]\r\n private __Works: SMIdentityWorksAccount[];\r\n Works(_context?: BaseDataContext): SMIdentityWorksAccount[] {\r\n if (this.__Works)\r\n return this.__Works;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Works), (id) => context.get(id) as SMIdentityWorksAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWorks(values: SMIdentityWorksAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Works = values;\r\n }\r\n get _Works(): Set {\r\n if (!this._relationships.has(\"Works\"))\r\n this._relationships.set(\"Works\", new Set());\r\n\r\n return this._relationships.get(\"Works\");\r\n }\r\n set _Works(values: Set) {\r\n this._relationships.set(\"Works\", values);\r\n }\r\n\r\n // Relationship Favorites, returns Account UserFavoritesAccount[]\r\n private __Favorites: UserFavoritesAccount[];\r\n Favorites(_context?: BaseDataContext): UserFavoritesAccount[] {\r\n if (this.__Favorites)\r\n return this.__Favorites;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Favorites), (id) => context.get(id) as UserFavoritesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setFavorites(values: UserFavoritesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Favorites = values;\r\n }\r\n get _Favorites(): Set {\r\n if (!this._relationships.has(\"Favorites\"))\r\n this._relationships.set(\"Favorites\", new Set());\r\n\r\n return this._relationships.get(\"Favorites\");\r\n }\r\n set _Favorites(values: Set) {\r\n this._relationships.set(\"Favorites\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Assignee',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'AssignedTo',\r\n otherVertexType: Task,\r\n },\r\n {\r\n propertyName: 'IsMemberOf',\r\n edgeType: SMIdentityMemberOfUserPool,\r\n otherVertexPropertyName: 'HasMembers',\r\n otherVertexType: UserPool,\r\n },\r\n {\r\n propertyName: 'Starts',\r\n edgeType: SMIdentityStartsReservationSet,\r\n otherVertexPropertyName: 'IsStartedBy',\r\n otherVertexType: ReservationSet,\r\n },\r\n {\r\n propertyName: 'Works',\r\n edgeType: SMIdentityWorksAccount,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: Account,\r\n },\r\n {\r\n propertyName: 'Favorites',\r\n edgeType: UserFavoritesAccount,\r\n otherVertexPropertyName: 'IsFavoriteOf',\r\n otherVertexType: Account,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): SMIdentity {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: SMIdentity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n IdentityType: model.IdentityType,\r\n Active: model.Active,\r\n Assignee: ModelUtils.serializeShallowEdge(model.Assignee(), 'Assignee'),\r\n IsMemberOf: ModelUtils.serializeShallowEdge(model.IsMemberOf(), 'IsMemberOf'),\r\n Starts: ModelUtils.serializeShallowEdge(model.Starts(), 'Starts'),\r\n Works: ModelUtils.serializeShallowEdge(model.Works(), 'Works'),\r\n Favorites: ModelUtils.serializeShallowEdge(model.Favorites(), 'Favorites'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SMIdentity {\r\n let clone = new SMIdentity();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Assignee = _.cloneDeep(this._Assignee);\r\n clone._IsMemberOf = _.cloneDeep(this._IsMemberOf);\r\n clone._Starts = _.cloneDeep(this._Starts);\r\n clone._Works = _.cloneDeep(this._Works);\r\n clone._Favorites = _.cloneDeep(this._Favorites);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IStaticElement {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class StaticElement extends Element {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"StaticElement\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof StaticElement }[] = [\r\n {className: 'StaticText', type: StaticText},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): StaticElement {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: StaticElement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): StaticElement {\r\n let clone = new StaticElement();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITask {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class Task extends Workable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Task\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Task }[] = [\r\n {className: 'TaskApplication', type: TaskApplication},\r\n {className: 'TaskApproval', type: TaskApproval},\r\n {className: 'TaskClearance', type: TaskClearance},\r\n {className: 'TaskCorrespondence', type: TaskCorrespondence},\r\n {className: 'TaskDocumentGeneration', type: TaskDocumentGeneration},\r\n {className: 'TaskFileRequirement', type: TaskFileRequirement},\r\n {className: 'TaskManual', type: TaskManual},\r\n {className: 'TaskPolicyDates', type: TaskPolicyDates},\r\n {className: 'TaskProducts', type: TaskProducts},\r\n {className: 'TaskRatingSystem', type: TaskRatingSystem},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ProvisionStatus(): string {\r\n return this.data.ProvisionStatus;\r\n }\r\n get ProvisionStatusChanged(): Date {\r\n return this.data.ProvisionStatusChanged ? new Date(this.data.ProvisionStatusChanged) : undefined;\r\n }\r\n get ProvisionErrorReasons(): string[] {\r\n return this.data.ProvisionErrorReasons;\r\n }\r\n get ProvisionWaitingReasons(): string[] {\r\n return this.data.ProvisionWaitingReasons;\r\n }\r\n get CopiedFromId(): string {\r\n return this.data.CopiedFromId;\r\n }\r\n get OrderNum(): number {\r\n return this.data.OrderNum;\r\n }\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get HowTo(): string {\r\n return this.data.HowTo;\r\n }\r\n set HowTo(value: string) {\r\n this.data.HowTo = value;\r\n }\r\n get DateLockedOrCompleted(): Date {\r\n return this.data.DateLockedOrCompleted ? new Date(this.data.DateLockedOrCompleted) : undefined;\r\n }\r\n get LockedOrCompletedByName(): string {\r\n return this.data.LockedOrCompletedByName;\r\n }\r\n get LockedOrCompletedById(): string {\r\n return this.data.LockedOrCompletedById;\r\n }\r\n get RuleId(): string {\r\n return this.data.RuleId;\r\n }\r\n get RuleDescription(): string {\r\n return this.data.RuleDescription;\r\n }\r\n get InitiallyAssignedTo(): string {\r\n return this.data.InitiallyAssignedTo;\r\n }\r\n get StartDate(): Date {\r\n return this.data.StartDate ? new Date(this.data.StartDate) : undefined;\r\n }\r\n set StartDate(value: Date) {\r\n this.data.StartDate = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n get ExecutionStatus(): string {\r\n return this.data.ExecutionStatus;\r\n }\r\n get ExecutionErrorReason(): string {\r\n return this.data.ExecutionErrorReason;\r\n }\r\n get LastExecutedDate(): Date {\r\n return this.data.LastExecutedDate ? new Date(this.data.LastExecutedDate) : undefined;\r\n }\r\n get LastAvailableDate(): Date {\r\n return this.data.LastAvailableDate ? new Date(this.data.LastAvailableDate) : undefined;\r\n }\r\n get WorkflowId(): string {\r\n return this.data.WorkflowId;\r\n }\r\n get CreatedBy(): string {\r\n return this.data.CreatedBy;\r\n }\r\n get DeadlineTriggerDefinitionId(): string {\r\n return this.data.DeadlineTriggerDefinitionId;\r\n }\r\n get Deadline(): Date {\r\n return this.data.Deadline ? new Date(this.data.Deadline) : undefined;\r\n }\r\n get DeadlineTriggeredOn(): Date {\r\n return this.data.DeadlineTriggeredOn ? new Date(this.data.DeadlineTriggeredOn) : undefined;\r\n }\r\n get SLATriggeredOn(): Date {\r\n return this.data.SLATriggeredOn ? new Date(this.data.SLATriggeredOn) : undefined;\r\n }\r\n set SLATriggeredOn(value: Date) {\r\n this.data.SLATriggeredOn = value;\r\n }\r\n get SLATriggeredByWorkableId(): string {\r\n return this.data.SLATriggeredByWorkableId;\r\n }\r\n set SLATriggeredByWorkableId(value: string) {\r\n this.data.SLATriggeredByWorkableId = value;\r\n }\r\n get SLADueOn(): Date {\r\n return this.data.SLADueOn ? new Date(this.data.SLADueOn) : undefined;\r\n }\r\n set SLADueOn(value: Date) {\r\n this.data.SLADueOn = value;\r\n }\r\n get SLAVersionId(): string {\r\n return this.data.SLAVersionId;\r\n }\r\n set SLAVersionId(value: string) {\r\n this.data.SLAVersionId = value;\r\n }\r\n get SLAId(): string {\r\n return this.data.SLAId;\r\n }\r\n set SLAId(value: string) {\r\n this.data.SLAId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsSatisfiedBy, returns Document DocumentSatisfiesTask[]\r\n private __IsSatisfiedBy: DocumentSatisfiesTask[];\r\n IsSatisfiedBy(_context?: BaseDataContext): DocumentSatisfiesTask[] {\r\n if (this.__IsSatisfiedBy)\r\n return this.__IsSatisfiedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSatisfiedBy), (id) => context.get(id) as DocumentSatisfiesTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSatisfiedBy(values: DocumentSatisfiesTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSatisfiedBy = values;\r\n }\r\n get _IsSatisfiedBy(): Set {\r\n if (!this._relationships.has(\"IsSatisfiedBy\"))\r\n this._relationships.set(\"IsSatisfiedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSatisfiedBy\");\r\n }\r\n set _IsSatisfiedBy(values: Set) {\r\n this._relationships.set(\"IsSatisfiedBy\", values);\r\n }\r\n\r\n // Relationship AssignedTo, returns Assignable AssignableAssignedTask[]\r\n private __AssignedTo: AssignableAssignedTask[];\r\n AssignedTo(_context?: BaseDataContext): AssignableAssignedTask[] {\r\n if (this.__AssignedTo)\r\n return this.__AssignedTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._AssignedTo), (id) => context.get(id) as AssignableAssignedTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAssignedTo(values: AssignableAssignedTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__AssignedTo = values;\r\n }\r\n get _AssignedTo(): Set {\r\n if (!this._relationships.has(\"AssignedTo\"))\r\n this._relationships.set(\"AssignedTo\", new Set());\r\n\r\n return this._relationships.get(\"AssignedTo\");\r\n }\r\n set _AssignedTo(values: Set) {\r\n this._relationships.set(\"AssignedTo\", values);\r\n }\r\n\r\n // Relationship IsRequiredFor, returns Phase PhaseRequiresTask[]\r\n private __IsRequiredFor: PhaseRequiresTask[];\r\n IsRequiredFor(_context?: BaseDataContext): PhaseRequiresTask[] {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRequiredFor), (id) => context.get(id) as PhaseRequiresTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRequiredFor(values: PhaseRequiresTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRequiredFor = values;\r\n }\r\n get _IsRequiredFor(): Set {\r\n if (!this._relationships.has(\"IsRequiredFor\"))\r\n this._relationships.set(\"IsRequiredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsRequiredFor\");\r\n }\r\n set _IsRequiredFor(values: Set) {\r\n this._relationships.set(\"IsRequiredFor\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Task {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Task) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Task {\r\n let clone = new Task();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITransform {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n readonly DataType: string,\r\n Id: string,\r\n\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class Transform extends Mappable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"Transform\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Transform }[] = [\r\n {className: 'ScriptTransform', type: ScriptTransform},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n // Relationship IsContainedBy, returns Map MapContainsTransform[]\r\n private __IsContainedBy: MapContainsTransform[];\r\n IsContainedBy(_context?: BaseDataContext): MapContainsTransform[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as MapContainsTransform);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: MapContainsTransform[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: MapContainsTransform,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Map,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Transform {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Transform) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Transform {\r\n let clone = new Transform();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class UserActivity extends Activity {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UserActivity\";\r\n }\r\n\r\n // Properties\r\n\r\n\r\n deserialize(input: Object, datacontext): UserActivity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: UserActivity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Action: model.Action,\r\n EntityType: model.EntityType,\r\n EntityId: model.EntityId,\r\n EntityCorrelationKey: model.EntityCorrelationKey,\r\n IdentityKey: model.IdentityKey,\r\n DeletedBy: model.DeletedBy,\r\n ActivityTime: model.ActivityTime,\r\n Message: model.Message,\r\n Tags: model.Tags,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UserActivity {\r\n let clone = new UserActivity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IUserPool {\r\n Id: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n DisplayName: string,\r\n Initials: string,\r\n NoOfUsers: number,\r\n NoOfActiveUsers: number,\r\n\r\n HasMembers?: object[],\r\n Assignee?: object[]\r\n\r\n}\r\n\r\nexport class UserPool extends Assignable {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UserPool\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof UserPool }[] = [\r\n {className: 'AccountRole', type: AccountRole},\r\n {className: 'WorkGroup', type: WorkGroup},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DisplayName(): string {\r\n return this.data.DisplayName;\r\n }\r\n set DisplayName(value: string) {\r\n this.data.DisplayName = value;\r\n }\r\n get Initials(): string {\r\n return this.data.Initials;\r\n }\r\n set Initials(value: string) {\r\n this.data.Initials = value;\r\n }\r\n get NoOfUsers(): number {\r\n return this.data.NoOfUsers;\r\n }\r\n set NoOfUsers(value: number) {\r\n this.data.NoOfUsers = value;\r\n }\r\n get NoOfActiveUsers(): number {\r\n return this.data.NoOfActiveUsers;\r\n }\r\n set NoOfActiveUsers(value: number) {\r\n this.data.NoOfActiveUsers = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship HasMembers, returns SMIdentity SMIdentityMemberOfUserPool[]\r\n private __HasMembers: SMIdentityMemberOfUserPool[];\r\n HasMembers(_context?: BaseDataContext): SMIdentityMemberOfUserPool[] {\r\n if (this.__HasMembers)\r\n return this.__HasMembers;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._HasMembers), (id) => context.get(id) as SMIdentityMemberOfUserPool);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setHasMembers(values: SMIdentityMemberOfUserPool[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__HasMembers = values;\r\n }\r\n get _HasMembers(): Set {\r\n if (!this._relationships.has(\"HasMembers\"))\r\n this._relationships.set(\"HasMembers\", new Set());\r\n\r\n return this._relationships.get(\"HasMembers\");\r\n }\r\n set _HasMembers(values: Set) {\r\n this._relationships.set(\"HasMembers\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'HasMembers',\r\n edgeType: SMIdentityMemberOfUserPool,\r\n otherVertexPropertyName: 'IsMemberOf',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Assignee',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'AssignedTo',\r\n otherVertexType: Task,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): UserPool {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: UserPool) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n DisplayName: model.DisplayName,\r\n Initials: model.Initials,\r\n NoOfUsers: model.NoOfUsers,\r\n NoOfActiveUsers: model.NoOfActiveUsers,\r\n HasMembers: ModelUtils.serializeShallowEdge(model.HasMembers(), 'HasMembers'),\r\n Assignee: ModelUtils.serializeShallowEdge(model.Assignee(), 'Assignee'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UserPool {\r\n let clone = new UserPool();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._HasMembers = _.cloneDeep(this._HasMembers);\r\n clone._Assignee = _.cloneDeep(this._Assignee);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IAccountRole {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n DisplayName: string,\r\n Initials: string,\r\n NoOfUsers: number,\r\n NoOfActiveUsers: number,\r\n\r\n DeliveredBy?: object[],\r\n HasMembers?: object[],\r\n Services?: object[],\r\n Assignee?: object[]\r\n\r\n}\r\n\r\nexport class AccountRole extends UserPool {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountRole\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof AccountRole }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship DeliveredBy, returns Correspondence CorrespondenceDeliversAccountRole[]\r\n private __DeliveredBy: CorrespondenceDeliversAccountRole[];\r\n DeliveredBy(_context?: BaseDataContext): CorrespondenceDeliversAccountRole[] {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliveredBy), (id) => context.get(id) as CorrespondenceDeliversAccountRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliveredBy(values: CorrespondenceDeliversAccountRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliveredBy = values;\r\n }\r\n get _DeliveredBy(): Set {\r\n if (!this._relationships.has(\"DeliveredBy\"))\r\n this._relationships.set(\"DeliveredBy\", new Set());\r\n\r\n return this._relationships.get(\"DeliveredBy\");\r\n }\r\n set _DeliveredBy(values: Set) {\r\n this._relationships.set(\"DeliveredBy\", values);\r\n }\r\n\r\n // Relationship Services, returns Account AccountRoleServicesAccount[]\r\n private __Services: AccountRoleServicesAccount[];\r\n Services(_context?: BaseDataContext): AccountRoleServicesAccount[] {\r\n if (this.__Services)\r\n return this.__Services;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Services), (id) => context.get(id) as AccountRoleServicesAccount);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setServices(values: AccountRoleServicesAccount[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Services = values;\r\n }\r\n get _Services(): Set {\r\n if (!this._relationships.has(\"Services\"))\r\n this._relationships.set(\"Services\", new Set());\r\n\r\n return this._relationships.get(\"Services\");\r\n }\r\n set _Services(values: Set) {\r\n this._relationships.set(\"Services\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'DeliveredBy',\r\n edgeType: CorrespondenceDeliversAccountRole,\r\n otherVertexPropertyName: 'DeliversAccount',\r\n otherVertexType: Correspondence,\r\n },\r\n {\r\n propertyName: 'HasMembers',\r\n edgeType: SMIdentityMemberOfUserPool,\r\n otherVertexPropertyName: 'IsMemberOf',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Services',\r\n edgeType: AccountRoleServicesAccount,\r\n otherVertexPropertyName: 'IsServicedBy',\r\n otherVertexType: Account,\r\n },\r\n {\r\n propertyName: 'Assignee',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'AssignedTo',\r\n otherVertexType: Task,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): AccountRole {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: AccountRole) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n DisplayName: model.DisplayName,\r\n Initials: model.Initials,\r\n NoOfUsers: model.NoOfUsers,\r\n NoOfActiveUsers: model.NoOfActiveUsers,\r\n DeliveredBy: ModelUtils.serializeShallowEdge(model.DeliveredBy(), 'DeliveredBy'),\r\n HasMembers: ModelUtils.serializeShallowEdge(model.HasMembers(), 'HasMembers'),\r\n Services: ModelUtils.serializeShallowEdge(model.Services(), 'Services'),\r\n Assignee: ModelUtils.serializeShallowEdge(model.Assignee(), 'Assignee'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AccountRole {\r\n let clone = new AccountRole();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._DeliveredBy = _.cloneDeep(this._DeliveredBy);\r\n clone._HasMembers = _.cloneDeep(this._HasMembers);\r\n clone._Services = _.cloneDeep(this._Services);\r\n clone._Assignee = _.cloneDeep(this._Assignee);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class AuditableAccountActivity extends AccountActivity {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AuditableAccountActivity\";\r\n }\r\n\r\n // Properties\r\n get CorrelationKey(): string {\r\n return this.data.CorrelationKey;\r\n }\r\n get Version(): number {\r\n return this.data.Version;\r\n }\r\n get ReplacedByVersion(): number {\r\n return this.data.ReplacedByVersion;\r\n }\r\n get UpdatedTime(): Date {\r\n return this.data.UpdatedTime ? new Date(this.data.UpdatedTime) : undefined;\r\n }\r\n get UpdatedByIdentity(): string {\r\n return this.data.UpdatedByIdentity;\r\n }\r\n get DeletedByIdentity(): string {\r\n return this.data.DeletedByIdentity;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): AuditableAccountActivity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: AuditableAccountActivity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CorrelationKey: model.CorrelationKey,\r\n Version: model.Version,\r\n ReplacedByVersion: model.ReplacedByVersion,\r\n UpdatedTime: model.UpdatedTime,\r\n UpdatedByIdentity: model.UpdatedByIdentity,\r\n DeletedByIdentity: model.DeletedByIdentity,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Action: model.Action,\r\n EntityType: model.EntityType,\r\n EntityId: model.EntityId,\r\n EntityCorrelationKey: model.EntityCorrelationKey,\r\n IdentityKey: model.IdentityKey,\r\n DeletedBy: model.DeletedBy,\r\n ActivityTime: model.ActivityTime,\r\n Message: model.Message,\r\n Tags: model.Tags,\r\n AccountId: model.AccountId,\r\n AffectedUsers: model.AffectedUsers,\r\n AlsoAppliesToIds: model.AlsoAppliesToIds,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AuditableAccountActivity {\r\n let clone = new AuditableAccountActivity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataPointDate {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinDate?: ContractDate,\r\n MaxDate?: ContractDate,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointDate extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointDate\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointDate }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinDate(): ContractDate {\r\n this.data.MinDate = ModelUtils.deserializeContractDate(this.data.MinDate);\r\n return this.data.MinDate;\r\n }\r\n set MinDate(value: ContractDate) {\r\n this.data.MinDate = value;\r\n }\r\n get MaxDate(): ContractDate {\r\n this.data.MaxDate = ModelUtils.deserializeContractDate(this.data.MaxDate);\r\n return this.data.MaxDate;\r\n }\r\n set MaxDate(value: ContractDate) {\r\n this.data.MaxDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointDate {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointDate) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinDate: ModelUtils.serializeContractDate(model.data.MinDate),\r\n MaxDate: ModelUtils.serializeContractDate(model.data.MaxDate),\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointDate {\r\n let clone = new DataPointDate();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointDecimal {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinValue?: number,\r\n MaxValue?: number,\r\n Places?: number,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointDecimal extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointDecimal\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointDecimal }[] = [\r\n {className: 'DataPointMoney', type: DataPointMoney},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinValue(): number {\r\n return this.data.MinValue;\r\n }\r\n set MinValue(value: number) {\r\n this.data.MinValue = value;\r\n }\r\n get MaxValue(): number {\r\n return this.data.MaxValue;\r\n }\r\n set MaxValue(value: number) {\r\n this.data.MaxValue = value;\r\n }\r\n get Places(): number {\r\n return this.data.Places;\r\n }\r\n set Places(value: number) {\r\n this.data.Places = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointDecimal {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointDecimal) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n Places: model.Places,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointDecimal {\r\n let clone = new DataPointDecimal();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointInteger {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinValue?: number,\r\n MaxValue?: number,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointInteger extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointInteger\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointInteger }[] = [\r\n {className: 'DataPointYear', type: DataPointYear},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinValue(): number {\r\n return this.data.MinValue;\r\n }\r\n set MinValue(value: number) {\r\n this.data.MinValue = value;\r\n }\r\n get MaxValue(): number {\r\n return this.data.MaxValue;\r\n }\r\n set MaxValue(value: number) {\r\n this.data.MaxValue = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointInteger {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointInteger) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointInteger {\r\n let clone = new DataPointInteger();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointListOfStrings {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n AllowSpaces?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointListOfStrings extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointListOfStrings\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointListOfStrings }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AllowSpaces(): boolean {\r\n return this.data.AllowSpaces;\r\n }\r\n set AllowSpaces(value: boolean) {\r\n this.data.AllowSpaces = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointListOfStrings {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointListOfStrings) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n AllowSpaces: model.AllowSpaces,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointListOfStrings {\r\n let clone = new DataPointListOfStrings();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointString {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointString extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointString\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointString }[] = [\r\n {className: 'DataPointEmail', type: DataPointEmail},\r\n {className: 'DataPointPhone', type: DataPointPhone},\r\n {className: 'DataPointYesNo', type: DataPointYesNo},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinLength(): number {\r\n return this.data.MinLength;\r\n }\r\n set MinLength(value: number) {\r\n this.data.MinLength = value;\r\n }\r\n get MaxLength(): number {\r\n return this.data.MaxLength;\r\n }\r\n set MaxLength(value: number) {\r\n this.data.MaxLength = value;\r\n }\r\n get MultiLineEntry(): boolean {\r\n return this.data.MultiLineEntry;\r\n }\r\n set MultiLineEntry(value: boolean) {\r\n this.data.MultiLineEntry = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointString {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointString) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointString {\r\n let clone = new DataPointString();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointTimestamp {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinDate?: Date,\r\n MaxDate?: Date,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointTimestamp extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointTimestamp\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointTimestamp }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinDate(): Date {\r\n return this.data.MinDate ? new Date(this.data.MinDate) : undefined;\r\n }\r\n set MinDate(value: Date) {\r\n this.data.MinDate = value;\r\n }\r\n get MaxDate(): Date {\r\n return this.data.MaxDate ? new Date(this.data.MaxDate) : undefined;\r\n }\r\n set MaxDate(value: Date) {\r\n this.data.MaxDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointTimestamp {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointTimestamp) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinDate: model.MinDate,\r\n MaxDate: model.MaxDate,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointTimestamp {\r\n let clone = new DataPointTimestamp();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointUrl {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointUrl extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointUrl\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointUrl }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointUrl {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointUrl) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointUrl {\r\n let clone = new DataPointUrl();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointZipcode {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointZipcode extends DataPoint {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointZipcode\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointZipcode }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointZipcode {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointZipcode) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointZipcode {\r\n let clone = new DataPointZipcode();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDateField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class DateField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DateField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DateField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DateField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DateField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DateField {\r\n let clone = new DateField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDecimalField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class DecimalField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DecimalField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DecimalField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DecimalField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DecimalField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DecimalField {\r\n let clone = new DecimalField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IIntegerField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class IntegerField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"IntegerField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof IntegerField }[] = [\r\n {className: 'YearField', type: YearField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): IntegerField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: IntegerField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): IntegerField {\r\n let clone = new IntegerField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IListOfStringsField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class ListOfStringsField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ListOfStringsField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ListOfStringsField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ListOfStringsField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ListOfStringsField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ListOfStringsField {\r\n let clone = new ListOfStringsField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IMoneyField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class MoneyField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"MoneyField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof MoneyField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): MoneyField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: MoneyField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): MoneyField {\r\n let clone = new MoneyField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleDateTime {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n readonly TaskDefinitionKeys?: string[],\r\n readonly DateTime?: Date,\r\n readonly WorkflowSetId: string,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class RuleDateTime extends Rule {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleDateTime\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleDateTime }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get TaskDefinitionKeys(): string[] {\r\n return this.data.TaskDefinitionKeys;\r\n }\r\n get DateTime(): Date {\r\n return this.data.DateTime ? new Date(this.data.DateTime) : undefined;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleDateTime {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleDateTime) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n TaskDefinitionKeys: model.TaskDefinitionKeys,\r\n DateTime: model.DateTime,\r\n WorkflowSetId: model.WorkflowSetId,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleDateTime {\r\n let clone = new RuleDateTime();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleProductSelection {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n readonly ProductId: string,\r\n readonly Eligibility?: string,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class RuleProductSelection extends Rule {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleProductSelection\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleProductSelection }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ProductId(): string {\r\n return this.data.ProductId;\r\n }\r\n get Eligibility(): string {\r\n return this.data.Eligibility;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleProductSelection {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleProductSelection) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n ProductId: model.ProductId,\r\n Eligibility: model.Eligibility,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleProductSelection {\r\n let clone = new RuleProductSelection();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleRiskAssessment {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n readonly RiskScore?: number,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class RuleRiskAssessment extends Rule {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleRiskAssessment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleRiskAssessment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get RiskScore(): number {\r\n return this.data.RiskScore;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleRiskAssessment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleRiskAssessment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n RiskScore: model.RiskScore,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleRiskAssessment {\r\n let clone = new RuleRiskAssessment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleRoleAssignment {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n readonly AccountRoleDefinitionKey?: string,\r\n readonly Assignee?: string,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class RuleRoleAssignment extends Rule {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleRoleAssignment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleRoleAssignment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AccountRoleDefinitionKey(): string {\r\n return this.data.AccountRoleDefinitionKey;\r\n }\r\n get Assignee(): string {\r\n return this.data.Assignee;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleRoleAssignment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleRoleAssignment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n AccountRoleDefinitionKey: model.AccountRoleDefinitionKey,\r\n Assignee: model.Assignee,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleRoleAssignment {\r\n let clone = new RuleRoleAssignment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleTaskObligation {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n readonly TaskDefinitionKeys?: string[],\r\n readonly Required?: boolean,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class RuleTaskObligation extends Rule {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleTaskObligation\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleTaskObligation }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get TaskDefinitionKeys(): string[] {\r\n return this.data.TaskDefinitionKeys;\r\n }\r\n get Required(): boolean {\r\n return this.data.Required;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleTaskObligation {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleTaskObligation) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n TaskDefinitionKeys: model.TaskDefinitionKeys,\r\n Required: model.Required,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleTaskObligation {\r\n let clone = new RuleTaskObligation();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleWorkflowSetStatus {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name?: string,\r\n readonly Description?: string,\r\n readonly DecisionFunction?: string,\r\n readonly DecisionMatrixJson?: string,\r\n readonly Decision?: string,\r\n\r\n IsMappingFor?: object[],\r\n IsContainedBy?: object[],\r\n IsEvaluatedFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class RuleWorkflowSetStatus extends Rule {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"RuleWorkflowSetStatus\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleWorkflowSetStatus }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsEvaluatedFor',\r\n edgeType: WorkflowEvaluatesRule,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleWorkflowSetStatus {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleWorkflowSetStatus) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n Decision: model.Decision,\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsEvaluatedFor: ModelUtils.serializeShallowEdge(model.IsEvaluatedFor(), 'IsEvaluatedFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleWorkflowSetStatus {\r\n let clone = new RuleWorkflowSetStatus();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsEvaluatedFor = _.cloneDeep(this._IsEvaluatedFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IScriptTransform {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n readonly DataType: string,\r\n Id: string,\r\n readonly ScriptFunction?: string,\r\n\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class ScriptTransform extends Transform {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ScriptTransform\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ScriptTransform }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ScriptFunction(): string {\r\n return this.data.ScriptFunction;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: MapContainsTransform,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Map,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ScriptTransform {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ScriptTransform) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n ScriptFunction: model.ScriptFunction,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ScriptTransform {\r\n let clone = new ScriptTransform();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IStaticText {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n StaticTextStyle: string\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class StaticText extends StaticElement {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"StaticText\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof StaticText }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get StaticTextStyle(): string {\r\n return this.data.StaticTextStyle;\r\n }\r\n set StaticTextStyle(value: string) {\r\n this.data.StaticTextStyle = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): StaticText {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: StaticText) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n StaticTextStyle: model.StaticTextStyle,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): StaticText {\r\n let clone = new StaticText();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IStringField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class StringField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"StringField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof StringField }[] = [\r\n {className: 'EmailField', type: EmailField},\r\n {className: 'PhoneField', type: PhoneField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): StringField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: StringField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): StringField {\r\n let clone = new StringField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskApplication {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly ApplicationId?: string,\r\n readonly ApplicationDefinitionId: string,\r\n readonly ApplicationComplete: boolean,\r\n readonly DataChanged: boolean,\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskApplication extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskApplication\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskApplication }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ApplicationId(): string {\r\n return this.data.ApplicationId;\r\n }\r\n get ApplicationDefinitionId(): string {\r\n return this.data.ApplicationDefinitionId;\r\n }\r\n get ApplicationComplete(): boolean {\r\n return this.data.ApplicationComplete;\r\n }\r\n get DataChanged(): boolean {\r\n return this.data.DataChanged;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskApplication {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskApplication) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n ApplicationId: model.ApplicationId,\r\n ApplicationDefinitionId: model.ApplicationDefinitionId,\r\n ApplicationComplete: model.ApplicationComplete,\r\n DataChanged: model.DataChanged,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskApplication {\r\n let clone = new TaskApplication();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskApproval {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n IsApproved?: boolean,\r\n RejectionType?: string,\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskApproval extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskApproval\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskApproval }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get IsApproved(): boolean {\r\n return this.data.IsApproved;\r\n }\r\n set IsApproved(value: boolean) {\r\n this.data.IsApproved = value;\r\n }\r\n get RejectionType(): string {\r\n return this.data.RejectionType;\r\n }\r\n set RejectionType(value: string) {\r\n this.data.RejectionType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskApproval {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskApproval) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n IsApproved: model.IsApproved,\r\n RejectionType: model.RejectionType,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskApproval {\r\n let clone = new TaskApproval();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskClearance {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly InsuredTag?: string,\r\n readonly ProducerTag?: string,\r\n readonly AgentTag?: string,\r\n readonly AgentAccountRoleDefinitionKey: string,\r\n readonly AgentAccountRoleId?: string,\r\n ClearanceResult?: string,\r\n AccountMatches?: string[],\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskClearance extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskClearance\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskClearance }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get InsuredTag(): string {\r\n return this.data.InsuredTag;\r\n }\r\n get ProducerTag(): string {\r\n return this.data.ProducerTag;\r\n }\r\n get AgentTag(): string {\r\n return this.data.AgentTag;\r\n }\r\n get AgentAccountRoleDefinitionKey(): string {\r\n return this.data.AgentAccountRoleDefinitionKey;\r\n }\r\n get AgentAccountRoleId(): string {\r\n return this.data.AgentAccountRoleId;\r\n }\r\n get ClearanceResult(): string {\r\n return this.data.ClearanceResult;\r\n }\r\n set ClearanceResult(value: string) {\r\n this.data.ClearanceResult = value;\r\n }\r\n get AccountMatches(): string[] {\r\n return this.data.AccountMatches;\r\n }\r\n set AccountMatches(value: string[]) {\r\n this.data.AccountMatches = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskClearance {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskClearance) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n InsuredTag: model.InsuredTag,\r\n ProducerTag: model.ProducerTag,\r\n AgentTag: model.AgentTag,\r\n AgentAccountRoleDefinitionKey: model.AgentAccountRoleDefinitionKey,\r\n AgentAccountRoleId: model.AgentAccountRoleId,\r\n ClearanceResult: model.ClearanceResult,\r\n AccountMatches: model.AccountMatches,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskClearance {\r\n let clone = new TaskClearance();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskCorrespondence {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n DefaultFrom?: string,\r\n CorrespondenceId?: string,\r\n\r\n RequestsDeliveryBy?: object[],\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskCorrespondence extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskCorrespondence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DefaultFrom(): string {\r\n return this.data.DefaultFrom;\r\n }\r\n set DefaultFrom(value: string) {\r\n this.data.DefaultFrom = value;\r\n }\r\n get CorrespondenceId(): string {\r\n return this.data.CorrespondenceId;\r\n }\r\n set CorrespondenceId(value: string) {\r\n this.data.CorrespondenceId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship RequestsDeliveryBy, returns Correspondence CorrespondenceDeliveredForCorrespondenceTask[]\r\n private __RequestsDeliveryBy: CorrespondenceDeliveredForCorrespondenceTask[];\r\n RequestsDeliveryBy(_context?: BaseDataContext): CorrespondenceDeliveredForCorrespondenceTask[] {\r\n if (this.__RequestsDeliveryBy)\r\n return this.__RequestsDeliveryBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._RequestsDeliveryBy), (id) => context.get(id) as CorrespondenceDeliveredForCorrespondenceTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRequestsDeliveryBy(values: CorrespondenceDeliveredForCorrespondenceTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__RequestsDeliveryBy = values;\r\n }\r\n get _RequestsDeliveryBy(): Set {\r\n if (!this._relationships.has(\"RequestsDeliveryBy\"))\r\n this._relationships.set(\"RequestsDeliveryBy\", new Set());\r\n\r\n return this._relationships.get(\"RequestsDeliveryBy\");\r\n }\r\n set _RequestsDeliveryBy(values: Set) {\r\n this._relationships.set(\"RequestsDeliveryBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'RequestsDeliveryBy',\r\n edgeType: CorrespondenceDeliveredForCorrespondenceTask,\r\n otherVertexPropertyName: 'DeliveredFor',\r\n otherVertexType: Correspondence,\r\n },\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskCorrespondence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskCorrespondence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n DefaultFrom: model.DefaultFrom,\r\n CorrespondenceId: model.CorrespondenceId,\r\n RequestsDeliveryBy: ModelUtils.serializeShallowEdge(model.RequestsDeliveryBy(), 'RequestsDeliveryBy'),\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskCorrespondence {\r\n let clone = new TaskCorrespondence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._RequestsDeliveryBy = _.cloneDeep(this._RequestsDeliveryBy);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskDocumentGeneration {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly DocumentId?: string,\r\n readonly StorageId?: string,\r\n DocumentCategory?: string,\r\n readonly ReplaceExisting: boolean,\r\n readonly DefaultDocumentDescription?: string,\r\n Tags?: string[],\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskDocumentGeneration extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskDocumentGeneration\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskDocumentGeneration }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DocumentId(): string {\r\n return this.data.DocumentId;\r\n }\r\n get StorageId(): string {\r\n return this.data.StorageId;\r\n }\r\n get DocumentCategory(): string {\r\n return this.data.DocumentCategory;\r\n }\r\n set DocumentCategory(value: string) {\r\n this.data.DocumentCategory = value;\r\n }\r\n get ReplaceExisting(): boolean {\r\n return this.data.ReplaceExisting;\r\n }\r\n get DefaultDocumentDescription(): string {\r\n return this.data.DefaultDocumentDescription;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskDocumentGeneration {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskDocumentGeneration) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n DocumentId: model.DocumentId,\r\n StorageId: model.StorageId,\r\n DocumentCategory: model.DocumentCategory,\r\n ReplaceExisting: model.ReplaceExisting,\r\n DefaultDocumentDescription: model.DefaultDocumentDescription,\r\n Tags: model.Tags,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskDocumentGeneration {\r\n let clone = new TaskDocumentGeneration();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskFileRequirement {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly RequiredCategoryId: string,\r\n readonly AcceptPreExistingDocument: boolean,\r\n readonly EnforceDocumentAge: boolean,\r\n readonly DocumentAgeValue?: number,\r\n readonly DocumentAgeUnit?: string,\r\n readonly DefaultTags?: string[],\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskFileRequirement extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskFileRequirement\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskFileRequirement }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get RequiredCategoryId(): string {\r\n return this.data.RequiredCategoryId;\r\n }\r\n get AcceptPreExistingDocument(): boolean {\r\n return this.data.AcceptPreExistingDocument;\r\n }\r\n get EnforceDocumentAge(): boolean {\r\n return this.data.EnforceDocumentAge;\r\n }\r\n get DocumentAgeValue(): number {\r\n return this.data.DocumentAgeValue;\r\n }\r\n get DocumentAgeUnit(): string {\r\n return this.data.DocumentAgeUnit;\r\n }\r\n get DefaultTags(): string[] {\r\n return this.data.DefaultTags;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskFileRequirement {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskFileRequirement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n RequiredCategoryId: model.RequiredCategoryId,\r\n AcceptPreExistingDocument: model.AcceptPreExistingDocument,\r\n EnforceDocumentAge: model.EnforceDocumentAge,\r\n DocumentAgeValue: model.DocumentAgeValue,\r\n DocumentAgeUnit: model.DocumentAgeUnit,\r\n DefaultTags: model.DefaultTags,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskFileRequirement {\r\n let clone = new TaskFileRequirement();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskManual {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskManual extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskManual\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskManual }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskManual {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskManual) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskManual {\r\n let clone = new TaskManual();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskPolicyDates {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly AllowChangingEffectiveDates: boolean,\r\n readonly AllowChangingExpirationDates: boolean,\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskPolicyDates extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskPolicyDates\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskPolicyDates }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AllowChangingEffectiveDates(): boolean {\r\n return this.data.AllowChangingEffectiveDates;\r\n }\r\n get AllowChangingExpirationDates(): boolean {\r\n return this.data.AllowChangingExpirationDates;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskPolicyDates {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskPolicyDates) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n AllowChangingEffectiveDates: model.AllowChangingEffectiveDates,\r\n AllowChangingExpirationDates: model.AllowChangingExpirationDates,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskPolicyDates {\r\n let clone = new TaskPolicyDates();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskProducts {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly AddType?: string,\r\n readonly AddTransactionId?: string,\r\n readonly AddAllOtherTransactionId?: string,\r\n readonly ModifyTransactionId?: string,\r\n readonly RemoveTransactionId?: string,\r\n readonly ProductEligibility?: { [index: string]: ActionEligibilityStatus },\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskProducts extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskProducts\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskProducts }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AddType(): string {\r\n return this.data.AddType;\r\n }\r\n get AddTransactionId(): string {\r\n return this.data.AddTransactionId;\r\n }\r\n get AddAllOtherTransactionId(): string {\r\n return this.data.AddAllOtherTransactionId;\r\n }\r\n get ModifyTransactionId(): string {\r\n return this.data.ModifyTransactionId;\r\n }\r\n get RemoveTransactionId(): string {\r\n return this.data.RemoveTransactionId;\r\n }\r\n get ProductEligibility(): { [index: string]: ActionEligibilityStatus } {\r\n return this.data.ProductEligibility;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskProducts {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskProducts) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n AddType: model.AddType,\r\n AddTransactionId: model.AddTransactionId,\r\n AddAllOtherTransactionId: model.AddAllOtherTransactionId,\r\n ModifyTransactionId: model.ModifyTransactionId,\r\n RemoveTransactionId: model.RemoveTransactionId,\r\n ProductEligibility: model.ProductEligibility,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskProducts {\r\n let clone = new TaskProducts();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskRatingSystem {\r\n readonly ProvisionStatus: string,\r\n readonly ProvisionStatusChanged: Date,\r\n readonly ProvisionErrorReasons?: string[],\r\n readonly ProvisionWaitingReasons?: string[],\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId?: string,\r\n readonly CreatedFromRevision?: string,\r\n Id: string,\r\n DueDate?: Date,\r\n readonly CompletionStatus: string,\r\n readonly AvailabilityStatus: string,\r\n readonly ObligationStatus: string,\r\n readonly DateStatusChanged: Date,\r\n readonly StatusChangedById?: string,\r\n readonly WaiveJournalEntryKey?: string,\r\n CompletingDependencies?: string[],\r\n CompletedDependencies?: string[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n readonly DateLockedOrCompleted?: Date,\r\n readonly LockedOrCompletedByName?: string,\r\n readonly LockedOrCompletedById?: string,\r\n readonly RuleId?: string,\r\n readonly RuleDescription?: string,\r\n readonly InitiallyAssignedTo?: string,\r\n StartDate?: Date,\r\n readonly CreatedDate: Date,\r\n readonly ExecutionStatus: string,\r\n readonly ExecutionErrorReason?: string,\r\n readonly LastExecutedDate?: Date,\r\n readonly LastAvailableDate?: Date,\r\n readonly WorkflowId: string,\r\n readonly CreatedBy?: string,\r\n readonly DeadlineTriggerDefinitionId?: string,\r\n readonly Deadline?: Date,\r\n readonly DeadlineTriggeredOn?: Date,\r\n SLATriggeredOn?: Date,\r\n SLATriggeredByWorkableId?: string,\r\n SLADueOn?: Date,\r\n SLAVersionId?: string,\r\n SLAId?: string,\r\n readonly Premium?: string,\r\n readonly Committed: boolean,\r\n readonly CommitOnSuccess?: boolean,\r\n readonly GetPaymentPlans: boolean,\r\n readonly GenerateWorksheets?: boolean,\r\n readonly WorksheetsCategory?: string,\r\n readonly WorksheetTags?: string[],\r\n readonly ReturnPolicyFormsList?: boolean,\r\n readonly GeneratePolicyForms?: boolean,\r\n readonly PolicyFormsCategory?: string,\r\n readonly PolicyFormsTags?: string[],\r\n readonly RatingResults: string,\r\n readonly PolicyRatedStatus?: string,\r\n readonly Commit?: string,\r\n readonly Worksheets?: string,\r\n readonly PolicyForms?: string,\r\n\r\n IsSatisfiedBy?: object[],\r\n AssignedTo?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskRatingSystem extends Task {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TaskRatingSystem\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskRatingSystem }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Premium(): string {\r\n return this.data.Premium;\r\n }\r\n get Committed(): boolean {\r\n return this.data.Committed;\r\n }\r\n get CommitOnSuccess(): boolean {\r\n return this.data.CommitOnSuccess;\r\n }\r\n get GetPaymentPlans(): boolean {\r\n return this.data.GetPaymentPlans;\r\n }\r\n get GenerateWorksheets(): boolean {\r\n return this.data.GenerateWorksheets;\r\n }\r\n get WorksheetsCategory(): string {\r\n return this.data.WorksheetsCategory;\r\n }\r\n get WorksheetTags(): string[] {\r\n return this.data.WorksheetTags;\r\n }\r\n get ReturnPolicyFormsList(): boolean {\r\n return this.data.ReturnPolicyFormsList;\r\n }\r\n get GeneratePolicyForms(): boolean {\r\n return this.data.GeneratePolicyForms;\r\n }\r\n get PolicyFormsCategory(): string {\r\n return this.data.PolicyFormsCategory;\r\n }\r\n get PolicyFormsTags(): string[] {\r\n return this.data.PolicyFormsTags;\r\n }\r\n get RatingResults(): string {\r\n return this.data.RatingResults;\r\n }\r\n get PolicyRatedStatus(): string {\r\n return this.data.PolicyRatedStatus;\r\n }\r\n get Commit(): string {\r\n return this.data.Commit;\r\n }\r\n get Worksheets(): string {\r\n return this.data.Worksheets;\r\n }\r\n get PolicyForms(): string {\r\n return this.data.PolicyForms;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSatisfiedBy',\r\n edgeType: DocumentSatisfiesTask,\r\n otherVertexPropertyName: 'Satisfies',\r\n otherVertexType: Document,\r\n },\r\n {\r\n propertyName: 'AssignedTo',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'Assignee',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskRatingSystem {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskRatingSystem) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ProvisionStatus: model.ProvisionStatus,\r\n ProvisionStatusChanged: model.ProvisionStatusChanged,\r\n ProvisionErrorReasons: model.ProvisionErrorReasons,\r\n ProvisionWaitingReasons: model.ProvisionWaitingReasons,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DueDate: model.DueDate,\r\n CompletionStatus: model.CompletionStatus,\r\n AvailabilityStatus: model.AvailabilityStatus,\r\n ObligationStatus: model.ObligationStatus,\r\n DateStatusChanged: model.DateStatusChanged,\r\n StatusChangedById: model.StatusChangedById,\r\n WaiveJournalEntryKey: model.WaiveJournalEntryKey,\r\n CompletingDependencies: model.CompletingDependencies,\r\n CompletedDependencies: model.CompletedDependencies,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n DateLockedOrCompleted: model.DateLockedOrCompleted,\r\n LockedOrCompletedByName: model.LockedOrCompletedByName,\r\n LockedOrCompletedById: model.LockedOrCompletedById,\r\n RuleId: model.RuleId,\r\n RuleDescription: model.RuleDescription,\r\n InitiallyAssignedTo: model.InitiallyAssignedTo,\r\n StartDate: model.StartDate,\r\n CreatedDate: model.CreatedDate,\r\n ExecutionStatus: model.ExecutionStatus,\r\n ExecutionErrorReason: model.ExecutionErrorReason,\r\n LastExecutedDate: model.LastExecutedDate,\r\n LastAvailableDate: model.LastAvailableDate,\r\n WorkflowId: model.WorkflowId,\r\n CreatedBy: model.CreatedBy,\r\n DeadlineTriggerDefinitionId: model.DeadlineTriggerDefinitionId,\r\n Deadline: model.Deadline,\r\n DeadlineTriggeredOn: model.DeadlineTriggeredOn,\r\n SLATriggeredOn: model.SLATriggeredOn,\r\n SLATriggeredByWorkableId: model.SLATriggeredByWorkableId,\r\n SLADueOn: model.SLADueOn,\r\n SLAVersionId: model.SLAVersionId,\r\n SLAId: model.SLAId,\r\n Premium: model.Premium,\r\n Committed: model.Committed,\r\n CommitOnSuccess: model.CommitOnSuccess,\r\n GetPaymentPlans: model.GetPaymentPlans,\r\n GenerateWorksheets: model.GenerateWorksheets,\r\n WorksheetsCategory: model.WorksheetsCategory,\r\n WorksheetTags: model.WorksheetTags,\r\n ReturnPolicyFormsList: model.ReturnPolicyFormsList,\r\n GeneratePolicyForms: model.GeneratePolicyForms,\r\n PolicyFormsCategory: model.PolicyFormsCategory,\r\n PolicyFormsTags: model.PolicyFormsTags,\r\n RatingResults: model.RatingResults,\r\n PolicyRatedStatus: model.PolicyRatedStatus,\r\n Commit: model.Commit,\r\n Worksheets: model.Worksheets,\r\n PolicyForms: model.PolicyForms,\r\n IsSatisfiedBy: ModelUtils.serializeShallowEdge(model.IsSatisfiedBy(), 'IsSatisfiedBy'),\r\n AssignedTo: ModelUtils.serializeShallowEdge(model.AssignedTo(), 'AssignedTo'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskRatingSystem {\r\n let clone = new TaskRatingSystem();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsSatisfiedBy = _.cloneDeep(this._IsSatisfiedBy);\r\n clone._AssignedTo = _.cloneDeep(this._AssignedTo);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITimestampField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class TimestampField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"TimestampField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TimestampField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TimestampField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TimestampField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TimestampField {\r\n let clone = new TimestampField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IUrlField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class UrlField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"UrlField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof UrlField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): UrlField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: UrlField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UrlField {\r\n let clone = new UrlField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IWorkGroup {\r\n Id: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n DisplayName: string,\r\n Initials: string,\r\n NoOfUsers: number,\r\n NoOfActiveUsers: number,\r\n ReservationTimeLimit?: number,\r\n Prioritization?: string,\r\n readonly NumUnreservedAccounts: number,\r\n readonly NumActiveWorkers: number,\r\n\r\n HasMembers?: object[],\r\n Assignee?: object[],\r\n Queues?: object[]\r\n\r\n}\r\n\r\nexport class WorkGroup extends UserPool {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"WorkGroup\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof WorkGroup }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ReservationTimeLimit(): number {\r\n return this.data.ReservationTimeLimit;\r\n }\r\n set ReservationTimeLimit(value: number) {\r\n this.data.ReservationTimeLimit = value;\r\n }\r\n get Prioritization(): string {\r\n return this.data.Prioritization;\r\n }\r\n set Prioritization(value: string) {\r\n this.data.Prioritization = value;\r\n }\r\n get NumUnreservedAccounts(): number {\r\n return this.data.NumUnreservedAccounts;\r\n }\r\n get NumActiveWorkers(): number {\r\n return this.data.NumActiveWorkers;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Queues, returns ReservationSet WorkGroupQueuesReservationSet[]\r\n private __Queues: WorkGroupQueuesReservationSet[];\r\n Queues(_context?: BaseDataContext): WorkGroupQueuesReservationSet[] {\r\n if (this.__Queues)\r\n return this.__Queues;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Queues), (id) => context.get(id) as WorkGroupQueuesReservationSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setQueues(values: WorkGroupQueuesReservationSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Queues = values;\r\n }\r\n get _Queues(): Set {\r\n if (!this._relationships.has(\"Queues\"))\r\n this._relationships.set(\"Queues\", new Set());\r\n\r\n return this._relationships.get(\"Queues\");\r\n }\r\n set _Queues(values: Set) {\r\n this._relationships.set(\"Queues\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'HasMembers',\r\n edgeType: SMIdentityMemberOfUserPool,\r\n otherVertexPropertyName: 'IsMemberOf',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Assignee',\r\n edgeType: AssignableAssignedTask,\r\n otherVertexPropertyName: 'AssignedTo',\r\n otherVertexType: Task,\r\n },\r\n {\r\n propertyName: 'Queues',\r\n edgeType: WorkGroupQueuesReservationSet,\r\n otherVertexPropertyName: 'IsQueuedBy',\r\n otherVertexType: ReservationSet,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): WorkGroup {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: WorkGroup) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n DisplayName: model.DisplayName,\r\n Initials: model.Initials,\r\n NoOfUsers: model.NoOfUsers,\r\n NoOfActiveUsers: model.NoOfActiveUsers,\r\n ReservationTimeLimit: model.ReservationTimeLimit,\r\n Prioritization: model.Prioritization,\r\n NumUnreservedAccounts: model.NumUnreservedAccounts,\r\n NumActiveWorkers: model.NumActiveWorkers,\r\n HasMembers: ModelUtils.serializeShallowEdge(model.HasMembers(), 'HasMembers'),\r\n Assignee: ModelUtils.serializeShallowEdge(model.Assignee(), 'Assignee'),\r\n Queues: ModelUtils.serializeShallowEdge(model.Queues(), 'Queues'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WorkGroup {\r\n let clone = new WorkGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._HasMembers = _.cloneDeep(this._HasMembers);\r\n clone._Assignee = _.cloneDeep(this._Assignee);\r\n clone._Queues = _.cloneDeep(this._Queues);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IYesNoField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class YesNoField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"YesNoField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof YesNoField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): YesNoField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: YesNoField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): YesNoField {\r\n let clone = new YesNoField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IZipcodeField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class ZipcodeField extends Field {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"ZipcodeField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ZipcodeField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ZipcodeField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ZipcodeField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ZipcodeField {\r\n let clone = new ZipcodeField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class AccountComment extends AuditableAccountActivity {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountComment\";\r\n }\r\n\r\n // Properties\r\n get TaskId(): string {\r\n return this.data.TaskId;\r\n }\r\n set TaskId(value: string) {\r\n this.data.TaskId = value;\r\n }\r\n get ActivityType(): string {\r\n return this.data.ActivityType;\r\n }\r\n set ActivityType(value: string) {\r\n this.data.ActivityType = value;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n set WorkflowSetId(value: string) {\r\n this.data.WorkflowSetId = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): AccountComment {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: AccountComment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CorrelationKey: model.CorrelationKey,\r\n Version: model.Version,\r\n ReplacedByVersion: model.ReplacedByVersion,\r\n UpdatedTime: model.UpdatedTime,\r\n UpdatedByIdentity: model.UpdatedByIdentity,\r\n DeletedByIdentity: model.DeletedByIdentity,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Action: model.Action,\r\n EntityType: model.EntityType,\r\n EntityId: model.EntityId,\r\n EntityCorrelationKey: model.EntityCorrelationKey,\r\n IdentityKey: model.IdentityKey,\r\n DeletedBy: model.DeletedBy,\r\n ActivityTime: model.ActivityTime,\r\n Message: model.Message,\r\n Tags: model.Tags,\r\n AccountId: model.AccountId,\r\n AffectedUsers: model.AffectedUsers,\r\n AlsoAppliesToIds: model.AlsoAppliesToIds,\r\n TaskId: model.TaskId,\r\n ActivityType: model.ActivityType,\r\n WorkflowSetId: model.WorkflowSetId,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AccountComment {\r\n let clone = new AccountComment();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AccountJournalEntry extends AuditableAccountActivity {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"AccountJournalEntry\";\r\n }\r\n\r\n // Properties\r\n get Subject(): string {\r\n return this.data.Subject;\r\n }\r\n set Subject(value: string) {\r\n this.data.Subject = value;\r\n }\r\n get ExternalCommunication(): boolean {\r\n return this.data.ExternalCommunication;\r\n }\r\n set ExternalCommunication(value: boolean) {\r\n this.data.ExternalCommunication = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): AccountJournalEntry {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: AccountJournalEntry) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CorrelationKey: model.CorrelationKey,\r\n Version: model.Version,\r\n ReplacedByVersion: model.ReplacedByVersion,\r\n UpdatedTime: model.UpdatedTime,\r\n UpdatedByIdentity: model.UpdatedByIdentity,\r\n DeletedByIdentity: model.DeletedByIdentity,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Action: model.Action,\r\n EntityType: model.EntityType,\r\n EntityId: model.EntityId,\r\n EntityCorrelationKey: model.EntityCorrelationKey,\r\n IdentityKey: model.IdentityKey,\r\n DeletedBy: model.DeletedBy,\r\n ActivityTime: model.ActivityTime,\r\n Message: model.Message,\r\n Tags: model.Tags,\r\n AccountId: model.AccountId,\r\n AffectedUsers: model.AffectedUsers,\r\n AlsoAppliesToIds: model.AlsoAppliesToIds,\r\n Subject: model.Subject,\r\n ExternalCommunication: model.ExternalCommunication,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AccountJournalEntry {\r\n let clone = new AccountJournalEntry();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataPointEmail {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n DeliveredBy?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointEmail extends DataPointString {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointEmail\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointEmail }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n // Relationship DeliveredBy, returns Correspondence CorrespondenceDeliversEmail[]\r\n private __DeliveredBy: CorrespondenceDeliversEmail[];\r\n DeliveredBy(_context?: BaseDataContext): CorrespondenceDeliversEmail[] {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliveredBy), (id) => context.get(id) as CorrespondenceDeliversEmail);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliveredBy(values: CorrespondenceDeliversEmail[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliveredBy = values;\r\n }\r\n get _DeliveredBy(): Set {\r\n if (!this._relationships.has(\"DeliveredBy\"))\r\n this._relationships.set(\"DeliveredBy\", new Set());\r\n\r\n return this._relationships.get(\"DeliveredBy\");\r\n }\r\n set _DeliveredBy(values: Set) {\r\n this._relationships.set(\"DeliveredBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'DeliveredBy',\r\n edgeType: CorrespondenceDeliversEmail,\r\n otherVertexPropertyName: 'DeliversEmail',\r\n otherVertexType: Correspondence,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointEmail {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointEmail) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n DeliveredBy: ModelUtils.serializeShallowEdge(model.DeliveredBy(), 'DeliveredBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointEmail {\r\n let clone = new DataPointEmail();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._DeliveredBy = _.cloneDeep(this._DeliveredBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointMoney {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinValue?: number,\r\n MaxValue?: number,\r\n Places?: number,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointMoney extends DataPointDecimal {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointMoney\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointMoney }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointMoney {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointMoney) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n Places: model.Places,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointMoney {\r\n let clone = new DataPointMoney();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointPhone {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointPhone extends DataPointString {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointPhone\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointPhone }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointPhone {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointPhone) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointPhone {\r\n let clone = new DataPointPhone();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointYear {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinValue?: number,\r\n MaxValue?: number,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointYear extends DataPointInteger {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointYear\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointYear }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointYear {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointYear) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointYear {\r\n let clone = new DataPointYear();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointYesNo {\r\n readonly CommittedEditions?: number[],\r\n readonly Content?: { [index: number]: { [index: string]: any } },\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly DataType: string,\r\n readonly Name: string,\r\n readonly Description?: string,\r\n readonly Optional: boolean,\r\n readonly RegExPattern?: string,\r\n ValidationType: string,\r\n Options?: string[],\r\n ValidationScript?: string,\r\n Tag?: string,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n readonly DataStoreId: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly RepeatableAncestors?: string[],\r\n readonly RepeatablePath?: any[],\r\n readonly RepeatablePathWasCalculated?: boolean,\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean,\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsMappingFor?: object[],\r\n ParameterSubstitutedBy?: object[],\r\n MapsTo?: object[]\r\n\r\n}\r\n\r\nexport class DataPointYesNo extends DataPointString {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"DataPointYesNo\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointYesNo }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsMappingFor',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'MapsTo',\r\n otherVertexType: Mappable,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: CorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: Correspondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MapsTo',\r\n edgeType: SimpleMapping,\r\n otherVertexPropertyName: 'IsMappingFor',\r\n otherVertexType: Mappable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointYesNo {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointYesNo) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CommittedEditions: model.CommittedEditions,\r\n Content: model.Content,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n Options: model.Options,\r\n ValidationScript: model.ValidationScript,\r\n Tag: model.Tag,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n DataStoreId: model.DataStoreId,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n RepeatableAncestors: model.RepeatableAncestors,\r\n RepeatablePath: model.RepeatablePath,\r\n RepeatablePathWasCalculated: model.RepeatablePathWasCalculated,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsMappingFor: ModelUtils.serializeShallowEdge(model.IsMappingFor(), 'IsMappingFor'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n MapsTo: ModelUtils.serializeShallowEdge(model.MapsTo(), 'MapsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointYesNo {\r\n let clone = new DataPointYesNo();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsMappingFor = _.cloneDeep(this._IsMappingFor);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n clone._MapsTo = _.cloneDeep(this._MapsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IEmailField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class EmailField extends StringField {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"EmailField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof EmailField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): EmailField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: EmailField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): EmailField {\r\n let clone = new EmailField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IPhoneField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class PhoneField extends StringField {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"PhoneField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof PhoneField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): PhoneField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: PhoneField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): PhoneField {\r\n let clone = new PhoneField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IYearField {\r\n readonly CopiedFromId?: string,\r\n readonly OrderNum: number,\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n readonly WorkflowSetId: string,\r\n readonly ParentId: string,\r\n readonly DisplayLabel?: string,\r\n readonly ShowHelp: boolean,\r\n readonly Help?: string,\r\n readonly ConditionMet: boolean,\r\n readonly ExternalId?: string,\r\n readonly ApplicationId: string,\r\n Content?: any,\r\n readonly Committed: boolean,\r\n readonly ContentType: string,\r\n readonly Optional: boolean,\r\n readonly DefaultContent?: any,\r\n readonly Access: string,\r\n readonly ValidationErrors?: string[],\r\n readonly DataChanged: boolean,\r\n readonly PreviousContent?: any,\r\n\r\n IsEnabledBy?: object[],\r\n IsContainedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class YearField extends IntegerField {\r\n get Domain(): string {\r\n return \"Area\";\r\n }\r\n get Type(): string {\r\n return \"YearField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof YearField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: SectionContainsElement,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): YearField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: YearField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CopiedFromId: model.CopiedFromId,\r\n OrderNum: model.OrderNum,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n WorkflowSetId: model.WorkflowSetId,\r\n ParentId: model.ParentId,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n ApplicationId: model.ApplicationId,\r\n Content: model.Content,\r\n Committed: model.Committed,\r\n ContentType: model.ContentType,\r\n Optional: model.Optional,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n ValidationErrors: model.ValidationErrors,\r\n DataChanged: model.DataChanged,\r\n PreviousContent: model.PreviousContent,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): YearField {\r\n let clone = new YearField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport var Types = {\r\n Account,\r\n AccountActivity,\r\n Activity,\r\n AccountComment,\r\n AuditableAccountActivity,\r\n AccountJournalEntry,\r\n AccountPerformsWorkflowSet,\r\n AccountRunsWorkflow,\r\n AccountWritesPolicySet,\r\n Invoice,\r\n InvoiceBillsAccount,\r\n Notification,\r\n Policy,\r\n PolicyExecutesTransaction,\r\n PolicySet,\r\n PolicySetWritesPolicy,\r\n Transaction,\r\n TransactionIsManagedByWorkflow,\r\n UserNotificationCenter,\r\n UserNotificationCenterIsAlertedByNotification,\r\n UserRecentAccounts,\r\n ApplicationDocument,\r\n SectionDocument,\r\n ApplicationContainsElementCondition,\r\n ElementCondition,\r\n ElementConditionEnablesElement,\r\n ElementConditionEvaluatesDataPoint,\r\n DateField,\r\n Field,\r\n Element,\r\n DecimalField,\r\n EmailField,\r\n StringField,\r\n IntegerField,\r\n ListOfStringsField,\r\n MoneyField,\r\n PhoneField,\r\n Section,\r\n StaticElement,\r\n StaticText,\r\n TimestampField,\r\n UrlField,\r\n YearField,\r\n YesNoField,\r\n ZipcodeField,\r\n Application,\r\n ApplicationCollectsSection,\r\n ApplicationPopulatesDataStore,\r\n FieldPopulatesDataPoint,\r\n ScriptCondition,\r\n SectionContainsElement,\r\n SectionRepeatsWithDataGroup,\r\n DataGroupDocument,\r\n DataStoreDocument,\r\n DataPoint,\r\n Mappable,\r\n DataPointDate,\r\n DataPointDecimal,\r\n DataPointEmail,\r\n DataPointString,\r\n DataPointInteger,\r\n DataPointListOfStrings,\r\n DataPointMoney,\r\n DataPointPhone,\r\n DataPointTimestamp,\r\n DataPointUrl,\r\n DataPointYear,\r\n DataPointYesNo,\r\n DataPointZipcode,\r\n DataGroup,\r\n DataGroupChildDataGroup,\r\n DataGroupContainsDataPoint,\r\n DataStore,\r\n DataStoreContainsDataGroup,\r\n Map,\r\n MapCalculatesDataStore,\r\n MapContainsTransform,\r\n SimpleMapping,\r\n ScriptTransform,\r\n Transform,\r\n Rule,\r\n RuleDateTime,\r\n RuleProductSelection,\r\n RuleRiskAssessment,\r\n RuleRoleAssignment,\r\n RuleSet,\r\n RuleSetContainsRule,\r\n RuleSetRiskAssessment,\r\n RuleTaskObligation,\r\n RuleWorkflowSetStatus,\r\n Correspondence,\r\n CorrespondenceDeliveredForCorrespondenceTask,\r\n CorrespondenceDeliversAccountRole,\r\n CorrespondenceDeliversEmail,\r\n CorrespondenceMailsToDataGroup,\r\n CorrespondenceParameterSubstitutesDataPoint,\r\n CorrespondencePertainsToAccount,\r\n CorrespondencePullsFromDataStore,\r\n CorrespondenceSendsDocument,\r\n Document,\r\n DocumentAudit,\r\n DocumentInformsTransaction,\r\n DocumentInvoicesInvoice,\r\n DocumentSatisfiesTask,\r\n AccountRole,\r\n UserPool,\r\n Assignable,\r\n AccountRoleServicesAccount,\r\n AssignableAssignedTask,\r\n BusinessLocation,\r\n Holiday,\r\n Phase,\r\n Workable,\r\n PhaseRequiresTask,\r\n Prioritization,\r\n Program,\r\n ProgramConfiguredByProgramOptions,\r\n ProgramFormattedByRegion,\r\n ProgramOptions,\r\n ProgramRevision,\r\n ProgramRevisionPublishesProgram,\r\n ProgramRevisionStandbyWorkflow,\r\n ProgramWritesAccount,\r\n Region,\r\n ReservationSet,\r\n ReservationSetReservesAccount,\r\n ServiceLevel,\r\n ServiceLevelAgreement,\r\n SMIdentity,\r\n SMIdentityMemberOfUserPool,\r\n SMIdentityStartsReservationSet,\r\n SMIdentityWorksAccount,\r\n Task,\r\n TaskApplication,\r\n TaskApproval,\r\n TaskClearance,\r\n TaskCorrespondence,\r\n TaskDocumentGeneration,\r\n TaskFileRequirement,\r\n TaskManual,\r\n TaskPolicyDates,\r\n TaskProducts,\r\n TaskRatingSystem,\r\n UserActivity,\r\n WorkableEnablesWorkable,\r\n Workflow,\r\n WorkflowCollectsApplication,\r\n WorkflowEvaluatesRule,\r\n WorkflowRequiresPhase,\r\n WorkflowSet,\r\n WorkflowSetContainsWorkflow,\r\n WorkflowStoresDataStore,\r\n WorkGroup,\r\n WorkGroupQueuesReservationSet,\r\n TransactionDetails,\r\n UserFavoritesAccount,\r\n}\r\n","import { ModelUtils, EdgeRelationship } from '@Core/Lib/Utils/model-utils';\r\nimport { BaseDataContext } from '@Core/Lib/Contexts/base-data-context';\r\nimport { BaseModel, EdgeModel, VertexModel, DocumentModel } from '@Core/Lib/model';\r\nimport { ContractDate } from '@Core/Lib/contract-date';\r\nimport { ActionEligibilityStatus } from '@Core/Lib/Enums/action-eligibility-status';\r\n\r\nimport * as _ from 'lodash';\r\n\r\nexport class ApplicationCollectsSection extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationCollectsSection\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __IsCollectedBy: Application;\r\n\r\n IsCollectedBy(context?: BaseDataContext): Application {\r\n if (this.__IsCollectedBy)\r\n return this.__IsCollectedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsCollectedBy) as Application;\r\n }\r\n setIsCollectedBy(value: Application) {\r\n this.__IsCollectedBy = value;\r\n }\r\n get _IsCollectedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsCollectedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Section\r\n private __Collects: Section;\r\n\r\n Collects(context?: BaseDataContext): Section {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Collects) as Section;\r\n }\r\n setCollects(value: Section) {\r\n this.__Collects = value;\r\n }\r\n get _Collects(): string {\r\n return this.In;\r\n }\r\n set _Collects(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationCollectsSection {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationCollectsSection {\r\n let clone = new ApplicationCollectsSection();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ApplicationContainsElementCondition extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationContainsElementCondition\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __IsContainedBy: Application;\r\n\r\n IsContainedBy(context?: BaseDataContext): Application {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as Application;\r\n }\r\n setIsContainedBy(value: Application) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ElementCondition\r\n private __ContainsCondition: ElementCondition;\r\n\r\n ContainsCondition(context?: BaseDataContext): ElementCondition {\r\n if (this.__ContainsCondition)\r\n return this.__ContainsCondition;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ContainsCondition) as ElementCondition;\r\n }\r\n setContainsCondition(value: ElementCondition) {\r\n this.__ContainsCondition = value;\r\n }\r\n get _ContainsCondition(): string {\r\n return this.In;\r\n }\r\n set _ContainsCondition(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationContainsElementCondition {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationContainsElementCondition {\r\n let clone = new ApplicationContainsElementCondition();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ApplicationIsSequencedByApplicationSequence extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationIsSequencedByApplicationSequence\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __Sequences: Application;\r\n\r\n Sequences(context?: BaseDataContext): Application {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sequences) as Application;\r\n }\r\n setSequences(value: Application) {\r\n this.__Sequences = value;\r\n }\r\n get _Sequences(): string {\r\n return this.Out;\r\n }\r\n set _Sequences(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ApplicationSequence\r\n private __IsSequencedBy: ApplicationSequence;\r\n\r\n IsSequencedBy(context?: BaseDataContext): ApplicationSequence {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSequencedBy) as ApplicationSequence;\r\n }\r\n setIsSequencedBy(value: ApplicationSequence) {\r\n this.__IsSequencedBy = value;\r\n }\r\n get _IsSequencedBy(): string {\r\n return this.In;\r\n }\r\n set _IsSequencedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationIsSequencedByApplicationSequence {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationIsSequencedByApplicationSequence {\r\n let clone = new ApplicationIsSequencedByApplicationSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ApplicationPopulatesDataStore extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationPopulatesDataStore\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Application\r\n private __IsPopulatedBy: Application;\r\n\r\n IsPopulatedBy(context?: BaseDataContext): Application {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPopulatedBy) as Application;\r\n }\r\n setIsPopulatedBy(value: Application) {\r\n this.__IsPopulatedBy = value;\r\n }\r\n get _IsPopulatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPopulatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStore\r\n private __Populates: DataStore;\r\n\r\n Populates(context?: BaseDataContext): DataStore {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Populates) as DataStore;\r\n }\r\n setPopulates(value: DataStore) {\r\n this.__Populates = value;\r\n }\r\n get _Populates(): string {\r\n return this.In;\r\n }\r\n set _Populates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationPopulatesDataStore {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationPopulatesDataStore {\r\n let clone = new ApplicationPopulatesDataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IApplicationSequence {\r\n Sequence?: string[],\r\n Id: string\r\n\r\n Sequences?: object[]\r\n\r\n}\r\n\r\nexport class ApplicationSequence extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationSequence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ApplicationSequence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Sequences, returns Application ApplicationIsSequencedByApplicationSequence[]\r\n private __Sequences: ApplicationIsSequencedByApplicationSequence[];\r\n Sequences(_context?: BaseDataContext): ApplicationIsSequencedByApplicationSequence[] {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sequences), (id) => context.get(id) as ApplicationIsSequencedByApplicationSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSequences(values: ApplicationIsSequencedByApplicationSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sequences = values;\r\n }\r\n get _Sequences(): Set {\r\n if (!this._relationships.has(\"Sequences\"))\r\n this._relationships.set(\"Sequences\", new Set());\r\n\r\n return this._relationships.get(\"Sequences\");\r\n }\r\n set _Sequences(values: Set) {\r\n this._relationships.set(\"Sequences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Sequences',\r\n edgeType: ApplicationIsSequencedByApplicationSequence,\r\n otherVertexPropertyName: 'IsSequencedBy',\r\n otherVertexType: Application,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ApplicationSequence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ApplicationSequence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Sequences: ModelUtils.serializeShallowEdge(model.Sequences(), 'Sequences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ApplicationSequence {\r\n let clone = new ApplicationSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Sequences = _.cloneDeep(this._Sequences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IApplicationStructure {\r\n readonly CreatedFromId: string,\r\n readonly CreatedFromRevision: string,\r\n Id: string,\r\n FileName?: string,\r\n\r\n BelongsTo?: object[]\r\n\r\n}\r\n\r\nexport class ApplicationStructure extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationStructure\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ApplicationStructure }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedFromId(): string {\r\n return this.data.CreatedFromId;\r\n }\r\n get CreatedFromRevision(): string {\r\n return this.data.CreatedFromRevision;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get FileName(): string {\r\n return this.data.FileName;\r\n }\r\n set FileName(value: string) {\r\n this.data.FileName = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship BelongsTo, returns ProgramRevision ApplicationStructureBelongsToProgramRevision[]\r\n private __BelongsTo: ApplicationStructureBelongsToProgramRevision[];\r\n BelongsTo(_context?: BaseDataContext): ApplicationStructureBelongsToProgramRevision[] {\r\n if (this.__BelongsTo)\r\n return this.__BelongsTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._BelongsTo), (id) => context.get(id) as ApplicationStructureBelongsToProgramRevision);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setBelongsTo(values: ApplicationStructureBelongsToProgramRevision[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__BelongsTo = values;\r\n }\r\n get _BelongsTo(): Set {\r\n if (!this._relationships.has(\"BelongsTo\"))\r\n this._relationships.set(\"BelongsTo\", new Set());\r\n\r\n return this._relationships.get(\"BelongsTo\");\r\n }\r\n set _BelongsTo(values: Set) {\r\n this._relationships.set(\"BelongsTo\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'BelongsTo',\r\n edgeType: ApplicationStructureBelongsToProgramRevision,\r\n otherVertexPropertyName: 'UtilizesAppStructure',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ApplicationStructure {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ApplicationStructure) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n CreatedFromId: model.CreatedFromId,\r\n CreatedFromRevision: model.CreatedFromRevision,\r\n Id: model.Id,\r\n FileName: model.FileName,\r\n BelongsTo: ModelUtils.serializeShallowEdge(model.BelongsTo(), 'BelongsTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ApplicationStructure {\r\n let clone = new ApplicationStructure();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._BelongsTo = _.cloneDeep(this._BelongsTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ApplicationStructureBelongsToProgramRevision extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ApplicationStructureBelongsToProgramRevision\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ApplicationStructure\r\n private __UtilizesAppStructure: ApplicationStructure;\r\n\r\n UtilizesAppStructure(context?: BaseDataContext): ApplicationStructure {\r\n if (this.__UtilizesAppStructure)\r\n return this.__UtilizesAppStructure;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._UtilizesAppStructure) as ApplicationStructure;\r\n }\r\n setUtilizesAppStructure(value: ApplicationStructure) {\r\n this.__UtilizesAppStructure = value;\r\n }\r\n get _UtilizesAppStructure(): string {\r\n return this.Out;\r\n }\r\n set _UtilizesAppStructure(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ProgramRevision\r\n private __BelongsTo: ProgramRevision;\r\n\r\n BelongsTo(context?: BaseDataContext): ProgramRevision {\r\n if (this.__BelongsTo)\r\n return this.__BelongsTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._BelongsTo) as ProgramRevision;\r\n }\r\n setBelongsTo(value: ProgramRevision) {\r\n this.__BelongsTo = value;\r\n }\r\n get _BelongsTo(): string {\r\n return this.In;\r\n }\r\n set _BelongsTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ApplicationStructureBelongsToProgramRevision {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ApplicationStructureBelongsToProgramRevision {\r\n let clone = new ApplicationStructureBelongsToProgramRevision();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class AppRepresentedByTenantUser extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"AppRepresentedByTenantUser\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TenantUser\r\n private __IsRepresentedBy: TenantUser;\r\n\r\n IsRepresentedBy(context?: BaseDataContext): TenantUser {\r\n if (this.__IsRepresentedBy)\r\n return this.__IsRepresentedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRepresentedBy) as TenantUser;\r\n }\r\n setIsRepresentedBy(value: TenantUser) {\r\n this.__IsRepresentedBy = value;\r\n }\r\n get _IsRepresentedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsRepresentedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to App\r\n private __IsContactFor: App;\r\n\r\n IsContactFor(context?: BaseDataContext): App {\r\n if (this.__IsContactFor)\r\n return this.__IsContactFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContactFor) as App;\r\n }\r\n setIsContactFor(value: App) {\r\n this.__IsContactFor = value;\r\n }\r\n get _IsContactFor(): string {\r\n return this.In;\r\n }\r\n set _IsContactFor(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AppRepresentedByTenantUser {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AppRepresentedByTenantUser {\r\n let clone = new AppRepresentedByTenantUser();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IArea {\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n InstecBillingEndpoint?: string,\r\n InstecBillingAuthToken?: string,\r\n Alias?: string,\r\n readonly Order: number,\r\n\r\n IsConfiguredFor?: object[],\r\n IsWorkedBy?: object[],\r\n Deploys?: object[]\r\n\r\n}\r\n\r\nexport class Area extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Area\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Area }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get InstecBillingEndpoint(): string {\r\n return this.data.InstecBillingEndpoint;\r\n }\r\n set InstecBillingEndpoint(value: string) {\r\n this.data.InstecBillingEndpoint = value;\r\n }\r\n get InstecBillingAuthToken(): string {\r\n return this.data.InstecBillingAuthToken;\r\n }\r\n set InstecBillingAuthToken(value: string) {\r\n this.data.InstecBillingAuthToken = value;\r\n }\r\n get Alias(): string {\r\n return this.data.Alias;\r\n }\r\n set Alias(value: string) {\r\n this.data.Alias = value;\r\n }\r\n get Order(): number {\r\n return this.data.Order;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsConfiguredFor, returns ProgramRevision ProgramRevisionConfiguresArea[]\r\n private __IsConfiguredFor: ProgramRevisionConfiguresArea[];\r\n IsConfiguredFor(_context?: BaseDataContext): ProgramRevisionConfiguresArea[] {\r\n if (this.__IsConfiguredFor)\r\n return this.__IsConfiguredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsConfiguredFor), (id) => context.get(id) as ProgramRevisionConfiguresArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsConfiguredFor(values: ProgramRevisionConfiguresArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsConfiguredFor = values;\r\n }\r\n get _IsConfiguredFor(): Set {\r\n if (!this._relationships.has(\"IsConfiguredFor\"))\r\n this._relationships.set(\"IsConfiguredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsConfiguredFor\");\r\n }\r\n set _IsConfiguredFor(values: Set) {\r\n this._relationships.set(\"IsConfiguredFor\", values);\r\n }\r\n\r\n // Relationship IsWorkedBy, returns SMIdentity SMIdentityWorksInArea[]\r\n private __IsWorkedBy: SMIdentityWorksInArea[];\r\n IsWorkedBy(_context?: BaseDataContext): SMIdentityWorksInArea[] {\r\n if (this.__IsWorkedBy)\r\n return this.__IsWorkedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWorkedBy), (id) => context.get(id) as SMIdentityWorksInArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWorkedBy(values: SMIdentityWorksInArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWorkedBy = values;\r\n }\r\n get _IsWorkedBy(): Set {\r\n if (!this._relationships.has(\"IsWorkedBy\"))\r\n this._relationships.set(\"IsWorkedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsWorkedBy\");\r\n }\r\n set _IsWorkedBy(values: Set) {\r\n this._relationships.set(\"IsWorkedBy\", values);\r\n }\r\n\r\n // Relationship Deploys, returns Deployable AreaDeploysDeployable[]\r\n private __Deploys: AreaDeploysDeployable[];\r\n Deploys(_context?: BaseDataContext): AreaDeploysDeployable[] {\r\n if (this.__Deploys)\r\n return this.__Deploys;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Deploys), (id) => context.get(id) as AreaDeploysDeployable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeploys(values: AreaDeploysDeployable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Deploys = values;\r\n }\r\n get _Deploys(): Set {\r\n if (!this._relationships.has(\"Deploys\"))\r\n this._relationships.set(\"Deploys\", new Set());\r\n\r\n return this._relationships.get(\"Deploys\");\r\n }\r\n set _Deploys(values: Set) {\r\n this._relationships.set(\"Deploys\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsConfiguredFor',\r\n edgeType: ProgramRevisionConfiguresArea,\r\n otherVertexPropertyName: 'Configures',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsWorkedBy',\r\n edgeType: SMIdentityWorksInArea,\r\n otherVertexPropertyName: 'WorksIn',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Deploys',\r\n edgeType: AreaDeploysDeployable,\r\n otherVertexPropertyName: 'DeployedTo',\r\n otherVertexType: Deployable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Area {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Area) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n InstecBillingEndpoint: model.InstecBillingEndpoint,\r\n InstecBillingAuthToken: model.InstecBillingAuthToken,\r\n Alias: model.Alias,\r\n Order: model.Order,\r\n IsConfiguredFor: ModelUtils.serializeShallowEdge(model.IsConfiguredFor(), 'IsConfiguredFor'),\r\n IsWorkedBy: ModelUtils.serializeShallowEdge(model.IsWorkedBy(), 'IsWorkedBy'),\r\n Deploys: ModelUtils.serializeShallowEdge(model.Deploys(), 'Deploys'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Area {\r\n let clone = new Area();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsConfiguredFor = _.cloneDeep(this._IsConfiguredFor);\r\n clone._IsWorkedBy = _.cloneDeep(this._IsWorkedBy);\r\n clone._Deploys = _.cloneDeep(this._Deploys);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class AreaDeploysDeployable extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"AreaDeploysDeployable\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n set Status(value: string) {\r\n this.data.Status = value;\r\n }\r\n get User(): string {\r\n return this.data.User;\r\n }\r\n set User(value: string) {\r\n this.data.User = value;\r\n }\r\n get DeployedDate(): Date {\r\n return this.data.DeployedDate ? new Date(this.data.DeployedDate) : undefined;\r\n }\r\n set DeployedDate(value: Date) {\r\n this.data.DeployedDate = value;\r\n }\r\n get Settings(): { [index: string]: string } {\r\n return this.data.Settings;\r\n }\r\n set Settings(value: { [index: string]: string }) {\r\n this.data.Settings = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Area\r\n private __DeployedTo: Area;\r\n\r\n DeployedTo(context?: BaseDataContext): Area {\r\n if (this.__DeployedTo)\r\n return this.__DeployedTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeployedTo) as Area;\r\n }\r\n setDeployedTo(value: Area) {\r\n this.__DeployedTo = value;\r\n }\r\n get _DeployedTo(): string {\r\n return this.Out;\r\n }\r\n set _DeployedTo(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Deployable\r\n private __Deploys: Deployable;\r\n\r\n Deploys(context?: BaseDataContext): Deployable {\r\n if (this.__Deploys)\r\n return this.__Deploys;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Deploys) as Deployable;\r\n }\r\n setDeploys(value: Deployable) {\r\n this.__Deploys = value;\r\n }\r\n get _Deploys(): string {\r\n return this.In;\r\n }\r\n set _Deploys(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AreaDeploysDeployable {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AreaDeploysDeployable {\r\n let clone = new AreaDeploysDeployable();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IAsset {\r\n Id: string,\r\n Name: string,\r\n Description: string,\r\n Extension: string,\r\n ProductIds?: string[],\r\n Tags?: string[],\r\n readonly PayloadSize?: number,\r\n PayloadFileName?: string,\r\n readonly Status: string,\r\n readonly LastUpdatedBy?: string\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class Asset extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Asset\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Asset }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Extension(): string {\r\n return this.data.Extension;\r\n }\r\n set Extension(value: string) {\r\n this.data.Extension = value;\r\n }\r\n get ProductIds(): string[] {\r\n return this.data.ProductIds;\r\n }\r\n set ProductIds(value: string[]) {\r\n this.data.ProductIds = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n get PayloadSize(): number {\r\n return this.data.PayloadSize;\r\n }\r\n get PayloadFileName(): string {\r\n return this.data.PayloadFileName;\r\n }\r\n set PayloadFileName(value: string) {\r\n this.data.PayloadFileName = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get LastUpdatedBy(): string {\r\n return this.data.LastUpdatedBy;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsContainedBy, returns AssetGroup AssetGroupContainsAsset[]\r\n private __IsContainedBy: AssetGroupContainsAsset[];\r\n IsContainedBy(_context?: BaseDataContext): AssetGroupContainsAsset[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as AssetGroupContainsAsset);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: AssetGroupContainsAsset[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: AssetGroupContainsAsset,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: AssetGroup,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Asset {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Asset) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Extension: model.Extension,\r\n ProductIds: model.ProductIds,\r\n Tags: model.Tags,\r\n PayloadSize: model.PayloadSize,\r\n PayloadFileName: model.PayloadFileName,\r\n Status: model.Status,\r\n LastUpdatedBy: model.LastUpdatedBy,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Asset {\r\n let clone = new Asset();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class AssetGroupContainsAsset extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"AssetGroupContainsAsset\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to AssetGroup\r\n private __IsContainedBy: AssetGroup;\r\n\r\n IsContainedBy(context?: BaseDataContext): AssetGroup {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as AssetGroup;\r\n }\r\n setIsContainedBy(value: AssetGroup) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Asset\r\n private __Contains: Asset;\r\n\r\n Contains(context?: BaseDataContext): Asset {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Asset;\r\n }\r\n setContains(value: Asset) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): AssetGroupContainsAsset {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): AssetGroupContainsAsset {\r\n let clone = new AssetGroupContainsAsset();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IAssignable {\r\n Id: string,\r\n Initials: string,\r\n DisplayName: string,\r\n BadgePath?: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date\r\n\r\n InitialAssigneeFor?: object[]\r\n\r\n}\r\n\r\nexport class Assignable extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Assignable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Assignable }[] = [\r\n {className: 'AccountRole', type: AccountRole},\r\n {className: 'WorkGroup', type: WorkGroup},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Initials(): string {\r\n return this.data.Initials;\r\n }\r\n set Initials(value: string) {\r\n this.data.Initials = value;\r\n }\r\n get DisplayName(): string {\r\n return this.data.DisplayName;\r\n }\r\n set DisplayName(value: string) {\r\n this.data.DisplayName = value;\r\n }\r\n get BadgePath(): string {\r\n return this.data.BadgePath;\r\n }\r\n set BadgePath(value: string) {\r\n this.data.BadgePath = value;\r\n }\r\n get TasksAssigned(): number {\r\n return this.data.TasksAssigned;\r\n }\r\n set TasksAssigned(value: number) {\r\n this.data.TasksAssigned = value;\r\n }\r\n get DateCreated(): Date {\r\n return this.data.DateCreated ? new Date(this.data.DateCreated) : undefined;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship InitialAssigneeFor, returns Task TaskAssignedAssignable[]\r\n private __InitialAssigneeFor: TaskAssignedAssignable[];\r\n InitialAssigneeFor(_context?: BaseDataContext): TaskAssignedAssignable[] {\r\n if (this.__InitialAssigneeFor)\r\n return this.__InitialAssigneeFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._InitialAssigneeFor), (id) => context.get(id) as TaskAssignedAssignable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setInitialAssigneeFor(values: TaskAssignedAssignable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__InitialAssigneeFor = values;\r\n }\r\n get _InitialAssigneeFor(): Set {\r\n if (!this._relationships.has(\"InitialAssigneeFor\"))\r\n this._relationships.set(\"InitialAssigneeFor\", new Set());\r\n\r\n return this._relationships.get(\"InitialAssigneeFor\");\r\n }\r\n set _InitialAssigneeFor(values: Set) {\r\n this._relationships.set(\"InitialAssigneeFor\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'InitialAssigneeFor',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitiallyAssignedTo',\r\n otherVertexType: Task,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Assignable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Assignable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Initials: model.Initials,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n InitialAssigneeFor: ModelUtils.serializeShallowEdge(model.InitialAssigneeFor(), 'InitialAssigneeFor'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Assignable {\r\n let clone = new Assignable();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._InitialAssigneeFor = _.cloneDeep(this._InitialAssigneeFor);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class BusinessLocation extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"BusinessLocation\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get TimeZone(): string {\r\n return this.data.TimeZone;\r\n }\r\n set TimeZone(value: string) {\r\n this.data.TimeZone = value;\r\n }\r\n get BusinessDays(): { [index: number]: any } {\r\n return this.data.BusinessDays;\r\n }\r\n set BusinessDays(value: { [index: number]: any }) {\r\n this.data.BusinessDays = value;\r\n }\r\n get ObserveDaylightSavings(): boolean {\r\n return this.data.ObserveDaylightSavings;\r\n }\r\n set ObserveDaylightSavings(value: boolean) {\r\n this.data.ObserveDaylightSavings = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): BusinessLocation {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: BusinessLocation) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TimeZone: model.TimeZone,\r\n BusinessDays: model.BusinessDays,\r\n ObserveDaylightSavings: model.ObserveDaylightSavings,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): BusinessLocation {\r\n let clone = new BusinessLocation();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ICompany {\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n Admitted: boolean,\r\n\r\n Writes?: object[]\r\n\r\n}\r\n\r\nexport class Company extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Company\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Company }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Admitted(): boolean {\r\n return this.data.Admitted;\r\n }\r\n set Admitted(value: boolean) {\r\n this.data.Admitted = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Writes, returns Product CompanyWritesProduct[]\r\n private __Writes: CompanyWritesProduct[];\r\n Writes(_context?: BaseDataContext): CompanyWritesProduct[] {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Writes), (id) => context.get(id) as CompanyWritesProduct);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWrites(values: CompanyWritesProduct[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Writes = values;\r\n }\r\n get _Writes(): Set {\r\n if (!this._relationships.has(\"Writes\"))\r\n this._relationships.set(\"Writes\", new Set());\r\n\r\n return this._relationships.get(\"Writes\");\r\n }\r\n set _Writes(values: Set) {\r\n this._relationships.set(\"Writes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Writes',\r\n edgeType: CompanyWritesProduct,\r\n otherVertexPropertyName: 'IsWrittenBy',\r\n otherVertexType: Product,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Company {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Company) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Admitted: model.Admitted,\r\n Writes: ModelUtils.serializeShallowEdge(model.Writes(), 'Writes'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Company {\r\n let clone = new Company();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Writes = _.cloneDeep(this._Writes);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class CompanyWritesProduct extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"CompanyWritesProduct\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Company\r\n private __IsWrittenBy: Company;\r\n\r\n IsWrittenBy(context?: BaseDataContext): Company {\r\n if (this.__IsWrittenBy)\r\n return this.__IsWrittenBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWrittenBy) as Company;\r\n }\r\n setIsWrittenBy(value: Company) {\r\n this.__IsWrittenBy = value;\r\n }\r\n get _IsWrittenBy(): string {\r\n return this.Out;\r\n }\r\n set _IsWrittenBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Product\r\n private __Writes: Product;\r\n\r\n Writes(context?: BaseDataContext): Product {\r\n if (this.__Writes)\r\n return this.__Writes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Writes) as Product;\r\n }\r\n setWrites(value: Product) {\r\n this.__Writes = value;\r\n }\r\n get _Writes(): string {\r\n return this.In;\r\n }\r\n set _Writes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): CompanyWritesProduct {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): CompanyWritesProduct {\r\n let clone = new CompanyWritesProduct();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CustomTable extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"CustomTable\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get IsSystem(): boolean {\r\n return this.data.IsSystem;\r\n }\r\n set IsSystem(value: boolean) {\r\n this.data.IsSystem = value;\r\n }\r\n get Created(): Date {\r\n return this.data.Created ? new Date(this.data.Created) : undefined;\r\n }\r\n set Created(value: Date) {\r\n this.data.Created = value;\r\n }\r\n get LastChanged(): Date {\r\n return this.data.LastChanged ? new Date(this.data.LastChanged) : undefined;\r\n }\r\n set LastChanged(value: Date) {\r\n this.data.LastChanged = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): CustomTable {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: CustomTable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n IsSystem: model.IsSystem,\r\n Created: model.Created,\r\n LastChanged: model.LastChanged,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): CustomTable {\r\n let clone = new CustomTable();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class CustomTableRow extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"CustomTableRow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get CustomTableId(): string {\r\n return this.data.CustomTableId;\r\n }\r\n set CustomTableId(value: string) {\r\n this.data.CustomTableId = value;\r\n }\r\n get IsSystem(): boolean {\r\n return this.data.IsSystem;\r\n }\r\n set IsSystem(value: boolean) {\r\n this.data.IsSystem = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): CustomTableRow {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: CustomTableRow) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n CustomTableId: model.CustomTableId,\r\n IsSystem: model.IsSystem,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): CustomTableRow {\r\n let clone = new CustomTableRow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class Dashboard extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Dashboard\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Sections(): any[] {\r\n return this.data.Sections;\r\n }\r\n set Sections(value: any[]) {\r\n this.data.Sections = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): Dashboard {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: Dashboard) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Sections: model.Sections,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Dashboard {\r\n let clone = new Dashboard();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataGroup {\r\n Sequence?: string[],\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n Repeatable: boolean,\r\n ReferenceObject?: string,\r\n ProductId?: string,\r\n readonly IsPredefined: boolean,\r\n DataGroupType?: string,\r\n Tag?: string,\r\n IsDesiredStateAllowed: boolean,\r\n PopulatedBy?: string[],\r\n\r\n RepeatsToSection?: object[],\r\n ChildOf?: object[],\r\n IsContainedBy?: object[],\r\n MailBy?: object[],\r\n ParentOf?: object[],\r\n Contains?: object[],\r\n IsSequencedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataGroup extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataGroup\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataGroup }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Repeatable(): boolean {\r\n return this.data.Repeatable;\r\n }\r\n set Repeatable(value: boolean) {\r\n this.data.Repeatable = value;\r\n }\r\n get ReferenceObject(): string {\r\n return this.data.ReferenceObject;\r\n }\r\n set ReferenceObject(value: string) {\r\n this.data.ReferenceObject = value;\r\n }\r\n get ProductId(): string {\r\n return this.data.ProductId;\r\n }\r\n set ProductId(value: string) {\r\n this.data.ProductId = value;\r\n }\r\n get IsPredefined(): boolean {\r\n return this.data.IsPredefined;\r\n }\r\n get DataGroupType(): string {\r\n return this.data.DataGroupType;\r\n }\r\n set DataGroupType(value: string) {\r\n this.data.DataGroupType = value;\r\n }\r\n get Tag(): string {\r\n return this.data.Tag;\r\n }\r\n set Tag(value: string) {\r\n this.data.Tag = value;\r\n }\r\n get IsDesiredStateAllowed(): boolean {\r\n return this.data.IsDesiredStateAllowed;\r\n }\r\n set IsDesiredStateAllowed(value: boolean) {\r\n this.data.IsDesiredStateAllowed = value;\r\n }\r\n get PopulatedBy(): string[] {\r\n return this.data.PopulatedBy;\r\n }\r\n set PopulatedBy(value: string[]) {\r\n this.data.PopulatedBy = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship RepeatsToSection, returns Section SectionRepeatsWithDataGroup[]\r\n private __RepeatsToSection: SectionRepeatsWithDataGroup[];\r\n RepeatsToSection(_context?: BaseDataContext): SectionRepeatsWithDataGroup[] {\r\n if (this.__RepeatsToSection)\r\n return this.__RepeatsToSection;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._RepeatsToSection), (id) => context.get(id) as SectionRepeatsWithDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRepeatsToSection(values: SectionRepeatsWithDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__RepeatsToSection = values;\r\n }\r\n get _RepeatsToSection(): Set {\r\n if (!this._relationships.has(\"RepeatsToSection\"))\r\n this._relationships.set(\"RepeatsToSection\", new Set());\r\n\r\n return this._relationships.get(\"RepeatsToSection\");\r\n }\r\n set _RepeatsToSection(values: Set) {\r\n this._relationships.set(\"RepeatsToSection\", values);\r\n }\r\n\r\n // Relationship ChildOf, returns DataGroup DataGroupChildDataGroup[]\r\n private __ChildOf: DataGroupChildDataGroup[];\r\n ChildOf(_context?: BaseDataContext): DataGroupChildDataGroup[] {\r\n if (this.__ChildOf)\r\n return this.__ChildOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ChildOf), (id) => context.get(id) as DataGroupChildDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setChildOf(values: DataGroupChildDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ChildOf = values;\r\n }\r\n get _ChildOf(): Set {\r\n if (!this._relationships.has(\"ChildOf\"))\r\n this._relationships.set(\"ChildOf\", new Set());\r\n\r\n return this._relationships.get(\"ChildOf\");\r\n }\r\n set _ChildOf(values: Set) {\r\n this._relationships.set(\"ChildOf\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns DataStore DataStoreContainsDataGroup[]\r\n private __IsContainedBy: DataStoreContainsDataGroup[];\r\n IsContainedBy(_context?: BaseDataContext): DataStoreContainsDataGroup[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as DataStoreContainsDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: DataStoreContainsDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship MailBy, returns TaskCorrespondence TaskCorrespondenceMailToDataGroup[]\r\n private __MailBy: TaskCorrespondenceMailToDataGroup[];\r\n MailBy(_context?: BaseDataContext): TaskCorrespondenceMailToDataGroup[] {\r\n if (this.__MailBy)\r\n return this.__MailBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._MailBy), (id) => context.get(id) as TaskCorrespondenceMailToDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMailBy(values: TaskCorrespondenceMailToDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__MailBy = values;\r\n }\r\n get _MailBy(): Set {\r\n if (!this._relationships.has(\"MailBy\"))\r\n this._relationships.set(\"MailBy\", new Set());\r\n\r\n return this._relationships.get(\"MailBy\");\r\n }\r\n set _MailBy(values: Set) {\r\n this._relationships.set(\"MailBy\", values);\r\n }\r\n\r\n // Relationship ParentOf, returns DataGroup DataGroupChildDataGroup[]\r\n private __ParentOf: DataGroupChildDataGroup[];\r\n ParentOf(_context?: BaseDataContext): DataGroupChildDataGroup[] {\r\n if (this.__ParentOf)\r\n return this.__ParentOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ParentOf), (id) => context.get(id) as DataGroupChildDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setParentOf(values: DataGroupChildDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ParentOf = values;\r\n }\r\n get _ParentOf(): Set {\r\n if (!this._relationships.has(\"ParentOf\"))\r\n this._relationships.set(\"ParentOf\", new Set());\r\n\r\n return this._relationships.get(\"ParentOf\");\r\n }\r\n set _ParentOf(values: Set) {\r\n this._relationships.set(\"ParentOf\", values);\r\n }\r\n\r\n // Relationship Contains, returns DataPoint DataGroupContainsDataPoint[]\r\n private __Contains: DataGroupContainsDataPoint[];\r\n Contains(_context?: BaseDataContext): DataGroupContainsDataPoint[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as DataGroupContainsDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: DataGroupContainsDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n // Relationship IsSequencedBy, returns DataGroupSequence DataGroupIsSequencedByDataGroupSequence[]\r\n private __IsSequencedBy: DataGroupIsSequencedByDataGroupSequence[];\r\n IsSequencedBy(_context?: BaseDataContext): DataGroupIsSequencedByDataGroupSequence[] {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSequencedBy), (id) => context.get(id) as DataGroupIsSequencedByDataGroupSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSequencedBy(values: DataGroupIsSequencedByDataGroupSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSequencedBy = values;\r\n }\r\n get _IsSequencedBy(): Set {\r\n if (!this._relationships.has(\"IsSequencedBy\"))\r\n this._relationships.set(\"IsSequencedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSequencedBy\");\r\n }\r\n set _IsSequencedBy(values: Set) {\r\n this._relationships.set(\"IsSequencedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'RepeatsToSection',\r\n edgeType: SectionRepeatsWithDataGroup,\r\n otherVertexPropertyName: 'RepeatsWith',\r\n otherVertexType: Section,\r\n },\r\n {\r\n propertyName: 'ChildOf',\r\n edgeType: DataGroupChildDataGroup,\r\n otherVertexPropertyName: 'ParentOf',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataStoreContainsDataGroup,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataStore,\r\n },\r\n {\r\n propertyName: 'MailBy',\r\n edgeType: TaskCorrespondenceMailToDataGroup,\r\n otherVertexPropertyName: 'MailTo',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'ParentOf',\r\n edgeType: DataGroupChildDataGroup,\r\n otherVertexPropertyName: 'ChildOf',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'Contains',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n {\r\n propertyName: 'IsSequencedBy',\r\n edgeType: DataGroupIsSequencedByDataGroupSequence,\r\n otherVertexPropertyName: 'Sequences',\r\n otherVertexType: DataGroupSequence,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataGroup {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataGroup) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Repeatable: model.Repeatable,\r\n ReferenceObject: model.ReferenceObject,\r\n ProductId: model.ProductId,\r\n IsPredefined: model.IsPredefined,\r\n DataGroupType: model.DataGroupType,\r\n Tag: model.Tag,\r\n IsDesiredStateAllowed: model.IsDesiredStateAllowed,\r\n PopulatedBy: model.PopulatedBy,\r\n RepeatsToSection: ModelUtils.serializeShallowEdge(model.RepeatsToSection(), 'RepeatsToSection'),\r\n ChildOf: ModelUtils.serializeShallowEdge(model.ChildOf(), 'ChildOf'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n MailBy: ModelUtils.serializeShallowEdge(model.MailBy(), 'MailBy'),\r\n ParentOf: ModelUtils.serializeShallowEdge(model.ParentOf(), 'ParentOf'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n IsSequencedBy: ModelUtils.serializeShallowEdge(model.IsSequencedBy(), 'IsSequencedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataGroup {\r\n let clone = new DataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._RepeatsToSection = _.cloneDeep(this._RepeatsToSection);\r\n clone._ChildOf = _.cloneDeep(this._ChildOf);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._MailBy = _.cloneDeep(this._MailBy);\r\n clone._ParentOf = _.cloneDeep(this._ParentOf);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n clone._IsSequencedBy = _.cloneDeep(this._IsSequencedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class DataGroupChildDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupChildDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataGroup\r\n private __ChildOf: DataGroup;\r\n\r\n ChildOf(context?: BaseDataContext): DataGroup {\r\n if (this.__ChildOf)\r\n return this.__ChildOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ChildOf) as DataGroup;\r\n }\r\n setChildOf(value: DataGroup) {\r\n this.__ChildOf = value;\r\n }\r\n get _ChildOf(): string {\r\n return this.Out;\r\n }\r\n set _ChildOf(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __ParentOf: DataGroup;\r\n\r\n ParentOf(context?: BaseDataContext): DataGroup {\r\n if (this.__ParentOf)\r\n return this.__ParentOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ParentOf) as DataGroup;\r\n }\r\n setParentOf(value: DataGroup) {\r\n this.__ParentOf = value;\r\n }\r\n get _ParentOf(): string {\r\n return this.In;\r\n }\r\n set _ParentOf(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataGroupChildDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataGroupChildDataGroup {\r\n let clone = new DataGroupChildDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataGroupContainsDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupContainsDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataGroup\r\n private __IsContainedBy: DataGroup;\r\n\r\n IsContainedBy(context?: BaseDataContext): DataGroup {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as DataGroup;\r\n }\r\n setIsContainedBy(value: DataGroup) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __Contains: DataPoint;\r\n\r\n Contains(context?: BaseDataContext): DataPoint {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as DataPoint;\r\n }\r\n setContains(value: DataPoint) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataGroupContainsDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataGroupContainsDataPoint {\r\n let clone = new DataGroupContainsDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataGroupIsSequencedByDataGroupSequence extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupIsSequencedByDataGroupSequence\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataGroup\r\n private __Sequences: DataGroup;\r\n\r\n Sequences(context?: BaseDataContext): DataGroup {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sequences) as DataGroup;\r\n }\r\n setSequences(value: DataGroup) {\r\n this.__Sequences = value;\r\n }\r\n get _Sequences(): string {\r\n return this.Out;\r\n }\r\n set _Sequences(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroupSequence\r\n private __IsSequencedBy: DataGroupSequence;\r\n\r\n IsSequencedBy(context?: BaseDataContext): DataGroupSequence {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSequencedBy) as DataGroupSequence;\r\n }\r\n setIsSequencedBy(value: DataGroupSequence) {\r\n this.__IsSequencedBy = value;\r\n }\r\n get _IsSequencedBy(): string {\r\n return this.In;\r\n }\r\n set _IsSequencedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataGroupIsSequencedByDataGroupSequence {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataGroupIsSequencedByDataGroupSequence {\r\n let clone = new DataGroupIsSequencedByDataGroupSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataGroupSequence {\r\n Sequence?: string[],\r\n Id: string\r\n\r\n Sequences?: object[]\r\n\r\n}\r\n\r\nexport class DataGroupSequence extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataGroupSequence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataGroupSequence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Sequences, returns DataGroup DataGroupIsSequencedByDataGroupSequence[]\r\n private __Sequences: DataGroupIsSequencedByDataGroupSequence[];\r\n Sequences(_context?: BaseDataContext): DataGroupIsSequencedByDataGroupSequence[] {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sequences), (id) => context.get(id) as DataGroupIsSequencedByDataGroupSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSequences(values: DataGroupIsSequencedByDataGroupSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sequences = values;\r\n }\r\n get _Sequences(): Set {\r\n if (!this._relationships.has(\"Sequences\"))\r\n this._relationships.set(\"Sequences\", new Set());\r\n\r\n return this._relationships.get(\"Sequences\");\r\n }\r\n set _Sequences(values: Set) {\r\n this._relationships.set(\"Sequences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Sequences',\r\n edgeType: DataGroupIsSequencedByDataGroupSequence,\r\n otherVertexPropertyName: 'IsSequencedBy',\r\n otherVertexType: DataGroup,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataGroupSequence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataGroupSequence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Sequences: ModelUtils.serializeShallowEdge(model.Sequences(), 'Sequences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataGroupSequence {\r\n let clone = new DataGroupSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Sequences = _.cloneDeep(this._Sequences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class DataPanelUsesWidget extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPanelUsesWidget\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataPanel\r\n private __IsUsedBy: DataPanel;\r\n\r\n IsUsedBy(context?: BaseDataContext): DataPanel {\r\n if (this.__IsUsedBy)\r\n return this.__IsUsedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsUsedBy) as DataPanel;\r\n }\r\n setIsUsedBy(value: DataPanel) {\r\n this.__IsUsedBy = value;\r\n }\r\n get _IsUsedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsUsedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Widget\r\n private __Uses: Widget;\r\n\r\n Uses(context?: BaseDataContext): Widget {\r\n if (this.__Uses)\r\n return this.__Uses;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Uses) as Widget;\r\n }\r\n setUses(value: Widget) {\r\n this.__Uses = value;\r\n }\r\n get _Uses(): string {\r\n return this.In;\r\n }\r\n set _Uses(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataPanelUsesWidget {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataPanelUsesWidget {\r\n let clone = new DataPanelUsesWidget();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataStoreContainsDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataStoreContainsDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataStore\r\n private __IsContainedBy: DataStore;\r\n\r\n IsContainedBy(context?: BaseDataContext): DataStore {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as DataStore;\r\n }\r\n setIsContainedBy(value: DataStore) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __Contains: DataGroup;\r\n\r\n Contains(context?: BaseDataContext): DataGroup {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as DataGroup;\r\n }\r\n setContains(value: DataGroup) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataStoreContainsDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataStoreContainsDataGroup {\r\n let clone = new DataStoreContainsDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class DataStoreIsSequencedByDataStoreSequence extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataStoreIsSequencedByDataStoreSequence\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to DataStore\r\n private __Sequences: DataStore;\r\n\r\n Sequences(context?: BaseDataContext): DataStore {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sequences) as DataStore;\r\n }\r\n setSequences(value: DataStore) {\r\n this.__Sequences = value;\r\n }\r\n get _Sequences(): string {\r\n return this.Out;\r\n }\r\n set _Sequences(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStoreSequence\r\n private __IsSequencedBy: DataStoreSequence;\r\n\r\n IsSequencedBy(context?: BaseDataContext): DataStoreSequence {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSequencedBy) as DataStoreSequence;\r\n }\r\n setIsSequencedBy(value: DataStoreSequence) {\r\n this.__IsSequencedBy = value;\r\n }\r\n get _IsSequencedBy(): string {\r\n return this.In;\r\n }\r\n set _IsSequencedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): DataStoreIsSequencedByDataStoreSequence {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): DataStoreIsSequencedByDataStoreSequence {\r\n let clone = new DataStoreIsSequencedByDataStoreSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IDataStoreSequence {\r\n Sequence?: string[],\r\n Id: string\r\n\r\n Sequences?: object[]\r\n\r\n}\r\n\r\nexport class DataStoreSequence extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataStoreSequence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataStoreSequence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Sequences, returns DataStore DataStoreIsSequencedByDataStoreSequence[]\r\n private __Sequences: DataStoreIsSequencedByDataStoreSequence[];\r\n Sequences(_context?: BaseDataContext): DataStoreIsSequencedByDataStoreSequence[] {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sequences), (id) => context.get(id) as DataStoreIsSequencedByDataStoreSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSequences(values: DataStoreIsSequencedByDataStoreSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sequences = values;\r\n }\r\n get _Sequences(): Set {\r\n if (!this._relationships.has(\"Sequences\"))\r\n this._relationships.set(\"Sequences\", new Set());\r\n\r\n return this._relationships.get(\"Sequences\");\r\n }\r\n set _Sequences(values: Set) {\r\n this._relationships.set(\"Sequences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Sequences',\r\n edgeType: DataStoreIsSequencedByDataStoreSequence,\r\n otherVertexPropertyName: 'IsSequencedBy',\r\n otherVertexType: DataStore,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataStoreSequence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataStoreSequence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Sequences: ModelUtils.serializeShallowEdge(model.Sequences(), 'Sequences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataStoreSequence {\r\n let clone = new DataStoreSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Sequences = _.cloneDeep(this._Sequences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDeployable {\r\n Id: string,\r\n readonly DeploymentStatus?: string,\r\n UndeployedDate?: Date,\r\n UndeployedBy?: string\r\n\r\n DeployedTo?: object[]\r\n\r\n}\r\n\r\nexport class Deployable extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Deployable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Deployable }[] = [\r\n {className: 'ProgramPatch', type: ProgramPatch},\r\n {className: 'ProgramRevision', type: ProgramRevision},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DeploymentStatus(): string {\r\n return this.data.DeploymentStatus;\r\n }\r\n get UndeployedDate(): Date {\r\n return this.data.UndeployedDate ? new Date(this.data.UndeployedDate) : undefined;\r\n }\r\n set UndeployedDate(value: Date) {\r\n this.data.UndeployedDate = value;\r\n }\r\n get UndeployedBy(): string {\r\n return this.data.UndeployedBy;\r\n }\r\n set UndeployedBy(value: string) {\r\n this.data.UndeployedBy = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship DeployedTo, returns Area AreaDeploysDeployable[]\r\n private __DeployedTo: AreaDeploysDeployable[];\r\n DeployedTo(_context?: BaseDataContext): AreaDeploysDeployable[] {\r\n if (this.__DeployedTo)\r\n return this.__DeployedTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeployedTo), (id) => context.get(id) as AreaDeploysDeployable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeployedTo(values: AreaDeploysDeployable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeployedTo = values;\r\n }\r\n get _DeployedTo(): Set {\r\n if (!this._relationships.has(\"DeployedTo\"))\r\n this._relationships.set(\"DeployedTo\", new Set());\r\n\r\n return this._relationships.get(\"DeployedTo\");\r\n }\r\n set _DeployedTo(values: Set) {\r\n this._relationships.set(\"DeployedTo\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'DeployedTo',\r\n edgeType: AreaDeploysDeployable,\r\n otherVertexPropertyName: 'Deploys',\r\n otherVertexType: Area,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Deployable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Deployable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DeploymentStatus: model.DeploymentStatus,\r\n UndeployedDate: model.UndeployedDate,\r\n UndeployedBy: model.UndeployedBy,\r\n DeployedTo: ModelUtils.serializeShallowEdge(model.DeployedTo(), 'DeployedTo'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Deployable {\r\n let clone = new Deployable();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._DeployedTo = _.cloneDeep(this._DeployedTo);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDocumentCategory {\r\n Id: string,\r\n Category: string,\r\n Description: string,\r\n DateLabel: string,\r\n Status?: string\r\n\r\n IsAllowedBy?: object[],\r\n AttachedBy?: object[]\r\n\r\n}\r\n\r\nexport class DocumentCategory extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DocumentCategory\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DocumentCategory }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Category(): string {\r\n return this.data.Category;\r\n }\r\n set Category(value: string) {\r\n this.data.Category = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get DateLabel(): string {\r\n return this.data.DateLabel;\r\n }\r\n set DateLabel(value: string) {\r\n this.data.DateLabel = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n set Status(value: string) {\r\n this.data.Status = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsAllowedBy, returns Program ProgramAllowsDocumentCategory[]\r\n private __IsAllowedBy: ProgramAllowsDocumentCategory[];\r\n IsAllowedBy(_context?: BaseDataContext): ProgramAllowsDocumentCategory[] {\r\n if (this.__IsAllowedBy)\r\n return this.__IsAllowedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsAllowedBy), (id) => context.get(id) as ProgramAllowsDocumentCategory);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsAllowedBy(values: ProgramAllowsDocumentCategory[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsAllowedBy = values;\r\n }\r\n get _IsAllowedBy(): Set {\r\n if (!this._relationships.has(\"IsAllowedBy\"))\r\n this._relationships.set(\"IsAllowedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsAllowedBy\");\r\n }\r\n set _IsAllowedBy(values: Set) {\r\n this._relationships.set(\"IsAllowedBy\", values);\r\n }\r\n\r\n // Relationship AttachedBy, returns TaskCorrespondence TaskCorrespondenceAttachesDocumentCategory[]\r\n private __AttachedBy: TaskCorrespondenceAttachesDocumentCategory[];\r\n AttachedBy(_context?: BaseDataContext): TaskCorrespondenceAttachesDocumentCategory[] {\r\n if (this.__AttachedBy)\r\n return this.__AttachedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._AttachedBy), (id) => context.get(id) as TaskCorrespondenceAttachesDocumentCategory);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAttachedBy(values: TaskCorrespondenceAttachesDocumentCategory[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__AttachedBy = values;\r\n }\r\n get _AttachedBy(): Set {\r\n if (!this._relationships.has(\"AttachedBy\"))\r\n this._relationships.set(\"AttachedBy\", new Set());\r\n\r\n return this._relationships.get(\"AttachedBy\");\r\n }\r\n set _AttachedBy(values: Set) {\r\n this._relationships.set(\"AttachedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsAllowedBy',\r\n edgeType: ProgramAllowsDocumentCategory,\r\n otherVertexPropertyName: 'Allows',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'AttachedBy',\r\n edgeType: TaskCorrespondenceAttachesDocumentCategory,\r\n otherVertexPropertyName: 'Attaches',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DocumentCategory {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DocumentCategory) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Category: model.Category,\r\n Description: model.Description,\r\n DateLabel: model.DateLabel,\r\n Status: model.Status,\r\n IsAllowedBy: ModelUtils.serializeShallowEdge(model.IsAllowedBy(), 'IsAllowedBy'),\r\n AttachedBy: ModelUtils.serializeShallowEdge(model.AttachedBy(), 'AttachedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DocumentCategory {\r\n let clone = new DocumentCategory();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsAllowedBy = _.cloneDeep(this._IsAllowedBy);\r\n clone._AttachedBy = _.cloneDeep(this._AttachedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IElement {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[]\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[]\r\n\r\n}\r\n\r\nexport class Element extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Element\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Element }[] = [\r\n {className: 'DateField', type: DateField},\r\n {className: 'Field', type: Field},\r\n {className: 'DecimalField', type: DecimalField},\r\n {className: 'EmailField', type: EmailField},\r\n {className: 'StringField', type: StringField},\r\n {className: 'IntegerField', type: IntegerField},\r\n {className: 'ListOfStringsField', type: ListOfStringsField},\r\n {className: 'MoneyField', type: MoneyField},\r\n {className: 'PhoneField', type: PhoneField},\r\n {className: 'Section', type: Section},\r\n {className: 'StaticElement', type: StaticElement},\r\n {className: 'StaticText', type: StaticText},\r\n {className: 'TimestampField', type: TimestampField},\r\n {className: 'UrlField', type: UrlField},\r\n {className: 'YearField', type: YearField},\r\n {className: 'YesNoField', type: YesNoField},\r\n {className: 'ZipcodeField', type: ZipcodeField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DisplayLabel(): string {\r\n return this.data.DisplayLabel;\r\n }\r\n set DisplayLabel(value: string) {\r\n this.data.DisplayLabel = value;\r\n }\r\n get ShowHelp(): boolean {\r\n return this.data.ShowHelp;\r\n }\r\n set ShowHelp(value: boolean) {\r\n this.data.ShowHelp = value;\r\n }\r\n get Help(): string {\r\n return this.data.Help;\r\n }\r\n set Help(value: string) {\r\n this.data.Help = value;\r\n }\r\n get ConditionMet(): boolean {\r\n return this.data.ConditionMet;\r\n }\r\n get ExternalId(): string {\r\n return this.data.ExternalId;\r\n }\r\n set ExternalId(value: string) {\r\n this.data.ExternalId = value;\r\n }\r\n get EnableListView(): boolean {\r\n return this.data.EnableListView;\r\n }\r\n set EnableListView(value: boolean) {\r\n this.data.EnableListView = value;\r\n }\r\n get DefaultConditionMet(): boolean {\r\n return this.data.DefaultConditionMet;\r\n }\r\n set DefaultConditionMet(value: boolean) {\r\n this.data.DefaultConditionMet = value;\r\n }\r\n get ScriptFunction(): string {\r\n return this.data.ScriptFunction;\r\n }\r\n set ScriptFunction(value: string) {\r\n this.data.ScriptFunction = value;\r\n }\r\n get InputSources(): any[] {\r\n return this.data.InputSources;\r\n }\r\n set InputSources(value: any[]) {\r\n this.data.InputSources = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEnabledBy, returns ElementCondition ElementConditionEnablesElement[]\r\n private __IsEnabledBy: ElementConditionEnablesElement[];\r\n IsEnabledBy(_context?: BaseDataContext): ElementConditionEnablesElement[] {\r\n if (this.__IsEnabledBy)\r\n return this.__IsEnabledBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEnabledBy), (id) => context.get(id) as ElementConditionEnablesElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEnabledBy(values: ElementConditionEnablesElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEnabledBy = values;\r\n }\r\n get _IsEnabledBy(): Set {\r\n if (!this._relationships.has(\"IsEnabledBy\"))\r\n this._relationships.set(\"IsEnabledBy\", new Set());\r\n\r\n return this._relationships.get(\"IsEnabledBy\");\r\n }\r\n set _IsEnabledBy(values: Set) {\r\n this._relationships.set(\"IsEnabledBy\", values);\r\n }\r\n\r\n // Relationship IsDisplayedBy, returns Section SectionDisplaysElement[]\r\n private __IsDisplayedBy: SectionDisplaysElement[];\r\n IsDisplayedBy(_context?: BaseDataContext): SectionDisplaysElement[] {\r\n if (this.__IsDisplayedBy)\r\n return this.__IsDisplayedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsDisplayedBy), (id) => context.get(id) as SectionDisplaysElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsDisplayedBy(values: SectionDisplaysElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsDisplayedBy = values;\r\n }\r\n get _IsDisplayedBy(): Set {\r\n if (!this._relationships.has(\"IsDisplayedBy\"))\r\n this._relationships.set(\"IsDisplayedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsDisplayedBy\");\r\n }\r\n set _IsDisplayedBy(values: Set) {\r\n this._relationships.set(\"IsDisplayedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Element {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Element) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Element {\r\n let clone = new Element();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IElementCondition {\r\n Id: string,\r\n Name?: string,\r\n Description?: string,\r\n DefaultConditionMet: boolean,\r\n\r\n IsContainedBy?: object[],\r\n Enables?: object[],\r\n Evaluates?: object[]\r\n\r\n}\r\n\r\nexport class ElementCondition extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ElementCondition\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ElementCondition }[] = [\r\n {className: 'ScriptCondition', type: ScriptCondition},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get DefaultConditionMet(): boolean {\r\n return this.data.DefaultConditionMet;\r\n }\r\n set DefaultConditionMet(value: boolean) {\r\n this.data.DefaultConditionMet = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsContainedBy, returns Application ApplicationContainsElementCondition[]\r\n private __IsContainedBy: ApplicationContainsElementCondition[];\r\n IsContainedBy(_context?: BaseDataContext): ApplicationContainsElementCondition[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as ApplicationContainsElementCondition);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: ApplicationContainsElementCondition[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship Enables, returns Element ElementConditionEnablesElement[]\r\n private __Enables: ElementConditionEnablesElement[];\r\n Enables(_context?: BaseDataContext): ElementConditionEnablesElement[] {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Enables), (id) => context.get(id) as ElementConditionEnablesElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEnables(values: ElementConditionEnablesElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Enables = values;\r\n }\r\n get _Enables(): Set {\r\n if (!this._relationships.has(\"Enables\"))\r\n this._relationships.set(\"Enables\", new Set());\r\n\r\n return this._relationships.get(\"Enables\");\r\n }\r\n set _Enables(values: Set) {\r\n this._relationships.set(\"Enables\", values);\r\n }\r\n\r\n // Relationship Evaluates, returns DataPoint ElementConditionEvaluatesDataPoint[]\r\n private __Evaluates: ElementConditionEvaluatesDataPoint[];\r\n Evaluates(_context?: BaseDataContext): ElementConditionEvaluatesDataPoint[] {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Evaluates), (id) => context.get(id) as ElementConditionEvaluatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEvaluates(values: ElementConditionEvaluatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Evaluates = values;\r\n }\r\n get _Evaluates(): Set {\r\n if (!this._relationships.has(\"Evaluates\"))\r\n this._relationships.set(\"Evaluates\", new Set());\r\n\r\n return this._relationships.get(\"Evaluates\");\r\n }\r\n set _Evaluates(values: Set) {\r\n this._relationships.set(\"Evaluates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: ApplicationContainsElementCondition,\r\n otherVertexPropertyName: 'ContainsCondition',\r\n otherVertexType: Application,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Enables',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'IsEnabledBy',\r\n otherVertexType: Element,\r\n },\r\n {\r\n propertyName: 'Evaluates',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'IsEvaluatedForCondition',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ElementCondition {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ElementCondition) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n Evaluates: ModelUtils.serializeShallowEdge(model.Evaluates(), 'Evaluates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ElementCondition {\r\n let clone = new ElementCondition();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n clone._Evaluates = _.cloneDeep(this._Evaluates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ElementConditionEnablesElement extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ElementConditionEnablesElement\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ElementCondition\r\n private __IsEnabledBy: ElementCondition;\r\n\r\n IsEnabledBy(context?: BaseDataContext): ElementCondition {\r\n if (this.__IsEnabledBy)\r\n return this.__IsEnabledBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEnabledBy) as ElementCondition;\r\n }\r\n setIsEnabledBy(value: ElementCondition) {\r\n this.__IsEnabledBy = value;\r\n }\r\n get _IsEnabledBy(): string {\r\n return this.Out;\r\n }\r\n set _IsEnabledBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Element\r\n private __Enables: Element;\r\n\r\n Enables(context?: BaseDataContext): Element {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Enables) as Element;\r\n }\r\n setEnables(value: Element) {\r\n this.__Enables = value;\r\n }\r\n get _Enables(): string {\r\n return this.In;\r\n }\r\n set _Enables(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ElementConditionEnablesElement {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ElementConditionEnablesElement {\r\n let clone = new ElementConditionEnablesElement();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ElementConditionEvaluatesDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ElementConditionEvaluatesDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get InputLabel(): string {\r\n return this.data.InputLabel;\r\n }\r\n set InputLabel(value: string) {\r\n this.data.InputLabel = value;\r\n }\r\n get FromRepeatable(): boolean {\r\n return this.data.FromRepeatable;\r\n }\r\n set FromRepeatable(value: boolean) {\r\n this.data.FromRepeatable = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ElementCondition\r\n private __IsEvaluatedForCondition: ElementCondition;\r\n\r\n IsEvaluatedForCondition(context?: BaseDataContext): ElementCondition {\r\n if (this.__IsEvaluatedForCondition)\r\n return this.__IsEvaluatedForCondition;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEvaluatedForCondition) as ElementCondition;\r\n }\r\n setIsEvaluatedForCondition(value: ElementCondition) {\r\n this.__IsEvaluatedForCondition = value;\r\n }\r\n get _IsEvaluatedForCondition(): string {\r\n return this.Out;\r\n }\r\n set _IsEvaluatedForCondition(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __Evaluates: DataPoint;\r\n\r\n Evaluates(context?: BaseDataContext): DataPoint {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Evaluates) as DataPoint;\r\n }\r\n setEvaluates(value: DataPoint) {\r\n this.__Evaluates = value;\r\n }\r\n get _Evaluates(): string {\r\n return this.In;\r\n }\r\n set _Evaluates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ElementConditionEvaluatesDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ElementConditionEvaluatesDataPoint {\r\n let clone = new ElementConditionEvaluatesDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IEmailTemplate {\r\n Id: string,\r\n Subject: string,\r\n HtmlBody: string,\r\n Name: string,\r\n Description: string,\r\n DataParameters?: string[],\r\n DocumentParameters?: string[],\r\n CanDelete: boolean\r\n\r\n MessagedBy?: object[]\r\n\r\n}\r\n\r\nexport class EmailTemplate extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"EmailTemplate\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof EmailTemplate }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Subject(): string {\r\n return this.data.Subject;\r\n }\r\n set Subject(value: string) {\r\n this.data.Subject = value;\r\n }\r\n get HtmlBody(): string {\r\n return this.data.HtmlBody;\r\n }\r\n set HtmlBody(value: string) {\r\n this.data.HtmlBody = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get DataParameters(): string[] {\r\n return this.data.DataParameters;\r\n }\r\n set DataParameters(value: string[]) {\r\n this.data.DataParameters = value;\r\n }\r\n get DocumentParameters(): string[] {\r\n return this.data.DocumentParameters;\r\n }\r\n set DocumentParameters(value: string[]) {\r\n this.data.DocumentParameters = value;\r\n }\r\n get CanDelete(): boolean {\r\n return this.data.CanDelete;\r\n }\r\n set CanDelete(value: boolean) {\r\n this.data.CanDelete = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship MessagedBy, returns TaskCorrespondence TaskCorrespondenceMessagesEmailTemplate[]\r\n private __MessagedBy: TaskCorrespondenceMessagesEmailTemplate[];\r\n MessagedBy(_context?: BaseDataContext): TaskCorrespondenceMessagesEmailTemplate[] {\r\n if (this.__MessagedBy)\r\n return this.__MessagedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._MessagedBy), (id) => context.get(id) as TaskCorrespondenceMessagesEmailTemplate);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMessagedBy(values: TaskCorrespondenceMessagesEmailTemplate[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__MessagedBy = values;\r\n }\r\n get _MessagedBy(): Set {\r\n if (!this._relationships.has(\"MessagedBy\"))\r\n this._relationships.set(\"MessagedBy\", new Set());\r\n\r\n return this._relationships.get(\"MessagedBy\");\r\n }\r\n set _MessagedBy(values: Set) {\r\n this._relationships.set(\"MessagedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'MessagedBy',\r\n edgeType: TaskCorrespondenceMessagesEmailTemplate,\r\n otherVertexPropertyName: 'Messages',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): EmailTemplate {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: EmailTemplate) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Subject: model.Subject,\r\n HtmlBody: model.HtmlBody,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DataParameters: model.DataParameters,\r\n DocumentParameters: model.DocumentParameters,\r\n CanDelete: model.CanDelete,\r\n MessagedBy: ModelUtils.serializeShallowEdge(model.MessagedBy(), 'MessagedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): EmailTemplate {\r\n let clone = new EmailTemplate();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._MessagedBy = _.cloneDeep(this._MessagedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class FeatureFacet extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"FeatureFacet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Code(): string {\r\n return this.data.Code;\r\n }\r\n set Code(value: string) {\r\n this.data.Code = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get FacetType(): string {\r\n return this.data.FacetType;\r\n }\r\n set FacetType(value: string) {\r\n this.data.FacetType = value;\r\n }\r\n get Deprecated(): boolean {\r\n return this.data.Deprecated;\r\n }\r\n set Deprecated(value: boolean) {\r\n this.data.Deprecated = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): FeatureFacet {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: FeatureFacet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Code: model.Code,\r\n Name: model.Name,\r\n Description: model.Description,\r\n FacetType: model.FacetType,\r\n Deprecated: model.Deprecated,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): FeatureFacet {\r\n let clone = new FeatureFacet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class FieldPopulatesDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"FieldPopulatesDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Field\r\n private __IsPopulatedBy: Field;\r\n\r\n IsPopulatedBy(context?: BaseDataContext): Field {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPopulatedBy) as Field;\r\n }\r\n setIsPopulatedBy(value: Field) {\r\n this.__IsPopulatedBy = value;\r\n }\r\n get _IsPopulatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPopulatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __Populates: DataPoint;\r\n\r\n Populates(context?: BaseDataContext): DataPoint {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Populates) as DataPoint;\r\n }\r\n setPopulates(value: DataPoint) {\r\n this.__Populates = value;\r\n }\r\n get _Populates(): string {\r\n return this.In;\r\n }\r\n set _Populates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): FieldPopulatesDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): FieldPopulatesDataPoint {\r\n let clone = new FieldPopulatesDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class Holiday extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Holiday\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Date(): ContractDate {\r\n this.data.Date = ModelUtils.deserializeContractDate(this.data.Date);\r\n return this.data.Date;\r\n }\r\n set Date(value: ContractDate) {\r\n this.data.Date = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): Holiday {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: Holiday) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Date: ModelUtils.serializeContractDate(model.data.Date),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Holiday {\r\n let clone = new Holiday();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IMappable {\r\n Id: string,\r\n DataType: string\r\n\r\n\r\n\r\n}\r\n\r\nexport class Mappable extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Mappable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Mappable }[] = [\r\n {className: 'DataPoint', type: DataPoint},\r\n {className: 'DataPointDate', type: DataPointDate},\r\n {className: 'DataPointDecimal', type: DataPointDecimal},\r\n {className: 'DataPointEmail', type: DataPointEmail},\r\n {className: 'DataPointString', type: DataPointString},\r\n {className: 'DataPointInteger', type: DataPointInteger},\r\n {className: 'DataPointListOfStrings', type: DataPointListOfStrings},\r\n {className: 'DataPointMoney', type: DataPointMoney},\r\n {className: 'DataPointPhone', type: DataPointPhone},\r\n {className: 'DataPointTimestamp', type: DataPointTimestamp},\r\n {className: 'DataPointUrl', type: DataPointUrl},\r\n {className: 'DataPointYear', type: DataPointYear},\r\n {className: 'DataPointYesNo', type: DataPointYesNo},\r\n {className: 'DataPointZipcode', type: DataPointZipcode},\r\n {className: 'Rule', type: Rule},\r\n {className: 'RuleDateTime', type: RuleDateTime},\r\n {className: 'RuleProductSelection', type: RuleProductSelection},\r\n {className: 'RuleRiskAssessment', type: RuleRiskAssessment},\r\n {className: 'RuleRoleAssignment', type: RuleRoleAssignment},\r\n {className: 'RuleTaskObligation', type: RuleTaskObligation},\r\n {className: 'RuleWorkflowSetStatus', type: RuleWorkflowSetStatus},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DataType(): string {\r\n return this.data.DataType;\r\n }\r\n set DataType(value: string) {\r\n this.data.DataType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Mappable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Mappable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Mappable {\r\n let clone = new Mappable();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface INotification {\r\n Id: string,\r\n Message: string,\r\n Description: string,\r\n ExpirationDate?: Date,\r\n EventId: string,\r\n IdentityKey: string,\r\n Subtitles?: any[],\r\n NotificationType?: string,\r\n ContextIds?: { [index: string]: string }\r\n\r\n Alerts?: object[]\r\n\r\n}\r\n\r\nexport class Notification extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Notification\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Notification }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Message(): string {\r\n return this.data.Message;\r\n }\r\n set Message(value: string) {\r\n this.data.Message = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get ExpirationDate(): Date {\r\n return this.data.ExpirationDate ? new Date(this.data.ExpirationDate) : undefined;\r\n }\r\n set ExpirationDate(value: Date) {\r\n this.data.ExpirationDate = value;\r\n }\r\n get EventId(): string {\r\n return this.data.EventId;\r\n }\r\n set EventId(value: string) {\r\n this.data.EventId = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get Subtitles(): any[] {\r\n return this.data.Subtitles;\r\n }\r\n set Subtitles(value: any[]) {\r\n this.data.Subtitles = value;\r\n }\r\n get NotificationType(): string {\r\n return this.data.NotificationType;\r\n }\r\n set NotificationType(value: string) {\r\n this.data.NotificationType = value;\r\n }\r\n get ContextIds(): { [index: string]: string } {\r\n return this.data.ContextIds;\r\n }\r\n set ContextIds(value: { [index: string]: string }) {\r\n this.data.ContextIds = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Alerts, returns UserNotificationCenter UserNotificationCenterIsAlertedByNotification[]\r\n private __Alerts: UserNotificationCenterIsAlertedByNotification[];\r\n Alerts(_context?: BaseDataContext): UserNotificationCenterIsAlertedByNotification[] {\r\n if (this.__Alerts)\r\n return this.__Alerts;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Alerts), (id) => context.get(id) as UserNotificationCenterIsAlertedByNotification);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAlerts(values: UserNotificationCenterIsAlertedByNotification[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Alerts = values;\r\n }\r\n get _Alerts(): Set {\r\n if (!this._relationships.has(\"Alerts\"))\r\n this._relationships.set(\"Alerts\", new Set());\r\n\r\n return this._relationships.get(\"Alerts\");\r\n }\r\n set _Alerts(values: Set) {\r\n this._relationships.set(\"Alerts\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Alerts',\r\n edgeType: UserNotificationCenterIsAlertedByNotification,\r\n otherVertexPropertyName: 'IsAlertedBy',\r\n otherVertexType: UserNotificationCenter,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Notification {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Notification) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Message: model.Message,\r\n Description: model.Description,\r\n ExpirationDate: model.ExpirationDate,\r\n EventId: model.EventId,\r\n IdentityKey: model.IdentityKey,\r\n Subtitles: model.Subtitles,\r\n NotificationType: model.NotificationType,\r\n ContextIds: model.ContextIds,\r\n Alerts: ModelUtils.serializeShallowEdge(model.Alerts(), 'Alerts'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Notification {\r\n let clone = new Notification();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Alerts = _.cloneDeep(this._Alerts);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class PhaseIsSequencedByPhaseSequence extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"PhaseIsSequencedByPhaseSequence\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Phase\r\n private __Sequences: Phase;\r\n\r\n Sequences(context?: BaseDataContext): Phase {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sequences) as Phase;\r\n }\r\n setSequences(value: Phase) {\r\n this.__Sequences = value;\r\n }\r\n get _Sequences(): string {\r\n return this.Out;\r\n }\r\n set _Sequences(value: string) {\r\n this.Out = value;\r\n }\r\n // In to PhaseSequence\r\n private __IsSequencedBy: PhaseSequence;\r\n\r\n IsSequencedBy(context?: BaseDataContext): PhaseSequence {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSequencedBy) as PhaseSequence;\r\n }\r\n setIsSequencedBy(value: PhaseSequence) {\r\n this.__IsSequencedBy = value;\r\n }\r\n get _IsSequencedBy(): string {\r\n return this.In;\r\n }\r\n set _IsSequencedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PhaseIsSequencedByPhaseSequence {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PhaseIsSequencedByPhaseSequence {\r\n let clone = new PhaseIsSequencedByPhaseSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class PhaseRequiresTask extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"PhaseRequiresTask\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Phase\r\n private __IsRequiredFor: Phase;\r\n\r\n IsRequiredFor(context?: BaseDataContext): Phase {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRequiredFor) as Phase;\r\n }\r\n setIsRequiredFor(value: Phase) {\r\n this.__IsRequiredFor = value;\r\n }\r\n get _IsRequiredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsRequiredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Task\r\n private __Requires: Task;\r\n\r\n Requires(context?: BaseDataContext): Task {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Requires) as Task;\r\n }\r\n setRequires(value: Task) {\r\n this.__Requires = value;\r\n }\r\n get _Requires(): string {\r\n return this.In;\r\n }\r\n set _Requires(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): PhaseRequiresTask {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): PhaseRequiresTask {\r\n let clone = new PhaseRequiresTask();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IPhaseSequence {\r\n Sequence?: string[],\r\n Id: string\r\n\r\n Sequences?: object[]\r\n\r\n}\r\n\r\nexport class PhaseSequence extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"PhaseSequence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof PhaseSequence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Sequences, returns Phase PhaseIsSequencedByPhaseSequence[]\r\n private __Sequences: PhaseIsSequencedByPhaseSequence[];\r\n Sequences(_context?: BaseDataContext): PhaseIsSequencedByPhaseSequence[] {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sequences), (id) => context.get(id) as PhaseIsSequencedByPhaseSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSequences(values: PhaseIsSequencedByPhaseSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sequences = values;\r\n }\r\n get _Sequences(): Set {\r\n if (!this._relationships.has(\"Sequences\"))\r\n this._relationships.set(\"Sequences\", new Set());\r\n\r\n return this._relationships.get(\"Sequences\");\r\n }\r\n set _Sequences(values: Set) {\r\n this._relationships.set(\"Sequences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Sequences',\r\n edgeType: PhaseIsSequencedByPhaseSequence,\r\n otherVertexPropertyName: 'IsSequencedBy',\r\n otherVertexType: Phase,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): PhaseSequence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: PhaseSequence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Sequences: ModelUtils.serializeShallowEdge(model.Sequences(), 'Sequences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): PhaseSequence {\r\n let clone = new PhaseSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Sequences = _.cloneDeep(this._Sequences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class Prioritization extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Prioritization\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get PrioritizationTypeOrder(): string[] {\r\n return this.data.PrioritizationTypeOrder;\r\n }\r\n set PrioritizationTypeOrder(value: string[]) {\r\n this.data.PrioritizationTypeOrder = value;\r\n }\r\n get DeadlineImminentValue(): number {\r\n return this.data.DeadlineImminentValue;\r\n }\r\n set DeadlineImminentValue(value: number) {\r\n this.data.DeadlineImminentValue = value;\r\n }\r\n get DeadlineImminentUnitOfTime(): string {\r\n return this.data.DeadlineImminentUnitOfTime;\r\n }\r\n set DeadlineImminentUnitOfTime(value: string) {\r\n this.data.DeadlineImminentUnitOfTime = value;\r\n }\r\n get DueDateImminentValue(): number {\r\n return this.data.DueDateImminentValue;\r\n }\r\n set DueDateImminentValue(value: number) {\r\n this.data.DueDateImminentValue = value;\r\n }\r\n get DueDateImminentUnitOfTime(): string {\r\n return this.data.DueDateImminentUnitOfTime;\r\n }\r\n set DueDateImminentUnitOfTime(value: string) {\r\n this.data.DueDateImminentUnitOfTime = value;\r\n }\r\n get ServiceLevelImminentValue(): number {\r\n return this.data.ServiceLevelImminentValue;\r\n }\r\n set ServiceLevelImminentValue(value: number) {\r\n this.data.ServiceLevelImminentValue = value;\r\n }\r\n get ServiceLevelImminentUnitOfTime(): string {\r\n return this.data.ServiceLevelImminentUnitOfTime;\r\n }\r\n set ServiceLevelImminentUnitOfTime(value: string) {\r\n this.data.ServiceLevelImminentUnitOfTime = value;\r\n }\r\n get LastUpdatedBy(): string {\r\n return this.data.LastUpdatedBy;\r\n }\r\n set LastUpdatedBy(value: string) {\r\n this.data.LastUpdatedBy = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): Prioritization {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: Prioritization) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n PrioritizationTypeOrder: model.PrioritizationTypeOrder,\r\n DeadlineImminentValue: model.DeadlineImminentValue,\r\n DeadlineImminentUnitOfTime: model.DeadlineImminentUnitOfTime,\r\n DueDateImminentValue: model.DueDateImminentValue,\r\n DueDateImminentUnitOfTime: model.DueDateImminentUnitOfTime,\r\n ServiceLevelImminentValue: model.ServiceLevelImminentValue,\r\n ServiceLevelImminentUnitOfTime: model.ServiceLevelImminentUnitOfTime,\r\n LastUpdatedBy: model.LastUpdatedBy,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Prioritization {\r\n let clone = new Prioritization();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProducer {\r\n Id: string,\r\n Name: string,\r\n Dba?: string,\r\n Phone: string,\r\n Fax?: string,\r\n Country?: string,\r\n Address1: string,\r\n Address2?: string,\r\n Address3?: string,\r\n City: string,\r\n State?: string,\r\n Zip: string,\r\n County?: string,\r\n Website?: string,\r\n FEIN?: string,\r\n NewBusinessCommission: number,\r\n RenewalCommission: number,\r\n Code?: string,\r\n OffersAllPrograms: boolean,\r\n\r\n Offers?: object[]\r\n\r\n}\r\n\r\nexport class Producer extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Producer\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Producer }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Dba(): string {\r\n return this.data.Dba;\r\n }\r\n set Dba(value: string) {\r\n this.data.Dba = value;\r\n }\r\n get Phone(): string {\r\n return this.data.Phone;\r\n }\r\n set Phone(value: string) {\r\n this.data.Phone = value;\r\n }\r\n get Fax(): string {\r\n return this.data.Fax;\r\n }\r\n set Fax(value: string) {\r\n this.data.Fax = value;\r\n }\r\n get Country(): string {\r\n return this.data.Country;\r\n }\r\n set Country(value: string) {\r\n this.data.Country = value;\r\n }\r\n get Address1(): string {\r\n return this.data.Address1;\r\n }\r\n set Address1(value: string) {\r\n this.data.Address1 = value;\r\n }\r\n get Address2(): string {\r\n return this.data.Address2;\r\n }\r\n set Address2(value: string) {\r\n this.data.Address2 = value;\r\n }\r\n get Address3(): string {\r\n return this.data.Address3;\r\n }\r\n set Address3(value: string) {\r\n this.data.Address3 = value;\r\n }\r\n get City(): string {\r\n return this.data.City;\r\n }\r\n set City(value: string) {\r\n this.data.City = value;\r\n }\r\n get State(): string {\r\n return this.data.State;\r\n }\r\n set State(value: string) {\r\n this.data.State = value;\r\n }\r\n get Zip(): string {\r\n return this.data.Zip;\r\n }\r\n set Zip(value: string) {\r\n this.data.Zip = value;\r\n }\r\n get County(): string {\r\n return this.data.County;\r\n }\r\n set County(value: string) {\r\n this.data.County = value;\r\n }\r\n get Website(): string {\r\n return this.data.Website;\r\n }\r\n set Website(value: string) {\r\n this.data.Website = value;\r\n }\r\n get FEIN(): string {\r\n return this.data.FEIN;\r\n }\r\n set FEIN(value: string) {\r\n this.data.FEIN = value;\r\n }\r\n get NewBusinessCommission(): number {\r\n return this.data.NewBusinessCommission;\r\n }\r\n set NewBusinessCommission(value: number) {\r\n this.data.NewBusinessCommission = value;\r\n }\r\n get RenewalCommission(): number {\r\n return this.data.RenewalCommission;\r\n }\r\n set RenewalCommission(value: number) {\r\n this.data.RenewalCommission = value;\r\n }\r\n get Code(): string {\r\n return this.data.Code;\r\n }\r\n set Code(value: string) {\r\n this.data.Code = value;\r\n }\r\n get OffersAllPrograms(): boolean {\r\n return this.data.OffersAllPrograms;\r\n }\r\n set OffersAllPrograms(value: boolean) {\r\n this.data.OffersAllPrograms = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Offers, returns Program ProducerOffersProgram[]\r\n private __Offers: ProducerOffersProgram[];\r\n Offers(_context?: BaseDataContext): ProducerOffersProgram[] {\r\n if (this.__Offers)\r\n return this.__Offers;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Offers), (id) => context.get(id) as ProducerOffersProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setOffers(values: ProducerOffersProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Offers = values;\r\n }\r\n get _Offers(): Set {\r\n if (!this._relationships.has(\"Offers\"))\r\n this._relationships.set(\"Offers\", new Set());\r\n\r\n return this._relationships.get(\"Offers\");\r\n }\r\n set _Offers(values: Set) {\r\n this._relationships.set(\"Offers\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Offers',\r\n edgeType: ProducerOffersProgram,\r\n otherVertexPropertyName: 'IsOfferedBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Producer {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Producer) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Dba: model.Dba,\r\n Phone: model.Phone,\r\n Fax: model.Fax,\r\n Country: model.Country,\r\n Address1: model.Address1,\r\n Address2: model.Address2,\r\n Address3: model.Address3,\r\n City: model.City,\r\n State: model.State,\r\n Zip: model.Zip,\r\n County: model.County,\r\n Website: model.Website,\r\n FEIN: model.FEIN,\r\n NewBusinessCommission: model.NewBusinessCommission,\r\n RenewalCommission: model.RenewalCommission,\r\n Code: model.Code,\r\n OffersAllPrograms: model.OffersAllPrograms,\r\n Offers: ModelUtils.serializeShallowEdge(model.Offers(), 'Offers'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Producer {\r\n let clone = new Producer();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Offers = _.cloneDeep(this._Offers);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProducerOffersProgram extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProducerOffersProgram\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get HasCommissionOverride(): boolean {\r\n return this.data.HasCommissionOverride;\r\n }\r\n set HasCommissionOverride(value: boolean) {\r\n this.data.HasCommissionOverride = value;\r\n }\r\n get NewBusinessCommission(): number {\r\n return this.data.NewBusinessCommission;\r\n }\r\n set NewBusinessCommission(value: number) {\r\n this.data.NewBusinessCommission = value;\r\n }\r\n get RenewalCommission(): number {\r\n return this.data.RenewalCommission;\r\n }\r\n set RenewalCommission(value: number) {\r\n this.data.RenewalCommission = value;\r\n }\r\n get NewBusinessProductCommission(): { [index: string]: number } {\r\n return this.data.NewBusinessProductCommission;\r\n }\r\n set NewBusinessProductCommission(value: { [index: string]: number }) {\r\n this.data.NewBusinessProductCommission = value;\r\n }\r\n get RenewalProductCommission(): { [index: string]: number } {\r\n return this.data.RenewalProductCommission;\r\n }\r\n set RenewalProductCommission(value: { [index: string]: number }) {\r\n this.data.RenewalProductCommission = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Producer\r\n private __IsOfferedBy: Producer;\r\n\r\n IsOfferedBy(context?: BaseDataContext): Producer {\r\n if (this.__IsOfferedBy)\r\n return this.__IsOfferedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsOfferedBy) as Producer;\r\n }\r\n setIsOfferedBy(value: Producer) {\r\n this.__IsOfferedBy = value;\r\n }\r\n get _IsOfferedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsOfferedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Program\r\n private __Offers: Program;\r\n\r\n Offers(context?: BaseDataContext): Program {\r\n if (this.__Offers)\r\n return this.__Offers;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Offers) as Program;\r\n }\r\n setOffers(value: Program) {\r\n this.__Offers = value;\r\n }\r\n get _Offers(): string {\r\n return this.In;\r\n }\r\n set _Offers(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProducerOffersProgram {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProducerOffersProgram {\r\n let clone = new ProducerOffersProgram();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProduct {\r\n Id: string,\r\n Name: string,\r\n Description: string,\r\n DefaultTerm: string,\r\n Tags?: string[]\r\n\r\n IsOfferedBy?: object[],\r\n IsWrittenBy?: object[]\r\n\r\n}\r\n\r\nexport class Product extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Product\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Product }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get DefaultTerm(): string {\r\n return this.data.DefaultTerm;\r\n }\r\n set DefaultTerm(value: string) {\r\n this.data.DefaultTerm = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsOfferedBy, returns Program ProgramOffersProduct[]\r\n private __IsOfferedBy: ProgramOffersProduct[];\r\n IsOfferedBy(_context?: BaseDataContext): ProgramOffersProduct[] {\r\n if (this.__IsOfferedBy)\r\n return this.__IsOfferedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsOfferedBy), (id) => context.get(id) as ProgramOffersProduct);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsOfferedBy(values: ProgramOffersProduct[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsOfferedBy = values;\r\n }\r\n get _IsOfferedBy(): Set {\r\n if (!this._relationships.has(\"IsOfferedBy\"))\r\n this._relationships.set(\"IsOfferedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsOfferedBy\");\r\n }\r\n set _IsOfferedBy(values: Set) {\r\n this._relationships.set(\"IsOfferedBy\", values);\r\n }\r\n\r\n // Relationship IsWrittenBy, returns Company CompanyWritesProduct[]\r\n private __IsWrittenBy: CompanyWritesProduct[];\r\n IsWrittenBy(_context?: BaseDataContext): CompanyWritesProduct[] {\r\n if (this.__IsWrittenBy)\r\n return this.__IsWrittenBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsWrittenBy), (id) => context.get(id) as CompanyWritesProduct);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsWrittenBy(values: CompanyWritesProduct[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsWrittenBy = values;\r\n }\r\n get _IsWrittenBy(): Set {\r\n if (!this._relationships.has(\"IsWrittenBy\"))\r\n this._relationships.set(\"IsWrittenBy\", new Set());\r\n\r\n return this._relationships.get(\"IsWrittenBy\");\r\n }\r\n set _IsWrittenBy(values: Set) {\r\n this._relationships.set(\"IsWrittenBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsOfferedBy',\r\n edgeType: ProgramOffersProduct,\r\n otherVertexPropertyName: 'Offers',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsWrittenBy',\r\n edgeType: CompanyWritesProduct,\r\n otherVertexPropertyName: 'Writes',\r\n otherVertexType: Company,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Product {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Product) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DefaultTerm: model.DefaultTerm,\r\n Tags: model.Tags,\r\n IsOfferedBy: ModelUtils.serializeShallowEdge(model.IsOfferedBy(), 'IsOfferedBy'),\r\n IsWrittenBy: ModelUtils.serializeShallowEdge(model.IsWrittenBy(), 'IsWrittenBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Product {\r\n let clone = new Product();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsOfferedBy = _.cloneDeep(this._IsOfferedBy);\r\n clone._IsWrittenBy = _.cloneDeep(this._IsWrittenBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramAllowsDocumentCategory extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramAllowsDocumentCategory\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsAllowedBy: Program;\r\n\r\n IsAllowedBy(context?: BaseDataContext): Program {\r\n if (this.__IsAllowedBy)\r\n return this.__IsAllowedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsAllowedBy) as Program;\r\n }\r\n setIsAllowedBy(value: Program) {\r\n this.__IsAllowedBy = value;\r\n }\r\n get _IsAllowedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsAllowedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DocumentCategory\r\n private __Allows: DocumentCategory;\r\n\r\n Allows(context?: BaseDataContext): DocumentCategory {\r\n if (this.__Allows)\r\n return this.__Allows;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Allows) as DocumentCategory;\r\n }\r\n setAllows(value: DocumentCategory) {\r\n this.__Allows = value;\r\n }\r\n get _Allows(): string {\r\n return this.In;\r\n }\r\n set _Allows(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramAllowsDocumentCategory {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramAllowsDocumentCategory {\r\n let clone = new ProgramAllowsDocumentCategory();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProgramChange {\r\n readonly ChangeNo: number,\r\n Summary: string,\r\n Description?: string,\r\n readonly Status: string,\r\n readonly Author: string,\r\n readonly StartDate: Date,\r\n readonly ValidationStatus: string,\r\n Id: string,\r\n ProgramChanges: number,\r\n WorkflowChanges: number,\r\n DataChanges: number,\r\n\r\n Edits?: object[]\r\n\r\n}\r\n\r\nexport class ProgramChange extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramChange\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramChange }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ChangeNo(): number {\r\n return this.data.ChangeNo;\r\n }\r\n get Summary(): string {\r\n return this.data.Summary;\r\n }\r\n set Summary(value: string) {\r\n this.data.Summary = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get Author(): string {\r\n return this.data.Author;\r\n }\r\n get StartDate(): Date {\r\n return this.data.StartDate ? new Date(this.data.StartDate) : undefined;\r\n }\r\n get ValidationStatus(): string {\r\n return this.data.ValidationStatus;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ProgramChanges(): number {\r\n return this.data.ProgramChanges;\r\n }\r\n set ProgramChanges(value: number) {\r\n this.data.ProgramChanges = value;\r\n }\r\n get WorkflowChanges(): number {\r\n return this.data.WorkflowChanges;\r\n }\r\n set WorkflowChanges(value: number) {\r\n this.data.WorkflowChanges = value;\r\n }\r\n get DataChanges(): number {\r\n return this.data.DataChanges;\r\n }\r\n set DataChanges(value: number) {\r\n this.data.DataChanges = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Edits, returns Program ProgramChangeEditsProgram[]\r\n private __Edits: ProgramChangeEditsProgram[];\r\n Edits(_context?: BaseDataContext): ProgramChangeEditsProgram[] {\r\n if (this.__Edits)\r\n return this.__Edits;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Edits), (id) => context.get(id) as ProgramChangeEditsProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEdits(values: ProgramChangeEditsProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Edits = values;\r\n }\r\n get _Edits(): Set {\r\n if (!this._relationships.has(\"Edits\"))\r\n this._relationships.set(\"Edits\", new Set());\r\n\r\n return this._relationships.get(\"Edits\");\r\n }\r\n set _Edits(values: Set) {\r\n this._relationships.set(\"Edits\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Edits',\r\n edgeType: ProgramChangeEditsProgram,\r\n otherVertexPropertyName: 'IsEditedBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramChange {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramChange) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ChangeNo: model.ChangeNo,\r\n Summary: model.Summary,\r\n Description: model.Description,\r\n Status: model.Status,\r\n Author: model.Author,\r\n StartDate: model.StartDate,\r\n ValidationStatus: model.ValidationStatus,\r\n Id: model.Id,\r\n ProgramChanges: model.ProgramChanges,\r\n WorkflowChanges: model.WorkflowChanges,\r\n DataChanges: model.DataChanges,\r\n Edits: ModelUtils.serializeShallowEdge(model.Edits(), 'Edits'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramChange {\r\n let clone = new ProgramChange();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Edits = _.cloneDeep(this._Edits);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramChangeEditsProgram extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramChangeEditsProgram\";\r\n }\r\n\r\n // Properties\r\n get Locked(): Date {\r\n return this.data.Locked ? new Date(this.data.Locked) : undefined;\r\n }\r\n get LockedBy(): string {\r\n return this.data.LockedBy;\r\n }\r\n get Updated(): Date {\r\n return this.data.Updated ? new Date(this.data.Updated) : undefined;\r\n }\r\n get UpdatedBy(): string {\r\n return this.data.UpdatedBy;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get NumberOfChanges(): number {\r\n return this.data.NumberOfChanges;\r\n }\r\n set NumberOfChanges(value: number) {\r\n this.data.NumberOfChanges = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramChange\r\n private __IsEditedBy: ProgramChange;\r\n\r\n IsEditedBy(context?: BaseDataContext): ProgramChange {\r\n if (this.__IsEditedBy)\r\n return this.__IsEditedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEditedBy) as ProgramChange;\r\n }\r\n setIsEditedBy(value: ProgramChange) {\r\n this.__IsEditedBy = value;\r\n }\r\n get _IsEditedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsEditedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Program\r\n private __Edits: Program;\r\n\r\n Edits(context?: BaseDataContext): Program {\r\n if (this.__Edits)\r\n return this.__Edits;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Edits) as Program;\r\n }\r\n setEdits(value: Program) {\r\n this.__Edits = value;\r\n }\r\n get _Edits(): string {\r\n return this.In;\r\n }\r\n set _Edits(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramChangeEditsProgram {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramChangeEditsProgram {\r\n let clone = new ProgramChangeEditsProgram();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramChangeLog extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramChangeLog\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get RevisionedOwner(): string {\r\n return this.data.RevisionedOwner;\r\n }\r\n get RevisionedComponent(): string {\r\n return this.data.RevisionedComponent;\r\n }\r\n get ChangeType(): string {\r\n return this.data.ChangeType;\r\n }\r\n get RevisionableId(): string {\r\n return this.data.RevisionableId;\r\n }\r\n get RevisionableType(): string {\r\n return this.data.RevisionableType;\r\n }\r\n get ChangeId(): string {\r\n return this.data.ChangeId;\r\n }\r\n get LastChanged(): Date {\r\n return this.data.LastChanged ? new Date(this.data.LastChanged) : undefined;\r\n }\r\n get Rollback(): string {\r\n return this.data.Rollback;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ProgramChangeLog {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ProgramChangeLog) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n RevisionedOwner: model.RevisionedOwner,\r\n RevisionedComponent: model.RevisionedComponent,\r\n ChangeType: model.ChangeType,\r\n RevisionableId: model.RevisionableId,\r\n RevisionableType: model.RevisionableType,\r\n ChangeId: model.ChangeId,\r\n LastChanged: model.LastChanged,\r\n Rollback: model.Rollback,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramChangeLog {\r\n let clone = new ProgramChangeLog();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramCollectsApplication extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramCollectsApplication\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsCollectedBy: Program;\r\n\r\n IsCollectedBy(context?: BaseDataContext): Program {\r\n if (this.__IsCollectedBy)\r\n return this.__IsCollectedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsCollectedBy) as Program;\r\n }\r\n setIsCollectedBy(value: Program) {\r\n this.__IsCollectedBy = value;\r\n }\r\n get _IsCollectedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsCollectedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Application\r\n private __Collects: Application;\r\n\r\n Collects(context?: BaseDataContext): Application {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Collects) as Application;\r\n }\r\n setCollects(value: Application) {\r\n this.__Collects = value;\r\n }\r\n get _Collects(): string {\r\n return this.In;\r\n }\r\n set _Collects(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramCollectsApplication {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramCollectsApplication {\r\n let clone = new ProgramCollectsApplication();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramConfiguredByProgramOptions extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramConfiguredByProgramOptions\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __Configures: Program;\r\n\r\n Configures(context?: BaseDataContext): Program {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Configures) as Program;\r\n }\r\n setConfigures(value: Program) {\r\n this.__Configures = value;\r\n }\r\n get _Configures(): string {\r\n return this.Out;\r\n }\r\n set _Configures(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ProgramOptions\r\n private __IsConfiguredBy: ProgramOptions;\r\n\r\n IsConfiguredBy(context?: BaseDataContext): ProgramOptions {\r\n if (this.__IsConfiguredBy)\r\n return this.__IsConfiguredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsConfiguredBy) as ProgramOptions;\r\n }\r\n setIsConfiguredBy(value: ProgramOptions) {\r\n this.__IsConfiguredBy = value;\r\n }\r\n get _IsConfiguredBy(): string {\r\n return this.In;\r\n }\r\n set _IsConfiguredBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramConfiguredByProgramOptions {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramConfiguredByProgramOptions {\r\n let clone = new ProgramConfiguredByProgramOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramDefinesWorkflowSet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramDefinesWorkflowSet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsDefinedFor: Program;\r\n\r\n IsDefinedFor(context?: BaseDataContext): Program {\r\n if (this.__IsDefinedFor)\r\n return this.__IsDefinedFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsDefinedFor) as Program;\r\n }\r\n setIsDefinedFor(value: Program) {\r\n this.__IsDefinedFor = value;\r\n }\r\n get _IsDefinedFor(): string {\r\n return this.Out;\r\n }\r\n set _IsDefinedFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkflowSet\r\n private __Defines: WorkflowSet;\r\n\r\n Defines(context?: BaseDataContext): WorkflowSet {\r\n if (this.__Defines)\r\n return this.__Defines;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Defines) as WorkflowSet;\r\n }\r\n setDefines(value: WorkflowSet) {\r\n this.__Defines = value;\r\n }\r\n get _Defines(): string {\r\n return this.In;\r\n }\r\n set _Defines(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramDefinesWorkflowSet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramDefinesWorkflowSet {\r\n let clone = new ProgramDefinesWorkflowSet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramDisplaysDataPanel extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramDisplaysDataPanel\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsDisplayedBy: Program;\r\n\r\n IsDisplayedBy(context?: BaseDataContext): Program {\r\n if (this.__IsDisplayedBy)\r\n return this.__IsDisplayedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsDisplayedBy) as Program;\r\n }\r\n setIsDisplayedBy(value: Program) {\r\n this.__IsDisplayedBy = value;\r\n }\r\n get _IsDisplayedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsDisplayedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPanel\r\n private __Displays: DataPanel;\r\n\r\n Displays(context?: BaseDataContext): DataPanel {\r\n if (this.__Displays)\r\n return this.__Displays;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Displays) as DataPanel;\r\n }\r\n setDisplays(value: DataPanel) {\r\n this.__Displays = value;\r\n }\r\n get _Displays(): string {\r\n return this.In;\r\n }\r\n set _Displays(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramDisplaysDataPanel {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramDisplaysDataPanel {\r\n let clone = new ProgramDisplaysDataPanel();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramEmploysTenantUser extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramEmploysTenantUser\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get IsManager(): boolean {\r\n return this.data.IsManager;\r\n }\r\n set IsManager(value: boolean) {\r\n this.data.IsManager = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsEmployedBy: Program;\r\n\r\n IsEmployedBy(context?: BaseDataContext): Program {\r\n if (this.__IsEmployedBy)\r\n return this.__IsEmployedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEmployedBy) as Program;\r\n }\r\n setIsEmployedBy(value: Program) {\r\n this.__IsEmployedBy = value;\r\n }\r\n get _IsEmployedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsEmployedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantUser\r\n private __Employs: TenantUser;\r\n\r\n Employs(context?: BaseDataContext): TenantUser {\r\n if (this.__Employs)\r\n return this.__Employs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Employs) as TenantUser;\r\n }\r\n setEmploys(value: TenantUser) {\r\n this.__Employs = value;\r\n }\r\n get _Employs(): string {\r\n return this.In;\r\n }\r\n set _Employs(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramEmploysTenantUser {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramEmploysTenantUser {\r\n let clone = new ProgramEmploysTenantUser();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramEvaluatesRuleSet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramEvaluatesRuleSet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsEvaluatedBy: Program;\r\n\r\n IsEvaluatedBy(context?: BaseDataContext): Program {\r\n if (this.__IsEvaluatedBy)\r\n return this.__IsEvaluatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsEvaluatedBy) as Program;\r\n }\r\n setIsEvaluatedBy(value: Program) {\r\n this.__IsEvaluatedBy = value;\r\n }\r\n get _IsEvaluatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsEvaluatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to RuleSet\r\n private __Evaluates: RuleSet;\r\n\r\n Evaluates(context?: BaseDataContext): RuleSet {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Evaluates) as RuleSet;\r\n }\r\n setEvaluates(value: RuleSet) {\r\n this.__Evaluates = value;\r\n }\r\n get _Evaluates(): string {\r\n return this.In;\r\n }\r\n set _Evaluates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramEvaluatesRuleSet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramEvaluatesRuleSet {\r\n let clone = new ProgramEvaluatesRuleSet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramFormattedByRegion extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramFormattedByRegion\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __Formats: Program;\r\n\r\n Formats(context?: BaseDataContext): Program {\r\n if (this.__Formats)\r\n return this.__Formats;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Formats) as Program;\r\n }\r\n setFormats(value: Program) {\r\n this.__Formats = value;\r\n }\r\n get _Formats(): string {\r\n return this.Out;\r\n }\r\n set _Formats(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Region\r\n private __IsFormattedBy: Region;\r\n\r\n IsFormattedBy(context?: BaseDataContext): Region {\r\n if (this.__IsFormattedBy)\r\n return this.__IsFormattedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsFormattedBy) as Region;\r\n }\r\n setIsFormattedBy(value: Region) {\r\n this.__IsFormattedBy = value;\r\n }\r\n get _IsFormattedBy(): string {\r\n return this.In;\r\n }\r\n set _IsFormattedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramFormattedByRegion {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramFormattedByRegion {\r\n let clone = new ProgramFormattedByRegion();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramObligatesAccountRole extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramObligatesAccountRole\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get InitiallyFilled(): string {\r\n return this.data.InitiallyFilled;\r\n }\r\n set InitiallyFilled(value: string) {\r\n this.data.InitiallyFilled = value;\r\n }\r\n get UserIds(): string[] {\r\n return this.data.UserIds;\r\n }\r\n set UserIds(value: string[]) {\r\n this.data.UserIds = value;\r\n }\r\n get AuthorityLevel(): number {\r\n return this.data.AuthorityLevel;\r\n }\r\n set AuthorityLevel(value: number) {\r\n this.data.AuthorityLevel = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsObligatedBy: Program;\r\n\r\n IsObligatedBy(context?: BaseDataContext): Program {\r\n if (this.__IsObligatedBy)\r\n return this.__IsObligatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsObligatedBy) as Program;\r\n }\r\n setIsObligatedBy(value: Program) {\r\n this.__IsObligatedBy = value;\r\n }\r\n get _IsObligatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsObligatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to AccountRole\r\n private __Obligates: AccountRole;\r\n\r\n Obligates(context?: BaseDataContext): AccountRole {\r\n if (this.__Obligates)\r\n return this.__Obligates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Obligates) as AccountRole;\r\n }\r\n setObligates(value: AccountRole) {\r\n this.__Obligates = value;\r\n }\r\n get _Obligates(): string {\r\n return this.In;\r\n }\r\n set _Obligates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramObligatesAccountRole {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramObligatesAccountRole {\r\n let clone = new ProgramObligatesAccountRole();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramOffersProduct extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramOffersProduct\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DefaultEligibilityStatus(): string {\r\n return this.data.DefaultEligibilityStatus;\r\n }\r\n set DefaultEligibilityStatus(value: string) {\r\n this.data.DefaultEligibilityStatus = value;\r\n }\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n set WorkflowSetId(value: string) {\r\n this.data.WorkflowSetId = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n get RatedByWebhook(): string {\r\n return this.data.RatedByWebhook;\r\n }\r\n set RatedByWebhook(value: string) {\r\n this.data.RatedByWebhook = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsOfferedBy: Program;\r\n\r\n IsOfferedBy(context?: BaseDataContext): Program {\r\n if (this.__IsOfferedBy)\r\n return this.__IsOfferedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsOfferedBy) as Program;\r\n }\r\n setIsOfferedBy(value: Program) {\r\n this.__IsOfferedBy = value;\r\n }\r\n get _IsOfferedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsOfferedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Product\r\n private __Offers: Product;\r\n\r\n Offers(context?: BaseDataContext): Product {\r\n if (this.__Offers)\r\n return this.__Offers;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Offers) as Product;\r\n }\r\n setOffers(value: Product) {\r\n this.__Offers = value;\r\n }\r\n get _Offers(): string {\r\n return this.In;\r\n }\r\n set _Offers(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramOffersProduct {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramOffersProduct {\r\n let clone = new ProgramOffersProduct();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProgramOptions {\r\n Id: string,\r\n VersionSelection: string,\r\n DefaultFromAddress?: string,\r\n readonly BasePoints: number,\r\n readonly ThresholdLow: number,\r\n readonly ThresholdMedium: number,\r\n readonly ThresholdHigh: number,\r\n readonly ThresholdVeryHigh: number,\r\n DefaultWorkflowId?: string,\r\n DefaultDelinquentWorkflowId?: string\r\n\r\n Configures?: object[]\r\n\r\n}\r\n\r\nexport class ProgramOptions extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramOptions\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramOptions }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get VersionSelection(): string {\r\n return this.data.VersionSelection;\r\n }\r\n set VersionSelection(value: string) {\r\n this.data.VersionSelection = value;\r\n }\r\n get DefaultFromAddress(): string {\r\n return this.data.DefaultFromAddress;\r\n }\r\n set DefaultFromAddress(value: string) {\r\n this.data.DefaultFromAddress = value;\r\n }\r\n get BasePoints(): number {\r\n return this.data.BasePoints;\r\n }\r\n get ThresholdLow(): number {\r\n return this.data.ThresholdLow;\r\n }\r\n get ThresholdMedium(): number {\r\n return this.data.ThresholdMedium;\r\n }\r\n get ThresholdHigh(): number {\r\n return this.data.ThresholdHigh;\r\n }\r\n get ThresholdVeryHigh(): number {\r\n return this.data.ThresholdVeryHigh;\r\n }\r\n get DefaultWorkflowId(): string {\r\n return this.data.DefaultWorkflowId;\r\n }\r\n set DefaultWorkflowId(value: string) {\r\n this.data.DefaultWorkflowId = value;\r\n }\r\n get DefaultDelinquentWorkflowId(): string {\r\n return this.data.DefaultDelinquentWorkflowId;\r\n }\r\n set DefaultDelinquentWorkflowId(value: string) {\r\n this.data.DefaultDelinquentWorkflowId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Configures, returns Program ProgramConfiguredByProgramOptions[]\r\n private __Configures: ProgramConfiguredByProgramOptions[];\r\n Configures(_context?: BaseDataContext): ProgramConfiguredByProgramOptions[] {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Configures), (id) => context.get(id) as ProgramConfiguredByProgramOptions);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setConfigures(values: ProgramConfiguredByProgramOptions[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Configures = values;\r\n }\r\n get _Configures(): Set {\r\n if (!this._relationships.has(\"Configures\"))\r\n this._relationships.set(\"Configures\", new Set());\r\n\r\n return this._relationships.get(\"Configures\");\r\n }\r\n set _Configures(values: Set) {\r\n this._relationships.set(\"Configures\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Configures',\r\n edgeType: ProgramConfiguredByProgramOptions,\r\n otherVertexPropertyName: 'IsConfiguredBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramOptions {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramOptions) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n VersionSelection: model.VersionSelection,\r\n DefaultFromAddress: model.DefaultFromAddress,\r\n BasePoints: model.BasePoints,\r\n ThresholdLow: model.ThresholdLow,\r\n ThresholdMedium: model.ThresholdMedium,\r\n ThresholdHigh: model.ThresholdHigh,\r\n ThresholdVeryHigh: model.ThresholdVeryHigh,\r\n DefaultWorkflowId: model.DefaultWorkflowId,\r\n DefaultDelinquentWorkflowId: model.DefaultDelinquentWorkflowId,\r\n Configures: ModelUtils.serializeShallowEdge(model.Configures(), 'Configures'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramOptions {\r\n let clone = new ProgramOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Configures = _.cloneDeep(this._Configures);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramPatchLog extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramPatchLog\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get RevisionedOwner(): string {\r\n return this.data.RevisionedOwner;\r\n }\r\n get RevisionedComponent(): string {\r\n return this.data.RevisionedComponent;\r\n }\r\n get RevisionableId(): string {\r\n return this.data.RevisionableId;\r\n }\r\n get PatchId(): string {\r\n return this.data.PatchId;\r\n }\r\n get LastPatched(): Date {\r\n return this.data.LastPatched ? new Date(this.data.LastPatched) : undefined;\r\n }\r\n get SourceObjectVersionNumber(): number {\r\n return this.data.SourceObjectVersionNumber;\r\n }\r\n get OriginalProperties(): { [index: string]: any } {\r\n return this.data.OriginalProperties;\r\n }\r\n get PatchedModel(): string {\r\n return this.data.PatchedModel;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ProgramPatchLog {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ProgramPatchLog) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n RevisionedOwner: model.RevisionedOwner,\r\n RevisionedComponent: model.RevisionedComponent,\r\n RevisionableId: model.RevisionableId,\r\n PatchId: model.PatchId,\r\n LastPatched: model.LastPatched,\r\n SourceObjectVersionNumber: model.SourceObjectVersionNumber,\r\n OriginalProperties: model.OriginalProperties,\r\n PatchedModel: model.PatchedModel,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramPatchLog {\r\n let clone = new ProgramPatchLog();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramPatchRevisesRevisioned extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramPatchRevisesRevisioned\";\r\n }\r\n\r\n // Properties\r\n get Published(): Date {\r\n return this.data.Published ? new Date(this.data.Published) : undefined;\r\n }\r\n get PublishedBy(): string {\r\n return this.data.PublishedBy;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramPatch\r\n private __IsRevisedBy: ProgramPatch;\r\n\r\n IsRevisedBy(context?: BaseDataContext): ProgramPatch {\r\n if (this.__IsRevisedBy)\r\n return this.__IsRevisedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRevisedBy) as ProgramPatch;\r\n }\r\n setIsRevisedBy(value: ProgramPatch) {\r\n this.__IsRevisedBy = value;\r\n }\r\n get _IsRevisedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsRevisedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Program\r\n private __Revises: Program;\r\n\r\n Revises(context?: BaseDataContext): Program {\r\n if (this.__Revises)\r\n return this.__Revises;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Revises) as Program;\r\n }\r\n setRevises(value: Program) {\r\n this.__Revises = value;\r\n }\r\n get _Revises(): string {\r\n return this.In;\r\n }\r\n set _Revises(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramPatchRevisesRevisioned {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramPatchRevisesRevisioned {\r\n let clone = new ProgramPatchRevisesRevisioned();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramRevisionConfiguresArea extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevisionConfiguresArea\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get StandbyWorkflowCountByDef(): { [index: string]: number } {\r\n return this.data.StandbyWorkflowCountByDef;\r\n }\r\n set StandbyWorkflowCountByDef(value: { [index: string]: number }) {\r\n this.data.StandbyWorkflowCountByDef = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramRevision\r\n private __IsConfiguredFor: ProgramRevision;\r\n\r\n IsConfiguredFor(context?: BaseDataContext): ProgramRevision {\r\n if (this.__IsConfiguredFor)\r\n return this.__IsConfiguredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsConfiguredFor) as ProgramRevision;\r\n }\r\n setIsConfiguredFor(value: ProgramRevision) {\r\n this.__IsConfiguredFor = value;\r\n }\r\n get _IsConfiguredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsConfiguredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Area\r\n private __Configures: Area;\r\n\r\n Configures(context?: BaseDataContext): Area {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Configures) as Area;\r\n }\r\n setConfigures(value: Area) {\r\n this.__Configures = value;\r\n }\r\n get _Configures(): string {\r\n return this.In;\r\n }\r\n set _Configures(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramRevisionConfiguresArea {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramRevisionConfiguresArea {\r\n let clone = new ProgramRevisionConfiguresArea();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProgramRevisioned {\r\n Id: string,\r\n readonly LockedByChange?: string\r\n\r\n IsTrackedFor?: object[]\r\n\r\n}\r\n\r\nexport class ProgramRevisioned extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevisioned\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramRevisioned }[] = [\r\n {className: 'Application', type: Application},\r\n {className: 'AssetGroup', type: AssetGroup},\r\n {className: 'DataPanel', type: DataPanel},\r\n {className: 'DataStore', type: DataStore},\r\n {className: 'Program', type: Program},\r\n {className: 'RuleSet', type: RuleSet},\r\n {className: 'RuleSetAssignment', type: RuleSetAssignment},\r\n {className: 'RuleSetDateTime', type: RuleSetDateTime},\r\n {className: 'RuleSetProduct', type: RuleSetProduct},\r\n {className: 'RuleSetRequirement', type: RuleSetRequirement},\r\n {className: 'RuleSetRiskAssessment', type: RuleSetRiskAssessment},\r\n {className: 'RuleSetWorkflowSetStatus', type: RuleSetWorkflowSetStatus},\r\n {className: 'Workflow', type: Workflow},\r\n {className: 'WorkflowSet', type: WorkflowSet},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get LockedByChange(): string {\r\n return this.data.LockedByChange;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsTrackedFor, returns ProgramRevision ProgramRevisionTracksProgramRevisioned[]\r\n private __IsTrackedFor: ProgramRevisionTracksProgramRevisioned[];\r\n IsTrackedFor(_context?: BaseDataContext): ProgramRevisionTracksProgramRevisioned[] {\r\n if (this.__IsTrackedFor)\r\n return this.__IsTrackedFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsTrackedFor), (id) => context.get(id) as ProgramRevisionTracksProgramRevisioned);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsTrackedFor(values: ProgramRevisionTracksProgramRevisioned[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsTrackedFor = values;\r\n }\r\n get _IsTrackedFor(): Set {\r\n if (!this._relationships.has(\"IsTrackedFor\"))\r\n this._relationships.set(\"IsTrackedFor\", new Set());\r\n\r\n return this._relationships.get(\"IsTrackedFor\");\r\n }\r\n set _IsTrackedFor(values: Set) {\r\n this._relationships.set(\"IsTrackedFor\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramRevisioned {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramRevisioned) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramRevisioned {\r\n let clone = new ProgramRevisioned();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramRevisionPublishesProgram extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevisionPublishesProgram\";\r\n }\r\n\r\n // Properties\r\n get Published(): Date {\r\n return this.data.Published ? new Date(this.data.Published) : undefined;\r\n }\r\n get PublishedBy(): string {\r\n return this.data.PublishedBy;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramRevision\r\n private __IsPublishedBy: ProgramRevision;\r\n\r\n IsPublishedBy(context?: BaseDataContext): ProgramRevision {\r\n if (this.__IsPublishedBy)\r\n return this.__IsPublishedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPublishedBy) as ProgramRevision;\r\n }\r\n setIsPublishedBy(value: ProgramRevision) {\r\n this.__IsPublishedBy = value;\r\n }\r\n get _IsPublishedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsPublishedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Program\r\n private __Publishes: Program;\r\n\r\n Publishes(context?: BaseDataContext): Program {\r\n if (this.__Publishes)\r\n return this.__Publishes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Publishes) as Program;\r\n }\r\n setPublishes(value: Program) {\r\n this.__Publishes = value;\r\n }\r\n get _Publishes(): string {\r\n return this.In;\r\n }\r\n set _Publishes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramRevisionPublishesProgram {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramRevisionPublishesProgram {\r\n let clone = new ProgramRevisionPublishesProgram();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramRevisionTracksProgramRevisioned extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevisionTracksProgramRevisioned\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ComponentRevisionNo(): number {\r\n return this.data.ComponentRevisionNo;\r\n }\r\n get ChangeRevisionNo(): number {\r\n return this.data.ChangeRevisionNo;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to ProgramRevision\r\n private __IsTrackedFor: ProgramRevision;\r\n\r\n IsTrackedFor(context?: BaseDataContext): ProgramRevision {\r\n if (this.__IsTrackedFor)\r\n return this.__IsTrackedFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsTrackedFor) as ProgramRevision;\r\n }\r\n setIsTrackedFor(value: ProgramRevision) {\r\n this.__IsTrackedFor = value;\r\n }\r\n get _IsTrackedFor(): string {\r\n return this.Out;\r\n }\r\n set _IsTrackedFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to ProgramRevisioned\r\n private __Tracks: ProgramRevisioned;\r\n\r\n Tracks(context?: BaseDataContext): ProgramRevisioned {\r\n if (this.__Tracks)\r\n return this.__Tracks;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Tracks) as ProgramRevisioned;\r\n }\r\n setTracks(value: ProgramRevisioned) {\r\n this.__Tracks = value;\r\n }\r\n get _Tracks(): string {\r\n return this.In;\r\n }\r\n set _Tracks(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramRevisionTracksProgramRevisioned {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramRevisionTracksProgramRevisioned {\r\n let clone = new ProgramRevisionTracksProgramRevisioned();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramStoresDataStore extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramStoresDataStore\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsStoredFor: Program;\r\n\r\n IsStoredFor(context?: BaseDataContext): Program {\r\n if (this.__IsStoredFor)\r\n return this.__IsStoredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsStoredFor) as Program;\r\n }\r\n setIsStoredFor(value: Program) {\r\n this.__IsStoredFor = value;\r\n }\r\n get _IsStoredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsStoredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataStore\r\n private __Stores: DataStore;\r\n\r\n Stores(context?: BaseDataContext): DataStore {\r\n if (this.__Stores)\r\n return this.__Stores;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Stores) as DataStore;\r\n }\r\n setStores(value: DataStore) {\r\n this.__Stores = value;\r\n }\r\n get _Stores(): string {\r\n return this.In;\r\n }\r\n set _Stores(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramStoresDataStore {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramStoresDataStore {\r\n let clone = new ProgramStoresDataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramUsesWorkGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramUsesWorkGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get AuthorityLevel(): number {\r\n return this.data.AuthorityLevel;\r\n }\r\n set AuthorityLevel(value: number) {\r\n this.data.AuthorityLevel = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsUsedBy: Program;\r\n\r\n IsUsedBy(context?: BaseDataContext): Program {\r\n if (this.__IsUsedBy)\r\n return this.__IsUsedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsUsedBy) as Program;\r\n }\r\n setIsUsedBy(value: Program) {\r\n this.__IsUsedBy = value;\r\n }\r\n get _IsUsedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsUsedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkGroup\r\n private __Uses: WorkGroup;\r\n\r\n Uses(context?: BaseDataContext): WorkGroup {\r\n if (this.__Uses)\r\n return this.__Uses;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Uses) as WorkGroup;\r\n }\r\n setUses(value: WorkGroup) {\r\n this.__Uses = value;\r\n }\r\n get _Uses(): string {\r\n return this.In;\r\n }\r\n set _Uses(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramUsesWorkGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramUsesWorkGroup {\r\n let clone = new ProgramUsesWorkGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramUtilizesAssetGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramUtilizesAssetGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Program\r\n private __IsUtilizedBy: Program;\r\n\r\n IsUtilizedBy(context?: BaseDataContext): Program {\r\n if (this.__IsUtilizedBy)\r\n return this.__IsUtilizedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsUtilizedBy) as Program;\r\n }\r\n setIsUtilizedBy(value: Program) {\r\n this.__IsUtilizedBy = value;\r\n }\r\n get _IsUtilizedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsUtilizedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to AssetGroup\r\n private __Utilizes: AssetGroup;\r\n\r\n Utilizes(context?: BaseDataContext): AssetGroup {\r\n if (this.__Utilizes)\r\n return this.__Utilizes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Utilizes) as AssetGroup;\r\n }\r\n setUtilizes(value: AssetGroup) {\r\n this.__Utilizes = value;\r\n }\r\n get _Utilizes(): string {\r\n return this.In;\r\n }\r\n set _Utilizes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ProgramUtilizesAssetGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ProgramUtilizesAssetGroup {\r\n let clone = new ProgramUtilizesAssetGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ProgramValidationMessage extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramValidationMessage\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Code(): string {\r\n return this.data.Code;\r\n }\r\n set Code(value: string) {\r\n this.data.Code = value;\r\n }\r\n get Level(): string {\r\n return this.data.Level;\r\n }\r\n set Level(value: string) {\r\n this.data.Level = value;\r\n }\r\n get Message(): string {\r\n return this.data.Message;\r\n }\r\n set Message(value: string) {\r\n this.data.Message = value;\r\n }\r\n get RevisionedId(): string {\r\n return this.data.RevisionedId;\r\n }\r\n set RevisionedId(value: string) {\r\n this.data.RevisionedId = value;\r\n }\r\n get ChangeId(): string {\r\n return this.data.ChangeId;\r\n }\r\n set ChangeId(value: string) {\r\n this.data.ChangeId = value;\r\n }\r\n get RevisionId(): string {\r\n return this.data.RevisionId;\r\n }\r\n set RevisionId(value: string) {\r\n this.data.RevisionId = value;\r\n }\r\n get ComponentId(): string {\r\n return this.data.ComponentId;\r\n }\r\n set ComponentId(value: string) {\r\n this.data.ComponentId = value;\r\n }\r\n get ComponentType(): string {\r\n return this.data.ComponentType;\r\n }\r\n set ComponentType(value: string) {\r\n this.data.ComponentType = value;\r\n }\r\n get EntityId(): string {\r\n return this.data.EntityId;\r\n }\r\n set EntityId(value: string) {\r\n this.data.EntityId = value;\r\n }\r\n get EntityType(): string {\r\n return this.data.EntityType;\r\n }\r\n set EntityType(value: string) {\r\n this.data.EntityType = value;\r\n }\r\n get Entities(): { [index: string]: string } {\r\n return this.data.Entities;\r\n }\r\n set Entities(value: { [index: string]: string }) {\r\n this.data.Entities = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ProgramValidationMessage {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ProgramValidationMessage) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Code: model.Code,\r\n Level: model.Level,\r\n Message: model.Message,\r\n RevisionedId: model.RevisionedId,\r\n ChangeId: model.ChangeId,\r\n RevisionId: model.RevisionId,\r\n ComponentId: model.ComponentId,\r\n ComponentType: model.ComponentType,\r\n EntityId: model.EntityId,\r\n EntityType: model.EntityType,\r\n Entities: model.Entities,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramValidationMessage {\r\n let clone = new ProgramValidationMessage();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IRegion {\r\n Id: string,\r\n Name: string,\r\n Currency: string,\r\n IsProgramDefault: boolean,\r\n Country: string,\r\n Aliases?: { [index: string]: string }\r\n\r\n Formats?: object[]\r\n\r\n}\r\n\r\nexport class Region extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Region\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Region }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Currency(): string {\r\n return this.data.Currency;\r\n }\r\n set Currency(value: string) {\r\n this.data.Currency = value;\r\n }\r\n get IsProgramDefault(): boolean {\r\n return this.data.IsProgramDefault;\r\n }\r\n set IsProgramDefault(value: boolean) {\r\n this.data.IsProgramDefault = value;\r\n }\r\n get Country(): string {\r\n return this.data.Country;\r\n }\r\n set Country(value: string) {\r\n this.data.Country = value;\r\n }\r\n get Aliases(): { [index: string]: string } {\r\n return this.data.Aliases;\r\n }\r\n set Aliases(value: { [index: string]: string }) {\r\n this.data.Aliases = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Formats, returns Program ProgramFormattedByRegion[]\r\n private __Formats: ProgramFormattedByRegion[];\r\n Formats(_context?: BaseDataContext): ProgramFormattedByRegion[] {\r\n if (this.__Formats)\r\n return this.__Formats;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Formats), (id) => context.get(id) as ProgramFormattedByRegion);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setFormats(values: ProgramFormattedByRegion[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Formats = values;\r\n }\r\n get _Formats(): Set {\r\n if (!this._relationships.has(\"Formats\"))\r\n this._relationships.set(\"Formats\", new Set());\r\n\r\n return this._relationships.get(\"Formats\");\r\n }\r\n set _Formats(values: Set) {\r\n this._relationships.set(\"Formats\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Formats',\r\n edgeType: ProgramFormattedByRegion,\r\n otherVertexPropertyName: 'IsFormattedBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Region {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Region) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Currency: model.Currency,\r\n IsProgramDefault: model.IsProgramDefault,\r\n Country: model.Country,\r\n Aliases: model.Aliases,\r\n Formats: ModelUtils.serializeShallowEdge(model.Formats(), 'Formats'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Region {\r\n let clone = new Region();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Formats = _.cloneDeep(this._Formats);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class RuleSetContainsRule extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetContainsRule\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to RuleSet\r\n private __IsContainedBy: RuleSet;\r\n\r\n IsContainedBy(context?: BaseDataContext): RuleSet {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as RuleSet;\r\n }\r\n setIsContainedBy(value: RuleSet) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Rule\r\n private __Contains: Rule;\r\n\r\n Contains(context?: BaseDataContext): Rule {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Rule;\r\n }\r\n setContains(value: Rule) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): RuleSetContainsRule {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): RuleSetContainsRule {\r\n let clone = new RuleSetContainsRule();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class RuleSetRequirementRegulatesWorkflow extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetRequirementRegulatesWorkflow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to RuleSetRequirement\r\n private __IsRegulatedBy: RuleSetRequirement;\r\n\r\n IsRegulatedBy(context?: BaseDataContext): RuleSetRequirement {\r\n if (this.__IsRegulatedBy)\r\n return this.__IsRegulatedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRegulatedBy) as RuleSetRequirement;\r\n }\r\n setIsRegulatedBy(value: RuleSetRequirement) {\r\n this.__IsRegulatedBy = value;\r\n }\r\n get _IsRegulatedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsRegulatedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workflow\r\n private __Regulates: Workflow;\r\n\r\n Regulates(context?: BaseDataContext): Workflow {\r\n if (this.__Regulates)\r\n return this.__Regulates;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Regulates) as Workflow;\r\n }\r\n setRegulates(value: Workflow) {\r\n this.__Regulates = value;\r\n }\r\n get _Regulates(): string {\r\n return this.In;\r\n }\r\n set _Regulates(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): RuleSetRequirementRegulatesWorkflow {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): RuleSetRequirementRegulatesWorkflow {\r\n let clone = new RuleSetRequirementRegulatesWorkflow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class RuleSetWorkflowSetStatusCapturesWorkflowSet extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetWorkflowSetStatusCapturesWorkflowSet\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to RuleSetWorkflowSetStatus\r\n private __IsCapturedBy: RuleSetWorkflowSetStatus;\r\n\r\n IsCapturedBy(context?: BaseDataContext): RuleSetWorkflowSetStatus {\r\n if (this.__IsCapturedBy)\r\n return this.__IsCapturedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsCapturedBy) as RuleSetWorkflowSetStatus;\r\n }\r\n setIsCapturedBy(value: RuleSetWorkflowSetStatus) {\r\n this.__IsCapturedBy = value;\r\n }\r\n get _IsCapturedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsCapturedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkflowSet\r\n private __Captures: WorkflowSet;\r\n\r\n Captures(context?: BaseDataContext): WorkflowSet {\r\n if (this.__Captures)\r\n return this.__Captures;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Captures) as WorkflowSet;\r\n }\r\n setCaptures(value: WorkflowSet) {\r\n this.__Captures = value;\r\n }\r\n get _Captures(): string {\r\n return this.In;\r\n }\r\n set _Captures(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): RuleSetWorkflowSetStatusCapturesWorkflowSet {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): RuleSetWorkflowSetStatusCapturesWorkflowSet {\r\n let clone = new RuleSetWorkflowSetStatusCapturesWorkflowSet();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class RuleTaskObligationSetsRequirementForTask extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleTaskObligationSetsRequirementForTask\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to RuleTaskObligation\r\n private __GetsRequirementFrom: RuleTaskObligation;\r\n\r\n GetsRequirementFrom(context?: BaseDataContext): RuleTaskObligation {\r\n if (this.__GetsRequirementFrom)\r\n return this.__GetsRequirementFrom;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._GetsRequirementFrom) as RuleTaskObligation;\r\n }\r\n setGetsRequirementFrom(value: RuleTaskObligation) {\r\n this.__GetsRequirementFrom = value;\r\n }\r\n get _GetsRequirementFrom(): string {\r\n return this.Out;\r\n }\r\n set _GetsRequirementFrom(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Task\r\n private __SetsRequirementFor: Task;\r\n\r\n SetsRequirementFor(context?: BaseDataContext): Task {\r\n if (this.__SetsRequirementFor)\r\n return this.__SetsRequirementFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._SetsRequirementFor) as Task;\r\n }\r\n setSetsRequirementFor(value: Task) {\r\n this.__SetsRequirementFor = value;\r\n }\r\n get _SetsRequirementFor(): string {\r\n return this.In;\r\n }\r\n set _SetsRequirementFor(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): RuleTaskObligationSetsRequirementForTask {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): RuleTaskObligationSetsRequirementForTask {\r\n let clone = new RuleTaskObligationSetsRequirementForTask();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SectionDisplaysElement extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SectionDisplaysElement\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Section\r\n private __IsDisplayedBy: Section;\r\n\r\n IsDisplayedBy(context?: BaseDataContext): Section {\r\n if (this.__IsDisplayedBy)\r\n return this.__IsDisplayedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsDisplayedBy) as Section;\r\n }\r\n setIsDisplayedBy(value: Section) {\r\n this.__IsDisplayedBy = value;\r\n }\r\n get _IsDisplayedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsDisplayedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Element\r\n private __Displays: Element;\r\n\r\n Displays(context?: BaseDataContext): Element {\r\n if (this.__Displays)\r\n return this.__Displays;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Displays) as Element;\r\n }\r\n setDisplays(value: Element) {\r\n this.__Displays = value;\r\n }\r\n get _Displays(): string {\r\n return this.In;\r\n }\r\n set _Displays(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SectionDisplaysElement {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SectionDisplaysElement {\r\n let clone = new SectionDisplaysElement();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SectionIsSequencedBySectionSequence extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SectionIsSequencedBySectionSequence\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Section\r\n private __Sequences: Section;\r\n\r\n Sequences(context?: BaseDataContext): Section {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sequences) as Section;\r\n }\r\n setSequences(value: Section) {\r\n this.__Sequences = value;\r\n }\r\n get _Sequences(): string {\r\n return this.Out;\r\n }\r\n set _Sequences(value: string) {\r\n this.Out = value;\r\n }\r\n // In to SectionSequence\r\n private __IsSequencedBy: SectionSequence;\r\n\r\n IsSequencedBy(context?: BaseDataContext): SectionSequence {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSequencedBy) as SectionSequence;\r\n }\r\n setIsSequencedBy(value: SectionSequence) {\r\n this.__IsSequencedBy = value;\r\n }\r\n get _IsSequencedBy(): string {\r\n return this.In;\r\n }\r\n set _IsSequencedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SectionIsSequencedBySectionSequence {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SectionIsSequencedBySectionSequence {\r\n let clone = new SectionIsSequencedBySectionSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SectionRepeatsWithDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SectionRepeatsWithDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Section\r\n private __RepeatsToSection: Section;\r\n\r\n RepeatsToSection(context?: BaseDataContext): Section {\r\n if (this.__RepeatsToSection)\r\n return this.__RepeatsToSection;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._RepeatsToSection) as Section;\r\n }\r\n setRepeatsToSection(value: Section) {\r\n this.__RepeatsToSection = value;\r\n }\r\n get _RepeatsToSection(): string {\r\n return this.Out;\r\n }\r\n set _RepeatsToSection(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __RepeatsWith: DataGroup;\r\n\r\n RepeatsWith(context?: BaseDataContext): DataGroup {\r\n if (this.__RepeatsWith)\r\n return this.__RepeatsWith;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._RepeatsWith) as DataGroup;\r\n }\r\n setRepeatsWith(value: DataGroup) {\r\n this.__RepeatsWith = value;\r\n }\r\n get _RepeatsWith(): string {\r\n return this.In;\r\n }\r\n set _RepeatsWith(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SectionRepeatsWithDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SectionRepeatsWithDataGroup {\r\n let clone = new SectionRepeatsWithDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ISectionSequence {\r\n Sequence?: string[],\r\n Id: string\r\n\r\n Sequences?: object[]\r\n\r\n}\r\n\r\nexport class SectionSequence extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SectionSequence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof SectionSequence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Sequences, returns Section SectionIsSequencedBySectionSequence[]\r\n private __Sequences: SectionIsSequencedBySectionSequence[];\r\n Sequences(_context?: BaseDataContext): SectionIsSequencedBySectionSequence[] {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sequences), (id) => context.get(id) as SectionIsSequencedBySectionSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSequences(values: SectionIsSequencedBySectionSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sequences = values;\r\n }\r\n get _Sequences(): Set {\r\n if (!this._relationships.has(\"Sequences\"))\r\n this._relationships.set(\"Sequences\", new Set());\r\n\r\n return this._relationships.get(\"Sequences\");\r\n }\r\n set _Sequences(values: Set) {\r\n this._relationships.set(\"Sequences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Sequences',\r\n edgeType: SectionIsSequencedBySectionSequence,\r\n otherVertexPropertyName: 'IsSequencedBy',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): SectionSequence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: SectionSequence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Sequences: ModelUtils.serializeShallowEdge(model.Sequences(), 'Sequences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SectionSequence {\r\n let clone = new SectionSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Sequences = _.cloneDeep(this._Sequences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ISecurityRole {\r\n Id: string,\r\n readonly DeletedDate?: Date,\r\n Name: string,\r\n Description: string,\r\n FeatureFacets?: string[],\r\n CreatedDate?: Date,\r\n CreatedBy?: string\r\n\r\n IsFilledBy?: object[]\r\n\r\n}\r\n\r\nexport class SecurityRole extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SecurityRole\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof SecurityRole }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get FeatureFacets(): string[] {\r\n return this.data.FeatureFacets;\r\n }\r\n set FeatureFacets(value: string[]) {\r\n this.data.FeatureFacets = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n set CreatedDate(value: Date) {\r\n this.data.CreatedDate = value;\r\n }\r\n get CreatedBy(): string {\r\n return this.data.CreatedBy;\r\n }\r\n set CreatedBy(value: string) {\r\n this.data.CreatedBy = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsFilledBy, returns SMIdentity SMIdentityFillsSecurityRole[]\r\n private __IsFilledBy: SMIdentityFillsSecurityRole[];\r\n IsFilledBy(_context?: BaseDataContext): SMIdentityFillsSecurityRole[] {\r\n if (this.__IsFilledBy)\r\n return this.__IsFilledBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsFilledBy), (id) => context.get(id) as SMIdentityFillsSecurityRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsFilledBy(values: SMIdentityFillsSecurityRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsFilledBy = values;\r\n }\r\n get _IsFilledBy(): Set {\r\n if (!this._relationships.has(\"IsFilledBy\"))\r\n this._relationships.set(\"IsFilledBy\", new Set());\r\n\r\n return this._relationships.get(\"IsFilledBy\");\r\n }\r\n set _IsFilledBy(values: Set) {\r\n this._relationships.set(\"IsFilledBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsFilledBy',\r\n edgeType: SMIdentityFillsSecurityRole,\r\n otherVertexPropertyName: 'FillsSecurityRole',\r\n otherVertexType: SMIdentity,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): SecurityRole {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: SecurityRole) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DeletedDate: model.DeletedDate,\r\n Name: model.Name,\r\n Description: model.Description,\r\n FeatureFacets: model.FeatureFacets,\r\n CreatedDate: model.CreatedDate,\r\n CreatedBy: model.CreatedBy,\r\n IsFilledBy: ModelUtils.serializeShallowEdge(model.IsFilledBy(), 'IsFilledBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SecurityRole {\r\n let clone = new SecurityRole();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsFilledBy = _.cloneDeep(this._IsFilledBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ServiceLevel extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ServiceLevel\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Event(): string {\r\n return this.data.Event;\r\n }\r\n set Event(value: string) {\r\n this.data.Event = value;\r\n }\r\n get AmountOfTime(): number {\r\n return this.data.AmountOfTime;\r\n }\r\n set AmountOfTime(value: number) {\r\n this.data.AmountOfTime = value;\r\n }\r\n get TimeUnits(): string {\r\n return this.data.TimeUnits;\r\n }\r\n set TimeUnits(value: string) {\r\n this.data.TimeUnits = value;\r\n }\r\n get BusinessHoursOnly(): boolean {\r\n return this.data.BusinessHoursOnly;\r\n }\r\n set BusinessHoursOnly(value: boolean) {\r\n this.data.BusinessHoursOnly = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workable\r\n private __IsTriggeredBy: Workable;\r\n\r\n IsTriggeredBy(context?: BaseDataContext): Workable {\r\n if (this.__IsTriggeredBy)\r\n return this.__IsTriggeredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsTriggeredBy) as Workable;\r\n }\r\n setIsTriggeredBy(value: Workable) {\r\n this.__IsTriggeredBy = value;\r\n }\r\n get _IsTriggeredBy(): string {\r\n return this.Out;\r\n }\r\n set _IsTriggeredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workable\r\n private __Triggers: Workable;\r\n\r\n Triggers(context?: BaseDataContext): Workable {\r\n if (this.__Triggers)\r\n return this.__Triggers;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Triggers) as Workable;\r\n }\r\n setTriggers(value: Workable) {\r\n this.__Triggers = value;\r\n }\r\n get _Triggers(): string {\r\n return this.In;\r\n }\r\n set _Triggers(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): ServiceLevel {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): ServiceLevel {\r\n let clone = new ServiceLevel();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class ServiceLevelAgreement extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ServiceLevelAgreement\";\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get CorrelationKey(): string {\r\n return this.data.CorrelationKey;\r\n }\r\n get Version(): number {\r\n return this.data.Version;\r\n }\r\n get ReplacedByVersion(): number {\r\n return this.data.ReplacedByVersion;\r\n }\r\n get UpdatedTime(): Date {\r\n return this.data.UpdatedTime ? new Date(this.data.UpdatedTime) : undefined;\r\n }\r\n get UpdatedByIdentity(): string {\r\n return this.data.UpdatedByIdentity;\r\n }\r\n get DeletedByIdentity(): string {\r\n return this.data.DeletedByIdentity;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get TimeToCompleteValue(): number {\r\n return this.data.TimeToCompleteValue;\r\n }\r\n set TimeToCompleteValue(value: number) {\r\n this.data.TimeToCompleteValue = value;\r\n }\r\n get TimeToCompleteUnits(): string {\r\n return this.data.TimeToCompleteUnits;\r\n }\r\n set TimeToCompleteUnits(value: string) {\r\n this.data.TimeToCompleteUnits = value;\r\n }\r\n get ExcludeWeekends(): boolean {\r\n return this.data.ExcludeWeekends;\r\n }\r\n set ExcludeWeekends(value: boolean) {\r\n this.data.ExcludeWeekends = value;\r\n }\r\n get ExcludeHolidays(): boolean {\r\n return this.data.ExcludeHolidays;\r\n }\r\n set ExcludeHolidays(value: boolean) {\r\n this.data.ExcludeHolidays = value;\r\n }\r\n get Enabled(): boolean {\r\n return this.data.Enabled;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ServiceLevelAgreement {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ServiceLevelAgreement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n CorrelationKey: model.CorrelationKey,\r\n Version: model.Version,\r\n ReplacedByVersion: model.ReplacedByVersion,\r\n UpdatedTime: model.UpdatedTime,\r\n UpdatedByIdentity: model.UpdatedByIdentity,\r\n DeletedByIdentity: model.DeletedByIdentity,\r\n Id: model.Id,\r\n Name: model.Name,\r\n TimeToCompleteValue: model.TimeToCompleteValue,\r\n TimeToCompleteUnits: model.TimeToCompleteUnits,\r\n ExcludeWeekends: model.ExcludeWeekends,\r\n ExcludeHolidays: model.ExcludeHolidays,\r\n Enabled: model.Enabled,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ServiceLevelAgreement {\r\n let clone = new ServiceLevelAgreement();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ISMIdentity {\r\n Id: string,\r\n DisplayName?: string,\r\n BadgePath?: string,\r\n LastLoginDate?: Date,\r\n readonly Active: boolean,\r\n\r\n FillsSecurityRole?: object[],\r\n WorksIn?: object[]\r\n\r\n}\r\n\r\nexport class SMIdentity extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentity\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof SMIdentity }[] = [\r\n {className: 'App', type: App},\r\n {className: 'Contact', type: Contact},\r\n {className: 'Developer', type: Developer},\r\n {className: 'TenantUser', type: TenantUser},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DisplayName(): string {\r\n return this.data.DisplayName;\r\n }\r\n set DisplayName(value: string) {\r\n this.data.DisplayName = value;\r\n }\r\n get BadgePath(): string {\r\n return this.data.BadgePath;\r\n }\r\n set BadgePath(value: string) {\r\n this.data.BadgePath = value;\r\n }\r\n get LastLoginDate(): Date {\r\n return this.data.LastLoginDate ? new Date(this.data.LastLoginDate) : undefined;\r\n }\r\n set LastLoginDate(value: Date) {\r\n this.data.LastLoginDate = value;\r\n }\r\n get Active(): boolean {\r\n return this.data.Active;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship FillsSecurityRole, returns SecurityRole SMIdentityFillsSecurityRole[]\r\n private __FillsSecurityRole: SMIdentityFillsSecurityRole[];\r\n FillsSecurityRole(_context?: BaseDataContext): SMIdentityFillsSecurityRole[] {\r\n if (this.__FillsSecurityRole)\r\n return this.__FillsSecurityRole;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._FillsSecurityRole), (id) => context.get(id) as SMIdentityFillsSecurityRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setFillsSecurityRole(values: SMIdentityFillsSecurityRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__FillsSecurityRole = values;\r\n }\r\n get _FillsSecurityRole(): Set {\r\n if (!this._relationships.has(\"FillsSecurityRole\"))\r\n this._relationships.set(\"FillsSecurityRole\", new Set());\r\n\r\n return this._relationships.get(\"FillsSecurityRole\");\r\n }\r\n set _FillsSecurityRole(values: Set) {\r\n this._relationships.set(\"FillsSecurityRole\", values);\r\n }\r\n\r\n // Relationship WorksIn, returns Area SMIdentityWorksInArea[]\r\n private __WorksIn: SMIdentityWorksInArea[];\r\n WorksIn(_context?: BaseDataContext): SMIdentityWorksInArea[] {\r\n if (this.__WorksIn)\r\n return this.__WorksIn;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._WorksIn), (id) => context.get(id) as SMIdentityWorksInArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWorksIn(values: SMIdentityWorksInArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__WorksIn = values;\r\n }\r\n get _WorksIn(): Set {\r\n if (!this._relationships.has(\"WorksIn\"))\r\n this._relationships.set(\"WorksIn\", new Set());\r\n\r\n return this._relationships.get(\"WorksIn\");\r\n }\r\n set _WorksIn(values: Set) {\r\n this._relationships.set(\"WorksIn\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'FillsSecurityRole',\r\n edgeType: SMIdentityFillsSecurityRole,\r\n otherVertexPropertyName: 'IsFilledBy',\r\n otherVertexType: SecurityRole,\r\n },\r\n {\r\n propertyName: 'WorksIn',\r\n edgeType: SMIdentityWorksInArea,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: Area,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): SMIdentity {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: SMIdentity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n LastLoginDate: model.LastLoginDate,\r\n Active: model.Active,\r\n FillsSecurityRole: ModelUtils.serializeShallowEdge(model.FillsSecurityRole(), 'FillsSecurityRole'),\r\n WorksIn: ModelUtils.serializeShallowEdge(model.WorksIn(), 'WorksIn'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): SMIdentity {\r\n let clone = new SMIdentity();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._FillsSecurityRole = _.cloneDeep(this._FillsSecurityRole);\r\n clone._WorksIn = _.cloneDeep(this._WorksIn);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class SMIdentityFillsSecurityRole extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentityFillsSecurityRole\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __IsFilledBy: SMIdentity;\r\n\r\n IsFilledBy(context?: BaseDataContext): SMIdentity {\r\n if (this.__IsFilledBy)\r\n return this.__IsFilledBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsFilledBy) as SMIdentity;\r\n }\r\n setIsFilledBy(value: SMIdentity) {\r\n this.__IsFilledBy = value;\r\n }\r\n get _IsFilledBy(): string {\r\n return this.Out;\r\n }\r\n set _IsFilledBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to SecurityRole\r\n private __FillsSecurityRole: SecurityRole;\r\n\r\n FillsSecurityRole(context?: BaseDataContext): SecurityRole {\r\n if (this.__FillsSecurityRole)\r\n return this.__FillsSecurityRole;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._FillsSecurityRole) as SecurityRole;\r\n }\r\n setFillsSecurityRole(value: SecurityRole) {\r\n this.__FillsSecurityRole = value;\r\n }\r\n get _FillsSecurityRole(): string {\r\n return this.In;\r\n }\r\n set _FillsSecurityRole(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SMIdentityFillsSecurityRole {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SMIdentityFillsSecurityRole {\r\n let clone = new SMIdentityFillsSecurityRole();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class SMIdentityWorksInArea extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"SMIdentityWorksInArea\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to SMIdentity\r\n private __IsWorkedBy: SMIdentity;\r\n\r\n IsWorkedBy(context?: BaseDataContext): SMIdentity {\r\n if (this.__IsWorkedBy)\r\n return this.__IsWorkedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsWorkedBy) as SMIdentity;\r\n }\r\n setIsWorkedBy(value: SMIdentity) {\r\n this.__IsWorkedBy = value;\r\n }\r\n get _IsWorkedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsWorkedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Area\r\n private __WorksIn: Area;\r\n\r\n WorksIn(context?: BaseDataContext): Area {\r\n if (this.__WorksIn)\r\n return this.__WorksIn;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._WorksIn) as Area;\r\n }\r\n setWorksIn(value: Area) {\r\n this.__WorksIn = value;\r\n }\r\n get _WorksIn(): string {\r\n return this.In;\r\n }\r\n set _WorksIn(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): SMIdentityWorksInArea {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): SMIdentityWorksInArea {\r\n let clone = new SMIdentityWorksInArea();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskAssignedAssignable extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskAssignedAssignable\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Task\r\n private __InitialAssigneeFor: Task;\r\n\r\n InitialAssigneeFor(context?: BaseDataContext): Task {\r\n if (this.__InitialAssigneeFor)\r\n return this.__InitialAssigneeFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._InitialAssigneeFor) as Task;\r\n }\r\n setInitialAssigneeFor(value: Task) {\r\n this.__InitialAssigneeFor = value;\r\n }\r\n get _InitialAssigneeFor(): string {\r\n return this.Out;\r\n }\r\n set _InitialAssigneeFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Assignable\r\n private __InitiallyAssignedTo: Assignable;\r\n\r\n InitiallyAssignedTo(context?: BaseDataContext): Assignable {\r\n if (this.__InitiallyAssignedTo)\r\n return this.__InitiallyAssignedTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._InitiallyAssignedTo) as Assignable;\r\n }\r\n setInitiallyAssignedTo(value: Assignable) {\r\n this.__InitiallyAssignedTo = value;\r\n }\r\n get _InitiallyAssignedTo(): string {\r\n return this.In;\r\n }\r\n set _InitiallyAssignedTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskAssignedAssignable {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskAssignedAssignable {\r\n let clone = new TaskAssignedAssignable();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskCorrespondenceAttachesDocumentCategory extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondenceAttachesDocumentCategory\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ParameterName(): string {\r\n return this.data.ParameterName;\r\n }\r\n set ParameterName(value: string) {\r\n this.data.ParameterName = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TaskCorrespondence\r\n private __AttachedBy: TaskCorrespondence;\r\n\r\n AttachedBy(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__AttachedBy)\r\n return this.__AttachedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._AttachedBy) as TaskCorrespondence;\r\n }\r\n setAttachedBy(value: TaskCorrespondence) {\r\n this.__AttachedBy = value;\r\n }\r\n get _AttachedBy(): string {\r\n return this.Out;\r\n }\r\n set _AttachedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DocumentCategory\r\n private __Attaches: DocumentCategory;\r\n\r\n Attaches(context?: BaseDataContext): DocumentCategory {\r\n if (this.__Attaches)\r\n return this.__Attaches;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Attaches) as DocumentCategory;\r\n }\r\n setAttaches(value: DocumentCategory) {\r\n this.__Attaches = value;\r\n }\r\n get _Attaches(): string {\r\n return this.In;\r\n }\r\n set _Attaches(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskCorrespondenceAttachesDocumentCategory {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskCorrespondenceAttachesDocumentCategory {\r\n let clone = new TaskCorrespondenceAttachesDocumentCategory();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskCorrespondenceDeliversAccountRole extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondenceDeliversAccountRole\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get AddressType(): string {\r\n return this.data.AddressType;\r\n }\r\n set AddressType(value: string) {\r\n this.data.AddressType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TaskCorrespondence\r\n private __DeliveredBy: TaskCorrespondence;\r\n\r\n DeliveredBy(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliveredBy) as TaskCorrespondence;\r\n }\r\n setDeliveredBy(value: TaskCorrespondence) {\r\n this.__DeliveredBy = value;\r\n }\r\n get _DeliveredBy(): string {\r\n return this.Out;\r\n }\r\n set _DeliveredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to AccountRole\r\n private __DeliversAccount: AccountRole;\r\n\r\n DeliversAccount(context?: BaseDataContext): AccountRole {\r\n if (this.__DeliversAccount)\r\n return this.__DeliversAccount;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliversAccount) as AccountRole;\r\n }\r\n setDeliversAccount(value: AccountRole) {\r\n this.__DeliversAccount = value;\r\n }\r\n get _DeliversAccount(): string {\r\n return this.In;\r\n }\r\n set _DeliversAccount(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskCorrespondenceDeliversAccountRole {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskCorrespondenceDeliversAccountRole {\r\n let clone = new TaskCorrespondenceDeliversAccountRole();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskCorrespondenceDeliversDataPointEmail extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondenceDeliversDataPointEmail\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get AddressType(): string {\r\n return this.data.AddressType;\r\n }\r\n set AddressType(value: string) {\r\n this.data.AddressType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TaskCorrespondence\r\n private __DeliveredBy: TaskCorrespondence;\r\n\r\n DeliveredBy(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliveredBy) as TaskCorrespondence;\r\n }\r\n setDeliveredBy(value: TaskCorrespondence) {\r\n this.__DeliveredBy = value;\r\n }\r\n get _DeliveredBy(): string {\r\n return this.Out;\r\n }\r\n set _DeliveredBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPointEmail\r\n private __DeliversEmail: DataPointEmail;\r\n\r\n DeliversEmail(context?: BaseDataContext): DataPointEmail {\r\n if (this.__DeliversEmail)\r\n return this.__DeliversEmail;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DeliversEmail) as DataPointEmail;\r\n }\r\n setDeliversEmail(value: DataPointEmail) {\r\n this.__DeliversEmail = value;\r\n }\r\n get _DeliversEmail(): string {\r\n return this.In;\r\n }\r\n set _DeliversEmail(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskCorrespondenceDeliversDataPointEmail {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskCorrespondenceDeliversDataPointEmail {\r\n let clone = new TaskCorrespondenceDeliversDataPointEmail();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskCorrespondenceMailToDataGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondenceMailToDataGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TaskCorrespondence\r\n private __MailBy: TaskCorrespondence;\r\n\r\n MailBy(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__MailBy)\r\n return this.__MailBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._MailBy) as TaskCorrespondence;\r\n }\r\n setMailBy(value: TaskCorrespondence) {\r\n this.__MailBy = value;\r\n }\r\n get _MailBy(): string {\r\n return this.Out;\r\n }\r\n set _MailBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataGroup\r\n private __MailTo: DataGroup;\r\n\r\n MailTo(context?: BaseDataContext): DataGroup {\r\n if (this.__MailTo)\r\n return this.__MailTo;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._MailTo) as DataGroup;\r\n }\r\n setMailTo(value: DataGroup) {\r\n this.__MailTo = value;\r\n }\r\n get _MailTo(): string {\r\n return this.In;\r\n }\r\n set _MailTo(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskCorrespondenceMailToDataGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskCorrespondenceMailToDataGroup {\r\n let clone = new TaskCorrespondenceMailToDataGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskCorrespondenceMessagesEmailTemplate extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondenceMessagesEmailTemplate\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TaskCorrespondence\r\n private __MessagedBy: TaskCorrespondence;\r\n\r\n MessagedBy(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__MessagedBy)\r\n return this.__MessagedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._MessagedBy) as TaskCorrespondence;\r\n }\r\n setMessagedBy(value: TaskCorrespondence) {\r\n this.__MessagedBy = value;\r\n }\r\n get _MessagedBy(): string {\r\n return this.Out;\r\n }\r\n set _MessagedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to EmailTemplate\r\n private __Messages: EmailTemplate;\r\n\r\n Messages(context?: BaseDataContext): EmailTemplate {\r\n if (this.__Messages)\r\n return this.__Messages;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Messages) as EmailTemplate;\r\n }\r\n setMessages(value: EmailTemplate) {\r\n this.__Messages = value;\r\n }\r\n get _Messages(): string {\r\n return this.In;\r\n }\r\n set _Messages(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskCorrespondenceMessagesEmailTemplate {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskCorrespondenceMessagesEmailTemplate {\r\n let clone = new TaskCorrespondenceMessagesEmailTemplate();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TaskCorrespondenceParameterSubstitutesDataPoint extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondenceParameterSubstitutesDataPoint\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get ParameterName(): string {\r\n return this.data.ParameterName;\r\n }\r\n set ParameterName(value: string) {\r\n this.data.ParameterName = value;\r\n }\r\n get Path(): string {\r\n return this.data.Path;\r\n }\r\n set Path(value: string) {\r\n this.data.Path = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TaskCorrespondence\r\n private __ParameterSubstitutedBy: TaskCorrespondence;\r\n\r\n ParameterSubstitutedBy(context?: BaseDataContext): TaskCorrespondence {\r\n if (this.__ParameterSubstitutedBy)\r\n return this.__ParameterSubstitutedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ParameterSubstitutedBy) as TaskCorrespondence;\r\n }\r\n setParameterSubstitutedBy(value: TaskCorrespondence) {\r\n this.__ParameterSubstitutedBy = value;\r\n }\r\n get _ParameterSubstitutedBy(): string {\r\n return this.Out;\r\n }\r\n set _ParameterSubstitutedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to DataPoint\r\n private __ParameterSubstitutes: DataPoint;\r\n\r\n ParameterSubstitutes(context?: BaseDataContext): DataPoint {\r\n if (this.__ParameterSubstitutes)\r\n return this.__ParameterSubstitutes;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._ParameterSubstitutes) as DataPoint;\r\n }\r\n setParameterSubstitutes(value: DataPoint) {\r\n this.__ParameterSubstitutes = value;\r\n }\r\n get _ParameterSubstitutes(): string {\r\n return this.In;\r\n }\r\n set _ParameterSubstitutes(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TaskCorrespondenceParameterSubstitutesDataPoint {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TaskCorrespondenceParameterSubstitutesDataPoint {\r\n let clone = new TaskCorrespondenceParameterSubstitutesDataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface ITenantDeveloperOptions {\r\n Id: string,\r\n TenantKey: string,\r\n readonly ApiManagementSubscriptionPrimaryKey?: string,\r\n readonly ApiManagementSubscriptionSecondaryKey?: string\r\n\r\n\r\n\r\n}\r\n\r\nexport class TenantDeveloperOptions extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TenantDeveloperOptions\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TenantDeveloperOptions }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get TenantKey(): string {\r\n return this.data.TenantKey;\r\n }\r\n set TenantKey(value: string) {\r\n this.data.TenantKey = value;\r\n }\r\n get ApiManagementSubscriptionPrimaryKey(): string {\r\n return this.data.ApiManagementSubscriptionPrimaryKey;\r\n }\r\n get ApiManagementSubscriptionSecondaryKey(): string {\r\n return this.data.ApiManagementSubscriptionSecondaryKey;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TenantDeveloperOptions {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TenantDeveloperOptions) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n TenantKey: model.TenantKey,\r\n ApiManagementSubscriptionPrimaryKey: model.ApiManagementSubscriptionPrimaryKey,\r\n ApiManagementSubscriptionSecondaryKey: model.ApiManagementSubscriptionSecondaryKey,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantDeveloperOptions {\r\n let clone = new TenantDeveloperOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class TenantUserDevelopsAsDeveloper extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TenantUserDevelopsAsDeveloper\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Developer\r\n private __DevelopsAs: Developer;\r\n\r\n DevelopsAs(context?: BaseDataContext): Developer {\r\n if (this.__DevelopsAs)\r\n return this.__DevelopsAs;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._DevelopsAs) as Developer;\r\n }\r\n setDevelopsAs(value: Developer) {\r\n this.__DevelopsAs = value;\r\n }\r\n get _DevelopsAs(): string {\r\n return this.Out;\r\n }\r\n set _DevelopsAs(value: string) {\r\n this.Out = value;\r\n }\r\n // In to TenantUser\r\n private __IsPersonaOf: TenantUser;\r\n\r\n IsPersonaOf(context?: BaseDataContext): TenantUser {\r\n if (this.__IsPersonaOf)\r\n return this.__IsPersonaOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsPersonaOf) as TenantUser;\r\n }\r\n setIsPersonaOf(value: TenantUser) {\r\n this.__IsPersonaOf = value;\r\n }\r\n get _IsPersonaOf(): string {\r\n return this.In;\r\n }\r\n set _IsPersonaOf(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantUserDevelopsAsDeveloper {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantUserDevelopsAsDeveloper {\r\n let clone = new TenantUserDevelopsAsDeveloper();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TenantUserMemberOfWorkGroup extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TenantUserMemberOfWorkGroup\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get DateOfMembership(): Date {\r\n return this.data.DateOfMembership ? new Date(this.data.DateOfMembership) : undefined;\r\n }\r\n set DateOfMembership(value: Date) {\r\n this.data.DateOfMembership = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to TenantUser\r\n private __HasMembers: TenantUser;\r\n\r\n HasMembers(context?: BaseDataContext): TenantUser {\r\n if (this.__HasMembers)\r\n return this.__HasMembers;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._HasMembers) as TenantUser;\r\n }\r\n setHasMembers(value: TenantUser) {\r\n this.__HasMembers = value;\r\n }\r\n get _HasMembers(): string {\r\n return this.Out;\r\n }\r\n set _HasMembers(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkGroup\r\n private __IsMemberOf: WorkGroup;\r\n\r\n IsMemberOf(context?: BaseDataContext): WorkGroup {\r\n if (this.__IsMemberOf)\r\n return this.__IsMemberOf;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsMemberOf) as WorkGroup;\r\n }\r\n setIsMemberOf(value: WorkGroup) {\r\n this.__IsMemberOf = value;\r\n }\r\n get _IsMemberOf(): string {\r\n return this.In;\r\n }\r\n set _IsMemberOf(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): TenantUserMemberOfWorkGroup {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): TenantUserMemberOfWorkGroup {\r\n let clone = new TenantUserMemberOfWorkGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class TransactionType extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TransactionType\";\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Action(): string {\r\n return this.data.Action;\r\n }\r\n set Action(value: string) {\r\n this.data.Action = value;\r\n }\r\n get PolicyStateConstraint(): string {\r\n return this.data.PolicyStateConstraint;\r\n }\r\n set PolicyStateConstraint(value: string) {\r\n this.data.PolicyStateConstraint = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): TransactionType {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: TransactionType) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeletedDate: model.DeletedDate,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Action: model.Action,\r\n PolicyStateConstraint: model.PolicyStateConstraint,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TransactionType {\r\n let clone = new TransactionType();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IUserNotificationCenter {\r\n Id: string,\r\n IdentityKey: string,\r\n EnableInAppNotificationPopups: boolean,\r\n NotificationTypeSettings?: { [index: string]: boolean },\r\n ExpirationDurationOfReadNotificationsInDays: number,\r\n\r\n IsAlertedBy?: object[]\r\n\r\n}\r\n\r\nexport class UserNotificationCenter extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"UserNotificationCenter\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof UserNotificationCenter }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get IdentityKey(): string {\r\n return this.data.IdentityKey;\r\n }\r\n set IdentityKey(value: string) {\r\n this.data.IdentityKey = value;\r\n }\r\n get EnableInAppNotificationPopups(): boolean {\r\n return this.data.EnableInAppNotificationPopups;\r\n }\r\n set EnableInAppNotificationPopups(value: boolean) {\r\n this.data.EnableInAppNotificationPopups = value;\r\n }\r\n get NotificationTypeSettings(): { [index: string]: boolean } {\r\n return this.data.NotificationTypeSettings;\r\n }\r\n set NotificationTypeSettings(value: { [index: string]: boolean }) {\r\n this.data.NotificationTypeSettings = value;\r\n }\r\n get ExpirationDurationOfReadNotificationsInDays(): number {\r\n return this.data.ExpirationDurationOfReadNotificationsInDays;\r\n }\r\n set ExpirationDurationOfReadNotificationsInDays(value: number) {\r\n this.data.ExpirationDurationOfReadNotificationsInDays = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsAlertedBy, returns Notification UserNotificationCenterIsAlertedByNotification[]\r\n private __IsAlertedBy: UserNotificationCenterIsAlertedByNotification[];\r\n IsAlertedBy(_context?: BaseDataContext): UserNotificationCenterIsAlertedByNotification[] {\r\n if (this.__IsAlertedBy)\r\n return this.__IsAlertedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsAlertedBy), (id) => context.get(id) as UserNotificationCenterIsAlertedByNotification);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsAlertedBy(values: UserNotificationCenterIsAlertedByNotification[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsAlertedBy = values;\r\n }\r\n get _IsAlertedBy(): Set {\r\n if (!this._relationships.has(\"IsAlertedBy\"))\r\n this._relationships.set(\"IsAlertedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsAlertedBy\");\r\n }\r\n set _IsAlertedBy(values: Set) {\r\n this._relationships.set(\"IsAlertedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsAlertedBy',\r\n edgeType: UserNotificationCenterIsAlertedByNotification,\r\n otherVertexPropertyName: 'Alerts',\r\n otherVertexType: Notification,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): UserNotificationCenter {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: UserNotificationCenter) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n IdentityKey: model.IdentityKey,\r\n EnableInAppNotificationPopups: model.EnableInAppNotificationPopups,\r\n NotificationTypeSettings: model.NotificationTypeSettings,\r\n ExpirationDurationOfReadNotificationsInDays: model.ExpirationDurationOfReadNotificationsInDays,\r\n IsAlertedBy: ModelUtils.serializeShallowEdge(model.IsAlertedBy(), 'IsAlertedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UserNotificationCenter {\r\n let clone = new UserNotificationCenter();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsAlertedBy = _.cloneDeep(this._IsAlertedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class UserNotificationCenterIsAlertedByNotification extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"UserNotificationCenterIsAlertedByNotification\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Read(): boolean {\r\n return this.data.Read;\r\n }\r\n set Read(value: boolean) {\r\n this.data.Read = value;\r\n }\r\n get ExpirationDate(): Date {\r\n return this.data.ExpirationDate ? new Date(this.data.ExpirationDate) : undefined;\r\n }\r\n set ExpirationDate(value: Date) {\r\n this.data.ExpirationDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to UserNotificationCenter\r\n private __Alerts: UserNotificationCenter;\r\n\r\n Alerts(context?: BaseDataContext): UserNotificationCenter {\r\n if (this.__Alerts)\r\n return this.__Alerts;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Alerts) as UserNotificationCenter;\r\n }\r\n setAlerts(value: UserNotificationCenter) {\r\n this.__Alerts = value;\r\n }\r\n get _Alerts(): string {\r\n return this.Out;\r\n }\r\n set _Alerts(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Notification\r\n private __IsAlertedBy: Notification;\r\n\r\n IsAlertedBy(context?: BaseDataContext): Notification {\r\n if (this.__IsAlertedBy)\r\n return this.__IsAlertedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsAlertedBy) as Notification;\r\n }\r\n setIsAlertedBy(value: Notification) {\r\n this.__IsAlertedBy = value;\r\n }\r\n get _IsAlertedBy(): string {\r\n return this.In;\r\n }\r\n set _IsAlertedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): UserNotificationCenterIsAlertedByNotification {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): UserNotificationCenterIsAlertedByNotification {\r\n let clone = new UserNotificationCenterIsAlertedByNotification();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWebhook {\r\n Id: string,\r\n Name: string,\r\n Description: string,\r\n IsActive: boolean,\r\n Security: string,\r\n HTTPMethod: string,\r\n AreaUrls?: { [index: string]: string },\r\n Mode?: string,\r\n Timeout?: number\r\n\r\n\r\n\r\n}\r\n\r\nexport class Webhook extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Webhook\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Webhook }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get IsActive(): boolean {\r\n return this.data.IsActive;\r\n }\r\n set IsActive(value: boolean) {\r\n this.data.IsActive = value;\r\n }\r\n get Security(): string {\r\n return this.data.Security;\r\n }\r\n set Security(value: string) {\r\n this.data.Security = value;\r\n }\r\n get HTTPMethod(): string {\r\n return this.data.HTTPMethod;\r\n }\r\n set HTTPMethod(value: string) {\r\n this.data.HTTPMethod = value;\r\n }\r\n get AreaUrls(): { [index: string]: string } {\r\n return this.data.AreaUrls;\r\n }\r\n set AreaUrls(value: { [index: string]: string }) {\r\n this.data.AreaUrls = value;\r\n }\r\n get Mode(): string {\r\n return this.data.Mode;\r\n }\r\n set Mode(value: string) {\r\n this.data.Mode = value;\r\n }\r\n get Timeout(): number {\r\n return this.data.Timeout;\r\n }\r\n set Timeout(value: number) {\r\n this.data.Timeout = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Webhook {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Webhook) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n IsActive: model.IsActive,\r\n Security: model.Security,\r\n HTTPMethod: model.HTTPMethod,\r\n AreaUrls: model.AreaUrls,\r\n Mode: model.Mode,\r\n Timeout: model.Timeout,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Webhook {\r\n let clone = new Webhook();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WebhookActivity extends DocumentModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WebhookActivity\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get EventId(): string {\r\n return this.data.EventId;\r\n }\r\n set EventId(value: string) {\r\n this.data.EventId = value;\r\n }\r\n get AccountId(): string {\r\n return this.data.AccountId;\r\n }\r\n set AccountId(value: string) {\r\n this.data.AccountId = value;\r\n }\r\n get AreaKey(): string {\r\n return this.data.AreaKey;\r\n }\r\n set AreaKey(value: string) {\r\n this.data.AreaKey = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n set Status(value: string) {\r\n this.data.Status = value;\r\n }\r\n get EventTimeStamp(): Date {\r\n return this.data.EventTimeStamp ? new Date(this.data.EventTimeStamp) : undefined;\r\n }\r\n set EventTimeStamp(value: Date) {\r\n this.data.EventTimeStamp = value;\r\n }\r\n get SentTimeStamp(): Date {\r\n return this.data.SentTimeStamp ? new Date(this.data.SentTimeStamp) : undefined;\r\n }\r\n set SentTimeStamp(value: Date) {\r\n this.data.SentTimeStamp = value;\r\n }\r\n get CompletedTimeStamp(): Date {\r\n return this.data.CompletedTimeStamp ? new Date(this.data.CompletedTimeStamp) : undefined;\r\n }\r\n set CompletedTimeStamp(value: Date) {\r\n this.data.CompletedTimeStamp = value;\r\n }\r\n get Messages(): string[] {\r\n return this.data.Messages;\r\n }\r\n set Messages(value: string[]) {\r\n this.data.Messages = value;\r\n }\r\n get WebhookDefinitionId(): string {\r\n return this.data.WebhookDefinitionId;\r\n }\r\n set WebhookDefinitionId(value: string) {\r\n this.data.WebhookDefinitionId = value;\r\n }\r\n get SendWebhookMessage(): any {\r\n return this.data.SendWebhookMessage;\r\n }\r\n set SendWebhookMessage(value: any) {\r\n this.data.SendWebhookMessage = value;\r\n }\r\n get Mode(): string {\r\n return this.data.Mode;\r\n }\r\n set Mode(value: string) {\r\n this.data.Mode = value;\r\n }\r\n get WebhookName(): string {\r\n return this.data.WebhookName;\r\n }\r\n set WebhookName(value: string) {\r\n this.data.WebhookName = value;\r\n }\r\n get AccountNumber(): string {\r\n return this.data.AccountNumber;\r\n }\r\n set AccountNumber(value: string) {\r\n this.data.AccountNumber = value;\r\n }\r\n get ActionName(): string {\r\n return this.data.ActionName;\r\n }\r\n set ActionName(value: string) {\r\n this.data.ActionName = value;\r\n }\r\n get EventName(): string {\r\n return this.data.EventName;\r\n }\r\n set EventName(value: string) {\r\n this.data.EventName = value;\r\n }\r\n get EntityName(): string {\r\n return this.data.EntityName;\r\n }\r\n set EntityName(value: string) {\r\n this.data.EntityName = value;\r\n }\r\n get CustomOperation(): string {\r\n return this.data.CustomOperation;\r\n }\r\n set CustomOperation(value: string) {\r\n this.data.CustomOperation = value;\r\n }\r\n get AcknowledgedOn(): Date {\r\n return this.data.AcknowledgedOn ? new Date(this.data.AcknowledgedOn) : undefined;\r\n }\r\n set AcknowledgedOn(value: Date) {\r\n this.data.AcknowledgedOn = value;\r\n }\r\n get WorkflowId(): string {\r\n return this.data.WorkflowId;\r\n }\r\n set WorkflowId(value: string) {\r\n this.data.WorkflowId = value;\r\n }\r\n get ActivityMadeStale(): string {\r\n return this.data.ActivityMadeStale;\r\n }\r\n set ActivityMadeStale(value: string) {\r\n this.data.ActivityMadeStale = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): WebhookActivity {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: WebhookActivity) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n EventId: model.EventId,\r\n AccountId: model.AccountId,\r\n AreaKey: model.AreaKey,\r\n Status: model.Status,\r\n EventTimeStamp: model.EventTimeStamp,\r\n SentTimeStamp: model.SentTimeStamp,\r\n CompletedTimeStamp: model.CompletedTimeStamp,\r\n Messages: model.Messages,\r\n WebhookDefinitionId: model.WebhookDefinitionId,\r\n SendWebhookMessage: model.SendWebhookMessage,\r\n Mode: model.Mode,\r\n WebhookName: model.WebhookName,\r\n AccountNumber: model.AccountNumber,\r\n ActionName: model.ActionName,\r\n EventName: model.EventName,\r\n EntityName: model.EntityName,\r\n CustomOperation: model.CustomOperation,\r\n AcknowledgedOn: model.AcknowledgedOn,\r\n WorkflowId: model.WorkflowId,\r\n ActivityMadeStale: model.ActivityMadeStale,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WebhookActivity {\r\n let clone = new WebhookActivity();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWidget {\r\n Sequence?: string[],\r\n Id: string,\r\n Title?: string,\r\n WidgetType?: string,\r\n AssociatedId?: string,\r\n ShowDataWhenValueIsNull?: boolean\r\n\r\n IsUsedBy?: object[]\r\n\r\n}\r\n\r\nexport class Widget extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Widget\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Widget }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Title(): string {\r\n return this.data.Title;\r\n }\r\n set Title(value: string) {\r\n this.data.Title = value;\r\n }\r\n get WidgetType(): string {\r\n return this.data.WidgetType;\r\n }\r\n set WidgetType(value: string) {\r\n this.data.WidgetType = value;\r\n }\r\n get AssociatedId(): string {\r\n return this.data.AssociatedId;\r\n }\r\n set AssociatedId(value: string) {\r\n this.data.AssociatedId = value;\r\n }\r\n get ShowDataWhenValueIsNull(): boolean {\r\n return this.data.ShowDataWhenValueIsNull;\r\n }\r\n set ShowDataWhenValueIsNull(value: boolean) {\r\n this.data.ShowDataWhenValueIsNull = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsUsedBy, returns DataPanel DataPanelUsesWidget[]\r\n private __IsUsedBy: DataPanelUsesWidget[];\r\n IsUsedBy(_context?: BaseDataContext): DataPanelUsesWidget[] {\r\n if (this.__IsUsedBy)\r\n return this.__IsUsedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsUsedBy), (id) => context.get(id) as DataPanelUsesWidget);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsUsedBy(values: DataPanelUsesWidget[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsUsedBy = values;\r\n }\r\n get _IsUsedBy(): Set {\r\n if (!this._relationships.has(\"IsUsedBy\"))\r\n this._relationships.set(\"IsUsedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsUsedBy\");\r\n }\r\n set _IsUsedBy(values: Set) {\r\n this._relationships.set(\"IsUsedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsUsedBy',\r\n edgeType: DataPanelUsesWidget,\r\n otherVertexPropertyName: 'Uses',\r\n otherVertexType: DataPanel,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Widget {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Widget) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Title: model.Title,\r\n WidgetType: model.WidgetType,\r\n AssociatedId: model.AssociatedId,\r\n ShowDataWhenValueIsNull: model.ShowDataWhenValueIsNull,\r\n IsUsedBy: ModelUtils.serializeShallowEdge(model.IsUsedBy(), 'IsUsedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Widget {\r\n let clone = new Widget();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsUsedBy = _.cloneDeep(this._IsUsedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IWorkable {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class Workable extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Workable\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Workable }[] = [\r\n {className: 'Phase', type: Phase},\r\n {className: 'Task', type: Task},\r\n {className: 'TaskApplication', type: TaskApplication},\r\n {className: 'TaskApproval', type: TaskApproval},\r\n {className: 'TaskClearance', type: TaskClearance},\r\n {className: 'TaskCorrespondence', type: TaskCorrespondence},\r\n {className: 'TaskDocumentGeneration', type: TaskDocumentGeneration},\r\n {className: 'TaskFileRequirement', type: TaskFileRequirement},\r\n {className: 'TaskManual', type: TaskManual},\r\n {className: 'TaskPolicyDates', type: TaskPolicyDates},\r\n {className: 'TaskProducts', type: TaskProducts},\r\n {className: 'TaskRatingSystem', type: TaskRatingSystem},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get WaitingForIds(): string[] {\r\n return this.data.WaitingForIds;\r\n }\r\n set WaitingForIds(value: string[]) {\r\n this.data.WaitingForIds = value;\r\n }\r\n get OnBeforeCompleteEventActions(): any[] {\r\n return this.data.OnBeforeCompleteEventActions;\r\n }\r\n set OnBeforeCompleteEventActions(value: any[]) {\r\n this.data.OnBeforeCompleteEventActions = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsTriggeredBy, returns Workable ServiceLevel[]\r\n private __IsTriggeredBy: ServiceLevel[];\r\n IsTriggeredBy(_context?: BaseDataContext): ServiceLevel[] {\r\n if (this.__IsTriggeredBy)\r\n return this.__IsTriggeredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsTriggeredBy), (id) => context.get(id) as ServiceLevel);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsTriggeredBy(values: ServiceLevel[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsTriggeredBy = values;\r\n }\r\n get _IsTriggeredBy(): Set {\r\n if (!this._relationships.has(\"IsTriggeredBy\"))\r\n this._relationships.set(\"IsTriggeredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsTriggeredBy\");\r\n }\r\n set _IsTriggeredBy(values: Set) {\r\n this._relationships.set(\"IsTriggeredBy\", values);\r\n }\r\n\r\n // Relationship WaitsFor, returns Workable WorkableEnablesWorkable[]\r\n private __WaitsFor: WorkableEnablesWorkable[];\r\n WaitsFor(_context?: BaseDataContext): WorkableEnablesWorkable[] {\r\n if (this.__WaitsFor)\r\n return this.__WaitsFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._WaitsFor), (id) => context.get(id) as WorkableEnablesWorkable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setWaitsFor(values: WorkableEnablesWorkable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__WaitsFor = values;\r\n }\r\n get _WaitsFor(): Set {\r\n if (!this._relationships.has(\"WaitsFor\"))\r\n this._relationships.set(\"WaitsFor\", new Set());\r\n\r\n return this._relationships.get(\"WaitsFor\");\r\n }\r\n set _WaitsFor(values: Set) {\r\n this._relationships.set(\"WaitsFor\", values);\r\n }\r\n\r\n // Relationship Triggers, returns Workable ServiceLevel[]\r\n private __Triggers: ServiceLevel[];\r\n Triggers(_context?: BaseDataContext): ServiceLevel[] {\r\n if (this.__Triggers)\r\n return this.__Triggers;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Triggers), (id) => context.get(id) as ServiceLevel);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setTriggers(values: ServiceLevel[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Triggers = values;\r\n }\r\n get _Triggers(): Set {\r\n if (!this._relationships.has(\"Triggers\"))\r\n this._relationships.set(\"Triggers\", new Set());\r\n\r\n return this._relationships.get(\"Triggers\");\r\n }\r\n set _Triggers(values: Set) {\r\n this._relationships.set(\"Triggers\", values);\r\n }\r\n\r\n // Relationship Enables, returns Workable WorkableEnablesWorkable[]\r\n private __Enables: WorkableEnablesWorkable[];\r\n Enables(_context?: BaseDataContext): WorkableEnablesWorkable[] {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Enables), (id) => context.get(id) as WorkableEnablesWorkable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEnables(values: WorkableEnablesWorkable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Enables = values;\r\n }\r\n get _Enables(): Set {\r\n if (!this._relationships.has(\"Enables\"))\r\n this._relationships.set(\"Enables\", new Set());\r\n\r\n return this._relationships.get(\"Enables\");\r\n }\r\n set _Enables(values: Set) {\r\n this._relationships.set(\"Enables\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Workable {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Workable) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Workable {\r\n let clone = new Workable();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WorkableEnablesWorkable extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkableEnablesWorkable\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get Event(): string {\r\n return this.data.Event;\r\n }\r\n set Event(value: string) {\r\n this.data.Event = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workable\r\n private __WaitsFor: Workable;\r\n\r\n WaitsFor(context?: BaseDataContext): Workable {\r\n if (this.__WaitsFor)\r\n return this.__WaitsFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._WaitsFor) as Workable;\r\n }\r\n setWaitsFor(value: Workable) {\r\n this.__WaitsFor = value;\r\n }\r\n get _WaitsFor(): string {\r\n return this.Out;\r\n }\r\n set _WaitsFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workable\r\n private __Enables: Workable;\r\n\r\n Enables(context?: BaseDataContext): Workable {\r\n if (this.__Enables)\r\n return this.__Enables;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Enables) as Workable;\r\n }\r\n setEnables(value: Workable) {\r\n this.__Enables = value;\r\n }\r\n get _Enables(): string {\r\n return this.In;\r\n }\r\n set _Enables(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkableEnablesWorkable {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkableEnablesWorkable {\r\n let clone = new WorkableEnablesWorkable();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class WorkflowConfiguredByWorkflowOptions extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowConfiguredByWorkflowOptions\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __Configures: Workflow;\r\n\r\n Configures(context?: BaseDataContext): Workflow {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Configures) as Workflow;\r\n }\r\n setConfigures(value: Workflow) {\r\n this.__Configures = value;\r\n }\r\n get _Configures(): string {\r\n return this.Out;\r\n }\r\n set _Configures(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkflowOptions\r\n private __IsConfiguredBy: WorkflowOptions;\r\n\r\n IsConfiguredBy(context?: BaseDataContext): WorkflowOptions {\r\n if (this.__IsConfiguredBy)\r\n return this.__IsConfiguredBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsConfiguredBy) as WorkflowOptions;\r\n }\r\n setIsConfiguredBy(value: WorkflowOptions) {\r\n this.__IsConfiguredBy = value;\r\n }\r\n get _IsConfiguredBy(): string {\r\n return this.In;\r\n }\r\n set _IsConfiguredBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowConfiguredByWorkflowOptions {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowConfiguredByWorkflowOptions {\r\n let clone = new WorkflowConfiguredByWorkflowOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport class WorkflowIsSequencedByWorkflowSequence extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowIsSequencedByWorkflowSequence\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __Sequences: Workflow;\r\n\r\n Sequences(context?: BaseDataContext): Workflow {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Sequences) as Workflow;\r\n }\r\n setSequences(value: Workflow) {\r\n this.__Sequences = value;\r\n }\r\n get _Sequences(): string {\r\n return this.Out;\r\n }\r\n set _Sequences(value: string) {\r\n this.Out = value;\r\n }\r\n // In to WorkflowSequence\r\n private __IsSequencedBy: WorkflowSequence;\r\n\r\n IsSequencedBy(context?: BaseDataContext): WorkflowSequence {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsSequencedBy) as WorkflowSequence;\r\n }\r\n setIsSequencedBy(value: WorkflowSequence) {\r\n this.__IsSequencedBy = value;\r\n }\r\n get _IsSequencedBy(): string {\r\n return this.In;\r\n }\r\n set _IsSequencedBy(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowIsSequencedByWorkflowSequence {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowIsSequencedByWorkflowSequence {\r\n let clone = new WorkflowIsSequencedByWorkflowSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWorkflowOptions {\r\n Id: string,\r\n AddType?: string,\r\n AddTransactionId?: string,\r\n AddAllOtherTransactionId?: string,\r\n ModifyTransactionId?: string,\r\n RemoveTransactionId?: string,\r\n ProductEligibility?: { [index: string]: ActionEligibilityStatus }\r\n\r\n Configures?: object[]\r\n\r\n}\r\n\r\nexport class WorkflowOptions extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowOptions\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof WorkflowOptions }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n get AddType(): string {\r\n return this.data.AddType;\r\n }\r\n set AddType(value: string) {\r\n this.data.AddType = value;\r\n }\r\n get AddTransactionId(): string {\r\n return this.data.AddTransactionId;\r\n }\r\n set AddTransactionId(value: string) {\r\n this.data.AddTransactionId = value;\r\n }\r\n get AddAllOtherTransactionId(): string {\r\n return this.data.AddAllOtherTransactionId;\r\n }\r\n set AddAllOtherTransactionId(value: string) {\r\n this.data.AddAllOtherTransactionId = value;\r\n }\r\n get ModifyTransactionId(): string {\r\n return this.data.ModifyTransactionId;\r\n }\r\n set ModifyTransactionId(value: string) {\r\n this.data.ModifyTransactionId = value;\r\n }\r\n get RemoveTransactionId(): string {\r\n return this.data.RemoveTransactionId;\r\n }\r\n set RemoveTransactionId(value: string) {\r\n this.data.RemoveTransactionId = value;\r\n }\r\n get ProductEligibility(): { [index: string]: ActionEligibilityStatus } {\r\n return this.data.ProductEligibility;\r\n }\r\n set ProductEligibility(value: { [index: string]: ActionEligibilityStatus }) {\r\n this.data.ProductEligibility = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Configures, returns Workflow WorkflowConfiguredByWorkflowOptions[]\r\n private __Configures: WorkflowConfiguredByWorkflowOptions[];\r\n Configures(_context?: BaseDataContext): WorkflowConfiguredByWorkflowOptions[] {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Configures), (id) => context.get(id) as WorkflowConfiguredByWorkflowOptions);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setConfigures(values: WorkflowConfiguredByWorkflowOptions[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Configures = values;\r\n }\r\n get _Configures(): Set {\r\n if (!this._relationships.has(\"Configures\"))\r\n this._relationships.set(\"Configures\", new Set());\r\n\r\n return this._relationships.get(\"Configures\");\r\n }\r\n set _Configures(values: Set) {\r\n this._relationships.set(\"Configures\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Configures',\r\n edgeType: WorkflowConfiguredByWorkflowOptions,\r\n otherVertexPropertyName: 'IsConfiguredBy',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): WorkflowOptions {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: WorkflowOptions) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n AddType: model.AddType,\r\n AddTransactionId: model.AddTransactionId,\r\n AddAllOtherTransactionId: model.AddAllOtherTransactionId,\r\n ModifyTransactionId: model.ModifyTransactionId,\r\n RemoveTransactionId: model.RemoveTransactionId,\r\n ProductEligibility: model.ProductEligibility,\r\n Configures: ModelUtils.serializeShallowEdge(model.Configures(), 'Configures'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WorkflowOptions {\r\n let clone = new WorkflowOptions();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Configures = _.cloneDeep(this._Configures);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WorkflowRequiresPhase extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowRequiresPhase\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to Workflow\r\n private __IsRequiredFor: Workflow;\r\n\r\n IsRequiredFor(context?: BaseDataContext): Workflow {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsRequiredFor) as Workflow;\r\n }\r\n setIsRequiredFor(value: Workflow) {\r\n this.__IsRequiredFor = value;\r\n }\r\n get _IsRequiredFor(): string {\r\n return this.Out;\r\n }\r\n set _IsRequiredFor(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Phase\r\n private __Requires: Phase;\r\n\r\n Requires(context?: BaseDataContext): Phase {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Requires) as Phase;\r\n }\r\n setRequires(value: Phase) {\r\n this.__Requires = value;\r\n }\r\n get _Requires(): string {\r\n return this.In;\r\n }\r\n set _Requires(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowRequiresPhase {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowRequiresPhase {\r\n let clone = new WorkflowRequiresPhase();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IWorkflowSequence {\r\n Sequence?: string[],\r\n Id: string\r\n\r\n Sequences?: object[]\r\n\r\n}\r\n\r\nexport class WorkflowSequence extends VertexModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowSequence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof WorkflowSequence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Sequences, returns Workflow WorkflowIsSequencedByWorkflowSequence[]\r\n private __Sequences: WorkflowIsSequencedByWorkflowSequence[];\r\n Sequences(_context?: BaseDataContext): WorkflowIsSequencedByWorkflowSequence[] {\r\n if (this.__Sequences)\r\n return this.__Sequences;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Sequences), (id) => context.get(id) as WorkflowIsSequencedByWorkflowSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSequences(values: WorkflowIsSequencedByWorkflowSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Sequences = values;\r\n }\r\n get _Sequences(): Set {\r\n if (!this._relationships.has(\"Sequences\"))\r\n this._relationships.set(\"Sequences\", new Set());\r\n\r\n return this._relationships.get(\"Sequences\");\r\n }\r\n set _Sequences(values: Set) {\r\n this._relationships.set(\"Sequences\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Sequences',\r\n edgeType: WorkflowIsSequencedByWorkflowSequence,\r\n otherVertexPropertyName: 'IsSequencedBy',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): WorkflowSequence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: WorkflowSequence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n Sequences: ModelUtils.serializeShallowEdge(model.Sequences(), 'Sequences'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WorkflowSequence {\r\n let clone = new WorkflowSequence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._Sequences = _.cloneDeep(this._Sequences);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class WorkflowSetContainsWorkflow extends EdgeModel {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowSetContainsWorkflow\";\r\n }\r\n\r\n // Properties\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Out to WorkflowSet\r\n private __IsContainedBy: WorkflowSet;\r\n\r\n IsContainedBy(context?: BaseDataContext): WorkflowSet {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._IsContainedBy) as WorkflowSet;\r\n }\r\n setIsContainedBy(value: WorkflowSet) {\r\n this.__IsContainedBy = value;\r\n }\r\n get _IsContainedBy(): string {\r\n return this.Out;\r\n }\r\n set _IsContainedBy(value: string) {\r\n this.Out = value;\r\n }\r\n // In to Workflow\r\n private __Contains: Workflow;\r\n\r\n Contains(context?: BaseDataContext): Workflow {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n\r\n const _context = context || this.Context;\r\n if(!_context) return null;\r\n return _context.get(this._Contains) as Workflow;\r\n }\r\n setContains(value: Workflow) {\r\n this.__Contains = value;\r\n }\r\n get _Contains(): string {\r\n return this.In;\r\n }\r\n set _Contains(value: string) {\r\n this.In = value;\r\n }\r\n\r\n deserialize(input: Object, datacontext): WorkflowSetContainsWorkflow {\r\n return ModelUtils.deserializeEdge(this, input, datacontext, super._deserialize);\r\n }\r\n\r\n\r\n clone(): WorkflowSetContainsWorkflow {\r\n let clone = new WorkflowSetContainsWorkflow();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IAccountRole {\r\n Id: string,\r\n Initials: string,\r\n DisplayName: string,\r\n BadgePath?: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n Description: string,\r\n UserType: string\r\n\r\n IsObligatedBy?: object[],\r\n InitialAssigneeFor?: object[],\r\n DeliveredBy?: object[]\r\n\r\n}\r\n\r\nexport class AccountRole extends Assignable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"AccountRole\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof AccountRole }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get UserType(): string {\r\n return this.data.UserType;\r\n }\r\n set UserType(value: string) {\r\n this.data.UserType = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsObligatedBy, returns Program ProgramObligatesAccountRole[]\r\n private __IsObligatedBy: ProgramObligatesAccountRole[];\r\n IsObligatedBy(_context?: BaseDataContext): ProgramObligatesAccountRole[] {\r\n if (this.__IsObligatedBy)\r\n return this.__IsObligatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsObligatedBy), (id) => context.get(id) as ProgramObligatesAccountRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsObligatedBy(values: ProgramObligatesAccountRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsObligatedBy = values;\r\n }\r\n get _IsObligatedBy(): Set {\r\n if (!this._relationships.has(\"IsObligatedBy\"))\r\n this._relationships.set(\"IsObligatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsObligatedBy\");\r\n }\r\n set _IsObligatedBy(values: Set) {\r\n this._relationships.set(\"IsObligatedBy\", values);\r\n }\r\n\r\n // Relationship DeliveredBy, returns TaskCorrespondence TaskCorrespondenceDeliversAccountRole[]\r\n private __DeliveredBy: TaskCorrespondenceDeliversAccountRole[];\r\n DeliveredBy(_context?: BaseDataContext): TaskCorrespondenceDeliversAccountRole[] {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliveredBy), (id) => context.get(id) as TaskCorrespondenceDeliversAccountRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliveredBy(values: TaskCorrespondenceDeliversAccountRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliveredBy = values;\r\n }\r\n get _DeliveredBy(): Set {\r\n if (!this._relationships.has(\"DeliveredBy\"))\r\n this._relationships.set(\"DeliveredBy\", new Set());\r\n\r\n return this._relationships.get(\"DeliveredBy\");\r\n }\r\n set _DeliveredBy(values: Set) {\r\n this._relationships.set(\"DeliveredBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsObligatedBy',\r\n edgeType: ProgramObligatesAccountRole,\r\n otherVertexPropertyName: 'Obligates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'InitialAssigneeFor',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitiallyAssignedTo',\r\n otherVertexType: Task,\r\n },\r\n {\r\n propertyName: 'DeliveredBy',\r\n edgeType: TaskCorrespondenceDeliversAccountRole,\r\n otherVertexPropertyName: 'DeliversAccount',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): AccountRole {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: AccountRole) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Initials: model.Initials,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n Description: model.Description,\r\n UserType: model.UserType,\r\n IsObligatedBy: ModelUtils.serializeShallowEdge(model.IsObligatedBy(), 'IsObligatedBy'),\r\n InitialAssigneeFor: ModelUtils.serializeShallowEdge(model.InitialAssigneeFor(), 'InitialAssigneeFor'),\r\n DeliveredBy: ModelUtils.serializeShallowEdge(model.DeliveredBy(), 'DeliveredBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AccountRole {\r\n let clone = new AccountRole();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsObligatedBy = _.cloneDeep(this._IsObligatedBy);\r\n clone._InitialAssigneeFor = _.cloneDeep(this._InitialAssigneeFor);\r\n clone._DeliveredBy = _.cloneDeep(this._DeliveredBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IApp {\r\n Id: string,\r\n DisplayName?: string,\r\n BadgePath?: string,\r\n LastLoginDate?: Date,\r\n readonly Active: boolean,\r\n readonly CreatedDate?: Date,\r\n Description?: string,\r\n AreaKey: string,\r\n readonly IsActive: boolean,\r\n readonly AuthProviderClientId?: string,\r\n readonly ApiManagementSubscriptionPrimaryKey?: string,\r\n readonly ApiManagementSubscriptionSecondaryKey?: string,\r\n\r\n IsRepresentedBy?: object[],\r\n FillsSecurityRole?: object[],\r\n WorksIn?: object[]\r\n\r\n}\r\n\r\nexport class App extends SMIdentity {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"App\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof App }[] = [\r\n {className: 'Developer', type: Developer},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get AreaKey(): string {\r\n return this.data.AreaKey;\r\n }\r\n set AreaKey(value: string) {\r\n this.data.AreaKey = value;\r\n }\r\n get IsActive(): boolean {\r\n return this.data.IsActive;\r\n }\r\n get AuthProviderClientId(): string {\r\n return this.data.AuthProviderClientId;\r\n }\r\n get ApiManagementSubscriptionPrimaryKey(): string {\r\n return this.data.ApiManagementSubscriptionPrimaryKey;\r\n }\r\n get ApiManagementSubscriptionSecondaryKey(): string {\r\n return this.data.ApiManagementSubscriptionSecondaryKey;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRepresentedBy, returns TenantUser AppRepresentedByTenantUser[]\r\n private __IsRepresentedBy: AppRepresentedByTenantUser[];\r\n IsRepresentedBy(_context?: BaseDataContext): AppRepresentedByTenantUser[] {\r\n if (this.__IsRepresentedBy)\r\n return this.__IsRepresentedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRepresentedBy), (id) => context.get(id) as AppRepresentedByTenantUser);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRepresentedBy(values: AppRepresentedByTenantUser[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRepresentedBy = values;\r\n }\r\n get _IsRepresentedBy(): Set {\r\n if (!this._relationships.has(\"IsRepresentedBy\"))\r\n this._relationships.set(\"IsRepresentedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsRepresentedBy\");\r\n }\r\n set _IsRepresentedBy(values: Set) {\r\n this._relationships.set(\"IsRepresentedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsRepresentedBy',\r\n edgeType: AppRepresentedByTenantUser,\r\n otherVertexPropertyName: 'IsContactFor',\r\n otherVertexType: TenantUser,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'FillsSecurityRole',\r\n edgeType: SMIdentityFillsSecurityRole,\r\n otherVertexPropertyName: 'IsFilledBy',\r\n otherVertexType: SecurityRole,\r\n },\r\n {\r\n propertyName: 'WorksIn',\r\n edgeType: SMIdentityWorksInArea,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: Area,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): App {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: App) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n LastLoginDate: model.LastLoginDate,\r\n Active: model.Active,\r\n CreatedDate: model.CreatedDate,\r\n Description: model.Description,\r\n AreaKey: model.AreaKey,\r\n IsActive: model.IsActive,\r\n AuthProviderClientId: model.AuthProviderClientId,\r\n ApiManagementSubscriptionPrimaryKey: model.ApiManagementSubscriptionPrimaryKey,\r\n ApiManagementSubscriptionSecondaryKey: model.ApiManagementSubscriptionSecondaryKey,\r\n IsRepresentedBy: ModelUtils.serializeShallowEdge(model.IsRepresentedBy(), 'IsRepresentedBy'),\r\n FillsSecurityRole: ModelUtils.serializeShallowEdge(model.FillsSecurityRole(), 'FillsSecurityRole'),\r\n WorksIn: ModelUtils.serializeShallowEdge(model.WorksIn(), 'WorksIn'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): App {\r\n let clone = new App();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsRepresentedBy = _.cloneDeep(this._IsRepresentedBy);\r\n clone._FillsSecurityRole = _.cloneDeep(this._FillsSecurityRole);\r\n clone._WorksIn = _.cloneDeep(this._WorksIn);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IApplication {\r\n Sequence?: string[],\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n DisplayLabel?: string,\r\n Description: string,\r\n DataStoreId?: string,\r\n\r\n IsCollectedBy?: object[],\r\n IsTrackedFor?: object[],\r\n ContainsCondition?: object[],\r\n Collects?: object[],\r\n IsSequencedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class Application extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Application\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Application }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get DisplayLabel(): string {\r\n return this.data.DisplayLabel;\r\n }\r\n set DisplayLabel(value: string) {\r\n this.data.DisplayLabel = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get DataStoreId(): string {\r\n return this.data.DataStoreId;\r\n }\r\n set DataStoreId(value: string) {\r\n this.data.DataStoreId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsCollectedBy, returns Program ProgramCollectsApplication[]\r\n private __IsCollectedBy: ProgramCollectsApplication[];\r\n IsCollectedBy(_context?: BaseDataContext): ProgramCollectsApplication[] {\r\n if (this.__IsCollectedBy)\r\n return this.__IsCollectedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsCollectedBy), (id) => context.get(id) as ProgramCollectsApplication);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsCollectedBy(values: ProgramCollectsApplication[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsCollectedBy = values;\r\n }\r\n get _IsCollectedBy(): Set {\r\n if (!this._relationships.has(\"IsCollectedBy\"))\r\n this._relationships.set(\"IsCollectedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsCollectedBy\");\r\n }\r\n set _IsCollectedBy(values: Set) {\r\n this._relationships.set(\"IsCollectedBy\", values);\r\n }\r\n\r\n // Relationship ContainsCondition, returns ElementCondition ApplicationContainsElementCondition[]\r\n private __ContainsCondition: ApplicationContainsElementCondition[];\r\n ContainsCondition(_context?: BaseDataContext): ApplicationContainsElementCondition[] {\r\n if (this.__ContainsCondition)\r\n return this.__ContainsCondition;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ContainsCondition), (id) => context.get(id) as ApplicationContainsElementCondition);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContainsCondition(values: ApplicationContainsElementCondition[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ContainsCondition = values;\r\n }\r\n get _ContainsCondition(): Set {\r\n if (!this._relationships.has(\"ContainsCondition\"))\r\n this._relationships.set(\"ContainsCondition\", new Set());\r\n\r\n return this._relationships.get(\"ContainsCondition\");\r\n }\r\n set _ContainsCondition(values: Set) {\r\n this._relationships.set(\"ContainsCondition\", values);\r\n }\r\n\r\n // Relationship Collects, returns Section ApplicationCollectsSection[]\r\n private __Collects: ApplicationCollectsSection[];\r\n Collects(_context?: BaseDataContext): ApplicationCollectsSection[] {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Collects), (id) => context.get(id) as ApplicationCollectsSection);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCollects(values: ApplicationCollectsSection[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Collects = values;\r\n }\r\n get _Collects(): Set {\r\n if (!this._relationships.has(\"Collects\"))\r\n this._relationships.set(\"Collects\", new Set());\r\n\r\n return this._relationships.get(\"Collects\");\r\n }\r\n set _Collects(values: Set) {\r\n this._relationships.set(\"Collects\", values);\r\n }\r\n\r\n // Relationship IsSequencedBy, returns ApplicationSequence ApplicationIsSequencedByApplicationSequence[]\r\n private __IsSequencedBy: ApplicationIsSequencedByApplicationSequence[];\r\n IsSequencedBy(_context?: BaseDataContext): ApplicationIsSequencedByApplicationSequence[] {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSequencedBy), (id) => context.get(id) as ApplicationIsSequencedByApplicationSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSequencedBy(values: ApplicationIsSequencedByApplicationSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSequencedBy = values;\r\n }\r\n get _IsSequencedBy(): Set {\r\n if (!this._relationships.has(\"IsSequencedBy\"))\r\n this._relationships.set(\"IsSequencedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSequencedBy\");\r\n }\r\n set _IsSequencedBy(values: Set) {\r\n this._relationships.set(\"IsSequencedBy\", values);\r\n }\r\n\r\n // Relationship Populates, returns DataStore ApplicationPopulatesDataStore[]\r\n private __Populates: ApplicationPopulatesDataStore[];\r\n Populates(_context?: BaseDataContext): ApplicationPopulatesDataStore[] {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Populates), (id) => context.get(id) as ApplicationPopulatesDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPopulates(values: ApplicationPopulatesDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Populates = values;\r\n }\r\n get _Populates(): Set {\r\n if (!this._relationships.has(\"Populates\"))\r\n this._relationships.set(\"Populates\", new Set());\r\n\r\n return this._relationships.get(\"Populates\");\r\n }\r\n set _Populates(values: Set) {\r\n this._relationships.set(\"Populates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsCollectedBy',\r\n edgeType: ProgramCollectsApplication,\r\n otherVertexPropertyName: 'Collects',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'ContainsCondition',\r\n edgeType: ApplicationContainsElementCondition,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'Collects',\r\n edgeType: ApplicationCollectsSection,\r\n otherVertexPropertyName: 'IsCollectedBy',\r\n otherVertexType: Section,\r\n },\r\n {\r\n propertyName: 'IsSequencedBy',\r\n edgeType: ApplicationIsSequencedByApplicationSequence,\r\n otherVertexPropertyName: 'Sequences',\r\n otherVertexType: ApplicationSequence,\r\n },\r\n {\r\n propertyName: 'Populates',\r\n edgeType: ApplicationPopulatesDataStore,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataStore,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Application {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Application) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n DisplayLabel: model.DisplayLabel,\r\n Description: model.Description,\r\n DataStoreId: model.DataStoreId,\r\n IsCollectedBy: ModelUtils.serializeShallowEdge(model.IsCollectedBy(), 'IsCollectedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n ContainsCondition: ModelUtils.serializeShallowEdge(model.ContainsCondition(), 'ContainsCondition'),\r\n Collects: ModelUtils.serializeShallowEdge(model.Collects(), 'Collects'),\r\n IsSequencedBy: ModelUtils.serializeShallowEdge(model.IsSequencedBy(), 'IsSequencedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Application {\r\n let clone = new Application();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsCollectedBy = _.cloneDeep(this._IsCollectedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._ContainsCondition = _.cloneDeep(this._ContainsCondition);\r\n clone._Collects = _.cloneDeep(this._Collects);\r\n clone._IsSequencedBy = _.cloneDeep(this._IsSequencedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IAssetGroup {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n readonly LastUpdatedBy?: string,\r\n\r\n IsTrackedFor?: object[],\r\n IsUtilizedBy?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class AssetGroup extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"AssetGroup\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof AssetGroup }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get LastUpdatedBy(): string {\r\n return this.data.LastUpdatedBy;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsUtilizedBy, returns Program ProgramUtilizesAssetGroup[]\r\n private __IsUtilizedBy: ProgramUtilizesAssetGroup[];\r\n IsUtilizedBy(_context?: BaseDataContext): ProgramUtilizesAssetGroup[] {\r\n if (this.__IsUtilizedBy)\r\n return this.__IsUtilizedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsUtilizedBy), (id) => context.get(id) as ProgramUtilizesAssetGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsUtilizedBy(values: ProgramUtilizesAssetGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsUtilizedBy = values;\r\n }\r\n get _IsUtilizedBy(): Set {\r\n if (!this._relationships.has(\"IsUtilizedBy\"))\r\n this._relationships.set(\"IsUtilizedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsUtilizedBy\");\r\n }\r\n set _IsUtilizedBy(values: Set) {\r\n this._relationships.set(\"IsUtilizedBy\", values);\r\n }\r\n\r\n // Relationship Contains, returns Asset AssetGroupContainsAsset[]\r\n private __Contains: AssetGroupContainsAsset[];\r\n Contains(_context?: BaseDataContext): AssetGroupContainsAsset[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as AssetGroupContainsAsset);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: AssetGroupContainsAsset[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsUtilizedBy',\r\n edgeType: ProgramUtilizesAssetGroup,\r\n otherVertexPropertyName: 'Utilizes',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: AssetGroupContainsAsset,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Asset,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): AssetGroup {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: AssetGroup) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n LastUpdatedBy: model.LastUpdatedBy,\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n IsUtilizedBy: ModelUtils.serializeShallowEdge(model.IsUtilizedBy(), 'IsUtilizedBy'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): AssetGroup {\r\n let clone = new AssetGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._IsUtilizedBy = _.cloneDeep(this._IsUtilizedBy);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IContact {\r\n Id: string,\r\n DisplayName?: string,\r\n BadgePath?: string,\r\n LastLoginDate?: Date,\r\n readonly Active: boolean,\r\n Honorific?: string,\r\n FirstName?: string,\r\n MiddleName?: string,\r\n LastName?: string,\r\n NameSuffix?: string,\r\n Email: string,\r\n Title?: string,\r\n Phone?: string,\r\n CreatedDate?: Date,\r\n ActiveSince?: Date,\r\n InvitedDate?: Date,\r\n CreatedBy?: string,\r\n\r\n FillsSecurityRole?: object[],\r\n WorksIn?: object[]\r\n\r\n}\r\n\r\nexport class Contact extends SMIdentity {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Contact\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Contact }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Honorific(): string {\r\n return this.data.Honorific;\r\n }\r\n set Honorific(value: string) {\r\n this.data.Honorific = value;\r\n }\r\n get FirstName(): string {\r\n return this.data.FirstName;\r\n }\r\n set FirstName(value: string) {\r\n this.data.FirstName = value;\r\n }\r\n get MiddleName(): string {\r\n return this.data.MiddleName;\r\n }\r\n set MiddleName(value: string) {\r\n this.data.MiddleName = value;\r\n }\r\n get LastName(): string {\r\n return this.data.LastName;\r\n }\r\n set LastName(value: string) {\r\n this.data.LastName = value;\r\n }\r\n get NameSuffix(): string {\r\n return this.data.NameSuffix;\r\n }\r\n set NameSuffix(value: string) {\r\n this.data.NameSuffix = value;\r\n }\r\n get Email(): string {\r\n return this.data.Email;\r\n }\r\n set Email(value: string) {\r\n this.data.Email = value;\r\n }\r\n get Title(): string {\r\n return this.data.Title;\r\n }\r\n set Title(value: string) {\r\n this.data.Title = value;\r\n }\r\n get Phone(): string {\r\n return this.data.Phone;\r\n }\r\n set Phone(value: string) {\r\n this.data.Phone = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n set CreatedDate(value: Date) {\r\n this.data.CreatedDate = value;\r\n }\r\n get ActiveSince(): Date {\r\n return this.data.ActiveSince ? new Date(this.data.ActiveSince) : undefined;\r\n }\r\n set ActiveSince(value: Date) {\r\n this.data.ActiveSince = value;\r\n }\r\n get InvitedDate(): Date {\r\n return this.data.InvitedDate ? new Date(this.data.InvitedDate) : undefined;\r\n }\r\n set InvitedDate(value: Date) {\r\n this.data.InvitedDate = value;\r\n }\r\n get CreatedBy(): string {\r\n return this.data.CreatedBy;\r\n }\r\n set CreatedBy(value: string) {\r\n this.data.CreatedBy = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'FillsSecurityRole',\r\n edgeType: SMIdentityFillsSecurityRole,\r\n otherVertexPropertyName: 'IsFilledBy',\r\n otherVertexType: SecurityRole,\r\n },\r\n {\r\n propertyName: 'WorksIn',\r\n edgeType: SMIdentityWorksInArea,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: Area,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Contact {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Contact) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n LastLoginDate: model.LastLoginDate,\r\n Active: model.Active,\r\n Honorific: model.Honorific,\r\n FirstName: model.FirstName,\r\n MiddleName: model.MiddleName,\r\n LastName: model.LastName,\r\n NameSuffix: model.NameSuffix,\r\n Email: model.Email,\r\n Title: model.Title,\r\n Phone: model.Phone,\r\n CreatedDate: model.CreatedDate,\r\n ActiveSince: model.ActiveSince,\r\n InvitedDate: model.InvitedDate,\r\n CreatedBy: model.CreatedBy,\r\n FillsSecurityRole: ModelUtils.serializeShallowEdge(model.FillsSecurityRole(), 'FillsSecurityRole'),\r\n WorksIn: ModelUtils.serializeShallowEdge(model.WorksIn(), 'WorksIn'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Contact {\r\n let clone = new Contact();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._FillsSecurityRole = _.cloneDeep(this._FillsSecurityRole);\r\n clone._WorksIn = _.cloneDeep(this._WorksIn);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPanel {\r\n Sequence?: string[],\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name?: string,\r\n Description?: string,\r\n Scopes?: string[],\r\n Enabled: boolean,\r\n\r\n IsDisplayedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Uses?: object[]\r\n\r\n}\r\n\r\nexport class DataPanel extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPanel\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPanel }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Scopes(): string[] {\r\n return this.data.Scopes;\r\n }\r\n set Scopes(value: string[]) {\r\n this.data.Scopes = value;\r\n }\r\n get Enabled(): boolean {\r\n return this.data.Enabled;\r\n }\r\n set Enabled(value: boolean) {\r\n this.data.Enabled = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsDisplayedBy, returns Program ProgramDisplaysDataPanel[]\r\n private __IsDisplayedBy: ProgramDisplaysDataPanel[];\r\n IsDisplayedBy(_context?: BaseDataContext): ProgramDisplaysDataPanel[] {\r\n if (this.__IsDisplayedBy)\r\n return this.__IsDisplayedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsDisplayedBy), (id) => context.get(id) as ProgramDisplaysDataPanel);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsDisplayedBy(values: ProgramDisplaysDataPanel[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsDisplayedBy = values;\r\n }\r\n get _IsDisplayedBy(): Set {\r\n if (!this._relationships.has(\"IsDisplayedBy\"))\r\n this._relationships.set(\"IsDisplayedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsDisplayedBy\");\r\n }\r\n set _IsDisplayedBy(values: Set) {\r\n this._relationships.set(\"IsDisplayedBy\", values);\r\n }\r\n\r\n // Relationship Uses, returns Widget DataPanelUsesWidget[]\r\n private __Uses: DataPanelUsesWidget[];\r\n Uses(_context?: BaseDataContext): DataPanelUsesWidget[] {\r\n if (this.__Uses)\r\n return this.__Uses;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Uses), (id) => context.get(id) as DataPanelUsesWidget);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setUses(values: DataPanelUsesWidget[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Uses = values;\r\n }\r\n get _Uses(): Set {\r\n if (!this._relationships.has(\"Uses\"))\r\n this._relationships.set(\"Uses\", new Set());\r\n\r\n return this._relationships.get(\"Uses\");\r\n }\r\n set _Uses(values: Set) {\r\n this._relationships.set(\"Uses\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: ProgramDisplaysDataPanel,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Uses',\r\n edgeType: DataPanelUsesWidget,\r\n otherVertexPropertyName: 'IsUsedBy',\r\n otherVertexType: Widget,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPanel {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPanel) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Scopes: model.Scopes,\r\n Enabled: model.Enabled,\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Uses: ModelUtils.serializeShallowEdge(model.Uses(), 'Uses'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPanel {\r\n let clone = new DataPanel();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Uses = _.cloneDeep(this._Uses);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPoint {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[]\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPoint extends Mappable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPoint\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPoint }[] = [\r\n {className: 'DataPointDate', type: DataPointDate},\r\n {className: 'DataPointDecimal', type: DataPointDecimal},\r\n {className: 'DataPointEmail', type: DataPointEmail},\r\n {className: 'DataPointString', type: DataPointString},\r\n {className: 'DataPointInteger', type: DataPointInteger},\r\n {className: 'DataPointListOfStrings', type: DataPointListOfStrings},\r\n {className: 'DataPointMoney', type: DataPointMoney},\r\n {className: 'DataPointPhone', type: DataPointPhone},\r\n {className: 'DataPointTimestamp', type: DataPointTimestamp},\r\n {className: 'DataPointUrl', type: DataPointUrl},\r\n {className: 'DataPointYear', type: DataPointYear},\r\n {className: 'DataPointYesNo', type: DataPointYesNo},\r\n {className: 'DataPointZipcode', type: DataPointZipcode},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Optional(): boolean {\r\n return this.data.Optional;\r\n }\r\n get Options(): string[] {\r\n return this.data.Options;\r\n }\r\n set Options(value: string[]) {\r\n this.data.Options = value;\r\n }\r\n get DefaultContent(): any {\r\n return this.data.DefaultContent;\r\n }\r\n set DefaultContent(value: any) {\r\n this.data.DefaultContent = value;\r\n }\r\n get RegExPattern(): string {\r\n return this.data.RegExPattern;\r\n }\r\n set RegExPattern(value: string) {\r\n this.data.RegExPattern = value;\r\n }\r\n get ValidationType(): string {\r\n return this.data.ValidationType;\r\n }\r\n set ValidationType(value: string) {\r\n this.data.ValidationType = value;\r\n }\r\n get ValidationScript(): string {\r\n return this.data.ValidationScript;\r\n }\r\n set ValidationScript(value: string) {\r\n this.data.ValidationScript = value;\r\n }\r\n get IsPredefined(): boolean {\r\n return this.data.IsPredefined;\r\n }\r\n get Tag(): string {\r\n return this.data.Tag;\r\n }\r\n set Tag(value: string) {\r\n this.data.Tag = value;\r\n }\r\n get IsCalculated(): boolean {\r\n return this.data.IsCalculated;\r\n }\r\n set IsCalculated(value: boolean) {\r\n this.data.IsCalculated = value;\r\n }\r\n get RateAffecting(): boolean {\r\n return this.data.RateAffecting;\r\n }\r\n set RateAffecting(value: boolean) {\r\n this.data.RateAffecting = value;\r\n }\r\n get IsRepeatableKey(): boolean {\r\n return this.data.IsRepeatableKey;\r\n }\r\n set IsRepeatableKey(value: boolean) {\r\n this.data.IsRepeatableKey = value;\r\n }\r\n get ReferenceObject(): string {\r\n return this.data.ReferenceObject;\r\n }\r\n set ReferenceObject(value: string) {\r\n this.data.ReferenceObject = value;\r\n }\r\n get ReferenceProperty(): string {\r\n return this.data.ReferenceProperty;\r\n }\r\n set ReferenceProperty(value: string) {\r\n this.data.ReferenceProperty = value;\r\n }\r\n get PopulatedBy(): string[] {\r\n return this.data.PopulatedBy;\r\n }\r\n set PopulatedBy(value: string[]) {\r\n this.data.PopulatedBy = value;\r\n }\r\n get ResetDataForNewEdition(): boolean {\r\n return this.data.ResetDataForNewEdition;\r\n }\r\n set ResetDataForNewEdition(value: boolean) {\r\n this.data.ResetDataForNewEdition = value;\r\n }\r\n get ScriptFunction(): string {\r\n return this.data.ScriptFunction;\r\n }\r\n set ScriptFunction(value: string) {\r\n this.data.ScriptFunction = value;\r\n }\r\n get InputSources(): any[] {\r\n return this.data.InputSources;\r\n }\r\n set InputSources(value: any[]) {\r\n this.data.InputSources = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEvaluatedForCondition, returns ElementCondition ElementConditionEvaluatesDataPoint[]\r\n private __IsEvaluatedForCondition: ElementConditionEvaluatesDataPoint[];\r\n IsEvaluatedForCondition(_context?: BaseDataContext): ElementConditionEvaluatesDataPoint[] {\r\n if (this.__IsEvaluatedForCondition)\r\n return this.__IsEvaluatedForCondition;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEvaluatedForCondition), (id) => context.get(id) as ElementConditionEvaluatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEvaluatedForCondition(values: ElementConditionEvaluatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEvaluatedForCondition = values;\r\n }\r\n get _IsEvaluatedForCondition(): Set {\r\n if (!this._relationships.has(\"IsEvaluatedForCondition\"))\r\n this._relationships.set(\"IsEvaluatedForCondition\", new Set());\r\n\r\n return this._relationships.get(\"IsEvaluatedForCondition\");\r\n }\r\n set _IsEvaluatedForCondition(values: Set) {\r\n this._relationships.set(\"IsEvaluatedForCondition\", values);\r\n }\r\n\r\n // Relationship IsPopulatedBy, returns Field FieldPopulatesDataPoint[]\r\n private __IsPopulatedBy: FieldPopulatesDataPoint[];\r\n IsPopulatedBy(_context?: BaseDataContext): FieldPopulatesDataPoint[] {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPopulatedBy), (id) => context.get(id) as FieldPopulatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPopulatedBy(values: FieldPopulatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPopulatedBy = values;\r\n }\r\n get _IsPopulatedBy(): Set {\r\n if (!this._relationships.has(\"IsPopulatedBy\"))\r\n this._relationships.set(\"IsPopulatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPopulatedBy\");\r\n }\r\n set _IsPopulatedBy(values: Set) {\r\n this._relationships.set(\"IsPopulatedBy\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns DataGroup DataGroupContainsDataPoint[]\r\n private __IsContainedBy: DataGroupContainsDataPoint[];\r\n IsContainedBy(_context?: BaseDataContext): DataGroupContainsDataPoint[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as DataGroupContainsDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: DataGroupContainsDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship ParameterSubstitutedBy, returns TaskCorrespondence TaskCorrespondenceParameterSubstitutesDataPoint[]\r\n private __ParameterSubstitutedBy: TaskCorrespondenceParameterSubstitutesDataPoint[];\r\n ParameterSubstitutedBy(_context?: BaseDataContext): TaskCorrespondenceParameterSubstitutesDataPoint[] {\r\n if (this.__ParameterSubstitutedBy)\r\n return this.__ParameterSubstitutedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ParameterSubstitutedBy), (id) => context.get(id) as TaskCorrespondenceParameterSubstitutesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setParameterSubstitutedBy(values: TaskCorrespondenceParameterSubstitutesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ParameterSubstitutedBy = values;\r\n }\r\n get _ParameterSubstitutedBy(): Set {\r\n if (!this._relationships.has(\"ParameterSubstitutedBy\"))\r\n this._relationships.set(\"ParameterSubstitutedBy\", new Set());\r\n\r\n return this._relationships.get(\"ParameterSubstitutedBy\");\r\n }\r\n set _ParameterSubstitutedBy(values: Set) {\r\n this._relationships.set(\"ParameterSubstitutedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPoint {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPoint) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPoint {\r\n let clone = new DataPoint();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataStore {\r\n Sequence?: string[],\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description?: string,\r\n readonly NoOfTimesUsed: number,\r\n Aliases?: string[],\r\n\r\n IsPopulatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n IsStoredFor?: object[],\r\n Contains?: object[],\r\n IsSequencedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataStore extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataStore\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataStore }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get NoOfTimesUsed(): number {\r\n return this.data.NoOfTimesUsed;\r\n }\r\n get Aliases(): string[] {\r\n return this.data.Aliases;\r\n }\r\n set Aliases(value: string[]) {\r\n this.data.Aliases = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPopulatedBy, returns Application ApplicationPopulatesDataStore[]\r\n private __IsPopulatedBy: ApplicationPopulatesDataStore[];\r\n IsPopulatedBy(_context?: BaseDataContext): ApplicationPopulatesDataStore[] {\r\n if (this.__IsPopulatedBy)\r\n return this.__IsPopulatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPopulatedBy), (id) => context.get(id) as ApplicationPopulatesDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPopulatedBy(values: ApplicationPopulatesDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPopulatedBy = values;\r\n }\r\n get _IsPopulatedBy(): Set {\r\n if (!this._relationships.has(\"IsPopulatedBy\"))\r\n this._relationships.set(\"IsPopulatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPopulatedBy\");\r\n }\r\n set _IsPopulatedBy(values: Set) {\r\n this._relationships.set(\"IsPopulatedBy\", values);\r\n }\r\n\r\n // Relationship IsStoredFor, returns Program ProgramStoresDataStore[]\r\n private __IsStoredFor: ProgramStoresDataStore[];\r\n IsStoredFor(_context?: BaseDataContext): ProgramStoresDataStore[] {\r\n if (this.__IsStoredFor)\r\n return this.__IsStoredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsStoredFor), (id) => context.get(id) as ProgramStoresDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsStoredFor(values: ProgramStoresDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsStoredFor = values;\r\n }\r\n get _IsStoredFor(): Set {\r\n if (!this._relationships.has(\"IsStoredFor\"))\r\n this._relationships.set(\"IsStoredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsStoredFor\");\r\n }\r\n set _IsStoredFor(values: Set) {\r\n this._relationships.set(\"IsStoredFor\", values);\r\n }\r\n\r\n // Relationship Contains, returns DataGroup DataStoreContainsDataGroup[]\r\n private __Contains: DataStoreContainsDataGroup[];\r\n Contains(_context?: BaseDataContext): DataStoreContainsDataGroup[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as DataStoreContainsDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: DataStoreContainsDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n // Relationship IsSequencedBy, returns DataStoreSequence DataStoreIsSequencedByDataStoreSequence[]\r\n private __IsSequencedBy: DataStoreIsSequencedByDataStoreSequence[];\r\n IsSequencedBy(_context?: BaseDataContext): DataStoreIsSequencedByDataStoreSequence[] {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSequencedBy), (id) => context.get(id) as DataStoreIsSequencedByDataStoreSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSequencedBy(values: DataStoreIsSequencedByDataStoreSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSequencedBy = values;\r\n }\r\n get _IsSequencedBy(): Set {\r\n if (!this._relationships.has(\"IsSequencedBy\"))\r\n this._relationships.set(\"IsSequencedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSequencedBy\");\r\n }\r\n set _IsSequencedBy(values: Set) {\r\n this._relationships.set(\"IsSequencedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: ApplicationPopulatesDataStore,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Application,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsStoredFor',\r\n edgeType: ProgramStoresDataStore,\r\n otherVertexPropertyName: 'Stores',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: DataStoreContainsDataGroup,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'IsSequencedBy',\r\n edgeType: DataStoreIsSequencedByDataStoreSequence,\r\n otherVertexPropertyName: 'Sequences',\r\n otherVertexType: DataStoreSequence,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataStore {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataStore) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n NoOfTimesUsed: model.NoOfTimesUsed,\r\n Aliases: model.Aliases,\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n IsStoredFor: ModelUtils.serializeShallowEdge(model.IsStoredFor(), 'IsStoredFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n IsSequencedBy: ModelUtils.serializeShallowEdge(model.IsSequencedBy(), 'IsSequencedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataStore {\r\n let clone = new DataStore();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._IsStoredFor = _.cloneDeep(this._IsStoredFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n clone._IsSequencedBy = _.cloneDeep(this._IsSequencedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class DeclineReason extends CustomTableRow {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DeclineReason\";\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): DeclineReason {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: DeclineReason) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n CustomTableId: model.CustomTableId,\r\n IsSystem: model.IsSystem,\r\n Name: model.Name,\r\n Description: model.Description,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DeclineReason {\r\n let clone = new DeclineReason();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class Field extends Element {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Field\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Field }[] = [\r\n {className: 'DateField', type: DateField},\r\n {className: 'DecimalField', type: DecimalField},\r\n {className: 'EmailField', type: EmailField},\r\n {className: 'StringField', type: StringField},\r\n {className: 'IntegerField', type: IntegerField},\r\n {className: 'ListOfStringsField', type: ListOfStringsField},\r\n {className: 'MoneyField', type: MoneyField},\r\n {className: 'PhoneField', type: PhoneField},\r\n {className: 'TimestampField', type: TimestampField},\r\n {className: 'UrlField', type: UrlField},\r\n {className: 'YearField', type: YearField},\r\n {className: 'YesNoField', type: YesNoField},\r\n {className: 'ZipcodeField', type: ZipcodeField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Optional(): boolean {\r\n return this.data.Optional;\r\n }\r\n set Optional(value: boolean) {\r\n this.data.Optional = value;\r\n }\r\n get Options(): any[] {\r\n return this.data.Options;\r\n }\r\n set Options(value: any[]) {\r\n this.data.Options = value;\r\n }\r\n get DefaultContent(): any {\r\n return this.data.DefaultContent;\r\n }\r\n set DefaultContent(value: any) {\r\n this.data.DefaultContent = value;\r\n }\r\n get Access(): string {\r\n return this.data.Access;\r\n }\r\n set Access(value: string) {\r\n this.data.Access = value;\r\n }\r\n get PopulatedByDataPointId(): string {\r\n return this.data.PopulatedByDataPointId;\r\n }\r\n set PopulatedByDataPointId(value: string) {\r\n this.data.PopulatedByDataPointId = value;\r\n }\r\n get DisplayWidth(): string {\r\n return this.data.DisplayWidth;\r\n }\r\n set DisplayWidth(value: string) {\r\n this.data.DisplayWidth = value;\r\n }\r\n get RetainDataWhenHidden(): boolean {\r\n return this.data.RetainDataWhenHidden;\r\n }\r\n set RetainDataWhenHidden(value: boolean) {\r\n this.data.RetainDataWhenHidden = value;\r\n }\r\n get Prefix(): string {\r\n return this.data.Prefix;\r\n }\r\n set Prefix(value: string) {\r\n this.data.Prefix = value;\r\n }\r\n get Suffix(): string {\r\n return this.data.Suffix;\r\n }\r\n set Suffix(value: string) {\r\n this.data.Suffix = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Populates, returns DataPoint FieldPopulatesDataPoint[]\r\n private __Populates: FieldPopulatesDataPoint[];\r\n Populates(_context?: BaseDataContext): FieldPopulatesDataPoint[] {\r\n if (this.__Populates)\r\n return this.__Populates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Populates), (id) => context.get(id) as FieldPopulatesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPopulates(values: FieldPopulatesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Populates = values;\r\n }\r\n get _Populates(): Set {\r\n if (!this._relationships.has(\"Populates\"))\r\n this._relationships.set(\"Populates\", new Set());\r\n\r\n return this._relationships.get(\"Populates\");\r\n }\r\n set _Populates(values: Set) {\r\n this._relationships.set(\"Populates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Field {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Field) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Field {\r\n let clone = new Field();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IPhase {\r\n Sequence?: string[],\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n CompleteName: string,\r\n Description: string,\r\n readonly Protected: boolean,\r\n HoldAutoComplete: boolean,\r\n OnCompleteEventActions?: any[],\r\n\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n IsRequiredFor?: object[],\r\n IsSequencedBy?: object[],\r\n Requires?: object[],\r\n Triggers?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class Phase extends Workable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Phase\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Phase }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get CompleteName(): string {\r\n return this.data.CompleteName;\r\n }\r\n set CompleteName(value: string) {\r\n this.data.CompleteName = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Protected(): boolean {\r\n return this.data.Protected;\r\n }\r\n get HoldAutoComplete(): boolean {\r\n return this.data.HoldAutoComplete;\r\n }\r\n set HoldAutoComplete(value: boolean) {\r\n this.data.HoldAutoComplete = value;\r\n }\r\n get OnCompleteEventActions(): any[] {\r\n return this.data.OnCompleteEventActions;\r\n }\r\n set OnCompleteEventActions(value: any[]) {\r\n this.data.OnCompleteEventActions = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRequiredFor, returns Workflow WorkflowRequiresPhase[]\r\n private __IsRequiredFor: WorkflowRequiresPhase[];\r\n IsRequiredFor(_context?: BaseDataContext): WorkflowRequiresPhase[] {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRequiredFor), (id) => context.get(id) as WorkflowRequiresPhase);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRequiredFor(values: WorkflowRequiresPhase[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRequiredFor = values;\r\n }\r\n get _IsRequiredFor(): Set {\r\n if (!this._relationships.has(\"IsRequiredFor\"))\r\n this._relationships.set(\"IsRequiredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsRequiredFor\");\r\n }\r\n set _IsRequiredFor(values: Set) {\r\n this._relationships.set(\"IsRequiredFor\", values);\r\n }\r\n\r\n // Relationship IsSequencedBy, returns PhaseSequence PhaseIsSequencedByPhaseSequence[]\r\n private __IsSequencedBy: PhaseIsSequencedByPhaseSequence[];\r\n IsSequencedBy(_context?: BaseDataContext): PhaseIsSequencedByPhaseSequence[] {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSequencedBy), (id) => context.get(id) as PhaseIsSequencedByPhaseSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSequencedBy(values: PhaseIsSequencedByPhaseSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSequencedBy = values;\r\n }\r\n get _IsSequencedBy(): Set {\r\n if (!this._relationships.has(\"IsSequencedBy\"))\r\n this._relationships.set(\"IsSequencedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSequencedBy\");\r\n }\r\n set _IsSequencedBy(values: Set) {\r\n this._relationships.set(\"IsSequencedBy\", values);\r\n }\r\n\r\n // Relationship Requires, returns Task PhaseRequiresTask[]\r\n private __Requires: PhaseRequiresTask[];\r\n Requires(_context?: BaseDataContext): PhaseRequiresTask[] {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Requires), (id) => context.get(id) as PhaseRequiresTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRequires(values: PhaseRequiresTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Requires = values;\r\n }\r\n get _Requires(): Set {\r\n if (!this._relationships.has(\"Requires\"))\r\n this._relationships.set(\"Requires\", new Set());\r\n\r\n return this._relationships.get(\"Requires\");\r\n }\r\n set _Requires(values: Set) {\r\n this._relationships.set(\"Requires\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: WorkflowRequiresPhase,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSequencedBy',\r\n edgeType: PhaseIsSequencedByPhaseSequence,\r\n otherVertexPropertyName: 'Sequences',\r\n otherVertexType: PhaseSequence,\r\n },\r\n {\r\n propertyName: 'Requires',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'IsRequiredFor',\r\n otherVertexType: Task,\r\n },\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Phase {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Phase) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n CompleteName: model.CompleteName,\r\n Description: model.Description,\r\n Protected: model.Protected,\r\n HoldAutoComplete: model.HoldAutoComplete,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsSequencedBy: ModelUtils.serializeShallowEdge(model.IsSequencedBy(), 'IsSequencedBy'),\r\n Requires: ModelUtils.serializeShallowEdge(model.Requires(), 'Requires'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Phase {\r\n let clone = new Phase();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsSequencedBy = _.cloneDeep(this._IsSequencedBy);\r\n clone._Requires = _.cloneDeep(this._Requires);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IProgram {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description?: string,\r\n Aliases?: string[],\r\n readonly LiveSince?: Date,\r\n readonly Discontinued?: Date,\r\n readonly Ended?: Date,\r\n readonly LastUpdated?: Date,\r\n readonly PoliciesIssued: number,\r\n readonly Status: string,\r\n readonly AllowAllDocumentCategories: boolean,\r\n readonly ImportStatus?: string,\r\n readonly TeamLastPublished?: Date,\r\n readonly TeamHasUnpublishedChanges: boolean,\r\n VersionSelection: string,\r\n DefaultFromAddress?: string,\r\n DefaultWorkflowId?: string,\r\n DefaultDelinquentWorkflowId?: string,\r\n ProductsOffered?: any[],\r\n AccountOwnerRoleId?: string,\r\n DataPanelAccountOrder?: string[],\r\n DataPanelWorkflowOrder?: string[],\r\n\r\n IsEditedBy?: object[],\r\n IsRevisedBy?: object[],\r\n IsPublishedBy?: object[],\r\n IsTrackedFor?: object[],\r\n IsOfferedBy?: object[],\r\n Allows?: object[],\r\n Collects?: object[],\r\n IsConfiguredBy?: object[],\r\n Defines?: object[],\r\n Displays?: object[],\r\n Employs?: object[],\r\n Evaluates?: object[],\r\n IsFormattedBy?: object[],\r\n Obligates?: object[],\r\n Offers?: object[],\r\n Stores?: object[],\r\n Uses?: object[],\r\n Utilizes?: object[]\r\n\r\n}\r\n\r\nexport class Program extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Program\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Program }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Aliases(): string[] {\r\n return this.data.Aliases;\r\n }\r\n set Aliases(value: string[]) {\r\n this.data.Aliases = value;\r\n }\r\n get LiveSince(): Date {\r\n return this.data.LiveSince ? new Date(this.data.LiveSince) : undefined;\r\n }\r\n get Discontinued(): Date {\r\n return this.data.Discontinued ? new Date(this.data.Discontinued) : undefined;\r\n }\r\n get Ended(): Date {\r\n return this.data.Ended ? new Date(this.data.Ended) : undefined;\r\n }\r\n get LastUpdated(): Date {\r\n return this.data.LastUpdated ? new Date(this.data.LastUpdated) : undefined;\r\n }\r\n get PoliciesIssued(): number {\r\n return this.data.PoliciesIssued;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get AllowAllDocumentCategories(): boolean {\r\n return this.data.AllowAllDocumentCategories;\r\n }\r\n get ImportStatus(): string {\r\n return this.data.ImportStatus;\r\n }\r\n get TeamLastPublished(): Date {\r\n return this.data.TeamLastPublished ? new Date(this.data.TeamLastPublished) : undefined;\r\n }\r\n get TeamHasUnpublishedChanges(): boolean {\r\n return this.data.TeamHasUnpublishedChanges;\r\n }\r\n get VersionSelection(): string {\r\n return this.data.VersionSelection;\r\n }\r\n set VersionSelection(value: string) {\r\n this.data.VersionSelection = value;\r\n }\r\n get DefaultFromAddress(): string {\r\n return this.data.DefaultFromAddress;\r\n }\r\n set DefaultFromAddress(value: string) {\r\n this.data.DefaultFromAddress = value;\r\n }\r\n get DefaultWorkflowId(): string {\r\n return this.data.DefaultWorkflowId;\r\n }\r\n set DefaultWorkflowId(value: string) {\r\n this.data.DefaultWorkflowId = value;\r\n }\r\n get DefaultDelinquentWorkflowId(): string {\r\n return this.data.DefaultDelinquentWorkflowId;\r\n }\r\n set DefaultDelinquentWorkflowId(value: string) {\r\n this.data.DefaultDelinquentWorkflowId = value;\r\n }\r\n get ProductsOffered(): any[] {\r\n return this.data.ProductsOffered;\r\n }\r\n set ProductsOffered(value: any[]) {\r\n this.data.ProductsOffered = value;\r\n }\r\n get AccountOwnerRoleId(): string {\r\n return this.data.AccountOwnerRoleId;\r\n }\r\n set AccountOwnerRoleId(value: string) {\r\n this.data.AccountOwnerRoleId = value;\r\n }\r\n get DataPanelAccountOrder(): string[] {\r\n return this.data.DataPanelAccountOrder;\r\n }\r\n set DataPanelAccountOrder(value: string[]) {\r\n this.data.DataPanelAccountOrder = value;\r\n }\r\n get DataPanelWorkflowOrder(): string[] {\r\n return this.data.DataPanelWorkflowOrder;\r\n }\r\n set DataPanelWorkflowOrder(value: string[]) {\r\n this.data.DataPanelWorkflowOrder = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEditedBy, returns ProgramChange ProgramChangeEditsProgram[]\r\n private __IsEditedBy: ProgramChangeEditsProgram[];\r\n IsEditedBy(_context?: BaseDataContext): ProgramChangeEditsProgram[] {\r\n if (this.__IsEditedBy)\r\n return this.__IsEditedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEditedBy), (id) => context.get(id) as ProgramChangeEditsProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEditedBy(values: ProgramChangeEditsProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEditedBy = values;\r\n }\r\n get _IsEditedBy(): Set {\r\n if (!this._relationships.has(\"IsEditedBy\"))\r\n this._relationships.set(\"IsEditedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsEditedBy\");\r\n }\r\n set _IsEditedBy(values: Set) {\r\n this._relationships.set(\"IsEditedBy\", values);\r\n }\r\n\r\n // Relationship IsRevisedBy, returns ProgramPatch ProgramPatchRevisesRevisioned[]\r\n private __IsRevisedBy: ProgramPatchRevisesRevisioned[];\r\n IsRevisedBy(_context?: BaseDataContext): ProgramPatchRevisesRevisioned[] {\r\n if (this.__IsRevisedBy)\r\n return this.__IsRevisedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRevisedBy), (id) => context.get(id) as ProgramPatchRevisesRevisioned);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRevisedBy(values: ProgramPatchRevisesRevisioned[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRevisedBy = values;\r\n }\r\n get _IsRevisedBy(): Set {\r\n if (!this._relationships.has(\"IsRevisedBy\"))\r\n this._relationships.set(\"IsRevisedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsRevisedBy\");\r\n }\r\n set _IsRevisedBy(values: Set) {\r\n this._relationships.set(\"IsRevisedBy\", values);\r\n }\r\n\r\n // Relationship IsPublishedBy, returns ProgramRevision ProgramRevisionPublishesProgram[]\r\n private __IsPublishedBy: ProgramRevisionPublishesProgram[];\r\n IsPublishedBy(_context?: BaseDataContext): ProgramRevisionPublishesProgram[] {\r\n if (this.__IsPublishedBy)\r\n return this.__IsPublishedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPublishedBy), (id) => context.get(id) as ProgramRevisionPublishesProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPublishedBy(values: ProgramRevisionPublishesProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPublishedBy = values;\r\n }\r\n get _IsPublishedBy(): Set {\r\n if (!this._relationships.has(\"IsPublishedBy\"))\r\n this._relationships.set(\"IsPublishedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsPublishedBy\");\r\n }\r\n set _IsPublishedBy(values: Set) {\r\n this._relationships.set(\"IsPublishedBy\", values);\r\n }\r\n\r\n // Relationship IsOfferedBy, returns Producer ProducerOffersProgram[]\r\n private __IsOfferedBy: ProducerOffersProgram[];\r\n IsOfferedBy(_context?: BaseDataContext): ProducerOffersProgram[] {\r\n if (this.__IsOfferedBy)\r\n return this.__IsOfferedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsOfferedBy), (id) => context.get(id) as ProducerOffersProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsOfferedBy(values: ProducerOffersProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsOfferedBy = values;\r\n }\r\n get _IsOfferedBy(): Set {\r\n if (!this._relationships.has(\"IsOfferedBy\"))\r\n this._relationships.set(\"IsOfferedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsOfferedBy\");\r\n }\r\n set _IsOfferedBy(values: Set) {\r\n this._relationships.set(\"IsOfferedBy\", values);\r\n }\r\n\r\n // Relationship Allows, returns DocumentCategory ProgramAllowsDocumentCategory[]\r\n private __Allows: ProgramAllowsDocumentCategory[];\r\n Allows(_context?: BaseDataContext): ProgramAllowsDocumentCategory[] {\r\n if (this.__Allows)\r\n return this.__Allows;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Allows), (id) => context.get(id) as ProgramAllowsDocumentCategory);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAllows(values: ProgramAllowsDocumentCategory[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Allows = values;\r\n }\r\n get _Allows(): Set {\r\n if (!this._relationships.has(\"Allows\"))\r\n this._relationships.set(\"Allows\", new Set());\r\n\r\n return this._relationships.get(\"Allows\");\r\n }\r\n set _Allows(values: Set) {\r\n this._relationships.set(\"Allows\", values);\r\n }\r\n\r\n // Relationship Collects, returns Application ProgramCollectsApplication[]\r\n private __Collects: ProgramCollectsApplication[];\r\n Collects(_context?: BaseDataContext): ProgramCollectsApplication[] {\r\n if (this.__Collects)\r\n return this.__Collects;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Collects), (id) => context.get(id) as ProgramCollectsApplication);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCollects(values: ProgramCollectsApplication[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Collects = values;\r\n }\r\n get _Collects(): Set {\r\n if (!this._relationships.has(\"Collects\"))\r\n this._relationships.set(\"Collects\", new Set());\r\n\r\n return this._relationships.get(\"Collects\");\r\n }\r\n set _Collects(values: Set) {\r\n this._relationships.set(\"Collects\", values);\r\n }\r\n\r\n // Relationship IsConfiguredBy, returns ProgramOptions ProgramConfiguredByProgramOptions[]\r\n private __IsConfiguredBy: ProgramConfiguredByProgramOptions[];\r\n IsConfiguredBy(_context?: BaseDataContext): ProgramConfiguredByProgramOptions[] {\r\n if (this.__IsConfiguredBy)\r\n return this.__IsConfiguredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsConfiguredBy), (id) => context.get(id) as ProgramConfiguredByProgramOptions);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsConfiguredBy(values: ProgramConfiguredByProgramOptions[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsConfiguredBy = values;\r\n }\r\n get _IsConfiguredBy(): Set {\r\n if (!this._relationships.has(\"IsConfiguredBy\"))\r\n this._relationships.set(\"IsConfiguredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsConfiguredBy\");\r\n }\r\n set _IsConfiguredBy(values: Set) {\r\n this._relationships.set(\"IsConfiguredBy\", values);\r\n }\r\n\r\n // Relationship Defines, returns WorkflowSet ProgramDefinesWorkflowSet[]\r\n private __Defines: ProgramDefinesWorkflowSet[];\r\n Defines(_context?: BaseDataContext): ProgramDefinesWorkflowSet[] {\r\n if (this.__Defines)\r\n return this.__Defines;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Defines), (id) => context.get(id) as ProgramDefinesWorkflowSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDefines(values: ProgramDefinesWorkflowSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Defines = values;\r\n }\r\n get _Defines(): Set {\r\n if (!this._relationships.has(\"Defines\"))\r\n this._relationships.set(\"Defines\", new Set());\r\n\r\n return this._relationships.get(\"Defines\");\r\n }\r\n set _Defines(values: Set) {\r\n this._relationships.set(\"Defines\", values);\r\n }\r\n\r\n // Relationship Displays, returns DataPanel ProgramDisplaysDataPanel[]\r\n private __Displays: ProgramDisplaysDataPanel[];\r\n Displays(_context?: BaseDataContext): ProgramDisplaysDataPanel[] {\r\n if (this.__Displays)\r\n return this.__Displays;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Displays), (id) => context.get(id) as ProgramDisplaysDataPanel);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDisplays(values: ProgramDisplaysDataPanel[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Displays = values;\r\n }\r\n get _Displays(): Set {\r\n if (!this._relationships.has(\"Displays\"))\r\n this._relationships.set(\"Displays\", new Set());\r\n\r\n return this._relationships.get(\"Displays\");\r\n }\r\n set _Displays(values: Set) {\r\n this._relationships.set(\"Displays\", values);\r\n }\r\n\r\n // Relationship Employs, returns TenantUser ProgramEmploysTenantUser[]\r\n private __Employs: ProgramEmploysTenantUser[];\r\n Employs(_context?: BaseDataContext): ProgramEmploysTenantUser[] {\r\n if (this.__Employs)\r\n return this.__Employs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Employs), (id) => context.get(id) as ProgramEmploysTenantUser);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEmploys(values: ProgramEmploysTenantUser[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Employs = values;\r\n }\r\n get _Employs(): Set {\r\n if (!this._relationships.has(\"Employs\"))\r\n this._relationships.set(\"Employs\", new Set());\r\n\r\n return this._relationships.get(\"Employs\");\r\n }\r\n set _Employs(values: Set) {\r\n this._relationships.set(\"Employs\", values);\r\n }\r\n\r\n // Relationship Evaluates, returns RuleSet ProgramEvaluatesRuleSet[]\r\n private __Evaluates: ProgramEvaluatesRuleSet[];\r\n Evaluates(_context?: BaseDataContext): ProgramEvaluatesRuleSet[] {\r\n if (this.__Evaluates)\r\n return this.__Evaluates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Evaluates), (id) => context.get(id) as ProgramEvaluatesRuleSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setEvaluates(values: ProgramEvaluatesRuleSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Evaluates = values;\r\n }\r\n get _Evaluates(): Set {\r\n if (!this._relationships.has(\"Evaluates\"))\r\n this._relationships.set(\"Evaluates\", new Set());\r\n\r\n return this._relationships.get(\"Evaluates\");\r\n }\r\n set _Evaluates(values: Set) {\r\n this._relationships.set(\"Evaluates\", values);\r\n }\r\n\r\n // Relationship IsFormattedBy, returns Region ProgramFormattedByRegion[]\r\n private __IsFormattedBy: ProgramFormattedByRegion[];\r\n IsFormattedBy(_context?: BaseDataContext): ProgramFormattedByRegion[] {\r\n if (this.__IsFormattedBy)\r\n return this.__IsFormattedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsFormattedBy), (id) => context.get(id) as ProgramFormattedByRegion);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsFormattedBy(values: ProgramFormattedByRegion[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsFormattedBy = values;\r\n }\r\n get _IsFormattedBy(): Set {\r\n if (!this._relationships.has(\"IsFormattedBy\"))\r\n this._relationships.set(\"IsFormattedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsFormattedBy\");\r\n }\r\n set _IsFormattedBy(values: Set) {\r\n this._relationships.set(\"IsFormattedBy\", values);\r\n }\r\n\r\n // Relationship Obligates, returns AccountRole ProgramObligatesAccountRole[]\r\n private __Obligates: ProgramObligatesAccountRole[];\r\n Obligates(_context?: BaseDataContext): ProgramObligatesAccountRole[] {\r\n if (this.__Obligates)\r\n return this.__Obligates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Obligates), (id) => context.get(id) as ProgramObligatesAccountRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setObligates(values: ProgramObligatesAccountRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Obligates = values;\r\n }\r\n get _Obligates(): Set {\r\n if (!this._relationships.has(\"Obligates\"))\r\n this._relationships.set(\"Obligates\", new Set());\r\n\r\n return this._relationships.get(\"Obligates\");\r\n }\r\n set _Obligates(values: Set) {\r\n this._relationships.set(\"Obligates\", values);\r\n }\r\n\r\n // Relationship Offers, returns Product ProgramOffersProduct[]\r\n private __Offers: ProgramOffersProduct[];\r\n Offers(_context?: BaseDataContext): ProgramOffersProduct[] {\r\n if (this.__Offers)\r\n return this.__Offers;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Offers), (id) => context.get(id) as ProgramOffersProduct);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setOffers(values: ProgramOffersProduct[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Offers = values;\r\n }\r\n get _Offers(): Set {\r\n if (!this._relationships.has(\"Offers\"))\r\n this._relationships.set(\"Offers\", new Set());\r\n\r\n return this._relationships.get(\"Offers\");\r\n }\r\n set _Offers(values: Set) {\r\n this._relationships.set(\"Offers\", values);\r\n }\r\n\r\n // Relationship Stores, returns DataStore ProgramStoresDataStore[]\r\n private __Stores: ProgramStoresDataStore[];\r\n Stores(_context?: BaseDataContext): ProgramStoresDataStore[] {\r\n if (this.__Stores)\r\n return this.__Stores;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Stores), (id) => context.get(id) as ProgramStoresDataStore);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setStores(values: ProgramStoresDataStore[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Stores = values;\r\n }\r\n get _Stores(): Set {\r\n if (!this._relationships.has(\"Stores\"))\r\n this._relationships.set(\"Stores\", new Set());\r\n\r\n return this._relationships.get(\"Stores\");\r\n }\r\n set _Stores(values: Set) {\r\n this._relationships.set(\"Stores\", values);\r\n }\r\n\r\n // Relationship Uses, returns WorkGroup ProgramUsesWorkGroup[]\r\n private __Uses: ProgramUsesWorkGroup[];\r\n Uses(_context?: BaseDataContext): ProgramUsesWorkGroup[] {\r\n if (this.__Uses)\r\n return this.__Uses;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Uses), (id) => context.get(id) as ProgramUsesWorkGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setUses(values: ProgramUsesWorkGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Uses = values;\r\n }\r\n get _Uses(): Set {\r\n if (!this._relationships.has(\"Uses\"))\r\n this._relationships.set(\"Uses\", new Set());\r\n\r\n return this._relationships.get(\"Uses\");\r\n }\r\n set _Uses(values: Set) {\r\n this._relationships.set(\"Uses\", values);\r\n }\r\n\r\n // Relationship Utilizes, returns AssetGroup ProgramUtilizesAssetGroup[]\r\n private __Utilizes: ProgramUtilizesAssetGroup[];\r\n Utilizes(_context?: BaseDataContext): ProgramUtilizesAssetGroup[] {\r\n if (this.__Utilizes)\r\n return this.__Utilizes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Utilizes), (id) => context.get(id) as ProgramUtilizesAssetGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setUtilizes(values: ProgramUtilizesAssetGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Utilizes = values;\r\n }\r\n get _Utilizes(): Set {\r\n if (!this._relationships.has(\"Utilizes\"))\r\n this._relationships.set(\"Utilizes\", new Set());\r\n\r\n return this._relationships.get(\"Utilizes\");\r\n }\r\n set _Utilizes(values: Set) {\r\n this._relationships.set(\"Utilizes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEditedBy',\r\n edgeType: ProgramChangeEditsProgram,\r\n otherVertexPropertyName: 'Edits',\r\n otherVertexType: ProgramChange,\r\n },\r\n {\r\n propertyName: 'IsRevisedBy',\r\n edgeType: ProgramPatchRevisesRevisioned,\r\n otherVertexPropertyName: 'Revises',\r\n otherVertexType: ProgramPatch,\r\n },\r\n {\r\n propertyName: 'IsPublishedBy',\r\n edgeType: ProgramRevisionPublishesProgram,\r\n otherVertexPropertyName: 'Publishes',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsOfferedBy',\r\n edgeType: ProducerOffersProgram,\r\n otherVertexPropertyName: 'Offers',\r\n otherVertexType: Producer,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Allows',\r\n edgeType: ProgramAllowsDocumentCategory,\r\n otherVertexPropertyName: 'IsAllowedBy',\r\n otherVertexType: DocumentCategory,\r\n },\r\n {\r\n propertyName: 'Collects',\r\n edgeType: ProgramCollectsApplication,\r\n otherVertexPropertyName: 'IsCollectedBy',\r\n otherVertexType: Application,\r\n },\r\n {\r\n propertyName: 'IsConfiguredBy',\r\n edgeType: ProgramConfiguredByProgramOptions,\r\n otherVertexPropertyName: 'Configures',\r\n otherVertexType: ProgramOptions,\r\n },\r\n {\r\n propertyName: 'Defines',\r\n edgeType: ProgramDefinesWorkflowSet,\r\n otherVertexPropertyName: 'IsDefinedFor',\r\n otherVertexType: WorkflowSet,\r\n },\r\n {\r\n propertyName: 'Displays',\r\n edgeType: ProgramDisplaysDataPanel,\r\n otherVertexPropertyName: 'IsDisplayedBy',\r\n otherVertexType: DataPanel,\r\n },\r\n {\r\n propertyName: 'Employs',\r\n edgeType: ProgramEmploysTenantUser,\r\n otherVertexPropertyName: 'IsEmployedBy',\r\n otherVertexType: TenantUser,\r\n },\r\n {\r\n propertyName: 'Evaluates',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'IsEvaluatedBy',\r\n otherVertexType: RuleSet,\r\n },\r\n {\r\n propertyName: 'IsFormattedBy',\r\n edgeType: ProgramFormattedByRegion,\r\n otherVertexPropertyName: 'Formats',\r\n otherVertexType: Region,\r\n },\r\n {\r\n propertyName: 'Obligates',\r\n edgeType: ProgramObligatesAccountRole,\r\n otherVertexPropertyName: 'IsObligatedBy',\r\n otherVertexType: AccountRole,\r\n },\r\n {\r\n propertyName: 'Offers',\r\n edgeType: ProgramOffersProduct,\r\n otherVertexPropertyName: 'IsOfferedBy',\r\n otherVertexType: Product,\r\n },\r\n {\r\n propertyName: 'Stores',\r\n edgeType: ProgramStoresDataStore,\r\n otherVertexPropertyName: 'IsStoredFor',\r\n otherVertexType: DataStore,\r\n },\r\n {\r\n propertyName: 'Uses',\r\n edgeType: ProgramUsesWorkGroup,\r\n otherVertexPropertyName: 'IsUsedBy',\r\n otherVertexType: WorkGroup,\r\n },\r\n {\r\n propertyName: 'Utilizes',\r\n edgeType: ProgramUtilizesAssetGroup,\r\n otherVertexPropertyName: 'IsUtilizedBy',\r\n otherVertexType: AssetGroup,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Program {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Program) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Aliases: model.Aliases,\r\n LiveSince: model.LiveSince,\r\n Discontinued: model.Discontinued,\r\n Ended: model.Ended,\r\n LastUpdated: model.LastUpdated,\r\n PoliciesIssued: model.PoliciesIssued,\r\n Status: model.Status,\r\n AllowAllDocumentCategories: model.AllowAllDocumentCategories,\r\n ImportStatus: model.ImportStatus,\r\n TeamLastPublished: model.TeamLastPublished,\r\n TeamHasUnpublishedChanges: model.TeamHasUnpublishedChanges,\r\n VersionSelection: model.VersionSelection,\r\n DefaultFromAddress: model.DefaultFromAddress,\r\n DefaultWorkflowId: model.DefaultWorkflowId,\r\n DefaultDelinquentWorkflowId: model.DefaultDelinquentWorkflowId,\r\n ProductsOffered: model.ProductsOffered,\r\n AccountOwnerRoleId: model.AccountOwnerRoleId,\r\n DataPanelAccountOrder: model.DataPanelAccountOrder,\r\n DataPanelWorkflowOrder: model.DataPanelWorkflowOrder,\r\n IsEditedBy: ModelUtils.serializeShallowEdge(model.IsEditedBy(), 'IsEditedBy'),\r\n IsRevisedBy: ModelUtils.serializeShallowEdge(model.IsRevisedBy(), 'IsRevisedBy'),\r\n IsPublishedBy: ModelUtils.serializeShallowEdge(model.IsPublishedBy(), 'IsPublishedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n IsOfferedBy: ModelUtils.serializeShallowEdge(model.IsOfferedBy(), 'IsOfferedBy'),\r\n Allows: ModelUtils.serializeShallowEdge(model.Allows(), 'Allows'),\r\n Collects: ModelUtils.serializeShallowEdge(model.Collects(), 'Collects'),\r\n IsConfiguredBy: ModelUtils.serializeShallowEdge(model.IsConfiguredBy(), 'IsConfiguredBy'),\r\n Defines: ModelUtils.serializeShallowEdge(model.Defines(), 'Defines'),\r\n Displays: ModelUtils.serializeShallowEdge(model.Displays(), 'Displays'),\r\n Employs: ModelUtils.serializeShallowEdge(model.Employs(), 'Employs'),\r\n Evaluates: ModelUtils.serializeShallowEdge(model.Evaluates(), 'Evaluates'),\r\n IsFormattedBy: ModelUtils.serializeShallowEdge(model.IsFormattedBy(), 'IsFormattedBy'),\r\n Obligates: ModelUtils.serializeShallowEdge(model.Obligates(), 'Obligates'),\r\n Offers: ModelUtils.serializeShallowEdge(model.Offers(), 'Offers'),\r\n Stores: ModelUtils.serializeShallowEdge(model.Stores(), 'Stores'),\r\n Uses: ModelUtils.serializeShallowEdge(model.Uses(), 'Uses'),\r\n Utilizes: ModelUtils.serializeShallowEdge(model.Utilizes(), 'Utilizes'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Program {\r\n let clone = new Program();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEditedBy = _.cloneDeep(this._IsEditedBy);\r\n clone._IsRevisedBy = _.cloneDeep(this._IsRevisedBy);\r\n clone._IsPublishedBy = _.cloneDeep(this._IsPublishedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._IsOfferedBy = _.cloneDeep(this._IsOfferedBy);\r\n clone._Allows = _.cloneDeep(this._Allows);\r\n clone._Collects = _.cloneDeep(this._Collects);\r\n clone._IsConfiguredBy = _.cloneDeep(this._IsConfiguredBy);\r\n clone._Defines = _.cloneDeep(this._Defines);\r\n clone._Displays = _.cloneDeep(this._Displays);\r\n clone._Employs = _.cloneDeep(this._Employs);\r\n clone._Evaluates = _.cloneDeep(this._Evaluates);\r\n clone._IsFormattedBy = _.cloneDeep(this._IsFormattedBy);\r\n clone._Obligates = _.cloneDeep(this._Obligates);\r\n clone._Offers = _.cloneDeep(this._Offers);\r\n clone._Stores = _.cloneDeep(this._Stores);\r\n clone._Uses = _.cloneDeep(this._Uses);\r\n clone._Utilizes = _.cloneDeep(this._Utilizes);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport class ProgramImportValidationMessage extends ProgramValidationMessage {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramImportValidationMessage\";\r\n }\r\n\r\n // Properties\r\n get ImportedEntityId(): string {\r\n return this.data.ImportedEntityId;\r\n }\r\n set ImportedEntityId(value: string) {\r\n this.data.ImportedEntityId = value;\r\n }\r\n get ImportedEntityType(): string {\r\n return this.data.ImportedEntityType;\r\n }\r\n set ImportedEntityType(value: string) {\r\n this.data.ImportedEntityType = value;\r\n }\r\n get ImportedEntities(): { [index: string]: string } {\r\n return this.data.ImportedEntities;\r\n }\r\n set ImportedEntities(value: { [index: string]: string }) {\r\n this.data.ImportedEntities = value;\r\n }\r\n\r\n\r\n deserialize(input: Object, datacontext): ProgramImportValidationMessage {\r\n if (!input)\r\n return this;\r\n\r\n super._deserialize(input, datacontext);\r\n\r\n return this;\r\n }\r\n\r\n serialize(_model?: ProgramImportValidationMessage) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n ImportedEntityId: model.ImportedEntityId,\r\n ImportedEntityType: model.ImportedEntityType,\r\n ImportedEntities: model.ImportedEntities,\r\n Id: model.Id,\r\n Code: model.Code,\r\n Level: model.Level,\r\n Message: model.Message,\r\n RevisionedId: model.RevisionedId,\r\n ChangeId: model.ChangeId,\r\n RevisionId: model.RevisionId,\r\n ComponentId: model.ComponentId,\r\n ComponentType: model.ComponentType,\r\n EntityId: model.EntityId,\r\n EntityType: model.EntityType,\r\n Entities: model.Entities,\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramImportValidationMessage {\r\n let clone = new ProgramImportValidationMessage();\r\n clone.data = _.cloneDeep(this.data);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n\r\n}\r\n\r\nexport interface IProgramPatch {\r\n readonly DeploymentStatus?: string,\r\n UndeployedDate?: Date,\r\n UndeployedBy?: string,\r\n readonly DeletedDate?: Date,\r\n readonly PatchNo: number,\r\n Description?: string,\r\n readonly Status: string,\r\n readonly Author: string,\r\n readonly StartDate: Date,\r\n readonly ChangeId?: string,\r\n RootItemPatched: string,\r\n Id: string,\r\n\r\n DeployedTo?: object[],\r\n Revises?: object[]\r\n\r\n}\r\n\r\nexport class ProgramPatch extends Deployable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramPatch\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramPatch }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DeletedDate(): Date {\r\n return this.data.DeletedDate ? new Date(this.data.DeletedDate) : undefined;\r\n }\r\n get PatchNo(): number {\r\n return this.data.PatchNo;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Status(): string {\r\n return this.data.Status;\r\n }\r\n get Author(): string {\r\n return this.data.Author;\r\n }\r\n get StartDate(): Date {\r\n return this.data.StartDate ? new Date(this.data.StartDate) : undefined;\r\n }\r\n get ChangeId(): string {\r\n return this.data.ChangeId;\r\n }\r\n get RootItemPatched(): string {\r\n return this.data.RootItemPatched;\r\n }\r\n set RootItemPatched(value: string) {\r\n this.data.RootItemPatched = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Revises, returns Program ProgramPatchRevisesRevisioned[]\r\n private __Revises: ProgramPatchRevisesRevisioned[];\r\n Revises(_context?: BaseDataContext): ProgramPatchRevisesRevisioned[] {\r\n if (this.__Revises)\r\n return this.__Revises;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Revises), (id) => context.get(id) as ProgramPatchRevisesRevisioned);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRevises(values: ProgramPatchRevisesRevisioned[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Revises = values;\r\n }\r\n get _Revises(): Set {\r\n if (!this._relationships.has(\"Revises\"))\r\n this._relationships.set(\"Revises\", new Set());\r\n\r\n return this._relationships.get(\"Revises\");\r\n }\r\n set _Revises(values: Set) {\r\n this._relationships.set(\"Revises\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'DeployedTo',\r\n edgeType: AreaDeploysDeployable,\r\n otherVertexPropertyName: 'Deploys',\r\n otherVertexType: Area,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Revises',\r\n edgeType: ProgramPatchRevisesRevisioned,\r\n otherVertexPropertyName: 'IsRevisedBy',\r\n otherVertexType: Program,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramPatch {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramPatch) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeploymentStatus: model.DeploymentStatus,\r\n UndeployedDate: model.UndeployedDate,\r\n UndeployedBy: model.UndeployedBy,\r\n DeletedDate: model.DeletedDate,\r\n PatchNo: model.PatchNo,\r\n Description: model.Description,\r\n Status: model.Status,\r\n Author: model.Author,\r\n StartDate: model.StartDate,\r\n ChangeId: model.ChangeId,\r\n RootItemPatched: model.RootItemPatched,\r\n Id: model.Id,\r\n DeployedTo: ModelUtils.serializeShallowEdge(model.DeployedTo(), 'DeployedTo'),\r\n Revises: ModelUtils.serializeShallowEdge(model.Revises(), 'Revises'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramPatch {\r\n let clone = new ProgramPatch();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._DeployedTo = _.cloneDeep(this._DeployedTo);\r\n clone._Revises = _.cloneDeep(this._Revises);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IProgramRevision {\r\n readonly DeploymentStatus?: string,\r\n UndeployedDate?: Date,\r\n UndeployedBy?: string,\r\n readonly RevisionNo: number,\r\n readonly VersionNo: number,\r\n Summary: string,\r\n Description: string,\r\n readonly ChangeIds?: string[],\r\n readonly ComponentRevisionNos?: { [index: string]: number },\r\n readonly ComponentVersionNos?: { [index: string]: number },\r\n readonly ComponentLabels?: { [index: string]: string },\r\n readonly ComponentName?: { [index: string]: string },\r\n readonly ComponentChildToParent?: { [index: string]: string },\r\n readonly PatchIds?: string[],\r\n Id: string,\r\n StartDate: ContractDate,\r\n StopDate?: ContractDate,\r\n readonly DeploymentError?: any,\r\n\r\n UtilizesAppStructure?: object[],\r\n DeployedTo?: object[],\r\n Configures?: object[],\r\n Publishes?: object[],\r\n Tracks?: object[]\r\n\r\n}\r\n\r\nexport class ProgramRevision extends Deployable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ProgramRevision\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ProgramRevision }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get RevisionNo(): number {\r\n return this.data.RevisionNo;\r\n }\r\n get VersionNo(): number {\r\n return this.data.VersionNo;\r\n }\r\n get Summary(): string {\r\n return this.data.Summary;\r\n }\r\n set Summary(value: string) {\r\n this.data.Summary = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get ChangeIds(): string[] {\r\n return this.data.ChangeIds;\r\n }\r\n get ComponentRevisionNos(): { [index: string]: number } {\r\n return this.data.ComponentRevisionNos;\r\n }\r\n get ComponentVersionNos(): { [index: string]: number } {\r\n return this.data.ComponentVersionNos;\r\n }\r\n get ComponentLabels(): { [index: string]: string } {\r\n return this.data.ComponentLabels;\r\n }\r\n get ComponentName(): { [index: string]: string } {\r\n return this.data.ComponentName;\r\n }\r\n get ComponentChildToParent(): { [index: string]: string } {\r\n return this.data.ComponentChildToParent;\r\n }\r\n get PatchIds(): string[] {\r\n return this.data.PatchIds;\r\n }\r\n get StartDate(): ContractDate {\r\n this.data.StartDate = ModelUtils.deserializeContractDate(this.data.StartDate);\r\n return this.data.StartDate;\r\n }\r\n set StartDate(value: ContractDate) {\r\n this.data.StartDate = value;\r\n }\r\n get StopDate(): ContractDate {\r\n this.data.StopDate = ModelUtils.deserializeContractDate(this.data.StopDate);\r\n return this.data.StopDate;\r\n }\r\n set StopDate(value: ContractDate) {\r\n this.data.StopDate = value;\r\n }\r\n get DeploymentError(): any {\r\n return this.data.DeploymentError;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship UtilizesAppStructure, returns ApplicationStructure ApplicationStructureBelongsToProgramRevision[]\r\n private __UtilizesAppStructure: ApplicationStructureBelongsToProgramRevision[];\r\n UtilizesAppStructure(_context?: BaseDataContext): ApplicationStructureBelongsToProgramRevision[] {\r\n if (this.__UtilizesAppStructure)\r\n return this.__UtilizesAppStructure;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._UtilizesAppStructure), (id) => context.get(id) as ApplicationStructureBelongsToProgramRevision);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setUtilizesAppStructure(values: ApplicationStructureBelongsToProgramRevision[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__UtilizesAppStructure = values;\r\n }\r\n get _UtilizesAppStructure(): Set {\r\n if (!this._relationships.has(\"UtilizesAppStructure\"))\r\n this._relationships.set(\"UtilizesAppStructure\", new Set());\r\n\r\n return this._relationships.get(\"UtilizesAppStructure\");\r\n }\r\n set _UtilizesAppStructure(values: Set) {\r\n this._relationships.set(\"UtilizesAppStructure\", values);\r\n }\r\n\r\n // Relationship Configures, returns Area ProgramRevisionConfiguresArea[]\r\n private __Configures: ProgramRevisionConfiguresArea[];\r\n Configures(_context?: BaseDataContext): ProgramRevisionConfiguresArea[] {\r\n if (this.__Configures)\r\n return this.__Configures;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Configures), (id) => context.get(id) as ProgramRevisionConfiguresArea);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setConfigures(values: ProgramRevisionConfiguresArea[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Configures = values;\r\n }\r\n get _Configures(): Set {\r\n if (!this._relationships.has(\"Configures\"))\r\n this._relationships.set(\"Configures\", new Set());\r\n\r\n return this._relationships.get(\"Configures\");\r\n }\r\n set _Configures(values: Set) {\r\n this._relationships.set(\"Configures\", values);\r\n }\r\n\r\n // Relationship Publishes, returns Program ProgramRevisionPublishesProgram[]\r\n private __Publishes: ProgramRevisionPublishesProgram[];\r\n Publishes(_context?: BaseDataContext): ProgramRevisionPublishesProgram[] {\r\n if (this.__Publishes)\r\n return this.__Publishes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Publishes), (id) => context.get(id) as ProgramRevisionPublishesProgram);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setPublishes(values: ProgramRevisionPublishesProgram[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Publishes = values;\r\n }\r\n get _Publishes(): Set {\r\n if (!this._relationships.has(\"Publishes\"))\r\n this._relationships.set(\"Publishes\", new Set());\r\n\r\n return this._relationships.get(\"Publishes\");\r\n }\r\n set _Publishes(values: Set) {\r\n this._relationships.set(\"Publishes\", values);\r\n }\r\n\r\n // Relationship Tracks, returns ProgramRevisioned ProgramRevisionTracksProgramRevisioned[]\r\n private __Tracks: ProgramRevisionTracksProgramRevisioned[];\r\n Tracks(_context?: BaseDataContext): ProgramRevisionTracksProgramRevisioned[] {\r\n if (this.__Tracks)\r\n return this.__Tracks;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Tracks), (id) => context.get(id) as ProgramRevisionTracksProgramRevisioned);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setTracks(values: ProgramRevisionTracksProgramRevisioned[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Tracks = values;\r\n }\r\n get _Tracks(): Set {\r\n if (!this._relationships.has(\"Tracks\"))\r\n this._relationships.set(\"Tracks\", new Set());\r\n\r\n return this._relationships.get(\"Tracks\");\r\n }\r\n set _Tracks(values: Set) {\r\n this._relationships.set(\"Tracks\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'UtilizesAppStructure',\r\n edgeType: ApplicationStructureBelongsToProgramRevision,\r\n otherVertexPropertyName: 'BelongsTo',\r\n otherVertexType: ApplicationStructure,\r\n },\r\n {\r\n propertyName: 'DeployedTo',\r\n edgeType: AreaDeploysDeployable,\r\n otherVertexPropertyName: 'Deploys',\r\n otherVertexType: Area,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Configures',\r\n edgeType: ProgramRevisionConfiguresArea,\r\n otherVertexPropertyName: 'IsConfiguredFor',\r\n otherVertexType: Area,\r\n },\r\n {\r\n propertyName: 'Publishes',\r\n edgeType: ProgramRevisionPublishesProgram,\r\n otherVertexPropertyName: 'IsPublishedBy',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'Tracks',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'IsTrackedFor',\r\n otherVertexType: ProgramRevisioned,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ProgramRevision {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ProgramRevision) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DeploymentStatus: model.DeploymentStatus,\r\n UndeployedDate: model.UndeployedDate,\r\n UndeployedBy: model.UndeployedBy,\r\n RevisionNo: model.RevisionNo,\r\n VersionNo: model.VersionNo,\r\n Summary: model.Summary,\r\n Description: model.Description,\r\n ChangeIds: model.ChangeIds,\r\n ComponentRevisionNos: model.ComponentRevisionNos,\r\n ComponentVersionNos: model.ComponentVersionNos,\r\n ComponentLabels: model.ComponentLabels,\r\n ComponentName: model.ComponentName,\r\n ComponentChildToParent: model.ComponentChildToParent,\r\n PatchIds: model.PatchIds,\r\n Id: model.Id,\r\n StartDate: ModelUtils.serializeContractDate(model.data.StartDate),\r\n StopDate: ModelUtils.serializeContractDate(model.data.StopDate),\r\n DeploymentError: model.DeploymentError,\r\n UtilizesAppStructure: ModelUtils.serializeShallowEdge(model.UtilizesAppStructure(), 'UtilizesAppStructure'),\r\n DeployedTo: ModelUtils.serializeShallowEdge(model.DeployedTo(), 'DeployedTo'),\r\n Configures: ModelUtils.serializeShallowEdge(model.Configures(), 'Configures'),\r\n Publishes: ModelUtils.serializeShallowEdge(model.Publishes(), 'Publishes'),\r\n Tracks: ModelUtils.serializeShallowEdge(model.Tracks(), 'Tracks'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ProgramRevision {\r\n let clone = new ProgramRevision();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._UtilizesAppStructure = _.cloneDeep(this._UtilizesAppStructure);\r\n clone._DeployedTo = _.cloneDeep(this._DeployedTo);\r\n clone._Configures = _.cloneDeep(this._Configures);\r\n clone._Publishes = _.cloneDeep(this._Publishes);\r\n clone._Tracks = _.cloneDeep(this._Tracks);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRule {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[]\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class Rule extends Mappable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Rule\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Rule }[] = [\r\n {className: 'RuleDateTime', type: RuleDateTime},\r\n {className: 'RuleProductSelection', type: RuleProductSelection},\r\n {className: 'RuleRiskAssessment', type: RuleRiskAssessment},\r\n {className: 'RuleRoleAssignment', type: RuleRoleAssignment},\r\n {className: 'RuleTaskObligation', type: RuleTaskObligation},\r\n {className: 'RuleWorkflowSetStatus', type: RuleWorkflowSetStatus},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get Enabled(): boolean {\r\n return this.data.Enabled;\r\n }\r\n set Enabled(value: boolean) {\r\n this.data.Enabled = value;\r\n }\r\n get DecisionFunction(): string {\r\n return this.data.DecisionFunction;\r\n }\r\n set DecisionFunction(value: string) {\r\n this.data.DecisionFunction = value;\r\n }\r\n get DecisionMatrixJson(): string {\r\n return this.data.DecisionMatrixJson;\r\n }\r\n set DecisionMatrixJson(value: string) {\r\n this.data.DecisionMatrixJson = value;\r\n }\r\n get InputSources(): any[] {\r\n return this.data.InputSources;\r\n }\r\n set InputSources(value: any[]) {\r\n this.data.InputSources = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsContainedBy, returns RuleSet RuleSetContainsRule[]\r\n private __IsContainedBy: RuleSetContainsRule[];\r\n IsContainedBy(_context?: BaseDataContext): RuleSetContainsRule[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as RuleSetContainsRule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: RuleSetContainsRule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Rule {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Rule) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Rule {\r\n let clone = new Rule();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSet {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSet extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSet\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSet }[] = [\r\n {className: 'RuleSetAssignment', type: RuleSetAssignment},\r\n {className: 'RuleSetDateTime', type: RuleSetDateTime},\r\n {className: 'RuleSetProduct', type: RuleSetProduct},\r\n {className: 'RuleSetRequirement', type: RuleSetRequirement},\r\n {className: 'RuleSetRiskAssessment', type: RuleSetRiskAssessment},\r\n {className: 'RuleSetWorkflowSetStatus', type: RuleSetWorkflowSetStatus},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEvaluatedBy, returns Program ProgramEvaluatesRuleSet[]\r\n private __IsEvaluatedBy: ProgramEvaluatesRuleSet[];\r\n IsEvaluatedBy(_context?: BaseDataContext): ProgramEvaluatesRuleSet[] {\r\n if (this.__IsEvaluatedBy)\r\n return this.__IsEvaluatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEvaluatedBy), (id) => context.get(id) as ProgramEvaluatesRuleSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEvaluatedBy(values: ProgramEvaluatesRuleSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEvaluatedBy = values;\r\n }\r\n get _IsEvaluatedBy(): Set {\r\n if (!this._relationships.has(\"IsEvaluatedBy\"))\r\n this._relationships.set(\"IsEvaluatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsEvaluatedBy\");\r\n }\r\n set _IsEvaluatedBy(values: Set) {\r\n this._relationships.set(\"IsEvaluatedBy\", values);\r\n }\r\n\r\n // Relationship Contains, returns Rule RuleSetContainsRule[]\r\n private __Contains: RuleSetContainsRule[];\r\n Contains(_context?: BaseDataContext): RuleSetContainsRule[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as RuleSetContainsRule);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: RuleSetContainsRule[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSet {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSet {\r\n let clone = new RuleSet();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IScriptCondition {\r\n Id: string,\r\n Name?: string,\r\n Description?: string,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction: string,\r\n\r\n IsContainedBy?: object[],\r\n Enables?: object[],\r\n Evaluates?: object[]\r\n\r\n}\r\n\r\nexport class ScriptCondition extends ElementCondition {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ScriptCondition\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ScriptCondition }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ScriptFunction(): string {\r\n return this.data.ScriptFunction;\r\n }\r\n set ScriptFunction(value: string) {\r\n this.data.ScriptFunction = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: ApplicationContainsElementCondition,\r\n otherVertexPropertyName: 'ContainsCondition',\r\n otherVertexType: Application,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Enables',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'IsEnabledBy',\r\n otherVertexType: Element,\r\n },\r\n {\r\n propertyName: 'Evaluates',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'IsEvaluatedForCondition',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ScriptCondition {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ScriptCondition) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n Evaluates: ModelUtils.serializeShallowEdge(model.Evaluates(), 'Evaluates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ScriptCondition {\r\n let clone = new ScriptCondition();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n clone._Evaluates = _.cloneDeep(this._Evaluates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ISection {\r\n Sequence?: string[],\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Repeatable?: boolean,\r\n LayoutHint: string,\r\n DisplayProperties?: string[],\r\n MinSections?: number,\r\n MaxSections?: number,\r\n RepeatsWithDataGroupId?: string,\r\n Access: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsCollectedBy?: object[],\r\n IsDisplayedBy?: object[],\r\n IsSequencedBy?: object[],\r\n Displays?: object[],\r\n RepeatsWith?: object[]\r\n\r\n}\r\n\r\nexport class Section extends Element {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Section\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Section }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Repeatable(): boolean {\r\n return this.data.Repeatable;\r\n }\r\n set Repeatable(value: boolean) {\r\n this.data.Repeatable = value;\r\n }\r\n get LayoutHint(): string {\r\n return this.data.LayoutHint;\r\n }\r\n set LayoutHint(value: string) {\r\n this.data.LayoutHint = value;\r\n }\r\n get DisplayProperties(): string[] {\r\n return this.data.DisplayProperties;\r\n }\r\n set DisplayProperties(value: string[]) {\r\n this.data.DisplayProperties = value;\r\n }\r\n get MinSections(): number {\r\n return this.data.MinSections;\r\n }\r\n set MinSections(value: number) {\r\n this.data.MinSections = value;\r\n }\r\n get MaxSections(): number {\r\n return this.data.MaxSections;\r\n }\r\n set MaxSections(value: number) {\r\n this.data.MaxSections = value;\r\n }\r\n get RepeatsWithDataGroupId(): string {\r\n return this.data.RepeatsWithDataGroupId;\r\n }\r\n set RepeatsWithDataGroupId(value: string) {\r\n this.data.RepeatsWithDataGroupId = value;\r\n }\r\n get Access(): string {\r\n return this.data.Access;\r\n }\r\n set Access(value: string) {\r\n this.data.Access = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsCollectedBy, returns Application ApplicationCollectsSection[]\r\n private __IsCollectedBy: ApplicationCollectsSection[];\r\n IsCollectedBy(_context?: BaseDataContext): ApplicationCollectsSection[] {\r\n if (this.__IsCollectedBy)\r\n return this.__IsCollectedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsCollectedBy), (id) => context.get(id) as ApplicationCollectsSection);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsCollectedBy(values: ApplicationCollectsSection[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsCollectedBy = values;\r\n }\r\n get _IsCollectedBy(): Set {\r\n if (!this._relationships.has(\"IsCollectedBy\"))\r\n this._relationships.set(\"IsCollectedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsCollectedBy\");\r\n }\r\n set _IsCollectedBy(values: Set) {\r\n this._relationships.set(\"IsCollectedBy\", values);\r\n }\r\n\r\n // Relationship IsSequencedBy, returns SectionSequence SectionIsSequencedBySectionSequence[]\r\n private __IsSequencedBy: SectionIsSequencedBySectionSequence[];\r\n IsSequencedBy(_context?: BaseDataContext): SectionIsSequencedBySectionSequence[] {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSequencedBy), (id) => context.get(id) as SectionIsSequencedBySectionSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSequencedBy(values: SectionIsSequencedBySectionSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSequencedBy = values;\r\n }\r\n get _IsSequencedBy(): Set {\r\n if (!this._relationships.has(\"IsSequencedBy\"))\r\n this._relationships.set(\"IsSequencedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSequencedBy\");\r\n }\r\n set _IsSequencedBy(values: Set) {\r\n this._relationships.set(\"IsSequencedBy\", values);\r\n }\r\n\r\n // Relationship Displays, returns Element SectionDisplaysElement[]\r\n private __Displays: SectionDisplaysElement[];\r\n Displays(_context?: BaseDataContext): SectionDisplaysElement[] {\r\n if (this.__Displays)\r\n return this.__Displays;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Displays), (id) => context.get(id) as SectionDisplaysElement);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDisplays(values: SectionDisplaysElement[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Displays = values;\r\n }\r\n get _Displays(): Set {\r\n if (!this._relationships.has(\"Displays\"))\r\n this._relationships.set(\"Displays\", new Set());\r\n\r\n return this._relationships.get(\"Displays\");\r\n }\r\n set _Displays(values: Set) {\r\n this._relationships.set(\"Displays\", values);\r\n }\r\n\r\n // Relationship RepeatsWith, returns DataGroup SectionRepeatsWithDataGroup[]\r\n private __RepeatsWith: SectionRepeatsWithDataGroup[];\r\n RepeatsWith(_context?: BaseDataContext): SectionRepeatsWithDataGroup[] {\r\n if (this.__RepeatsWith)\r\n return this.__RepeatsWith;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._RepeatsWith), (id) => context.get(id) as SectionRepeatsWithDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRepeatsWith(values: SectionRepeatsWithDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__RepeatsWith = values;\r\n }\r\n get _RepeatsWith(): Set {\r\n if (!this._relationships.has(\"RepeatsWith\"))\r\n this._relationships.set(\"RepeatsWith\", new Set());\r\n\r\n return this._relationships.get(\"RepeatsWith\");\r\n }\r\n set _RepeatsWith(values: Set) {\r\n this._relationships.set(\"RepeatsWith\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsCollectedBy',\r\n edgeType: ApplicationCollectsSection,\r\n otherVertexPropertyName: 'Collects',\r\n otherVertexType: Application,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsSequencedBy',\r\n edgeType: SectionIsSequencedBySectionSequence,\r\n otherVertexPropertyName: 'Sequences',\r\n otherVertexType: SectionSequence,\r\n },\r\n {\r\n propertyName: 'Displays',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'IsDisplayedBy',\r\n otherVertexType: Element,\r\n },\r\n {\r\n propertyName: 'RepeatsWith',\r\n edgeType: SectionRepeatsWithDataGroup,\r\n otherVertexPropertyName: 'RepeatsToSection',\r\n otherVertexType: DataGroup,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Section {\r\n return ModelUtils.deserializeVertex
(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Section) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Repeatable: model.Repeatable,\r\n LayoutHint: model.LayoutHint,\r\n DisplayProperties: model.DisplayProperties,\r\n MinSections: model.MinSections,\r\n MaxSections: model.MaxSections,\r\n RepeatsWithDataGroupId: model.RepeatsWithDataGroupId,\r\n Access: model.Access,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsCollectedBy: ModelUtils.serializeShallowEdge(model.IsCollectedBy(), 'IsCollectedBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n IsSequencedBy: ModelUtils.serializeShallowEdge(model.IsSequencedBy(), 'IsSequencedBy'),\r\n Displays: ModelUtils.serializeShallowEdge(model.Displays(), 'Displays'),\r\n RepeatsWith: ModelUtils.serializeShallowEdge(model.RepeatsWith(), 'RepeatsWith'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Section {\r\n let clone = new Section();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsCollectedBy = _.cloneDeep(this._IsCollectedBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._IsSequencedBy = _.cloneDeep(this._IsSequencedBy);\r\n clone._Displays = _.cloneDeep(this._Displays);\r\n clone._RepeatsWith = _.cloneDeep(this._RepeatsWith);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IStaticElement {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[]\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[]\r\n\r\n}\r\n\r\nexport class StaticElement extends Element {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"StaticElement\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof StaticElement }[] = [\r\n {className: 'StaticText', type: StaticText},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): StaticElement {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: StaticElement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): StaticElement {\r\n let clone = new StaticElement();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITask {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class Task extends Workable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Task\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Task }[] = [\r\n {className: 'TaskApplication', type: TaskApplication},\r\n {className: 'TaskApproval', type: TaskApproval},\r\n {className: 'TaskClearance', type: TaskClearance},\r\n {className: 'TaskCorrespondence', type: TaskCorrespondence},\r\n {className: 'TaskDocumentGeneration', type: TaskDocumentGeneration},\r\n {className: 'TaskFileRequirement', type: TaskFileRequirement},\r\n {className: 'TaskManual', type: TaskManual},\r\n {className: 'TaskPolicyDates', type: TaskPolicyDates},\r\n {className: 'TaskProducts', type: TaskProducts},\r\n {className: 'TaskRatingSystem', type: TaskRatingSystem},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get HowTo(): string {\r\n return this.data.HowTo;\r\n }\r\n set HowTo(value: string) {\r\n this.data.HowTo = value;\r\n }\r\n get ObligationStatus(): string {\r\n return this.data.ObligationStatus;\r\n }\r\n set ObligationStatus(value: string) {\r\n this.data.ObligationStatus = value;\r\n }\r\n get AutoComplete(): boolean {\r\n return this.data.AutoComplete;\r\n }\r\n set AutoComplete(value: boolean) {\r\n this.data.AutoComplete = value;\r\n }\r\n get AutoExecute(): boolean {\r\n return this.data.AutoExecute;\r\n }\r\n set AutoExecute(value: boolean) {\r\n this.data.AutoExecute = value;\r\n }\r\n get AutoDefer(): boolean {\r\n return this.data.AutoDefer;\r\n }\r\n set AutoDefer(value: boolean) {\r\n this.data.AutoDefer = value;\r\n }\r\n get DeferAmount(): number {\r\n return this.data.DeferAmount;\r\n }\r\n set DeferAmount(value: number) {\r\n this.data.DeferAmount = value;\r\n }\r\n get DeferAmountUnits(): string {\r\n return this.data.DeferAmountUnits;\r\n }\r\n set DeferAmountUnits(value: string) {\r\n this.data.DeferAmountUnits = value;\r\n }\r\n get DeferBusinessHoursOnly(): boolean {\r\n return this.data.DeferBusinessHoursOnly;\r\n }\r\n set DeferBusinessHoursOnly(value: boolean) {\r\n this.data.DeferBusinessHoursOnly = value;\r\n }\r\n get DefaultAssignee(): string {\r\n return this.data.DefaultAssignee;\r\n }\r\n set DefaultAssignee(value: string) {\r\n this.data.DefaultAssignee = value;\r\n }\r\n get Waivable(): boolean {\r\n return this.data.Waivable;\r\n }\r\n set Waivable(value: boolean) {\r\n this.data.Waivable = value;\r\n }\r\n get OnCompleteWorkflowSetStatus(): string {\r\n return this.data.OnCompleteWorkflowSetStatus;\r\n }\r\n set OnCompleteWorkflowSetStatus(value: string) {\r\n this.data.OnCompleteWorkflowSetStatus = value;\r\n }\r\n get Webhooks(): string[] {\r\n return this.data.Webhooks;\r\n }\r\n set Webhooks(value: string[]) {\r\n this.data.Webhooks = value;\r\n }\r\n get OnCompleteEventActions(): any[] {\r\n return this.data.OnCompleteEventActions;\r\n }\r\n set OnCompleteEventActions(value: any[]) {\r\n this.data.OnCompleteEventActions = value;\r\n }\r\n get OnUncompleteEventActions(): any[] {\r\n return this.data.OnUncompleteEventActions;\r\n }\r\n set OnUncompleteEventActions(value: any[]) {\r\n this.data.OnUncompleteEventActions = value;\r\n }\r\n get SLATriggeredByWorkableIds(): string[] {\r\n return this.data.SLATriggeredByWorkableIds;\r\n }\r\n set SLATriggeredByWorkableIds(value: string[]) {\r\n this.data.SLATriggeredByWorkableIds = value;\r\n }\r\n get SLACorrelationKey(): string {\r\n return this.data.SLACorrelationKey;\r\n }\r\n set SLACorrelationKey(value: string) {\r\n this.data.SLACorrelationKey = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship GetsRequirementFrom, returns RuleTaskObligation RuleTaskObligationSetsRequirementForTask[]\r\n private __GetsRequirementFrom: RuleTaskObligationSetsRequirementForTask[];\r\n GetsRequirementFrom(_context?: BaseDataContext): RuleTaskObligationSetsRequirementForTask[] {\r\n if (this.__GetsRequirementFrom)\r\n return this.__GetsRequirementFrom;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._GetsRequirementFrom), (id) => context.get(id) as RuleTaskObligationSetsRequirementForTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setGetsRequirementFrom(values: RuleTaskObligationSetsRequirementForTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__GetsRequirementFrom = values;\r\n }\r\n get _GetsRequirementFrom(): Set {\r\n if (!this._relationships.has(\"GetsRequirementFrom\"))\r\n this._relationships.set(\"GetsRequirementFrom\", new Set());\r\n\r\n return this._relationships.get(\"GetsRequirementFrom\");\r\n }\r\n set _GetsRequirementFrom(values: Set) {\r\n this._relationships.set(\"GetsRequirementFrom\", values);\r\n }\r\n\r\n // Relationship IsRequiredFor, returns Phase PhaseRequiresTask[]\r\n private __IsRequiredFor: PhaseRequiresTask[];\r\n IsRequiredFor(_context?: BaseDataContext): PhaseRequiresTask[] {\r\n if (this.__IsRequiredFor)\r\n return this.__IsRequiredFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRequiredFor), (id) => context.get(id) as PhaseRequiresTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRequiredFor(values: PhaseRequiresTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRequiredFor = values;\r\n }\r\n get _IsRequiredFor(): Set {\r\n if (!this._relationships.has(\"IsRequiredFor\"))\r\n this._relationships.set(\"IsRequiredFor\", new Set());\r\n\r\n return this._relationships.get(\"IsRequiredFor\");\r\n }\r\n set _IsRequiredFor(values: Set) {\r\n this._relationships.set(\"IsRequiredFor\", values);\r\n }\r\n\r\n // Relationship InitiallyAssignedTo, returns Assignable TaskAssignedAssignable[]\r\n private __InitiallyAssignedTo: TaskAssignedAssignable[];\r\n InitiallyAssignedTo(_context?: BaseDataContext): TaskAssignedAssignable[] {\r\n if (this.__InitiallyAssignedTo)\r\n return this.__InitiallyAssignedTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._InitiallyAssignedTo), (id) => context.get(id) as TaskAssignedAssignable);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setInitiallyAssignedTo(values: TaskAssignedAssignable[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__InitiallyAssignedTo = values;\r\n }\r\n get _InitiallyAssignedTo(): Set {\r\n if (!this._relationships.has(\"InitiallyAssignedTo\"))\r\n this._relationships.set(\"InitiallyAssignedTo\", new Set());\r\n\r\n return this._relationships.get(\"InitiallyAssignedTo\");\r\n }\r\n set _InitiallyAssignedTo(values: Set) {\r\n this._relationships.set(\"InitiallyAssignedTo\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Task {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Task) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Task {\r\n let clone = new Task();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITenantUser {\r\n Id: string,\r\n DisplayName?: string,\r\n BadgePath?: string,\r\n LastLoginDate?: Date,\r\n readonly Active: boolean,\r\n Honorific?: string,\r\n FirstName?: string,\r\n MiddleName?: string,\r\n LastName?: string,\r\n NameSuffix?: string,\r\n Email: string,\r\n Title?: string,\r\n Phone?: string,\r\n CreatedDate?: Date,\r\n ActiveSince?: Date,\r\n InvitedDate?: Date,\r\n CreatedBy?: string,\r\n Initials: string,\r\n\r\n IsEmployedBy?: object[],\r\n DevelopsAs?: object[],\r\n IsContactFor?: object[],\r\n FillsSecurityRole?: object[],\r\n WorksIn?: object[],\r\n IsMemberOf?: object[]\r\n\r\n}\r\n\r\nexport class TenantUser extends SMIdentity {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TenantUser\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TenantUser }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Honorific(): string {\r\n return this.data.Honorific;\r\n }\r\n set Honorific(value: string) {\r\n this.data.Honorific = value;\r\n }\r\n get FirstName(): string {\r\n return this.data.FirstName;\r\n }\r\n set FirstName(value: string) {\r\n this.data.FirstName = value;\r\n }\r\n get MiddleName(): string {\r\n return this.data.MiddleName;\r\n }\r\n set MiddleName(value: string) {\r\n this.data.MiddleName = value;\r\n }\r\n get LastName(): string {\r\n return this.data.LastName;\r\n }\r\n set LastName(value: string) {\r\n this.data.LastName = value;\r\n }\r\n get NameSuffix(): string {\r\n return this.data.NameSuffix;\r\n }\r\n set NameSuffix(value: string) {\r\n this.data.NameSuffix = value;\r\n }\r\n get Email(): string {\r\n return this.data.Email;\r\n }\r\n set Email(value: string) {\r\n this.data.Email = value;\r\n }\r\n get Title(): string {\r\n return this.data.Title;\r\n }\r\n set Title(value: string) {\r\n this.data.Title = value;\r\n }\r\n get Phone(): string {\r\n return this.data.Phone;\r\n }\r\n set Phone(value: string) {\r\n this.data.Phone = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n set CreatedDate(value: Date) {\r\n this.data.CreatedDate = value;\r\n }\r\n get ActiveSince(): Date {\r\n return this.data.ActiveSince ? new Date(this.data.ActiveSince) : undefined;\r\n }\r\n set ActiveSince(value: Date) {\r\n this.data.ActiveSince = value;\r\n }\r\n get InvitedDate(): Date {\r\n return this.data.InvitedDate ? new Date(this.data.InvitedDate) : undefined;\r\n }\r\n set InvitedDate(value: Date) {\r\n this.data.InvitedDate = value;\r\n }\r\n get CreatedBy(): string {\r\n return this.data.CreatedBy;\r\n }\r\n set CreatedBy(value: string) {\r\n this.data.CreatedBy = value;\r\n }\r\n get Initials(): string {\r\n return this.data.Initials;\r\n }\r\n set Initials(value: string) {\r\n this.data.Initials = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsEmployedBy, returns Program ProgramEmploysTenantUser[]\r\n private __IsEmployedBy: ProgramEmploysTenantUser[];\r\n IsEmployedBy(_context?: BaseDataContext): ProgramEmploysTenantUser[] {\r\n if (this.__IsEmployedBy)\r\n return this.__IsEmployedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsEmployedBy), (id) => context.get(id) as ProgramEmploysTenantUser);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsEmployedBy(values: ProgramEmploysTenantUser[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsEmployedBy = values;\r\n }\r\n get _IsEmployedBy(): Set {\r\n if (!this._relationships.has(\"IsEmployedBy\"))\r\n this._relationships.set(\"IsEmployedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsEmployedBy\");\r\n }\r\n set _IsEmployedBy(values: Set) {\r\n this._relationships.set(\"IsEmployedBy\", values);\r\n }\r\n\r\n // Relationship DevelopsAs, returns Developer TenantUserDevelopsAsDeveloper[]\r\n private __DevelopsAs: TenantUserDevelopsAsDeveloper[];\r\n DevelopsAs(_context?: BaseDataContext): TenantUserDevelopsAsDeveloper[] {\r\n if (this.__DevelopsAs)\r\n return this.__DevelopsAs;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DevelopsAs), (id) => context.get(id) as TenantUserDevelopsAsDeveloper);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDevelopsAs(values: TenantUserDevelopsAsDeveloper[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DevelopsAs = values;\r\n }\r\n get _DevelopsAs(): Set {\r\n if (!this._relationships.has(\"DevelopsAs\"))\r\n this._relationships.set(\"DevelopsAs\", new Set());\r\n\r\n return this._relationships.get(\"DevelopsAs\");\r\n }\r\n set _DevelopsAs(values: Set) {\r\n this._relationships.set(\"DevelopsAs\", values);\r\n }\r\n\r\n // Relationship IsContactFor, returns App AppRepresentedByTenantUser[]\r\n private __IsContactFor: AppRepresentedByTenantUser[];\r\n IsContactFor(_context?: BaseDataContext): AppRepresentedByTenantUser[] {\r\n if (this.__IsContactFor)\r\n return this.__IsContactFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContactFor), (id) => context.get(id) as AppRepresentedByTenantUser);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContactFor(values: AppRepresentedByTenantUser[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContactFor = values;\r\n }\r\n get _IsContactFor(): Set {\r\n if (!this._relationships.has(\"IsContactFor\"))\r\n this._relationships.set(\"IsContactFor\", new Set());\r\n\r\n return this._relationships.get(\"IsContactFor\");\r\n }\r\n set _IsContactFor(values: Set) {\r\n this._relationships.set(\"IsContactFor\", values);\r\n }\r\n\r\n // Relationship IsMemberOf, returns WorkGroup TenantUserMemberOfWorkGroup[]\r\n private __IsMemberOf: TenantUserMemberOfWorkGroup[];\r\n IsMemberOf(_context?: BaseDataContext): TenantUserMemberOfWorkGroup[] {\r\n if (this.__IsMemberOf)\r\n return this.__IsMemberOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsMemberOf), (id) => context.get(id) as TenantUserMemberOfWorkGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsMemberOf(values: TenantUserMemberOfWorkGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsMemberOf = values;\r\n }\r\n get _IsMemberOf(): Set {\r\n if (!this._relationships.has(\"IsMemberOf\"))\r\n this._relationships.set(\"IsMemberOf\", new Set());\r\n\r\n return this._relationships.get(\"IsMemberOf\");\r\n }\r\n set _IsMemberOf(values: Set) {\r\n this._relationships.set(\"IsMemberOf\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEmployedBy',\r\n edgeType: ProgramEmploysTenantUser,\r\n otherVertexPropertyName: 'Employs',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'DevelopsAs',\r\n edgeType: TenantUserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'IsPersonaOf',\r\n otherVertexType: Developer,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContactFor',\r\n edgeType: AppRepresentedByTenantUser,\r\n otherVertexPropertyName: 'IsRepresentedBy',\r\n otherVertexType: App,\r\n },\r\n {\r\n propertyName: 'FillsSecurityRole',\r\n edgeType: SMIdentityFillsSecurityRole,\r\n otherVertexPropertyName: 'IsFilledBy',\r\n otherVertexType: SecurityRole,\r\n },\r\n {\r\n propertyName: 'WorksIn',\r\n edgeType: SMIdentityWorksInArea,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: Area,\r\n },\r\n {\r\n propertyName: 'IsMemberOf',\r\n edgeType: TenantUserMemberOfWorkGroup,\r\n otherVertexPropertyName: 'HasMembers',\r\n otherVertexType: WorkGroup,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TenantUser {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TenantUser) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n LastLoginDate: model.LastLoginDate,\r\n Active: model.Active,\r\n Honorific: model.Honorific,\r\n FirstName: model.FirstName,\r\n MiddleName: model.MiddleName,\r\n LastName: model.LastName,\r\n NameSuffix: model.NameSuffix,\r\n Email: model.Email,\r\n Title: model.Title,\r\n Phone: model.Phone,\r\n CreatedDate: model.CreatedDate,\r\n ActiveSince: model.ActiveSince,\r\n InvitedDate: model.InvitedDate,\r\n CreatedBy: model.CreatedBy,\r\n Initials: model.Initials,\r\n IsEmployedBy: ModelUtils.serializeShallowEdge(model.IsEmployedBy(), 'IsEmployedBy'),\r\n DevelopsAs: ModelUtils.serializeShallowEdge(model.DevelopsAs(), 'DevelopsAs'),\r\n IsContactFor: ModelUtils.serializeShallowEdge(model.IsContactFor(), 'IsContactFor'),\r\n FillsSecurityRole: ModelUtils.serializeShallowEdge(model.FillsSecurityRole(), 'FillsSecurityRole'),\r\n WorksIn: ModelUtils.serializeShallowEdge(model.WorksIn(), 'WorksIn'),\r\n IsMemberOf: ModelUtils.serializeShallowEdge(model.IsMemberOf(), 'IsMemberOf'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TenantUser {\r\n let clone = new TenantUser();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEmployedBy = _.cloneDeep(this._IsEmployedBy);\r\n clone._DevelopsAs = _.cloneDeep(this._DevelopsAs);\r\n clone._IsContactFor = _.cloneDeep(this._IsContactFor);\r\n clone._FillsSecurityRole = _.cloneDeep(this._FillsSecurityRole);\r\n clone._WorksIn = _.cloneDeep(this._WorksIn);\r\n clone._IsMemberOf = _.cloneDeep(this._IsMemberOf);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IWorkflow {\r\n Sequence?: string[],\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Abbr: string,\r\n Name: string,\r\n Description: string,\r\n WorkflowType?: string,\r\n readonly CreatedDate: Date,\r\n readonly CreatedBy: string,\r\n CanStartStatus?: string[],\r\n OnStartWorkflowSetStatus?: string,\r\n OnStopWorkflowSetStatus?: string,\r\n OnStopWorkflow?: string,\r\n Transactional: boolean,\r\n CopyToNewWorkflowSet: boolean,\r\n PreventResumeWhenStopped?: boolean,\r\n OnStartEventActions?: any[],\r\n OnBeforeStopEventActions?: any[],\r\n OnStopEventActions?: any[],\r\n OnBeforeCompleteEventActions?: any[],\r\n OnCompleteEventActions?: any[],\r\n OnResumeEventActions?: any[],\r\n\r\n IsTrackedFor?: object[],\r\n IsRegulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n IsConfiguredBy?: object[],\r\n IsSequencedBy?: object[],\r\n Requires?: object[]\r\n\r\n}\r\n\r\nexport class Workflow extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Workflow\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Workflow }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Sequence(): string[] {\r\n return this.data.Sequence;\r\n }\r\n set Sequence(value: string[]) {\r\n this.data.Sequence = value;\r\n }\r\n get Abbr(): string {\r\n return this.data.Abbr;\r\n }\r\n set Abbr(value: string) {\r\n this.data.Abbr = value;\r\n }\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get WorkflowType(): string {\r\n return this.data.WorkflowType;\r\n }\r\n set WorkflowType(value: string) {\r\n this.data.WorkflowType = value;\r\n }\r\n get CreatedDate(): Date {\r\n return this.data.CreatedDate ? new Date(this.data.CreatedDate) : undefined;\r\n }\r\n get CreatedBy(): string {\r\n return this.data.CreatedBy;\r\n }\r\n get CanStartStatus(): string[] {\r\n return this.data.CanStartStatus;\r\n }\r\n set CanStartStatus(value: string[]) {\r\n this.data.CanStartStatus = value;\r\n }\r\n get OnStartWorkflowSetStatus(): string {\r\n return this.data.OnStartWorkflowSetStatus;\r\n }\r\n set OnStartWorkflowSetStatus(value: string) {\r\n this.data.OnStartWorkflowSetStatus = value;\r\n }\r\n get OnStopWorkflowSetStatus(): string {\r\n return this.data.OnStopWorkflowSetStatus;\r\n }\r\n set OnStopWorkflowSetStatus(value: string) {\r\n this.data.OnStopWorkflowSetStatus = value;\r\n }\r\n get OnStopWorkflow(): string {\r\n return this.data.OnStopWorkflow;\r\n }\r\n set OnStopWorkflow(value: string) {\r\n this.data.OnStopWorkflow = value;\r\n }\r\n get Transactional(): boolean {\r\n return this.data.Transactional;\r\n }\r\n set Transactional(value: boolean) {\r\n this.data.Transactional = value;\r\n }\r\n get CopyToNewWorkflowSet(): boolean {\r\n return this.data.CopyToNewWorkflowSet;\r\n }\r\n set CopyToNewWorkflowSet(value: boolean) {\r\n this.data.CopyToNewWorkflowSet = value;\r\n }\r\n get PreventResumeWhenStopped(): boolean {\r\n return this.data.PreventResumeWhenStopped;\r\n }\r\n set PreventResumeWhenStopped(value: boolean) {\r\n this.data.PreventResumeWhenStopped = value;\r\n }\r\n get OnStartEventActions(): any[] {\r\n return this.data.OnStartEventActions;\r\n }\r\n set OnStartEventActions(value: any[]) {\r\n this.data.OnStartEventActions = value;\r\n }\r\n get OnBeforeStopEventActions(): any[] {\r\n return this.data.OnBeforeStopEventActions;\r\n }\r\n set OnBeforeStopEventActions(value: any[]) {\r\n this.data.OnBeforeStopEventActions = value;\r\n }\r\n get OnStopEventActions(): any[] {\r\n return this.data.OnStopEventActions;\r\n }\r\n set OnStopEventActions(value: any[]) {\r\n this.data.OnStopEventActions = value;\r\n }\r\n get OnBeforeCompleteEventActions(): any[] {\r\n return this.data.OnBeforeCompleteEventActions;\r\n }\r\n set OnBeforeCompleteEventActions(value: any[]) {\r\n this.data.OnBeforeCompleteEventActions = value;\r\n }\r\n get OnCompleteEventActions(): any[] {\r\n return this.data.OnCompleteEventActions;\r\n }\r\n set OnCompleteEventActions(value: any[]) {\r\n this.data.OnCompleteEventActions = value;\r\n }\r\n get OnResumeEventActions(): any[] {\r\n return this.data.OnResumeEventActions;\r\n }\r\n set OnResumeEventActions(value: any[]) {\r\n this.data.OnResumeEventActions = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsRegulatedBy, returns RuleSetRequirement RuleSetRequirementRegulatesWorkflow[]\r\n private __IsRegulatedBy: RuleSetRequirementRegulatesWorkflow[];\r\n IsRegulatedBy(_context?: BaseDataContext): RuleSetRequirementRegulatesWorkflow[] {\r\n if (this.__IsRegulatedBy)\r\n return this.__IsRegulatedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsRegulatedBy), (id) => context.get(id) as RuleSetRequirementRegulatesWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsRegulatedBy(values: RuleSetRequirementRegulatesWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsRegulatedBy = values;\r\n }\r\n get _IsRegulatedBy(): Set {\r\n if (!this._relationships.has(\"IsRegulatedBy\"))\r\n this._relationships.set(\"IsRegulatedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsRegulatedBy\");\r\n }\r\n set _IsRegulatedBy(values: Set) {\r\n this._relationships.set(\"IsRegulatedBy\", values);\r\n }\r\n\r\n // Relationship IsContainedBy, returns WorkflowSet WorkflowSetContainsWorkflow[]\r\n private __IsContainedBy: WorkflowSetContainsWorkflow[];\r\n IsContainedBy(_context?: BaseDataContext): WorkflowSetContainsWorkflow[] {\r\n if (this.__IsContainedBy)\r\n return this.__IsContainedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsContainedBy), (id) => context.get(id) as WorkflowSetContainsWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsContainedBy(values: WorkflowSetContainsWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsContainedBy = values;\r\n }\r\n get _IsContainedBy(): Set {\r\n if (!this._relationships.has(\"IsContainedBy\"))\r\n this._relationships.set(\"IsContainedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsContainedBy\");\r\n }\r\n set _IsContainedBy(values: Set) {\r\n this._relationships.set(\"IsContainedBy\", values);\r\n }\r\n\r\n // Relationship IsConfiguredBy, returns WorkflowOptions WorkflowConfiguredByWorkflowOptions[]\r\n private __IsConfiguredBy: WorkflowConfiguredByWorkflowOptions[];\r\n IsConfiguredBy(_context?: BaseDataContext): WorkflowConfiguredByWorkflowOptions[] {\r\n if (this.__IsConfiguredBy)\r\n return this.__IsConfiguredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsConfiguredBy), (id) => context.get(id) as WorkflowConfiguredByWorkflowOptions);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsConfiguredBy(values: WorkflowConfiguredByWorkflowOptions[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsConfiguredBy = values;\r\n }\r\n get _IsConfiguredBy(): Set {\r\n if (!this._relationships.has(\"IsConfiguredBy\"))\r\n this._relationships.set(\"IsConfiguredBy\", new Set());\r\n\r\n return this._relationships.get(\"IsConfiguredBy\");\r\n }\r\n set _IsConfiguredBy(values: Set) {\r\n this._relationships.set(\"IsConfiguredBy\", values);\r\n }\r\n\r\n // Relationship IsSequencedBy, returns WorkflowSequence WorkflowIsSequencedByWorkflowSequence[]\r\n private __IsSequencedBy: WorkflowIsSequencedByWorkflowSequence[];\r\n IsSequencedBy(_context?: BaseDataContext): WorkflowIsSequencedByWorkflowSequence[] {\r\n if (this.__IsSequencedBy)\r\n return this.__IsSequencedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsSequencedBy), (id) => context.get(id) as WorkflowIsSequencedByWorkflowSequence);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsSequencedBy(values: WorkflowIsSequencedByWorkflowSequence[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsSequencedBy = values;\r\n }\r\n get _IsSequencedBy(): Set {\r\n if (!this._relationships.has(\"IsSequencedBy\"))\r\n this._relationships.set(\"IsSequencedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsSequencedBy\");\r\n }\r\n set _IsSequencedBy(values: Set) {\r\n this._relationships.set(\"IsSequencedBy\", values);\r\n }\r\n\r\n // Relationship Requires, returns Phase WorkflowRequiresPhase[]\r\n private __Requires: WorkflowRequiresPhase[];\r\n Requires(_context?: BaseDataContext): WorkflowRequiresPhase[] {\r\n if (this.__Requires)\r\n return this.__Requires;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Requires), (id) => context.get(id) as WorkflowRequiresPhase);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRequires(values: WorkflowRequiresPhase[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Requires = values;\r\n }\r\n get _Requires(): Set {\r\n if (!this._relationships.has(\"Requires\"))\r\n this._relationships.set(\"Requires\", new Set());\r\n\r\n return this._relationships.get(\"Requires\");\r\n }\r\n set _Requires(values: Set) {\r\n this._relationships.set(\"Requires\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsRegulatedBy',\r\n edgeType: RuleSetRequirementRegulatesWorkflow,\r\n otherVertexPropertyName: 'Regulates',\r\n otherVertexType: RuleSetRequirement,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: WorkflowSetContainsWorkflow,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: WorkflowSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsConfiguredBy',\r\n edgeType: WorkflowConfiguredByWorkflowOptions,\r\n otherVertexPropertyName: 'Configures',\r\n otherVertexType: WorkflowOptions,\r\n },\r\n {\r\n propertyName: 'IsSequencedBy',\r\n edgeType: WorkflowIsSequencedByWorkflowSequence,\r\n otherVertexPropertyName: 'Sequences',\r\n otherVertexType: WorkflowSequence,\r\n },\r\n {\r\n propertyName: 'Requires',\r\n edgeType: WorkflowRequiresPhase,\r\n otherVertexPropertyName: 'IsRequiredFor',\r\n otherVertexType: Phase,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Workflow {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Workflow) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Sequence: model.Sequence,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Abbr: model.Abbr,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowType: model.WorkflowType,\r\n CreatedDate: model.CreatedDate,\r\n CreatedBy: model.CreatedBy,\r\n CanStartStatus: model.CanStartStatus,\r\n OnStartWorkflowSetStatus: model.OnStartWorkflowSetStatus,\r\n OnStopWorkflowSetStatus: model.OnStopWorkflowSetStatus,\r\n OnStopWorkflow: model.OnStopWorkflow,\r\n Transactional: model.Transactional,\r\n CopyToNewWorkflowSet: model.CopyToNewWorkflowSet,\r\n PreventResumeWhenStopped: model.PreventResumeWhenStopped,\r\n OnStartEventActions: model.OnStartEventActions,\r\n OnBeforeStopEventActions: model.OnBeforeStopEventActions,\r\n OnStopEventActions: model.OnStopEventActions,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnResumeEventActions: model.OnResumeEventActions,\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n IsRegulatedBy: ModelUtils.serializeShallowEdge(model.IsRegulatedBy(), 'IsRegulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n IsConfiguredBy: ModelUtils.serializeShallowEdge(model.IsConfiguredBy(), 'IsConfiguredBy'),\r\n IsSequencedBy: ModelUtils.serializeShallowEdge(model.IsSequencedBy(), 'IsSequencedBy'),\r\n Requires: ModelUtils.serializeShallowEdge(model.Requires(), 'Requires'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Workflow {\r\n let clone = new Workflow();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._IsRegulatedBy = _.cloneDeep(this._IsRegulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._IsConfiguredBy = _.cloneDeep(this._IsConfiguredBy);\r\n clone._IsSequencedBy = _.cloneDeep(this._IsSequencedBy);\r\n clone._Requires = _.cloneDeep(this._Requires);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IWorkflowSet {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n DataStoreDefinitionId: string,\r\n Transactional: boolean,\r\n AvailableStatuses: string[],\r\n DefaultTerm: string,\r\n RiskScoringEnabled: boolean,\r\n RiskScoringConfig?: any,\r\n\r\n IsDefinedFor?: object[],\r\n IsTrackedFor?: object[],\r\n IsCapturedBy?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class WorkflowSet extends ProgramRevisioned {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkflowSet\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof WorkflowSet }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Name(): string {\r\n return this.data.Name;\r\n }\r\n set Name(value: string) {\r\n this.data.Name = value;\r\n }\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get DataStoreDefinitionId(): string {\r\n return this.data.DataStoreDefinitionId;\r\n }\r\n set DataStoreDefinitionId(value: string) {\r\n this.data.DataStoreDefinitionId = value;\r\n }\r\n get Transactional(): boolean {\r\n return this.data.Transactional;\r\n }\r\n set Transactional(value: boolean) {\r\n this.data.Transactional = value;\r\n }\r\n get AvailableStatuses(): string[] {\r\n return this.data.AvailableStatuses;\r\n }\r\n set AvailableStatuses(value: string[]) {\r\n this.data.AvailableStatuses = value;\r\n }\r\n get DefaultTerm(): string {\r\n return this.data.DefaultTerm;\r\n }\r\n set DefaultTerm(value: string) {\r\n this.data.DefaultTerm = value;\r\n }\r\n get RiskScoringEnabled(): boolean {\r\n return this.data.RiskScoringEnabled;\r\n }\r\n set RiskScoringEnabled(value: boolean) {\r\n this.data.RiskScoringEnabled = value;\r\n }\r\n get RiskScoringConfig(): any {\r\n return this.data.RiskScoringConfig;\r\n }\r\n set RiskScoringConfig(value: any) {\r\n this.data.RiskScoringConfig = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsDefinedFor, returns Program ProgramDefinesWorkflowSet[]\r\n private __IsDefinedFor: ProgramDefinesWorkflowSet[];\r\n IsDefinedFor(_context?: BaseDataContext): ProgramDefinesWorkflowSet[] {\r\n if (this.__IsDefinedFor)\r\n return this.__IsDefinedFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsDefinedFor), (id) => context.get(id) as ProgramDefinesWorkflowSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsDefinedFor(values: ProgramDefinesWorkflowSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsDefinedFor = values;\r\n }\r\n get _IsDefinedFor(): Set {\r\n if (!this._relationships.has(\"IsDefinedFor\"))\r\n this._relationships.set(\"IsDefinedFor\", new Set());\r\n\r\n return this._relationships.get(\"IsDefinedFor\");\r\n }\r\n set _IsDefinedFor(values: Set) {\r\n this._relationships.set(\"IsDefinedFor\", values);\r\n }\r\n\r\n // Relationship IsCapturedBy, returns RuleSetWorkflowSetStatus RuleSetWorkflowSetStatusCapturesWorkflowSet[]\r\n private __IsCapturedBy: RuleSetWorkflowSetStatusCapturesWorkflowSet[];\r\n IsCapturedBy(_context?: BaseDataContext): RuleSetWorkflowSetStatusCapturesWorkflowSet[] {\r\n if (this.__IsCapturedBy)\r\n return this.__IsCapturedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsCapturedBy), (id) => context.get(id) as RuleSetWorkflowSetStatusCapturesWorkflowSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsCapturedBy(values: RuleSetWorkflowSetStatusCapturesWorkflowSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsCapturedBy = values;\r\n }\r\n get _IsCapturedBy(): Set {\r\n if (!this._relationships.has(\"IsCapturedBy\"))\r\n this._relationships.set(\"IsCapturedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsCapturedBy\");\r\n }\r\n set _IsCapturedBy(values: Set) {\r\n this._relationships.set(\"IsCapturedBy\", values);\r\n }\r\n\r\n // Relationship Contains, returns Workflow WorkflowSetContainsWorkflow[]\r\n private __Contains: WorkflowSetContainsWorkflow[];\r\n Contains(_context?: BaseDataContext): WorkflowSetContainsWorkflow[] {\r\n if (this.__Contains)\r\n return this.__Contains;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Contains), (id) => context.get(id) as WorkflowSetContainsWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setContains(values: WorkflowSetContainsWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Contains = values;\r\n }\r\n get _Contains(): Set {\r\n if (!this._relationships.has(\"Contains\"))\r\n this._relationships.set(\"Contains\", new Set());\r\n\r\n return this._relationships.get(\"Contains\");\r\n }\r\n set _Contains(values: Set) {\r\n this._relationships.set(\"Contains\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsDefinedFor',\r\n edgeType: ProgramDefinesWorkflowSet,\r\n otherVertexPropertyName: 'Defines',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n {\r\n propertyName: 'IsCapturedBy',\r\n edgeType: RuleSetWorkflowSetStatusCapturesWorkflowSet,\r\n otherVertexPropertyName: 'Captures',\r\n otherVertexType: RuleSetWorkflowSetStatus,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: WorkflowSetContainsWorkflow,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): WorkflowSet {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: WorkflowSet) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n DataStoreDefinitionId: model.DataStoreDefinitionId,\r\n Transactional: model.Transactional,\r\n AvailableStatuses: model.AvailableStatuses,\r\n DefaultTerm: model.DefaultTerm,\r\n RiskScoringEnabled: model.RiskScoringEnabled,\r\n RiskScoringConfig: model.RiskScoringConfig,\r\n IsDefinedFor: ModelUtils.serializeShallowEdge(model.IsDefinedFor(), 'IsDefinedFor'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n IsCapturedBy: ModelUtils.serializeShallowEdge(model.IsCapturedBy(), 'IsCapturedBy'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WorkflowSet {\r\n let clone = new WorkflowSet();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsDefinedFor = _.cloneDeep(this._IsDefinedFor);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._IsCapturedBy = _.cloneDeep(this._IsCapturedBy);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IWorkGroup {\r\n Id: string,\r\n Initials: string,\r\n DisplayName: string,\r\n BadgePath?: string,\r\n TasksAssigned: number,\r\n readonly DateCreated?: Date,\r\n Description: string,\r\n ReservationTimeLimit?: number,\r\n Prioritization?: string\r\n\r\n IsUsedBy?: object[],\r\n InitialAssigneeFor?: object[],\r\n HasMembers?: object[]\r\n\r\n}\r\n\r\nexport class WorkGroup extends Assignable {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"WorkGroup\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof WorkGroup }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Description(): string {\r\n return this.data.Description;\r\n }\r\n set Description(value: string) {\r\n this.data.Description = value;\r\n }\r\n get ReservationTimeLimit(): number {\r\n return this.data.ReservationTimeLimit;\r\n }\r\n set ReservationTimeLimit(value: number) {\r\n this.data.ReservationTimeLimit = value;\r\n }\r\n get Prioritization(): string {\r\n return this.data.Prioritization;\r\n }\r\n set Prioritization(value: string) {\r\n this.data.Prioritization = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsUsedBy, returns Program ProgramUsesWorkGroup[]\r\n private __IsUsedBy: ProgramUsesWorkGroup[];\r\n IsUsedBy(_context?: BaseDataContext): ProgramUsesWorkGroup[] {\r\n if (this.__IsUsedBy)\r\n return this.__IsUsedBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsUsedBy), (id) => context.get(id) as ProgramUsesWorkGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsUsedBy(values: ProgramUsesWorkGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsUsedBy = values;\r\n }\r\n get _IsUsedBy(): Set {\r\n if (!this._relationships.has(\"IsUsedBy\"))\r\n this._relationships.set(\"IsUsedBy\", new Set());\r\n\r\n return this._relationships.get(\"IsUsedBy\");\r\n }\r\n set _IsUsedBy(values: Set) {\r\n this._relationships.set(\"IsUsedBy\", values);\r\n }\r\n\r\n // Relationship HasMembers, returns TenantUser TenantUserMemberOfWorkGroup[]\r\n private __HasMembers: TenantUserMemberOfWorkGroup[];\r\n HasMembers(_context?: BaseDataContext): TenantUserMemberOfWorkGroup[] {\r\n if (this.__HasMembers)\r\n return this.__HasMembers;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._HasMembers), (id) => context.get(id) as TenantUserMemberOfWorkGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setHasMembers(values: TenantUserMemberOfWorkGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__HasMembers = values;\r\n }\r\n get _HasMembers(): Set {\r\n if (!this._relationships.has(\"HasMembers\"))\r\n this._relationships.set(\"HasMembers\", new Set());\r\n\r\n return this._relationships.get(\"HasMembers\");\r\n }\r\n set _HasMembers(values: Set) {\r\n this._relationships.set(\"HasMembers\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsUsedBy',\r\n edgeType: ProgramUsesWorkGroup,\r\n otherVertexPropertyName: 'Uses',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'InitialAssigneeFor',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitiallyAssignedTo',\r\n otherVertexType: Task,\r\n },\r\n {\r\n propertyName: 'HasMembers',\r\n edgeType: TenantUserMemberOfWorkGroup,\r\n otherVertexPropertyName: 'IsMemberOf',\r\n otherVertexType: TenantUser,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): WorkGroup {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: WorkGroup) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n Initials: model.Initials,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n TasksAssigned: model.TasksAssigned,\r\n DateCreated: model.DateCreated,\r\n Description: model.Description,\r\n ReservationTimeLimit: model.ReservationTimeLimit,\r\n Prioritization: model.Prioritization,\r\n IsUsedBy: ModelUtils.serializeShallowEdge(model.IsUsedBy(), 'IsUsedBy'),\r\n InitialAssigneeFor: ModelUtils.serializeShallowEdge(model.InitialAssigneeFor(), 'InitialAssigneeFor'),\r\n HasMembers: ModelUtils.serializeShallowEdge(model.HasMembers(), 'HasMembers'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): WorkGroup {\r\n let clone = new WorkGroup();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsUsedBy = _.cloneDeep(this._IsUsedBy);\r\n clone._InitialAssigneeFor = _.cloneDeep(this._InitialAssigneeFor);\r\n clone._HasMembers = _.cloneDeep(this._HasMembers);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointDate {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinDate?: ContractDate,\r\n MaxDate?: ContractDate\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointDate extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointDate\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointDate }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinDate(): ContractDate {\r\n this.data.MinDate = ModelUtils.deserializeContractDate(this.data.MinDate);\r\n return this.data.MinDate;\r\n }\r\n set MinDate(value: ContractDate) {\r\n this.data.MinDate = value;\r\n }\r\n get MaxDate(): ContractDate {\r\n this.data.MaxDate = ModelUtils.deserializeContractDate(this.data.MaxDate);\r\n return this.data.MaxDate;\r\n }\r\n set MaxDate(value: ContractDate) {\r\n this.data.MaxDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointDate {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointDate) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinDate: ModelUtils.serializeContractDate(model.data.MinDate),\r\n MaxDate: ModelUtils.serializeContractDate(model.data.MaxDate),\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointDate {\r\n let clone = new DataPointDate();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointDecimal {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinValue?: number,\r\n MaxValue?: number,\r\n Places?: number\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointDecimal extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointDecimal\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointDecimal }[] = [\r\n {className: 'DataPointMoney', type: DataPointMoney},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinValue(): number {\r\n return this.data.MinValue;\r\n }\r\n set MinValue(value: number) {\r\n this.data.MinValue = value;\r\n }\r\n get MaxValue(): number {\r\n return this.data.MaxValue;\r\n }\r\n set MaxValue(value: number) {\r\n this.data.MaxValue = value;\r\n }\r\n get Places(): number {\r\n return this.data.Places;\r\n }\r\n set Places(value: number) {\r\n this.data.Places = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointDecimal {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointDecimal) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n Places: model.Places,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointDecimal {\r\n let clone = new DataPointDecimal();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointInteger {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinValue?: number,\r\n MaxValue?: number,\r\n ValuesRequiringExplanation?: number[]\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointInteger extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointInteger\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointInteger }[] = [\r\n {className: 'DataPointYear', type: DataPointYear},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinValue(): number {\r\n return this.data.MinValue;\r\n }\r\n set MinValue(value: number) {\r\n this.data.MinValue = value;\r\n }\r\n get MaxValue(): number {\r\n return this.data.MaxValue;\r\n }\r\n set MaxValue(value: number) {\r\n this.data.MaxValue = value;\r\n }\r\n get ValuesRequiringExplanation(): number[] {\r\n return this.data.ValuesRequiringExplanation;\r\n }\r\n set ValuesRequiringExplanation(value: number[]) {\r\n this.data.ValuesRequiringExplanation = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointInteger {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointInteger) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n ValuesRequiringExplanation: model.ValuesRequiringExplanation,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointInteger {\r\n let clone = new DataPointInteger();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointListOfStrings {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n AllowSpaces?: boolean\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointListOfStrings extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointListOfStrings\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointListOfStrings }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AllowSpaces(): boolean {\r\n return this.data.AllowSpaces;\r\n }\r\n set AllowSpaces(value: boolean) {\r\n this.data.AllowSpaces = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointListOfStrings {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointListOfStrings) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n AllowSpaces: model.AllowSpaces,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointListOfStrings {\r\n let clone = new DataPointListOfStrings();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointString {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointString extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointString\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointString }[] = [\r\n {className: 'DataPointEmail', type: DataPointEmail},\r\n {className: 'DataPointPhone', type: DataPointPhone},\r\n {className: 'DataPointYesNo', type: DataPointYesNo},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinLength(): number {\r\n return this.data.MinLength;\r\n }\r\n set MinLength(value: number) {\r\n this.data.MinLength = value;\r\n }\r\n get MaxLength(): number {\r\n return this.data.MaxLength;\r\n }\r\n set MaxLength(value: number) {\r\n this.data.MaxLength = value;\r\n }\r\n get MultiLineEntry(): boolean {\r\n return this.data.MultiLineEntry;\r\n }\r\n set MultiLineEntry(value: boolean) {\r\n this.data.MultiLineEntry = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointString {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointString) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointString {\r\n let clone = new DataPointString();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointTimestamp {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinDate?: Date,\r\n MaxDate?: Date\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointTimestamp extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointTimestamp\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointTimestamp }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get MinDate(): Date {\r\n return this.data.MinDate ? new Date(this.data.MinDate) : undefined;\r\n }\r\n set MinDate(value: Date) {\r\n this.data.MinDate = value;\r\n }\r\n get MaxDate(): Date {\r\n return this.data.MaxDate ? new Date(this.data.MaxDate) : undefined;\r\n }\r\n set MaxDate(value: Date) {\r\n this.data.MaxDate = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointTimestamp {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointTimestamp) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinDate: model.MinDate,\r\n MaxDate: model.MaxDate,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointTimestamp {\r\n let clone = new DataPointTimestamp();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointUrl {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[]\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointUrl extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointUrl\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointUrl }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointUrl {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointUrl) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointUrl {\r\n let clone = new DataPointUrl();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointZipcode {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[]\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointZipcode extends DataPoint {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointZipcode\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointZipcode }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointZipcode {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointZipcode) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointZipcode {\r\n let clone = new DataPointZipcode();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDateField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class DateField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DateField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DateField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DateField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DateField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DateField {\r\n let clone = new DateField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDecimalField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n DisplayAsPercentage?: boolean,\r\n DisplayNegativesInRed?: boolean,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class DecimalField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DecimalField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DecimalField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DisplayAsPercentage(): boolean {\r\n return this.data.DisplayAsPercentage;\r\n }\r\n set DisplayAsPercentage(value: boolean) {\r\n this.data.DisplayAsPercentage = value;\r\n }\r\n get DisplayNegativesInRed(): boolean {\r\n return this.data.DisplayNegativesInRed;\r\n }\r\n set DisplayNegativesInRed(value: boolean) {\r\n this.data.DisplayNegativesInRed = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DecimalField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DecimalField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n DisplayAsPercentage: model.DisplayAsPercentage,\r\n DisplayNegativesInRed: model.DisplayNegativesInRed,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DecimalField {\r\n let clone = new DecimalField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDeveloper {\r\n Id: string,\r\n DisplayName?: string,\r\n BadgePath?: string,\r\n LastLoginDate?: Date,\r\n readonly Active: boolean,\r\n readonly CreatedDate?: Date,\r\n Description?: string,\r\n AreaKey: string,\r\n readonly IsActive: boolean,\r\n readonly AuthProviderClientId?: string,\r\n readonly ApiManagementSubscriptionPrimaryKey?: string,\r\n readonly ApiManagementSubscriptionSecondaryKey?: string,\r\n ContactIsSameAsDeveloper: boolean,\r\n\r\n IsRepresentedBy?: object[],\r\n FillsSecurityRole?: object[],\r\n WorksIn?: object[],\r\n IsPersonaOf?: object[]\r\n\r\n}\r\n\r\nexport class Developer extends App {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"Developer\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof Developer }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ContactIsSameAsDeveloper(): boolean {\r\n return this.data.ContactIsSameAsDeveloper;\r\n }\r\n set ContactIsSameAsDeveloper(value: boolean) {\r\n this.data.ContactIsSameAsDeveloper = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship IsPersonaOf, returns TenantUser TenantUserDevelopsAsDeveloper[]\r\n private __IsPersonaOf: TenantUserDevelopsAsDeveloper[];\r\n IsPersonaOf(_context?: BaseDataContext): TenantUserDevelopsAsDeveloper[] {\r\n if (this.__IsPersonaOf)\r\n return this.__IsPersonaOf;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._IsPersonaOf), (id) => context.get(id) as TenantUserDevelopsAsDeveloper);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setIsPersonaOf(values: TenantUserDevelopsAsDeveloper[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__IsPersonaOf = values;\r\n }\r\n get _IsPersonaOf(): Set {\r\n if (!this._relationships.has(\"IsPersonaOf\"))\r\n this._relationships.set(\"IsPersonaOf\", new Set());\r\n\r\n return this._relationships.get(\"IsPersonaOf\");\r\n }\r\n set _IsPersonaOf(values: Set) {\r\n this._relationships.set(\"IsPersonaOf\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsRepresentedBy',\r\n edgeType: AppRepresentedByTenantUser,\r\n otherVertexPropertyName: 'IsContactFor',\r\n otherVertexType: TenantUser,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'FillsSecurityRole',\r\n edgeType: SMIdentityFillsSecurityRole,\r\n otherVertexPropertyName: 'IsFilledBy',\r\n otherVertexType: SecurityRole,\r\n },\r\n {\r\n propertyName: 'WorksIn',\r\n edgeType: SMIdentityWorksInArea,\r\n otherVertexPropertyName: 'IsWorkedBy',\r\n otherVertexType: Area,\r\n },\r\n {\r\n propertyName: 'IsPersonaOf',\r\n edgeType: TenantUserDevelopsAsDeveloper,\r\n otherVertexPropertyName: 'DevelopsAs',\r\n otherVertexType: TenantUser,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): Developer {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: Developer) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayName: model.DisplayName,\r\n BadgePath: model.BadgePath,\r\n LastLoginDate: model.LastLoginDate,\r\n Active: model.Active,\r\n CreatedDate: model.CreatedDate,\r\n Description: model.Description,\r\n AreaKey: model.AreaKey,\r\n IsActive: model.IsActive,\r\n AuthProviderClientId: model.AuthProviderClientId,\r\n ApiManagementSubscriptionPrimaryKey: model.ApiManagementSubscriptionPrimaryKey,\r\n ApiManagementSubscriptionSecondaryKey: model.ApiManagementSubscriptionSecondaryKey,\r\n ContactIsSameAsDeveloper: model.ContactIsSameAsDeveloper,\r\n IsRepresentedBy: ModelUtils.serializeShallowEdge(model.IsRepresentedBy(), 'IsRepresentedBy'),\r\n FillsSecurityRole: ModelUtils.serializeShallowEdge(model.FillsSecurityRole(), 'FillsSecurityRole'),\r\n WorksIn: ModelUtils.serializeShallowEdge(model.WorksIn(), 'WorksIn'),\r\n IsPersonaOf: ModelUtils.serializeShallowEdge(model.IsPersonaOf(), 'IsPersonaOf'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): Developer {\r\n let clone = new Developer();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsRepresentedBy = _.cloneDeep(this._IsRepresentedBy);\r\n clone._FillsSecurityRole = _.cloneDeep(this._FillsSecurityRole);\r\n clone._WorksIn = _.cloneDeep(this._WorksIn);\r\n clone._IsPersonaOf = _.cloneDeep(this._IsPersonaOf);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IIntegerField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class IntegerField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"IntegerField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof IntegerField }[] = [\r\n {className: 'YearField', type: YearField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): IntegerField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: IntegerField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): IntegerField {\r\n let clone = new IntegerField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IListOfStringsField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class ListOfStringsField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ListOfStringsField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ListOfStringsField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ListOfStringsField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ListOfStringsField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ListOfStringsField {\r\n let clone = new ListOfStringsField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IMoneyField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n DisplayAsWholeNumber?: boolean,\r\n DisplayNegativesInRed?: boolean,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class MoneyField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"MoneyField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof MoneyField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DisplayAsWholeNumber(): boolean {\r\n return this.data.DisplayAsWholeNumber;\r\n }\r\n set DisplayAsWholeNumber(value: boolean) {\r\n this.data.DisplayAsWholeNumber = value;\r\n }\r\n get DisplayNegativesInRed(): boolean {\r\n return this.data.DisplayNegativesInRed;\r\n }\r\n set DisplayNegativesInRed(value: boolean) {\r\n this.data.DisplayNegativesInRed = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): MoneyField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: MoneyField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n DisplayAsWholeNumber: model.DisplayAsWholeNumber,\r\n DisplayNegativesInRed: model.DisplayNegativesInRed,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): MoneyField {\r\n let clone = new MoneyField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleDateTime {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[],\r\n TaskIds?: string[],\r\n SetDateTo?: string\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class RuleDateTime extends Rule {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleDateTime\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleDateTime }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get TaskIds(): string[] {\r\n return this.data.TaskIds;\r\n }\r\n set TaskIds(value: string[]) {\r\n this.data.TaskIds = value;\r\n }\r\n get SetDateTo(): string {\r\n return this.data.SetDateTo;\r\n }\r\n set SetDateTo(value: string) {\r\n this.data.SetDateTo = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleDateTime {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleDateTime) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n TaskIds: model.TaskIds,\r\n SetDateTo: model.SetDateTo,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleDateTime {\r\n let clone = new RuleDateTime();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleProductSelection {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[],\r\n ProductId: string\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class RuleProductSelection extends Rule {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleProductSelection\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleProductSelection }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ProductId(): string {\r\n return this.data.ProductId;\r\n }\r\n set ProductId(value: string) {\r\n this.data.ProductId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleProductSelection {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleProductSelection) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n ProductId: model.ProductId,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleProductSelection {\r\n let clone = new RuleProductSelection();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleRiskAssessment {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[]\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class RuleRiskAssessment extends Rule {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleRiskAssessment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleRiskAssessment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleRiskAssessment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleRiskAssessment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleRiskAssessment {\r\n let clone = new RuleRiskAssessment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleRoleAssignment {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[],\r\n AccountRoleDefinitionId: string\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class RuleRoleAssignment extends Rule {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleRoleAssignment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleRoleAssignment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AccountRoleDefinitionId(): string {\r\n return this.data.AccountRoleDefinitionId;\r\n }\r\n set AccountRoleDefinitionId(value: string) {\r\n this.data.AccountRoleDefinitionId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleRoleAssignment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleRoleAssignment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n AccountRoleDefinitionId: model.AccountRoleDefinitionId,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleRoleAssignment {\r\n let clone = new RuleRoleAssignment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetAssignment {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetAssignment extends RuleSet {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetAssignment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetAssignment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetAssignment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetAssignment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetAssignment {\r\n let clone = new RuleSetAssignment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetDateTime {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n WorkflowSetId: string,\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetDateTime extends RuleSet {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetDateTime\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetDateTime }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n set WorkflowSetId(value: string) {\r\n this.data.WorkflowSetId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetDateTime {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetDateTime) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowSetId: model.WorkflowSetId,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetDateTime {\r\n let clone = new RuleSetDateTime();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetProduct {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetProduct extends RuleSet {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetProduct\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetProduct }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetProduct {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetProduct) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetProduct {\r\n let clone = new RuleSetProduct();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetRequirement {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n WorkflowId?: string,\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[],\r\n Regulates?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetRequirement extends RuleSet {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetRequirement\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetRequirement }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get WorkflowId(): string {\r\n return this.data.WorkflowId;\r\n }\r\n set WorkflowId(value: string) {\r\n this.data.WorkflowId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Regulates, returns Workflow RuleSetRequirementRegulatesWorkflow[]\r\n private __Regulates: RuleSetRequirementRegulatesWorkflow[];\r\n Regulates(_context?: BaseDataContext): RuleSetRequirementRegulatesWorkflow[] {\r\n if (this.__Regulates)\r\n return this.__Regulates;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Regulates), (id) => context.get(id) as RuleSetRequirementRegulatesWorkflow);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setRegulates(values: RuleSetRequirementRegulatesWorkflow[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Regulates = values;\r\n }\r\n get _Regulates(): Set {\r\n if (!this._relationships.has(\"Regulates\"))\r\n this._relationships.set(\"Regulates\", new Set());\r\n\r\n return this._relationships.get(\"Regulates\");\r\n }\r\n set _Regulates(values: Set) {\r\n this._relationships.set(\"Regulates\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n {\r\n propertyName: 'Regulates',\r\n edgeType: RuleSetRequirementRegulatesWorkflow,\r\n otherVertexPropertyName: 'IsRegulatedBy',\r\n otherVertexType: Workflow,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetRequirement {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetRequirement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowId: model.WorkflowId,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n Regulates: ModelUtils.serializeShallowEdge(model.Regulates(), 'Regulates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetRequirement {\r\n let clone = new RuleSetRequirement();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n clone._Regulates = _.cloneDeep(this._Regulates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetRiskAssessment {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n WorkflowSetId: string,\r\n RiskActions?: any[],\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetRiskAssessment extends RuleSet {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetRiskAssessment\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetRiskAssessment }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n set WorkflowSetId(value: string) {\r\n this.data.WorkflowSetId = value;\r\n }\r\n get RiskActions(): any[] {\r\n return this.data.RiskActions;\r\n }\r\n set RiskActions(value: any[]) {\r\n this.data.RiskActions = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetRiskAssessment {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetRiskAssessment) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowSetId: model.WorkflowSetId,\r\n RiskActions: model.RiskActions,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetRiskAssessment {\r\n let clone = new RuleSetRiskAssessment();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleSetWorkflowSetStatus {\r\n Id: string,\r\n readonly LockedByChange?: string,\r\n Name: string,\r\n Description: string,\r\n WorkflowSetId?: string,\r\n\r\n IsEvaluatedBy?: object[],\r\n IsTrackedFor?: object[],\r\n Contains?: object[],\r\n Captures?: object[]\r\n\r\n}\r\n\r\nexport class RuleSetWorkflowSetStatus extends RuleSet {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleSetWorkflowSetStatus\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleSetWorkflowSetStatus }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get WorkflowSetId(): string {\r\n return this.data.WorkflowSetId;\r\n }\r\n set WorkflowSetId(value: string) {\r\n this.data.WorkflowSetId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Captures, returns WorkflowSet RuleSetWorkflowSetStatusCapturesWorkflowSet[]\r\n private __Captures: RuleSetWorkflowSetStatusCapturesWorkflowSet[];\r\n Captures(_context?: BaseDataContext): RuleSetWorkflowSetStatusCapturesWorkflowSet[] {\r\n if (this.__Captures)\r\n return this.__Captures;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Captures), (id) => context.get(id) as RuleSetWorkflowSetStatusCapturesWorkflowSet);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setCaptures(values: RuleSetWorkflowSetStatusCapturesWorkflowSet[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Captures = values;\r\n }\r\n get _Captures(): Set {\r\n if (!this._relationships.has(\"Captures\"))\r\n this._relationships.set(\"Captures\", new Set());\r\n\r\n return this._relationships.get(\"Captures\");\r\n }\r\n set _Captures(values: Set) {\r\n this._relationships.set(\"Captures\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedBy',\r\n edgeType: ProgramEvaluatesRuleSet,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: Program,\r\n },\r\n {\r\n propertyName: 'IsTrackedFor',\r\n edgeType: ProgramRevisionTracksProgramRevisioned,\r\n otherVertexPropertyName: 'Tracks',\r\n otherVertexType: ProgramRevision,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Contains',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'IsContainedBy',\r\n otherVertexType: Rule,\r\n },\r\n {\r\n propertyName: 'Captures',\r\n edgeType: RuleSetWorkflowSetStatusCapturesWorkflowSet,\r\n otherVertexPropertyName: 'IsCapturedBy',\r\n otherVertexType: WorkflowSet,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleSetWorkflowSetStatus {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleSetWorkflowSetStatus) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n LockedByChange: model.LockedByChange,\r\n Name: model.Name,\r\n Description: model.Description,\r\n WorkflowSetId: model.WorkflowSetId,\r\n IsEvaluatedBy: ModelUtils.serializeShallowEdge(model.IsEvaluatedBy(), 'IsEvaluatedBy'),\r\n IsTrackedFor: ModelUtils.serializeShallowEdge(model.IsTrackedFor(), 'IsTrackedFor'),\r\n Contains: ModelUtils.serializeShallowEdge(model.Contains(), 'Contains'),\r\n Captures: ModelUtils.serializeShallowEdge(model.Captures(), 'Captures'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleSetWorkflowSetStatus {\r\n let clone = new RuleSetWorkflowSetStatus();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedBy = _.cloneDeep(this._IsEvaluatedBy);\r\n clone._IsTrackedFor = _.cloneDeep(this._IsTrackedFor);\r\n clone._Contains = _.cloneDeep(this._Contains);\r\n clone._Captures = _.cloneDeep(this._Captures);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleTaskObligation {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[],\r\n TaskIds?: string[],\r\n\r\n IsContainedBy?: object[],\r\n SetsRequirementFor?: object[]\r\n\r\n}\r\n\r\nexport class RuleTaskObligation extends Rule {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleTaskObligation\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleTaskObligation }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get TaskIds(): string[] {\r\n return this.data.TaskIds;\r\n }\r\n set TaskIds(value: string[]) {\r\n this.data.TaskIds = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship SetsRequirementFor, returns Task RuleTaskObligationSetsRequirementForTask[]\r\n private __SetsRequirementFor: RuleTaskObligationSetsRequirementForTask[];\r\n SetsRequirementFor(_context?: BaseDataContext): RuleTaskObligationSetsRequirementForTask[] {\r\n if (this.__SetsRequirementFor)\r\n return this.__SetsRequirementFor;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._SetsRequirementFor), (id) => context.get(id) as RuleTaskObligationSetsRequirementForTask);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setSetsRequirementFor(values: RuleTaskObligationSetsRequirementForTask[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__SetsRequirementFor = values;\r\n }\r\n get _SetsRequirementFor(): Set {\r\n if (!this._relationships.has(\"SetsRequirementFor\"))\r\n this._relationships.set(\"SetsRequirementFor\", new Set());\r\n\r\n return this._relationships.get(\"SetsRequirementFor\");\r\n }\r\n set _SetsRequirementFor(values: Set) {\r\n this._relationships.set(\"SetsRequirementFor\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'SetsRequirementFor',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'GetsRequirementFrom',\r\n otherVertexType: Task,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleTaskObligation {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleTaskObligation) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n TaskIds: model.TaskIds,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n SetsRequirementFor: ModelUtils.serializeShallowEdge(model.SetsRequirementFor(), 'SetsRequirementFor'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleTaskObligation {\r\n let clone = new RuleTaskObligation();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._SetsRequirementFor = _.cloneDeep(this._SetsRequirementFor);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IRuleWorkflowSetStatus {\r\n Id: string,\r\n DataType: string,\r\n Name: string,\r\n Description: string,\r\n Enabled?: boolean,\r\n DecisionFunction?: string,\r\n DecisionMatrixJson?: string,\r\n InputSources?: any[],\r\n Otherwise?: string,\r\n DecisionConditionals: any[]\r\n\r\n IsContainedBy?: object[]\r\n\r\n}\r\n\r\nexport class RuleWorkflowSetStatus extends Rule {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"RuleWorkflowSetStatus\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof RuleWorkflowSetStatus }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get Otherwise(): string {\r\n return this.data.Otherwise;\r\n }\r\n set Otherwise(value: string) {\r\n this.data.Otherwise = value;\r\n }\r\n get DecisionConditionals(): any[] {\r\n return this.data.DecisionConditionals;\r\n }\r\n set DecisionConditionals(value: any[]) {\r\n this.data.DecisionConditionals = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: RuleSetContainsRule,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: RuleSet,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): RuleWorkflowSetStatus {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: RuleWorkflowSetStatus) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DataType: model.DataType,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Enabled: model.Enabled,\r\n DecisionFunction: model.DecisionFunction,\r\n DecisionMatrixJson: model.DecisionMatrixJson,\r\n InputSources: model.InputSources,\r\n Otherwise: model.Otherwise,\r\n DecisionConditionals: model.DecisionConditionals,\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): RuleWorkflowSetStatus {\r\n let clone = new RuleWorkflowSetStatus();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IStaticText {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n StaticTextStyle: string,\r\n Text?: string\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[]\r\n\r\n}\r\n\r\nexport class StaticText extends StaticElement {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"StaticText\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof StaticText }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get StaticTextStyle(): string {\r\n return this.data.StaticTextStyle;\r\n }\r\n set StaticTextStyle(value: string) {\r\n this.data.StaticTextStyle = value;\r\n }\r\n get Text(): string {\r\n return this.data.Text;\r\n }\r\n set Text(value: string) {\r\n this.data.Text = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): StaticText {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: StaticText) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n StaticTextStyle: model.StaticTextStyle,\r\n Text: model.Text,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): StaticText {\r\n let clone = new StaticText();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IStringField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class StringField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"StringField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof StringField }[] = [\r\n {className: 'EmailField', type: EmailField},\r\n {className: 'PhoneField', type: PhoneField},\r\n {className: 'YesNoField', type: YesNoField},\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): StringField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: StringField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): StringField {\r\n let clone = new StringField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskApplication {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n ApplicationDefinitionKey: string,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskApplication extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskApplication\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskApplication }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ApplicationDefinitionKey(): string {\r\n return this.data.ApplicationDefinitionKey;\r\n }\r\n set ApplicationDefinitionKey(value: string) {\r\n this.data.ApplicationDefinitionKey = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskApplication {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskApplication) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n ApplicationDefinitionKey: model.ApplicationDefinitionKey,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskApplication {\r\n let clone = new TaskApplication();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskApproval {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n AllowApproveWithConditions: boolean,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskApproval extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskApproval\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskApproval }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AllowApproveWithConditions(): boolean {\r\n return this.data.AllowApproveWithConditions;\r\n }\r\n set AllowApproveWithConditions(value: boolean) {\r\n this.data.AllowApproveWithConditions = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskApproval {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskApproval) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n AllowApproveWithConditions: model.AllowApproveWithConditions,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskApproval {\r\n let clone = new TaskApproval();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskClearance {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n InsuredTag: string,\r\n ProducerTag: string,\r\n AgentTag: string,\r\n AgentAccountRoleDefinitionId: string,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskClearance extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskClearance\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskClearance }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get InsuredTag(): string {\r\n return this.data.InsuredTag;\r\n }\r\n set InsuredTag(value: string) {\r\n this.data.InsuredTag = value;\r\n }\r\n get ProducerTag(): string {\r\n return this.data.ProducerTag;\r\n }\r\n set ProducerTag(value: string) {\r\n this.data.ProducerTag = value;\r\n }\r\n get AgentTag(): string {\r\n return this.data.AgentTag;\r\n }\r\n set AgentTag(value: string) {\r\n this.data.AgentTag = value;\r\n }\r\n get AgentAccountRoleDefinitionId(): string {\r\n return this.data.AgentAccountRoleDefinitionId;\r\n }\r\n set AgentAccountRoleDefinitionId(value: string) {\r\n this.data.AgentAccountRoleDefinitionId = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskClearance {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskClearance) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n InsuredTag: model.InsuredTag,\r\n ProducerTag: model.ProducerTag,\r\n AgentTag: model.AgentTag,\r\n AgentAccountRoleDefinitionId: model.AgentAccountRoleDefinitionId,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskClearance {\r\n let clone = new TaskClearance();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskCorrespondence {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n AllowRecipientEditing: boolean,\r\n CorrespondenceType: string,\r\n Preferences?: string[],\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Attaches?: object[],\r\n DeliversAccount?: object[],\r\n DeliversEmail?: object[],\r\n MailTo?: object[],\r\n Messages?: object[],\r\n ParameterSubstitutes?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskCorrespondence extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskCorrespondence\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskCorrespondence }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AllowRecipientEditing(): boolean {\r\n return this.data.AllowRecipientEditing;\r\n }\r\n set AllowRecipientEditing(value: boolean) {\r\n this.data.AllowRecipientEditing = value;\r\n }\r\n get CorrespondenceType(): string {\r\n return this.data.CorrespondenceType;\r\n }\r\n set CorrespondenceType(value: string) {\r\n this.data.CorrespondenceType = value;\r\n }\r\n get Preferences(): string[] {\r\n return this.data.Preferences;\r\n }\r\n set Preferences(value: string[]) {\r\n this.data.Preferences = value;\r\n }\r\n\r\n // Relationships\r\n\r\n // Relationship Attaches, returns DocumentCategory TaskCorrespondenceAttachesDocumentCategory[]\r\n private __Attaches: TaskCorrespondenceAttachesDocumentCategory[];\r\n Attaches(_context?: BaseDataContext): TaskCorrespondenceAttachesDocumentCategory[] {\r\n if (this.__Attaches)\r\n return this.__Attaches;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Attaches), (id) => context.get(id) as TaskCorrespondenceAttachesDocumentCategory);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setAttaches(values: TaskCorrespondenceAttachesDocumentCategory[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Attaches = values;\r\n }\r\n get _Attaches(): Set {\r\n if (!this._relationships.has(\"Attaches\"))\r\n this._relationships.set(\"Attaches\", new Set());\r\n\r\n return this._relationships.get(\"Attaches\");\r\n }\r\n set _Attaches(values: Set) {\r\n this._relationships.set(\"Attaches\", values);\r\n }\r\n\r\n // Relationship DeliversAccount, returns AccountRole TaskCorrespondenceDeliversAccountRole[]\r\n private __DeliversAccount: TaskCorrespondenceDeliversAccountRole[];\r\n DeliversAccount(_context?: BaseDataContext): TaskCorrespondenceDeliversAccountRole[] {\r\n if (this.__DeliversAccount)\r\n return this.__DeliversAccount;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliversAccount), (id) => context.get(id) as TaskCorrespondenceDeliversAccountRole);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliversAccount(values: TaskCorrespondenceDeliversAccountRole[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliversAccount = values;\r\n }\r\n get _DeliversAccount(): Set {\r\n if (!this._relationships.has(\"DeliversAccount\"))\r\n this._relationships.set(\"DeliversAccount\", new Set());\r\n\r\n return this._relationships.get(\"DeliversAccount\");\r\n }\r\n set _DeliversAccount(values: Set) {\r\n this._relationships.set(\"DeliversAccount\", values);\r\n }\r\n\r\n // Relationship DeliversEmail, returns DataPointEmail TaskCorrespondenceDeliversDataPointEmail[]\r\n private __DeliversEmail: TaskCorrespondenceDeliversDataPointEmail[];\r\n DeliversEmail(_context?: BaseDataContext): TaskCorrespondenceDeliversDataPointEmail[] {\r\n if (this.__DeliversEmail)\r\n return this.__DeliversEmail;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliversEmail), (id) => context.get(id) as TaskCorrespondenceDeliversDataPointEmail);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliversEmail(values: TaskCorrespondenceDeliversDataPointEmail[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliversEmail = values;\r\n }\r\n get _DeliversEmail(): Set {\r\n if (!this._relationships.has(\"DeliversEmail\"))\r\n this._relationships.set(\"DeliversEmail\", new Set());\r\n\r\n return this._relationships.get(\"DeliversEmail\");\r\n }\r\n set _DeliversEmail(values: Set) {\r\n this._relationships.set(\"DeliversEmail\", values);\r\n }\r\n\r\n // Relationship MailTo, returns DataGroup TaskCorrespondenceMailToDataGroup[]\r\n private __MailTo: TaskCorrespondenceMailToDataGroup[];\r\n MailTo(_context?: BaseDataContext): TaskCorrespondenceMailToDataGroup[] {\r\n if (this.__MailTo)\r\n return this.__MailTo;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._MailTo), (id) => context.get(id) as TaskCorrespondenceMailToDataGroup);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMailTo(values: TaskCorrespondenceMailToDataGroup[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__MailTo = values;\r\n }\r\n get _MailTo(): Set {\r\n if (!this._relationships.has(\"MailTo\"))\r\n this._relationships.set(\"MailTo\", new Set());\r\n\r\n return this._relationships.get(\"MailTo\");\r\n }\r\n set _MailTo(values: Set) {\r\n this._relationships.set(\"MailTo\", values);\r\n }\r\n\r\n // Relationship Messages, returns EmailTemplate TaskCorrespondenceMessagesEmailTemplate[]\r\n private __Messages: TaskCorrespondenceMessagesEmailTemplate[];\r\n Messages(_context?: BaseDataContext): TaskCorrespondenceMessagesEmailTemplate[] {\r\n if (this.__Messages)\r\n return this.__Messages;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._Messages), (id) => context.get(id) as TaskCorrespondenceMessagesEmailTemplate);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setMessages(values: TaskCorrespondenceMessagesEmailTemplate[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__Messages = values;\r\n }\r\n get _Messages(): Set {\r\n if (!this._relationships.has(\"Messages\"))\r\n this._relationships.set(\"Messages\", new Set());\r\n\r\n return this._relationships.get(\"Messages\");\r\n }\r\n set _Messages(values: Set) {\r\n this._relationships.set(\"Messages\", values);\r\n }\r\n\r\n // Relationship ParameterSubstitutes, returns DataPoint TaskCorrespondenceParameterSubstitutesDataPoint[]\r\n private __ParameterSubstitutes: TaskCorrespondenceParameterSubstitutesDataPoint[];\r\n ParameterSubstitutes(_context?: BaseDataContext): TaskCorrespondenceParameterSubstitutesDataPoint[] {\r\n if (this.__ParameterSubstitutes)\r\n return this.__ParameterSubstitutes;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._ParameterSubstitutes), (id) => context.get(id) as TaskCorrespondenceParameterSubstitutesDataPoint);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setParameterSubstitutes(values: TaskCorrespondenceParameterSubstitutesDataPoint[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__ParameterSubstitutes = values;\r\n }\r\n get _ParameterSubstitutes(): Set {\r\n if (!this._relationships.has(\"ParameterSubstitutes\"))\r\n this._relationships.set(\"ParameterSubstitutes\", new Set());\r\n\r\n return this._relationships.get(\"ParameterSubstitutes\");\r\n }\r\n set _ParameterSubstitutes(values: Set) {\r\n this._relationships.set(\"ParameterSubstitutes\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Attaches',\r\n edgeType: TaskCorrespondenceAttachesDocumentCategory,\r\n otherVertexPropertyName: 'AttachedBy',\r\n otherVertexType: DocumentCategory,\r\n },\r\n {\r\n propertyName: 'DeliversAccount',\r\n edgeType: TaskCorrespondenceDeliversAccountRole,\r\n otherVertexPropertyName: 'DeliveredBy',\r\n otherVertexType: AccountRole,\r\n },\r\n {\r\n propertyName: 'DeliversEmail',\r\n edgeType: TaskCorrespondenceDeliversDataPointEmail,\r\n otherVertexPropertyName: 'DeliveredBy',\r\n otherVertexType: DataPointEmail,\r\n },\r\n {\r\n propertyName: 'MailTo',\r\n edgeType: TaskCorrespondenceMailToDataGroup,\r\n otherVertexPropertyName: 'MailBy',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'Messages',\r\n edgeType: TaskCorrespondenceMessagesEmailTemplate,\r\n otherVertexPropertyName: 'MessagedBy',\r\n otherVertexType: EmailTemplate,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutes',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskCorrespondence {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskCorrespondence) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n AllowRecipientEditing: model.AllowRecipientEditing,\r\n CorrespondenceType: model.CorrespondenceType,\r\n Preferences: model.Preferences,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Attaches: ModelUtils.serializeShallowEdge(model.Attaches(), 'Attaches'),\r\n DeliversAccount: ModelUtils.serializeShallowEdge(model.DeliversAccount(), 'DeliversAccount'),\r\n DeliversEmail: ModelUtils.serializeShallowEdge(model.DeliversEmail(), 'DeliversEmail'),\r\n MailTo: ModelUtils.serializeShallowEdge(model.MailTo(), 'MailTo'),\r\n Messages: ModelUtils.serializeShallowEdge(model.Messages(), 'Messages'),\r\n ParameterSubstitutes: ModelUtils.serializeShallowEdge(model.ParameterSubstitutes(), 'ParameterSubstitutes'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskCorrespondence {\r\n let clone = new TaskCorrespondence();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Attaches = _.cloneDeep(this._Attaches);\r\n clone._DeliversAccount = _.cloneDeep(this._DeliversAccount);\r\n clone._DeliversEmail = _.cloneDeep(this._DeliversEmail);\r\n clone._MailTo = _.cloneDeep(this._MailTo);\r\n clone._Messages = _.cloneDeep(this._Messages);\r\n clone._ParameterSubstitutes = _.cloneDeep(this._ParameterSubstitutes);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskDocumentGeneration {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n DocumentCategory?: string,\r\n ReplaceExisting: boolean,\r\n DefaultDocumentDescription?: string,\r\n Tags?: string[],\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskDocumentGeneration extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskDocumentGeneration\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskDocumentGeneration }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get DocumentCategory(): string {\r\n return this.data.DocumentCategory;\r\n }\r\n set DocumentCategory(value: string) {\r\n this.data.DocumentCategory = value;\r\n }\r\n get ReplaceExisting(): boolean {\r\n return this.data.ReplaceExisting;\r\n }\r\n set ReplaceExisting(value: boolean) {\r\n this.data.ReplaceExisting = value;\r\n }\r\n get DefaultDocumentDescription(): string {\r\n return this.data.DefaultDocumentDescription;\r\n }\r\n set DefaultDocumentDescription(value: string) {\r\n this.data.DefaultDocumentDescription = value;\r\n }\r\n get Tags(): string[] {\r\n return this.data.Tags;\r\n }\r\n set Tags(value: string[]) {\r\n this.data.Tags = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskDocumentGeneration {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskDocumentGeneration) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n DocumentCategory: model.DocumentCategory,\r\n ReplaceExisting: model.ReplaceExisting,\r\n DefaultDocumentDescription: model.DefaultDocumentDescription,\r\n Tags: model.Tags,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskDocumentGeneration {\r\n let clone = new TaskDocumentGeneration();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskFileRequirement {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n RequiredCategoryId: string,\r\n AcceptPreExistingDocument: boolean,\r\n EnforceDocumentAge: boolean,\r\n DocumentAgeValue?: number,\r\n DocumentAgeUnit?: string,\r\n DefaultTags?: string[],\r\n ExtractData?: boolean,\r\n ClearOutDocumentsForCopyToQuote?: boolean,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskFileRequirement extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskFileRequirement\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskFileRequirement }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get RequiredCategoryId(): string {\r\n return this.data.RequiredCategoryId;\r\n }\r\n set RequiredCategoryId(value: string) {\r\n this.data.RequiredCategoryId = value;\r\n }\r\n get AcceptPreExistingDocument(): boolean {\r\n return this.data.AcceptPreExistingDocument;\r\n }\r\n set AcceptPreExistingDocument(value: boolean) {\r\n this.data.AcceptPreExistingDocument = value;\r\n }\r\n get EnforceDocumentAge(): boolean {\r\n return this.data.EnforceDocumentAge;\r\n }\r\n set EnforceDocumentAge(value: boolean) {\r\n this.data.EnforceDocumentAge = value;\r\n }\r\n get DocumentAgeValue(): number {\r\n return this.data.DocumentAgeValue;\r\n }\r\n set DocumentAgeValue(value: number) {\r\n this.data.DocumentAgeValue = value;\r\n }\r\n get DocumentAgeUnit(): string {\r\n return this.data.DocumentAgeUnit;\r\n }\r\n set DocumentAgeUnit(value: string) {\r\n this.data.DocumentAgeUnit = value;\r\n }\r\n get DefaultTags(): string[] {\r\n return this.data.DefaultTags;\r\n }\r\n set DefaultTags(value: string[]) {\r\n this.data.DefaultTags = value;\r\n }\r\n get ExtractData(): boolean {\r\n return this.data.ExtractData;\r\n }\r\n set ExtractData(value: boolean) {\r\n this.data.ExtractData = value;\r\n }\r\n get ClearOutDocumentsForCopyToQuote(): boolean {\r\n return this.data.ClearOutDocumentsForCopyToQuote;\r\n }\r\n set ClearOutDocumentsForCopyToQuote(value: boolean) {\r\n this.data.ClearOutDocumentsForCopyToQuote = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskFileRequirement {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskFileRequirement) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n RequiredCategoryId: model.RequiredCategoryId,\r\n AcceptPreExistingDocument: model.AcceptPreExistingDocument,\r\n EnforceDocumentAge: model.EnforceDocumentAge,\r\n DocumentAgeValue: model.DocumentAgeValue,\r\n DocumentAgeUnit: model.DocumentAgeUnit,\r\n DefaultTags: model.DefaultTags,\r\n ExtractData: model.ExtractData,\r\n ClearOutDocumentsForCopyToQuote: model.ClearOutDocumentsForCopyToQuote,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskFileRequirement {\r\n let clone = new TaskFileRequirement();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskManual {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskManual extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskManual\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskManual }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskManual {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskManual) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskManual {\r\n let clone = new TaskManual();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskPolicyDates {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n AllowChangingEffectiveDates: boolean,\r\n AllowChangingExpirationDates: boolean,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskPolicyDates extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskPolicyDates\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskPolicyDates }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AllowChangingEffectiveDates(): boolean {\r\n return this.data.AllowChangingEffectiveDates;\r\n }\r\n set AllowChangingEffectiveDates(value: boolean) {\r\n this.data.AllowChangingEffectiveDates = value;\r\n }\r\n get AllowChangingExpirationDates(): boolean {\r\n return this.data.AllowChangingExpirationDates;\r\n }\r\n set AllowChangingExpirationDates(value: boolean) {\r\n this.data.AllowChangingExpirationDates = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskPolicyDates {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskPolicyDates) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n AllowChangingEffectiveDates: model.AllowChangingEffectiveDates,\r\n AllowChangingExpirationDates: model.AllowChangingExpirationDates,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskPolicyDates {\r\n let clone = new TaskPolicyDates();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskProducts {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n AddType?: string,\r\n AddTransactionId?: string,\r\n AddAllOtherTransactionId?: string,\r\n ModifyTransactionId?: string,\r\n RemoveTransactionId?: string,\r\n ProductEligibility?: { [index: string]: ActionEligibilityStatus },\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskProducts extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskProducts\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskProducts }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get AddType(): string {\r\n return this.data.AddType;\r\n }\r\n set AddType(value: string) {\r\n this.data.AddType = value;\r\n }\r\n get AddTransactionId(): string {\r\n return this.data.AddTransactionId;\r\n }\r\n set AddTransactionId(value: string) {\r\n this.data.AddTransactionId = value;\r\n }\r\n get AddAllOtherTransactionId(): string {\r\n return this.data.AddAllOtherTransactionId;\r\n }\r\n set AddAllOtherTransactionId(value: string) {\r\n this.data.AddAllOtherTransactionId = value;\r\n }\r\n get ModifyTransactionId(): string {\r\n return this.data.ModifyTransactionId;\r\n }\r\n set ModifyTransactionId(value: string) {\r\n this.data.ModifyTransactionId = value;\r\n }\r\n get RemoveTransactionId(): string {\r\n return this.data.RemoveTransactionId;\r\n }\r\n set RemoveTransactionId(value: string) {\r\n this.data.RemoveTransactionId = value;\r\n }\r\n get ProductEligibility(): { [index: string]: ActionEligibilityStatus } {\r\n return this.data.ProductEligibility;\r\n }\r\n set ProductEligibility(value: { [index: string]: ActionEligibilityStatus }) {\r\n this.data.ProductEligibility = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskProducts {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskProducts) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n AddType: model.AddType,\r\n AddTransactionId: model.AddTransactionId,\r\n AddAllOtherTransactionId: model.AddAllOtherTransactionId,\r\n ModifyTransactionId: model.ModifyTransactionId,\r\n RemoveTransactionId: model.RemoveTransactionId,\r\n ProductEligibility: model.ProductEligibility,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskProducts {\r\n let clone = new TaskProducts();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITaskRatingSystem {\r\n Id: string,\r\n WaitingForIds?: string[],\r\n OnBeforeCompleteEventActions?: any[],\r\n Name: string,\r\n Description: string,\r\n HowTo?: string,\r\n ObligationStatus: string,\r\n AutoComplete: boolean,\r\n AutoExecute: boolean,\r\n AutoDefer: boolean,\r\n DeferAmount?: number,\r\n DeferAmountUnits?: string,\r\n DeferBusinessHoursOnly?: boolean,\r\n DefaultAssignee?: string,\r\n Waivable: boolean,\r\n OnCompleteWorkflowSetStatus?: string,\r\n Webhooks?: string[],\r\n OnCompleteEventActions?: any[],\r\n OnUncompleteEventActions?: any[],\r\n SLATriggeredByWorkableIds?: string[],\r\n SLACorrelationKey?: string,\r\n RatingAction?: string,\r\n CommitOnSuccess?: boolean,\r\n GetPaymentPlans: boolean,\r\n GenerateWorksheets?: boolean,\r\n WorksheetsCategory?: string,\r\n WorksheetTags?: string[],\r\n ReturnPolicyFormsList?: boolean,\r\n GeneratePolicyForms?: boolean,\r\n PolicyFormsCategory?: string,\r\n PolicyFormsTags?: string[],\r\n FailIfNotRated?: boolean,\r\n SendAccountInfo?: boolean,\r\n PolicyRatedStatus?: string,\r\n Commit?: string,\r\n Worksheets?: string,\r\n PolicyForms?: string,\r\n\r\n GetsRequirementFrom?: object[],\r\n IsRequiredFor?: object[],\r\n IsTriggeredBy?: object[],\r\n WaitsFor?: object[],\r\n Triggers?: object[],\r\n InitiallyAssignedTo?: object[],\r\n Enables?: object[]\r\n\r\n}\r\n\r\nexport class TaskRatingSystem extends Task {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TaskRatingSystem\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TaskRatingSystem }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get RatingAction(): string {\r\n return this.data.RatingAction;\r\n }\r\n set RatingAction(value: string) {\r\n this.data.RatingAction = value;\r\n }\r\n get CommitOnSuccess(): boolean {\r\n return this.data.CommitOnSuccess;\r\n }\r\n set CommitOnSuccess(value: boolean) {\r\n this.data.CommitOnSuccess = value;\r\n }\r\n get GetPaymentPlans(): boolean {\r\n return this.data.GetPaymentPlans;\r\n }\r\n set GetPaymentPlans(value: boolean) {\r\n this.data.GetPaymentPlans = value;\r\n }\r\n get GenerateWorksheets(): boolean {\r\n return this.data.GenerateWorksheets;\r\n }\r\n set GenerateWorksheets(value: boolean) {\r\n this.data.GenerateWorksheets = value;\r\n }\r\n get WorksheetsCategory(): string {\r\n return this.data.WorksheetsCategory;\r\n }\r\n set WorksheetsCategory(value: string) {\r\n this.data.WorksheetsCategory = value;\r\n }\r\n get WorksheetTags(): string[] {\r\n return this.data.WorksheetTags;\r\n }\r\n set WorksheetTags(value: string[]) {\r\n this.data.WorksheetTags = value;\r\n }\r\n get ReturnPolicyFormsList(): boolean {\r\n return this.data.ReturnPolicyFormsList;\r\n }\r\n set ReturnPolicyFormsList(value: boolean) {\r\n this.data.ReturnPolicyFormsList = value;\r\n }\r\n get GeneratePolicyForms(): boolean {\r\n return this.data.GeneratePolicyForms;\r\n }\r\n set GeneratePolicyForms(value: boolean) {\r\n this.data.GeneratePolicyForms = value;\r\n }\r\n get PolicyFormsCategory(): string {\r\n return this.data.PolicyFormsCategory;\r\n }\r\n set PolicyFormsCategory(value: string) {\r\n this.data.PolicyFormsCategory = value;\r\n }\r\n get PolicyFormsTags(): string[] {\r\n return this.data.PolicyFormsTags;\r\n }\r\n set PolicyFormsTags(value: string[]) {\r\n this.data.PolicyFormsTags = value;\r\n }\r\n get FailIfNotRated(): boolean {\r\n return this.data.FailIfNotRated;\r\n }\r\n set FailIfNotRated(value: boolean) {\r\n this.data.FailIfNotRated = value;\r\n }\r\n get SendAccountInfo(): boolean {\r\n return this.data.SendAccountInfo;\r\n }\r\n set SendAccountInfo(value: boolean) {\r\n this.data.SendAccountInfo = value;\r\n }\r\n get PolicyRatedStatus(): string {\r\n return this.data.PolicyRatedStatus;\r\n }\r\n set PolicyRatedStatus(value: string) {\r\n this.data.PolicyRatedStatus = value;\r\n }\r\n get Commit(): string {\r\n return this.data.Commit;\r\n }\r\n set Commit(value: string) {\r\n this.data.Commit = value;\r\n }\r\n get Worksheets(): string {\r\n return this.data.Worksheets;\r\n }\r\n set Worksheets(value: string) {\r\n this.data.Worksheets = value;\r\n }\r\n get PolicyForms(): string {\r\n return this.data.PolicyForms;\r\n }\r\n set PolicyForms(value: string) {\r\n this.data.PolicyForms = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'GetsRequirementFrom',\r\n edgeType: RuleTaskObligationSetsRequirementForTask,\r\n otherVertexPropertyName: 'SetsRequirementFor',\r\n otherVertexType: RuleTaskObligation,\r\n },\r\n {\r\n propertyName: 'IsRequiredFor',\r\n edgeType: PhaseRequiresTask,\r\n otherVertexPropertyName: 'Requires',\r\n otherVertexType: Phase,\r\n },\r\n {\r\n propertyName: 'IsTriggeredBy',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'Triggers',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'WaitsFor',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Triggers',\r\n edgeType: ServiceLevel,\r\n otherVertexPropertyName: 'IsTriggeredBy',\r\n otherVertexType: Workable,\r\n },\r\n {\r\n propertyName: 'InitiallyAssignedTo',\r\n edgeType: TaskAssignedAssignable,\r\n otherVertexPropertyName: 'InitialAssigneeFor',\r\n otherVertexType: Assignable,\r\n },\r\n {\r\n propertyName: 'Enables',\r\n edgeType: WorkableEnablesWorkable,\r\n otherVertexPropertyName: 'WaitsFor',\r\n otherVertexType: Workable,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TaskRatingSystem {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TaskRatingSystem) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n WaitingForIds: model.WaitingForIds,\r\n OnBeforeCompleteEventActions: model.OnBeforeCompleteEventActions,\r\n Name: model.Name,\r\n Description: model.Description,\r\n HowTo: model.HowTo,\r\n ObligationStatus: model.ObligationStatus,\r\n AutoComplete: model.AutoComplete,\r\n AutoExecute: model.AutoExecute,\r\n AutoDefer: model.AutoDefer,\r\n DeferAmount: model.DeferAmount,\r\n DeferAmountUnits: model.DeferAmountUnits,\r\n DeferBusinessHoursOnly: model.DeferBusinessHoursOnly,\r\n DefaultAssignee: model.DefaultAssignee,\r\n Waivable: model.Waivable,\r\n OnCompleteWorkflowSetStatus: model.OnCompleteWorkflowSetStatus,\r\n Webhooks: model.Webhooks,\r\n OnCompleteEventActions: model.OnCompleteEventActions,\r\n OnUncompleteEventActions: model.OnUncompleteEventActions,\r\n SLATriggeredByWorkableIds: model.SLATriggeredByWorkableIds,\r\n SLACorrelationKey: model.SLACorrelationKey,\r\n RatingAction: model.RatingAction,\r\n CommitOnSuccess: model.CommitOnSuccess,\r\n GetPaymentPlans: model.GetPaymentPlans,\r\n GenerateWorksheets: model.GenerateWorksheets,\r\n WorksheetsCategory: model.WorksheetsCategory,\r\n WorksheetTags: model.WorksheetTags,\r\n ReturnPolicyFormsList: model.ReturnPolicyFormsList,\r\n GeneratePolicyForms: model.GeneratePolicyForms,\r\n PolicyFormsCategory: model.PolicyFormsCategory,\r\n PolicyFormsTags: model.PolicyFormsTags,\r\n FailIfNotRated: model.FailIfNotRated,\r\n SendAccountInfo: model.SendAccountInfo,\r\n PolicyRatedStatus: model.PolicyRatedStatus,\r\n Commit: model.Commit,\r\n Worksheets: model.Worksheets,\r\n PolicyForms: model.PolicyForms,\r\n GetsRequirementFrom: ModelUtils.serializeShallowEdge(model.GetsRequirementFrom(), 'GetsRequirementFrom'),\r\n IsRequiredFor: ModelUtils.serializeShallowEdge(model.IsRequiredFor(), 'IsRequiredFor'),\r\n IsTriggeredBy: ModelUtils.serializeShallowEdge(model.IsTriggeredBy(), 'IsTriggeredBy'),\r\n WaitsFor: ModelUtils.serializeShallowEdge(model.WaitsFor(), 'WaitsFor'),\r\n Triggers: ModelUtils.serializeShallowEdge(model.Triggers(), 'Triggers'),\r\n InitiallyAssignedTo: ModelUtils.serializeShallowEdge(model.InitiallyAssignedTo(), 'InitiallyAssignedTo'),\r\n Enables: ModelUtils.serializeShallowEdge(model.Enables(), 'Enables'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TaskRatingSystem {\r\n let clone = new TaskRatingSystem();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._GetsRequirementFrom = _.cloneDeep(this._GetsRequirementFrom);\r\n clone._IsRequiredFor = _.cloneDeep(this._IsRequiredFor);\r\n clone._IsTriggeredBy = _.cloneDeep(this._IsTriggeredBy);\r\n clone._WaitsFor = _.cloneDeep(this._WaitsFor);\r\n clone._Triggers = _.cloneDeep(this._Triggers);\r\n clone._InitiallyAssignedTo = _.cloneDeep(this._InitiallyAssignedTo);\r\n clone._Enables = _.cloneDeep(this._Enables);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface ITimestampField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class TimestampField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"TimestampField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof TimestampField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): TimestampField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: TimestampField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): TimestampField {\r\n let clone = new TimestampField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IUrlField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n ShowUrlInViewOnly?: boolean,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class UrlField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"UrlField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof UrlField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ShowUrlInViewOnly(): boolean {\r\n return this.data.ShowUrlInViewOnly;\r\n }\r\n set ShowUrlInViewOnly(value: boolean) {\r\n this.data.ShowUrlInViewOnly = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): UrlField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: UrlField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n ShowUrlInViewOnly: model.ShowUrlInViewOnly,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): UrlField {\r\n let clone = new UrlField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IZipcodeField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class ZipcodeField extends Field {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"ZipcodeField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof ZipcodeField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): ZipcodeField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: ZipcodeField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): ZipcodeField {\r\n let clone = new ZipcodeField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointEmail {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n DeliveredBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointEmail extends DataPointString {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointEmail\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointEmail }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n // Relationship DeliveredBy, returns TaskCorrespondence TaskCorrespondenceDeliversDataPointEmail[]\r\n private __DeliveredBy: TaskCorrespondenceDeliversDataPointEmail[];\r\n DeliveredBy(_context?: BaseDataContext): TaskCorrespondenceDeliversDataPointEmail[] {\r\n if (this.__DeliveredBy)\r\n return this.__DeliveredBy;\r\n else {\r\n const context = _context || this.Context;\r\n if(!context) return null;\r\n // convert set to array of edges\r\n var edges = _.map(Array.from(this._DeliveredBy), (id) => context.get(id) as TaskCorrespondenceDeliversDataPointEmail);\r\n return _.filter(edges, e => { return !_.isNil(e); });\r\n }\r\n }\r\n setDeliveredBy(values: TaskCorrespondenceDeliversDataPointEmail[]) {\r\n if (this.Context != null)\r\n throw Error;\r\n\r\n this.__DeliveredBy = values;\r\n }\r\n get _DeliveredBy(): Set {\r\n if (!this._relationships.has(\"DeliveredBy\"))\r\n this._relationships.set(\"DeliveredBy\", new Set());\r\n\r\n return this._relationships.get(\"DeliveredBy\");\r\n }\r\n set _DeliveredBy(values: Set) {\r\n this._relationships.set(\"DeliveredBy\", values);\r\n }\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'DeliveredBy',\r\n edgeType: TaskCorrespondenceDeliversDataPointEmail,\r\n otherVertexPropertyName: 'DeliversEmail',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointEmail {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointEmail) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n DeliveredBy: ModelUtils.serializeShallowEdge(model.DeliveredBy(), 'DeliveredBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointEmail {\r\n let clone = new DataPointEmail();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._DeliveredBy = _.cloneDeep(this._DeliveredBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointMoney {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinValue?: number,\r\n MaxValue?: number,\r\n Places?: number\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointMoney extends DataPointDecimal {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointMoney\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointMoney }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointMoney {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointMoney) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n Places: model.Places,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointMoney {\r\n let clone = new DataPointMoney();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointPhone {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointPhone extends DataPointString {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointPhone\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointPhone }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointPhone {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointPhone) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointPhone {\r\n let clone = new DataPointPhone();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointYear {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinValue?: number,\r\n MaxValue?: number,\r\n ValuesRequiringExplanation?: number[]\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointYear extends DataPointInteger {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointYear\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointYear }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointYear {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointYear) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinValue: model.MinValue,\r\n MaxValue: model.MaxValue,\r\n ValuesRequiringExplanation: model.ValuesRequiringExplanation,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointYear {\r\n let clone = new DataPointYear();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IDataPointYesNo {\r\n DataType: string,\r\n Id: string,\r\n Name: string,\r\n Description?: string,\r\n readonly Optional: boolean,\r\n Options?: string[],\r\n DefaultContent?: any,\r\n RegExPattern?: string,\r\n ValidationType: string,\r\n ValidationScript?: string,\r\n readonly IsPredefined: boolean,\r\n Tag?: string,\r\n IsCalculated: boolean,\r\n RateAffecting: boolean,\r\n IsRepeatableKey: boolean,\r\n ReferenceObject?: string,\r\n ReferenceProperty?: string,\r\n PopulatedBy?: string[],\r\n ResetDataForNewEdition: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n MinLength?: number,\r\n MaxLength?: number,\r\n MultiLineEntry?: boolean\r\n\r\n IsEvaluatedForCondition?: object[],\r\n IsPopulatedBy?: object[],\r\n IsContainedBy?: object[],\r\n ParameterSubstitutedBy?: object[]\r\n\r\n}\r\n\r\nexport class DataPointYesNo extends DataPointString {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"DataPointYesNo\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof DataPointYesNo }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEvaluatedForCondition',\r\n edgeType: ElementConditionEvaluatesDataPoint,\r\n otherVertexPropertyName: 'Evaluates',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsPopulatedBy',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'Populates',\r\n otherVertexType: Field,\r\n },\r\n {\r\n propertyName: 'IsContainedBy',\r\n edgeType: DataGroupContainsDataPoint,\r\n otherVertexPropertyName: 'Contains',\r\n otherVertexType: DataGroup,\r\n },\r\n {\r\n propertyName: 'ParameterSubstitutedBy',\r\n edgeType: TaskCorrespondenceParameterSubstitutesDataPoint,\r\n otherVertexPropertyName: 'ParameterSubstitutes',\r\n otherVertexType: TaskCorrespondence,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): DataPointYesNo {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: DataPointYesNo) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n DataType: model.DataType,\r\n Id: model.Id,\r\n Name: model.Name,\r\n Description: model.Description,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n RegExPattern: model.RegExPattern,\r\n ValidationType: model.ValidationType,\r\n ValidationScript: model.ValidationScript,\r\n IsPredefined: model.IsPredefined,\r\n Tag: model.Tag,\r\n IsCalculated: model.IsCalculated,\r\n RateAffecting: model.RateAffecting,\r\n IsRepeatableKey: model.IsRepeatableKey,\r\n ReferenceObject: model.ReferenceObject,\r\n ReferenceProperty: model.ReferenceProperty,\r\n PopulatedBy: model.PopulatedBy,\r\n ResetDataForNewEdition: model.ResetDataForNewEdition,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n MinLength: model.MinLength,\r\n MaxLength: model.MaxLength,\r\n MultiLineEntry: model.MultiLineEntry,\r\n IsEvaluatedForCondition: ModelUtils.serializeShallowEdge(model.IsEvaluatedForCondition(), 'IsEvaluatedForCondition'),\r\n IsPopulatedBy: ModelUtils.serializeShallowEdge(model.IsPopulatedBy(), 'IsPopulatedBy'),\r\n IsContainedBy: ModelUtils.serializeShallowEdge(model.IsContainedBy(), 'IsContainedBy'),\r\n ParameterSubstitutedBy: ModelUtils.serializeShallowEdge(model.ParameterSubstitutedBy(), 'ParameterSubstitutedBy'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): DataPointYesNo {\r\n let clone = new DataPointYesNo();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEvaluatedForCondition = _.cloneDeep(this._IsEvaluatedForCondition);\r\n clone._IsPopulatedBy = _.cloneDeep(this._IsPopulatedBy);\r\n clone._IsContainedBy = _.cloneDeep(this._IsContainedBy);\r\n clone._ParameterSubstitutedBy = _.cloneDeep(this._ParameterSubstitutedBy);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IEmailField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class EmailField extends StringField {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"EmailField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof EmailField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): EmailField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: EmailField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): EmailField {\r\n let clone = new EmailField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IPhoneField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class PhoneField extends StringField {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"PhoneField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof PhoneField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): PhoneField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: PhoneField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): PhoneField {\r\n let clone = new PhoneField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IYearField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class YearField extends IntegerField {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"YearField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof YearField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): YearField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: YearField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): YearField {\r\n let clone = new YearField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport interface IYesNoField {\r\n Id: string,\r\n DisplayLabel?: string,\r\n ShowHelp: boolean,\r\n Help?: string,\r\n readonly ConditionMet: boolean,\r\n ExternalId?: string,\r\n EnableListView: boolean,\r\n DefaultConditionMet: boolean,\r\n ScriptFunction?: string,\r\n InputSources?: any[],\r\n Optional: boolean,\r\n Options?: any[],\r\n DefaultContent?: any,\r\n Access: string,\r\n PopulatedByDataPointId?: string,\r\n DisplayWidth?: string,\r\n RetainDataWhenHidden?: boolean,\r\n Prefix?: string,\r\n Suffix?: string,\r\n ButtonAlignment?: string,\r\n\r\n IsEnabledBy?: object[],\r\n IsDisplayedBy?: object[],\r\n Populates?: object[]\r\n\r\n}\r\n\r\nexport class YesNoField extends StringField {\r\n get Domain(): string {\r\n return \"Configuration\";\r\n }\r\n get Type(): string {\r\n return \"YesNoField\";\r\n }\r\n static get DerivedTypes() {\r\n const derivedTypes: { className: string, type: typeof YesNoField }[] = [\r\n\r\n ];\r\n return derivedTypes;\r\n }\r\n\r\n // Properties\r\n get ButtonAlignment(): string {\r\n return this.data.ButtonAlignment;\r\n }\r\n set ButtonAlignment(value: string) {\r\n this.data.ButtonAlignment = value;\r\n }\r\n\r\n // Relationships\r\n\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'IsEnabledBy',\r\n edgeType: ElementConditionEnablesElement,\r\n otherVertexPropertyName: 'Enables',\r\n otherVertexType: ElementCondition,\r\n },\r\n {\r\n propertyName: 'IsDisplayedBy',\r\n edgeType: SectionDisplaysElement,\r\n otherVertexPropertyName: 'Displays',\r\n otherVertexType: Section,\r\n },\r\n\r\n ];\r\n public readonly outRelationships: EdgeRelationship[] = [\r\n {\r\n propertyName: 'Populates',\r\n edgeType: FieldPopulatesDataPoint,\r\n otherVertexPropertyName: 'IsPopulatedBy',\r\n otherVertexType: DataPoint,\r\n },\r\n\r\n ];\r\n\r\n deserialize(input: Object, datacontext: BaseDataContext): YesNoField {\r\n return ModelUtils.deserializeVertex(this, input, datacontext, this.inRelationships, this.outRelationships, super._deserialize);\r\n }\r\n serialize(_model?: YesNoField) {\r\n const model = _model || this;\r\n const ret = {\r\n ['@Type']: model.Type,\r\n Id: model.Id,\r\n DisplayLabel: model.DisplayLabel,\r\n ShowHelp: model.ShowHelp,\r\n Help: model.Help,\r\n ConditionMet: model.ConditionMet,\r\n ExternalId: model.ExternalId,\r\n EnableListView: model.EnableListView,\r\n DefaultConditionMet: model.DefaultConditionMet,\r\n ScriptFunction: model.ScriptFunction,\r\n InputSources: model.InputSources,\r\n Optional: model.Optional,\r\n Options: model.Options,\r\n DefaultContent: model.DefaultContent,\r\n Access: model.Access,\r\n PopulatedByDataPointId: model.PopulatedByDataPointId,\r\n DisplayWidth: model.DisplayWidth,\r\n RetainDataWhenHidden: model.RetainDataWhenHidden,\r\n Prefix: model.Prefix,\r\n Suffix: model.Suffix,\r\n ButtonAlignment: model.ButtonAlignment,\r\n IsEnabledBy: ModelUtils.serializeShallowEdge(model.IsEnabledBy(), 'IsEnabledBy'),\r\n IsDisplayedBy: ModelUtils.serializeShallowEdge(model.IsDisplayedBy(), 'IsDisplayedBy'),\r\n Populates: ModelUtils.serializeShallowEdge(model.Populates(), 'Populates'),\r\n };\r\n ModelUtils.removePropertiesSetToUndefined(ret);\r\n return ret;\r\n }\r\n\r\n clone(): YesNoField {\r\n let clone = new YesNoField();\r\n clone.data = _.cloneDeep(this.data);\r\n clone._IsEnabledBy = _.cloneDeep(this._IsEnabledBy);\r\n clone._IsDisplayedBy = _.cloneDeep(this._IsDisplayedBy);\r\n clone._Populates = _.cloneDeep(this._Populates);\r\n\r\n //clone.Context = this.Context;\r\n return clone;\r\n }\r\n}\r\n\r\nexport var Types = {\r\n ApplicationContainsElementCondition,\r\n ElementCondition,\r\n ElementConditionEnablesElement,\r\n ElementConditionEvaluatesDataPoint,\r\n ScriptCondition,\r\n DateField,\r\n Field,\r\n Element,\r\n DecimalField,\r\n EmailField,\r\n StringField,\r\n IntegerField,\r\n ListOfStringsField,\r\n MoneyField,\r\n PhoneField,\r\n Section,\r\n SectionIsSequencedBySectionSequence,\r\n SectionSequence,\r\n StaticElement,\r\n StaticText,\r\n TimestampField,\r\n UrlField,\r\n YearField,\r\n YesNoField,\r\n ZipcodeField,\r\n Application,\r\n ProgramRevisioned,\r\n ApplicationCollectsSection,\r\n ApplicationIsSequencedByApplicationSequence,\r\n ApplicationPopulatesDataStore,\r\n ApplicationSequence,\r\n ApplicationStructure,\r\n ApplicationStructureBelongsToProgramRevision,\r\n FieldPopulatesDataPoint,\r\n SectionDisplaysElement,\r\n SectionRepeatsWithDataGroup,\r\n Asset,\r\n AssetGroup,\r\n AssetGroupContainsAsset,\r\n DataPanel,\r\n DataPanelUsesWidget,\r\n Widget,\r\n DataPoint,\r\n Mappable,\r\n DataPointDate,\r\n DataPointDecimal,\r\n DataPointEmail,\r\n DataPointString,\r\n DataPointInteger,\r\n DataPointListOfStrings,\r\n DataPointMoney,\r\n DataPointPhone,\r\n DataPointTimestamp,\r\n DataPointUrl,\r\n DataPointYear,\r\n DataPointYesNo,\r\n DataPointZipcode,\r\n DataGroup,\r\n DataGroupChildDataGroup,\r\n DataGroupContainsDataPoint,\r\n DataGroupIsSequencedByDataGroupSequence,\r\n DataGroupSequence,\r\n DataStore,\r\n DataStoreContainsDataGroup,\r\n DataStoreIsSequencedByDataStoreSequence,\r\n DataStoreSequence,\r\n Program,\r\n ProgramAllowsDocumentCategory,\r\n ProgramChange,\r\n ProgramChangeEditsProgram,\r\n ProgramChangeLog,\r\n ProgramCollectsApplication,\r\n ProgramConfiguredByProgramOptions,\r\n ProgramDefinesWorkflowSet,\r\n ProgramDisplaysDataPanel,\r\n ProgramEmploysTenantUser,\r\n ProgramEvaluatesRuleSet,\r\n ProgramFormattedByRegion,\r\n ProgramObligatesAccountRole,\r\n ProgramOffersProduct,\r\n ProgramOptions,\r\n ProgramPatch,\r\n Deployable,\r\n ProgramPatchLog,\r\n ProgramPatchRevisesRevisioned,\r\n ProgramRevision,\r\n ProgramRevisionConfiguresArea,\r\n ProgramRevisionPublishesProgram,\r\n ProgramRevisionTracksProgramRevisioned,\r\n ProgramStoresDataStore,\r\n ProgramUsesWorkGroup,\r\n ProgramUtilizesAssetGroup,\r\n Rule,\r\n RuleDateTime,\r\n RuleProductSelection,\r\n RuleRiskAssessment,\r\n RuleRoleAssignment,\r\n RuleSet,\r\n RuleSetAssignment,\r\n RuleSetContainsRule,\r\n RuleSetDateTime,\r\n RuleSetProduct,\r\n RuleSetRequirement,\r\n RuleSetRequirementRegulatesWorkflow,\r\n RuleSetRiskAssessment,\r\n RuleSetWorkflowSetStatus,\r\n RuleSetWorkflowSetStatusCapturesWorkflowSet,\r\n RuleTaskObligation,\r\n RuleTaskObligationSetsRequirementForTask,\r\n RuleWorkflowSetStatus,\r\n ProgramImportValidationMessage,\r\n ProgramValidationMessage,\r\n Phase,\r\n Workable,\r\n PhaseIsSequencedByPhaseSequence,\r\n PhaseRequiresTask,\r\n PhaseSequence,\r\n ServiceLevel,\r\n Task,\r\n TaskApplication,\r\n TaskApproval,\r\n TaskAssignedAssignable,\r\n TaskClearance,\r\n TaskCorrespondence,\r\n TaskCorrespondenceAttachesDocumentCategory,\r\n TaskCorrespondenceDeliversAccountRole,\r\n TaskCorrespondenceDeliversDataPointEmail,\r\n TaskCorrespondenceMailToDataGroup,\r\n TaskCorrespondenceMessagesEmailTemplate,\r\n TaskCorrespondenceParameterSubstitutesDataPoint,\r\n TaskDocumentGeneration,\r\n TaskFileRequirement,\r\n TaskManual,\r\n TaskPolicyDates,\r\n TaskProducts,\r\n TaskRatingSystem,\r\n WorkableEnablesWorkable,\r\n Workflow,\r\n WorkflowConfiguredByWorkflowOptions,\r\n WorkflowIsSequencedByWorkflowSequence,\r\n WorkflowOptions,\r\n WorkflowRequiresPhase,\r\n WorkflowSequence,\r\n WorkflowSet,\r\n WorkflowSetContainsWorkflow,\r\n AccountRole,\r\n Assignable,\r\n App,\r\n SMIdentity,\r\n AppRepresentedByTenantUser,\r\n Area,\r\n AreaDeploysDeployable,\r\n BusinessLocation,\r\n Company,\r\n CompanyWritesProduct,\r\n Contact,\r\n CustomTable,\r\n CustomTableRow,\r\n Dashboard,\r\n DeclineReason,\r\n Developer,\r\n DocumentCategory,\r\n EmailTemplate,\r\n Holiday,\r\n Notification,\r\n Prioritization,\r\n Producer,\r\n ProducerOffersProgram,\r\n Product,\r\n Region,\r\n SecurityRole,\r\n ServiceLevelAgreement,\r\n SMIdentityFillsSecurityRole,\r\n SMIdentityWorksInArea,\r\n TenantDeveloperOptions,\r\n TenantUser,\r\n TenantUserDevelopsAsDeveloper,\r\n TenantUserMemberOfWorkGroup,\r\n TransactionType,\r\n UserNotificationCenter,\r\n UserNotificationCenterIsAlertedByNotification,\r\n Webhook,\r\n WebhookActivity,\r\n WorkGroup,\r\n FeatureFacet,\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport * as Models from '@Core/CodeGen/Models/area.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class AccountsService extends BaseService {\r\n\r\n public static baseUrl: string = \"\";\r\n\r\n constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService) {\r\n super(globalMessages, loggingService, loadingService);\r\n AccountsService.baseUrl = BaseService.baseUrl + \"/Accounts/\";\r\n }\r\n\r\n public AssignAccountRole(body: any, contexts: DataContext[] | DataContext, accountId: string, accountRoleId: string,\r\n optionalParameters: {\r\n identityId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/AccountRoles/{accountRoleId}/Assign\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{accountRoleId}\", accountRoleId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.identityId != null)\r\n params = params.set('identityId', optionalParameters.identityId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAccount(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Account, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAccountsAndOptionallyAsListOfTasks(optionalParameters: {\r\n producerId?: string,\r\n view?: string,\r\n includeTasks?: string,\r\n numAccounts?: string\r\n }): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.producerId != null)\r\n params = params.set('producerId', optionalParameters.producerId);\r\n if (optionalParameters?.view != null)\r\n params = params.set('view', optionalParameters.view);\r\n if (optionalParameters?.includeTasks != null)\r\n params = params.set('includeTasks', optionalParameters.includeTasks);\r\n if (optionalParameters?.numAccounts != null)\r\n params = params.set('numAccounts', optionalParameters.numAccounts);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public SetNextAccountCodeNumber(body: any): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Accounts/NextCodeNumber\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ChangeAccountProducer(body: any, contexts: DataContext[] | DataContext, accountId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Producer\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Account, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ClearAccount(body: any, accountId: string): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Clear\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public UpdateAccountBalance(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Balance\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Account, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateAccountTags(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/UpdateTags\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Account, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SearchAccounts(searchTerms: string,\r\n optionalParameters: {\r\n producerId?: string\r\n }): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Search\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('searchTerms', searchTerms);\r\n if (optionalParameters?.producerId != null)\r\n params = params.set('producerId', optionalParameters.producerId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveAccountByIdOrCode(contexts: DataContext[] | DataContext, accountIdOrCode: string,\r\n optionalParameters: {\r\n includePoliciesAndTransactions?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includePoliciesAndTransactions != null)\r\n params = params.set('includePoliciesAndTransactions', optionalParameters.includePoliciesAndTransactions);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Account, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListWorkflowSets(contexts: DataContext[] | DataContext, accountId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/WorkflowSets\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkflowSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAccountAssignables(contexts: DataContext[] | DataContext, accountId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Assignables\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Assignable, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public FilterAccounts(body: any, activeAccounts: string): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Filter\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('activeAccounts', activeAccounts);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public BulkAccountRoleReassignment(body: any): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"BulkReassign\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfBulkAccountRoleReassignment(operationId: string): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"BulkReassign/{operationId}\";\r\n url = url.replace(\"{operationId}\", operationId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public GetLoggedInUserActivity(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n accountId?: string,\r\n entityId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Activities\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n if (optionalParameters?.entityId != null)\r\n params = params.set('entityId', optionalParameters.entityId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountActivity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveJournalEntries(contexts: DataContext[] | DataContext, accountId: string,\r\n optionalParameters: {\r\n correlationKey?: string,\r\n taskId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/JournalEntries\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.correlationKey != null)\r\n params = params.set('correlationKey', optionalParameters.correlationKey);\r\n if (optionalParameters?.taskId != null)\r\n params = params.set('taskId', optionalParameters.taskId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountJournalEntry, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveJournalEntry(contexts: DataContext[] | DataContext, accountId: string, journalId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/JournalEntries/{journalId}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{journalId}\", journalId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountJournalEntry, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddJournalEntry(body: any, contexts: DataContext[] | DataContext, accountId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/JournalEntries\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountJournalEntry, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateJournalEntry(body: any, contexts: DataContext[] | DataContext, accountId: string, idOrCorrelationKey: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/JournalEntries/{idOrCorrelationKey}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{idOrCorrelationKey}\", idOrCorrelationKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountJournalEntry, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAllVersionOfCommentsForAnAccount(contexts: DataContext[] | DataContext, accountId: string,\r\n optionalParameters: {\r\n correlationKey?: string,\r\n taskId?: string,\r\n journalEntryCorrelationKey?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Comments\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.correlationKey != null)\r\n params = params.set('correlationKey', optionalParameters.correlationKey);\r\n if (optionalParameters?.taskId != null)\r\n params = params.set('taskId', optionalParameters.taskId);\r\n if (optionalParameters?.journalEntryCorrelationKey != null)\r\n params = params.set('journalEntryCorrelationKey', optionalParameters.journalEntryCorrelationKey);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountComment, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveComment(contexts: DataContext[] | DataContext, accountId: string, commentId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Comments/{commentId}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{commentId}\", commentId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountComment, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddComment(body: any, contexts: DataContext[] | DataContext, accountId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Comments\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountComment, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateComment(body: any, contexts: DataContext[] | DataContext, accountId: string, idOrCorrelationKey: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Comments/{idOrCorrelationKey}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{idOrCorrelationKey}\", idOrCorrelationKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountComment, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteComment(idOfDeletedItem: string, contexts: DataContext[] | DataContext, accountId: string, commentId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Comments/{commentId}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{commentId}\", commentId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ResurrectAComment(body: any, contexts: DataContext[] | DataContext, accountId: string, commentId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountId}/Comments/{commentId}/Resurrect\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{commentId}\", commentId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountComment, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDocumentCategoriesForAccount(accountIdOrCode: string): Observable {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/DocumentCategories\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ReverseInvoice(idOfDeletedItem: string, contexts: DataContext[] | DataContext, accountIdOrCode: string, invoiceId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Invoices/{invoiceId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{invoiceId}\", invoiceId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddInvoice(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, invoiceId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Invoices/{invoiceId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{invoiceId}\", invoiceId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Activity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPolicies(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n accountId?: string,\r\n producerId?: string,\r\n programId?: string,\r\n fromEff?: string,\r\n fromExp?: string,\r\n toEff?: string,\r\n toExp?: string,\r\n updatedSince?: string,\r\n workflowSetId?: string,\r\n policySetId?: string,\r\n filterRenewed?: string,\r\n initialWorkflowId?: string,\r\n includeClosed?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Policies\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n if (optionalParameters?.producerId != null)\r\n params = params.set('producerId', optionalParameters.producerId);\r\n if (optionalParameters?.programId != null)\r\n params = params.set('programId', optionalParameters.programId);\r\n if (optionalParameters?.fromEff != null)\r\n params = params.set('fromEff', optionalParameters.fromEff);\r\n if (optionalParameters?.fromExp != null)\r\n params = params.set('fromExp', optionalParameters.fromExp);\r\n if (optionalParameters?.toEff != null)\r\n params = params.set('toEff', optionalParameters.toEff);\r\n if (optionalParameters?.toExp != null)\r\n params = params.set('toExp', optionalParameters.toExp);\r\n if (optionalParameters?.updatedSince != null)\r\n params = params.set('updatedSince', optionalParameters.updatedSince);\r\n if (optionalParameters?.workflowSetId != null)\r\n params = params.set('workflowSetId', optionalParameters.workflowSetId);\r\n if (optionalParameters?.policySetId != null)\r\n params = params.set('policySetId', optionalParameters.policySetId);\r\n if (optionalParameters?.filterRenewed != null)\r\n params = params.set('filterRenewed', optionalParameters.filterRenewed);\r\n if (optionalParameters?.initialWorkflowId != null)\r\n params = params.set('initialWorkflowId', optionalParameters.initialWorkflowId);\r\n if (optionalParameters?.includeClosed != null)\r\n params = params.set('includeClosed', optionalParameters.includeClosed);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Policy, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAPolicy(contexts: DataContext[] | DataContext, accountIdOrCode: string, policyId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Policies/{policyId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policyId}\", policyId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Policy, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateCommission(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policyId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Policies/{policyId}/UpdateCommission\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policyId}\", policyId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Policy, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RevertPolicyCommission(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policyId: string, edition: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Policies/{policyId}/ResetCommission\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policyId}\", policyId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('edition', edition);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Policy, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ImportPolicy(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policySetId: string, policyStatus: string, policyNumber: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySet/{policySetId}/Policy\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policySetId}\", policySetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('policyStatus', policyStatus);\r\n params = params.set('policyNumber', policyNumber);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Policy, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ImportPolicyAndCreateOrModifyPolicySet(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policyStatus: string, policyNumber: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySet/Policy\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('policyStatus', policyStatus);\r\n params = params.set('policyNumber', policyNumber);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Policy, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPolicysets(contexts: DataContext[] | DataContext, accountIdOrCode: string,\r\n optionalParameters: {\r\n includeDeleted?: string,\r\n workflowSetId?: string,\r\n initialWorkflowId?: string,\r\n includeClosed?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySets\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includeDeleted != null)\r\n params = params.set('includeDeleted', optionalParameters.includeDeleted);\r\n if (optionalParameters?.workflowSetId != null)\r\n params = params.set('workflowSetId', optionalParameters.workflowSetId);\r\n if (optionalParameters?.initialWorkflowId != null)\r\n params = params.set('initialWorkflowId', optionalParameters.initialWorkflowId);\r\n if (optionalParameters?.includeClosed != null)\r\n params = params.set('includeClosed', optionalParameters.includeClosed);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.PolicySet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAPolicyset(contexts: DataContext[] | DataContext, accountIdOrCode: string, policySetIdOrWorkflowSetId: string,\r\n optionalParameters: {\r\n initialWorkflowId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySets/{policySetIdOrWorkflowSetId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policySetIdOrWorkflowSetId}\", policySetIdOrWorkflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.initialWorkflowId != null)\r\n params = params.set('initialWorkflowId', optionalParameters.initialWorkflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.PolicySet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdatePolicysetTerm(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policySetId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySets/{policySetId}/Term\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policySetId}\", policySetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.PolicySet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ToggleProduct(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policySetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySets/{policySetId}/ProductSelection\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policySetId}\", policySetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('workflowId', workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Transaction, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ImportPolicyset(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, programId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySet\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('programId', programId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.PolicySet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeletePolicyset(idOfDeletedItem: string, contexts: DataContext[] | DataContext, accountIdOrCode: string, policySetId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/PolicySets/{policySetId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policySetId}\", policySetId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListTransactions(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n accountId?: string,\r\n workflowId?: string,\r\n producerId?: string,\r\n programId?: string,\r\n type?: string,\r\n fromEff?: string,\r\n toEff?: string,\r\n updatedSince?: string,\r\n workflowSetId?: string,\r\n policyId?: string,\r\n includeDeselected?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Transactions\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n if (optionalParameters?.workflowId != null)\r\n params = params.set('workflowId', optionalParameters.workflowId);\r\n if (optionalParameters?.producerId != null)\r\n params = params.set('producerId', optionalParameters.producerId);\r\n if (optionalParameters?.programId != null)\r\n params = params.set('programId', optionalParameters.programId);\r\n if (optionalParameters?.type != null)\r\n params = params.set('type', optionalParameters.type);\r\n if (optionalParameters?.fromEff != null)\r\n params = params.set('fromEff', optionalParameters.fromEff);\r\n if (optionalParameters?.toEff != null)\r\n params = params.set('toEff', optionalParameters.toEff);\r\n if (optionalParameters?.updatedSince != null)\r\n params = params.set('updatedSince', optionalParameters.updatedSince);\r\n if (optionalParameters?.workflowSetId != null)\r\n params = params.set('workflowSetId', optionalParameters.workflowSetId);\r\n if (optionalParameters?.policyId != null)\r\n params = params.set('policyId', optionalParameters.policyId);\r\n if (optionalParameters?.includeDeselected != null)\r\n params = params.set('includeDeselected', optionalParameters.includeDeselected);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Transaction, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveATransaction(contexts: DataContext[] | DataContext, accountIdOrCode: string, transactionId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Transactions/{transactionId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{transactionId}\", transactionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Transaction, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SetRatingResultsForATransaction(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/RatingResults\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.TransactionDetails, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ImportTransaction(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, policyId: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"{accountIdOrCode}/Policies/{policyId}/Transaction\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{policyId}\", policyId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Transaction, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveListOfRecentUserAccountIds(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"User/Recents\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.UserRecentAccounts, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAccountToRecents(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"User/Recents\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.UserRecentAccounts, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAccountToFavorites(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"User/Favorites\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.SMIdentity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveAccountFromFavorites(idOfDeletedItem: string, contexts: DataContext[] | DataContext, accountIdOrCode: string): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"User/Favorites/{accountIdOrCode}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListUserNotificationCenters(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Notifications\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveNotificationsForUser(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Notifications/Remove\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public MarkNotificationsAsRead(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = AccountsService.baseUrl + \"Notifications/Read\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport * as Models from '@Core/CodeGen/Models/area.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class DataService extends BaseService {\r\n\r\n public static baseUrl: string = \"\";\r\n\r\n constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService) {\r\n super(globalMessages, loggingService, loadingService);\r\n DataService.baseUrl = BaseService.baseUrl + \"/Data/\";\r\n }\r\n\r\n public RetrieveAnInsuranceApplication(contexts: DataContext[] | DataContext, workflowSetId: string, applicationId: string): Observable> {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Applications/{applicationId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{applicationId}\", applicationId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Application, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAnApplicationSection(body: any, workflowSetId: string, applicationId: string,\r\n optionalParameters: {\r\n details?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Applications/{applicationId}/AddSection\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{applicationId}\", applicationId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.details != null)\r\n params = params.set('details', optionalParameters.details);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveApplicationSection(contexts: DataContext[] | DataContext, workflowSetId: string, sectionId: string, partitionKey: string,\r\n optionalParameters: {\r\n details?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Sections/{sectionId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{sectionId}\", sectionId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('partitionKey', partitionKey);\r\n if (optionalParameters?.details != null)\r\n params = params.set('details', optionalParameters.details);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Section, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveApplicationSections(idOfDeletedItem: string, contexts: DataContext[] | DataContext, workflowSetId: string): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Sections\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SaveFieldValue(body: any, workflowSetId: string, fieldId: string, partitionKey: string): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Fields/{fieldId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{fieldId}\", fieldId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('partitionKey', partitionKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ExtractData(workflowSetId: string,\r\n optionalParameters: {\r\n edition?: string,\r\n returnXml?: string,\r\n includeEmpty?: string,\r\n includeTracking?: string,\r\n compactJson?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Extract\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.edition != null)\r\n params = params.set('edition', optionalParameters.edition);\r\n if (optionalParameters?.returnXml != null)\r\n params = params.set('returnXml', optionalParameters.returnXml);\r\n if (optionalParameters?.includeEmpty != null)\r\n params = params.set('includeEmpty', optionalParameters.includeEmpty);\r\n if (optionalParameters?.includeTracking != null)\r\n params = params.set('includeTracking', optionalParameters.includeTracking);\r\n if (optionalParameters?.compactJson != null)\r\n params = params.set('compactJson', optionalParameters.compactJson);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ImportData(body: any, workflowSetId: string,\r\n optionalParameters: {\r\n edition?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.edition != null)\r\n params = params.set('edition', optionalParameters.edition);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ImportCompactData(body: any, workflowSetId: string,\r\n optionalParameters: {\r\n edition?: string,\r\n desiredState?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import/Compact\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.edition != null)\r\n params = params.set('edition', optionalParameters.edition);\r\n if (optionalParameters?.desiredState != null)\r\n params = params.set('desiredState', optionalParameters.desiredState);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ImportXmlData(body: any, workflowSetId: string,\r\n optionalParameters: {\r\n edition?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import/XML\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.edition != null)\r\n params = params.set('edition', optionalParameters.edition);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public CompareXmlData(workflowSetId: string,\r\n optionalParameters: {\r\n edition?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Compare/XML\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.edition != null)\r\n params = params.set('edition', optionalParameters.edition);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfDatastoreImport(contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import/Status\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataStore, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfAllOngoingDatastoreImports(workflowSetId: string): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import/AllStatuses\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfSpecificDatastoreImport(workflowSetId: string, importId: string): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import/Status/{importId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{importId}\", importId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveSpecificDatastoreImportResults(workflowSetId: string, importId: string): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Import/Results/{importId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{importId}\", importId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListRiskDetail(contexts: DataContext[] | DataContext, workflowSetId: string,\r\n optionalParameters: {\r\n includeDetails?: string,\r\n showAllRules?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/RiskDetail\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includeDetails != null)\r\n params = params.set('includeDetails', optionalParameters.includeDetails);\r\n if (optionalParameters?.showAllRules != null)\r\n params = params.set('showAllRules', optionalParameters.showAllRules);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.RuleSetRiskAssessment, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveClearanceData(workflowSetId: string, workflowId: string): Observable {\r\n // Build the url\r\n var url = DataService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/ClearanceData\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport * as Models from '@Core/CodeGen/Models/area.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class DocumentsService extends BaseService {\r\n\r\n public static baseUrl: string = \"\";\r\n\r\n constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService) {\r\n super(globalMessages, loggingService, loadingService);\r\n DocumentsService.baseUrl = BaseService.baseUrl + \"/Documents/\";\r\n }\r\n\r\n public RetrieveCorrespondence(contexts: DataContext[] | DataContext, accountId: string, correspondenceId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence/{correspondenceId}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{correspondenceId}\", correspondenceId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveCorrespondenceAssociatedWithACorrespondenceTask(contexts: DataContext[] | DataContext, accountId: string, taskId: string, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('taskId', taskId);\r\n params = params.set('workflowSetId', workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateACorrespondence(body: any, contexts: DataContext[] | DataContext, accountId: string, correspondenceId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence/{correspondenceId}\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{correspondenceId}\", correspondenceId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public LockCorrespondence(body: any, contexts: DataContext[] | DataContext, accountId: string, correspondenceId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence/{correspondenceId}/Lock\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{correspondenceId}\", correspondenceId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UnlockCorrespondence(body: any, contexts: DataContext[] | DataContext, accountId: string, correspondenceId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence/{correspondenceId}/Unlock\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{correspondenceId}\", correspondenceId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ComposeCorrespondence(body: any, contexts: DataContext[] | DataContext, accountId: string, correspondenceId: string, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence/{correspondenceId}/Compose\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{correspondenceId}\", correspondenceId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('workflowSetId', workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SendCorrespondence(body: any, contexts: DataContext[] | DataContext, accountId: string, correspondenceId: string, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/Correspondence/{correspondenceId}/Send\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n url = url.replace(\"{correspondenceId}\", correspondenceId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('workflowSetId', workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Correspondence, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDocuments(contexts: DataContext[] | DataContext, accountIdOrCode: string,\r\n optionalParameters: {\r\n documentCategoryId?: string,\r\n documentTag?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.documentCategoryId != null)\r\n params = params.set('documentCategoryId', optionalParameters.documentCategoryId);\r\n if (optionalParameters?.documentTag != null)\r\n params = params.set('documentTag', optionalParameters.documentTag);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveADocument(contexts: DataContext[] | DataContext, accountIdOrCode: string, documentId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public GetTheTemporaryDocumentUrl(accountIdOrCode: string, documentId: string,\r\n optionalParameters: {\r\n urlType?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}/Url\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.urlType != null)\r\n params = params.set('urlType', optionalParameters.urlType);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public PrepareDocumentForUpload(contexts: DataContext[] | DataContext, accountIdOrCode: string, documentId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}/Upload\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ExpectANewDocument(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string,\r\n optionalParameters: {\r\n replace?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/Upload\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.replace != null)\r\n params = params.set('replace', optionalParameters.replace);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UploadDocument(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, documentId: string, uploadId: string,\r\n optionalParameters: {\r\n useAsyncAPI?: string,\r\n sendForExtraction?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}/Upload\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('uploadId', uploadId);\r\n if (optionalParameters?.useAsyncAPI != null)\r\n params = params.set('useAsyncAPI', optionalParameters.useAsyncAPI);\r\n if (optionalParameters?.sendForExtraction != null)\r\n params = params.set('sendForExtraction', optionalParameters.sendForExtraction);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfDocumentUpload(contexts: DataContext[] | DataContext, accountIdOrCode: string, documentId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}/Upload/Status\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveDocument(idOfDeletedItem: string, contexts: DataContext[] | DataContext, accountIdOrCode: string, documentId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDocumentInfo(body: any, accountIdOrCode: string, documentId: string): Observable {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public SetExtractionStatus(body: any, accountIdOrCode: string, documentId: string): Observable {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}/SetExtractionStatus\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public Extract(body: any, contexts: DataContext[] | DataContext, accountIdOrCode: string, documentId: string): Observable> {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountIdOrCode}/{documentId}/Extract\";\r\n url = url.replace(\"{accountIdOrCode}\", accountIdOrCode);\r\n url = url.replace(\"{documentId}\", documentId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Document, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListEmailThreadsForAnAccount(accountId: string,\r\n optionalParameters: {\r\n includeMessages?: string\r\n }): Observable {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/EmailThreads\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includeMessages != null)\r\n params = params.set('includeMessages', optionalParameters.includeMessages);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListEmailMessages(accountId: string, messageIds: string): Observable {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/EmailMessages\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('messageIds', messageIds);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public SendEmailMessage(body: any, accountId: string): Observable {\r\n // Build the url\r\n var url = DocumentsService.baseUrl + \"{accountId}/EmailMessages/Send\";\r\n url = url.replace(\"{accountId}\", accountId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport * as Models from '@Core/CodeGen/Models/configuration.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class ProgramsService extends BaseService {\r\n\r\n public static baseUrl: string = \"\";\r\n\r\n constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService) {\r\n super(globalMessages, loggingService, loadingService);\r\n ProgramsService.baseUrl = BaseService.baseUrl + \"/Programs/\";\r\n }\r\n\r\n public ListAccountRolesForProgram(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AccountRoles\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAnAccountRole(contexts: DataContext[] | DataContext, accountRoleId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"AccountRoles/{accountRoleId}\";\r\n url = url.replace(\"{accountRoleId}\", accountRoleId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AppointAccountRoleToProgram(body: any, contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramObligatesAccountRoles\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyAnAccountRole(body: any, contexts: DataContext[] | DataContext, programId: string, accountRoleEdgeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramObligatesAccountRoles/{accountRoleEdgeId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{accountRoleEdgeId}\", accountRoleEdgeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveAccountRoleFromProgram(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, accountRoleEdgeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramObligatesAccountRoles/{accountRoleEdgeId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{accountRoleEdgeId}\", accountRoleEdgeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPrograms(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n published?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.published != null)\r\n params = params.set('published', optionalParameters.published);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveProgram(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddProgram(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyProgram(body: any, contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n deploy?: string,\r\n changeId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.deploy != null)\r\n params = params.set('deploy', optionalParameters.deploy);\r\n if (optionalParameters?.changeId != null)\r\n params = params.set('changeId', optionalParameters.changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListProducersOfferingTheProgram(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Producers\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Producer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListChanges(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n status?: string,\r\n lockedBy?: string,\r\n includeReleased?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('programId', programId);\r\n if (optionalParameters?.status != null)\r\n params = params.set('status', optionalParameters.status);\r\n if (optionalParameters?.lockedBy != null)\r\n params = params.set('lockedBy', optionalParameters.lockedBy);\r\n if (optionalParameters?.includeReleased != null)\r\n params = params.set('includeReleased', optionalParameters.includeReleased);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveChange(contexts: DataContext[] | DataContext, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes/{changeId}\";\r\n url = url.replace(\"{changeId}\", changeId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyChange(body: any, contexts: DataContext[] | DataContext, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes/{changeId}\";\r\n url = url.replace(\"{changeId}\", changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public LockChange(body: any, contexts: DataContext[] | DataContext, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes/{changeId}/Lock\";\r\n url = url.replace(\"{changeId}\", changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UnlockChange(body: any, contexts: DataContext[] | DataContext, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes/{changeId}/Unlock\";\r\n url = url.replace(\"{changeId}\", changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StealChangeLock(body: any, contexts: DataContext[] | DataContext, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes/{changeId}/Steal\";\r\n url = url.replace(\"{changeId}\", changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CommitChanges(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Commit\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UncommitChanges(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Uncommit\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StartChange(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RevertChange(body: any, contexts: DataContext[] | DataContext, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Changes/{changeId}/Revert\";\r\n url = url.replace(\"{changeId}\", changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramChange, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StartPatch(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Patches\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramPatch, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListProgramPatches(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n status?: string,\r\n lockedBy?: string,\r\n includeReleased?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Patches\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('programId', programId);\r\n if (optionalParameters?.status != null)\r\n params = params.set('status', optionalParameters.status);\r\n if (optionalParameters?.lockedBy != null)\r\n params = params.set('lockedBy', optionalParameters.lockedBy);\r\n if (optionalParameters?.includeReleased != null)\r\n params = params.set('includeReleased', optionalParameters.includeReleased);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramPatch, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveProgramPatch(contexts: DataContext[] | DataContext, patchId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Patches/{patchId}\";\r\n url = url.replace(\"{patchId}\", patchId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramPatch, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeployAProgramPatch(body: any, contexts: DataContext[] | DataContext, patchId: string, areaKey: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Patches/{patchId}/Deploy\";\r\n url = url.replace(\"{patchId}\", patchId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('areaKey', areaKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramPatch, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfProgramPatchDeployment(contexts: DataContext[] | DataContext, patchId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Patches/{patchId}/DeploymentStatus\";\r\n url = url.replace(\"{patchId}\", patchId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UndeployProgramPatch(body: any, contexts: DataContext[] | DataContext, patchId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Patches/{patchId}/Undeploy\";\r\n url = url.replace(\"{patchId}\", patchId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramPatch, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListRevisions(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n programId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.programId != null)\r\n params = params.set('programId', optionalParameters.programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRevision(contexts: DataContext[] | DataContext, revisionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveProgramConfiguration(programId: string,\r\n optionalParameters: {\r\n revision?: string,\r\n patch?: string\r\n }): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Configuration\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.revision != null)\r\n params = params.set('revision', optionalParameters.revision);\r\n if (optionalParameters?.patch != null)\r\n params = params.set('patch', optionalParameters.patch);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ExportProgramRevision(revisionId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/Export\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ImportProgram(body: any, contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n programName?: string,\r\n description?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Import\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.programName != null)\r\n params = params.set('programName', optionalParameters.programName);\r\n if (optionalParameters?.description != null)\r\n params = params.set('description', optionalParameters.description);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfProgramImport(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Import/Status/{programId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddChangesToAProgramRevision(body: any, contexts: DataContext[] | DataContext, revisionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/AddChanges\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveChangesFromAProgramRevision(body: any, contexts: DataContext[] | DataContext, revisionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/RemoveChanges\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeployAProgramRevision(body: any, contexts: DataContext[] | DataContext, revisionId: string, areaKey: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/Deploy\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('areaKey', areaKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfProgramRevisionDeployment(contexts: DataContext[] | DataContext, revisionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/DeploymentStatus\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UndeployProgramRevision(body: any, contexts: DataContext[] | DataContext, revisionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/Undeploy\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StartNewProgramRevision(body: any, contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Revisions\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyAProgramRevision(body: any, contexts: DataContext[] | DataContext, programId: string, revisionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Revisions/{revisionId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SetStandbyWorkflows(body: any, revisionId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Revisions/{revisionId}/SetStandbyWorkflows\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ValidateProgram(body: any, contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n changeId?: string,\r\n revisionId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Validate\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.changeId != null)\r\n params = params.set('changeId', optionalParameters.changeId);\r\n if (optionalParameters?.revisionId != null)\r\n params = params.set('revisionId', optionalParameters.revisionId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfProgramValidation(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Validate/Status\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StopProgramValidation(body: any, contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Validate/Stop\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListValidationMessages(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ValidationMessages\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramValidationMessage, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListValidationCodes(): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"ValidationCodes\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public DeployProgramTeam(body: any, contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Team/Deploy\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveDeployedProgramTeam(programId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Team\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListWorkgroups(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/WorkGroups\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveWorkgroupUsers(contexts: DataContext[] | DataContext, programId: string, workgroupId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/WorkGroups/{workgroupId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workgroupId}\", workgroupId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddWorkGroupToProgram(body: any, contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramUsesWorkGroup\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyAWorkGroupOnAProgram(body: any, contexts: DataContext[] | DataContext, programId: string, usesEdgeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramUsesWorkGroup/{usesEdgeId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{usesEdgeId}\", usesEdgeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveWorkGroupFromProgram(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, usesEdgeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramUsesWorkGroup/{usesEdgeId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{usesEdgeId}\", usesEdgeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListTenantUsers(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/TenantUsers\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveTeamMember(contexts: DataContext[] | DataContext, programId: string, identityKey: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/TeamMembers/{identityKey}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{identityKey}\", identityKey);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddTeamMembers(body: any, contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramEmploysTenantUser\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyTeamMembers(body: any, contexts: DataContext[] | DataContext, programId: string, employsId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramEmploysTenantUser/{employsId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{employsId}\", employsId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveTeamMember(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, employsId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/ProgramEmploysTenantUser/{employsId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{employsId}\", employsId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListIdentities(ids: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"Identities\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('ids', ids);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListApplications(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Applications\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Application, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddApplication(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Applications\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Application, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyApplication(body: any, contexts: DataContext[] | DataContext, programId: string, applicationId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Applications/{applicationId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{applicationId}\", applicationId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Application, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveApplication(contexts: DataContext[] | DataContext, programId: string, applicationId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Applications/{applicationId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{applicationId}\", applicationId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Application, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveApplication(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, applicationId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Applications/{applicationId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{applicationId}\", applicationId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListSections(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n applicationId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Sections\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.applicationId != null)\r\n params = params.set('applicationId', optionalParameters.applicationId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Section, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveSection(contexts: DataContext[] | DataContext, programId: string, sectionId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Sections/{sectionId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{sectionId}\", sectionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Section, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveElement(contexts: DataContext[] | DataContext, programId: string, elementId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Elements/{elementId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{elementId}\", elementId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Element, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddElement(body: any, contexts: DataContext[] | DataContext, programId: string, applicationId: string, changeId: string,\r\n optionalParameters: {\r\n afterId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Applications/{applicationId}/Elements\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{applicationId}\", applicationId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n if (optionalParameters?.afterId != null)\r\n params = params.set('afterId', optionalParameters.afterId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Element, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyAnApplicationElement(body: any, contexts: DataContext[] | DataContext, programId: string, elementId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Elements/{elementId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{elementId}\", elementId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Element, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveApplicationElement(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, elementId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Elements/{elementId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{elementId}\", elementId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public MoveElement(body: any, programId: string, elementId: string, changeId: string, before: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Elements/{elementId}/MoveElement\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{elementId}\", elementId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n params = params.set('before', before);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListStaticElementTypes(): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"StaticElementTypes\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListAssetGroups(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroups\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AssetGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAssetGroup(contexts: DataContext[] | DataContext, programId: string, assetGroupId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroups/{assetGroupId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetGroupId}\", assetGroupId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AssetGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAssetGroup(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroups\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AssetGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyAnAssetGroup(body: any, contexts: DataContext[] | DataContext, programId: string, assetGroupId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroups/{assetGroupId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetGroupId}\", assetGroupId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AssetGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAssets(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n assetGroupId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Assets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.assetGroupId != null)\r\n params = params.set('assetGroupId', optionalParameters.assetGroupId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAnAsset(contexts: DataContext[] | DataContext, programId: string, assetId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Assets/{assetId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DetermineAssetPayloadState(contexts: DataContext[] | DataContext, programId: string, assetId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Assets/{assetId}/Upload\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveStatusOfAssetPayloadUpload(contexts: DataContext[] | DataContext, programId: string, assetId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Assets/{assetId}/Upload/Status\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAssetContent(programId: string, assetId: string,\r\n optionalParameters: {\r\n revisionId?: string\r\n }): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Assets/{assetId}/Content\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.revisionId != null)\r\n params = params.set('revisionId', optionalParameters.revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public InitializeANewAsset(body: any, contexts: DataContext[] | DataContext, programId: string, assetGroupId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroup/{assetGroupId}/Assets\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetGroupId}\", assetGroupId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UploadThePayloadToAnAsset(body: any, contexts: DataContext[] | DataContext, programId: string, assetGroupId: string, assetId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroup/{assetGroupId}/Assets/{assetId}/Upload\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetGroupId}\", assetGroupId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdatePropertiesOfAnAsset(body: any, contexts: DataContext[] | DataContext, programId: string, assetGroupId: string, assetId: string, changeId: string,\r\n optionalParameters: {\r\n replace?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/AssetGroup/{assetGroupId}/Assets/{assetId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{assetGroupId}\", assetGroupId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n if (optionalParameters?.replace != null)\r\n params = params.set('replace', optionalParameters.replace);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Asset, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDataPanels(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataPanels\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataPanel, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListWidgets(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n dataPanelId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Widgets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.dataPanelId != null)\r\n params = params.set('dataPanelId', optionalParameters.dataPanelId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Widget, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDataGroups(contexts: DataContext[] | DataContext, programId: string, dataStoreId: string,\r\n optionalParameters: {\r\n depth?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataGroups\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('dataStoreId', dataStoreId);\r\n if (optionalParameters?.depth != null)\r\n params = params.set('depth', optionalParameters.depth);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveDataGroup(contexts: DataContext[] | DataContext, programId: string, dataGroupId: string,\r\n optionalParameters: {\r\n details?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataGroups/{dataGroupId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataGroupId}\", dataGroupId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.details != null)\r\n params = params.set('details', optionalParameters.details);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddDataGroup(body: any, contexts: DataContext[] | DataContext, programId: string, dataStoreId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores/{dataStoreId}/DataGroups\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataStoreId}\", dataStoreId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DataGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDataGroups(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataGroups\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DataGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveDataGroup(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, dataGroupId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataGroups/{dataGroupId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataGroupId}\", dataGroupId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveDataPoint(contexts: DataContext[] | DataContext, programId: string, dataPointId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataPoints/{dataPointId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataPointId}\", dataPointId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataPoint, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDataPoints(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n dataGroupId?: string,\r\n dataStoreId?: string,\r\n name?: string,\r\n revisionId?: string,\r\n depth?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataPoints\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.dataGroupId != null)\r\n params = params.set('dataGroupId', optionalParameters.dataGroupId);\r\n if (optionalParameters?.dataStoreId != null)\r\n params = params.set('dataStoreId', optionalParameters.dataStoreId);\r\n if (optionalParameters?.name != null)\r\n params = params.set('name', optionalParameters.name);\r\n if (optionalParameters?.revisionId != null)\r\n params = params.set('revisionId', optionalParameters.revisionId);\r\n if (optionalParameters?.depth != null)\r\n params = params.set('depth', optionalParameters.depth);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataPoint, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddDataPoints(body: any, contexts: DataContext[] | DataContext, programId: string, dataStoreId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores/{dataStoreId}/DataPoints\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataStoreId}\", dataStoreId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DataPoint, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDataPoints(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataPoints\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DataPoint, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveDataPoint(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, dataPointId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataPoints/{dataPointId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataPointId}\", dataPointId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public TestScriptCondition(body: any, programId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/TestScript\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListDataStores(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataStore, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveDataStore(contexts: DataContext[] | DataContext, programId: string, dataStoreId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores/{dataStoreId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataStoreId}\", dataStoreId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DataStore, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDataPointTypes(): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"DataPointTypes\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListDataGroupsTypes(): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"DataGroupTypes\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public AddDataStore(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DataStore, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDataStore(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DataStore, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveDataStore(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, dataStoreId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/DataStores/{dataStoreId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{dataStoreId}\", dataStoreId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListRules(contexts: DataContext[] | DataContext, programId: string, ruleSetId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Rules\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('ruleSetId', ruleSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Rule, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRule(contexts: DataContext[] | DataContext, programId: string, ruleId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Rules/{ruleId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleId}\", ruleId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Rule, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddRule(body: any, contexts: DataContext[] | DataContext, programId: string, ruleSetId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/RuleSets/{ruleSetId}/Rules\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleSetId}\", ruleSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Rule, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyRule(body: any, contexts: DataContext[] | DataContext, programId: string, ruleId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Rules/{ruleId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleId}\", ruleId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Rule, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveRule(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, ruleId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Rules/{ruleId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleId}\", ruleId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListRulesets(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/RuleSets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.RuleSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRuleset(contexts: DataContext[] | DataContext, programId: string, ruleSetId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/RuleSets/{ruleSetId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleSetId}\", ruleSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.RuleSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddRuleset(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/RuleSets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.RuleSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyRuleset(body: any, contexts: DataContext[] | DataContext, programId: string, ruleSetId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/RuleSets/{ruleSetId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleSetId}\", ruleSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.RuleSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveRuleset(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, ruleSetId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/RuleSets/{ruleSetId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{ruleSetId}\", ruleSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPhases(contexts: DataContext[] | DataContext, programId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Phases\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('workflowId', workflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrievePhase(contexts: DataContext[] | DataContext, programId: string, phaseId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Phases/{phaseId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{phaseId}\", phaseId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddPhase(body: any, contexts: DataContext[] | DataContext, programId: string, workflowId: string, changeId: string,\r\n optionalParameters: {\r\n before?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows/{workflowId}/Phases\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n if (optionalParameters?.before != null)\r\n params = params.set('before', optionalParameters.before);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyPhase(body: any, contexts: DataContext[] | DataContext, programId: string, phaseId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Phases/{phaseId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{phaseId}\", phaseId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public MovePhase(body: any, contexts: DataContext[] | DataContext, programId: string, phaseId: string, changeId: string, before: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Phases/{phaseId}/MovePhase\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{phaseId}\", phaseId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n params = params.set('before', before);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeletePhase(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, phaseId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Phases/{phaseId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{phaseId}\", phaseId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPublishedTasks(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n workflowSetId?: string,\r\n workflowId?: string,\r\n phaseId?: string,\r\n revisionId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Tasks\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.workflowSetId != null)\r\n params = params.set('workflowSetId', optionalParameters.workflowSetId);\r\n if (optionalParameters?.workflowId != null)\r\n params = params.set('workflowId', optionalParameters.workflowId);\r\n if (optionalParameters?.phaseId != null)\r\n params = params.set('phaseId', optionalParameters.phaseId);\r\n if (optionalParameters?.revisionId != null)\r\n params = params.set('revisionId', optionalParameters.revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveTask(contexts: DataContext[] | DataContext, programId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Tasks/{taskId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddTasks(body: any, contexts: DataContext[] | DataContext, programId: string, workflowId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows/{workflowId}/Tasks\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyTask(body: any, contexts: DataContext[] | DataContext, programId: string, taskId: string,\r\n optionalParameters: {\r\n changeId?: string,\r\n patchId?: string,\r\n workflowId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Tasks/{taskId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.changeId != null)\r\n params = params.set('changeId', optionalParameters.changeId);\r\n if (optionalParameters?.patchId != null)\r\n params = params.set('patchId', optionalParameters.patchId);\r\n if (optionalParameters?.workflowId != null)\r\n params = params.set('workflowId', optionalParameters.workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteTask(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, taskId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Tasks/{taskId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public MoveTask(body: any, contexts: DataContext[] | DataContext, programId: string, taskId: string, changeId: string, before: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Tasks/{taskId}/MoveTask\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n params = params.set('before', before);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPolicyRatedStatuses(): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"PolicyRatedStatuses\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveWorkflow(contexts: DataContext[] | DataContext, programId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows/{workflowId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListWorkflows(contexts: DataContext[] | DataContext, programId: string,\r\n optionalParameters: {\r\n revisionId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.revisionId != null)\r\n params = params.set('revisionId', optionalParameters.revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddWorkflow(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyWorkflow(body: any, contexts: DataContext[] | DataContext, programId: string, workflowId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows/{workflowId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteWorkflow(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, workflowId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/Workflows/{workflowId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPolicyOperations(): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"PolicyOperations\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListWorkflowSets(contexts: DataContext[] | DataContext, programId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/WorkflowSets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkflowSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddWorkflowSet(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/WorkflowSets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.WorkflowSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyWorkflowset(body: any, contexts: DataContext[] | DataContext, programId: string, changeId: string): Observable> {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/WorkflowSets\";\r\n url = url.replace(\"{programId}\", programId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteWorkflowset(idOfDeletedItem: string, contexts: DataContext[] | DataContext, programId: string, workflowSetId: string, changeId: string): Observable {\r\n // Build the url\r\n var url = ProgramsService.baseUrl + \"{programId}/WorkflowSets/{workflowSetId}\";\r\n url = url.replace(\"{programId}\", programId);\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('changeId', changeId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport * as Models from '@Core/CodeGen/Models/configuration.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class TenantService extends BaseService {\r\n\r\n public static baseUrl: string = \"\";\r\n\r\n constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService) {\r\n super(globalMessages, loggingService, loadingService);\r\n TenantService.baseUrl = BaseService.baseUrl + \"/Tenant/\";\r\n }\r\n\r\n public UpdateWebhookActivity(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks/UpdateActivity\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.WebhookActivity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListWebhookActivities(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n eventDateFilter?: string,\r\n numActivities?: string,\r\n webhookName?: string,\r\n eventName?: string,\r\n action?: string,\r\n status?: string,\r\n area?: string,\r\n accountNum?: string,\r\n sentDateFilter?: string,\r\n completedDateFilter?: string,\r\n webhookId?: string,\r\n accountId?: string,\r\n workflowId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks/Activities\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.eventDateFilter != null)\r\n params = params.set('eventDateFilter', optionalParameters.eventDateFilter);\r\n if (optionalParameters?.numActivities != null)\r\n params = params.set('numActivities', optionalParameters.numActivities);\r\n if (optionalParameters?.webhookName != null)\r\n params = params.set('webhookName', optionalParameters.webhookName);\r\n if (optionalParameters?.eventName != null)\r\n params = params.set('eventName', optionalParameters.eventName);\r\n if (optionalParameters?.action != null)\r\n params = params.set('action', optionalParameters.action);\r\n if (optionalParameters?.status != null)\r\n params = params.set('status', optionalParameters.status);\r\n if (optionalParameters?.area != null)\r\n params = params.set('area', optionalParameters.area);\r\n if (optionalParameters?.accountNum != null)\r\n params = params.set('accountNum', optionalParameters.accountNum);\r\n if (optionalParameters?.sentDateFilter != null)\r\n params = params.set('sentDateFilter', optionalParameters.sentDateFilter);\r\n if (optionalParameters?.completedDateFilter != null)\r\n params = params.set('completedDateFilter', optionalParameters.completedDateFilter);\r\n if (optionalParameters?.webhookId != null)\r\n params = params.set('webhookId', optionalParameters.webhookId);\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n if (optionalParameters?.workflowId != null)\r\n params = params.set('workflowId', optionalParameters.workflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WebhookActivity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveWebhook(contexts: DataContext[] | DataContext, webhookId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks/{webhookId}\";\r\n url = url.replace(\"{webhookId}\", webhookId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Webhook, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListWebhooks(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Webhook, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddWebhook(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Webhook, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyWebhook(body: any, contexts: DataContext[] | DataContext, webhookId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks/{webhookId}\";\r\n url = url.replace(\"{webhookId}\", webhookId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Webhook, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RegenerateSigningKey(body: any, contexts: DataContext[] | DataContext, webhookId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks/{webhookId}/RegenerateSigningKey\";\r\n url = url.replace(\"{webhookId}\", webhookId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Webhook, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteWebhook(idOfDeletedItem: string, contexts: DataContext[] | DataContext, webhookId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Webhooks/{webhookId}\";\r\n url = url.replace(\"{webhookId}\", webhookId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAllWorkgroups(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"WorkGroups\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAWorkgroup(contexts: DataContext[] | DataContext, workGroupId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"WorkGroups/{workGroupId}\";\r\n url = url.replace(\"{workGroupId}\", workGroupId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddWorkgroup(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"WorkGroups\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyWorkgroup(body: any, contexts: DataContext[] | DataContext, workGroupId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"WorkGroups/{workGroupId}\";\r\n url = url.replace(\"{workGroupId}\", workGroupId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAccountRoles(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"AccountRoles\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAccountRole(contexts: DataContext[] | DataContext, accountRoleId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"AccountRoles/{accountRoleId}\";\r\n url = url.replace(\"{accountRoleId}\", accountRoleId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAccountRole(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"AccountRoles\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public EditAccountRole(body: any, contexts: DataContext[] | DataContext, accountRoleId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"AccountRoles/{accountRoleId}\";\r\n url = url.replace(\"{accountRoleId}\", accountRoleId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAreas(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Areas\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Area, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateArea(body: any, contexts: DataContext[] | DataContext, areaId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Areas/{areaId}\";\r\n url = url.replace(\"{areaId}\", areaId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Area, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListBusinessLocations(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"BusinessLocations\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.BusinessLocation, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveBusinessLocation(contexts: DataContext[] | DataContext, businessLocationId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"BusinessLocations/{businessLocationId}\";\r\n url = url.replace(\"{businessLocationId}\", businessLocationId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.BusinessLocation, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CreateBusinessLocation(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"BusinessLocations\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.BusinessLocation, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyBusinessLocation(body: any, contexts: DataContext[] | DataContext, businessLocationId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"BusinessLocations/{businessLocationId}\";\r\n url = url.replace(\"{businessLocationId}\", businessLocationId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.BusinessLocation, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteBusinessLocation(idOfDeletedItem: string, contexts: DataContext[] | DataContext, businessLocationId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"BusinessLocations/{businessLocationId}\";\r\n url = url.replace(\"{businessLocationId}\", businessLocationId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListTimeZones(): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"BusinessLocations/TimeZones\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListCompanies(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Companies\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Company, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveCompany(contexts: DataContext[] | DataContext, companyId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Companies/{companyId}\";\r\n url = url.replace(\"{companyId}\", companyId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Company, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddCompany(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Companies\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Company, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyCompany(body: any, contexts: DataContext[] | DataContext, companyId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Companies/{companyId}\";\r\n url = url.replace(\"{companyId}\", companyId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Company, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteCompany(idOfDeletedItem: string, contexts: DataContext[] | DataContext, companyId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Companies/{companyId}\";\r\n url = url.replace(\"{companyId}\", companyId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDashboards(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n dashboardName?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Dashboards\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.dashboardName != null)\r\n params = params.set('dashboardName', optionalParameters.dashboardName);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Dashboard, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveDashboard(contexts: DataContext[] | DataContext, dashboardId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Dashboards/{dashboardId}\";\r\n url = url.replace(\"{dashboardId}\", dashboardId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Dashboard, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CreateDashboard(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Dashboards\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Dashboard, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDashboard(body: any, contexts: DataContext[] | DataContext, dashboardId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Dashboards/{dashboardId}\";\r\n url = url.replace(\"{dashboardId}\", dashboardId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Dashboard, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteDashboard(idOfDeletedItem: string, contexts: DataContext[] | DataContext, dashboardId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Dashboards/{dashboardId}\";\r\n url = url.replace(\"{dashboardId}\", dashboardId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListDocumentCategories(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n programId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"/DocumentCategories\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.programId != null)\r\n params = params.set('programId', optionalParameters.programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DocumentCategory, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveDocumentCategory(contexts: DataContext[] | DataContext, categoryId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"/DocumentCategories/{categoryId}\";\r\n url = url.replace(\"{categoryId}\", categoryId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.DocumentCategory, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddDocumentCategory(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"/DocumentCategories\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DocumentCategory, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDocumentCategory(body: any, contexts: DataContext[] | DataContext, categoryId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"/DocumentCategories/{categoryId}\";\r\n url = url.replace(\"{categoryId}\", categoryId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.DocumentCategory, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddEmailTemplate(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"EmailTemplates\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.EmailTemplate, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateAnEmailTemplate(body: any, contexts: DataContext[] | DataContext, emailTemplateId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"EmailTemplates/{emailTemplateId}\";\r\n url = url.replace(\"{emailTemplateId}\", emailTemplateId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.EmailTemplate, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveEmailTemplate(contexts: DataContext[] | DataContext, templateId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"EmailTemplates/{templateId}\";\r\n url = url.replace(\"{templateId}\", templateId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.EmailTemplate, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListEmailTemplates(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"EmailTemplates\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.EmailTemplate, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListFeatureFlags(): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"FeatureFlags\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListEnabledFeatureFacets(optionalParameters: {\r\n key?: string\r\n }): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"FeatureFacets\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.key != null)\r\n params = params.set('key', optionalParameters.key);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListAllEnabledFeatureFacets(): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"FeatureFacets/All\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public EnableFeatureFlag(body: any, featureFlagId: string,\r\n optionalParameters: {\r\n areaKey?: string\r\n }): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"FeatureFlags/{featureFlagId}/Enable\";\r\n url = url.replace(\"{featureFlagId}\", featureFlagId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.areaKey != null)\r\n params = params.set('areaKey', optionalParameters.areaKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public DisableFeatureFlag(body: any, featureFlagId: string,\r\n optionalParameters: {\r\n areaKey?: string\r\n }): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"FeatureFlags/{featureFlagId}/Disable\";\r\n url = url.replace(\"{featureFlagId}\", featureFlagId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.areaKey != null)\r\n params = params.set('areaKey', optionalParameters.areaKey);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListHolidays(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Holidays\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Holiday, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveHoliday(contexts: DataContext[] | DataContext, holidayId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Holidays/{holidayId}\";\r\n url = url.replace(\"{holidayId}\", holidayId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Holiday, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CreateHolidays(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Holidays\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Holiday, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyHoliday(body: any, contexts: DataContext[] | DataContext, holidayId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Holidays/{holidayId}\";\r\n url = url.replace(\"{holidayId}\", holidayId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Holiday, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteHoliday(idOfDeletedItem: string, contexts: DataContext[] | DataContext, holidayId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Holidays/{holidayId}\";\r\n url = url.replace(\"{holidayId}\", holidayId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListIntegrations(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n integrationType?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.integrationType != null)\r\n params = params.set('integrationType', optionalParameters.integrationType);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.App, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAppIntegration(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.App, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddDeveloperIntegration(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Developers\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Developer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyAppIntegration(body: any, contexts: DataContext[] | DataContext, integrationId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations/{integrationId}\";\r\n url = url.replace(\"{integrationId}\", integrationId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.App, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyDeveloper(body: any, contexts: DataContext[] | DataContext, developerId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Developers/{developerId}\";\r\n url = url.replace(\"{developerId}\", developerId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Developer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RegenerateCredentials(body: any, integrationId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations/{integrationId}/Credentials\";\r\n url = url.replace(\"{integrationId}\", integrationId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ViewCredentials(integrationId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations/{integrationId}/Credentials\";\r\n url = url.replace(\"{integrationId}\", integrationId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public EnableIntegration(body: any, contexts: DataContext[] | DataContext, integrationId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations/{integrationId}/Enable\";\r\n url = url.replace(\"{integrationId}\", integrationId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.App, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DisableIntegration(body: any, contexts: DataContext[] | DataContext, integrationId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations/{integrationId}/Disable\";\r\n url = url.replace(\"{integrationId}\", integrationId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.App, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteIntegration(idOfDeletedItem: string, contexts: DataContext[] | DataContext, integrationId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Integrations/{integrationId}\";\r\n url = url.replace(\"{integrationId}\", integrationId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrievePrioritization(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Prioritization\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Prioritization, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddPrioritization(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Prioritization\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Prioritization, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyPrioritization(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Prioritization\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Prioritization, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListProducers(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Producers\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Producer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveProducerByIdOrCode(contexts: DataContext[] | DataContext, producerIdentifier: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Producers/{producerIdentifier}\";\r\n url = url.replace(\"{producerIdentifier}\", producerIdentifier);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Producer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddProducer(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Producers\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Producer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SetNextProducerCodeNumber(body: any): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Producers/NextCodeNumber\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ModifyProducer(body: any, contexts: DataContext[] | DataContext, producerId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Producers/{producerId}\";\r\n url = url.replace(\"{producerId}\", producerId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Producer, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SearchProducers(searchTerms: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Producers/Search\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('searchTerms', searchTerms);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListProducts(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n companyId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Products\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.companyId != null)\r\n params = params.set('companyId', optionalParameters.companyId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Product, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveProduct(contexts: DataContext[] | DataContext, productId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Products/{productId}\";\r\n url = url.replace(\"{productId}\", productId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Product, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddAProductToACompany(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Products\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Product, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyProduct(body: any, contexts: DataContext[] | DataContext, productId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Products/{productId}\";\r\n url = url.replace(\"{productId}\", productId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Product, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteProduct(idOfDeletedItem: string, contexts: DataContext[] | DataContext, productId: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Products/{productId}\";\r\n url = url.replace(\"{productId}\", productId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListPrograms(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Programs\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAllProgramRevisions(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Revisions\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListRegions(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Regions\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Region, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRegion(contexts: DataContext[] | DataContext, regionId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Regions/{regionId}\";\r\n url = url.replace(\"{regionId}\", regionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Region, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddRegion(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Regions\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Region, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyRegion(body: any, contexts: DataContext[] | DataContext, regionId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Regions/{regionId}\";\r\n url = url.replace(\"{regionId}\", regionId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Region, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveReportConfigValues(): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Reports/ConfigValues\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListSecurityRoles(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"SecurityRoles\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.SecurityRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveSecurityRole(contexts: DataContext[] | DataContext, securityRoleId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"SecurityRoles/{securityRoleId}\";\r\n url = url.replace(\"{securityRoleId}\", securityRoleId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.SecurityRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddSecurityRole(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"SecurityRoles\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.SecurityRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifySecurityRole(body: any, contexts: DataContext[] | DataContext, securityRoleId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"SecurityRoles/{securityRoleId}\";\r\n url = url.replace(\"{securityRoleId}\", securityRoleId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.SecurityRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteSecurityRole(idOfDeletedItem: string, contexts: DataContext[] | DataContext, securityRoleId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"SecurityRoles/{securityRoleId}\";\r\n url = url.replace(\"{securityRoleId}\", securityRoleId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ResurrectSecurityRole(body: any, contexts: DataContext[] | DataContext, securityRoleId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"SecurityRoles/{securityRoleId}/Resurrect\";\r\n url = url.replace(\"{securityRoleId}\", securityRoleId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.SecurityRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListServiceLevelAgreements(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n includeAllVersions?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"ServiceLevelAgreements\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includeAllVersions != null)\r\n params = params.set('includeAllVersions', optionalParameters.includeAllVersions);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ServiceLevelAgreement, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveServiceLevelAgreement(contexts: DataContext[] | DataContext, serviceLevelAgreementId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"ServiceLevelAgreements/{serviceLevelAgreementId}\";\r\n url = url.replace(\"{serviceLevelAgreementId}\", serviceLevelAgreementId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ServiceLevelAgreement, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CreateServiceLevelAgreement(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"ServiceLevelAgreements\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ServiceLevelAgreement, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyServiceLevelAgreement(body: any, contexts: DataContext[] | DataContext, serviceLevelAgreementId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"ServiceLevelAgreements/{serviceLevelAgreementId}\";\r\n url = url.replace(\"{serviceLevelAgreementId}\", serviceLevelAgreementId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ServiceLevelAgreement, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public EnableServiceLevelAgreement(body: any, contexts: DataContext[] | DataContext, serviceLevelAgreementId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"ServiceLevelAgreements/{serviceLevelAgreementId}/Enable\";\r\n url = url.replace(\"{serviceLevelAgreementId}\", serviceLevelAgreementId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ServiceLevelAgreement, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DisableServiceLevelAgreement(body: any, contexts: DataContext[] | DataContext, serviceLevelAgreementId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"ServiceLevelAgreements/{serviceLevelAgreementId}/Disable\";\r\n url = url.replace(\"{serviceLevelAgreementId}\", serviceLevelAgreementId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ServiceLevelAgreement, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAllTables(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Tables\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.CustomTable, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveTable(contexts: DataContext[] | DataContext, tableId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Tables/{tableId}\";\r\n url = url.replace(\"{tableId}\", tableId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.CustomTable, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRowsForATable(contexts: DataContext[] | DataContext, tableId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Tables/{tableId}/Rows\";\r\n url = url.replace(\"{tableId}\", tableId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.CustomTableRow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAllRows(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Rows\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.CustomTableRow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRow(contexts: DataContext[] | DataContext, rowId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Rows/{rowId}\";\r\n url = url.replace(\"{rowId}\", rowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.CustomTableRow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddTableRow(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Rows\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.CustomTableRow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateTableRow(body: any, contexts: DataContext[] | DataContext, rowId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Rows/{rowId}\";\r\n url = url.replace(\"{rowId}\", rowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.CustomTableRow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DeleteTableRow(idOfDeletedItem: string, contexts: DataContext[] | DataContext, rowId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Rows/{rowId}\";\r\n url = url.replace(\"{rowId}\", rowId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAllTransactions(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Transactions\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TransactionType, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveTransactiontype(contexts: DataContext[] | DataContext, transactionTypeId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Transactions/{transactionTypeId}\";\r\n url = url.replace(\"{transactionTypeId}\", transactionTypeId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TransactionType, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public AddTransactionType(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Transactions\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.TransactionType, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateTransactionType(body: any, contexts: DataContext[] | DataContext, transactionTypeId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Transactions/{transactionTypeId}\";\r\n url = url.replace(\"{transactionTypeId}\", transactionTypeId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.TransactionType, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListUsers(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListIdentities(contexts: DataContext[] | DataContext, ids: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Identities\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('ids', ids);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.SMIdentity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveUser(contexts: DataContext[] | DataContext, identityKey: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users/{identityKey}\";\r\n url = url.replace(\"{identityKey}\", identityKey);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyUser(body: any, keyForUserToUpdate: string): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users/{keyForUserToUpdate}\";\r\n url = url.replace(\"{keyForUserToUpdate}\", keyForUserToUpdate);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public InviteUsers(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ResendInvitationToUsers(body: any): Observable {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users/ResendInvite\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveCurrentUser(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"CurrentUserInfo\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveUserFromTenant(body: any, contexts: DataContext[] | DataContext, userId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users/{userId}/Remove\";\r\n url = url.replace(\"{userId}\", userId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public EnableUserForTenant(body: any, contexts: DataContext[] | DataContext, userId: string): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Users/{userId}/Enable\";\r\n url = url.replace(\"{userId}\", userId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.TenantUser, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListUserNotificationCenters(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Notifications\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RemoveNotificationsForUser(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Notifications/Remove\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public MarkNotificationsAsRead(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"Notifications/Read\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveUserNotificationSettings(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"NotificationSettings\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateUserNotificationSettings(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = TenantService.baseUrl + \"NotificationSettings\";\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.UserNotificationCenter, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport * as Models from '@Core/CodeGen/Models/area.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class WorkflowsService extends BaseService {\r\n\r\n public static baseUrl: string = \"\";\r\n\r\n constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService) {\r\n super(globalMessages, loggingService, loadingService);\r\n WorkflowsService.baseUrl = BaseService.baseUrl + \"/Workflows/\";\r\n }\r\n\r\n public ListAssets(workflowSetId: string,\r\n optionalParameters: {\r\n productId?: string,\r\n assetGroupId?: string,\r\n tags?: string,\r\n assetName?: string,\r\n assetGroupName?: string\r\n }): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"WorkflowSets/{workflowSetId}/Assets\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.productId != null)\r\n params = params.set('productId', optionalParameters.productId);\r\n if (optionalParameters?.assetGroupId != null)\r\n params = params.set('assetGroupId', optionalParameters.assetGroupId);\r\n if (optionalParameters?.tags != null)\r\n params = params.set('tags', optionalParameters.tags);\r\n if (optionalParameters?.assetName != null)\r\n params = params.set('assetName', optionalParameters.assetName);\r\n if (optionalParameters?.assetGroupName != null)\r\n params = params.set('assetGroupName', optionalParameters.assetGroupName);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveAsset(workflowSetId: string, assetId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"WorkflowSets/{workflowSetId}/Assets/{assetId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public RetrieveAssetContent(workflowSetId: string, assetId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"WorkflowSets/{workflowSetId}/Assets/{assetId}/Content\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{assetId}\", assetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListPhases(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n userId?: string,\r\n accountId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"Phases\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.userId != null)\r\n params = params.set('userId', optionalParameters.userId);\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrievePhase(contexts: DataContext[] | DataContext, workflowSetId: string, phaseId: string,\r\n optionalParameters: {\r\n includeTaskDetails?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Phases/{phaseId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{phaseId}\", phaseId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includeTaskDetails != null)\r\n params = params.set('includeTaskDetails', optionalParameters.includeTaskDetails);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyPhase(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, phaseId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Phases/{phaseId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{phaseId}\", phaseId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Phase, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAllPrograms(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"Programs\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Program, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAllProgramsRevisions(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"Programs/Revisions\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListModelsOfAProgramRevision(revisionId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"Programs/Revisions/{revisionId}\";\r\n url = url.replace(\"{revisionId}\", revisionId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListTasks(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n userId?: string,\r\n accountId?: string,\r\n workflowSetId?: string,\r\n workflowId?: string,\r\n includePhaseDetails?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"Tasks\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.userId != null)\r\n params = params.set('userId', optionalParameters.userId);\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n if (optionalParameters?.workflowSetId != null)\r\n params = params.set('workflowSetId', optionalParameters.workflowSetId);\r\n if (optionalParameters?.workflowId != null)\r\n params = params.set('workflowId', optionalParameters.workflowId);\r\n if (optionalParameters?.includePhaseDetails != null)\r\n params = params.set('includePhaseDetails', optionalParameters.includePhaseDetails);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CreateTask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyTask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public DelegateTask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string, assignableId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/Assign/{assignableId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n url = url.replace(\"{assignableId}\", assignableId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public LockTasks(body: any, contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/Lock\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StealATaskLock(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/Lock/{taskId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UnlockTasks(body: any, contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/Unlock\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ExecuteTask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/Execute\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StopExecutingATask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/StopExecuting\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CompleteTasks(body: any, contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/Complete\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveTask(contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public WaiveTask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string, waiveJournalEntryId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/Waive\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('waiveJournalEntryId', waiveJournalEntryId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UndoWaivedTask(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, taskId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/UndoWaive\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Task, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RedoTask(body: any, workflowSetId: string, taskId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/Redo\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public DeferTask(body: any, workflowSetId: string, taskId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Tasks/{taskId}/Defer\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{taskId}\", taskId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public ListUsers(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"TenantUsers\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.SMIdentity, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListUserOrAccountWorkflows(contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n userId?: string,\r\n accountId?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.userId != null)\r\n params = params.set('userId', optionalParameters.userId);\r\n if (optionalParameters?.accountId != null)\r\n params = params.set('accountId', optionalParameters.accountId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveWorkflow(contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ModifyWorkflow(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public UpdateWorkflowEffectiveDate(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/EffectiveDate\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public SelectAWorkflowQuoteVersion(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/SelectVersion\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListStartingWorkflows(contexts: DataContext[] | DataContext, proposedEffectiveDate: string, programId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"Starting\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('proposedEffectiveDate', proposedEffectiveDate);\r\n params = params.set('programId', programId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAvailableProgramWorkflows(workflowSetId: string, accountId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"WorkflowSets/{workflowSetId}/Available\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('accountId', accountId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public StartWorkflow(body: any, contexts: DataContext[] | DataContext,\r\n optionalParameters: {\r\n browserMode?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.browserMode != null)\r\n params = params.set('browserMode', optionalParameters.browserMode);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public Decline(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Decline\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CloseWorkflow(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Close\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StopWorkflow(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Stop\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RestartWorkflow(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Restart\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveRevisionForWorkflow(contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Revision\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ProgramRevision, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListAccountRoles(contexts: DataContext[] | DataContext, accountId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"AccountRoles\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('accountId', accountId);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.AccountRole, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public OverrideWorkflowsetStatus(body: any, contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/OverrideWorkflowSetStatus\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.WorkflowSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public BuildAWorkflow(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Build\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public CopyAWorkflow(body: any, contexts: DataContext[] | DataContext, workflowSetId: string, workflowId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}/Workflows/{workflowId}/Copy\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n url = url.replace(\"{workflowId}\", workflowId);\r\n\r\n // Make the request\r\n let request = this.http.put(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.Workflow, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveWorkflowSet(contexts: DataContext[] | DataContext, workflowSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"{workflowSetId}\";\r\n url = url.replace(\"{workflowSetId}\", workflowSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkflowSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListWorkGroups(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"WorkGroups\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveReservationset(contexts: DataContext[] | DataContext, reservationSetId: string): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"ReservationSets/{reservationSetId}\";\r\n url = url.replace(\"{reservationSetId}\", reservationSetId);\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ReservationSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ListReservationsets(contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"ReservationSets\";\r\n\r\n // Make the request\r\n let request = this.http.get(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.ReservationSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public StartWorkingWorkGroup(body: any, contexts: DataContext[] | DataContext): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"ReservationSets\";\r\n\r\n // Make the request\r\n let request = this.http.post(url, body).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalPostPutRequest(Models.ReservationSet, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n public ReserveAccount(body: any, reservationSetId: string,\r\n optionalParameters: {\r\n includeTasksInResponse?: string\r\n }): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"ReservationSets/{reservationSetId}/Reserve\";\r\n url = url.replace(\"{reservationSetId}\", reservationSetId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.includeTasksInResponse != null)\r\n params = params.set('includeTasksInResponse', optionalParameters.includeTasksInResponse);\r\n\r\n // Make the request\r\n let request = this.http.post(url, body, { params }).pipe(share());\r\n\r\n request.subscribe(() => {});\r\n\r\n return request;\r\n }\r\n\r\n public StopWorkingWorkGroup(idOfDeletedItem: string, contexts: DataContext[] | DataContext, reservationSetId: string): Observable {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"ReservationSets/{reservationSetId}\";\r\n url = url.replace(\"{reservationSetId}\", reservationSetId);\r\n\r\n // Make the request\r\n let request = this.http.delete(url).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalDeleteRequest(null, request, idOfDeletedItem, context);\r\n });\r\n return request;\r\n }\r\n\r\n public RetrieveAWorkgroup(contexts: DataContext[] | DataContext, workGroupId: string,\r\n optionalParameters: {\r\n updateNumUnreservedAccounts?: string\r\n }): Observable> {\r\n // Build the url\r\n var url = WorkflowsService.baseUrl + \"WorkGroups/{workGroupId}\";\r\n url = url.replace(\"{workGroupId}\", workGroupId);\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n if (optionalParameters?.updateNumUnreservedAccounts != null)\r\n params = params.set('updateNumUnreservedAccounts', optionalParameters.updateNumUnreservedAccounts);\r\n\r\n // Make the request\r\n let request = this.http.get(url, { params }).pipe(share());\r\n\r\n // The user can pass in a single context. Convert it to a list.\r\n if (contexts && !Array.isArray(contexts))\r\n contexts = [contexts];\r\n\r\n // Update the contexts (if any provided)\r\n _.each(contexts, context => {\r\n this.handleNormalGetRequest(Models.WorkGroup, request, context);\r\n });\r\n return request;\r\n }\r\n\r\n}","/** Contains constants to track the Tenant Permissions */\r\nexport enum TenantPermissions\r\n{\r\n /** View the level of system access for individuals or remote systems. Due to the security nature of this module, selection of ANY permission in this module removes the ability to also select any permission in any other module. */\r\n SystemAccess = \"T.Sec\",\r\n /** Users are interactive logins into the UW Workbench user interface. They are NOT used for automation or batch operations (see API Keys) as some APIs are not available to these users. Each user is assigned one or more security roles that determine what they can functionally do within the UW Workbench */\r\n SystemAccess_Users = \"T.Sec.User\",\r\n /** Invite new users, disable current users, control access to areas, reset passwords and assign security roles. */\r\n SystemAccess_Users_ManageUsers = \"T.Sec.User.Mng\",\r\n /** Security roles are a group of permissions. Each user and api key is assigned one or more security roles that determine what they are functionally allowed to do within the UW Workbench */\r\n SystemAccess_SecurityRoles = \"T.Sec.Perm\",\r\n /** Create new security roles or modify the permissions of existing security roles. */\r\n SystemAccess_SecurityRoles_ManageSecurityRoles = \"T.Sec.Perm.Mng\",\r\n /** API keys are system credentials that are used for automation or batch operations. API Keys have access to ALL APIs available (unlike users). Both developer and application API keys are supported with each API Key being assigned an Area (e.g. Test or Production) and one or more security roles that can be used to limit what a specific application or developer can do through the API. */\r\n SystemAccess_ApiKeys = \"T.Sec.Api\",\r\n /** Create, enable and disable application and developer API Keys. This also allows the retrieving the Client Secrets for ALL API keys in the system even if they don't belong to you. */\r\n SystemAccess_ApiKeys_ManageApiKeys = \"T.Sec.Api.Mng\",\r\n\r\n /** View and control system-wide settings and configurations shared by all areas */\r\n Tenant = \"T.TCnf\",\r\n /** */\r\n Tenant_Workforce = \"T.TCnf.Wfrc\",\r\n /** Account roles are designated responsibilities for an account. Each account role is filled by an eligible team member. Account roles are added to program where team member eligibility and authority level can be configured (See Programs/Teams). */\r\n Tenant_Workforce_ManageAccountRoles = \"T.TCnf.Wfrc.Ar\",\r\n /** Work groups are system-wide sets of workers who share a common queue of work. Workgroups are added to programs and then assigned to tasks. Tasks assigned to a workgroup are 'as if' they are assigned to everyone in the workgroup. Members start and stop work on a workgroup where accounts are reserved for them based on a specified prioritization algorithm. */\r\n Tenant_Workforce_ManageWorkGroups = \"T.TCnf.Wfrc.Wg\",\r\n /** Configure the necessary organizational and functional data to properly process insurance policies */\r\n Tenant_Insurance = \"T.TCnf.Ins\",\r\n /** Companies are legal entities that offer an insurance product. This permission allows you to create, modify and disable companies in the UW Workbench. */\r\n Tenant_Insurance_ManageCompanies = \"T.TCnf.Ins.Comp\",\r\n /** A Product in the UW Workbench is any policy type that is specifically presented to a market. Products are associated with the carrier or legal entity covering the risk (Companies). Products are added to programs to track policies. This permission allows you to configure new products for use in your programs. */\r\n Tenant_Insurance_ManageProducts = \"T.TCnf.Ins.Pdct\",\r\n /** Producers sell and distribute insurance products. Configure producers and set up their access to sell certain products as well as set up rules for determining default commissions for new business and renewals. */\r\n Tenant_Insurance_ManageProducers = \"T.TCnf.Ins.Pdcr\",\r\n /** UW Workbench comes with a comprehensive set of transactions that are supported but some implementations require custom transaction types. Create new ones or modify the existing ones */\r\n Tenant_Insurance_ManageTransactionTypes = \"T.TCnf.Ins.Trns\",\r\n /** An area is an isolated space where Program Configurations are deployed and users can create real accounts. All Tenant configurations are shared by all areas. Examples are Test, Production, etc. */\r\n Tenant_Areas = \"T.TCnf.Area\",\r\n /** Create new temporary or permanent areas. Allows you to disable, change the tier and put areas to sleep. Warning: Creating areas may result in additional charges. (not yet implemented) */\r\n Tenant_Areas_ManageAreas = \"T.TCnf.Area.Mng\",\r\n /** Deploy program configurations to areas. Allows the undeploy of any program configuration that is NOT deployed to a 'Production' area. */\r\n Tenant_Areas_DeployPrograms = \"T.TCnf.Area.Dply\",\r\n /** Manage Custom Lists and other top level settings */\r\n Tenant_Settings = \"T.TCnf.Set\",\r\n /** Create, modify, enable and disable settings. Ex: Create Holidays or Modify Stop Reasons */\r\n Tenant_Settings_ManageSettings = \"T.TCnf.Set.List\",\r\n /** Documents are supporting evidence for underwriter consumption or has backup evidence of data used for rules and decision making. Add, modify or remove categories for document management. */\r\n Tenant_Settings_ManageDocuments = \"T.TCnf.Set.Doc\",\r\n /** Enable or disable features for the entire product, some at an area level. */\r\n Tenant_Settings_ManageFeatures = \"T.TCnf.Set.Feat\",\r\n /** Create, modify, enable and disable service levels. */\r\n Tenant_Settings_ManageServiceLevels = \"T.TCnf.Set.SL\",\r\n /** Integrations are facilitated by outbound messages (webhooks) and inbound data (api). Webhooks are built into workflows to notify remote systems are the proper time. Due to security concerns, management of API Keys are granted in the Security Access module; but, this feature will allow users to see the API keys and their current status. With this permission, only developer contacts can view the credentials of their own API keys. */\r\n Tenant_Integrations = \"T.TCnf.Intg\",\r\n /** Create, modify, enable and disable webhooks. Regenerate webhook signing keys. */\r\n Tenant_Integrations_ManageWebhooks = \"T.TCnf.Intg.Wbhk\",\r\n /** The UW workbench delivers emails as part of user invitations or password resets. They can also be delivered as part of a workflow. */\r\n Tenant_Email = \"T.TCnf.Email\",\r\n /** Add and modify email templates to customize messaging. */\r\n Tenant_Email_ManageTemplates = \"T.TCnf.Email.Tmpl\",\r\n /** Enables the use of Insurity BI which provides analytics and out of the box reports for the tenant. */\r\n Tenant_Analytics = \"T.TCnf.Alytc\",\r\n /** Create, modify, enable and disable tenant dashboards. */\r\n Tenant_Analytics_ManageTenantDashboards = \"T.TCnf.Alytc.MngDash\",\r\n /** This feature enables a KPI and Visualization driven dashboard specific to the Tenant data in Sure Underwriting. The dashboard can utilize embedding reports from Insurity BI and improve the user experience with analytics. */\r\n Flag_Tenant_Analytics_Dashboards = \"T.TCnf.Alytc.WrkDash\",\r\n\r\n /** Create and modify Insurance Program configurations. A program is a grouping of set of policy types that are all underwritten together. */\r\n Programs = \"T.Prog\",\r\n /** A program team is comprised of team members that are assigned to eligible account roles as well as workgroups. Once account roles and workgroups are added to a team they can be configured as initial assignees to workflow tasks. */\r\n Programs_Teams = \"T.Prog.Team\",\r\n /** Add and Remove Team Members, add account roles and determine eligible members. Add workgroups and determine authority levels. You can also choose the program manager. */\r\n Programs_Teams_ManageTeams = \"T.Prog.Team.Mng\",\r\n /** Program configurations a packaged up as a Revision. A revision is comprised of one or more 'changes'. A new revision is automatically created when the previous revision is deployed to production.This feature lets a user view all the program configuration revisions. */\r\n Programs_Changes = \"T.Prog.Chng\",\r\n /** Start a new change set, modify existing changes sets, and add them to the next revision. This permission also allows the creation of new programs. */\r\n Programs_Changes_MakeChanges = \"T.Prog.Chng.Make\",\r\n /** Deleting a change will rollback all of the program modification including restoring deleted objects. You can not delete or rollback any change in revision 0 since there is nothing to rollback to... */\r\n Programs_Changes_RollbackChanges = \"T.Prog.Chng.Roll\",\r\n /** Committing a change set declares that it is done. All changes in a revision must be committed in order to deploy the revision. This permission also allows the Uncommitting of changes. */\r\n Programs_Changes_CommitChanges = \"T.Prog.Chng.Cmt\",\r\n /** Enable Program Patching feature */\r\n Flag_Programs_Changes_Patching = \"T.Prog.Chng.Patch\",\r\n /** Enable Program Assets feature */\r\n Flag_Programs_Changes_Assets = \"T.Prog.Chng.Assets\",\r\n /** The DataStore is the structure that stores all data used when executing a workflow. It can be configured to store whatever is required for the program. Once a data store is defined, applications can be created to allow for data entry in workflow tasks. */\r\n Programs_Data = \"T.Prog.Data\",\r\n /** Create and modify data stores. Add, edit and delete datagroups and datapoints including configuring calculated datapoints. */\r\n Programs_Data_ManageDataStores = \"T.Prog.Data.DS\",\r\n /** Applications are data entry screens provide awareness of their own completion. Applications are comprised of sections, elements and fields. Fields are configured to be optional, required, conditional, etc. */\r\n Programs_Data_ManageApplications = \"T.Prog.Data.App\",\r\n /** Workflows are the core of the underwriting process. Workflows (if transactional) manage products and have rules to determine their flow and operation. */\r\n Programs_Workflows = \"T.Prog.Wkfl\",\r\n /** Add and Edit workflows including adding phases, tasks and dependencies. Can also configure automation options for each task and configure sets of workflows to function together. */\r\n Programs_Workflows_ManageWorkflows = \"T.Prog.Wkfl.Mng\",\r\n /** Create rules that execute off of the datastore and modify workflows, risks, assignments, etc. */\r\n Programs_Workflows_ManageRules = \"T.Prog.Wkfl.Rule\",\r\n /** Add, remove and edit Insurance products processes by a given program. */\r\n Programs_Workflows_ManageProducts = \"T.Prog.Wkfl.Pdct\",\r\n\r\n /** Functionality for managers. This includes team management, managing account role assignments for accounts, etc. */\r\n Manage = \"T.Mng\",\r\n /** Provides functionality to view individual teams, account roles and eligibility, workgroups and authority levels. */\r\n Manage_Teams = \"T.Mng.Team\",\r\n /** You must be designated the Program Manager for a progam AND have this permission in order to add and remove Team Members, add account roles, and determine eligible members */\r\n Manage_Teams_ManageTeams = \"T.Mng.Team.Mng\",\r\n /** Manage individual accounts in bulk and view the status and progress of account and policy activity. */\r\n Manage_Accounts = \"T.Mng.Acct\",\r\n /** Search for accounts based on various filters and bulk reassign any account role. */\r\n Manage_Accounts_BulkReassignAccounts = \"T.Mng.Acct.Bulk\",\r\n\r\n /** Features for working on or managing an account */\r\n Work = \"T.Wrk\",\r\n /** An account is a customer that is buying one or more insurance products. List accounts, Retrieve account details and perform basic account operations. */\r\n Work_Accounts = \"T.Wrk.Acct\",\r\n /** Create a new account and start workflows on it. */\r\n Work_Accounts_AddAccounts = \"T.Wrk.Acct.Add\",\r\n /** Assign or reassign producers to accounts. */\r\n Work_Accounts_AssignProducers = \"T.Wrk.Acct.Pdcr\",\r\n /** Add and edit journal entries */\r\n Work_Accounts_JournalEntries = \"T.Wrk.Acct.Jrnl\",\r\n /** Search for accounts. */\r\n Work_Accounts_SearchAccounts = \"T.Wrk.Acct.Srch\",\r\n /** Enable option for users to input an account number when creating a new account. */\r\n Flag_Work_Accounts_NewAccountNumberOverride = \"T.Wrk.Acct.NumOv\",\r\n /** Enables the account prioritization feature. */\r\n Flag_Work_Accounts_AccountPrioritization = \"T.Wrk.Acct.Prioritization\",\r\n /** Limits users' ability to search and view accounts to only accounts associated with programs the user has access to via team membership or by being on a work group that participates in a program. If the user has access to any program associated with the account, the user will be able to see everything about the account including information from other programs. This feature does NOT limit access to information in Insurity BI. Dashboards, if enabled, may include information from other programs. */\r\n Flag_Work_Accounts_ExplicitProgramAccess = \"T.Wrk.Acct.ExplctPrgmAccess\",\r\n /** Removes the restriction on manual user data entry in application fields while a data import is running in the background. This can impact application fields where an integration is expected to import data and a user updates the field during the data import. */\r\n Flag_Work_Accounts_AllowManualFieldUpdatesDuringImport = \"T.Wrk.Acct.FldImp\",\r\n /** Enables Email Management within the workbench. */\r\n Flag_Work_Accounts_EmailManagement = \"T.Wrk.Acct.EmailMgmt\",\r\n /** New Account Overview to display by Program */\r\n Flag_Work_Accounts_PolicyInformationOverview = \"T.Wrk.Acct.PolInfoView\",\r\n /** Execute operations required by account workflows */\r\n Work_Workflows = \"T.Wrk.WrkFlw\",\r\n /** Lock, unlock and perform tasks. Select and rate products */\r\n Work_Workflows_ExecuteTask = \"T.Wrk.WrkFlw.Exe\",\r\n /** Stop an Executing or Completing Task */\r\n Work_Workflows_StopAnExecutingOrCompletingTask = \"T.Wrk.WrkFlw.Stop\",\r\n /** Assign team members to an account role */\r\n Work_Workflows_AssignAccountRoles = \"T.Wrk.WrkFlw.Asgn\",\r\n /** Enable Enhanced Data Store import feature */\r\n Flag_Work_Workflows_EnhancedDataStoreImport = \"T.Wrk.WrkFlw.EnhDSImp\",\r\n /** Allows the queueing of provisioning workflows while doing an integration. This can help limit system activity when starting batches of workflows for new accounts or renewals. */\r\n Flag_Work_Workflows_QueueWorkflowProvisioning = \"T.Wrk.WrkFlw.QueueWfProv\",\r\n /** Prune data import to determine if any data is redundant */\r\n Flag_Work_Workflows_OptimizeDataImport = \"T.Wrk.WrkFlw.OpDSImp\",\r\n /** Allows creating multiple quote scenarios for the insured. */\r\n Flag_Work_Workflows_CopyToNewQuoteVersion = \"T.Wrk.WrkFlw.Copy\",\r\n /** Manage documents in an account's document file */\r\n Work_Documents = \"T.Wrk.Docs\",\r\n /** Add a new document to the document file */\r\n Work_Documents_AddDocuments = \"T.Wrk.Docs.Add\",\r\n /** Edit existing document information */\r\n Work_Documents_EditDocuments = \"T.Wrk.Docs.Edt\",\r\n /** Delete a document from the document file */\r\n Work_Documents_DeleteADocument = \"T.Wrk.Docs.Del\",\r\n /** Manually update the documents' ExtractionStatus property */\r\n Work_Documents_UpdateExtractionstatus = \"T.Wrk.Docs.Extract\",\r\n /** Automated extraction and analysis of data from documents, streamlining information retrieval and enhancing efficiency in document-centric workflows. */\r\n Flag_Work_Documents_InsurityDocumentIntelligence = \"T.Wrk.Docs.IDP\",\r\n /** Allows users to edit documents in Box.com and access to document version history. */\r\n Flag_Work_Documents_BoxComEnhancements = \"T.Wrk.Docs.Box.Enh\",\r\n /** View reports */\r\n Work_Reports = \"T.Wrk.Reports\",\r\n\r\n /** Bill accounts */\r\n Billing = \"T.Bill\",\r\n /** View account balances */\r\n Billing_Balances = \"T.Bill.Bal\",\r\n /** Make changes to account balances */\r\n Billing_Balances_Modify = \"T.Bill.Bal.Mod\",\r\n /** Invoice Management */\r\n Billing_Invoicing = \"T.Bill.Inv\",\r\n /** Post, modify or revert invoices */\r\n Billing_Invoicing_Modify = \"T.Bill.Inv.Mod\",\r\n\r\n}\r\n","import { innerFrom } from '../observable/innerFrom';\nimport { Subject } from '../Subject';\nimport { operate } from '../util/lift';\nimport { createOperatorSubscriber } from './OperatorSubscriber';\nexport function retryWhen(notifier) {\n return operate((source, subscriber) => {\n let innerSub;\n let syncResub = false;\n let errors$;\n const subscribeForRetryWhen = () => {\n innerSub = source.subscribe(createOperatorSubscriber(subscriber, undefined, undefined, (err) => {\n if (!errors$) {\n errors$ = new Subject();\n innerFrom(notifier(errors$)).subscribe(createOperatorSubscriber(subscriber, () => innerSub ? subscribeForRetryWhen() : (syncResub = true)));\n }\n if (errors$) {\n errors$.next(err);\n }\n }));\n if (syncResub) {\n innerSub.unsubscribe();\n innerSub = null;\n syncResub = false;\n subscribeForRetryWhen();\n }\n };\n subscribeForRetryWhen();\n });\n}\n","import { Observable, timer, throwError } from 'rxjs';\r\nimport { mergeMap, finalize, } from 'rxjs/operators';\r\nimport { HttpResponse } from '@angular/common/http';\r\n\r\nexport const BackoffRetryStrategy = ({\r\n maxRetryAttempts = 4,\r\n scalingDuration = 1000,\r\n excludeWhen = defaultExclusionFunc\r\n} : {\r\n maxRetryAttempts?: number,\r\n scalingDuration?: number,\r\n excludeWhen?: (response: HttpResponse)=>boolean\r\n} = {}) => (attempts: Observable) => {\r\n return attempts.pipe(\r\n mergeMap((error, i) => {\r\n const retryAttempt = i + 1;\r\n // if maximum number of retries have been met\r\n // or response does not pass the excludeWhen function, throw error\r\n if (retryAttempt > maxRetryAttempts || excludeWhen(error)) {\r\n return throwError(() => error);\r\n }\r\n console.log(\r\n `Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`\r\n );\r\n // retry after 1000ms, 2000ms, 3000ms, etc...\r\n return timer(retryAttempt * scalingDuration);\r\n }), \r\n finalize(() => console.log('Retries are done!'))\r\n );\r\n};\r\n\r\nexport const defaultExclusionFunc = (response: HttpResponse) : boolean => {\r\n if (response.status === 503 || response.status === 429)\r\n return false;\r\n\r\n return true;\r\n};","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent, HttpInterceptor, HttpHandler, HttpRequest\r\n } from '@angular/common/http';\r\n \r\nimport { Observable } from 'rxjs';\r\nimport { retryWhen } from 'rxjs/operators';\r\nimport { BackoffRetryStrategy } from '@Core/Lib/retry-strategy';\r\n\r\n@Injectable()\r\nexport class RetryInterceptor implements HttpInterceptor {\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n return next.handle(req).pipe(retryWhen(BackoffRetryStrategy()));\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent, HttpInterceptor, HttpHandler, HttpRequest\r\n} from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { AuthService } from '@Services/auth-service';\r\n\r\n@Injectable()\r\nexport class ContentTypeInterceptor implements HttpInterceptor {\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n if (!request.headers.has(HttpHeaderNames.ContentType))\r\n request = request.clone({ headers: request.headers.set(HttpHeaderNames.ContentType, 'application/json') });\r\n\r\n if (!request.headers.has(HttpHeaderNames.Accept))\r\n request = request.clone({ headers: request.headers.set(HttpHeaderNames.Accept, 'application/json') });\r\n\r\n return next.handle(request).pipe();\r\n }\r\n\r\n}","import { Observable, timer, throwError } from 'rxjs';\r\nimport { mergeMap, finalize, } from 'rxjs/operators';\r\nimport { HttpResponse } from '@angular/common/http';\r\n\r\n// A strategy to retry a request when the authentication hasn't loaded yet\r\n// (usually due to a 429 or a 503). \r\nexport const NoAuthRetryStrategy = ({\r\n maxRetryAttempts = 4,\r\n scalingDuration = 1000,\r\n excludeWhen = defaultExclusionFunc\r\n} : {\r\n maxRetryAttempts?: number,\r\n scalingDuration?: number,\r\n excludeWhen?: (response: HttpResponse)=>boolean\r\n} = {}) => (attempts: Observable) => {\r\n return attempts.pipe(\r\n mergeMap((error, i) => {\r\n const retryAttempt = i + 1;\r\n // if maximum number of retries have been met\r\n // or response does not pass the excludeWhen function, throw error\r\n if (retryAttempt > maxRetryAttempts || excludeWhen(error)) {\r\n return throwError(() => error);\r\n }\r\n console.log(\r\n `Attempt ${retryAttempt}: retrying in ${retryAttempt * scalingDuration}ms`\r\n );\r\n // retry after 1000ms, 2000ms, 3000ms, etc...\r\n return timer(retryAttempt * scalingDuration);\r\n }),\r\n finalize(() => console.log('Retries are done!'))\r\n );\r\n};\r\n\r\nexport const defaultExclusionFunc = (response: HttpResponse) : boolean => {\r\n // Retry the 401 Unauthorized if we haven't actually loaded the\r\n // authentication yet. \r\n if (response.status === 401)\r\n return false;\r\n \r\n return true;\r\n};","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse\r\n} from '@angular/common/http';\r\n\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, retryWhen } from 'rxjs/operators';\r\n\r\nimport { NoAuthRetryStrategy } from '@Core/Lib/no-auth-retry-strategy';\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { UserInteractionTypes } from '@Core/Lib/Enums/user-interaction-type.enum';\r\n\r\nimport { AuthService } from '@Services/auth-service';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n\r\n private REFRESH_THRESHOLD: number = 15 * 60000;\r\n\r\n constructor(private auth: AuthService) { }\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let expiration: Date = this.auth.getExpiration();\r\n\r\n // If the authentication hasn't loaded (usually due to a 429 or 503), \r\n // we'll get a 401. So retry in the hopes that the authentication \r\n // will load before we retry\r\n if (!this.auth.authLoaded && !expiration && !this.auth.getSubscriptionKey()\r\n && !req.url.endsWith(this.auth.CurrentUserURL) && !req.url.endsWith(this.auth.LogoutURL))\r\n return next.handle(req).pipe(retryWhen(NoAuthRetryStrategy()));\r\n\r\n if (expiration) {\r\n if (new Date() >= expiration && !req.url.endsWith(this.auth.LogoutURL)) {\r\n // Don't make any requests if the token has expired.\r\n console.log(\"Token has expired\", expiration, new Date());\r\n this.auth.logout();\r\n return throwError(() => new HttpErrorResponse({ error: \"Token has expired\" }));\r\n }\r\n\r\n let subscriptionKey:string = this.auth.getSubscriptionKey();\r\n if (subscriptionKey)\r\n {\r\n req = req.clone({\r\n withCredentials: true,\r\n headers: req.headers.set('Ocp-Apim-Subscription-Key', subscriptionKey)\r\n });\r\n }\r\n else\r\n {\r\n req = req.clone({ withCredentials: true });\r\n }\r\n\r\n const interactiveHeader = req.headers.get(HttpHeaderNames.EventInteractionType);\r\n if (new Date() > new Date(expiration.getTime() - this.REFRESH_THRESHOLD) && interactiveHeader !== UserInteractionTypes.Noninteractive) {\r\n // if the token is close to expiring, then refresh it.\r\n this.auth.refresh();\r\n }\r\n }\r\n \r\n return next.handle(req).pipe(catchError(x => this.handleAuthError(x, req)));\r\n }\r\n\r\n private handleAuthError(err: HttpErrorResponse, req: HttpRequest): Observable {\r\n if (err.status === 401) {\r\n // No need to logout, if we were already trying to logout\r\n if (!req.url.endsWith(this.auth.LogoutURL)) {\r\n debugger;\r\n this.auth.logout();\r\n }\r\n return of(err.message);\r\n }\r\n return throwError(() => err);\r\n }\r\n}","/* \"Barrel\" of Http Interceptors */\r\nimport { HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { RetryInterceptor } from './retry-http-interceptor';\r\nimport { ContentTypeInterceptor } from './content-type-http-interceptor';\r\nimport { AuthInterceptor } from './auth-http-interceptor';\r\nimport { LocalProxyRouteInterceptor } from './local-proxy-route-http-interceptor';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n/** Http interceptor providers in outside-in order */\r\nexport const HttpInterceptorProviders = [\r\n { provide: HTTP_INTERCEPTORS, useClass: ContentTypeInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },\r\n { provide: HTTP_INTERCEPTORS, useClass: RetryInterceptor, multi: true },\r\n environment.env === 'local' ? // only include this interceptor in local environments\r\n { provide: HTTP_INTERCEPTORS, useClass: LocalProxyRouteInterceptor, multi: true } : []\r\n];","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpEvent, HttpInterceptor, HttpHandler, HttpRequest, HttpErrorResponse\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n/**\r\n * This interceptor solves two problems in local environments using proxy routes.\r\n *\r\n * 1. It ensures that SPA-initiated requests include \"proxy\".\r\n *\r\n * 2. It handles a 404 caused by a browser-initiated-GET to the\r\n * location header specified by the HTTP server in a 302 response,\r\n * which doesn't include \"proxy\".\r\n */\r\n@Injectable()\r\nexport class LocalProxyRouteInterceptor implements HttpInterceptor {\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n let self = this;\r\n\r\n // Ensures any request URL that doesn't incldue the base URL\r\n // is skipped.\r\n if (!req.url.includes(this.baseUrl)){\r\n return next.handle(req);\r\n }\r\n\r\n // Ensure the request URL includes the base URL (if one applies).\r\n if (this.usingBaseUrl) {\r\n if (req.url.startsWith('http')) { // fully-qualified URL\r\n if (!req.url.includes(self.baseUrl + '/')) {\r\n let fixedUrl = new URL(req.url);\r\n fixedUrl.pathname = self.baseUrl + fixedUrl.pathname;\r\n req = req.clone({\r\n url: fixedUrl.toString()\r\n });\r\n }\r\n }\r\n else if (!req.url.startsWith(self.baseUrl + '/')) { // relative URL\r\n let fixedUrl = self.baseUrl + req.url;\r\n req = req.clone({\r\n url: fixedUrl.toString()\r\n });\r\n }\r\n }\r\n\r\n if (!this.usingBaseUrl) {\r\n // no special handling required.\r\n return next.handle(req);\r\n }\r\n else {\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n let response = error as HttpErrorResponse;\r\n if (response\r\n && response.status === 404 // original URL was not found\r\n && !response.url.includes(self.baseUrl + '/') // The URL is missing part of the base URL\r\n && response.url.startsWith('http')) // must use a non-relative URL\r\n {\r\n let fixedUrl = new URL(response.url);\r\n fixedUrl.pathname = self.baseUrl + fixedUrl.pathname;\r\n req = req.clone({\r\n url: fixedUrl.toString()\r\n });\r\n return next.handle(req);\r\n }\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n }\r\n\r\n private get usingBaseUrl(): boolean {\r\n return this.baseUrl.length > 1;\r\n }\r\n\r\n /** When a proxy is in use, this will contain a value like \"proxy\". */\r\n private get baseUrl(): string {\r\n if (this._baseUrl == null) {\r\n this._baseUrl = environment.applicationEndpoint || \"\";\r\n }\r\n \r\n return this._baseUrl;\r\n }\r\n private _baseUrl: string;\r\n}","import { BaseModel } from '@Core/Lib/model';\r\n\r\nexport abstract class BaseDataContext {\r\n\r\n addOrReplace(model: BaseModel): void {\r\n throw new Error(\"'addOrReplace' must be implemented by the child class\")\r\n }\r\n\r\n has(domainid: string): boolean {\r\n throw new Error(\"'has' must be implemented by the child class\");\r\n }\r\n\r\n get(domainid: string): T {\r\n throw new Error(\"'get' must be implemented by the child class\");\r\n }\r\n\r\n clearAll(){\r\n // This only needs to be overridden for NewDataContexts\r\n }\r\n}","import { BehaviorSubject } from 'rxjs';\r\nimport * as _ from 'lodash';\r\n\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { BaseModel } from '@Core/Lib/model';\r\n\r\nexport class DataStore{\r\n\r\n public values: BehaviorSubject;\r\n\r\n constructor() {\r\n this.values = new BehaviorSubject([]);\r\n }\r\n\r\n\r\n /**\r\n * Causes the internal collection to broadcast new values to subscribers.\r\n * This is useful if the datacontext wishes to delay broadcasting until\r\n * all values are loaded, like during an API serialization.\r\n */\r\n broadcast(): void {\r\n this.values.next(this.values.getValue());\r\n }\r\n\r\n clear(broadcast: boolean = true): void {\r\n let values = this.values.getValue();\r\n // Deletes entire array\r\n values.splice(0)\r\n if (broadcast)\r\n this.values.next(values);\r\n }\r\n\r\n set(values: T[]): void {\r\n this.values.next(values);\r\n }\r\n\r\n get(id: string): T {\r\n var values = this.values.getValue() as BaseModel[];\r\n return _.find(values, { Id: id }) as T;\r\n }\r\n\r\n add(item: T, broadcast: boolean = true): void {\r\n let values = this.values.getValue();\r\n values.push(item);\r\n if (broadcast)\r\n this.values.next(values);\r\n }\r\n\r\n addOrReplace(item: T, broadcast: boolean = true): boolean {\r\n var found: boolean = ModelUtils.addOrReplace(this.values.getValue(), item);\r\n // notify the subscribers\r\n if (broadcast)\r\n this.values.next(this.values.getValue());\r\n return found;\r\n }\r\n\r\n replace(item: T, id?: string, broadcast: boolean = true): void {\r\n let values: BaseModel[] = this.values.getValue();\r\n let index = _.findIndex(values, { Id: (id ? id : item.Id) });\r\n\r\n if (index > -1) {\r\n values.splice(index, 1, item);\r\n if (broadcast)\r\n this.values.next(values as T[]);\r\n }\r\n }\r\n\r\n delete(item: T | string, broadcast: boolean = true): boolean {\r\n var index: number;\r\n\r\n if (!item)\r\n return false;\r\n\r\n let values: BaseModel[] = this.values.getValue();\r\n\r\n if (_.isString(item))\r\n index = _.findIndex(values, { Id: item });\r\n else\r\n index = _.findIndex(values, { Id: item.Id });\r\n\r\n if (index > -1) {\r\n values.splice(index, 1);\r\n if (broadcast)\r\n this.values.next(values as T[]);\r\n return true;\r\n }\r\n return false;\r\n }\r\n}","import * as _ from 'lodash';\r\n\r\nimport { DataStore } from '@Core/Lib/Contexts/data-store';\r\nimport { BaseModel, VertexModel, EdgeModel, DocumentModel } from '@Core/Lib/model';\r\nimport * as ConfigModels from '@Core/CodeGen/Models/configuration.models';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { BaseDataContext } from '@Core/Lib/Contexts/base-data-context';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport abstract class DataContext extends BaseDataContext{\r\n\r\n private stores: Map>; // Key is the domaintype name\r\n private models: Map; // Key is the domaindid of the model\r\n\r\n private _loading = false;\r\n\r\n /**\r\n * When true, datastores do not broadcast changes until loading is set to false, at\r\n * which time all stores broadcast changes if they had any. The loading status is\r\n * ignored when call the set(model, values) method since all values are set in one method.\r\n */\r\n get loading(): boolean {\r\n return this._loading;\r\n }\r\n set loading(value: boolean) {\r\n this._loading = value;\r\n if (value === false) {\r\n this.loadingStores.forEach(storeKey => {\r\n let store = this.stores.get(storeKey);\r\n store.broadcast();\r\n });\r\n // reset the loading stores\r\n this.loadingStores.clear();\r\n }\r\n }\r\n\r\n stopLoadingWithoutBroadcast() {\r\n this._loading = false;\r\n }\r\n\r\n // tracks the stores that have been changed while _loading is set to true\r\n private loadingStores: Set = new Set();\r\n\r\n constructor() {\r\n super();\r\n \r\n this.stores = new Map>();\r\n this.models = new Map();\r\n }\r\n\r\n getStore(type: T): DataStore {\r\n if (!type)\r\n return null;\r\n\r\n if (!this.stores.has(type.DomainType))\r\n this.stores.set(type.DomainType, new DataStore());\r\n\r\n return this.stores.get(type.DomainType) as DataStore;\r\n }\r\n\r\n getStoreValues(type: T): BehaviorSubject {\r\n if (!type)\r\n return null;\r\n\r\n if (!this.stores.has(type.DomainType))\r\n this.stores.set(type.DomainType, new DataStore());\r\n\r\n let dataStore = this.stores.get(type.DomainType) as DataStore;\r\n\r\n return dataStore.values;\r\n\r\n }\r\n\r\n \r\n\r\n has(domainid: string): boolean {\r\n return this.models.has(domainid);\r\n }\r\n\r\n get(domainid: string): T {\r\n return this.models.get(domainid) as T;\r\n }\r\n\r\n getItems(domainids: Set): BaseModel[] {\r\n var arr: BaseModel[] = [];\r\n\r\n domainids.forEach(domainid => {\r\n if (this.has(domainid))\r\n arr.push(this.get(domainid));\r\n });\r\n\r\n return arr;\r\n }\r\n\r\n set(model: T, values: T[]): void {\r\n _.forEach(values, val => this.models.set(val.DomainId, val));\r\n this.getStore(model).set(values);\r\n }\r\n\r\n addOrReplace(model: BaseModel): void {\r\n if (!model.Id)\r\n throw new Error(\"Model did not have an Id value\");\r\n\r\n var existing = this.models.get(model.DomainId);\r\n\r\n if (existing)\r\n this.replace(model);\r\n else\r\n this.add(model);\r\n }\r\n\r\n /**\r\n * This method may be used by service classes to deserialize models from an API response.\r\n * Parameter \"expectedType\" may be any class that extends BaseModel.\r\n */\r\n public loadApiResponseModels(expectedType: new () => T, response: any,\r\n postLoadAction?: () => void, remove?: boolean): T[] {\r\n if (_.isNil(response))\r\n return null;\r\n\r\n var self = this;\r\n self.loading = true;\r\n var body = response._body || response.body || response;\r\n if (_.isString(body))\r\n body = JSON.parse(body);\r\n\r\n var responseContent = body.Content || body;\r\n const models: T[] = [];\r\n\r\n if (_.isArray(responseContent)) {\r\n // Deserialize each object in the array\r\n _.forEach(responseContent, obj => {\r\n if (!remove) {\r\n models.push(self.deserializeSingleObject(expectedType, obj));\r\n } else {\r\n self.remove(ModelUtils.createDomainId(new expectedType(), obj.Id));\r\n }\r\n });\r\n }\r\n else {\r\n if (!remove) {\r\n models.push(self.deserializeSingleObject(expectedType, responseContent));\r\n } else {\r\n self.remove(ModelUtils.createDomainId(new expectedType(), responseContent.Id));\r\n }\r\n }\r\n\r\n self.loading = false;\r\n\r\n if (postLoadAction)\r\n postLoadAction();\r\n return models;\r\n }\r\n\r\n // Use this version if you have models of different types in your response\r\n public loadResponseModels(response: any, postLoadAction?: () => void): BaseModel[] {\r\n if (_.isNil(response))\r\n return null;\r\n\r\n var self = this;\r\n self.loading = true;\r\n var body = response._body || response.body || response;\r\n if (_.isString(body))\r\n body = JSON.parse(body);\r\n \r\n const models: BaseModel[] = [];\r\n var responseContent = body.Content || body;\r\n\r\n if (responseContent && responseContent.length) {\r\n // Deserialize each object in the array\r\n _.forEach(responseContent, obj => {\r\n models.push(this.deserializeSingleObject(ConfigModels[obj['@Type']], obj));\r\n });\r\n }\r\n\r\n self.loading = false;\r\n\r\n if (postLoadAction)\r\n postLoadAction();\r\n\r\n return models;\r\n }\r\n\r\n public deserializeSingleObject(expectedType: { new(): T }, rawObj: any): T {\r\n const model = (new expectedType() as BaseModel).deserialize(rawObj, this);\r\n return model as T;\r\n }\r\n\r\n add(model: BaseModel): void {\r\n if (!model.Id)\r\n throw new Error(\"Model did not have an Id value\");\r\n\r\n this.models.set(model.DomainId, model);\r\n\r\n // Now, update the loadingStores set with the \"store key\" matching the\r\n // type of the \"model\" parameter, as well as each type that is derived from,\r\n // and add the model into the store.\r\n\r\n // Gets the prototype of model to pass into getStore\r\n var parent: BaseModel = this.getParentPrototype(model);\r\n\r\n // parent will not be null as long as model is not a VertexModel, EdgeModel, or BaseModel\r\n while (parent != null) {\r\n this.getStore(parent).add(model, !this.loading);\r\n if (this.loading)\r\n this.loadingStores.add(parent.DomainType);\r\n\r\n // Gets the prototype of the inherited class of parent (see getParentPrototype for more information)\r\n parent = this.getParentPrototype(parent)\r\n }\r\n }\r\n\r\n replace(model: BaseModel): void {\r\n if (!model.Id)\r\n throw new Error(\"Model did not have an Id value\");\r\n\r\n var existing = this.models.get(model.DomainId);\r\n if (!existing)\r\n this.add(model);\r\n\r\n var replaceModel: BaseModel;\r\n if (_.isNil(existing.ObjectVersionNumber) || existing.ObjectVersionNumber <= model.ObjectVersionNumber) {\r\n // If the new model is newer (or the same) as the existing model, merge the edges and put\r\n // it in the store\r\n\r\n if (existing instanceof VertexModel && existing.DomainType == model.DomainType) {\r\n (model as VertexModel).mergeRelationships(existing);\r\n }\r\n replaceModel = model;\r\n } else {\r\n // If the existing object is more recent than the new model,\r\n // take the new models edges and put it onto the existing object\r\n \r\n if (existing instanceof VertexModel && existing.DomainType == model.DomainType) {\r\n // Still take any edges on the new model over the existing model.\r\n // We may need to revisit this in the future\r\n existing.mergeRelationships(model as VertexModel, true);\r\n }\r\n replaceModel = existing;\r\n }\r\n\r\n this.models.set(replaceModel.DomainId, replaceModel);\r\n\r\n // Gets the prototype of model to pass into getStore\r\n var parent: BaseModel = this.getParentPrototype(replaceModel);\r\n\r\n // parent will not be null as long as model is not a VertexModel, EdgeModel, or BaseModel\r\n while (parent != null) {\r\n // If the item was added at a higher level, it may not exist yet in the store.\r\n // I.e. An AccountJournalEntry was added as an Activity before being added as an AccountJournalEntry\r\n this.getStore(parent).addOrReplace(replaceModel, !this.loading);\r\n\r\n // TODO: make sure back references are removed from\r\n // objects in the datastore if the new object\r\n // no longer references them\r\n if (this.loading)\r\n this.loadingStores.add(parent.DomainType);\r\n\r\n // Gets the prototype of the inherited class of parent (see getParentPrototype for more information)\r\n parent = this.getParentPrototype(parent)\r\n }\r\n }\r\n\r\n remove(model: BaseModel | string): void {\r\n if (_.isString(model)) {\r\n model = this.get(model);\r\n\r\n if (model == null)\r\n return;\r\n }\r\n\r\n this.models.delete(model.DomainId);\r\n\r\n if (model instanceof VertexModel) {\r\n // If this is a vertex model we are removing, we need to find all \r\n // edges that are attatched to it and remove them as well\r\n this.models.forEach((value, key, map) => {\r\n if (value instanceof EdgeModel) {\r\n if (value.Out == (model as BaseModel).DomainId || value.In == (model as BaseModel).DomainId) {\r\n this.remove(value);\r\n }\r\n }\r\n });\r\n }\r\n\r\n // Gets the prototype of model to pass into getStore\r\n var parent: BaseModel = this.getParentPrototype(model);\r\n\r\n // parent will not be null as long as model is not a VertexModel, EdgeModel, or BaseModel\r\n while (parent != null) {\r\n this.getStore(parent).delete(model, !this.loading);\r\n\r\n if (this.loading)\r\n this.loadingStores.add(model.DomainType);\r\n\r\n // Gets the prototype of the inherited class of parent (see getParentPrototype for more information)\r\n parent = this.getParentPrototype(parent)\r\n }\r\n }\r\n\r\n clearStore(type: BaseModel, dontBroadcast: boolean = false): void {\r\n if (!type)\r\n return;\r\n\r\n let isloading: boolean = this._loading; // are we currently in a loading state?\r\n\r\n if (!this.stores.has(type.DomainType))\r\n return;\r\n\r\n let store = this.getStore(type);\r\n\r\n if (!isloading)\r\n this.loading = true; // makes sure we are only broadcasting once all items are removed.\r\n\r\n while (store.values.value.length > 0) {\r\n let model = store.values.value[0];\r\n this.remove(model);\r\n }\r\n\r\n if (!isloading){\r\n if (dontBroadcast) {\r\n this.stopLoadingWithoutBroadcast()\r\n } else {\r\n this.loading = false;\r\n }\r\n }\r\n }\r\n\r\n // Gets the Prototype of the object that is passed in\r\n // IE: Passing in an Instantiated TaskFileRequirement would get you a TaskFileRequirement Prototype,\r\n // but passing in the TaskFileRequirement Prototype would give you a Task Prototype.\r\n getParentPrototype(model: BaseModel): BaseModel {\r\n var parent = Object.getPrototypeOf(model);\r\n if (parent.constructor !== EdgeModel && parent.constructor !== VertexModel\r\n && parent.constructor !== DocumentModel && parent.constructor !== BaseModel)\r\n return parent;\r\n else\r\n return null;\r\n }\r\n\r\n public clearAll(broadcast: boolean = true){\r\n this.stores.forEach(d => {\r\n d.clear(broadcast);\r\n });\r\n this.models.clear();\r\n }\r\n\r\n public broadcastAll(){\r\n this.stores.forEach(d => {\r\n d.broadcast();\r\n })\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';\r\n\r\n// TenantContext - Singleton (injectable). Applies to tenant administration.\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class TenantContext extends DataContext {\r\n public isLoaded: boolean = false;\r\n public DataPointTypes: BehaviorSubject<{ name: string, label: string }[]> = new BehaviorSubject<{ name: string, label: string }[]>([]);\r\n\r\n constructor() {\r\n super();\r\n }\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\nimport _ from 'lodash';\r\n\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\n\r\n// UserContext - Singleton (injectable). Applies to the UW dashboard for the logged in user.\r\n// If the user switches tenants, it is assumed that this will be reset.\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class UserContext extends DataContext { \r\n // All data except Accounts\r\n public quickDataLoaded: boolean = false; \r\n // Accounts Loaded tracked separately. we resolve the Accounts data into the context at a separate time\r\n // because it can take a lot longer to load.\r\n public accountsLoaded: boolean = false;\r\n\r\n public everythingLoaded(): boolean {\r\n return this.quickDataLoaded && this.accountsLoaded; \r\n }\r\n \r\n constructor() {\r\n super();\r\n }\r\n}","export enum DateRangeString {\r\n Today = \"Today\",\r\n LastThirtyDays = \"Last 30 days\",\r\n LastSixtyDays = \"Last 60 days\",\r\n LastNinetyDays = \"Last 90 days\",\r\n ThisWeek = \"This Week\",\r\n LastWeek = \"Last Week\",\r\n ThisMonth = \"This Month\",\r\n LastMonth = \"Last Month\",\r\n ThisQuarter = \"This Quarter\"\r\n}","export enum EditableStateEnum {\r\n None = \"None\",\r\n View = \"View\",\r\n Edit = \"Edit\"\r\n}","export class HttpHeaderNames\r\n{\r\n // NOTE: Un-comment these properties as needed. The un-referenced properties\r\n // were left commented to reduce the size of the minified class.\r\n // You may also need to update the CORS policy on the server to make\r\n // these visible to this application. (CorsPolicyBuilder.WithExposedHeaders(...))\r\n\r\n public static Accept: string = 'Accept';\r\n // public static IfMatch: string = 'If-Match';\r\n // public static IfModifiedSince: string = 'If-Modified-Since';\r\n // public static IfNoneMatch: string = 'If-None-Match';\r\n // public static IfRange: string = 'If-Range';\r\n // public static IfUnmodifiedSince: string = 'If-Unmodified-Since';\r\n // public static LastModified: string = 'Last-Modified';\r\n public static Location: string = 'Location';\r\n // public static MaxForwards: string = 'Max-Forwards';\r\n // public static Method: string = ':method';\r\n // public static Origin: string = 'Origin';\r\n // public static Path: string = ':path';\r\n // public static Pragma: string = 'Pragma';\r\n // public static ProxyAuthenticate: string = 'Proxy-Authenticate';\r\n // public static ProxyAuthorization: string = 'Proxy-Authorization';\r\n // public static Host: string = 'Host';\r\n // public static Range: string = 'Range';\r\n public static RetryAfter: string = 'Retry-After';\r\n // public static Scheme: string = ':scheme';\r\n // public static Server: string = 'Server';\r\n // public static SetCookie: string = 'Set-Cookie';\r\n // public static Status: string = ':status';\r\n // public static StrictTransportSecurity: string = 'Strict-Transport-Security';\r\n // public static TE: string = 'TE';\r\n // public static Trailer: string = 'Trailer';\r\n // public static TransferEncoding: string = 'Transfer-Encoding';\r\n // public static Upgrade: string = 'Upgrade';\r\n // public static UserAgent: string = 'User-Agent';\r\n // public static Vary: string = 'Vary';\r\n // public static Via: string = 'Via';\r\n // public static Warning: string = 'Warning';\r\n // public static Referer: string = 'Referer';\r\n // public static From: string = 'From';\r\n // public static Expect: string = 'Expect';\r\n // public static Expires: string = 'Expires';\r\n // public static AcceptCharset: string = 'Accept-Charset';\r\n // public static AcceptEncoding: string = 'Accept-Encoding';\r\n // public static AcceptLanguage: string = 'Accept-Language';\r\n // public static AcceptRanges: string = 'Accept-Ranges';\r\n // public static AccessControlAllowCredentials: string = 'Access-Control-Allow-Credentials';\r\n // public static AccessControlAllowHeaders: string = 'Access-Control-Allow-Headers';\r\n // public static AccessControlAllowMethods: string = 'Access-Control-Allow-Methods';\r\n // public static AccessControlAllowOrigin: string = 'Access-Control-Allow-Origin';\r\n // public static AccessControlExposeHeaders: string = 'Access-Control-Expose-Headers';\r\n // public static AccessControlMaxAge: string = 'Access-Control-Max-Age';\r\n // public static AccessControlRequestHeaders: string = 'Access-Control-Request-Headers';\r\n // public static AccessControlRequestMethod: string = 'Access-Control-Request-Method';\r\n // public static Age: string = 'Age';\r\n // public static Allow: string = 'Allow';\r\n // public static Authority: string = ':authority';\r\n public static Authorization: string = 'Authorization';\r\n // public static CacheControl: string = 'Cache-Control';\r\n // public static ETag: string = 'ETag';\r\n // public static Date: string = 'Date';\r\n // public static Cookie: string = 'Cookie';\r\n public static ContentType: string = 'Content-Type';\r\n // public static ContentSecurityPolicyReportOnly: string = 'Content-Security-Policy-Report-Only';\r\n // public static ContentSecurityPolicy: string = 'Content-Security-Policy';\r\n // public static WebSocketSubProtocols: string = 'Sec-WebSocket-Protocol';\r\n // public static ContentRange: string = 'Content-Range';\r\n // public static ContentLocation: string = 'Content-Location';\r\n // public static ContentLength: string = 'Content-Length';\r\n // public static ContentLanguage: string = 'Content-Language';\r\n // public static ContentEncoding: string = 'Content-Encoding';\r\n public static ContentDisposition: string = 'Content-Disposition';\r\n // public static Connection: string = 'Connection';\r\n // public static ContentMD5: string = 'Content-MD5';\r\n // public static WWWAuthenticate: string = 'WWW-Authenticate';\r\n public static ApimSubscriptionKey: string = 'Ocp-Apim-Subscription-Key';\r\n public static EventInteractionType: string = 'X-UW-Event-Interaction-Type';\r\n}","// Not quite an enum, but close\r\n\r\nimport _ from \"lodash\";\r\n\r\n\r\nexport interface LocationVM {\r\n Name: string;\r\n Abbreviation: string;\r\n}\r\n\r\nexport class US_States {\r\n\r\n public static getStates(): LocationVM[] {\r\n return [\r\n { Abbreviation: 'AK', Name: 'Alaska'},\r\n { Abbreviation: 'AL', Name: 'Alabama'},\r\n { Abbreviation: 'AR', Name: 'Arkansas'},\r\n { Abbreviation: 'AZ', Name: 'Arizona'},\r\n { Abbreviation: 'CA', Name: 'California'},\r\n { Abbreviation: 'CO', Name: 'Colorado'},\r\n { Abbreviation: 'CT', Name: 'Connecticut'},\r\n { Abbreviation: 'DC', Name: 'District of Columbia'},\r\n { Abbreviation: 'DE', Name: 'Delaware'},\r\n { Abbreviation: 'FL', Name: 'Florida'},\r\n { Abbreviation: 'GA', Name: 'Georgia'},\r\n { Abbreviation: 'HI', Name: 'Hawaii'},\r\n { Abbreviation: 'IA', Name: 'Iowa'},\r\n { Abbreviation: 'ID', Name: 'Idaho'},\r\n { Abbreviation: 'IL', Name: 'Illinois'},\r\n { Abbreviation: 'IN', Name: 'Indiana'},\r\n { Abbreviation: 'KS', Name: 'Kansas'},\r\n { Abbreviation: 'KY', Name: 'Kentucky'},\r\n { Abbreviation: 'LA', Name: 'Louisiana'},\r\n { Abbreviation: 'MA', Name: 'Massachusetts'},\r\n { Abbreviation: 'MD', Name: 'Maryland'},\r\n { Abbreviation: 'ME', Name: 'Maine'},\r\n { Abbreviation: 'MI', Name: 'Michigan'},\r\n { Abbreviation: 'MN', Name: 'Minnesota'},\r\n { Abbreviation: 'MO', Name: 'Missouri'},\r\n { Abbreviation: 'MS', Name: 'Mississippi'},\r\n { Abbreviation: 'MT', Name: 'Montana'},\r\n { Abbreviation: 'NC', Name: 'North Carolina'},\r\n { Abbreviation: 'ND', Name: 'North Dakota'},\r\n { Abbreviation: 'NE', Name: 'Nebraska'},\r\n { Abbreviation: 'NH', Name: 'New Hampshire'},\r\n { Abbreviation: 'NJ', Name: 'New Jersey'},\r\n { Abbreviation: 'NM', Name: 'New Mexico'},\r\n { Abbreviation: 'NV', Name: 'Nevada'},\r\n { Abbreviation: 'NY', Name: 'New York'},\r\n { Abbreviation: 'OH', Name: 'Ohio'},\r\n { Abbreviation: 'OK', Name: 'Oklahoma'},\r\n { Abbreviation: 'OR', Name: 'Oregon'},\r\n { Abbreviation: 'PA', Name: 'Pennsylvania'},\r\n { Abbreviation: 'RI', Name: 'Rhode Island'},\r\n { Abbreviation: 'SC', Name: 'South Carolina'},\r\n { Abbreviation: 'SD', Name: 'South Dakota'},\r\n { Abbreviation: 'TN', Name: 'Tennessee'},\r\n { Abbreviation: 'TX', Name: 'Texas'},\r\n { Abbreviation: 'UT', Name: 'Utah'},\r\n { Abbreviation: 'VA', Name: 'Virginia'},\r\n { Abbreviation: 'VT', Name: 'Vermont'},\r\n { Abbreviation: 'WA', Name: 'Washington'},\r\n { Abbreviation: 'WI', Name: 'Wisconsin'},\r\n { Abbreviation: 'WV', Name: 'West Virginia'},\r\n { Abbreviation: 'WY', Name: 'Wyoming'}\r\n ];\r\n } \r\n}\r\n\r\nexport class CAN_Province_Territories {\r\n\r\n public static getProvincesAndTerritories(): LocationVM[] {\r\n return [\r\n { Abbreviation: 'AB', Name: 'Alberta'},\r\n { Abbreviation: 'BC', Name: 'British Columbia'},\r\n { Abbreviation: 'MB', Name: 'Manitoba'},\r\n { Abbreviation: 'NB', Name: 'New Brunswick'},\r\n { Abbreviation: 'NL', Name: 'Newfoundland and Labrador'},\r\n { Abbreviation: 'NS', Name: 'Nova Scotia'},\r\n { Abbreviation: 'ON', Name: 'Ontario'},\r\n { Abbreviation: 'PE', Name: 'Prince Edward Island'},\r\n { Abbreviation: 'QC', Name: 'Quebec'},\r\n { Abbreviation: 'SK', Name: 'Saskatchewan'},\r\n ];\r\n } \r\n}","export enum TimerType {\r\n SLA = \"SLA\",\r\n Deadline = \"Deadline\"\r\n}","export enum UserInteractionTypes {\r\n Interactive = \"interactive\",\r\n Noninteractive = \"noninteractive\",\r\n}\r\n","import { ContractDate, DateTimeComponent, TimeSpan } from \"@Core/Lib/contract-date\";\r\nimport _ from \"lodash\";\r\n\r\nexport class ContractDateUtils\r\n{\r\n public static convertToDate(contractDate: ContractDate): Date {\r\n if (_.isNil(contractDate) )\r\n return null;\r\n return new Date(contractDate.Year, contractDate.Month, contractDate.Day);\r\n }\r\n\r\n public static convertFromDate(date: Date): ContractDate {\r\n if (_.isNil(date))\r\n return null;\r\n return new ContractDate(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n\r\n /**\r\n * Returns a new ContractDate created by adding the short-hand timePeriod to the given date.\r\n * @param date starting date\r\n * @param timePeriod short-hand time period expressed as a number followed by 'd', 'm', or 'y'\r\n */\r\n public static addTimePeriod(date: ContractDate, timePeriod: string) {\r\n if (_.isNil(date) || _.isNil(timePeriod))\r\n return date;\r\n\r\n let unit = timePeriod.slice(-1);\r\n var period = Number(timePeriod.slice(0, -1));\r\n\r\n let dateTimePeriod: DateTimeComponent;\r\n if (unit === 'y')\r\n dateTimePeriod = DateTimeComponent.Years;\r\n else if (unit === 'm')\r\n dateTimePeriod = DateTimeComponent.Months;\r\n else if (unit === 'd')\r\n dateTimePeriod = DateTimeComponent.Days;\r\n else {\r\n console.error(\"Time Period is not in the correct format (1-3 numbers followed by a 'y', 'm', or 'd'\");\r\n return date;\r\n }\r\n\r\n return date.Add(new TimeSpan(period, dateTimePeriod));\r\n }\r\n}\r\n","import _ from \"lodash\";\r\nimport { DateTimeComponent, TimeSpan } from \"../contract-date\";\r\nimport { DateRangeString } from '@Core/Lib/Enums/date-range-string-enum';\r\nimport { ContractDateUtils } from \"./contract-date-utils\";\r\n\r\nexport class DateUtils {\r\n static addHours(date:Date, hours: number): Date{\r\n date.setTime(date.getTime() + (hours * 60 * 60 *1000));\r\n return date;\r\n }\r\n\r\n static getShortYear(date:Date): string{\r\n return date.getUTCFullYear().toString().substring(-2);\r\n }\r\n\r\n static isSameDate(date1: Date, date2: Date) {\r\n var firstDate = new Date(date1);\r\n var secondDate = new Date(date2);\r\n return firstDate.getUTCFullYear() == secondDate.getUTCFullYear() &&\r\n firstDate.getUTCMonth() == secondDate.getUTCMonth() &&\r\n firstDate.getUTCDate() == secondDate.getUTCDate();\r\n }\r\n\r\n static isAfterDate(date1: Date, date2: Date) {\r\n var firstDate = new Date(date1);\r\n var secondDate = new Date(date2);\r\n\r\n return firstDate.getUTCFullYear() > secondDate.getUTCFullYear() \r\n || (firstDate.getUTCFullYear() == secondDate.getUTCFullYear() \r\n && firstDate.getUTCMonth() > secondDate.getUTCMonth()) \r\n || (firstDate.getUTCFullYear() == secondDate.getUTCFullYear() \r\n && firstDate.getUTCMonth() == secondDate.getUTCMonth() \r\n && firstDate.getUTCDate() > secondDate.getUTCDate()\r\n );\r\n\r\n }\r\n\r\n static convertDateRangeToString(range: DateRange): string {\r\n return range.StartDate.toLocaleDateString() + ' - ' + range.EndDate.toLocaleDateString();\r\n }\r\n\r\n public static Add(date: Date, timeSpan: TimeSpan): Date {\r\n if (!timeSpan)\r\n throw new Error(\"TimeSpan argument cannot be null.\");\r\n if (!date)\r\n return null;\r\n\r\n let newDate: Date = new Date(date);\r\n switch (timeSpan.Units) {\r\n // Years and Months have to be handled differently\r\n // because we can't convert those to a number of days.\r\n case DateTimeComponent.Years:\r\n newDate.setFullYear(newDate.getFullYear() + timeSpan.Value);\r\n break;\r\n case DateTimeComponent.Months:\r\n newDate.setMonth(newDate.getMonth() + timeSpan.Value);\r\n break;\r\n default:\r\n let days = Math.round(timeSpan.getTotalDays());\r\n newDate.setDate(newDate.getDate() + days);\r\n break;\r\n }\r\n\r\n return new Date(newDate.getFullYear(), newDate.getMonth(), newDate.getDate());\r\n }\r\n\r\n public static AddTimePeriod(date: Date, timePeriod: string): Date {\r\n if (!timePeriod)\r\n throw new Error(\"timePeriod argument cannot be null.\");\r\n\r\n let newDate: Date = new Date(date);\r\n var contractDate = ContractDateUtils.convertFromDate(newDate);\r\n contractDate = ContractDateUtils.addTimePeriod(contractDate, timePeriod);\r\n\r\n return ContractDateUtils.convertToDate(contractDate);\r\n }\r\n\r\n // Convert a date into the format YYYY-MM-DD for html date inputs\r\n public static ConvertForDateInput(date: Date): string {\r\n if (!date)\r\n return null;\r\n return date.getFullYear() + \"-\" + String(date.getMonth() + 1).padStart(2, '0') + \"-\" + String(date.getDate()).padStart(2, '0');\r\n }\r\n\r\n // Convert the output of a date input YYYY-MM-DD back to a Date\r\n public static ConvertInputStringToDate(dateStr: string): Date {\r\n if (_.isNil(dateStr))\r\n return null;\r\n\r\n var split = dateStr.split('-');\r\n\r\n return new Date(Number(split[0]), Number(split[1]) - 1, Number(split[2]));\r\n }\r\n\r\n public static ConvertDateRangeStringToDateRange(dateRangeString: DateRangeString) : DateRange {\r\n const currentDate: Date = new Date();\r\n\r\n let dateRange = {\r\n StartDate: null, \r\n EndDate: null\r\n };\r\n\r\n if (dateRangeString === DateRangeString.Today) {\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-1, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.LastThirtyDays) {\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-30, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.LastSixtyDays) {\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-60, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.LastNinetyDays) {\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-90, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.ThisWeek) {\r\n let currentDayOfWeek = currentDate.getDay();\r\n let daysUntilCurrentDay: number = currentDayOfWeek - 1; // 1 is Monday which represents the start of UW week\r\n if (daysUntilCurrentDay == -1) {\r\n daysUntilCurrentDay = 6;\r\n }\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-daysUntilCurrentDay, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.LastWeek) {\r\n let currentDayOfWeek: number = currentDate.getDay();\r\n let daysUntilCurrentDay: number = currentDayOfWeek - 1; // 1 is Monday which represents the start of UW week\r\n if (daysUntilCurrentDay == -1) {\r\n daysUntilCurrentDay = 6;\r\n }\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-daysUntilCurrentDay - 8, DateTimeComponent.Days));\r\n dateRange.EndDate = this.Add(currentDate, new TimeSpan(-daysUntilCurrentDay - 1, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.ThisMonth) {\r\n dateRange.StartDate = this.Add(currentDate, new TimeSpan(-1, DateTimeComponent.Months));\r\n }\r\n else if (dateRangeString === DateRangeString.LastMonth) {\r\n let thisMonth: Date = new Date(currentDate.getFullYear(), currentDate.getMonth(), 1);\r\n dateRange.StartDate = this.Add(thisMonth, new TimeSpan(-1, DateTimeComponent.Months));\r\n dateRange.EndDate = this.Add(thisMonth, new TimeSpan(-1, DateTimeComponent.Days));\r\n }\r\n else if (dateRangeString === DateRangeString.ThisQuarter) {\r\n let monthsToBeginningOfQuarter = (currentDate.getMonth() + 2) % 3;\r\n\r\n dateRange.StartDate = new Date(currentDate.getFullYear(), currentDate.getMonth() - monthsToBeginningOfQuarter, 1);\r\n }\r\n\r\n if (dateRange.StartDate != null)\r\n return dateRange;\r\n\r\n return null;\r\n }\r\n}\r\n\r\n\r\nexport interface DateRange {\r\n StartDate: Date;\r\n EndDate?: Date;\r\n}","export class FormatUtils {\r\n\r\n public static getThousandSeparator(): string {\r\n if (typeof Intl !== 'object') {\r\n return ','; // fallback\r\n }\r\n\r\n // We assume the locale is using 3 digits between the thousand separator,\r\n // so if a language isn't using thousand separators, we will have to rethink this solution\r\n // Note: Spain only puts the thousand separator once there is more than 4 digits\r\n const formattedThousand = new Intl.NumberFormat(navigator.language).format(10000); \r\n return formattedThousand.charAt(2);\r\n }\r\n\r\n public static getDecimalMarker(): string {\r\n if (typeof Intl !== 'object') {\r\n return '.'; // fallback\r\n }\r\n const fomattedDecimal = new Intl.NumberFormat(navigator.language).format(1.1);\r\n return fomattedDecimal.charAt(1);\r\n }\r\n\r\n public static reverseFormatDecimal(value: string): number {\r\n var thousandSeparator = FormatUtils.getThousandSeparator();\r\n var decimalMarker = FormatUtils.getDecimalMarker();\r\n var input = value.split(thousandSeparator).join(\"\").replace(decimalMarker, '.');\r\n return parseFloat(input);\r\n }\r\n\r\n public static reverseFormatInteger(value: string): number {\r\n var thousandSeparator = FormatUtils.getThousandSeparator();\r\n var decimalMarker = FormatUtils.getDecimalMarker();\r\n var input = value.split(thousandSeparator).join('').replace(decimalMarker, '.');\r\n return parseInt(input);\r\n }\r\n}","import { BaseModel, VertexModel, EdgeModel, IModelValidationError } from '@Core/Lib/model';\r\nimport { BaseDataContext } from '@Core/Lib/Contexts/base-data-context';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\n\r\n\r\nimport * as _ from 'lodash';\r\nimport { ContractDate } from '../contract-date';\r\nexport class ModelUtils {\r\n\r\n /**\r\n * Identifies if a given item with the same Id exists in the given array. If the item is present\r\n * in the array then it is replaced. If not present it is appended to the end of the array.\r\n * Return false if the item was added and true it is was replaced.\r\n * @param array Array of BaseModels\r\n * @param item The BaseModel to be added or to replace the existing\r\n */\r\n static addOrReplace(array: BaseModel[], item: BaseModel): boolean {\r\n var index: number = _.findIndex(array, { Id: item.Id });\r\n\r\n if (index == -1) {\r\n array.push(item);\r\n return false;\r\n }\r\n else {\r\n array.splice(index, 1, item);\r\n return true;\r\n }\r\n }\r\n\r\n /**\r\n * Creates a DomainId (domain#rid) from a given model object and an Id\r\n * @param model\r\n * @param Id\r\n */\r\n static createDomainId(model: BaseModel, Id: string): string {\r\n if (!model || !Id)\r\n return null;\r\n return model.Domain + \"#\" + Id;\r\n }\r\n\r\n /**\r\n * Parsed a given DomainId and returns the portion after the #\r\n * @param domainId\r\n */\r\n static getIdFromDomainId(domainId: string): string {\r\n if (!domainId)\r\n return domainId; // return what was given\r\n\r\n let index = domainId.indexOf('#');\r\n\r\n // make sure the string has a #\r\n if (index == -1)\r\n return domainId; // return what was given\r\n\r\n // make sure the # wasn't the last character\r\n if (index < domainId.length - 1)\r\n return domainId.substring(index + 1);\r\n\r\n return domainId; // otherwise, return what was given\r\n }\r\n\r\n /**\r\n * Retrieves the data property of each vertex on the opposite end of the relationship\r\n * @param model the Vertex that owns the relationship\r\n * @param relationship the name of the relationship to traverse\r\n * @param context the DataContext that houses the data\r\n */\r\n static getVertexDataFromEdges(model: VertexModel, relationship: string, context: DataContext): any[] {\r\n let results: any[] = [];\r\n\r\n let edges = context.getItems(model[relationship]);\r\n\r\n _.forEach(edges, edge => {\r\n var vertex = context.get(edge[relationship]);\r\n\r\n if (vertex)\r\n results.push(vertex.data);\r\n });\r\n\r\n return results;\r\n }\r\n\r\n static getVertexIdsFromEdges(model: VertexModel, relationship: string, context: DataContext): string[] {\r\n let results: string[] = [];\r\n\r\n let edges = context.getItems(model[relationship]);\r\n\r\n _.forEach(edges, edge => {\r\n let vertexid = edge[relationship];\r\n if (vertexid)\r\n results.push(vertexid);\r\n });\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Takes an edge and returns a POJO that matches our standard Web Api format from the perspective of the\r\n * given relationship name.\r\n * @param edge\r\n * @param relationshipName\r\n * @param context\r\n * @param apiKeyName if the edge connects the vertex to a vertex using an apikey, \r\n * then that vertex's apikeyname must be supplied to serialize it properly.\r\n * @param domainType if apiKey is used, apiKeyDomainType should also be specified, \r\n * so that it can be stripped from the id as part of serialization.\r\n * i.e. Tenant#User:testkey should be converted to \"testkey\" by specififying \"User\" in apiKeyDomainType.\r\n */\r\n static serializeShallowEdge(edges: EdgeModel[], relationshipName: string) {\r\n // return undefined for edges that are not explicitly set\r\n if (edges === null) {\r\n return undefined;\r\n }\r\n const serializedEdgeArray = [];\r\n for (const edge of edges) {\r\n if (!edge) continue;\r\n let data = _.omit(edge.data, [\"In\", \"Out\", \"Id\"]);\r\n\r\n if (edge.Id)\r\n data[\"@RelationshipId\"] = edge.Id;\r\n if (!edge[relationshipName]())\r\n continue;\r\n\r\n let opposingVertex: VertexModel = edge[relationshipName]() as VertexModel;\r\n\r\n let id = ModelUtils.getIdFromDomainId(opposingVertex.DomainId);\r\n const apiKeyName: string = opposingVertex._APIKEY;\r\n if (apiKeyName) {\r\n id = this.getIdFromApiKey(id);\r\n }\r\n\r\n let opposingData = { [apiKeyName || \"Id\"]: id };\r\n opposingData[\"@Type\"] = opposingVertex.Type;\r\n\r\n data[\"@Relationship\"] = opposingData;\r\n serializedEdgeArray.push(data);\r\n }\r\n\r\n return serializedEdgeArray;\r\n }\r\n\r\n /**\r\n * Takes a list of models and returns an array of deep clones of their underlying data\r\n * @param models\r\n */\r\n static getDataFromListOfModels(models: BaseModel[]): any[] {\r\n let results: any[] = [];\r\n\r\n _.forEach(models, model => {\r\n results.push(_.cloneDeep(model.data));\r\n });\r\n\r\n return results;\r\n }\r\n\r\n /**\r\n * Remove undefined properties from model\r\n * @param models\r\n */\r\n static removePropertiesSetToUndefined(obj: object) {\r\n for (var propName in obj) {\r\n if (obj[propName] === undefined) {\r\n delete obj[propName];\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Get the Id from an API key\r\n * @param id\r\n */\r\n static getIdFromApiKey(id: string) {\r\n if (!id) return null;\r\n return id.substring(id.indexOf(':') + 1);\r\n }\r\n\r\n static extractModelErrors(errorContainer: any): IModelValidationError[] {\r\n if (errorContainer && errorContainer.error) {\r\n errorContainer = errorContainer.error;\r\n }\r\n if (errorContainer && errorContainer.Errors) {\r\n return _.filter(errorContainer.Errors, err => err.Path);\r\n }\r\n }\r\n\r\n static getTaskType(task: BaseModel) {\r\n // Removes Task from the Type, adds spaces before every Uppercase letter, then trims leading and trailing spaces\r\n return task.Type.substring(4).replace(/([A-Z])/g, ' $1').trim();\r\n }\r\n\r\n /** Create a POJO (with a 1-based Month) from a ContractDate. */\r\n public static serializeContractDate(date: ContractDate): any {\r\n if (date instanceof ContractDate)\r\n return date.toJSON();\r\n\r\n // Not a ContractDate; just return it. (Could be nil or already serialized.)\r\n return date;\r\n }\r\n\r\n /** Create a ContractDate from a serialized representation (with a 1-based Month). */\r\n public static deserializeContractDate(rawDate: any): ContractDate {\r\n if (_.isNil(rawDate) || rawDate instanceof ContractDate)\r\n return rawDate;\r\n\r\n if (_.isString(rawDate))\r\n rawDate = JSON.parse(rawDate)\r\n\r\n if (rawDate.Year && rawDate.Month && rawDate.Day)\r\n return new ContractDate(rawDate.Year, rawDate.Month - 1, rawDate.Day);\r\n\r\n return null;\r\n }\r\n\r\n static deserializeVertex(model: T, input: Object, datacontext: BaseDataContext,\r\n inRelationships: EdgeRelationship[], outRelationships: EdgeRelationship[], superDeserialize: (input, datacontext) => void): T {\r\n if (!input)\r\n return model;\r\n if (model.Type !== input['@Type']) {\r\n let derivedTypes = (model.constructor as typeof VertexModel).DerivedTypes;\r\n let derivedType = derivedTypes.find(t => t.className === input['@Type']);\r\n if (!derivedType) {\r\n throw `Could not find a derived type of ${input['@Type']} for base type ${model.Type} in domain ${model.Domain}`;\r\n }\r\n const derivedModel = derivedType.type;\r\n model = new derivedModel() as T;\r\n model.deserialize(input, datacontext);\r\n return model;\r\n }\r\n let domainId: string;\r\n // The domainId hasn't been parsed yet, so we use the modelutils version here\r\n if (model._APIKEY) {\r\n domainId = ModelUtils.createDomainId(model, model.Type + \":\" + input[\"#Key\"]);\r\n } else {\r\n domainId = ModelUtils.createDomainId(model, input[\"Id\"]);\r\n }\r\n\r\n var otherVerticesToDeserialize: { type: new () => BaseModel, vertex: any}[] = []; \r\n var existingModel = datacontext.get(domainId);\r\n for (const inRel of inRelationships) {\r\n var inVerticesToDeserialize = this.deserializeRelationships(inRel, input, datacontext, model, domainId, true, existingModel);\r\n otherVerticesToDeserialize = otherVerticesToDeserialize.concat(inVerticesToDeserialize);\r\n }\r\n for (const outRel of outRelationships) {\r\n var outVerticesToDeserialize = this.deserializeRelationships(outRel, input, datacontext, model, domainId, false, existingModel);\r\n otherVerticesToDeserialize = otherVerticesToDeserialize.concat(outVerticesToDeserialize);\r\n\r\n }\r\n if (model._APIKEY) {\r\n input[\"Id\"] = model.Type + \":\" + input[\"#Key\"];\r\n }\r\n superDeserialize.bind(model, input, datacontext)();\r\n\r\n // If there were any deep edges, we waited until after to deserialize the other vertex\r\n // so we don't mess with the edge deserialization. Deserialize those vertices now.\r\n _.forEach(otherVerticesToDeserialize, vertex => {\r\n new vertex.type().deserialize(vertex.vertex, datacontext); \r\n });\r\n return model;\r\n }\r\n\r\n static deserializeEdge(model: T, input: any, datacontext: BaseDataContext,\r\n superDeserialize: (input, datacontext) => void): T {\r\n if (!input)\r\n return model;\r\n\r\n if (model.Type !== input['@Type']) {\r\n let derivedTypes = (model.constructor as typeof EdgeModel).DerivedTypes;\r\n let derivedType = derivedTypes.find(t => t.className === input['@Type']);\r\n if (!derivedType) {\r\n throw `Could not find a derived type of ${input['@Type']} for base type ${model.Type} in domain ${model.Domain}`;\r\n }\r\n const derivedModel = derivedType.type;\r\n model = new derivedModel() as T;\r\n model.deserialize(input, datacontext);\r\n return model;\r\n }\r\n\r\n var id = input[\"Id\"] ?? input[\"@RelationshipId\"];\r\n let domainId: string = ModelUtils.createDomainId(model, id);\r\n\r\n var existingModel = datacontext.get(domainId);\r\n\r\n if (!existingModel || \r\n !existingModel.ObjectVersionNumber ||\r\n existingModel.ObjectVersionNumber < model.ObjectVersionNumber) {\r\n var inVertexId = input.InIdPair?.Id;\r\n var inVertexDomainId = ModelUtils.createDomainId(model, inVertexId);\r\n model.In = inVertexDomainId;\r\n if (inVertexId) {\r\n var inVertex = datacontext.get(inVertexDomainId) as VertexModel;\r\n if (inVertex) {\r\n var rel = _.find(inVertex.inRelationships, rel => model instanceof rel.edgeType);\r\n let _propertyName = `_${rel.propertyName}`;\r\n if (!inVertex[_propertyName].has(domainId))\r\n inVertex[_propertyName].add(domainId);\r\n }\r\n \r\n }\r\n \r\n var outVertexId = input.OutIdPair?.Id;\r\n var outVertexDomainId = ModelUtils.createDomainId(model, outVertexId);\r\n model.Out = outVertexDomainId;\r\n if (outVertexId) {\r\n var outVertex = datacontext.get(outVertexDomainId) as VertexModel;\r\n if (outVertex) {\r\n var rel = _.find(outVertex.outRelationships, rel => model instanceof rel.edgeType);\r\n let _propertyName = `_${rel.propertyName}`;\r\n if (!outVertex[_propertyName].has(domainId))\r\n outVertex[_propertyName].add(domainId);\r\n } \r\n }\r\n }\r\n\r\n superDeserialize.bind(model, input, datacontext)();\r\n\r\n return model;\r\n }\r\n\r\n private static deserializeRelationships(rel: EdgeRelationship, input: object, baseDataContext: BaseDataContext, \r\n model: BaseModel, domainId: string, inRelationship: boolean, existingModel: BaseModel): any[] {\r\n let propertyName = rel.propertyName;\r\n let _propertyName = `_${propertyName}`;\r\n let property = input[propertyName];\r\n let oppositePropertyName = rel.otherVertexPropertyName; \r\n var otherVerticesToDeserialize : { type: new () => BaseModel, vertex: any}[] = []; \r\n\r\n if (property) {\r\n delete input[propertyName];\r\n if (_.isArray(property) && baseDataContext) {\r\n var oldEdgeIds = (existingModel ? existingModel[_propertyName] : new Set()) as Set;\r\n // Clear out existing relationships of this type\r\n model[_propertyName] = new Set();\r\n _.forEach(property, obj => {\r\n let edgeModel = new rel.edgeType();\r\n let edge = edgeModel.deserialize(obj, baseDataContext);\r\n let relationship = obj['@Relationship'];\r\n if (relationship) {\r\n const vertexObject = rel.otherVertexType.DerivedTypes.find(t => t.className === relationship['@Type']);\r\n let vertexModel: new () => BaseModel;\r\n if (!vertexObject) {\r\n vertexModel = rel.otherVertexType as any;\r\n } else {\r\n vertexModel = vertexObject.type;\r\n }\r\n\r\n // does this relationship have any properties other than Id and @Type?\r\n if (_.keys(relationship).length > 2) {\r\n otherVerticesToDeserialize.push({ type: vertexModel, vertex: relationship});\r\n edge[_propertyName] = ModelUtils.createDomainId(new vertexModel() as BaseModel, relationship.Id);\r\n }\r\n else {\r\n // just record the reference to the other vertex\r\n edge[_propertyName] = ModelUtils.createDomainId(new vertexModel() as BaseModel, relationship.Id); \r\n }\r\n\r\n // create the back reference on the other vertex if it is not already there.\r\n if (baseDataContext.has(edge[_propertyName])) {\r\n var backref = baseDataContext.get(edge[_propertyName]);\r\n if (backref && !backref[`_${oppositePropertyName}`].has(edge.DomainId))\r\n backref[`_${oppositePropertyName}`].add(edge.DomainId);\r\n }\r\n }\r\n // Set the back reference on the edge\r\n edge[`_${oppositePropertyName}`] = domainId;\r\n\r\n // add the edge to the relationship set\r\n if (!model[_propertyName].has(edge.DomainId))\r\n model[_propertyName].add(edge.DomainId);\r\n \r\n oldEdgeIds.delete(edge.DomainId);\r\n });\r\n\r\n // Any old edge ids that were not included in the new set should be removed\r\n // from the context. \r\n _.forEach(Array.from(oldEdgeIds), id => {\r\n (baseDataContext as DataContext)?.remove(id);\r\n });\r\n }\r\n } else {\r\n if (existingModel && existingModel[_propertyName] && existingModel[_propertyName].length) {\r\n model[_propertyName] = existingModel[_propertyName]; \r\n } else {\r\n var dataContext = baseDataContext as DataContext;\r\n if (dataContext && dataContext.getStore) {\r\n var edgeStore = dataContext.getStore(new rel.edgeType); \r\n \r\n // Filter the edges where the Id matches on the correct side of the edge\r\n var foundEdges = edgeStore.values.value.filter(e => (e.In == domainId && inRelationship) \r\n || (e.Out == domainId && !inRelationship));\r\n if (foundEdges.length > 0) {\r\n foundEdges.forEach(foundEdge => { \r\n model[_propertyName].add(foundEdge.DomainId);\r\n }); \r\n } \r\n }\r\n }\r\n \r\n }\r\n return otherVerticesToDeserialize;\r\n }\r\n}\r\n\r\nexport interface EdgeRelationship {\r\n edgeType: new () => EdgeModel;\r\n propertyName: string;\r\n otherVertexPropertyName: string;\r\n dEdges?: Map BaseModel>;\r\n otherVertexType?: typeof BaseModel;\r\n}\r\nexport interface MapInterface extends Map {\r\n}\r\nexport const _Map = Map;","import { Program as ProgramDef, Region } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { Program } from \"@Core/CodeGen/Models/area.models\";\r\nimport _ from \"lodash\";\r\nimport { ModelUtils } from \"./model-utils\";\r\nimport { RegionAliasVM } from \"@Conf/Shared/region-card/region-card.component\";\r\n\r\nexport class RegionUtils {\r\n public static isProgramRegionCommon(regions: Region[], programs: Program[]): boolean {\r\n const programRegions = programs.map(program => {\r\n return RegionUtils.getProgramRegion(regions, program.Id);\r\n });\r\n\r\n const isCommon = programRegions.every((region) => region?.Id === programRegions[0]?.Id);\r\n\r\n return isCommon;\r\n }\r\n\r\n public static getProgramRegion(regions: Region[], programId: string): Region {\r\n const region = _.find(regions, region => _.some(region?.Formats(), edge => {\r\n return edge?.Out == ModelUtils.createDomainId(new ProgramDef(), programId)\r\n }));\r\n\r\n return region || null;\r\n }\r\n\r\n public static createAliasVMs(aliases: { [aliasLabel: string]: string }): RegionAliasVM[] {\r\n let regionAliasVMs: RegionAliasVM[] = [];\r\n\r\n Object.entries(aliases).forEach( ([key, value]) => {\r\n let isPlural = false;\r\n let singularCounterpart;\r\n if (key.endsWith(\"ies\")) {\r\n isPlural = true;\r\n singularCounterpart = key.slice(0,-3) + \"y\";\r\n }\r\n else if (key.endsWith(\"s\")) {\r\n isPlural = true;\r\n singularCounterpart = key.slice(0,-1);\r\n }\r\n\r\n let targetVMToUpdate = _.find(regionAliasVMs, aliasVM => aliasVM.BaseSingular === key\r\n || aliasVM.BaseSingular === singularCounterpart\r\n || aliasVM.BasePlural === key);\r\n\r\n if (targetVMToUpdate) {\r\n if (isPlural) {\r\n targetVMToUpdate.BasePlural = key;\r\n targetVMToUpdate.OverridePlural = value;\r\n }\r\n else {\r\n targetVMToUpdate.BaseSingular = key;\r\n targetVMToUpdate.OverrideSingular = value;\r\n }\r\n }\r\n else {\r\n let regionAlias = {\r\n BaseSingular: !isPlural ? key : \"\",\r\n BasePlural: isPlural ? key : \"\",\r\n OverrideSingular: !isPlural ? value : \"\",\r\n OverridePlural: isPlural ? value : \"\"\r\n } as RegionAliasVM;\r\n\r\n regionAliasVMs.push(regionAlias);\r\n }\r\n });\r\n\r\n return regionAliasVMs;\r\n }\r\n}","import _ from \"lodash\";\r\n\r\nexport class RouteUtils {\r\n public static BuildEntityRoute(entity: string, entries: RouteEntryItem[]): string {\r\n if (!entity) return null;\r\n\r\n switch (entity) {\r\n case 'Program':\r\n return `/Conf/Programs/${RouteUtils.GetIdFromEntry('Program', entries)}/Overview`;\r\n case 'Account':\r\n return `/Work/Account/${RouteUtils.GetIdFromEntry('Account', entries)}`;\r\n case 'Task':\r\n return `/Work/Account/${RouteUtils.GetIdFromEntry('Account', entries)}/Workflow/${RouteUtils.GetIdFromEntry('Workflow', entries)}`;\r\n case 'Journal':\r\n return `/Work/Account/${RouteUtils.GetIdFromEntry('Account', entries)}`;\r\n case 'Document':\r\n return `/Work/Account/${RouteUtils.GetIdFromEntry('Account', entries)}`; \r\n default:\r\n return null;\r\n }\r\n }\r\n\r\n private static GetIdFromEntry(entryType: string, routeEntries: RouteEntryItem[]): string {\r\n var entry = _.find(routeEntries, (e: RouteEntryItem) => { return e.Type == entryType; });\r\n return entry?.Id;\r\n }\r\n}\r\n\r\nexport interface RouteEntryItem {\r\n Type: string;\r\n Id: string;\r\n}","\r\nimport { Task } from \"@Core/CodeGen/Models/area.models\"\r\nimport _ from \"lodash\";\r\nimport { TimerType } from \"../Enums/timer-type-enum\"\r\nimport { TaskWorkingStatus } from \"@Work/Accounts/Workflow/task-list/task-cell/task-cell.component\";\r\n\r\nexport interface TaskTimer {\r\n WorkflowId: string;\r\n TaskId: string;\r\n TaskName: string;\r\n Type: TimerType;\r\n DueOn: Date;\r\n}\r\n\r\nexport class TaskUtils {\r\n /**\r\n * Takes a Task object and returns the most imminent TaskTimer object\r\n * @param task A Task object\r\n */\r\n public static getMostImminentTimerOnTask(task: Task): TaskTimer {\r\n if (_.isNil(task)) return null;\r\n\r\n if (task.CompletionStatus === \"Done\" || task.CompletionStatus === \"Waived\")\r\n return null;\r\n\r\n const taskTimers = []; \r\n const taskTimer = {\r\n WorkflowId: task.WorkflowId,\r\n TaskId: task.Id,\r\n TaskName: task.Name,\r\n Type: null,\r\n DueOn: null\r\n };\r\n\r\n if (task.Deadline) {\r\n taskTimers.push({...taskTimer, Type: TimerType.Deadline, DueOn: task.Deadline});\r\n }\r\n\r\n if (task.SLADueOn) {\r\n taskTimers.push({...taskTimer, Type: TimerType.SLA, DueOn: task.SLADueOn});\r\n }\r\n\r\n const mostImminentTaskTimer = this.calculateMostImminentTaskTimer(taskTimers);\r\n\r\n return mostImminentTaskTimer;\r\n }\r\n\r\n /**\r\n * Takes a list of Task objects and returns the most imminent TaskTimer\r\n * @param tasks A list of Task objects\r\n */\r\n public static getMostImminentTimerInTaskList(tasks: Task[]): TaskTimer { \r\n const taskTimers = _.filter(_.map(tasks, (task) => this.getMostImminentTimerOnTask(task)), t => !_.isNull(t));\r\n const mostImminentTaskTimer = this.calculateMostImminentTaskTimer(taskTimers);\r\n\r\n return mostImminentTaskTimer;\r\n }\r\n\r\n /**\r\n * Takes a list of TaskTimer objects and returns the most imminent TaskTimer object\r\n * @param task A TaskTimer object\r\n */\r\n private static calculateMostImminentTaskTimer(taskTimers: TaskTimer[]): TaskTimer {\r\n if (_.isEmpty(taskTimers))\r\n return null;\r\n\r\n const mostImminentTaskTimer: TaskTimer = _.reduce(taskTimers, (prev, current) => {\r\n const prevRemainingTime: number = new Date(prev.DueOn).getTime() - new Date().getTime();\r\n const currentRemainingTime: number = new Date(current.DueOn).getTime() - new Date().getTime();\r\n\r\n if (prevRemainingTime < currentRemainingTime)\r\n return prev;\r\n\r\n return current;\r\n })\r\n\r\n return mostImminentTaskTimer;\r\n }\r\n}\r\n","/** Represents a date without any time of day.\r\n* The exact time is determined by a legal contract\r\n* that the software does not have details about.\r\n*/\r\nexport class ContractDate\r\n{\r\n /** Tracks the Day, Month, and Year as of midnight, local time. */\r\n private readonly ReferenceDate: Date;\r\n\r\n /** Initializes a new instance of the ContractDate structure to the specified\r\n * year, month (0-based), and day. */\r\n public constructor(year: number, month: number, day: number) {\r\n if (!year || year < 1900 || year > 2200)\r\n throw new Error(\"Year is not valid.\");\r\n if ((!month && month !== 0) || month < 0 || month > 11)\r\n throw new Error(\"Month is not valid.\");\r\n if (!day || day < 1 || day > 31)\r\n throw new Error(\"Day is not valid.\");\r\n\r\n this.ReferenceDate = new Date(year, month, day);\r\n }\r\n\r\n /** Gets the year component of the date represented by this instance. */\r\n public get Year(): number { return this.ReferenceDate.getFullYear(); }\r\n\r\n /** Gets the 0-based month component of the date represented by this instance. */\r\n public get Month(): number { return this.ReferenceDate.getMonth(); }\r\n\r\n /** Gets the day of the month represented by this instance. */\r\n public get Day(): number { return this.ReferenceDate.getDate(); }\r\n\r\n /** Returns a new ContractDate that adds the number of days (rounded) in\r\n * the given timeSpan to the value of this instance. */\r\n public Add(timeSpan: TimeSpan): ContractDate {\r\n if (!timeSpan)\r\n throw new Error(\"TimeSpan argument cannot be null.\");\r\n\r\n let newDate: Date = new Date(this.ReferenceDate);\r\n switch (timeSpan.Units) {\r\n // Years and Months have to be handled differently\r\n // because we can't convert those to a number of days.\r\n case DateTimeComponent.Years:\r\n newDate.setFullYear(newDate.getFullYear() + timeSpan.Value);\r\n break;\r\n case DateTimeComponent.Months:\r\n newDate.setMonth(newDate.getMonth() + timeSpan.Value);\r\n break;\r\n default:\r\n let days = Math.round(timeSpan.getTotalDays());\r\n newDate.setDate(newDate.getDate() + days);\r\n break;\r\n }\r\n\r\n return new ContractDate(newDate.getFullYear(), newDate.getMonth(), newDate.getDate());\r\n }\r\n\r\n /**\r\n * Returns the difference (in milliseconds) between this contract date and\r\n * the given date (which is assumed to be local)\r\n * when the contract date is treated as representing midnight in the given\r\n * contractTimeZoneOffset. \r\n * \"contractTimeZoneOffset\" is the number of hours the contract timezone is ahead of UTC.\r\n * If contractTimeZoneOffset is omitted,\r\n * the result will be rounded to the nearest day.\r\n * So, if the given date is later, the result will be a negative TimeSpan.\r\n */\r\n public DifferenceFromDate(date: Date, contractTimeZoneOffset: TimeSpan = null): number {\r\n if (!date)\r\n throw new Error(\"Date argument cannot be null.\");\r\n\r\n let roundToNearestDay = false;\r\n let contractDate = new Date(this.ReferenceDate);\r\n\r\n if (contractTimeZoneOffset === null) {\r\n roundToNearestDay = true;\r\n }\r\n else {\r\n // Adjust contract date to UTC\r\n let localTimeZoneOffset = new TimeSpan(-1 * contractDate.getTimezoneOffset(),\r\n DateTimeComponent.Minutes);\r\n localTimeZoneOffset.addToDate(contractDate);\r\n\r\n // Adjust to the given contract time zone\r\n contractTimeZoneOffset = new TimeSpan(contractTimeZoneOffset.Value * -1, contractTimeZoneOffset.Units);\r\n contractTimeZoneOffset.addToDate(contractDate);\r\n }\r\n\r\n if (!roundToNearestDay) {\r\n return contractDate.valueOf() - date.valueOf();\r\n }\r\n else {\r\n return contractDate.valueOf() - this.RoundToNearestFullDay(date).valueOf();\r\n }\r\n }\r\n\r\n /**\r\n * Returns the difference (in milliseconds) between this contract date and\r\n * the given contract date, which are assumed to be in the same time zone.\r\n * So, if the given date is later, the result will be negative.\r\n */\r\n public Difference(other: ContractDate): number {\r\n if (!other)\r\n throw new Error(\"ContractDate argument cannot be null.\");\r\n\r\n return this.ReferenceDate.valueOf() - other.ReferenceDate.valueOf();\r\n }\r\n\r\n /** Indicates whether this instance and a specified ContractDate are equal. */\r\n public Equals(other: ContractDate): boolean {\r\n if (!other)\r\n return false;\r\n\r\n return this.CompareTo(other) === 0;\r\n }\r\n\r\n /**\r\n * Returns 0 if the instances are equal.\r\n * Returns 1 if this instance is greater than the other.\r\n * Returns -1 if this instance is less than the other.\r\n */\r\n public CompareTo(other: ContractDate): number {\r\n if (!other)\r\n throw new Error(\"ContractDate argument cannot be null.\");\r\n\r\n if (this.ReferenceDate < other.ReferenceDate) return -1;\r\n if (this.ReferenceDate > other.ReferenceDate) return 1;\r\n return 0;\r\n }\r\n\r\n public toISOString(): string {\r\n const pad = (num: number): string => {\r\n return (num.toString()).padStart(2, \"0\");\r\n };\r\n return `${this.Year}-${pad(this.Month+1)}-${pad(this.Day)}`;\r\n }\r\n\r\n /** Override default behavior of JSON.stringify() */\r\n public toJSON(): object {\r\n return {Year: this.Year, Month: this.Month + 1, Day: this.Day};\r\n }\r\n\r\n private RoundToNearestFullDay(date: Date): Date {\r\n if (date.getHours() >= 12) // round up?\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate() + 1);\r\n else\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\r\n }\r\n}\r\n\r\nexport class TimeSpan {\r\n public static readonly CONSTANTS = class constants {\r\n public static readonly MILLISECONDS_PER_DAY: number = 86400000;\r\n public static readonly MILLISECONDS_PER_HOUR: number = 3600000;\r\n public static readonly MILLISECONDS_PER_MINUTE: number = 60000;\r\n public static readonly SECONDS_PER_DAY: number = 86400;\r\n public static readonly MINUTES_PER_DAY: number = 1440;\r\n };\r\n\r\n public constructor(value?: number, units?: DateTimeComponent) {\r\n this.Value = value ?? 0;\r\n this.Units = units ?? DateTimeComponent.Milliseconds;\r\n }\r\n\r\n public readonly Value: number;\r\n public readonly Units: DateTimeComponent;\r\n\r\n /** Add this timespan to the given Date. */\r\n public addToDate(date: Date): void {\r\n switch (this.Units) {\r\n case DateTimeComponent.Milliseconds:\r\n date.setMilliseconds(date.getMilliseconds() + this.Value);\r\n break;\r\n case DateTimeComponent.Seconds:\r\n date.setSeconds(date.getSeconds() + this.Value);\r\n break;\r\n case DateTimeComponent.Minutes:\r\n date.setMinutes(date.getMinutes() + this.Value);\r\n break;\r\n case DateTimeComponent.Hours:\r\n date.setHours(date.getHours() + this.Value);\r\n break;\r\n case DateTimeComponent.Days:\r\n date.setDate(date.getDate() + this.Value);\r\n break;\r\n case DateTimeComponent.Months:\r\n date.setMonth(date.getMonth() + this.Value);\r\n break;\r\n case DateTimeComponent.Years:\r\n date.setFullYear(date.getFullYear() + this.Value);\r\n break;\r\n }\r\n }\r\n\r\n /** Convert this timespan to total number of days.\r\n * Months and Years are not convertible to smaller units. */\r\n public getTotalDays(): number {\r\n switch (this.Units) {\r\n case DateTimeComponent.Milliseconds:\r\n return this.Value / TimeSpan.CONSTANTS.MILLISECONDS_PER_DAY;\r\n case DateTimeComponent.Seconds:\r\n return this.Value / TimeSpan.CONSTANTS.SECONDS_PER_DAY;\r\n case DateTimeComponent.Minutes:\r\n return this.Value / TimeSpan.CONSTANTS.MINUTES_PER_DAY;\r\n case DateTimeComponent.Hours:\r\n return this.Value / 24;\r\n case DateTimeComponent.Days:\r\n return this.Value;\r\n case DateTimeComponent.Months:\r\n throw new Error(\"A number of Months cannot be reliably converted to Days.\");\r\n case DateTimeComponent.Years:\r\n throw new Error(\"A number of Years cannot be reliably converted to Days.\");\r\n default:\r\n throw new Error(\"Unrecognized DateTimeComponent\");\r\n }\r\n }\r\n}\r\n\r\nexport enum DateTimeComponent {\r\n Years, Months, Days, Hours, Minutes, Seconds, Milliseconds\r\n}","import { BaseDataContext } from '@Core/Lib/Contexts/base-data-context';\r\n\r\nimport * as _ from 'lodash';\r\nimport { EdgeRelationship } from './Utils/model-utils';\r\n\r\n/**************** Base Classes *****************************/\r\n\r\ninterface Serializable {\r\n deserialize(input: Object, context: BaseDataContext): T;\r\n}\r\n\r\nexport abstract class BaseModel implements Serializable {\r\n data: any = {};\r\n Context: BaseDataContext;\r\n\r\n get Id(): string {\r\n return this.data.Id;\r\n }\r\n set Id(value: string) {\r\n this.data.Id = value;\r\n }\r\n\r\n abstract get Type(): string;\r\n abstract get Domain(): string;\r\n\r\n get DomainId(): string {\r\n return this.Domain + \"#\" + this.Id;\r\n }\r\n get DomainType(): string {\r\n return this.Domain + \":\" + this.Type;\r\n }\r\n\r\n get ObjectVersionNumber(): number {\r\n return this.data.ObjectVersionNumber;\r\n }\r\n\r\n readonly _APIKEY;\r\n static get DerivedTypes(): { className: string, type: new () => BaseModel }[] { return []; }\r\n\r\n abstract deserialize(input: Object, context: BaseDataContext): BaseModel;\r\n\r\n protected _deserialize(input: Object, context: BaseDataContext): void {\r\n this.data = input;\r\n\r\n //Remove # from properties\r\n Object.keys(this.data).forEach((key) => {\r\n const newKey = key.replace(\"#\", \"\");\r\n if (newKey !== key) {\r\n this.data[newKey] = this.data[key];\r\n delete this.data[key];\r\n }\r\n });\r\n context.addOrReplace(this);\r\n this.Context = context;\r\n }\r\n\r\n abstract clone(): BaseModel;\r\n}\r\n\r\nexport abstract class VertexModel extends BaseModel {\r\n\r\n /**\r\n * Stores the relationships loaded in this instance of the Model\r\n */\r\n protected _relationships: Map> = new Map>();\r\n\r\n /**\r\n * Copies the relationship key and values from the otherRelationship if they key is not\r\n * present in the internal relationships map\r\n * @param otherRelationships\r\n */\r\n public mergeRelationships(other: VertexModel, override: boolean = false) {\r\n other._relationships.forEach((values, key) => {\r\n if (!this._relationships.has(key) || override)\r\n this._relationships.set(key, values);\r\n });\r\n }\r\n\r\n protected _deserialize(input: Object, context: BaseDataContext): void {\r\n var data: any = _.omit(input, [\"@Type\"]);\r\n super._deserialize(data, context);\r\n }\r\n\r\n public readonly inRelationships: EdgeRelationship[] = [];\r\n public readonly outRelationships: EdgeRelationship[] = [];\r\n}\r\n\r\nexport abstract class EdgeModel extends BaseModel {\r\n get Out(): string {\r\n var _out = this.data.Out;\r\n if (!_out)\r\n _out = this.Domain + \"#\" + this.data.OutIdPair?.Id;\r\n return _out;\r\n }\r\n set Out(value: string) {\r\n this.data.Out = value;\r\n }\r\n\r\n get In(): string {\r\n var _in = this.data.In;\r\n if (!_in)\r\n _in = this.Domain + \"#\" + this.data.InIdPair?.Id;\r\n return _in;\r\n }\r\n set In(value: string) {\r\n this.data.In = value;\r\n }\r\n\r\n protected _deserialize(input: Object, context: BaseDataContext): void {\r\n var data: any = _.omit(input, [\"@Relationship\", \"@RelationshipId\", \"@Type\"]);\r\n data.Id = input[\"@RelationshipId\"];\r\n super._deserialize(data, context);\r\n }\r\n}\r\n\r\nexport abstract class DocumentModel extends BaseModel {\r\n protected _deserialize(input: Object, context: BaseDataContext): void {\r\n var data: any = _.omit(input, [\"@Type\"]);\r\n super._deserialize(data, context);\r\n }\r\n}\r\n\r\nexport class PartitionKeyIdPair {\r\n PartitionKey: string;\r\n Id: string;\r\n}\r\n\r\nexport class BaseEnum {\r\n public data: IEnumEntry[];\r\n public items: IEnumItem[];\r\n\r\n public getNames(): string[] {\r\n return _.map(this.data, enumItem => { return enumItem.name; });\r\n }\r\n\r\n public deserialize(input: any): void {\r\n var self = this;\r\n this.data = [];\r\n this.items = [];\r\n\r\n if (!input)\r\n return;\r\n\r\n var json = input.Content || input;\r\n if (!json) { return; }\r\n\r\n _.forEach(json, function (value, key) {\r\n const enumEntry: IEnumEntry = {\r\n name: key,\r\n enumObject: value\r\n }\r\n self.data.push(enumEntry);\r\n self.items.push(value);\r\n });\r\n }\r\n}\r\n\r\nexport interface IMenuItem {\r\n label: string,\r\n id?: string,\r\n route?: string,\r\n iconClass?: string,\r\n clickHandler?: Function,\r\n subMenu?: IMenuItem[],\r\n subLink?: boolean, // eg - \"+ Add\" links\r\n disabled?: boolean | (() => boolean) // may be either a fixed value or a function\r\n hidden?: boolean | (() => boolean) // may be either a fixed value or a function\r\n external?: boolean\r\n}\r\n\r\nexport interface IStaticElementType {\r\n label: string,\r\n name: string\r\n}\r\n\r\nexport interface IValidationCode {\r\n code: string,\r\n description: string,\r\n messageTemplate: string,\r\n resolutionHelp: string,\r\n}\r\n\r\nexport interface IEnumEntry {\r\n name: string,\r\n enumObject: IEnumItem | any,\r\n}\r\n\r\nexport interface IEnumItem {\r\n name: string,\r\n description: string\r\n}\r\n\r\nexport interface IEditionParticipation {\r\n Participation: boolean;\r\n CommittedEditions: number[];\r\n}\r\n\r\nexport interface IServiceResponse {\r\n Content: any;\r\n Errors: IServerMessage[];\r\n Messages: IServerMessage[];\r\n RequestId: string;\r\n}\r\n\r\nexport interface ITypedServiceResponse extends IServiceResponse {\r\n Content: T;\r\n}\r\n\r\nexport interface IServerMessage {\r\n Message: string;\r\n Data: object;\r\n}\r\n\r\nexport interface IModelValidationError extends IServerMessage {\r\n Path: string;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { UserService } from '@Services/user-service';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\n\r\nimport { Notification, Types as TenantTypes } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { Types as AreaTypes } from \"@Core/CodeGen/Models/area.models\";\r\nimport { BaseModel } from '@Core/Lib/model';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { BaseHub } from './BaseHub';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { SyncHubStatusService } from '@Services/sync-hub-status-service';\r\nimport { TenantService } from '@Core/CodeGen/Services/tenant.service';\r\nimport { AccountsService } from '@Core/CodeGen/Services/accounts.service';\r\nimport { NotificationService } from '@Services/notification-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AlertsHub extends BaseHub {\r\n\r\n private joinedUserGroup: boolean = false;\r\n private userTimeout: any; // number | NodeJS.Timeout\r\n\r\n route: string = \"alerts\";\r\n \r\n private DomainTypes = {\r\n \"Tenant\": TenantTypes,\r\n \"Workflows\": AreaTypes,\r\n \"Data\": AreaTypes,\r\n \"Accounts\": AreaTypes,\r\n \"Documents\": AreaTypes,\r\n };\r\n\r\n constructor(\r\n public userService: UserService,\r\n public auth: AuthService,\r\n private userContext: UserContext,\r\n protected logger: LoggingService,\r\n protected statusService: SyncHubStatusService,\r\n private tenantService: TenantService,\r\n private accountService: AccountsService,\r\n private notificationService: NotificationService\r\n ) {\r\n super(userService, auth, logger, statusService);\r\n }\r\n\r\n public initialize(): void {\r\n let self = this;\r\n if (this.isConnected() && this.user) {\r\n this.joinUserGroup();\r\n }\r\n }\r\n\r\n private joinUserGroup(): void {\r\n if (this.joinedUserGroup)\r\n return; // already joined\r\n\r\n if (!this.isConnected() || !this.user)\r\n return;\r\n\r\n this.hubConnection.invoke('Join', this.user.userKey);\r\n this.logger.logInfo(`${this.hubName}: User has joined the user's group.`);\r\n this.joinedUserGroup = true;\r\n }\r\n\r\n public mapMessageHandlers(): void {\r\n this.hubConnection.on('ProcessAlert', (message: any) => {\r\n let domain = message.EntityDomain;\r\n if (!domain) {\r\n this.logger.logWarn(\"message received without an EntityDomain\");\r\n return;\r\n }\r\n\r\n this.logger.logVerbose(\"message received\", { \r\n domain: domain, \r\n type: message.EntityType, \r\n id: message.EntityId, \r\n entity: JSON.parse(message.Entity) \r\n });\r\n \r\n var type: { new(): BaseModel } = this.DomainTypes[domain][message.EntityType];\r\n\r\n if (!type) {\r\n this.logger.logWarn(`could not map message EntityType of '${message.EntityType}' to a DomainType`);\r\n return;\r\n }\r\n\r\n if (message.AreaKey == null || message.AreaKey == this.auth.getAreaKey()) {\r\n var model = this.userContext.loadApiResponseModels(type, message.Entity as string);\r\n\r\n if (message.EntityType == 'Notification') {\r\n this.notificationService.add(model[0] as Notification);\r\n }\r\n\r\n setTimeout(() => {\r\n console.info(\"logging inside a timeout to trigger CD\"); // trigger Angular change detection\r\n }, 0); \r\n }\r\n });\r\n }\r\n\r\n public onConnectionStartedCallback(): void {\r\n this.joinUserGroup();\r\n }\r\n\r\n public onConnectionClosedCallback(): void{\r\n this.joinedUserGroup = false; // set to false so that a reconnect can rejoin.\r\n }\r\n\r\n public onPollingStart(): void {\r\n this.pollUser();\r\n }\r\n\r\n public onPollingStop(): void {\r\n if (this.userTimeout) {\r\n clearTimeout(this.userTimeout);\r\n this.userTimeout = null;\r\n this.logger.logVerbose(\"Ending polling of user alerts now that syncing has been established\");\r\n }\r\n }\r\n\r\n private pollUser(hub?: AlertsHub): void {\r\n if (!hub && this.userTimeout) {\r\n return; // we are already Polling\r\n }\r\n\r\n hub = hub || this;\r\n if (hub.userTimeout) {\r\n hub.loadUserInfo();\r\n } else {\r\n hub.logger.logInfo(\"Reverting to polling user account info\"); \r\n }\r\n hub.userTimeout = setTimeout(() => {\r\n hub.pollUser(hub)\r\n }, 296000 + this.getRandomInt(0, 6000)); // Poll about every 5 minutes (+6 or -6 seconds)\r\n }\r\n\r\n private loadUserInfo(): void {\r\n this.logger.logVerbose(`Polling user alert data`);\r\n\r\n this.tenantService.ListUserNotificationCenters(this.userContext);\r\n this.accountService.ListUserNotificationCenters(this.userContext);\r\n } \r\n}","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// 0, 2, 10, 30 second delays before reconnect attempts.\r\nconst DEFAULT_RETRY_DELAYS_IN_MILLISECONDS = [0, 2000, 10000, 30000, null];\r\n/** @private */\r\nexport class DefaultReconnectPolicy {\r\n constructor(retryDelays) {\r\n this._retryDelays = retryDelays !== undefined ? [...retryDelays, null] : DEFAULT_RETRY_DELAYS_IN_MILLISECONDS;\r\n }\r\n nextRetryDelayInMilliseconds(retryContext) {\r\n return this._retryDelays[retryContext.previousRetryCount];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nexport class HeaderNames {\r\n}\r\nHeaderNames.Authorization = \"Authorization\";\r\nHeaderNames.Cookie = \"Cookie\";\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Represents an HTTP response. */\r\nexport class HttpResponse {\r\n constructor(statusCode, statusText, content) {\r\n this.statusCode = statusCode;\r\n this.statusText = statusText;\r\n this.content = content;\r\n }\r\n}\r\n/** Abstraction over an HTTP client.\r\n *\r\n * This class provides an abstraction over an HTTP client so that a different implementation can be provided on different platforms.\r\n */\r\nexport class HttpClient {\r\n get(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"GET\",\r\n url,\r\n });\r\n }\r\n post(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"POST\",\r\n url,\r\n });\r\n }\r\n delete(url, options) {\r\n return this.send({\r\n ...options,\r\n method: \"DELETE\",\r\n url,\r\n });\r\n }\r\n /** Gets all cookies that apply to the specified URL.\r\n *\r\n * @param url The URL that the cookies are valid for.\r\n * @returns {string} A string containing all the key-value cookie pairs for the specified URL.\r\n */\r\n // @ts-ignore\r\n getCookieString(url) {\r\n return \"\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { HttpClient } from \"./HttpClient\";\r\n/** @private */\r\nexport class AccessTokenHttpClient extends HttpClient {\r\n constructor(innerClient, accessTokenFactory) {\r\n super();\r\n this._innerClient = innerClient;\r\n this._accessTokenFactory = accessTokenFactory;\r\n }\r\n async send(request) {\r\n let allowRetry = true;\r\n if (this._accessTokenFactory && (!this._accessToken || (request.url && request.url.indexOf(\"/negotiate?\") > 0))) {\r\n // don't retry if the request is a negotiate or if we just got a potentially new token from the access token factory\r\n allowRetry = false;\r\n this._accessToken = await this._accessTokenFactory();\r\n }\r\n this._setAuthorizationHeader(request);\r\n const response = await this._innerClient.send(request);\r\n if (allowRetry && response.statusCode === 401 && this._accessTokenFactory) {\r\n this._accessToken = await this._accessTokenFactory();\r\n this._setAuthorizationHeader(request);\r\n return await this._innerClient.send(request);\r\n }\r\n return response;\r\n }\r\n _setAuthorizationHeader(request) {\r\n if (!request.headers) {\r\n request.headers = {};\r\n }\r\n if (this._accessToken) {\r\n request.headers[HeaderNames.Authorization] = `Bearer ${this._accessToken}`;\r\n }\r\n // don't remove the header if there isn't an access token factory, the user manually added the header in this case\r\n else if (this._accessTokenFactory) {\r\n if (request.headers[HeaderNames.Authorization]) {\r\n delete request.headers[HeaderNames.Authorization];\r\n }\r\n }\r\n }\r\n getCookieString(url) {\r\n return this._innerClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Platform, getGlobalThis, isArrayBuffer } from \"./Utils\";\r\nexport class FetchHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n // Node added a fetch implementation to the global scope starting in v18.\r\n // We need to add a cookie jar in node to be able to share cookies with WebSocket\r\n if (typeof fetch === \"undefined\" || Platform.isNode) {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Cookies aren't automatically handled in Node so we need to add a CookieJar to preserve cookies across requests\r\n this._jar = new (requireFunc(\"tough-cookie\")).CookieJar();\r\n if (typeof fetch === \"undefined\") {\r\n this._fetchType = requireFunc(\"node-fetch\");\r\n }\r\n else {\r\n // Use fetch from Node if available\r\n this._fetchType = fetch;\r\n }\r\n // node-fetch doesn't have a nice API for getting and setting cookies\r\n // fetch-cookie will wrap a fetch implementation with a default CookieJar or a provided one\r\n this._fetchType = requireFunc(\"fetch-cookie\")(this._fetchType, this._jar);\r\n }\r\n else {\r\n this._fetchType = fetch.bind(getGlobalThis());\r\n }\r\n if (typeof AbortController === \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n // Node needs EventListener methods on AbortController which our custom polyfill doesn't provide\r\n this._abortControllerType = requireFunc(\"abort-controller\");\r\n }\r\n else {\r\n this._abortControllerType = AbortController;\r\n }\r\n }\r\n /** @inheritDoc */\r\n async send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n throw new AbortError();\r\n }\r\n if (!request.method) {\r\n throw new Error(\"No method defined.\");\r\n }\r\n if (!request.url) {\r\n throw new Error(\"No url defined.\");\r\n }\r\n const abortController = new this._abortControllerType();\r\n let error;\r\n // Hook our abortSignal into the abort controller\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n abortController.abort();\r\n error = new AbortError();\r\n };\r\n }\r\n // If a timeout has been passed in, setup a timeout to call abort\r\n // Type needs to be any to fit window.setTimeout and NodeJS.setTimeout\r\n let timeoutId = null;\r\n if (request.timeout) {\r\n const msTimeout = request.timeout;\r\n timeoutId = setTimeout(() => {\r\n abortController.abort();\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n error = new TimeoutError();\r\n }, msTimeout);\r\n }\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n request.headers = request.headers || {};\r\n if (isArrayBuffer(request.content)) {\r\n request.headers[\"Content-Type\"] = \"application/octet-stream\";\r\n }\r\n else {\r\n request.headers[\"Content-Type\"] = \"text/plain;charset=UTF-8\";\r\n }\r\n }\r\n let response;\r\n try {\r\n response = await this._fetchType(request.url, {\r\n body: request.content,\r\n cache: \"no-cache\",\r\n credentials: request.withCredentials === true ? \"include\" : \"same-origin\",\r\n headers: {\r\n \"X-Requested-With\": \"XMLHttpRequest\",\r\n ...request.headers,\r\n },\r\n method: request.method,\r\n mode: \"cors\",\r\n redirect: \"follow\",\r\n signal: abortController.signal,\r\n });\r\n }\r\n catch (e) {\r\n if (error) {\r\n throw error;\r\n }\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${e}.`);\r\n throw e;\r\n }\r\n finally {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n }\r\n if (!response.ok) {\r\n const errorMessage = await deserializeContent(response, \"text\");\r\n throw new HttpError(errorMessage || response.statusText, response.status);\r\n }\r\n const content = deserializeContent(response, request.responseType);\r\n const payload = await content;\r\n return new HttpResponse(response.status, response.statusText, payload);\r\n }\r\n getCookieString(url) {\r\n let cookies = \"\";\r\n if (Platform.isNode && this._jar) {\r\n // @ts-ignore: unused variable\r\n this._jar.getCookies(url, (e, c) => cookies = c.join(\"; \"));\r\n }\r\n return cookies;\r\n }\r\n}\r\nfunction deserializeContent(response, responseType) {\r\n let content;\r\n switch (responseType) {\r\n case \"arraybuffer\":\r\n content = response.arrayBuffer();\r\n break;\r\n case \"text\":\r\n content = response.text();\r\n break;\r\n case \"blob\":\r\n case \"document\":\r\n case \"json\":\r\n throw new Error(`${responseType} is not supported.`);\r\n default:\r\n content = response.text();\r\n break;\r\n }\r\n return content;\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError, HttpError, TimeoutError } from \"./Errors\";\r\nimport { HttpClient, HttpResponse } from \"./HttpClient\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\nexport class XhrHttpClient extends HttpClient {\r\n constructor(logger) {\r\n super();\r\n this._logger = logger;\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return new Promise((resolve, reject) => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.open(request.method, request.url, true);\r\n xhr.withCredentials = request.withCredentials === undefined ? true : request.withCredentials;\r\n xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\r\n if (request.content === \"\") {\r\n request.content = undefined;\r\n }\r\n if (request.content) {\r\n // Explicitly setting the Content-Type header for React Native on Android platform.\r\n if (isArrayBuffer(request.content)) {\r\n xhr.setRequestHeader(\"Content-Type\", \"application/octet-stream\");\r\n }\r\n else {\r\n xhr.setRequestHeader(\"Content-Type\", \"text/plain;charset=UTF-8\");\r\n }\r\n }\r\n const headers = request.headers;\r\n if (headers) {\r\n Object.keys(headers)\r\n .forEach((header) => {\r\n xhr.setRequestHeader(header, headers[header]);\r\n });\r\n }\r\n if (request.responseType) {\r\n xhr.responseType = request.responseType;\r\n }\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = () => {\r\n xhr.abort();\r\n reject(new AbortError());\r\n };\r\n }\r\n if (request.timeout) {\r\n xhr.timeout = request.timeout;\r\n }\r\n xhr.onload = () => {\r\n if (request.abortSignal) {\r\n request.abortSignal.onabort = null;\r\n }\r\n if (xhr.status >= 200 && xhr.status < 300) {\r\n resolve(new HttpResponse(xhr.status, xhr.statusText, xhr.response || xhr.responseText));\r\n }\r\n else {\r\n reject(new HttpError(xhr.response || xhr.responseText || xhr.statusText, xhr.status));\r\n }\r\n };\r\n xhr.onerror = () => {\r\n this._logger.log(LogLevel.Warning, `Error from HTTP request. ${xhr.status}: ${xhr.statusText}.`);\r\n reject(new HttpError(xhr.statusText, xhr.status));\r\n };\r\n xhr.ontimeout = () => {\r\n this._logger.log(LogLevel.Warning, `Timeout from HTTP request.`);\r\n reject(new TimeoutError());\r\n };\r\n xhr.send(request.content);\r\n });\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortError } from \"./Errors\";\r\nimport { FetchHttpClient } from \"./FetchHttpClient\";\r\nimport { HttpClient } from \"./HttpClient\";\r\nimport { Platform } from \"./Utils\";\r\nimport { XhrHttpClient } from \"./XhrHttpClient\";\r\n/** Default implementation of {@link @microsoft/signalr.HttpClient}. */\r\nexport class DefaultHttpClient extends HttpClient {\r\n /** Creates a new instance of the {@link @microsoft/signalr.DefaultHttpClient}, using the provided {@link @microsoft/signalr.ILogger} to log messages. */\r\n constructor(logger) {\r\n super();\r\n if (typeof fetch !== \"undefined\" || Platform.isNode) {\r\n this._httpClient = new FetchHttpClient(logger);\r\n }\r\n else if (typeof XMLHttpRequest !== \"undefined\") {\r\n this._httpClient = new XhrHttpClient(logger);\r\n }\r\n else {\r\n throw new Error(\"No usable HttpClient found.\");\r\n }\r\n }\r\n /** @inheritDoc */\r\n send(request) {\r\n // Check that abort was not signaled before calling send\r\n if (request.abortSignal && request.abortSignal.aborted) {\r\n return Promise.reject(new AbortError());\r\n }\r\n if (!request.method) {\r\n return Promise.reject(new Error(\"No method defined.\"));\r\n }\r\n if (!request.url) {\r\n return Promise.reject(new Error(\"No url defined.\"));\r\n }\r\n return this._httpClient.send(request);\r\n }\r\n getCookieString(url) {\r\n return this._httpClient.getCookieString(url);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// This will be treated as a bit flag in the future, so we keep it using power-of-two values.\r\n/** Specifies a specific HTTP transport type. */\r\nexport var HttpTransportType;\r\n(function (HttpTransportType) {\r\n /** Specifies no transport preference. */\r\n HttpTransportType[HttpTransportType[\"None\"] = 0] = \"None\";\r\n /** Specifies the WebSockets transport. */\r\n HttpTransportType[HttpTransportType[\"WebSockets\"] = 1] = \"WebSockets\";\r\n /** Specifies the Server-Sent Events transport. */\r\n HttpTransportType[HttpTransportType[\"ServerSentEvents\"] = 2] = \"ServerSentEvents\";\r\n /** Specifies the Long Polling transport. */\r\n HttpTransportType[HttpTransportType[\"LongPolling\"] = 4] = \"LongPolling\";\r\n})(HttpTransportType || (HttpTransportType = {}));\r\n/** Specifies the transfer format for a connection. */\r\nexport var TransferFormat;\r\n(function (TransferFormat) {\r\n /** Specifies that only text data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Text\"] = 1] = \"Text\";\r\n /** Specifies that binary data will be transmitted over the connection. */\r\n TransferFormat[TransferFormat[\"Binary\"] = 2] = \"Binary\";\r\n})(TransferFormat || (TransferFormat = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Rough polyfill of https://developer.mozilla.org/en-US/docs/Web/API/AbortController\r\n// We don't actually ever use the API being polyfilled, we always use the polyfill because\r\n// it's a very new API right now.\r\n// Not exported from index.\r\n/** @private */\r\nexport class AbortController {\r\n constructor() {\r\n this._isAborted = false;\r\n this.onabort = null;\r\n }\r\n abort() {\r\n if (!this._isAborted) {\r\n this._isAborted = true;\r\n if (this.onabort) {\r\n this.onabort();\r\n }\r\n }\r\n }\r\n get signal() {\r\n return this;\r\n }\r\n get aborted() {\r\n return this._isAborted;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AbortController } from \"./AbortController\";\r\nimport { HttpError, TimeoutError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, sendMessage } from \"./Utils\";\r\n// Not exported from 'index', this type is internal.\r\n/** @private */\r\nexport class LongPollingTransport {\r\n // This is an internal type, not exported from 'index' so this is really just internal.\r\n get pollAborted() {\r\n return this._pollAbort.aborted;\r\n }\r\n constructor(httpClient, logger, options) {\r\n this._httpClient = httpClient;\r\n this._logger = logger;\r\n this._pollAbort = new AbortController();\r\n this._options = options;\r\n this._running = false;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._url = url;\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Connecting.\");\r\n // Allow binary format on Node and Browsers that support binary content (indicated by the presence of responseType property)\r\n if (transferFormat === TransferFormat.Binary &&\r\n (typeof XMLHttpRequest !== \"undefined\" && typeof new XMLHttpRequest().responseType !== \"string\")) {\r\n throw new Error(\"Binary protocols over XmlHttpRequest not implementing advanced features are not supported.\");\r\n }\r\n const [name, value] = getUserAgentHeader();\r\n const headers = { [name]: value, ...this._options.headers };\r\n const pollOptions = {\r\n abortSignal: this._pollAbort.signal,\r\n headers,\r\n timeout: 100000,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n if (transferFormat === TransferFormat.Binary) {\r\n pollOptions.responseType = \"arraybuffer\";\r\n }\r\n // Make initial long polling request\r\n // Server uses first long polling request to finish initializing connection and it returns without data\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Mark running as false so that the poll immediately ends and runs the close logic\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n this._running = true;\r\n }\r\n this._receiving = this._poll(this._url, pollOptions);\r\n }\r\n async _poll(url, pollOptions) {\r\n try {\r\n while (this._running) {\r\n try {\r\n const pollUrl = `${url}&_=${Date.now()}`;\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) polling: ${pollUrl}.`);\r\n const response = await this._httpClient.get(pollUrl, pollOptions);\r\n if (response.statusCode === 204) {\r\n this._logger.log(LogLevel.Information, \"(LongPolling transport) Poll terminated by server.\");\r\n this._running = false;\r\n }\r\n else if (response.statusCode !== 200) {\r\n this._logger.log(LogLevel.Error, `(LongPolling transport) Unexpected response code: ${response.statusCode}.`);\r\n // Unexpected status code\r\n this._closeError = new HttpError(response.statusText || \"\", response.statusCode);\r\n this._running = false;\r\n }\r\n else {\r\n // Process the response\r\n if (response.content) {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) data received. ${getDataDetail(response.content, this._options.logMessageContent)}.`);\r\n if (this.onreceive) {\r\n this.onreceive(response.content);\r\n }\r\n }\r\n else {\r\n // This is another way timeout manifest.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n if (!this._running) {\r\n // Log but disregard errors that occur after stopping\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Poll errored after shutdown: ${e.message}`);\r\n }\r\n else {\r\n if (e instanceof TimeoutError) {\r\n // Ignore timeouts and reissue the poll.\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Poll timed out, reissuing.\");\r\n }\r\n else {\r\n // Close the connection with the error as the result.\r\n this._closeError = e;\r\n this._running = false;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Polling complete.\");\r\n // We will reach here with pollAborted==false when the server returned a response causing the transport to stop.\r\n // If pollAborted==true then client initiated the stop and the stop method will raise the close event after DELETE is sent.\r\n if (!this.pollAborted) {\r\n this._raiseOnClose();\r\n }\r\n }\r\n }\r\n async send(data) {\r\n if (!this._running) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"LongPolling\", this._httpClient, this._url, data, this._options);\r\n }\r\n async stop() {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stopping polling.\");\r\n // Tell receiving loop to stop, abort any current request, and then wait for it to finish\r\n this._running = false;\r\n this._pollAbort.abort();\r\n try {\r\n await this._receiving;\r\n // Send DELETE to clean up long polling on the server\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) sending DELETE request to ${this._url}.`);\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const deleteOptions = {\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n };\r\n let error;\r\n try {\r\n await this._httpClient.delete(this._url, deleteOptions);\r\n }\r\n catch (err) {\r\n error = err;\r\n }\r\n if (error) {\r\n if (error instanceof HttpError) {\r\n if (error.statusCode === 404) {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) A 404 response was returned from sending a DELETE request.\");\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, `(LongPolling transport) Error sending a DELETE request: ${error}`);\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) DELETE request accepted.\");\r\n }\r\n }\r\n finally {\r\n this._logger.log(LogLevel.Trace, \"(LongPolling transport) Stop finished.\");\r\n // Raise close event here instead of in polling\r\n // It needs to happen after the DELETE request is sent\r\n this._raiseOnClose();\r\n }\r\n }\r\n _raiseOnClose() {\r\n if (this.onclose) {\r\n let logMessage = \"(LongPolling transport) Firing onclose event.\";\r\n if (this._closeError) {\r\n logMessage += \" Error: \" + this._closeError;\r\n }\r\n this._logger.log(LogLevel.Trace, logMessage);\r\n this.onclose(this._closeError);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform, sendMessage } from \"./Utils\";\r\n/** @private */\r\nexport class ServerSentEventsTransport {\r\n constructor(httpClient, accessToken, logger, options) {\r\n this._httpClient = httpClient;\r\n this._accessToken = accessToken;\r\n this._logger = logger;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(SSE transport) Connecting.\");\r\n // set url before accessTokenFactory because this._url is only for send and we set the auth header instead of the query string for send\r\n this._url = url;\r\n if (this._accessToken) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(this._accessToken)}`;\r\n }\r\n return new Promise((resolve, reject) => {\r\n let opened = false;\r\n if (transferFormat !== TransferFormat.Text) {\r\n reject(new Error(\"The Server-Sent Events transport only supports the 'Text' transfer format\"));\r\n return;\r\n }\r\n let eventSource;\r\n if (Platform.isBrowser || Platform.isWebWorker) {\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials });\r\n }\r\n else {\r\n // Non-browser passes cookies via the dictionary\r\n const cookies = this._httpClient.getCookieString(url);\r\n const headers = {};\r\n headers.Cookie = cookies;\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n eventSource = new this._options.EventSource(url, { withCredentials: this._options.withCredentials, headers: { ...headers, ...this._options.headers } });\r\n }\r\n try {\r\n eventSource.onmessage = (e) => {\r\n if (this.onreceive) {\r\n try {\r\n this._logger.log(LogLevel.Trace, `(SSE transport) data received. ${getDataDetail(e.data, this._options.logMessageContent)}.`);\r\n this.onreceive(e.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n // @ts-ignore: not using event on purpose\r\n eventSource.onerror = (e) => {\r\n // EventSource doesn't give any useful information about server side closes.\r\n if (opened) {\r\n this._close();\r\n }\r\n else {\r\n reject(new Error(\"EventSource failed to connect. The connection could not be found on the server,\"\r\n + \" either the connection ID is not present on the server, or a proxy is refusing/buffering the connection.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\"));\r\n }\r\n };\r\n eventSource.onopen = () => {\r\n this._logger.log(LogLevel.Information, `SSE connected to ${this._url}`);\r\n this._eventSource = eventSource;\r\n opened = true;\r\n resolve();\r\n };\r\n }\r\n catch (e) {\r\n reject(e);\r\n return;\r\n }\r\n });\r\n }\r\n async send(data) {\r\n if (!this._eventSource) {\r\n return Promise.reject(new Error(\"Cannot send until the transport is connected\"));\r\n }\r\n return sendMessage(this._logger, \"SSE\", this._httpClient, this._url, data, this._options);\r\n }\r\n stop() {\r\n this._close();\r\n return Promise.resolve();\r\n }\r\n _close(e) {\r\n if (this._eventSource) {\r\n this._eventSource.close();\r\n this._eventSource = undefined;\r\n if (this.onclose) {\r\n this.onclose(e);\r\n }\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HeaderNames } from \"./HeaderNames\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { Arg, getDataDetail, getUserAgentHeader, Platform } from \"./Utils\";\r\n/** @private */\r\nexport class WebSocketTransport {\r\n constructor(httpClient, accessTokenFactory, logger, logMessageContent, webSocketConstructor, headers) {\r\n this._logger = logger;\r\n this._accessTokenFactory = accessTokenFactory;\r\n this._logMessageContent = logMessageContent;\r\n this._webSocketConstructor = webSocketConstructor;\r\n this._httpClient = httpClient;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n this._headers = headers;\r\n }\r\n async connect(url, transferFormat) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isRequired(transferFormat, \"transferFormat\");\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) Connecting.\");\r\n let token;\r\n if (this._accessTokenFactory) {\r\n token = await this._accessTokenFactory();\r\n }\r\n return new Promise((resolve, reject) => {\r\n url = url.replace(/^http/, \"ws\");\r\n let webSocket;\r\n const cookies = this._httpClient.getCookieString(url);\r\n let opened = false;\r\n if (Platform.isNode || Platform.isReactNative) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n if (token) {\r\n headers[HeaderNames.Authorization] = `Bearer ${token}`;\r\n }\r\n if (cookies) {\r\n headers[HeaderNames.Cookie] = cookies;\r\n }\r\n // Only pass headers when in non-browser environments\r\n webSocket = new this._webSocketConstructor(url, undefined, {\r\n headers: { ...headers, ...this._headers },\r\n });\r\n }\r\n else {\r\n if (token) {\r\n url += (url.indexOf(\"?\") < 0 ? \"?\" : \"&\") + `access_token=${encodeURIComponent(token)}`;\r\n }\r\n }\r\n if (!webSocket) {\r\n // Chrome is not happy with passing 'undefined' as protocol\r\n webSocket = new this._webSocketConstructor(url);\r\n }\r\n if (transferFormat === TransferFormat.Binary) {\r\n webSocket.binaryType = \"arraybuffer\";\r\n }\r\n webSocket.onopen = (_event) => {\r\n this._logger.log(LogLevel.Information, `WebSocket connected to ${url}.`);\r\n this._webSocket = webSocket;\r\n opened = true;\r\n resolve();\r\n };\r\n webSocket.onerror = (event) => {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"There was an error with the transport\";\r\n }\r\n this._logger.log(LogLevel.Information, `(WebSockets transport) ${error}.`);\r\n };\r\n webSocket.onmessage = (message) => {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) data received. ${getDataDetail(message.data, this._logMessageContent)}.`);\r\n if (this.onreceive) {\r\n try {\r\n this.onreceive(message.data);\r\n }\r\n catch (error) {\r\n this._close(error);\r\n return;\r\n }\r\n }\r\n };\r\n webSocket.onclose = (event) => {\r\n // Don't call close handler if connection was never established\r\n // We'll reject the connect call instead\r\n if (opened) {\r\n this._close(event);\r\n }\r\n else {\r\n let error = null;\r\n // ErrorEvent is a browser only type we need to check if the type exists before using it\r\n if (typeof ErrorEvent !== \"undefined\" && event instanceof ErrorEvent) {\r\n error = event.error;\r\n }\r\n else {\r\n error = \"WebSocket failed to connect. The connection could not be found on the server,\"\r\n + \" either the endpoint may not be a SignalR endpoint,\"\r\n + \" the connection ID is not present on the server, or there is a proxy blocking WebSockets.\"\r\n + \" If you have multiple servers check that sticky sessions are enabled.\";\r\n }\r\n reject(new Error(error));\r\n }\r\n };\r\n });\r\n }\r\n send(data) {\r\n if (this._webSocket && this._webSocket.readyState === this._webSocketConstructor.OPEN) {\r\n this._logger.log(LogLevel.Trace, `(WebSockets transport) sending data. ${getDataDetail(data, this._logMessageContent)}.`);\r\n this._webSocket.send(data);\r\n return Promise.resolve();\r\n }\r\n return Promise.reject(\"WebSocket is not in the OPEN state\");\r\n }\r\n stop() {\r\n if (this._webSocket) {\r\n // Manually invoke onclose callback inline so we know the HttpConnection was closed properly before returning\r\n // This also solves an issue where websocket.onclose could take 18+ seconds to trigger during network disconnects\r\n this._close(undefined);\r\n }\r\n return Promise.resolve();\r\n }\r\n _close(event) {\r\n // webSocket will be null if the transport did not start successfully\r\n if (this._webSocket) {\r\n // Clear websocket handlers because we are considering the socket closed now\r\n this._webSocket.onclose = () => { };\r\n this._webSocket.onmessage = () => { };\r\n this._webSocket.onerror = () => { };\r\n this._webSocket.close();\r\n this._webSocket = undefined;\r\n }\r\n this._logger.log(LogLevel.Trace, \"(WebSockets transport) socket closed.\");\r\n if (this.onclose) {\r\n if (this._isCloseEvent(event) && (event.wasClean === false || event.code !== 1000)) {\r\n this.onclose(new Error(`WebSocket closed with status code: ${event.code} (${event.reason || \"no reason given\"}).`));\r\n }\r\n else if (event instanceof Error) {\r\n this.onclose(event);\r\n }\r\n else {\r\n this.onclose();\r\n }\r\n }\r\n }\r\n _isCloseEvent(event) {\r\n return event && typeof event.wasClean === \"boolean\" && typeof event.code === \"number\";\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { AccessTokenHttpClient } from \"./AccessTokenHttpClient\";\r\nimport { DefaultHttpClient } from \"./DefaultHttpClient\";\r\nimport { AggregateErrors, DisabledTransportError, FailedToNegotiateWithServerError, FailedToStartTransportError, HttpError, UnsupportedTransportError, AbortError } from \"./Errors\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { HttpTransportType, TransferFormat } from \"./ITransport\";\r\nimport { LongPollingTransport } from \"./LongPollingTransport\";\r\nimport { ServerSentEventsTransport } from \"./ServerSentEventsTransport\";\r\nimport { Arg, createLogger, getUserAgentHeader, Platform } from \"./Utils\";\r\nimport { WebSocketTransport } from \"./WebSocketTransport\";\r\nconst MAX_REDIRECTS = 100;\r\n/** @private */\r\nexport class HttpConnection {\r\n constructor(url, options = {}) {\r\n this._stopPromiseResolver = () => { };\r\n this.features = {};\r\n this._negotiateVersion = 1;\r\n Arg.isRequired(url, \"url\");\r\n this._logger = createLogger(options.logger);\r\n this.baseUrl = this._resolveUrl(url);\r\n options = options || {};\r\n options.logMessageContent = options.logMessageContent === undefined ? false : options.logMessageContent;\r\n if (typeof options.withCredentials === \"boolean\" || options.withCredentials === undefined) {\r\n options.withCredentials = options.withCredentials === undefined ? true : options.withCredentials;\r\n }\r\n else {\r\n throw new Error(\"withCredentials option was not a 'boolean' or 'undefined' value\");\r\n }\r\n options.timeout = options.timeout === undefined ? 100 * 1000 : options.timeout;\r\n let webSocketModule = null;\r\n let eventSourceModule = null;\r\n if (Platform.isNode && typeof require !== \"undefined\") {\r\n // In order to ignore the dynamic require in webpack builds we need to do this magic\r\n // @ts-ignore: TS doesn't know about these names\r\n const requireFunc = typeof __webpack_require__ === \"function\" ? __non_webpack_require__ : require;\r\n webSocketModule = requireFunc(\"ws\");\r\n eventSourceModule = requireFunc(\"eventsource\");\r\n }\r\n if (!Platform.isNode && typeof WebSocket !== \"undefined\" && !options.WebSocket) {\r\n options.WebSocket = WebSocket;\r\n }\r\n else if (Platform.isNode && !options.WebSocket) {\r\n if (webSocketModule) {\r\n options.WebSocket = webSocketModule;\r\n }\r\n }\r\n if (!Platform.isNode && typeof EventSource !== \"undefined\" && !options.EventSource) {\r\n options.EventSource = EventSource;\r\n }\r\n else if (Platform.isNode && !options.EventSource) {\r\n if (typeof eventSourceModule !== \"undefined\") {\r\n options.EventSource = eventSourceModule;\r\n }\r\n }\r\n this._httpClient = new AccessTokenHttpClient(options.httpClient || new DefaultHttpClient(this._logger), options.accessTokenFactory);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this._connectionStarted = false;\r\n this._options = options;\r\n this.onreceive = null;\r\n this.onclose = null;\r\n }\r\n async start(transferFormat) {\r\n transferFormat = transferFormat || TransferFormat.Binary;\r\n Arg.isIn(transferFormat, TransferFormat, \"transferFormat\");\r\n this._logger.log(LogLevel.Debug, `Starting connection with transfer format '${TransferFormat[transferFormat]}'.`);\r\n if (this._connectionState !== \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n return Promise.reject(new Error(\"Cannot start an HttpConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = \"Connecting\" /* ConnectionState.Connecting */;\r\n this._startInternalPromise = this._startInternal(transferFormat);\r\n await this._startInternalPromise;\r\n // The TypeScript compiler thinks that connectionState must be Connecting here. The TypeScript compiler is wrong.\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"Failed to start the HttpConnection before stop() was called.\";\r\n this._logger.log(LogLevel.Error, message);\r\n // We cannot await stopPromise inside startInternal since stopInternal awaits the startInternalPromise.\r\n await this._stopPromise;\r\n return Promise.reject(new AbortError(message));\r\n }\r\n else if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n // stop() was called and transitioned the client into the Disconnecting state.\r\n const message = \"HttpConnection.startInternal completed gracefully but didn't enter the connection into the connected state!\";\r\n this._logger.log(LogLevel.Error, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n this._connectionStarted = true;\r\n }\r\n send(data) {\r\n if (this._connectionState !== \"Connected\" /* ConnectionState.Connected */) {\r\n return Promise.reject(new Error(\"Cannot send data if the connection is not in the 'Connected' State.\"));\r\n }\r\n if (!this._sendQueue) {\r\n this._sendQueue = new TransportSendQueue(this.transport);\r\n }\r\n // Transport will not be null if state is connected\r\n return this._sendQueue.send(data);\r\n }\r\n async stop(error) {\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n this._connectionState = \"Disconnecting\" /* ConnectionState.Disconnecting */;\r\n this._stopPromise = new Promise((resolve) => {\r\n // Don't complete stop() until stopConnection() completes.\r\n this._stopPromiseResolver = resolve;\r\n });\r\n // stopInternal should never throw so just observe it.\r\n await this._stopInternal(error);\r\n await this._stopPromise;\r\n }\r\n async _stopInternal(error) {\r\n // Set error as soon as possible otherwise there is a race between\r\n // the transport closing and providing an error and the error from a close message\r\n // We would prefer the close message error.\r\n this._stopError = error;\r\n try {\r\n await this._startInternalPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n // The transport's onclose will trigger stopConnection which will run our onclose event.\r\n // The transport should always be set if currently connected. If it wasn't set, it's likely because\r\n // stop was called during start() and start() failed.\r\n if (this.transport) {\r\n try {\r\n await this.transport.stop();\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.transport.stop() threw error '${e}'.`);\r\n this._stopConnection();\r\n }\r\n this.transport = undefined;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"HttpConnection.transport is undefined in HttpConnection.stop() because start() failed.\");\r\n }\r\n }\r\n async _startInternal(transferFormat) {\r\n // Store the original base url and the access token factory since they may change\r\n // as part of negotiating\r\n let url = this.baseUrl;\r\n this._accessTokenFactory = this._options.accessTokenFactory;\r\n this._httpClient._accessTokenFactory = this._accessTokenFactory;\r\n try {\r\n if (this._options.skipNegotiation) {\r\n if (this._options.transport === HttpTransportType.WebSockets) {\r\n // No need to add a connection ID in this case\r\n this.transport = this._constructTransport(HttpTransportType.WebSockets);\r\n // We should just call connect directly in this case.\r\n // No fallback or negotiate in this case.\r\n await this._startTransport(url, transferFormat);\r\n }\r\n else {\r\n throw new Error(\"Negotiation can only be skipped when using the WebSocket transport directly.\");\r\n }\r\n }\r\n else {\r\n let negotiateResponse = null;\r\n let redirects = 0;\r\n do {\r\n negotiateResponse = await this._getNegotiationResponse(url);\r\n // the user tries to stop the connection when it is being started\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */ || this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n throw new AbortError(\"The connection was stopped during negotiation.\");\r\n }\r\n if (negotiateResponse.error) {\r\n throw new Error(negotiateResponse.error);\r\n }\r\n if (negotiateResponse.ProtocolVersion) {\r\n throw new Error(\"Detected a connection attempt to an ASP.NET SignalR Server. This client only supports connecting to an ASP.NET Core SignalR Server. See https://aka.ms/signalr-core-differences for details.\");\r\n }\r\n if (negotiateResponse.url) {\r\n url = negotiateResponse.url;\r\n }\r\n if (negotiateResponse.accessToken) {\r\n // Replace the current access token factory with one that uses\r\n // the returned access token\r\n const accessToken = negotiateResponse.accessToken;\r\n this._accessTokenFactory = () => accessToken;\r\n // set the factory to undefined so the AccessTokenHttpClient won't retry with the same token, since we know it won't change until a connection restart\r\n this._httpClient._accessToken = accessToken;\r\n this._httpClient._accessTokenFactory = undefined;\r\n }\r\n redirects++;\r\n } while (negotiateResponse.url && redirects < MAX_REDIRECTS);\r\n if (redirects === MAX_REDIRECTS && negotiateResponse.url) {\r\n throw new Error(\"Negotiate redirection limit exceeded.\");\r\n }\r\n await this._createTransport(url, this._options.transport, negotiateResponse, transferFormat);\r\n }\r\n if (this.transport instanceof LongPollingTransport) {\r\n this.features.inherentKeepAlive = true;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n // Ensure the connection transitions to the connected state prior to completing this.startInternalPromise.\r\n // start() will handle the case when stop was called and startInternal exits still in the disconnecting state.\r\n this._logger.log(LogLevel.Debug, \"The HttpConnection connected successfully.\");\r\n this._connectionState = \"Connected\" /* ConnectionState.Connected */;\r\n }\r\n // stop() is waiting on us via this.startInternalPromise so keep this.transport around so it can clean up.\r\n // This is the only case startInternal can exit in neither the connected nor disconnected state because stopConnection()\r\n // will transition to the disconnected state. start() will wait for the transition using the stopPromise.\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, \"Failed to start the connection: \" + e);\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n this.transport = undefined;\r\n // if start fails, any active calls to stop assume that start will complete the stop promise\r\n this._stopPromiseResolver();\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _getNegotiationResponse(url) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n const negotiateUrl = this._resolveNegotiateUrl(url);\r\n this._logger.log(LogLevel.Debug, `Sending negotiation request: ${negotiateUrl}.`);\r\n try {\r\n const response = await this._httpClient.post(negotiateUrl, {\r\n content: \"\",\r\n headers: { ...headers, ...this._options.headers },\r\n timeout: this._options.timeout,\r\n withCredentials: this._options.withCredentials,\r\n });\r\n if (response.statusCode !== 200) {\r\n return Promise.reject(new Error(`Unexpected status code returned from negotiate '${response.statusCode}'`));\r\n }\r\n const negotiateResponse = JSON.parse(response.content);\r\n if (!negotiateResponse.negotiateVersion || negotiateResponse.negotiateVersion < 1) {\r\n // Negotiate version 0 doesn't use connectionToken\r\n // So we set it equal to connectionId so all our logic can use connectionToken without being aware of the negotiate version\r\n negotiateResponse.connectionToken = negotiateResponse.connectionId;\r\n }\r\n if (negotiateResponse.useStatefulReconnect && this._options._useStatefulReconnect !== true) {\r\n return Promise.reject(new FailedToNegotiateWithServerError(\"Client didn't negotiate Stateful Reconnect but the server did.\"));\r\n }\r\n return negotiateResponse;\r\n }\r\n catch (e) {\r\n let errorMessage = \"Failed to complete negotiation with the server: \" + e;\r\n if (e instanceof HttpError) {\r\n if (e.statusCode === 404) {\r\n errorMessage = errorMessage + \" Either this is not a SignalR endpoint or there is a proxy blocking the connection.\";\r\n }\r\n }\r\n this._logger.log(LogLevel.Error, errorMessage);\r\n return Promise.reject(new FailedToNegotiateWithServerError(errorMessage));\r\n }\r\n }\r\n _createConnectUrl(url, connectionToken) {\r\n if (!connectionToken) {\r\n return url;\r\n }\r\n return url + (url.indexOf(\"?\") === -1 ? \"?\" : \"&\") + `id=${connectionToken}`;\r\n }\r\n async _createTransport(url, requestedTransport, negotiateResponse, requestedTransferFormat) {\r\n let connectUrl = this._createConnectUrl(url, negotiateResponse.connectionToken);\r\n if (this._isITransport(requestedTransport)) {\r\n this._logger.log(LogLevel.Debug, \"Connection was provided an instance of ITransport, using that directly.\");\r\n this.transport = requestedTransport;\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiateResponse.connectionId;\r\n return;\r\n }\r\n const transportExceptions = [];\r\n const transports = negotiateResponse.availableTransports || [];\r\n let negotiate = negotiateResponse;\r\n for (const endpoint of transports) {\r\n const transportOrError = this._resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, (negotiate === null || negotiate === void 0 ? void 0 : negotiate.useStatefulReconnect) === true);\r\n if (transportOrError instanceof Error) {\r\n // Store the error and continue, we don't want to cause a re-negotiate in these cases\r\n transportExceptions.push(`${endpoint.transport} failed:`);\r\n transportExceptions.push(transportOrError);\r\n }\r\n else if (this._isITransport(transportOrError)) {\r\n this.transport = transportOrError;\r\n if (!negotiate) {\r\n try {\r\n negotiate = await this._getNegotiationResponse(url);\r\n }\r\n catch (ex) {\r\n return Promise.reject(ex);\r\n }\r\n connectUrl = this._createConnectUrl(url, negotiate.connectionToken);\r\n }\r\n try {\r\n await this._startTransport(connectUrl, requestedTransferFormat);\r\n this.connectionId = negotiate.connectionId;\r\n return;\r\n }\r\n catch (ex) {\r\n this._logger.log(LogLevel.Error, `Failed to start the transport '${endpoint.transport}': ${ex}`);\r\n negotiate = undefined;\r\n transportExceptions.push(new FailedToStartTransportError(`${endpoint.transport} failed: ${ex}`, HttpTransportType[endpoint.transport]));\r\n if (this._connectionState !== \"Connecting\" /* ConnectionState.Connecting */) {\r\n const message = \"Failed to select transport before stop() was called.\";\r\n this._logger.log(LogLevel.Debug, message);\r\n return Promise.reject(new AbortError(message));\r\n }\r\n }\r\n }\r\n }\r\n if (transportExceptions.length > 0) {\r\n return Promise.reject(new AggregateErrors(`Unable to connect to the server with any of the available transports. ${transportExceptions.join(\" \")}`, transportExceptions));\r\n }\r\n return Promise.reject(new Error(\"None of the transports supported by the client are supported by the server.\"));\r\n }\r\n _constructTransport(transport) {\r\n switch (transport) {\r\n case HttpTransportType.WebSockets:\r\n if (!this._options.WebSocket) {\r\n throw new Error(\"'WebSocket' is not supported in your environment.\");\r\n }\r\n return new WebSocketTransport(this._httpClient, this._accessTokenFactory, this._logger, this._options.logMessageContent, this._options.WebSocket, this._options.headers || {});\r\n case HttpTransportType.ServerSentEvents:\r\n if (!this._options.EventSource) {\r\n throw new Error(\"'EventSource' is not supported in your environment.\");\r\n }\r\n return new ServerSentEventsTransport(this._httpClient, this._httpClient._accessToken, this._logger, this._options);\r\n case HttpTransportType.LongPolling:\r\n return new LongPollingTransport(this._httpClient, this._logger, this._options);\r\n default:\r\n throw new Error(`Unknown transport: ${transport}.`);\r\n }\r\n }\r\n _startTransport(url, transferFormat) {\r\n this.transport.onreceive = this.onreceive;\r\n if (this.features.reconnect) {\r\n this.transport.onclose = async (e) => {\r\n let callStop = false;\r\n if (this.features.reconnect) {\r\n try {\r\n this.features.disconnected();\r\n await this.transport.connect(url, transferFormat);\r\n await this.features.resend();\r\n }\r\n catch {\r\n callStop = true;\r\n }\r\n }\r\n else {\r\n this._stopConnection(e);\r\n return;\r\n }\r\n if (callStop) {\r\n this._stopConnection(e);\r\n }\r\n };\r\n }\r\n else {\r\n this.transport.onclose = (e) => this._stopConnection(e);\r\n }\r\n return this.transport.connect(url, transferFormat);\r\n }\r\n _resolveTransportOrError(endpoint, requestedTransport, requestedTransferFormat, useStatefulReconnect) {\r\n const transport = HttpTransportType[endpoint.transport];\r\n if (transport === null || transport === undefined) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n return new Error(`Skipping transport '${endpoint.transport}' because it is not supported by this client.`);\r\n }\r\n else {\r\n if (transportMatches(requestedTransport, transport)) {\r\n const transferFormats = endpoint.transferFormats.map((s) => TransferFormat[s]);\r\n if (transferFormats.indexOf(requestedTransferFormat) >= 0) {\r\n if ((transport === HttpTransportType.WebSockets && !this._options.WebSocket) ||\r\n (transport === HttpTransportType.ServerSentEvents && !this._options.EventSource)) {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it is not supported in your environment.'`);\r\n return new UnsupportedTransportError(`'${HttpTransportType[transport]}' is not supported in your environment.`, transport);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Selecting transport '${HttpTransportType[transport]}'.`);\r\n try {\r\n this.features.reconnect = transport === HttpTransportType.WebSockets ? useStatefulReconnect : undefined;\r\n return this._constructTransport(transport);\r\n }\r\n catch (ex) {\r\n return ex;\r\n }\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it does not support the requested transfer format '${TransferFormat[requestedTransferFormat]}'.`);\r\n return new Error(`'${HttpTransportType[transport]}' does not support ${TransferFormat[requestedTransferFormat]}.`);\r\n }\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, `Skipping transport '${HttpTransportType[transport]}' because it was disabled by the client.`);\r\n return new DisabledTransportError(`'${HttpTransportType[transport]}' is disabled by the client.`, transport);\r\n }\r\n }\r\n }\r\n _isITransport(transport) {\r\n return transport && typeof (transport) === \"object\" && \"connect\" in transport;\r\n }\r\n _stopConnection(error) {\r\n this._logger.log(LogLevel.Debug, `HttpConnection.stopConnection(${error}) called while in state ${this._connectionState}.`);\r\n this.transport = undefined;\r\n // If we have a stopError, it takes precedence over the error from the transport\r\n error = this._stopError || error;\r\n this._stopError = undefined;\r\n if (this._connectionState === \"Disconnected\" /* ConnectionState.Disconnected */) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is already in the disconnected state.`);\r\n return;\r\n }\r\n if (this._connectionState === \"Connecting\" /* ConnectionState.Connecting */) {\r\n this._logger.log(LogLevel.Warning, `Call to HttpConnection.stopConnection(${error}) was ignored because the connection is still in the connecting state.`);\r\n throw new Error(`HttpConnection.stopConnection(${error}) was called while the connection is still in the connecting state.`);\r\n }\r\n if (this._connectionState === \"Disconnecting\" /* ConnectionState.Disconnecting */) {\r\n // A call to stop() induced this call to stopConnection and needs to be completed.\r\n // Any stop() awaiters will be scheduled to continue after the onclose callback fires.\r\n this._stopPromiseResolver();\r\n }\r\n if (error) {\r\n this._logger.log(LogLevel.Error, `Connection disconnected with error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection disconnected.\");\r\n }\r\n if (this._sendQueue) {\r\n this._sendQueue.stop().catch((e) => {\r\n this._logger.log(LogLevel.Error, `TransportSendQueue.stop() threw error '${e}'.`);\r\n });\r\n this._sendQueue = undefined;\r\n }\r\n this.connectionId = undefined;\r\n this._connectionState = \"Disconnected\" /* ConnectionState.Disconnected */;\r\n if (this._connectionStarted) {\r\n this._connectionStarted = false;\r\n try {\r\n if (this.onclose) {\r\n this.onclose(error);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `HttpConnection.onclose(${error}) threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n _resolveUrl(url) {\r\n // startsWith is not supported in IE\r\n if (url.lastIndexOf(\"https://\", 0) === 0 || url.lastIndexOf(\"http://\", 0) === 0) {\r\n return url;\r\n }\r\n if (!Platform.isBrowser) {\r\n throw new Error(`Cannot resolve '${url}'.`);\r\n }\r\n // Setting the url to the href propery of an anchor tag handles normalization\r\n // for us. There are 3 main cases.\r\n // 1. Relative path normalization e.g \"b\" -> \"http://localhost:5000/a/b\"\r\n // 2. Absolute path normalization e.g \"/a/b\" -> \"http://localhost:5000/a/b\"\r\n // 3. Networkpath reference normalization e.g \"//localhost:5000/a/b\" -> \"http://localhost:5000/a/b\"\r\n const aTag = window.document.createElement(\"a\");\r\n aTag.href = url;\r\n this._logger.log(LogLevel.Information, `Normalizing '${url}' to '${aTag.href}'.`);\r\n return aTag.href;\r\n }\r\n _resolveNegotiateUrl(url) {\r\n const negotiateUrl = new URL(url);\r\n if (negotiateUrl.pathname.endsWith('/')) {\r\n negotiateUrl.pathname += \"negotiate\";\r\n }\r\n else {\r\n negotiateUrl.pathname += \"/negotiate\";\r\n }\r\n const searchParams = new URLSearchParams(negotiateUrl.searchParams);\r\n if (!searchParams.has(\"negotiateVersion\")) {\r\n searchParams.append(\"negotiateVersion\", this._negotiateVersion.toString());\r\n }\r\n if (searchParams.has(\"useStatefulReconnect\")) {\r\n if (searchParams.get(\"useStatefulReconnect\") === \"true\") {\r\n this._options._useStatefulReconnect = true;\r\n }\r\n }\r\n else if (this._options._useStatefulReconnect === true) {\r\n searchParams.append(\"useStatefulReconnect\", \"true\");\r\n }\r\n negotiateUrl.search = searchParams.toString();\r\n return negotiateUrl.toString();\r\n }\r\n}\r\nfunction transportMatches(requestedTransport, actualTransport) {\r\n return !requestedTransport || ((actualTransport & requestedTransport) !== 0);\r\n}\r\n/** @private */\r\nexport class TransportSendQueue {\r\n constructor(_transport) {\r\n this._transport = _transport;\r\n this._buffer = [];\r\n this._executing = true;\r\n this._sendBufferedData = new PromiseSource();\r\n this._transportResult = new PromiseSource();\r\n this._sendLoopPromise = this._sendLoop();\r\n }\r\n send(data) {\r\n this._bufferData(data);\r\n if (!this._transportResult) {\r\n this._transportResult = new PromiseSource();\r\n }\r\n return this._transportResult.promise;\r\n }\r\n stop() {\r\n this._executing = false;\r\n this._sendBufferedData.resolve();\r\n return this._sendLoopPromise;\r\n }\r\n _bufferData(data) {\r\n if (this._buffer.length && typeof (this._buffer[0]) !== typeof (data)) {\r\n throw new Error(`Expected data to be of type ${typeof (this._buffer)} but was of type ${typeof (data)}`);\r\n }\r\n this._buffer.push(data);\r\n this._sendBufferedData.resolve();\r\n }\r\n async _sendLoop() {\r\n while (true) {\r\n await this._sendBufferedData.promise;\r\n if (!this._executing) {\r\n if (this._transportResult) {\r\n this._transportResult.reject(\"Connection stopped.\");\r\n }\r\n break;\r\n }\r\n this._sendBufferedData = new PromiseSource();\r\n const transportResult = this._transportResult;\r\n this._transportResult = undefined;\r\n const data = typeof (this._buffer[0]) === \"string\" ?\r\n this._buffer.join(\"\") :\r\n TransportSendQueue._concatBuffers(this._buffer);\r\n this._buffer.length = 0;\r\n try {\r\n await this._transport.send(data);\r\n transportResult.resolve();\r\n }\r\n catch (error) {\r\n transportResult.reject(error);\r\n }\r\n }\r\n }\r\n static _concatBuffers(arrayBuffers) {\r\n const totalLength = arrayBuffers.map((b) => b.byteLength).reduce((a, b) => a + b);\r\n const result = new Uint8Array(totalLength);\r\n let offset = 0;\r\n for (const item of arrayBuffers) {\r\n result.set(new Uint8Array(item), offset);\r\n offset += item.byteLength;\r\n }\r\n return result.buffer;\r\n }\r\n}\r\nclass PromiseSource {\r\n constructor() {\r\n this.promise = new Promise((resolve, reject) => [this._resolver, this._rejecter] = [resolve, reject]);\r\n }\r\n resolve() {\r\n this._resolver();\r\n }\r\n reject(reason) {\r\n this._rejecter(reason);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { TransferFormat } from \"./ITransport\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nconst JSON_HUB_PROTOCOL_NAME = \"json\";\r\n/** Implements the JSON Hub Protocol. */\r\nexport class JsonHubProtocol {\r\n constructor() {\r\n /** @inheritDoc */\r\n this.name = JSON_HUB_PROTOCOL_NAME;\r\n /** @inheritDoc */\r\n this.version = 2;\r\n /** @inheritDoc */\r\n this.transferFormat = TransferFormat.Text;\r\n }\r\n /** Creates an array of {@link @microsoft/signalr.HubMessage} objects from the specified serialized representation.\r\n *\r\n * @param {string} input A string containing the serialized representation.\r\n * @param {ILogger} logger A logger that will be used to log messages that occur during parsing.\r\n */\r\n parseMessages(input, logger) {\r\n // The interface does allow \"ArrayBuffer\" to be passed in, but this implementation does not. So let's throw a useful error.\r\n if (typeof input !== \"string\") {\r\n throw new Error(\"Invalid input for JSON hub protocol. Expected a string.\");\r\n }\r\n if (!input) {\r\n return [];\r\n }\r\n if (logger === null) {\r\n logger = NullLogger.instance;\r\n }\r\n // Parse the messages\r\n const messages = TextMessageFormat.parse(input);\r\n const hubMessages = [];\r\n for (const message of messages) {\r\n const parsedMessage = JSON.parse(message);\r\n if (typeof parsedMessage.type !== \"number\") {\r\n throw new Error(\"Invalid payload.\");\r\n }\r\n switch (parsedMessage.type) {\r\n case MessageType.Invocation:\r\n this._isInvocationMessage(parsedMessage);\r\n break;\r\n case MessageType.StreamItem:\r\n this._isStreamItemMessage(parsedMessage);\r\n break;\r\n case MessageType.Completion:\r\n this._isCompletionMessage(parsedMessage);\r\n break;\r\n case MessageType.Ping:\r\n // Single value, no need to validate\r\n break;\r\n case MessageType.Close:\r\n // All optional values, no need to validate\r\n break;\r\n case MessageType.Ack:\r\n this._isAckMessage(parsedMessage);\r\n break;\r\n case MessageType.Sequence:\r\n this._isSequenceMessage(parsedMessage);\r\n break;\r\n default:\r\n // Future protocol changes can add message types, old clients can ignore them\r\n logger.log(LogLevel.Information, \"Unknown message type '\" + parsedMessage.type + \"' ignored.\");\r\n continue;\r\n }\r\n hubMessages.push(parsedMessage);\r\n }\r\n return hubMessages;\r\n }\r\n /** Writes the specified {@link @microsoft/signalr.HubMessage} to a string and returns it.\r\n *\r\n * @param {HubMessage} message The message to write.\r\n * @returns {string} A string containing the serialized representation of the message.\r\n */\r\n writeMessage(message) {\r\n return TextMessageFormat.write(JSON.stringify(message));\r\n }\r\n _isInvocationMessage(message) {\r\n this._assertNotEmptyString(message.target, \"Invalid payload for Invocation message.\");\r\n if (message.invocationId !== undefined) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Invocation message.\");\r\n }\r\n }\r\n _isStreamItemMessage(message) {\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for StreamItem message.\");\r\n if (message.item === undefined) {\r\n throw new Error(\"Invalid payload for StreamItem message.\");\r\n }\r\n }\r\n _isCompletionMessage(message) {\r\n if (message.result && message.error) {\r\n throw new Error(\"Invalid payload for Completion message.\");\r\n }\r\n if (!message.result && message.error) {\r\n this._assertNotEmptyString(message.error, \"Invalid payload for Completion message.\");\r\n }\r\n this._assertNotEmptyString(message.invocationId, \"Invalid payload for Completion message.\");\r\n }\r\n _isAckMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Ack message.\");\r\n }\r\n }\r\n _isSequenceMessage(message) {\r\n if (typeof message.sequenceId !== 'number') {\r\n throw new Error(\"Invalid SequenceId for Sequence message.\");\r\n }\r\n }\r\n _assertNotEmptyString(value, errorMessage) {\r\n if (typeof value !== \"string\" || value === \"\") {\r\n throw new Error(errorMessage);\r\n }\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { DefaultReconnectPolicy } from \"./DefaultReconnectPolicy\";\r\nimport { HttpConnection } from \"./HttpConnection\";\r\nimport { HubConnection } from \"./HubConnection\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { JsonHubProtocol } from \"./JsonHubProtocol\";\r\nimport { NullLogger } from \"./Loggers\";\r\nimport { Arg, ConsoleLogger } from \"./Utils\";\r\nconst LogLevelNameMapping = {\r\n trace: LogLevel.Trace,\r\n debug: LogLevel.Debug,\r\n info: LogLevel.Information,\r\n information: LogLevel.Information,\r\n warn: LogLevel.Warning,\r\n warning: LogLevel.Warning,\r\n error: LogLevel.Error,\r\n critical: LogLevel.Critical,\r\n none: LogLevel.None,\r\n};\r\nfunction parseLogLevel(name) {\r\n // Case-insensitive matching via lower-casing\r\n // Yes, I know case-folding is a complicated problem in Unicode, but we only support\r\n // the ASCII strings defined in LogLevelNameMapping anyway, so it's fine -anurse.\r\n const mapping = LogLevelNameMapping[name.toLowerCase()];\r\n if (typeof mapping !== \"undefined\") {\r\n return mapping;\r\n }\r\n else {\r\n throw new Error(`Unknown log level: ${name}`);\r\n }\r\n}\r\n/** A builder for configuring {@link @microsoft/signalr.HubConnection} instances. */\r\nexport class HubConnectionBuilder {\r\n configureLogging(logging) {\r\n Arg.isRequired(logging, \"logging\");\r\n if (isLogger(logging)) {\r\n this.logger = logging;\r\n }\r\n else if (typeof logging === \"string\") {\r\n const logLevel = parseLogLevel(logging);\r\n this.logger = new ConsoleLogger(logLevel);\r\n }\r\n else {\r\n this.logger = new ConsoleLogger(logging);\r\n }\r\n return this;\r\n }\r\n withUrl(url, transportTypeOrOptions) {\r\n Arg.isRequired(url, \"url\");\r\n Arg.isNotEmpty(url, \"url\");\r\n this.url = url;\r\n // Flow-typing knows where it's at. Since HttpTransportType is a number and IHttpConnectionOptions is guaranteed\r\n // to be an object, we know (as does TypeScript) this comparison is all we need to figure out which overload was called.\r\n if (typeof transportTypeOrOptions === \"object\") {\r\n this.httpConnectionOptions = { ...this.httpConnectionOptions, ...transportTypeOrOptions };\r\n }\r\n else {\r\n this.httpConnectionOptions = {\r\n ...this.httpConnectionOptions,\r\n transport: transportTypeOrOptions,\r\n };\r\n }\r\n return this;\r\n }\r\n /** Configures the {@link @microsoft/signalr.HubConnection} to use the specified Hub Protocol.\r\n *\r\n * @param {IHubProtocol} protocol The {@link @microsoft/signalr.IHubProtocol} implementation to use.\r\n */\r\n withHubProtocol(protocol) {\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.protocol = protocol;\r\n return this;\r\n }\r\n withAutomaticReconnect(retryDelaysOrReconnectPolicy) {\r\n if (this.reconnectPolicy) {\r\n throw new Error(\"A reconnectPolicy has already been set.\");\r\n }\r\n if (!retryDelaysOrReconnectPolicy) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy();\r\n }\r\n else if (Array.isArray(retryDelaysOrReconnectPolicy)) {\r\n this.reconnectPolicy = new DefaultReconnectPolicy(retryDelaysOrReconnectPolicy);\r\n }\r\n else {\r\n this.reconnectPolicy = retryDelaysOrReconnectPolicy;\r\n }\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.serverTimeoutInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withServerTimeout(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._serverTimeoutInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Configures {@link @microsoft/signalr.HubConnection.keepAliveIntervalInMilliseconds} for the {@link @microsoft/signalr.HubConnection}.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withKeepAliveInterval(milliseconds) {\r\n Arg.isRequired(milliseconds, \"milliseconds\");\r\n this._keepAliveIntervalInMilliseconds = milliseconds;\r\n return this;\r\n }\r\n /** Enables and configures options for the Stateful Reconnect feature.\r\n *\r\n * @returns The {@link @microsoft/signalr.HubConnectionBuilder} instance, for chaining.\r\n */\r\n withStatefulReconnect(options) {\r\n if (this.httpConnectionOptions === undefined) {\r\n this.httpConnectionOptions = {};\r\n }\r\n this.httpConnectionOptions._useStatefulReconnect = true;\r\n this._statefulReconnectBufferSize = options === null || options === void 0 ? void 0 : options.bufferSize;\r\n return this;\r\n }\r\n /** Creates a {@link @microsoft/signalr.HubConnection} from the configuration options specified in this builder.\r\n *\r\n * @returns {HubConnection} The configured {@link @microsoft/signalr.HubConnection}.\r\n */\r\n build() {\r\n // If httpConnectionOptions has a logger, use it. Otherwise, override it with the one\r\n // provided to configureLogger\r\n const httpConnectionOptions = this.httpConnectionOptions || {};\r\n // If it's 'null', the user **explicitly** asked for null, don't mess with it.\r\n if (httpConnectionOptions.logger === undefined) {\r\n // If our logger is undefined or null, that's OK, the HttpConnection constructor will handle it.\r\n httpConnectionOptions.logger = this.logger;\r\n }\r\n // Now create the connection\r\n if (!this.url) {\r\n throw new Error(\"The 'HubConnectionBuilder.withUrl' method must be called before building the connection.\");\r\n }\r\n const connection = new HttpConnection(this.url, httpConnectionOptions);\r\n return HubConnection.create(connection, this.logger || NullLogger.instance, this.protocol || new JsonHubProtocol(), this.reconnectPolicy, this._serverTimeoutInMilliseconds, this._keepAliveIntervalInMilliseconds, this._statefulReconnectBufferSize);\r\n }\r\n}\r\nfunction isLogger(logger) {\r\n return logger.log !== undefined;\r\n}\r\n","import * as signalR from \"@microsoft/signalr\";\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { UserService } from '@Services/user-service';\r\nimport { UserInfo } from './UserInfo';\r\nimport { LoggingService } from \"@Services/logging-service\";\r\nimport { SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport { SyncHubStatusService } from \"@Services/sync-hub-status-service\";\r\nimport { environment } from \"src/environments/environment\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\nexport abstract class BaseHub {\r\n protected hubConnection: signalR.HubConnection;\r\n protected user: UserInfo;\r\n protected delayedGroupJoins: Set = new Set();\r\n\r\n protected hubName: string = this.constructor.name;\r\n protected route: string;\r\n\r\n private _isPolling: boolean = false;\r\n\r\n public get isPolling(): boolean {\r\n return this._isPolling;\r\n }\r\n\r\n constructor(\r\n protected userService: UserService,\r\n protected auth: AuthService,\r\n protected logger: LoggingService,\r\n protected statusService: SyncHubStatusService\r\n ) {\r\n let self = this;\r\n\r\n this.userService.User$\r\n .pipe(takeUntilDestroyed())\r\n .subscribe((u: any) => {\r\n if (u) {\r\n self.user = { tenantKey: u[\"@TenantKey\"], userKey: u.Id };\r\n self.initialize();\r\n }\r\n });\r\n }\r\n\r\n protected initialize() { }\r\n protected mapMessageHandlers() { }\r\n\r\n protected onConnectionStartedCallback() { }\r\n protected onReconnectingCallback() {}\r\n protected onConnectionClosedCallback() { }\r\n\r\n protected onPollingStart() {}\r\n protected onPollingStop() {}\r\n\r\n protected getRandomInt(min: number, max: number): number {\r\n min = Math.ceil(min);\r\n max = Math.floor(max);\r\n return Math.floor(Math.random() * (max - min)) + min;\r\n } \r\n\r\n private startPolling() {\r\n if (!this.isPolling) {\r\n this._isPolling = true;\r\n this.onPollingStart();\r\n }\r\n }\r\n\r\n private stopPolling() {\r\n if (this.isPolling) {\r\n this._isPolling = false;\r\n this.onPollingStop();\r\n }\r\n }\r\n\r\n public isConnected(): boolean {\r\n return this.hubConnection && this.hubConnection.state === signalR.HubConnectionState.Connected;\r\n }\r\n\r\n private getAuthToken() {\r\n function getCookie(name: string): string | null {\r\n const cookieString = `; ${document.cookie}`;\r\n const cookies = cookieString.split(`; ${name}=`);\r\n\r\n if (cookies.length === 2)\r\n return cookies.pop()?.split(';').shift() || null;\r\n\r\n return null;\r\n }\r\n\r\n return getCookie(environment.access_token);\r\n }\r\n\r\n public startConnection(): void {\r\n let self = this;\r\n\r\n if (this.hubConnection)\r\n return; // the connection is already defined\r\n\r\n // For local environments, we use proxy/sync and then let the proxy.conf.json file handle the proxying.\r\n var url = environment.syncHost;\r\n var baseUrl = `${url}/${this.route}`;\r\n this.hubConnection = new signalR.HubConnectionBuilder()\r\n .withUrl(baseUrl, {\r\n accessTokenFactory: () => this.getAuthToken()\r\n })\r\n .withAutomaticReconnect([0, 2000, 10000, 20000])\r\n .configureLogging(signalR.LogLevel.Information)\r\n .build();\r\n\r\n this.hubConnection.onclose((error) => {\r\n self.logger.logEvent(`Sync Connection to ${self.hubName} Closed`, {\"error\": error});\r\n self.statusService.setHubState(self.hubName, self.hubConnection.state);\r\n // Wait 2 seconds and try to restart the connection with a new token\r\n setTimeout(() => { restart() }, 2 * 1000);\r\n self.startPolling();\r\n self.onConnectionClosedCallback();\r\n });\r\n\r\n this.hubConnection.onreconnecting((error) => {\r\n self.logger.logEvent(`Attempting to Reconnect To ${self.hubName}`, {\"error\": error}); \r\n self.statusService.setHubState(self.hubName, self.hubConnection.state);\r\n self.startPolling();\r\n self.onReconnectingCallback();\r\n });\r\n\r\n this.hubConnection.onreconnected((connectionId) => {\r\n self.statusService.setHubState(self.hubName, self.hubConnection.state);\r\n self.stopPolling();\r\n self.onConnectionStartedCallback();\r\n self.logger.logEvent(`Sync Service Reconnected to ${self.hubName}`, {\"connectionId\": connectionId});\r\n });\r\n\r\n self.mapMessageHandlers();\r\n\r\n start();\r\n\r\n function start(): void {\r\n self.hubConnection.baseUrl = baseUrl;\r\n self.hubConnection.start()\r\n .then(() => {\r\n self.logger.logInfo(`Connection to ${self.hubName} started.`);\r\n self.statusService.setHubState(self.hubName, self.hubConnection.state);\r\n self.initialize();\r\n self.stopPolling();\r\n self.onConnectionStartedCallback();\r\n })\r\n .catch((err) => {\r\n let error = new Error(`Error while starting connection to ${self.hubName}`);\r\n if (err) {\r\n self.logger.logException(error, SeverityLevel.Error, {originalError: err});\r\n } else {\r\n self.logger.logException(error, SeverityLevel.Error);\r\n } \r\n self.statusService.setHubState(self.hubName, signalR.HubConnectionState.Disconnected);\r\n // Try to reconnect in 5 minutes\r\n setTimeout(() => { restart() }, 5 * 60 * 1000);\r\n self.startPolling();\r\n self.onConnectionClosedCallback();\r\n });\r\n }\r\n\r\n \r\n // A restart is not the same as a reconnect. Because we often get a 401 when trying to reconnect, we need\r\n // a new, refreshed token. So instead of trying to reconnect to the same hub, start a new connection. \r\n function restart(): void {\r\n self.stopPolling();\r\n self.hubConnection = null;\r\n self.startConnection();\r\n }\r\n }\r\n\r\n public join(id: string): boolean {\r\n if (!id) {\r\n return false;\r\n } else if (!this.isConnected() || !this.user) {\r\n this.delayedGroupJoins.add(id);\r\n return false;\r\n }\r\n\r\n this.delayedGroupJoins.delete(id);\r\n this.hubConnection.invoke('Join', id);\r\n return true;\r\n }\r\n\r\n public leave(id: string) {\r\n if (!id) {\r\n return false;\r\n } else if (!this.isConnected() || !this.user) {\r\n this.delayedGroupJoins.delete(id);\r\n return false;\r\n }\r\n\r\n this.hubConnection.invoke('Leave', id);\r\n return true;\r\n }\r\n\r\n}","import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { Observable, of } from \"rxjs\";\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { StartWorkflowDTOProduct } from '@Services//account-workflow-service';\r\nimport { LoadingService } from '@Services//loading-service';\r\nimport { LoggingService } from '@Services//logging-service';\r\n\r\nimport {\r\n Account, AccountActivity, AccountComment, AccountJournalEntry,\r\n AccountRole as AccountAccountRole, Assignable as AccountAssignable, Policy,\r\n PolicySet, RuleSetRiskAssessment, Transaction\r\n} from '@Core/CodeGen/Models/area.models';\r\nimport { AccountRole, Assignable, WorkflowSet } from '@Core/CodeGen/Models/area.models';\r\nimport { AccountContext } from '@Core/Lib/Contexts/account-context';\r\nimport { ContractDate } from '@Core/Lib/contract-date';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { ModelUtils } from \"@Core/Lib/Utils/model-utils\";\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { IServiceResponse, ITypedServiceResponse } from '@Core/Lib/model';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class AccountsService\r\n extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n public static baseUrl: string = BaseService.baseUrl + '/Accounts/';\r\n public static transactionsTemplate: string = ServiceUrls.baseUrl + '{{accountId}}/Transactions/';\r\n public static transactionsListTemplate: string = ServiceUrls.baseUrl + 'Transactions';\r\n public static accountsSearchTemplate: string = ServiceUrls.baseUrl + 'Search';\r\n\r\n public static baseGetUrlSubstituted: string = ServiceUrls.baseUrl + '{{accountId}}/{{item}}';\r\n public static baseGetUrl(accountId: string, item: string): string {\r\n return (ServiceUrls.baseGetUrlSubstituted as string).replace(\"{{accountId}}\", accountId).replace(\"{{item}}\", item);\r\n }\r\n\r\n public static basePostUrlSubstituted: string = ServiceUrls.baseUrl + '{{accountId}}/{{item}}';\r\n public static basePostUrl(accountId: string, item: string): string {\r\n return (ServiceUrls.basePostUrlSubstituted as string).replace(\"{{accountId}}\", accountId).replace(\"{{item}}\", item);\r\n }\r\n\r\n public static basePutUrlSubstituted: string = ServiceUrls.baseUrl + '{{accountId}}/{{item}}/{{itemId}}';\r\n public static basePutUrl(accountId: string, item: string, itemId: string): string {\r\n return (ServiceUrls.basePutUrlSubstituted as string).replace(\"{{accountId}}\", accountId).replace(\"{{item}}\", item)\r\n .replace(\"{{itemId}}\", itemId);\r\n }\r\n\r\n public static activities: string = ServiceUrls.baseUrl + 'Activities';\r\n\r\n public static transactionList(): string {\r\n return ServiceUrls.transactionsListTemplate;\r\n }\r\n\r\n private static riskDetailsUnsubstituted: string = BaseService.baseUrl + '/Data/{{workflowSetId}}/RiskDetail';\r\n public static riskDetails(workflowSetId: string): string {\r\n return (ServiceUrls.riskDetailsUnsubstituted as string).replace(\"{{workflowSetId}}\", workflowSetId)\r\n }\r\n\r\n public static listPolicies(): string {\r\n return ServiceUrls.baseUrl + 'Policies';\r\n }\r\n\r\n private static TransactionLaunchUrlUnsubstituted: string = ServiceUrls.baseUrl + \"{accountId}/Transactions/{transactionId}/Launch\";\r\n public static TransactionLaunchUrl(accountId: string, transactionId: string) {\r\n return this.TransactionLaunchUrlUnsubstituted\r\n .replace(\"{accountId}\", accountId)\r\n .replace(\"{transactionId}\", transactionId);\r\n }\r\n\r\n private static RetrieveTransactionUrlUnsubstituted: string = ServiceUrls.transactionsTemplate + \"{transactionId}\";\r\n public static RetrieveTransactionUrl(accountId: string, transactionId: string){\r\n return this.RetrieveTransactionUrlUnsubstituted\r\n .replace(\"{accountId}\", accountId)\r\n .replace(\"{transactionId}\", transactionId);\r\n }\r\n\r\n private static ChangeSelectionUnsubstituted: string = ServiceUrls.baseUrl + '{accountId}/PolicySets/{policySetId}/ProductSelection';\r\n public static ChangeSelection(accountId: string, policySetId: string) {\r\n return this.ChangeSelectionUnsubstituted\r\n .replace(\"{accountId}\", accountId)\r\n .replace(\"{policySetId}\", policySetId);\r\n }\r\n\r\n private static PoliciesUnsubstituted: string = ServiceUrls.baseUrl + '{accountId}/Policies/{id}';\r\n public static Policies(accountId: string, policyId: string) {\r\n return this.PoliciesUnsubstituted\r\n .replace(\"{accountId}\", accountId)\r\n .replace(\"{id}\", policyId);\r\n }\r\n\r\n private static WorkflowSetsUnsubstituted: string = ServiceUrls.baseUrl + '{accountId}/WorkflowSets';\r\n public static WorkflowSets(accountId: string) {\r\n return this.WorkflowSetsUnsubstituted\r\n .replace(\"{accountId}\", accountId);\r\n }\r\n }\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n // #region Accounts\r\n\r\n public loadAccount(accountContext: DataContext, accountId: string, isInteractive: boolean): Observable {\r\n const interactiveHeader = this.getUserInteractionHeader(isInteractive);\r\n const request = this.http.get(`${this.serviceUrls.baseUrl}${accountId}`,\r\n { headers: interactiveHeader })\r\n .pipe(share());\r\n this.handleNormalGetRequest(Account, request, accountContext);\r\n return request;\r\n }\r\n\r\n // #endregion Accounts\r\n\r\n // #region Policies\r\n\r\n public loadPoliciesByWorkflow(context: AccountContext, workflowId: string, workflowSetId: string): Observable {\r\n const url = this.serviceUrls.listPolicies();\r\n const params = new HttpParams()\r\n .set(\"accountId\", context.accountId)\r\n .set(\"workflowId\", workflowId)\r\n .set(\"workflowSetId\", workflowSetId)\r\n .set(\"includeClosed\", true);\r\n const request = this.http.get(url, { params }).pipe(share());\r\n this.handleNormalGetRequest(Policy, request, context);\r\n return request;\r\n }\r\n\r\n public loadPoliciesByAccount(context: AccountContext, accountId: string): Observable {\r\n const url = this.serviceUrls.listPolicies();\r\n const params = new HttpParams()\r\n .set(\"accountId\", accountId)\r\n .set(\"includeClosed\", true);\r\n const request = this.http.get(url, { params }).pipe(share());\r\n this.handleNormalGetRequest(Policy, request, context);\r\n return request;\r\n }\r\n\r\n public updateCommission(accountId: string, policyId: string, commissionDTO: CommissionDTO, accountContext: AccountContext)\r\n : Observable {\r\n\r\n var url = this.serviceUrls.Policies(accountId, policyId) + '/UpdateCommission';\r\n let request = this.http.put(url, commissionDTO).pipe(share());\r\n this.handleNormalPostPutRequest(Policy, request, accountContext);\r\n return request;\r\n }\r\n\r\n public revertPolicyCommission(accountId: string, policyId: string, accountContext: AccountContext): Observable {\r\n var url = this.serviceUrls.Policies(accountId, policyId) + '/ResetCommission';\r\n let request = this.http.put(url, null).pipe(share());\r\n this.handleNormalPostPutRequest(Policy, request, accountContext);\r\n return request;\r\n }\r\n\r\n // #endregion Policies\r\n\r\n public transactionListFilters: string = \"\";\r\n\r\n public loadTransactions(accountId: string, accountContext: AccountContext, isInteractive: boolean): Observable {\r\n const url = this.serviceUrls.transactionList();\r\n let params = new HttpParams().set(\"accountId\", accountId);\r\n params = params.set(\"includeDeselected\", true);\r\n const interactiveHeader = this.getUserInteractionHeader(isInteractive);\r\n \r\n const request = this.http.get(url, { headers: interactiveHeader, params }).pipe(share());\r\n this.handleNormalGetRequest(Transaction, request, accountContext);\r\n return request;\r\n }\r\n\r\n public loadTransactionsByWorkflow(accountId: string, workflowId: string, workflowSetId: string, accountContext: AccountContext): \r\n Observable {\r\n \r\n const url = this.serviceUrls.transactionList();\r\n const params = new HttpParams()\r\n .set(\"accountId\", accountId)\r\n .set(\"workflowId\", workflowId)\r\n .set(\"workflowSetId\", workflowSetId);\r\n const request = this.http.get(url, { params }).pipe(share());\r\n this.handleNormalGetRequest(Transaction, request, accountContext);\r\n return request;\r\n }\r\n\r\n public retrieveTransaction(accountId: string, transactionId: string, accountContext: AccountContext): Observable {\r\n const url = this.serviceUrls.RetrieveTransactionUrl(accountId, transactionId);\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Transaction, request, accountContext);\r\n return request;\r\n }\r\n\r\n public loadPolicySets(accountId: string, accountContext: AccountContext, isInteractive: boolean): Observable {\r\n const interactiveHeader = this.getUserInteractionHeader(isInteractive);\r\n const request = this.http.get(this.serviceUrls.baseGetUrl(accountId, 'PolicySets'), \r\n {\r\n headers: interactiveHeader,\r\n params: { includeDeleted: true, includeClosed: true }\r\n })\r\n .pipe(share());\r\n this.handleNormalGetRequest(PolicySet, request, accountContext);\r\n return request;\r\n }\r\n\r\n public loadActivities(accountId: string, accountContext: AccountContext): Observable {\r\n const params = new HttpParams().set(\"accountId\", accountId);\r\n\r\n const request = this.http.get(this.serviceUrls.activities, {\r\n params: params\r\n }).pipe(share());\r\n\r\n this.handleNormalGetRequest(AccountActivity, request, accountContext);\r\n return request;\r\n }\r\n\r\n public loadAssignables(context: AccountContext): Observable {\r\n const url = this.serviceUrls.baseGetUrl(context.accountId, \"Assignables\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Assignable, request, context);\r\n this.handleNormalGetRequest(AccountAssignable, request, context);\r\n return request;\r\n }\r\n\r\n //#region Account Roles\r\n\r\n public assignAccountRole(roleId: string, identityId: string, context: AccountContext): Observable {\r\n const url = this.serviceUrls.basePutUrl(context.accountId, \"AccountRoles\", roleId) + '/Assign';\r\n let params = new HttpParams();\r\n if (identityId) {\r\n params = params.set(\"identityId\", identityId);\r\n }\r\n\r\n if (!identityId) {\r\n var role = context.get(ModelUtils.createDomainId(new AccountRole(), roleId)) as AccountRole;\r\n var edges = role.HasMembers();\r\n if (edges) {\r\n context.remove(edges[0]);\r\n }\r\n }\r\n\r\n const request = this.http.put(url, null, { params }).pipe(share());\r\n this.handleNormalPostPutRequest(AccountRole, request, context);\r\n this.handleNormalPostPutRequest(AccountAccountRole, request, context);\r\n\r\n return request;\r\n }\r\n\r\n //#endregion Account Roles\r\n\r\n //#region Journals\r\n\r\n loadJournalEntries(accountId: string, accountContext: AccountContext): Observable {\r\n const request = this.http.get(this.serviceUrls.baseGetUrl(accountId, \"JournalEntries\")).pipe(share());\r\n this.handleNormalGetRequest(AccountJournalEntry, request, accountContext);\r\n return request;\r\n }\r\n\r\n saveOrUpdateJournalEntry(accountId: string, journal: AccountJournalEntry, accountContext: AccountContext)\r\n : Observable> {\r\n if (journal.Id) {\r\n return this.updateJournalEntry(accountId, journal, accountContext);\r\n } else {\r\n return this.saveJournalEntry(accountId, journal, accountContext);\r\n }\r\n }\r\n\r\n saveJournalEntry(accountId: string, journal: AccountJournalEntry, accountContext: AccountContext)\r\n : Observable> {\r\n const url = this.serviceUrls.basePostUrl(accountId, \"JournalEntries\");\r\n\r\n // TODO SM-3738: Use serialize() method once its implemented\r\n var serializedJournal = {\r\n ExternalCommunication: journal.ExternalCommunication,\r\n Message: journal.Message,\r\n Subject: journal.Subject,\r\n Tags: journal.Tags,\r\n AccountId: journal.AccountId,\r\n AffectedUsers: journal.AffectedUsers,\r\n Action: journal.Action,\r\n EntityType: journal.EntityType,\r\n EntityId: journal.EntityId,\r\n ActivityTime: journal.ActivityTime,\r\n IdentityKey: journal.IdentityKey,\r\n \"@Type\": \"AccountJournalEntry\"\r\n }\r\n const request = this.http.post(url, serializedJournal).pipe(share());\r\n this.handleNormalPostPutRequest(AccountJournalEntry, request, accountContext);\r\n return request;\r\n }\r\n\r\n updateJournalEntry(accountId: string, journal: AccountJournalEntry, accountContext: AccountContext)\r\n : Observable> {\r\n const url = this.serviceUrls.basePutUrl(accountId, \"JournalEntries\", journal.Id);\r\n\r\n // TODO SM-3738: Use serialize() method once its implemented\r\n var serializedJournal = {\r\n Id: journal.Id,\r\n ExternalCommunication: journal.ExternalCommunication,\r\n Message: journal.Message,\r\n Subject: journal.Subject,\r\n Tags: journal.Tags,\r\n AccountId: journal.AccountId,\r\n AffectedUsers: journal.AffectedUsers,\r\n Action: journal.Action,\r\n EntityType: journal.EntityType,\r\n EntityId: journal.EntityId,\r\n ActivityTime: journal.ActivityTime,\r\n IdentityKey: journal.IdentityKey,\r\n \"@Type\": \"AccountJournalEntry\"\r\n }\r\n const request = this.http.put(url, serializedJournal).pipe(share());\r\n this.handleNormalPostPutRequest(AccountJournalEntry, request, accountContext);\r\n return request;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region comments\r\n\r\n loadComments(accountId: string, accountContext: AccountContext): Observable {\r\n const request = this.http.get(this.serviceUrls.baseGetUrl(accountId, 'Comments')).pipe(share());\r\n this.handleNormalGetRequest(AccountComment, request, accountContext);\r\n return request;\r\n }\r\n\r\n addComment(accountId: string, comment: AccountComment, accountContext: AccountContext): Observable {\r\n const url = this.serviceUrls.basePostUrl(accountId, \"Comments\");\r\n\r\n // TODO SM-3738: Use serialize() method once its implemented\r\n const serializedComment = {\r\n Message: comment.Message,\r\n AccountId: comment.AccountId,\r\n AffectedUsers: comment.AffectedUsers,\r\n Action: comment.Action,\r\n EntityType: comment.EntityType,\r\n EntityId: comment.EntityId,\r\n ActivityTime: comment.ActivityTime,\r\n IdentityKey: comment.IdentityKey,\r\n EntityCorrelationKey: comment.EntityCorrelationKey,\r\n TaskId: comment.TaskId,\r\n ActivityType: comment.ActivityType,\r\n WorkflowSetId: comment.WorkflowSetId,\r\n \"@Type\": \"AccountComment\"\r\n }\r\n const request = this.http.post(url, serializedComment).pipe(share());\r\n this.handleNormalPostPutRequest(AccountComment, request, accountContext);\r\n return request;\r\n }\r\n\r\n updateComment(accountId: string, comment: AccountComment, accountContext: AccountContext): Observable {\r\n const url = this.serviceUrls.basePutUrl(accountId, \"Comments\", comment.Id);\r\n\r\n // TODO SM-3738: Use serialize() method once its implemented\r\n const serializedComment = {\r\n Id: comment.Id,\r\n Message: comment.Message,\r\n AccountId: comment.AccountId,\r\n AffectedUsers: comment.AffectedUsers,\r\n Action: comment.Action,\r\n EntityType: comment.EntityType,\r\n EntityId: comment.EntityId,\r\n ActivityTime: comment.ActivityTime,\r\n IdentityKey: comment.IdentityKey,\r\n EntityCorrelationKey: comment.EntityCorrelationKey,\r\n CorrelationKey: comment.CorrelationKey,\r\n TaskId: comment.TaskId,\r\n ActivityType: comment.ActivityType,\r\n WorkflowSetId: comment.WorkflowSetId,\r\n \"@Type\": \"AccountComment\"\r\n }\r\n const request = this.http.put(url, serializedComment).pipe(share());\r\n this.handleNormalPostPutRequest(AccountComment, request, accountContext);\r\n return request;\r\n }\r\n\r\n deleteComment(accountId: string, comment: AccountComment, accountContext: AccountContext): Observable {\r\n const url = this.serviceUrls.basePutUrl(accountId, \"Comments\", comment.Id);\r\n\r\n const request = this.http.delete(url).pipe(share());\r\n this.handleSoftDeleteRequest(AccountComment, request, accountContext);\r\n return request;\r\n }\r\n\r\n resurrectComment(accountId: string, comment: AccountComment, accountContext: AccountContext): Observable {\r\n const url = this.serviceUrls.basePutUrl(accountId, \"Comments\", comment.Id) + '/Resurrect';\r\n\r\n const request = this.http.put(url, null).pipe(share());\r\n this.handleNormalPostPutRequest(AccountComment, request, accountContext);\r\n return request;\r\n }\r\n\r\n //#endregion\r\n public searchAccounts(searchString: string): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.accountsSearchTemplate;\r\n let request = this.http.get(url + \"?searchTerms=\" + encodeURIComponent(searchString)).pipe(share());\r\n\r\n this.handleRequestWithoutResponse(request);\r\n return request;\r\n }\r\n\r\n public getLaunchUrl(accountId: string, transactionId: string): Observable {\r\n\r\n var self = this;\r\n var url = this.serviceUrls.TransactionLaunchUrl(accountId, transactionId);\r\n let request = this.http.get(url).pipe(share());\r\n request.subscribe({\r\n next: response => { },\r\n error: error => {\r\n if (error[\"status\"] && (error[\"status\"] == 404 || error[\"status\"] == 500))\r\n self.handleError(error);\r\n else\r\n console.error(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n public updatePolicySetTerm(policySetId: string, termDTO: PolicyTermDTO, accountContext: AccountContext) {\r\n var url = this.serviceUrls.basePutUrl(accountContext.accountId, \"PolicySets\", policySetId) + \"/Term\";\r\n let request = this.http.put(url, termDTO).pipe(share());\r\n this.handleNormalPostPutRequest(PolicySet, request, accountContext);\r\n return request;\r\n }\r\n\r\n public changeSelectionStatus(accountId: string, policySetId: string, workflowId: string, \r\n productDTO: StartWorkflowDTOProduct, accountContext: AccountContext): Observable {\r\n var url = this.serviceUrls.ChangeSelection(accountId, policySetId);\r\n\r\n const params = new HttpParams()\r\n .set(\"workflowId\", workflowId);\r\n let request = this.http.put(url, productDTO, { params }).pipe(share());\r\n this.handleNormalPostPutRequest(Transaction, request, accountContext);\r\n return request;\r\n }\r\n\r\n public loadWorkflowSets(context: AccountContext, isInteractive: boolean, accountId?: string): Observable {\r\n accountId = accountId || context.account?.Id;\r\n\r\n if (!accountId) {\r\n this.loggingService?.logWarn(\"Was asked to get workflow sets without providing a valid accountId\");\r\n return of(null);\r\n }\r\n\r\n const interactiveHeader = this.getUserInteractionHeader(isInteractive);\r\n const url = this.serviceUrls.WorkflowSets(accountId || context.account.Id);\r\n const request = this.http.get(url, { headers: interactiveHeader}).pipe(share());\r\n\r\n this.handleNormalGetRequest(WorkflowSet, request, context);\r\n return request;\r\n }\r\n\r\n public loadRiskDetails(context: AccountContext, workflowSetId: string, showAllRules: boolean, includeDetails: boolean): Observable {\r\n const url = this.serviceUrls.riskDetails(workflowSetId) + \"?includeDetails=\" + includeDetails + \"&showAllRules=\" + showAllRules;\r\n const request = this.http.get(url).pipe(share()); \r\n this.handleNormalGetRequest(RuleSetRiskAssessment, request, context);\r\n return request;\r\n }\r\n}\r\n\r\nexport interface PolicyTermDTO {\r\n EffectiveDate: ContractDate;\r\n ExpirationDate: ContractDate;\r\n}\r\n\r\nexport interface CommissionDTO {\r\n Commission: number;\r\n}\r\n\r\nexport interface AccountTagsDTO {\r\n Tags: string[];\r\n}","import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport _ from 'lodash';\r\nimport { Observable, ObservableInput } from \"rxjs\";\r\nimport { mergeMap, share, take } from 'rxjs/operators';\r\n\r\nimport { ApiManagementService } from '@Services/api-management';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { AppMessage, GlobalMessages } from \"@Services/global-messages\";\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { AccountJournalEntry, AccountRole, Phase, Workflow,\r\n Task, ProgramRevision } from '@Core/CodeGen/Models/area.models';\r\nimport { AccountContext } from \"@Core/Lib/Contexts/account-context\";\r\nimport { ContractDate } from '@Core/Lib/contract-date';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { ModelUtils } from \"@Core/Lib/Utils/model-utils\";\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\n\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class AccountWorkflowService extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n public static baseUrl: string = BaseService.baseUrl + '/Workflows/';\r\n\r\n private static WorkflowsByWorkflowSetUnsubstituted: string = ServiceUrls.baseUrl + \"{workflowSetId}/Workflows\";\r\n public static WorkflowsByWorkflowSet(workflowSetId: string) {\r\n return ServiceUrls.WorkflowsByWorkflowSetUnsubstituted\r\n .replace(\"{workflowSetId}\", workflowSetId);\r\n }\r\n\r\n public static SingleWorkflow(workflowSetId: string, workflowId: string) {\r\n return ServiceUrls.WorkflowsByWorkflowSet(workflowSetId) + \"/\" + workflowId;\r\n }\r\n\r\n public static AccountRoles: string = ServiceUrls.baseUrl + 'AccountRoles';\r\n public static Phases: string = ServiceUrls.baseUrl + 'Phases';\r\n public static Tasks: string = ServiceUrls.baseUrl + 'Tasks';\r\n\r\n public static TasksByWorkflowSet(workflowSetId: string): string {\r\n return `${ServiceUrls.baseUrl}${workflowSetId}/Tasks`;\r\n }\r\n\r\n public static Task(workflowSetId: string, taskId: string): string {\r\n return `${ServiceUrls.baseUrl}${workflowSetId}/Tasks/${taskId}`;\r\n }\r\n\r\n public static Phase(workflowSetId: string, phaseId: string): string {\r\n return `${ServiceUrls.baseUrl}${workflowSetId}/Phases/${phaseId}`;\r\n }\r\n\r\n public static WorkflowSets: string = ServiceUrls.baseUrl + 'WorkflowSets';\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n private getAccountIdQueryParams(accountId: string): HttpParams {\r\n return new HttpParams()\r\n .set(\"accountid\", ModelUtils.getIdFromDomainId(accountId));\r\n }\r\n\r\n refreshAccount(context: AccountContext, accountId: string) {\r\n this.loadWorkflows(context, accountId);\r\n this.loadTasks(context, accountId, true);\r\n this.loadRoles(context, accountId);\r\n }\r\n\r\n restartWorkflow(context: AccountContext, workflowId: string, workflowSetId: string): Observable {\r\n const url = `${this.serviceUrls.WorkflowsByWorkflowSet(workflowSetId)}/${workflowId}/Restart`\r\n const request = this.http.put(url, null).pipe(share());\r\n\r\n this.handleNormalPostPutRequest(Workflow, request, context);\r\n return request;\r\n }\r\n\r\n loadWorkflow(context: AccountContext, workflowId: string, workflowSetId: string): Observable {\r\n const url = `${this.serviceUrls.WorkflowsByWorkflowSet(workflowSetId)}/${workflowId}`;\r\n const request = this.http.get(url).pipe(share());\r\n\r\n this.handleNormalGetRequest(Workflow, request, context);\r\n return request;\r\n }\r\n\r\n loadWorkflows(context: AccountContext, accountId: string): Observable {\r\n const params = this.getAccountIdQueryParams(accountId);\r\n const request = this.http.get(this.serviceUrls.baseUrl, { params }).pipe(share());\r\n\r\n this.handleNormalGetRequest(Workflow, request, context);\r\n return request;\r\n }\r\n\r\n startWorkflow(context: AccountContext, userContext: UserContext, startWorkflowDTO: StartWorkflowDTO): Observable {\r\n\r\n const url = this.serviceUrls.baseUrl;\r\n let params = new HttpParams();\r\n params = params.set('browserMode', true);\r\n\r\n const request = this.http.put(url, startWorkflowDTO, { params })\r\n .pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n if (userContext) {\r\n const responseClone = _.cloneDeep(response);\r\n userContext.loadApiResponseModels(Workflow, responseClone);\r\n }\r\n context.loadApiResponseModels(Workflow, response);\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n getStartingWorkflowDefs(context: DataContext, programId?: string, proposedEffectiveDate?: ContractDate): Observable {\r\n const params = new HttpParams()\r\n .set(\"programId\", programId)\r\n .set(\"proposedEffectiveDate\", proposedEffectiveDate.toISOString());\r\n\r\n const request = this.http.get(this.serviceUrls.baseUrl + 'Starting',\r\n { params }).pipe(share());\r\n return request;\r\n }\r\n\r\n getWorkflowDefsForWorkflowSet(workflowSetId: string, accountId: string): Observable {\r\n var url = this.serviceUrls.WorkflowSets + '/' + workflowSetId + '/Available?accountId=' + accountId;\r\n const request = this.http.get(url).pipe(share());\r\n return request;\r\n }\r\n\r\n retrieveRevisionForWorkflow(workflowSetId: string, workflowId: string, context: AccountContext): Observable {\r\n var url = this.serviceUrls.SingleWorkflow(workflowSetId, workflowId) + '/Revision';\r\n const request = this.http.get(url).pipe(share());\r\n\r\n this.handleNormalGetRequest(ProgramRevision, request, context);\r\n return request;\r\n }\r\n\r\n updateWorkflowEffectiveDate(workflowSetId: string, workflowId: string,\r\n effectiveDate: ContractDate, context: AccountContext): Observable {\r\n var url = this.serviceUrls.WorkflowsByWorkflowSet(workflowSetId) + \"/\" + workflowId + '/EffectiveDate';\r\n var dto: ContractDateDTO = {\r\n EffectiveDate: effectiveDate\r\n };\r\n const request = this.http.put(url, dto).pipe(share());\r\n this.handleNormalGetRequest(Workflow, request, context);\r\n return request;\r\n }\r\n\r\n loadTasks(context: AccountContext, accountId: string, isInteractive: boolean): Observable {\r\n const params = this.getAccountIdQueryParams(accountId); \r\n const interactiveHeader = this.getUserInteractionHeader(isInteractive);\r\n const request = this.http.get(this.serviceUrls.Tasks, { headers: interactiveHeader, params }).pipe(share());\r\n this.handleNormalGetRequest(Task, request, context);\r\n return request;\r\n }\r\n\r\n loadRoles(context: AccountContext, accountId: string): Observable {\r\n const params = new HttpParams().set(\"accountId\", accountId);\r\n const request = this.http.get(this.serviceUrls.AccountRoles,\r\n { params }).pipe(share());\r\n this.handleNormalGetRequest(AccountRole, request, context);\r\n return request;\r\n }\r\n\r\n updatePhase(phase: Phase, context: AccountContext): void {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId =>\r\n this.http.put(this.serviceUrls.Phase(workflowSetId, phase.Id), phase.serialize()));\r\n this.handleNormalPostPutRequest(Phase, request, context);\r\n }\r\n\r\n // TODO: Change request to PATCH when SM-409 has been resolved. Patch is not working.\r\n updateTask(task: Task, context: AccountContext): void {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId =>\r\n this.http.put(this.serviceUrls.Task(workflowSetId, task.Id), task.serialize()));\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n }\r\n\r\n executeAction(taskId: string, content: TaskExecuteDTO, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.Task(workflowSetId, taskId) + '/Execute';\r\n return this.http.put(url, content);\r\n }).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n\r\n return request;\r\n }\r\n\r\n stopExecutingTask(taskId: string, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.Task(workflowSetId, taskId) + '/StopExecuting';\r\n return this.http.put(url, null);\r\n }).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n\r\n return request;\r\n }\r\n\r\n assignAndUnlockTask(assigneeId: string, taskId: string, Comment, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.Task(workflowSetId, ModelUtils.getIdFromDomainId(taskId)) + '/Assign/'\r\n + ModelUtils.getIdFromDomainId(assigneeId);\r\n return this.http.put(url, { Comment })\r\n }).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n\r\n return request;\r\n }\r\n\r\n unlockTask(taskId: string, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + '/Unlock';\r\n return this.http.put(url, [taskId]);\r\n }).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n createTask(dto: TaskCreateDTO, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId);\r\n return this.http.post(url, dto);\r\n }).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n editTask(taskId: string, dto: TaskCreateDTO, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.Task(workflowSetId, taskId);\r\n return this.http.put(url, dto);\r\n }).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n completeTask(taskId: string, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + '/Complete'\r\n return this.http.put(url, [taskId]);\r\n }).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request\r\n }\r\n\r\n redoTask(taskId: string, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.Task(workflowSetId, taskId) + '/Redo';\r\n return this.http.put(url, null);\r\n }).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n lockTasks(tasks: Task[], context: AccountContext, workflowSetId = null) {\r\n let taskIds: string[] = _.map(tasks, (task) => task.Id);\r\n return this.lockTasksByIds(taskIds, context, workflowSetId);\r\n }\r\n\r\n lockTasksByIds(taskIds: string[], context: AccountContext, workflowSetId = null) {\r\n let request: Observable;\r\n if (!workflowSetId) {\r\n request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + \"/Lock\";\r\n return this.http.put(url, taskIds);\r\n }).pipe(share());\r\n } else {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + \"/Lock\";\r\n request = this.http.put(url, taskIds).pipe(share());\r\n }\r\n\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n unlockTasksByIds(taskIds: string[], context: AccountContext, workflowSetId = null) {\r\n let request: Observable;\r\n if (!workflowSetId) {\r\n request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + \"/Unlock\";\r\n return this.http.put(url, taskIds);\r\n }).pipe(share());\r\n } else {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + \"/Unlock\";\r\n request = this.http.put(url, taskIds).pipe(share());\r\n }\r\n\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n stealTaskLock(taskId: string, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + '/Lock/' + taskId;\r\n return this.http.put(url, null);\r\n }).pipe(share())\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Task, response);\r\n\r\n _.forEach(response.Errors, msg => {\r\n this.globalMessages.Add(new AppMessage(msg, 'danger', 5000));\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n reloadTask(url: string, context: AccountContext): void {\r\n let request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Task, request, context);\r\n }\r\n\r\n retrieveTask(taskId: string, context: AccountContext): Observable {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.Task(workflowSetId, taskId);\r\n return this.http.get(url);\r\n }).pipe(share());\r\n\r\n this.handleNormalGetRequest(Task, request, context);\r\n\r\n return request;\r\n }\r\n\r\n // This method requires the calling party to handle the response\r\n pollTask(url: string): Observable {\r\n let request = this.http.get(ApiManagementService.transformUrl(url));\r\n return request;\r\n }\r\n\r\n waiveTask(taskId: string, waiveJournalEntry: AccountJournalEntry, context: AccountContext) {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + \"/\" + taskId + \"/Waive\";\r\n const params = new HttpParams().set(\"waiveJournalEntryId\", waiveJournalEntry.Id);\r\n return this.http.put(url, null, { params });\r\n }).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n return request;\r\n }\r\n\r\n undoWaivedTask(taskId: string, context: AccountContext) {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n const url = this.serviceUrls.TasksByWorkflowSet(workflowSetId) + \"/\" + taskId + \"/UndoWaive\";\r\n return this.http.put(url, null);\r\n }).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n return request;\r\n }\r\n\r\n deferTask(taskId: string, DeferTime: Date, Comment: string, context: AccountContext) {\r\n const request = this.makeRequestWithWorkflowSet(context, workflowSetId => {\r\n // Convert to ISO string for API request\r\n const url = this.serviceUrls.Task(workflowSetId, taskId) + \"/Defer\";\r\n return this.http.put(url, {\r\n DeferTime,\r\n Comment\r\n });\r\n }).pipe(share());\r\n\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n\r\n return request;\r\n }\r\n\r\n private makeRequestWithWorkflowSet(context: AccountContext, requestDelegate: (workflowSetId: string) => ObservableInput): Observable {\r\n return context.currentWorkflowSetId.pipe(\r\n take(1),\r\n mergeMap((workflowSetId: string) => requestDelegate(workflowSetId)));\r\n }\r\n}\r\n\r\nexport interface TaskExecuteDTO {\r\n Action: TaskActionDTO;\r\n}\r\n\r\nexport interface TaskActionDTO {\r\n TaskType: \"TaskRatingSystem\" | \"TaskCorrespondence\";\r\n Action: string;\r\n}\r\n\r\nexport interface TaskRatingActionDTO extends TaskActionDTO {\r\n TaskType: \"TaskRatingSystem\";\r\n WorkflowNotes?: string;\r\n CommitOnSuccess? : boolean;\r\n}\r\n\r\nexport interface TaskCorrespondenceActionDTO extends TaskActionDTO {\r\n TaskType: \"TaskCorrespondence\",\r\n To?: string,\r\n Cc?: string,\r\n Bcc?: string,\r\n Subject?: string,\r\n Body?: string\r\n}\r\n\r\nexport interface StartWorkflowDTO {\r\n AccountId: string;\r\n WorkflowDefId: string;\r\n WorkflowSetId?: string;\r\n ProgramId: string;\r\n EffectiveDate: ContractDate;\r\n WorkflowNotes: string;\r\n Products: StartWorkflowDTOProduct[];\r\n}\r\n\r\nexport interface StartWorkflowDTOProduct {\r\n ProductId: string;\r\n TransactionTypeId?: string;\r\n Selected: boolean;\r\n}\r\n\r\nexport interface ContractDateDTO {\r\n EffectiveDate: ContractDate;\r\n}\r\n\r\nexport interface TaskCreateDTO {\r\n Name: string;\r\n Instructions: string;\r\n WorkflowId: string;\r\n PhaseId: string;\r\n ProgramId: string;\r\n RequiresApproval: boolean;\r\n DeferTime: Date;\r\n DeferComment: string;\r\n DelegateAssignableId: string;\r\n}\r\n","import { HttpClient, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport _ from 'lodash';\r\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { UserService } from '@Services/user-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { App, Developer } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\n\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class ApiManagementService extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n\r\n private static baseUrl: string = BaseService.baseUrl + '/';\r\n\r\n public static integrations: string = ServiceUrls.baseUrl + 'Tenant/Integrations';\r\n public static developers: string = ServiceUrls.baseUrl + 'Tenant/Developers'; // TODO: SM-1341: remove this route\r\n public static integrationIndividual: string = ServiceUrls.integrations + '/{id}';\r\n public static developerIndividual: string = ServiceUrls.developers + '/{id}';\r\n public static integrationCredentials: string = ServiceUrls.integrationIndividual + '/Credentials';\r\n public static enableIntegration: string = ServiceUrls.integrationIndividual + '/Enable';\r\n public static disableIntegration: string = ServiceUrls.integrationIndividual + '/Disable';\r\n public static deleteIntegration: string = ServiceUrls.integrationIndividual;\r\n }\r\n\r\n private loadingIntegrations: boolean;\r\n\r\n public constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n private tenantContext: TenantContext,\r\n protected loggingService: LoggingService,\r\n private userService: UserService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n\r\n this.userService.Has(TenantPermissions.Tenant_Integrations).subscribe(has => {\r\n if (has)\r\n {\r\n this.loadIntegrations(this.tenantContext);\r\n }\r\n })\r\n }\r\n\r\n /**\r\n * Transforms a URL sent from the backend into the correct format.\r\n * The backend currently sends urls as if we were calling from API management.\r\n * @param url Url sent directly from the Back End\r\n */\r\n public static transformUrl(url: string): string {\r\n return `${BaseService.baseUrl}${url}`;\r\n }\r\n\r\n\r\n public loadIntegrations(context: DataContext = this.tenantContext) {\r\n this.loadingIntegrations = true;\r\n var self = this;\r\n\r\n const request = this.http.get(this.serviceUrls.integrations).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n var responseObjects: any[] = response.Content;\r\n this.loadApiResults(responseObjects);\r\n self.loadingIntegrations = false;\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n self.loadingIntegrations = false;\r\n },\r\n });\r\n }\r\n\r\n public getApplication(id: string): Observable {\r\n var self = this;\r\n var findApplication = function (): App {\r\n return self.tenantContext.getStore(new App()).values.getValue().find(app => app.Id === id) as App;\r\n }\r\n\r\n // Are we still loading?\r\n if (this.loadingIntegrations) {\r\n let source = new Subject();\r\n\r\n this.tenantContext.getStore(new App()).values.subscribe(\r\n applications => {\r\n var app = findApplication();\r\n if (app) {\r\n source.next(app);\r\n }\r\n //TODO: Clean up the subscription\r\n }\r\n );\r\n\r\n return source;\r\n }\r\n\r\n let application = findApplication();\r\n\r\n // is the role in our store?\r\n if (application) {\r\n return new BehaviorSubject(application);\r\n }\r\n // id is invalid, so return null\r\n else {\r\n return new BehaviorSubject(null);\r\n }\r\n }\r\n\r\n public getDeveloper(id: string): Observable {\r\n var self = this;\r\n var findDeveloper = function (): Developer {\r\n return self.tenantContext.getStore(new Developer()).values.getValue().find(dev => dev.Id === id) as Developer;\r\n }\r\n\r\n // Are we still loading?\r\n if (this.loadingIntegrations) {\r\n let source = new Subject();\r\n\r\n this.tenantContext.getStore(new Developer()).values.subscribe(\r\n developers => {\r\n var dev = findDeveloper();\r\n if (dev) {\r\n source.next(dev);\r\n }\r\n //TODO: Clean up the subscription\r\n }\r\n );\r\n\r\n return source;\r\n }\r\n\r\n let developer = findDeveloper();\r\n\r\n // is the role in our store?\r\n if (developer) {\r\n return new BehaviorSubject(developer);\r\n }\r\n // id is invalid, so return null\r\n else {\r\n return new BehaviorSubject(null);\r\n }\r\n }\r\n\r\n public addIntegration(newApplication: App): Observable {\r\n\r\n let self = this;\r\n let request = this.http.post(this.serviceUrls.integrations, newApplication.serialize()).pipe(share());\r\n\r\n request.subscribe(\r\n response => this.loadApiResults(response.Content)\r\n );\r\n\r\n return request;\r\n }\r\n\r\n public updateApplication(application: App): Observable {\r\n let request = this.http.put(this.serviceUrls.integrationIndividual.replace(\"{id}\", application.Id), \r\n application.serialize()).pipe(share());\r\n\r\n request.subscribe(\r\n response => this.loadApiResults(response.Content)\r\n );\r\n\r\n return request;\r\n }\r\n\r\n\r\n public addDeveloper(newDeveloper: Developer): Observable {\r\n let request = this.http.post(this.serviceUrls.developers, newDeveloper.serialize()).pipe(share());\r\n\r\n request.subscribe(\r\n response => this.loadApiResults(response.Content)\r\n );\r\n\r\n return request;\r\n }\r\n\r\n public updateDeveloper(developer: Developer): Observable {\r\n\r\n var self = this;\r\n let request = this.http.put(this.serviceUrls.developerIndividual.replace(\"{id}\", developer.Id), developer.serialize()).pipe(share());\r\n\r\n request.subscribe(\r\n response => this.loadApiResults(response.Content)\r\n );\r\n\r\n return request;\r\n }\r\n\r\n public getCredentials(identityKey: string): Observable {\r\n var self = this;\r\n let request = this.http.get(this.serviceUrls.integrationCredentials.replace(\"{id}\", identityKey)).pipe(share());\r\n this.handleRequestWithoutResponse(request);\r\n\r\n return request;\r\n }\r\n\r\n public enableIntegration(identityKey: string): Observable {\r\n var self = this;\r\n let request = this.http.put(this.serviceUrls.enableIntegration.replace(\"{id}\", identityKey), \"\").pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n var responseObjects: any[] = response.Content;\r\n this.loadApiResults(responseObjects);\r\n },\r\n error: error => self.handleError(error)\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public disableIntegration(identityKey: string): Observable {\r\n var self = this;\r\n let request = this.http.put(this.serviceUrls.disableIntegration.replace(\"{id}\", identityKey), \"\").pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n var responseObjects: any[] = response.Content;\r\n this.loadApiResults(responseObjects);\r\n },\r\n error: error => self.handleError(error)\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public deleteIntegration(integration: App | Developer): Observable {\r\n var self = this;\r\n let request = this.http.delete(this.serviceUrls.deleteIntegration.replace(\"{id}\", integration.Id)).pipe(share());\r\n \r\n request.subscribe({\r\n next: response => {\r\n this.tenantContext.remove(integration);\r\n },\r\n error: error => self.handleError(error)\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public regenerateCredentials(identityKey: string): Observable {\r\n let request = this.http.post(this.serviceUrls.integrationCredentials.replace(\"{id}\", identityKey), \"\").pipe(share());\r\n this.handleRequestWithoutResponse(request);\r\n return request;\r\n }\r\n\r\n private loadApiResults(responseObjects: any) {\r\n this.tenantContext.loading = true;\r\n\r\n if (_.isArray(responseObjects)) {\r\n responseObjects.forEach(ro => {\r\n this.deserializeObject(ro);\r\n });\r\n }\r\n else if (_.has(responseObjects, \"@Type\")) {\r\n this.deserializeObject(responseObjects);\r\n }\r\n\r\n this.tenantContext.loading = false;\r\n }\r\n\r\n private deserializeObject(obj: any) {\r\n if (obj[\"@Type\"] === new Developer().Type) {\r\n this.tenantContext.deserializeSingleObject(Developer, obj);\r\n } else if (obj[\"@Type\"] === new App().Type) {\r\n this.tenantContext.deserializeSingleObject(App, obj);\r\n }\r\n }\r\n\r\n}","import { HttpClient, HttpErrorResponse, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { AuthService as Auth0Service, IdToken } from '@auth0/auth0-angular';\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport _ from 'lodash';\r\nimport { Observable, of, Subject } from 'rxjs';\r\nimport { share, switchMap } from 'rxjs/operators';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class AuthService {\r\n public authLoaded: boolean;\r\n\r\n private _spaName: string;\r\n private _isRefreshing: boolean;\r\n private baseUrl: string;\r\n\r\n private authContext: AuthContext;\r\n private _observable: Subject;\r\n private _logOutRequest: Observable;\r\n\r\n constructor(private http: HttpClient,\r\n private logger: LoggingService,\r\n private auth0Service: Auth0Service\r\n ) {\r\n this.baseUrl = environment.applicationEndpoint + (environment.requireAPIM ? '/Auth' : '/Admin')\r\n }\r\n\r\n public get LogoutURL() {\r\n return `${this.baseUrl}/Users/Logout`;\r\n }\r\n\r\n public get CurrentUserURL() {\r\n return `${this.baseUrl}/CurrentUser`;\r\n }\r\n\r\n public get InsurityBITokenURL() {\r\n return `${this.baseUrl}/InsurityBIToken`;\r\n }\r\n\r\n public get AdminTenantTokenURL() {\r\n return `${this.baseUrl}/Users/TenantAreaToken`;\r\n }\r\n\r\n public set spaName(name: string) {\r\n this._spaName = name;\r\n }\r\n public get spaName() {\r\n return this._spaName;\r\n }\r\n\r\n public get BearerToken() {\r\n return this.authContext.bearerToken;\r\n }\r\n\r\n public get isAuthenticated$(): Observable {\r\n return this.authContext$.pipe(switchMap((authContext) => {\r\n if (!authContext?.expiration) {\r\n this.logger.logInfo(\"User's token does not have an expiration date.\");\r\n return of(false);\r\n }\r\n if (new Date() < this.authContext.expiration) {\r\n return of(true);\r\n } else {\r\n this.logger.logInfo(\"User's token has expired.\");\r\n return of(false)\r\n }\r\n }));\r\n }\r\n\r\n public get authContext$(): Observable {\r\n if (this.authContext) {\r\n return of(this.authContext);\r\n }\r\n\r\n if (this._observable) {\r\n return this._observable;\r\n }\r\n\r\n this._observable = new Subject();\r\n\r\n this.logger.logVerbose(\"Loading user authentication.\");\r\n this.getCurrentUser();\r\n\r\n return this._observable;\r\n }\r\n\r\n // #region Auth0 Observable Wrappers\r\n\r\n public get idTokenClaims$(): Observable {\r\n return this.auth0Service.idTokenClaims$;\r\n }\r\n\r\n public get error$(): Observable {\r\n return this.auth0Service.error$;\r\n }\r\n\r\n // #endregion Auth0 Observable Wrappers\r\n\r\n\r\n\r\n public getSubscriptionKey(): string {\r\n return this.authContext?.subscription;\r\n }\r\n\r\n public getIdentityKey() {\r\n return this.authContext?.identityKey;\r\n }\r\n\r\n public getTenantKey() {\r\n return this.authContext?.tenantKey;\r\n }\r\n\r\n public getAreaKey() {\r\n return this.authContext?.areaKey\r\n }\r\n\r\n public isProgramManager(): boolean {\r\n return !!this.authContext?.managedPrograms?.length;\r\n }\r\n\r\n public getManagedPrograms(): string[] {\r\n return this.authContext?.managedPrograms;\r\n }\r\n\r\n public getExpiration(): Date {\r\n return this.authContext?.expiration;\r\n }\r\n\r\n public getAvailableTenants(): string[] {\r\n return this.authContext?.tenants;\r\n }\r\n\r\n public getAvailableAreasForCurrentTenant(): string[] {\r\n return this.authContext?.areas;\r\n }\r\n\r\n public login() {\r\n this.logout(false); // make sure any existing cookie is gone before the auth http-interceptor picks it up\r\n this.auth0Service.loginWithRedirect({});\r\n }\r\n\r\n public generateClaims(bearerToken): Observable {\r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.ContentType, 'application/json')\r\n .set(HttpHeaderNames.Authorization, \"bearer \" + bearerToken);\r\n\r\n let request = this.http.get(`${this.baseUrl}/Users/Login?browserMode=true`,\r\n { headers: headers, withCredentials: true }) // tell the browser to accept the set-cookie header\r\n .pipe(share());\r\n\r\n request.subscribe(response => {\r\n let content = response.Content;\r\n this.setValues(response.Content);\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public logout(redirect: boolean = true): Observable {\r\n if (this._logOutRequest) {\r\n return this._logOutRequest;\r\n }\r\n\r\n let request = this._logOutRequest = this.http.post(this.LogoutURL, null).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n this.authContext = null;\r\n }, \r\n error: error => {\r\n if (error.status != 401) {\r\n this.logger.logException(error, SeverityLevel.Error);\r\n }\r\n }, \r\n complete: () => {\r\n if (redirect) {\r\n this.auth0Logout();\r\n } \r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public auth0Logout() {\r\n this.auth0Service.logout({ logoutParams: { returnTo: environment.baseUrl } });\r\n }\r\n\r\n public getCurrentUser(): Observable {\r\n let request = this.http.get(this.CurrentUserURL, {\r\n // For any other request, the interceptor would add this option, \r\n // but we have to explicitly specify it here because\r\n // this is used by the interceptor to add the option to all _other_ requests.\r\n withCredentials: true,\r\n }).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n let content = response.Content;\r\n this.setValues(content);\r\n this.authLoaded = true;\r\n this.logger.logVerbose(\"User authentication loaded.\");\r\n }, \r\n error: error => {\r\n this.authLoaded = true;\r\n this.auth0Logout();\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public insurityBIToken(): Observable {\r\n let request = this.http.get(this.InsurityBITokenURL, {\r\n withCredentials: true,\r\n }).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => { }, \r\n error: error => { this.auth0Logout(); }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public getAdminTenantAreaToken(optionalParameters: {\r\n tenantKey: string,\r\n areaKey?: string,\r\n }): Observable {\r\n\r\n let params = new HttpParams();\r\n params = params.set('tenantKey', optionalParameters.tenantKey);\r\n\r\n if (optionalParameters?.areaKey != null)\r\n params = params.set('areaKey', optionalParameters.areaKey);\r\n\r\n // Make the request\r\n let request = this.http.get(this.AdminTenantTokenURL, {\r\n params,\r\n withCredentials: true,\r\n }).pipe(share());\r\n\r\n request.subscribe({ \r\n next: () => {}, \r\n error: () => { \r\n //this.auth0Logout(); \r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public refresh() {\r\n if (this._isRefreshing) {\r\n // The request has already been sent.\r\n return;\r\n }\r\n\r\n this._isRefreshing = true;\r\n\r\n console.log(\"Refreshing Token\");\r\n\r\n let request = this.http.get(`${this.baseUrl}/Users/Refresh?browserMode=true`).subscribe({\r\n next: response => {\r\n let content = response.Content;\r\n this.setValues(response.Content);\r\n this._isRefreshing = false;\r\n }, \r\n error: err => {\r\n this._isRefreshing = false;\r\n if (err instanceof HttpErrorResponse) {\r\n const resp: HttpErrorResponse = err as HttpErrorResponse;\r\n if (resp.status == 403) {\r\n this.logout();\r\n }\r\n }\r\n }\r\n });\r\n }\r\n\r\n public selectTenant(tenantKey: string) {\r\n const headers: HttpHeaders = new HttpHeaders().set(HttpHeaderNames.ContentType, 'application/json');\r\n\r\n let request = this.http.post(`${this.baseUrl}/Users/SelectTenant?browserMode=true`, { TenantKey: tenantKey }, {\r\n headers: headers,\r\n withCredentials: true,\r\n }).pipe(share());\r\n\r\n request.subscribe(response => {\r\n let content = response.Content;\r\n this.setValues(content);\r\n })\r\n\r\n return request;\r\n }\r\n\r\n public selectArea(areaKey: string) {\r\n let request = this.http.post(`${this.baseUrl}/Users/SelectArea?browserMode=true`, { areaKey })\r\n .pipe(share());\r\n\r\n request.subscribe(response => {\r\n let content = response.Content;\r\n this.setValues(content);\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public recoverPassword(email: string) {\r\n const headers: HttpHeaders = new HttpHeaders().set(HttpHeaderNames.ContentType, 'application/json');\r\n const request = this.http.post(`${this.baseUrl}/Users/SendResetPassword`, JSON.stringify(email), {\r\n headers: headers\r\n }).pipe(share());\r\n\r\n request.subscribe(response => {\r\n });\r\n\r\n return request;\r\n }\r\n\r\n private setValues(content: any) {\r\n if (content) {\r\n this.authContext = {\r\n identityKey: content.identityKey,\r\n tenantKey: content.tenantKey,\r\n areaKey: content.areaKey,\r\n subscription: content.subscription,\r\n expiration: content.expires ? new Date(content.expires) : null,\r\n managedPrograms: AuthService.calculateManagedPrograms(content.managedPrograms),\r\n tenants: content.tenants,\r\n areas: content.areas,\r\n bearerToken: \"cookie\"\r\n };\r\n }\r\n if (this._observable) {\r\n this._observable.next(this.authContext);\r\n this._observable.complete();\r\n this._observable = null;\r\n }\r\n }\r\n\r\n public static calculateManagedPrograms(claim: string): string[] {\r\n if (claim) {\r\n let managedPrograms = [];\r\n\r\n let programs = claim.split('|');\r\n for (let program of programs) {\r\n if (program.includes('*'))\r\n managedPrograms.push(program.replace('*', ''));\r\n }\r\n return managedPrograms;\r\n }\r\n return [];\r\n }\r\n\r\n public resetUserAuthentication(userId: string) {\r\n const headers: HttpHeaders = new HttpHeaders().set(HttpHeaderNames.ContentType, 'application/json');\r\n const request = this.http.put(`${this.baseUrl}/Users/` + userId + '/ResetAuth', null, {\r\n headers: headers\r\n }).pipe(share());\r\n\r\n request.subscribe(response => { });\r\n return request;\r\n }\r\n\r\n}\r\n\r\nexport interface AuthContext {\r\n expiration: Date;\r\n subscription: string;\r\n identityKey: string;\r\n tenantKey: string;\r\n areaKey: string;\r\n managedPrograms: string[];\r\n tenants: string[];\r\n areas: string[];\r\n bearerToken: string;\r\n}\r\n","import { HttpErrorResponse, HttpHeaders, HttpResponse } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\nimport { Observable, throwError } from 'rxjs';\r\n\r\nimport { AppMessage, GlobalMessages } from '@Services/global-messages';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\n\r\nimport { BaseModel, IModelValidationError, ITypedServiceResponse } from '@Core/Lib/model';\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { UserInteractionTypes } from '@Core/Lib/Enums/user-interaction-type.enum';\r\n\r\nimport * as fileSaver from 'file-saver';\r\nimport { environment } from 'src/environments/environment';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\nexport abstract class BaseService {\r\n\r\n protected static baseUrl: string = \"\";\r\n\r\n /* Number of milliseconds to keep the error message on the screen. (0 = wait to be dismissed) */\r\n protected readonly errorMessageTimeout: number = 0;\r\n\r\n constructor(\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n BaseService.baseUrl = environment.applicationEndpoint;\r\n }\r\n\r\n handleError(error: any, filterModelPaths: string[] = null): void {\r\n var err: { Errors: any; error: string; };\r\n\r\n if (error && error.error) {\r\n err = error.error;\r\n }\r\n else {\r\n try {\r\n err = error.json();\r\n } catch (exception) { }\r\n }\r\n\r\n if (err && err.Errors) {\r\n _.forEach(err.Errors, e => {\r\n let displayError = true;\r\n if (filterModelPaths) {\r\n let modelError = e as IModelValidationError;\r\n if (modelError && modelError.Path\r\n && _.find(filterModelPaths, p => p === modelError.Path)) {\r\n displayError = false;\r\n }\r\n }\r\n if (displayError && this.globalMessages) {\r\n var message = BaseService.convertCommonErrors(e);\r\n this.loggingService.logException(new Error(message));\r\n this.globalMessages.Add(new AppMessage((message), 'danger', this.errorMessageTimeout));\r\n }\r\n });\r\n }\r\n else if (err && err.error && this.globalMessages) {\r\n this.loggingService.logException(new Error(err.error));\r\n this.globalMessages.Add(new AppMessage(err.error, 'danger', this.errorMessageTimeout));\r\n }\r\n else if (this.globalMessages) {\r\n this.loggingService.logException(error);\r\n this.globalMessages.Add(new AppMessage(error, 'danger', this.errorMessageTimeout));\r\n }\r\n\r\n this.loadingService.loading.next(false); // Ensure the loading flag is cleared as the api call has resolved\r\n this.loggingService.logInfo('An error occurred'); // for debug purposes only\r\n }\r\n\r\n public static convertCommonErrors(error: any): string {\r\n var message = error?.Message;\r\n\r\n if (message == 'Entity with value already exists' && error?.Data) {\r\n var data = error.Data;\r\n if (data.ClassName && data.PropertyName && data.PropertyValue) {\r\n message = data.ClassName + \" with a \" + data.PropertyName + \" of '\" + data.PropertyValue + \"' already exists.\";\r\n }\r\n }\r\n\r\n return message;\r\n }\r\n\r\n handleHttpError(error: HttpErrorResponse) {\r\n const self = this;\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n this.loggingService.logException(error);\r\n this.loggingService.logInfo('An error occurred:' + error.error.message);\r\n } else {\r\n if (error.error?.Errors) {\r\n _.forEach(error.error.Errors, e => {\r\n if (self.globalMessages) {\r\n this.loggingService.logException(new Error(e.Message));\r\n self.globalMessages.Add(new AppMessage((e.Message ? e.Message : e), 'danger', this.errorMessageTimeout));\r\n }\r\n });\r\n }\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(() => new Error('Something bad happened; please try again later.'));\r\n };\r\n\r\n public handleNormalGetRequest(expectedType: new () => T, \r\n request: Observable> | ITypedServiceResponse>, \r\n context: DataContext) {\r\n this.handleNonDeleteRequest(expectedType, request, context);\r\n }\r\n\r\n public handleNormalPostPutRequest(expectedType: new () => T,\r\n request: Observable> | ITypedServiceResponse>, \r\n context: DataContext) {\r\n this.handleNonDeleteRequest(expectedType, request, context);\r\n }\r\n\r\n private handleNonDeleteRequest(expectedType: new () => T, \r\n request: Observable> | ITypedServiceResponse>, \r\n context: DataContext) {\r\n const self = this;\r\n request.subscribe({\r\n next: (response) => {\r\n context.loadApiResponseModels(expectedType, response);\r\n },\r\n error: (error) => {\r\n self.handleError(error)\r\n }\r\n });\r\n }\r\n\r\n public handleNormalDeleteRequest(expectedType: new () => T, \r\n request: Observable> | ITypedServiceResponse>, \r\n item: string | BaseModel, \r\n context: DataContext) {\r\n const self = this;\r\n request.subscribe({\r\n next: (response: any) => {\r\n context.remove(item);\r\n },\r\n error: (error) => {\r\n self.handleError(error)\r\n }\r\n });\r\n }\r\n\r\n // Requests where we don't do anything with the response except checking for errors\r\n public handleRequestWithoutResponse(request: Observable) {\r\n const self = this;\r\n\r\n request.subscribe({\r\n next: (response: any) => { },\r\n error: (error) => {\r\n self.handleError(error)\r\n }\r\n });\r\n }\r\n\r\n public handleSoftDeleteRequest(expectedType: new () => T,\r\n request: Observable> | ITypedServiceResponse>, \r\n context: DataContext) {\r\n // If the item is expected to be soft-deleted, then don't remove it from the context. It\r\n // should work just like a non-delete request. \r\n this.handleNonDeleteRequest(expectedType, request, context);\r\n }\r\n\r\n /** Saves the body of an HttpResponse to the client's filesystem using the default filename. */\r\n protected saveToFileSystem(response: HttpResponse) {\r\n const contentDispositionHeader: string = response.headers.get(HttpHeaderNames.ContentDisposition);\r\n const parts: string[] = contentDispositionHeader.split(';');\r\n const filename = parts[1].split('=')[1].replace('\\\"', '').replace('\\\"', '');\r\n\r\n const blob = response.body;\r\n\r\n fileSaver.saveAs(blob, filename, { autoBom: false });\r\n }\r\n\r\n public getUserInteractionHeader(isInteractive: boolean): HttpHeaders {\r\n if (isInteractive) return new HttpHeaders().set(HttpHeaderNames.EventInteractionType, UserInteractionTypes.Interactive);\r\n else return new HttpHeaders().set(HttpHeaderNames.EventInteractionType, UserInteractionTypes.Noninteractive);\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpHeaders } from '@angular/common/http';\r\n\r\nimport * as _ from 'lodash';\r\nimport { Observable, of, forkJoin } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { Document, Correspondence } from '@Core/CodeGen/Models/area.models';\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { AccountContext } from '@Core/Lib/Contexts/account-context';\r\nimport { IServiceResponse } from '@Core/Lib/model';\r\n\r\n\r\n@Injectable()\r\nexport class DocumentService\r\n extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n\r\n private static baseUrl: string = BaseService.baseUrl + '/';\r\n public static documents: string = ServiceUrls.baseUrl + 'Documents';\r\n\r\n public static documentsByAccount(accountId: string): string {\r\n return `${ServiceUrls.documents}/${accountId}`\r\n }\r\n\r\n public static document(accountId: string, documentId: string): string {\r\n return `${ServiceUrls.documents}/${accountId}/${documentId}`\r\n }\r\n\r\n public static documentUrl(accountId: string, documentId: string): string {\r\n return `${ServiceUrls.documents}/${accountId}/${documentId}/Url`\r\n }\r\n\r\n public static anyCorrespondence: string = ServiceUrls.documents + '/Correspondence';\r\n\r\n public static correspondence(accountId: string, correspondenceId: string): string {\r\n return `${ServiceUrls.documents}/${accountId}/Correspondence/${correspondenceId}`;\r\n }\r\n }\r\n\r\n public docCategoriesLoaded: boolean;\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n private tenantContext: TenantContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n public loadDocuments(accountId: string, context?: AccountContext) {\r\n let cntxt = context ? context : this.tenantContext;\r\n const url = this.serviceUrls.documentsByAccount(accountId);\r\n const request = this.http.get(url);\r\n this.handleNormalGetRequest(Document, request, cntxt);\r\n }\r\n\r\n public uploadDocuments(documentsToUpload: DocumentAndFile[], replace: boolean): Observable{\r\n var uploadRequests: Observable[] = [];\r\n documentsToUpload.forEach(document =>{\r\n uploadRequests.push(this.uploadDocument(document.Document, replace, document.File, document.SendForExtraction));\r\n });\r\n return forkJoin(uploadRequests);\r\n }\r\n\r\n public uploadDocument(document: Document, replace: boolean, file: File, sendForExtraction: boolean): Observable {\r\n const url = this.serviceUrls.documentsByAccount(document.AccountId) + '/Upload';\r\n const params = new HttpParams().set(\"replace\", replace.toString());\r\n\r\n const request = this.http.post(url, document.serialize(), { params }).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n var document = new Document().deserialize(response.Content, this.tenantContext);\r\n var uploadUrl = this.convertDocumentUploadUrl(document.data[\"UploadUrl\"]) + \"&useAsyncAPI=true\";\r\n\r\n let params = new HttpParams().set(\"sendForExtraction\", sendForExtraction);\r\n \r\n const uploadRequest = this.http.post(uploadUrl, file, {\r\n headers: new HttpHeaders().set(HttpHeaderNames.ContentType, \"octet-stream\"),\r\n params: params\r\n }).pipe(share());\r\n uploadRequest.subscribe({\r\n next: response => { \r\n new Document().deserialize(response.Content, this.tenantContext);\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n // Converts the upload url to one that our API will accept coming from the application.\r\n // This is needed because our backend passes this url to us, but it is in the form of someone directly accessing the API.\r\n public convertDocumentUploadUrl(uploadUrl: string): string {\r\n var positionOfDocuments = uploadUrl.indexOf(\"Documents\");\r\n return this.serviceUrls.documents + uploadUrl.substring(positionOfDocuments + \"Documents\".length);\r\n }\r\n\r\n public updateDocument(document: Document, accountContext: AccountContext) {\r\n const url = this.serviceUrls.document(document.AccountId, document.Id);\r\n const self = this;\r\n const request = this.http.put(url, document.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Document, request, accountContext);\r\n return request;\r\n }\r\n\r\n public deleteDocument(document: Document, accountContext: AccountContext) {\r\n const url = this.serviceUrls.document(document.AccountId, document.Id);\r\n let request = this.http.delete(url).pipe(share());\r\n //using post/put instead of delete, due to deferred delete\r\n this.handleNormalPostPutRequest(Document, request, accountContext);\r\n return request;\r\n }\r\n\r\n public saveCorrespondence(correspondence: Correspondence, context: AccountContext) {\r\n const url = this.serviceUrls.correspondence(context.accountId, correspondence.Id);\r\n const request = this.http.put(url, correspondence.serialize());\r\n this.handleNormalPostPutRequest(Correspondence, request, context);\r\n }\r\n\r\n public getDocumentUrl(documentId: string, accountId: string, urlType: 'view' | 'download' | 'edit') {\r\n const url = this.serviceUrls.documentUrl(accountId, documentId);\r\n const params = new HttpParams().set(\"urlType\", urlType);\r\n const request = this.http.get(url, { params }).pipe(share());\r\n return request;\r\n }\r\n}\r\n\r\nexport interface DocumentAndFile{\r\n Document: Document,\r\n File: File,\r\n SendForExtraction: boolean\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class DragDropService {\r\n private isDraggingSubject = new BehaviorSubject(false);\r\n \r\n setDragging(isDragging: boolean) { \r\n const currentValue = this.isDraggingSubject.getValue();\r\n if (currentValue !== isDragging) {\r\n console.log(`Dragging state changing from ${currentValue} to ${isDragging}`);\r\n }\r\n this.isDraggingSubject.next(isDragging);\r\n }\r\n\r\n getDragging() {\r\n return this.isDraggingSubject.asObservable();\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AsyncSubject, Observable, of, Subject } from 'rxjs';\r\nimport { FeatureFacetViewModel } from '@Shared/Components/sm-feature-facets/feature-facet.model';\r\nimport { TenantService } from '@Core/CodeGen/Services/tenant.service';\r\nimport _ from 'lodash';\r\n\r\n@Injectable()\r\nexport class FeatureFacetService {\r\n\r\n // Schedule a clearing of an old context after 5 minutes\r\n protected interval = 5* 60 * 1000; // 5 minutes\r\n protected timer: any; // number | NodeJS.Timeout\r\n\r\n private data: AllFeatureFacetsVM;\r\n\r\n constructor (private tenantService: TenantService)\r\n {}\r\n\r\n public getAllFacets() : Observable\r\n {\r\n if (this.data)\r\n {\r\n this.resetTimer();\r\n return of(this.data);\r\n }\r\n else\r\n {\r\n let observable: Subject = new AsyncSubject();\r\n\r\n this.tenantService.ListAllEnabledFeatureFacets().subscribe((response:any) => {\r\n\r\n var content = response.Content;\r\n this.data = {\r\n TenantFacets: content.tenantFacets,\r\n ConfigFacets: content.configFacets,\r\n AreaFacets: content.areaFacets\r\n };\r\n this.resetTimer();\r\n observable.next(this.data);\r\n observable.complete();\r\n });\r\n\r\n return observable;\r\n }\r\n }\r\n\r\n // Don't pass in spaName if you know that you are only checking the tenant facets (i.e. the facet is not a ByArea facet)\r\n public static checkIfFacetExists(facetId: string, allFacets: AllFeatureFacetsVM, spaName: string = null, currentArea: string = null): boolean {\r\n if (spaName == 'admin')\r\n return false;\r\n\r\n var allFacetIds = _.map(allFacets.TenantFacets, f => f.id);\r\n\r\n if (_.includes(allFacetIds, facetId))\r\n return true;\r\n \r\n var configFacetIds = _.map(allFacets.ConfigFacets, f => f.id);\r\n if (_.includes(configFacetIds, facetId)) {\r\n if (spaName == 'conf')\r\n return true;\r\n \r\n var facet = _.find(allFacets.ConfigFacets, f => f.id === facetId);\r\n if (facet.byArea === false)\r\n return true;\r\n \r\n if (!currentArea)\r\n {\r\n console.error(\"Checking if facet exists for an area, but no area was provided.\");\r\n return false;\r\n }\r\n\r\n var areaFacets = allFacets.AreaFacets[currentArea];\r\n if (!areaFacets)\r\n return false;\r\n\r\n var areaFacetids = _.map(areaFacets, f => f.id);\r\n if (_.includes(areaFacetids, facetId))\r\n return true;\r\n }\r\n\r\n return false;\r\n }\r\n\r\n public resetTimer(): void {\r\n clearInterval(this.timer); \r\n this.timer = setTimeout(() => this.data = null, this.interval);\r\n }\r\n}\r\n\r\nexport interface AllFeatureFacetsVM {\r\n TenantFacets: FeatureFacetViewModel[];\r\n ConfigFacets: FeatureFacetViewModel[];\r\n AreaFacets: { [areaKey: string]: FeatureFacetViewModel[] };\r\n}","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport _ from 'lodash';\r\nimport { LoggingService } from './logging-service';\r\nimport { SeverityLevel } from '@microsoft/applicationinsights-web';\r\n\r\n@Injectable()\r\nexport class GlobalMessages {\r\n\r\n private maxLength: number = 100;\r\n\r\n public values: BehaviorSubject;\r\n public last: BehaviorSubject;\r\n\r\n constructor(private logger:LoggingService) {\r\n this.values = new BehaviorSubject([]);\r\n this.last = new BehaviorSubject(null);\r\n }\r\n\r\n Add(message: AppMessage): void {\r\n if (!_.isString(message.message)) {\r\n let objectMessage = message.message as any;\r\n\r\n // HttpErrorResponses have their own message property\r\n if (objectMessage.message && _.isString(objectMessage.message)) {\r\n message.message = objectMessage.message;\r\n this.logger.logInfo(\"Attempted to display a global message \" + \r\n \"with an invalid AppMessage.message\", objectMessage);\r\n }\r\n else {\r\n const err = new Error(\"Attempted to add a global message that didn't have a string for the message.\");\r\n this.logger.logException(err, SeverityLevel.Error, {message: message});\r\n return;\r\n }\r\n }\r\n\r\n this.values.getValue().unshift(message);\r\n if (this.values.getValue.length > this.maxLength)\r\n this.values.getValue().pop();\r\n\r\n this.last.next(message);\r\n\r\n this.values.next(this.values.getValue());\r\n }\r\n\r\n}\r\n\r\ntype messageType = 'info' | 'warning' | 'danger' | 'success'\r\n\r\nexport class AppMessage {\r\n id: number;\r\n \r\n private static count = 0;\r\n\r\n private static nextId() {\r\n return AppMessage.count++;\r\n }\r\n\r\n constructor(public message: string, public type: messageType = 'info', \r\n public alertDuration?: number, public icon?: string, \r\n public dismissible?: boolean, public action?: AppMessageAction) {\r\n this.id = AppMessage.nextId();\r\n\r\n if (type === 'danger' && _.isUndefined(icon)) {\r\n icon = 'exclamation-sign'\r\n }\r\n\r\n // If the alert doesn't auto disapear then it must be dismissable\r\n if (!alertDuration || alertDuration > 3000)\r\n this.dismissible = true;\r\n }\r\n}\r\n\r\nexport class AppMessageAction {\r\n constructor(public label: string, public action: Function) { }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class LoadingService {\r\n\r\n public loading: Subject = new Subject();\r\n}","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nvar _a;\r\nimport { getGlobal, objCreate, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\n;\r\nvar UNDEFINED = \"undefined\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Constructor = 'constructor';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar Prototype = 'prototype';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strFunction = 'function';\r\n/**\r\n * Used to define the name of the instance function lookup table\r\n * @ignore\r\n */\r\nvar DynInstFuncTable = '_dynInstFuncs';\r\n/**\r\n * Name used to tag the dynamic prototype function\r\n * @ignore\r\n */\r\nvar DynProxyTag = '_isDynProxy';\r\n/**\r\n * Name added to a prototype to define the dynamic prototype \"class\" name used to lookup the function table\r\n * @ignore\r\n */\r\nvar DynClassName = '_dynClass';\r\n/**\r\n * Prefix added to the classname to avoid any name clashes with other instance level properties\r\n * @ignore\r\n */\r\nvar DynClassNamePrefix = '_dynCls$';\r\n/**\r\n * A tag which is used to check if we have already to attempted to set the instance function if one is not present\r\n * @ignore\r\n */\r\nvar DynInstChkTag = '_dynInstChk';\r\n/**\r\n * A tag which is used to check if we are allows to try and set an instance function is one is not present. Using the same\r\n * tag name as the function level but a different const name for readability only.\r\n */\r\nvar DynAllowInstChkTag = DynInstChkTag;\r\n/**\r\n * The global (imported) instances where the global performance options are stored\r\n */\r\nvar DynProtoDefaultOptions = '_dfOpts';\r\n/**\r\n * Value used as the name of a class when it cannot be determined\r\n * @ignore\r\n */\r\nvar UnknownValue = '_unknown_';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar str__Proto = \"__proto__\";\r\n/**\r\n * The polyfill version of __proto__ so that it doesn't cause issues for anyone not expecting it to exist\r\n */\r\nvar DynProtoBaseProto = \"_dyn\" + str__Proto;\r\n/**\r\n * Runtime Global holder for dynamicProto settings\r\n */\r\nvar DynProtoGlobalSettings = \"__dynProto$Gbl\";\r\n/**\r\n * Track the current prototype for IE8 as you can't look back to get the prototype\r\n */\r\nvar DynProtoCurrent = \"_dynInstProto\";\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strUseBaseInst = 'useBaseInst';\r\n/**\r\n * Constant string defined to support minimization\r\n * @ignore\r\n */\r\nvar strSetInstFuncs = 'setInstFuncs';\r\nvar Obj = Object;\r\n/**\r\n * Pre-lookup to check if we are running on a modern browser (i.e. not IE8)\r\n * @ignore\r\n */\r\nvar _objGetPrototypeOf = Obj[\"getPrototypeOf\"];\r\n/**\r\n * Pre-lookup to check for the existence of this function\r\n */\r\nvar _objGetOwnProps = Obj[\"getOwnPropertyNames\"];\r\n// Since 1.1.7 moving these to the runtime global to work around mixed version and module issues\r\n// See Issue https://github.com/microsoft/DynamicProto-JS/issues/57 for details\r\nvar _gbl = getGlobal();\r\nvar _gblInst = _gbl[DynProtoGlobalSettings] || (_gbl[DynProtoGlobalSettings] = {\r\n o: (_a = {},\r\n _a[strSetInstFuncs] = true,\r\n _a[strUseBaseInst] = true,\r\n _a),\r\n n: 1000 // Start new global index @ 1000 so we \"fix\" some cases when mixed with 1.1.6 or earlier\r\n});\r\n/**\r\n * Helper used to check whether the target is an Object prototype or Array prototype\r\n * @ignore\r\n */\r\nfunction _isObjectOrArrayPrototype(target) {\r\n return target && (target === Obj[Prototype] || target === Array[Prototype]);\r\n}\r\n/**\r\n * Helper used to check whether the target is an Object prototype, Array prototype or Function prototype\r\n * @ignore\r\n */\r\nfunction _isObjectArrayOrFunctionPrototype(target) {\r\n return _isObjectOrArrayPrototype(target) || target === Function[Prototype];\r\n}\r\n/**\r\n * Helper used to get the prototype of the target object as getPrototypeOf is not available in an ES3 environment.\r\n * @ignore\r\n */\r\nfunction _getObjProto(target) {\r\n var newProto;\r\n if (target) {\r\n // This method doesn't exist in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n return _objGetPrototypeOf(target);\r\n }\r\n var curProto = target[str__Proto] || target[Prototype] || (target[Constructor] ? target[Constructor][Prototype] : null);\r\n // Using the pre-calculated value as IE8 doesn't support looking up the prototype of a prototype and thus fails for more than 1 base class\r\n newProto = target[DynProtoBaseProto] || curProto;\r\n if (!objHasOwnProperty(target, DynProtoBaseProto)) {\r\n // As this prototype doesn't have this property then this is from an inherited class so newProto is the base to return so save it\r\n // so we can look it up value (which for a multiple hierarchy dynamicProto will be the base class)\r\n delete target[DynProtoCurrent]; // Delete any current value allocated to this instance so we pick up the value from prototype hierarchy\r\n newProto = target[DynProtoBaseProto] = target[DynProtoCurrent] || target[DynProtoBaseProto];\r\n target[DynProtoCurrent] = curProto;\r\n }\r\n }\r\n return newProto;\r\n}\r\n/**\r\n * Helper to get the properties of an object, including none enumerable ones as functions on a prototype in ES6\r\n * are not enumerable.\r\n * @param target\r\n */\r\nfunction _forEachProp(target, func) {\r\n var props = [];\r\n if (_objGetOwnProps) {\r\n props = _objGetOwnProps(target);\r\n }\r\n else {\r\n for (var name_1 in target) {\r\n if (typeof name_1 === \"string\" && objHasOwnProperty(target, name_1)) {\r\n props.push(name_1);\r\n }\r\n }\r\n }\r\n if (props && props.length > 0) {\r\n for (var lp = 0; lp < props.length; lp++) {\r\n func(props[lp]);\r\n }\r\n }\r\n}\r\n/**\r\n * Helper function to check whether the provided function name is a potential candidate for dynamic\r\n * callback and prototype generation.\r\n * @param target The target object, may be a prototype or class object\r\n * @param funcName The function name\r\n * @param skipOwn Skips the check for own property\r\n * @ignore\r\n */\r\nfunction _isDynamicCandidate(target, funcName, skipOwn) {\r\n return (funcName !== Constructor && typeof target[funcName] === strFunction && (skipOwn || objHasOwnProperty(target, funcName)) && funcName !== str__Proto && funcName !== Prototype);\r\n}\r\n/**\r\n * Helper to throw a TypeError exception\r\n * @param message the message\r\n * @ignore\r\n */\r\nfunction _throwTypeError(message) {\r\n throwTypeError(\"DynamicProto: \" + message);\r\n}\r\n/**\r\n * Returns a collection of the instance functions that are defined directly on the thisTarget object, it does\r\n * not return any inherited functions\r\n * @param thisTarget The object to get the instance functions from\r\n * @ignore\r\n */\r\nfunction _getInstanceFuncs(thisTarget) {\r\n // Get the base proto\r\n var instFuncs = objCreate(null);\r\n // Save any existing instance functions\r\n _forEachProp(thisTarget, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n if (!instFuncs[name] && _isDynamicCandidate(thisTarget, name, false)) {\r\n // Create an instance callback for passing the base function to the caller\r\n instFuncs[name] = thisTarget[name];\r\n }\r\n });\r\n return instFuncs;\r\n}\r\n/**\r\n * Returns whether the value is included in the array\r\n * @param values The array of values\r\n * @param value The value\r\n */\r\nfunction _hasVisited(values, value) {\r\n for (var lp = values.length - 1; lp >= 0; lp--) {\r\n if (values[lp] === value) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\r\n/**\r\n * Returns an object that contains callback functions for all \"base/super\" functions, this is used to \"save\"\r\n * enabling calling super.xxx() functions without requiring that the base \"class\" has defined a prototype references\r\n * @param target The current instance\r\n * @ignore\r\n */\r\nfunction _getBaseFuncs(classProto, thisTarget, instFuncs, useBaseInst) {\r\n function _instFuncProxy(target, funcHost, funcName) {\r\n var theFunc = funcHost[funcName];\r\n if (theFunc[DynProxyTag] && useBaseInst) {\r\n // grab and reuse the hosted looking function (if available) otherwise the original passed function\r\n var instFuncTable = target[DynInstFuncTable] || {};\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n theFunc = (instFuncTable[funcHost[DynClassName]] || {})[funcName] || theFunc;\r\n }\r\n }\r\n return function () {\r\n // eslint-disable-next-line prefer-rest-params\r\n return theFunc.apply(target, arguments);\r\n };\r\n }\r\n // Start creating a new baseFuncs by creating proxies for the instance functions (as they may get replaced)\r\n var baseFuncs = objCreate(null);\r\n _forEachProp(instFuncs, function (name) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, instFuncs, name);\r\n });\r\n // Get the base prototype functions\r\n var baseProto = _getObjProto(classProto);\r\n var visited = [];\r\n // Don't include base object functions for Object, Array or Function\r\n while (baseProto && !_isObjectArrayOrFunctionPrototype(baseProto) && !_hasVisited(visited, baseProto)) {\r\n // look for prototype functions\r\n _forEachProp(baseProto, function (name) {\r\n // Don't include any dynamic prototype instances - as we only want the real functions\r\n // For IE 7/8 the prototype lookup doesn't provide the full chain so we need to bypass the \r\n // hasOwnProperty check we get all of the methods, main difference is that IE7/8 doesn't return\r\n // the Object prototype methods while bypassing the check\r\n if (!baseFuncs[name] && _isDynamicCandidate(baseProto, name, !_objGetPrototypeOf)) {\r\n // Create an instance callback for passing the base function to the caller\r\n baseFuncs[name] = _instFuncProxy(thisTarget, baseProto, name);\r\n }\r\n });\r\n // We need to find all possible functions that might be overloaded by walking the entire prototype chain\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(baseProto);\r\n baseProto = _getObjProto(baseProto);\r\n }\r\n return baseFuncs;\r\n}\r\nfunction _getInstFunc(target, funcName, proto, currentDynProtoProxy) {\r\n var instFunc = null;\r\n // We need to check whether the class name is defined directly on this prototype otherwise\r\n // it will walk the proto chain and return any parent proto classname.\r\n if (target && objHasOwnProperty(proto, DynClassName)) {\r\n var instFuncTable = target[DynInstFuncTable] || objCreate(null);\r\n instFunc = (instFuncTable[proto[DynClassName]] || objCreate(null))[funcName];\r\n if (!instFunc) {\r\n // Avoid stack overflow from recursive calling the same function\r\n _throwTypeError(\"Missing [\" + funcName + \"] \" + strFunction);\r\n }\r\n // We have the instance function, lets check it we can speed up further calls\r\n // by adding the instance function back directly on the instance (avoiding the dynamic func lookup)\r\n if (!instFunc[DynInstChkTag] && instFuncTable[DynAllowInstChkTag] !== false) {\r\n // If the instance already has an instance function we can't replace it\r\n var canAddInst = !objHasOwnProperty(target, funcName);\r\n // Get current prototype\r\n var objProto = _getObjProto(target);\r\n var visited = [];\r\n // Lookup the function starting at the top (instance level prototype) and traverse down, if the first matching function\r\n // if nothing is found or if the first hit is a dynamic proto instance then we can safely add an instance shortcut\r\n while (canAddInst && objProto && !_isObjectArrayOrFunctionPrototype(objProto) && !_hasVisited(visited, objProto)) {\r\n var protoFunc = objProto[funcName];\r\n if (protoFunc) {\r\n canAddInst = (protoFunc === currentDynProtoProxy);\r\n break;\r\n }\r\n // We need to find all possible initial functions to ensure that we don't bypass a valid override function\r\n visited.push(objProto);\r\n objProto = _getObjProto(objProto);\r\n }\r\n try {\r\n if (canAddInst) {\r\n // This instance doesn't have an instance func and the class hierarchy does have a higher level prototype version\r\n // so it's safe to directly assign for any subsequent calls (for better performance)\r\n target[funcName] = instFunc;\r\n }\r\n // Block further attempts to set the instance function for any\r\n instFunc[DynInstChkTag] = 1;\r\n }\r\n catch (e) {\r\n // Don't crash if the object is readonly or the runtime doesn't allow changing this\r\n // And set a flag so we don't try again for any function\r\n instFuncTable[DynAllowInstChkTag] = false;\r\n }\r\n }\r\n }\r\n return instFunc;\r\n}\r\nfunction _getProtoFunc(funcName, proto, currentDynProtoProxy) {\r\n var protoFunc = proto[funcName];\r\n // Check that the prototype function is not a self reference -- try to avoid stack overflow!\r\n if (protoFunc === currentDynProtoProxy) {\r\n // It is so lookup the base prototype\r\n protoFunc = _getObjProto(proto)[funcName];\r\n }\r\n if (typeof protoFunc !== strFunction) {\r\n _throwTypeError(\"[\" + funcName + \"] is not a \" + strFunction);\r\n }\r\n return protoFunc;\r\n}\r\n/**\r\n * Add the required dynamic prototype methods to the the class prototype\r\n * @param proto - The class prototype\r\n * @param className - The instance classname\r\n * @param target - The target instance\r\n * @param baseInstFuncs - The base instance functions\r\n * @param setInstanceFunc - Flag to allow prototype function to reset the instance function if one does not exist\r\n * @ignore\r\n */\r\nfunction _populatePrototype(proto, className, target, baseInstFuncs, setInstanceFunc) {\r\n function _createDynamicPrototype(proto, funcName) {\r\n var dynProtoProxy = function () {\r\n // Use the instance or prototype function\r\n var instFunc = _getInstFunc(this, funcName, proto, dynProtoProxy) || _getProtoFunc(funcName, proto, dynProtoProxy);\r\n // eslint-disable-next-line prefer-rest-params\r\n return instFunc.apply(this, arguments);\r\n };\r\n // Tag this function as a proxy to support replacing dynamic proxy elements (primary use case is for unit testing\r\n // via which can dynamically replace the prototype function reference)\r\n dynProtoProxy[DynProxyTag] = 1;\r\n return dynProtoProxy;\r\n }\r\n if (!_isObjectOrArrayPrototype(proto)) {\r\n var instFuncTable = target[DynInstFuncTable] = target[DynInstFuncTable] || objCreate(null);\r\n if (!_isObjectOrArrayPrototype(instFuncTable)) {\r\n var instFuncs_1 = instFuncTable[className] = (instFuncTable[className] || objCreate(null)); // fetch and assign if as it may not exist yet\r\n // Set whether we are allow to lookup instances, if someone has set to false then do not re-enable\r\n if (instFuncTable[DynAllowInstChkTag] !== false) {\r\n instFuncTable[DynAllowInstChkTag] = !!setInstanceFunc;\r\n }\r\n if (!_isObjectOrArrayPrototype(instFuncs_1)) {\r\n _forEachProp(target, function (name) {\r\n // Only add overridden functions\r\n if (_isDynamicCandidate(target, name, false) && target[name] !== baseInstFuncs[name]) {\r\n // Save the instance Function to the lookup table and remove it from the instance as it's not a dynamic proto function\r\n instFuncs_1[name] = target[name];\r\n delete target[name];\r\n // Add a dynamic proto if one doesn't exist or if a prototype function exists and it's not a dynamic one\r\n if (!objHasOwnProperty(proto, name) || (proto[name] && !proto[name][DynProxyTag])) {\r\n proto[name] = _createDynamicPrototype(proto, name);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n}\r\n/**\r\n * Checks whether the passed prototype object appears to be correct by walking the prototype hierarchy of the instance\r\n * @param classProto The class prototype instance\r\n * @param thisTarget The current instance that will be checked whether the passed prototype instance is in the hierarchy\r\n * @ignore\r\n */\r\nfunction _checkPrototype(classProto, thisTarget) {\r\n // This method doesn't existing in older browsers (e.g. IE8)\r\n if (_objGetPrototypeOf) {\r\n // As this is primarily a coding time check, don't bother checking if running in IE8 or lower\r\n var visited = [];\r\n var thisProto = _getObjProto(thisTarget);\r\n while (thisProto && !_isObjectArrayOrFunctionPrototype(thisProto) && !_hasVisited(visited, thisProto)) {\r\n if (thisProto === classProto) {\r\n return true;\r\n }\r\n // This avoids the caller from needing to check whether it's direct base class implements the function or not\r\n // by walking the entire chain it simplifies the usage and issues from upgrading any of the base classes.\r\n visited.push(thisProto);\r\n thisProto = _getObjProto(thisProto);\r\n }\r\n return false;\r\n }\r\n // If objGetPrototypeOf doesn't exist then just assume everything is ok.\r\n return true;\r\n}\r\n/**\r\n * Gets the current prototype name using the ES6 name if available otherwise falling back to a use unknown as the name.\r\n * It's not critical for this to return a name, it's used to decorate the generated unique name for easier debugging only.\r\n * @param target\r\n * @param unknownValue\r\n * @ignore\r\n */\r\nfunction _getObjName(target, unknownValue) {\r\n if (objHasOwnProperty(target, Prototype)) {\r\n // Look like a prototype\r\n return target.name || unknownValue || UnknownValue;\r\n }\r\n return (((target || {})[Constructor]) || {}).name || unknownValue || UnknownValue;\r\n}\r\n/**\r\n * Helper function when creating dynamic (inline) functions for classes, this helper performs the following tasks :-\r\n * - Saves references to all defined base class functions\r\n * - Calls the delegateFunc with the current target (this) and a base object reference that can be used to call all \"super\" functions.\r\n * - Will populate the class prototype for all overridden functions to support class extension that call the prototype instance.\r\n * Callers should use this helper when declaring all function within the constructor of a class, as mentioned above the delegateFunc is\r\n * passed both the target \"this\" and an object that can be used to call any base (super) functions, using this based object in place of\r\n * super.XXX() (which gets expanded to _super.prototype.XXX()) provides a better minification outcome and also ensures the correct \"this\"\r\n * context is maintained as TypeScript creates incorrect references using super.XXXX() for dynamically defined functions i.e. Functions\r\n * defined in the constructor or some other function (rather than declared as complete typescript functions).\r\n * ### Usage\r\n * ```typescript\r\n * import dynamicProto from \"@microsoft/dynamicproto-js\";\r\n * class ExampleClass extends BaseClass {\r\n * constructor() {\r\n * dynamicProto(ExampleClass, this, (_self, base) => {\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.newFunc = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * ...\r\n * }\r\n * }\r\n * // This will define a function that will be converted to a prototype function\r\n * _self.myFunction = () => {\r\n * // Access any \"this\" instance property\r\n * if (_self.someProperty) {\r\n * // Call the base version of the function that we are overriding\r\n * base.myFunction();\r\n * }\r\n * ...\r\n * }\r\n * _self.initialize = () => {\r\n * ...\r\n * }\r\n * // Warnings: While the following will work as _self is simply a reference to\r\n * // this, if anyone overrides myFunction() the overridden will be called first\r\n * // as the normal JavaScript method resolution will occur and the defined\r\n * // _self.initialize() function is actually gets removed from the instance and\r\n * // a proxy prototype version is created to reference the created method.\r\n * _self.initialize();\r\n * });\r\n * }\r\n * }\r\n * ```\r\n * @typeparam DPType This is the generic type of the class, used to keep intellisense valid\r\n * @typeparam DPCls The type that contains the prototype of the current class\r\n * @param theClass - This is the current class instance which contains the prototype for the current class\r\n * @param target - The current \"this\" (target) reference, when the class has been extended this.prototype will not be the 'theClass' value.\r\n * @param delegateFunc - The callback function (closure) that will create the dynamic function\r\n * @param options - Additional options to configure how the dynamic prototype operates\r\n */\r\nexport default function dynamicProto(theClass, target, delegateFunc, options) {\r\n // Make sure that the passed theClass argument looks correct\r\n if (!objHasOwnProperty(theClass, Prototype)) {\r\n _throwTypeError(\"theClass is an invalid class definition.\");\r\n }\r\n // Quick check to make sure that the passed theClass argument looks correct (this is a common copy/paste error)\r\n var classProto = theClass[Prototype];\r\n if (!_checkPrototype(classProto, target)) {\r\n _throwTypeError(\"[\" + _getObjName(theClass) + \"] not in hierarchy of [\" + _getObjName(target) + \"]\");\r\n }\r\n var className = null;\r\n if (objHasOwnProperty(classProto, DynClassName)) {\r\n // Only grab the class name if it's defined on this prototype (i.e. don't walk the prototype chain)\r\n className = classProto[DynClassName];\r\n }\r\n else {\r\n // As not all browser support name on the prototype creating a unique dynamic one if we have not already\r\n // assigned one, so we can use a simple string as the lookup rather than an object for the dynamic instance\r\n // function table lookup.\r\n className = DynClassNamePrefix + _getObjName(theClass, \"_\") + \"$\" + _gblInst.n;\r\n _gblInst.n++;\r\n classProto[DynClassName] = className;\r\n }\r\n var perfOptions = dynamicProto[DynProtoDefaultOptions];\r\n var useBaseInst = !!perfOptions[strUseBaseInst];\r\n if (useBaseInst && options && options[strUseBaseInst] !== undefined) {\r\n useBaseInst = !!options[strUseBaseInst];\r\n }\r\n // Get the current instance functions\r\n var instFuncs = _getInstanceFuncs(target);\r\n // Get all of the functions for any base instance (before they are potentially overridden)\r\n var baseFuncs = _getBaseFuncs(classProto, target, instFuncs, useBaseInst);\r\n // Execute the delegate passing in both the current target \"this\" and \"base\" function references\r\n // Note casting the same type as we don't actually have the base class here and this will provide some intellisense support\r\n delegateFunc(target, baseFuncs);\r\n // Don't allow setting instance functions for older IE instances\r\n var setInstanceFunc = !!_objGetPrototypeOf && !!perfOptions[strSetInstFuncs];\r\n if (setInstanceFunc && options) {\r\n setInstanceFunc = !!options[strSetInstFuncs];\r\n }\r\n // Populate the Prototype for any overridden instance functions\r\n _populatePrototype(classProto, className, target, instFuncs, setInstanceFunc !== false);\r\n}\r\n/**\r\n * Exposes the default global options to allow global configuration, if the global values are disabled these will override\r\n * any passed values. This is primarily exposed to support unit-testing without the need for individual classes to expose\r\n * their internal usage of dynamic proto.\r\n */\r\ndynamicProto[DynProtoDefaultOptions] = _gblInst.o;\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nexport var strShimFunction = \"function\";\r\nexport var strShimObject = \"object\";\r\nexport var strShimUndefined = \"undefined\";\r\nexport var strShimPrototype = \"prototype\";\r\nexport var strDefault = \"default\";\r\nexport var ObjClass = Object;\r\nexport var ObjProto = ObjClass[strShimPrototype];\r\n","// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { getGlobal, objAssign, objCreate, objDefineProp, objHasOwnProperty, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { ObjClass, ObjProto, strDefault, strShimFunction, strShimPrototype } from \"./Constants\";\r\n// Most of these functions have been directly shamelessly \"lifted\" from the https://github.com/@microsoft/tslib and\r\n// modified to be ES5 compatible and applying several minification and tree-shaking techniques so that Application Insights\r\n// can successfully use TypeScript \"importHelpers\" which imports tslib during compilation but it will use these at runtime\r\n// Which is also why all of the functions have not been included as Application Insights currently doesn't use or require\r\n// them.\r\nexport var SymbolObj = (getGlobal() || {})[\"Symbol\"];\r\nexport var ReflectObj = (getGlobal() || {})[\"Reflect\"];\r\nexport var __hasReflect = !!ReflectObj;\r\nvar strDecorate = \"decorate\";\r\nvar strMetadata = \"metadata\";\r\nvar strGetOwnPropertySymbols = \"getOwnPropertySymbols\";\r\nvar strIterator = \"iterator\";\r\nvar strHasOwnProperty = \"hasOwnProperty\";\r\nexport var __objAssignFnImpl = function (t) {\r\n // tslint:disable-next-line: ban-comma-operator\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) {\r\n if (ObjProto[strHasOwnProperty].call(s, p)) {\r\n t[p] = s[p];\r\n }\r\n }\r\n }\r\n return t;\r\n};\r\nexport var __assignFn = objAssign || __objAssignFnImpl;\r\n// tslint:disable-next-line: only-arrow-functions\r\nvar extendStaticsFn = function (d, b) {\r\n extendStaticsFn = ObjClass[\"setPrototypeOf\"] ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n ({ __proto__: [] } instanceof Array && function (d, b) {\r\n d.__proto__ = b;\r\n }) ||\r\n // tslint:disable-next-line: only-arrow-functions\r\n function (d, b) {\r\n for (var p in b) {\r\n if (b[strHasOwnProperty](p)) {\r\n d[p] = b[p];\r\n }\r\n }\r\n };\r\n return extendStaticsFn(d, b);\r\n};\r\nexport function __extendsFn(d, b) {\r\n if (typeof b !== strShimFunction && b !== null) {\r\n throwTypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n }\r\n extendStaticsFn(d, b);\r\n function __() {\r\n this.constructor = d;\r\n }\r\n // tslint:disable-next-line: ban-comma-operator\r\n d[strShimPrototype] = b === null ? objCreate(b) : (__[strShimPrototype] = b[strShimPrototype], new __());\r\n}\r\nexport function __restFn(s, e) {\r\n var t = {};\r\n for (var k in s) {\r\n if (objHasOwnProperty(s, k) && e.indexOf(k) < 0) {\r\n t[k] = s[k];\r\n }\r\n }\r\n if (s != null && typeof ObjClass[strGetOwnPropertySymbols] === strShimFunction) {\r\n for (var i = 0, p = ObjClass[strGetOwnPropertySymbols](s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && ObjProto[\"propertyIsEnumerable\"].call(s, p[i])) {\r\n t[p[i]] = s[p[i]];\r\n }\r\n }\r\n }\r\n return t;\r\n}\r\nexport function __decorateFn(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = ObjClass[\"getOwnPropertyDescriptor\"](target, key) : desc, d;\r\n if (__hasReflect && typeof ReflectObj[strDecorate] === strShimFunction) {\r\n r = ReflectObj[strDecorate](decorators, target, key, desc);\r\n }\r\n else {\r\n for (var i = decorators.length - 1; i >= 0; i--) {\r\n // eslint-disable-next-line no-cond-assign\r\n if (d = decorators[i]) {\r\n r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n }\r\n }\r\n }\r\n // tslint:disable-next-line:ban-comma-operator\r\n return c > 3 && r && objDefineProp(target, key, r), r;\r\n}\r\nexport function __paramFn(paramIndex, decorator) {\r\n return function (target, key) {\r\n decorator(target, key, paramIndex);\r\n };\r\n}\r\nexport function __metadataFn(metadataKey, metadataValue) {\r\n if (__hasReflect && ReflectObj[strMetadata] === strShimFunction) {\r\n return ReflectObj[strMetadata](metadataKey, metadataValue);\r\n }\r\n}\r\nexport function __exportStarFn(m, o) {\r\n for (var p in m) {\r\n if (p !== strDefault && !objHasOwnProperty(o, p)) {\r\n __createBindingFn(o, m, p);\r\n }\r\n }\r\n}\r\nexport function __createBindingFn(o, m, k, k2) {\r\n if (k2 === undefined) {\r\n k2 = k;\r\n }\r\n if (!!objDefineProp) {\r\n objDefineProp(o, k2, {\r\n enumerable: true,\r\n get: function () {\r\n return m[k];\r\n }\r\n });\r\n }\r\n else {\r\n o[k2] = m[k];\r\n }\r\n}\r\nexport function __valuesFn(o) {\r\n var s = typeof SymbolObj === strShimFunction && SymbolObj[strIterator], m = s && o[s], i = 0;\r\n if (m) {\r\n return m.call(o);\r\n }\r\n if (o && typeof o.length === \"number\") {\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) {\r\n o = void 0;\r\n }\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n }\r\n throwTypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\nexport function __readFn(o, n) {\r\n var m = typeof SymbolObj === strShimFunction && o[SymbolObj[strIterator]];\r\n if (!m) {\r\n return o;\r\n }\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\r\n ar.push(r.value);\r\n }\r\n }\r\n catch (error) {\r\n e = {\r\n error: error\r\n };\r\n }\r\n finally {\r\n try {\r\n // tslint:disable-next-line:no-conditional-assignment\r\n if (r && !r.done && (m = i[\"return\"])) {\r\n m.call(i);\r\n }\r\n }\r\n finally {\r\n if (e) {\r\n // eslint-disable-next-line no-unsafe-finally\r\n throw e.error;\r\n }\r\n }\r\n }\r\n return ar;\r\n}\r\n/** @deprecated */\r\nexport function __spreadArraysFn() {\r\n var theArgs = arguments;\r\n // Calculate new total size\r\n for (var s = 0, i = 0, il = theArgs.length; i < il; i++) {\r\n s += theArgs[i].length;\r\n }\r\n // Create new full array\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\r\n for (var a = theArgs[i], j = 0, jl = a.length; j < jl; j++, k++) {\r\n r[k] = a[j];\r\n }\r\n }\r\n return r;\r\n}\r\nexport function __spreadArrayFn(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++) {\r\n to[j] = from[i];\r\n }\r\n return to;\r\n}\r\nexport function __makeTemplateObjectFn(cooked, raw) {\r\n if (objDefineProp) {\r\n objDefineProp(cooked, \"raw\", { value: raw });\r\n }\r\n else {\r\n cooked.raw = raw;\r\n }\r\n return cooked;\r\n}\r\nexport function __importStarFn(mod) {\r\n if (mod && mod.__esModule) {\r\n return mod;\r\n }\r\n var result = {};\r\n if (mod != null) {\r\n for (var k in mod) {\r\n if (k !== strDefault && Object.prototype.hasOwnProperty.call(mod, k)) {\r\n __createBindingFn(result, mod, k);\r\n }\r\n }\r\n }\r\n // Set default module\r\n if (!!objDefineProp) {\r\n objDefineProp(result, strDefault, { enumerable: true, value: mod });\r\n }\r\n else {\r\n result[strDefault] = mod;\r\n }\r\n return result;\r\n}\r\nexport function __importDefaultFn(mod) {\r\n return (mod && mod.__esModule) ? mod : { strDefault: mod };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 11\r\nexport var _DYN_BLK_VAL = \"blkVal\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 55\r\nexport var _DYN_RD_ONLY = \"rdOnly\"; // Count: 4\r\nexport var _DYN_NOTIFY = \"notify\"; // Count: 4\r\nexport var _DYN_WARN_TO_CONSOLE = \"warnToConsole\"; // Count: 4\r\nexport var _DYN_THROW_INTERNAL = \"throwInternal\"; // Count: 5\r\nexport var _DYN_SET_DF = \"setDf\"; // Count: 6\r\nexport var _DYN_WATCH = \"watch\"; // Count: 8\r\nexport var _DYN_LOGGER = \"logger\"; // Count: 21\r\nexport var _DYN_APPLY = \"apply\"; // Count: 7\r\nexport var _DYN_PUSH = \"push\"; // Count: 35\r\nexport var _DYN_SPLICE = \"splice\"; // Count: 8\r\nexport var _DYN_HDLR = \"hdlr\"; // Count: 6\r\nexport var _DYN_CANCEL = \"cancel\"; // Count: 6\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 5\r\nexport var _DYN_IDENTIFIER = \"identifier\"; // Count: 8\r\nexport var _DYN_REMOVE_NOTIFICATION_0 = \"removeNotificationListener\"; // Count: 4\r\nexport var _DYN_ADD_NOTIFICATION_LIS1 = \"addNotificationListener\"; // Count: 4\r\nexport var _DYN_IS_INITIALIZED = \"isInitialized\"; // Count: 10\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 2\r\nexport var _DYN__INACTIVE = \"INACTIVE\"; // Count: 3\r\nexport var _DYN_VALUE = \"value\"; // Count: 5\r\nexport var _DYN_GET_NOTIFY_MGR = \"getNotifyMgr\"; // Count: 5\r\nexport var _DYN_GET_PLUGIN = \"getPlugin\"; // Count: 6\r\nexport var _DYN_NAME = \"name\"; // Count: 12\r\nexport var _DYN_I_KEY = \"iKey\"; // Count: 5\r\nexport var _DYN_TIME = \"time\"; // Count: 6\r\nexport var _DYN_PROCESS_NEXT = \"processNext\"; // Count: 15\r\nexport var _DYN_GET_PROCESS_TEL_CONT2 = \"getProcessTelContext\"; // Count: 2\r\nexport var _DYN_POLL_INTERNAL_LOGS = \"pollInternalLogs\"; // Count: 2\r\nexport var _DYN_ENABLED = \"enabled\"; // Count: 6\r\nexport var _DYN_STOP_POLLING_INTERNA3 = \"stopPollingInternalLogs\"; // Count: 2\r\nexport var _DYN_UNLOAD = \"unload\"; // Count: 9\r\nexport var _DYN_ON_COMPLETE = \"onComplete\"; // Count: 5\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_LOGGING_LEVEL_CONSOL4 = \"loggingLevelConsole\"; // Count: 2\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 7\r\nexport var _DYN_TEARDOWN = \"teardown\"; // Count: 9\r\nexport var _DYN_MESSAGE_ID = \"messageId\"; // Count: 4\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 7\r\nexport var _DYN_IS_ASYNC = \"isAsync\"; // Count: 6\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 10\r\nexport var _DYN__DO_TEARDOWN = \"_doTeardown\"; // Count: 5\r\nexport var _DYN_UPDATE = \"update\"; // Count: 6\r\nexport var _DYN_GET_NEXT = \"getNext\"; // Count: 12\r\nexport var _DYN_SET_NEXT_PLUGIN = \"setNextPlugin\"; // Count: 5\r\nexport var _DYN_PROTOCOL = \"protocol\"; // Count: 3\r\nexport var _DYN_USER_AGENT = \"userAgent\"; // Count: 5\r\nexport var _DYN_SPLIT = \"split\"; // Count: 7\r\nexport var _DYN_NODE_TYPE = \"nodeType\"; // Count: 3\r\nexport var _DYN_REPLACE = \"replace\"; // Count: 9\r\nexport var _DYN_LOG_INTERNAL_MESSAGE = \"logInternalMessage\"; // Count: 2\r\nexport var _DYN_TYPE = \"type\"; // Count: 14\r\nexport var _DYN_HANDLER = \"handler\"; // Count: 5\r\nexport var _DYN_STATUS = \"status\"; // Count: 5\r\nexport var _DYN_GET_RESPONSE_HEADER = \"getResponseHeader\"; // Count: 2\r\nexport var _DYN_GET_ALL_RESPONSE_HEA5 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_IS_CHILD_EVT = \"isChildEvt\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 7\r\nexport var _DYN_GET_CTX = \"getCtx\"; // Count: 6\r\nexport var _DYN_SET_CTX = \"setCtx\"; // Count: 10\r\nexport var _DYN_COMPLETE = \"complete\"; // Count: 3\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_URL_STRING = \"urlString\"; // Count: 5\r\nexport var _DYN_SEND_POST = \"sendPOST\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 5\r\nexport var _DYN_TIMEOUT = \"timeout\"; // Count: 6\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 2\r\nexport var _DYN_TRACE_ID = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID = \"spanId\"; // Count: 5\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 6\r\nexport var _DYN_GET_ATTRIBUTE = \"getAttribute\"; // Count: 3\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\nexport var UNDEFINED_VALUE = undefined;\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_CHANNELS = \"channels\";\r\nexport var STR_CORE = \"core\";\r\nexport var STR_CREATE_PERF_MGR = \"createPerfMgr\";\r\nexport var STR_DISABLED = \"disabled\";\r\nexport var STR_EXTENSION_CONFIG = \"extensionConfig\";\r\nexport var STR_EXTENSIONS = \"extensions\";\r\nexport var STR_PROCESS_TELEMETRY = \"processTelemetry\";\r\nexport var STR_PRIORITY = \"priority\";\r\nexport var STR_EVENTS_SENT = \"eventsSent\";\r\nexport var STR_EVENTS_DISCARDED = \"eventsDiscarded\";\r\nexport var STR_EVENTS_SEND_REQUEST = \"eventsSendRequest\";\r\nexport var STR_PERF_EVENT = \"perfEvent\";\r\nexport var STR_OFFLINE_STORE = \"offlineEventsStored\";\r\nexport var STR_OFFLINE_SENT = \"offlineBatchSent\";\r\nexport var STR_OFFLINE_DROP = \"offlineBatchDrop\";\r\nexport var STR_GET_PERF_MGR = \"getPerfMgr\";\r\nexport var STR_DOMAIN = \"domain\";\r\nexport var STR_PATH = \"path\";\r\nexport var STR_NOT_DYNAMIC_ERROR = \"Not dynamic - \";\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ObjAssign, ObjClass } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, asString as asString21, isArray, isBoolean, isError, isFunction, isNullOrUndefined, isNumber, isObject, isPlainObject, isString, isUndefined, objDeepFreeze, objDefine, objForEachKey, objHasOwn, strIndexOf, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_GET_ALL_RESPONSE_HEA5, _DYN_GET_RESPONSE_HEADER, _DYN_LENGTH, _DYN_NAME, _DYN_REPLACE, _DYN_SPLIT, _DYN_STATUS, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// RESTRICT and AVOID circular dependencies you should not import other contained modules or export the contents of this file directly\r\n// Added to help with minification\r\nvar strGetPrototypeOf = \"getPrototypeOf\";\r\nvar rCamelCase = /-([a-z])/g;\r\nvar rNormalizeInvalid = /([^\\w\\d_$])/g;\r\nvar rLeadingNumeric = /^(\\d+[\\w\\d_$])/;\r\nexport var _getObjProto = Object[strGetPrototypeOf];\r\nexport function isNotUndefined(value) {\r\n return !isUndefined(value);\r\n}\r\nexport function isNotNullOrUndefined(value) {\r\n return !isNullOrUndefined(value);\r\n}\r\n/**\r\n * Validates that the string name conforms to the JS IdentifierName specification and if not\r\n * normalizes the name so that it would. This method does not identify or change any keywords\r\n * meaning that if you pass in a known keyword the same value will be returned.\r\n * This is a simplified version\r\n * @param name - The name to validate\r\n */\r\nexport function normalizeJsName(name) {\r\n var value = name;\r\n if (value && isString(value)) {\r\n // CamelCase everything after the \"-\" and remove the dash\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rCamelCase, function (_all, letter) {\r\n return letter.toUpperCase();\r\n });\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rNormalizeInvalid, \"_\");\r\n value = value[_DYN_REPLACE /* @min:%2ereplace */](rLeadingNumeric, function (_all, match) {\r\n return \"_\" + match;\r\n });\r\n }\r\n return value;\r\n}\r\n/**\r\n * A simple wrapper (for minification support) to check if the value contains the search string.\r\n * @param value - The string value to check for the existence of the search value\r\n * @param search - The value search within the value\r\n */\r\nexport function strContains(value, search) {\r\n if (value && search) {\r\n return strIndexOf(value, search) !== -1;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Convert a date to I.S.O. format in IE8\r\n */\r\nexport function toISOString(date) {\r\n return date && date.toISOString() || \"\";\r\n}\r\nexport var deepFreeze = objDeepFreeze;\r\n/**\r\n * Returns the name of object if it's an Error. Otherwise, returns empty string.\r\n */\r\nexport function getExceptionName(object) {\r\n if (isError(object)) {\r\n return object[_DYN_NAME /* @min:%2ename */];\r\n }\r\n return STR_EMPTY;\r\n}\r\n/**\r\n * Sets the provided value on the target instance using the field name when the provided chk function returns true, the chk\r\n * function will only be called if the new value is no equal to the original value.\r\n * @param target - The target object\r\n * @param field - The key of the target\r\n * @param value - The value to set\r\n * @param valChk - [Optional] Callback to check the value that if supplied will be called check if the new value can be set\r\n * @param srcChk - [Optional] Callback to check to original value that if supplied will be called if the new value should be set (if allowed)\r\n * @returns The existing or new value, depending what was set\r\n */\r\nexport function setValue(target, field, value, valChk, srcChk) {\r\n var theValue = value;\r\n if (target) {\r\n theValue = target[field];\r\n if (theValue !== value && (!srcChk || srcChk(theValue)) && (!valChk || valChk(value))) {\r\n theValue = value;\r\n target[field] = theValue;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Returns the current value from the target object if not null or undefined otherwise sets the new value and returns it\r\n * @param target - The target object to return or set the default value\r\n * @param field - The key for the field to set on the target\r\n * @param defValue - [Optional] The value to set if not already present, when not provided a empty object will be added\r\n */\r\nexport function getSetValue(target, field, defValue) {\r\n var theValue;\r\n if (target) {\r\n theValue = target[field];\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n // Supports having the default as null\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n target[field] = theValue;\r\n }\r\n }\r\n else {\r\n // Expanded for performance so we only check defValue if required\r\n theValue = !isUndefined(defValue) ? defValue : {};\r\n }\r\n return theValue;\r\n}\r\nfunction _createProxyFunction(source, funcName) {\r\n var srcFunc = null;\r\n var src = null;\r\n if (isFunction(source)) {\r\n srcFunc = source;\r\n }\r\n else {\r\n src = source;\r\n }\r\n return function () {\r\n // Capture the original arguments passed to the method\r\n var originalArguments = arguments;\r\n if (srcFunc) {\r\n src = srcFunc();\r\n }\r\n if (src) {\r\n return src[funcName][_DYN_APPLY /* @min:%2eapply */](src, originalArguments);\r\n }\r\n };\r\n}\r\n/**\r\n * Effectively assigns all enumerable properties (not just own properties) and functions (including inherited prototype) from\r\n * the source object to the target, it attempts to use proxy getters / setters (if possible) and proxy functions to avoid potential\r\n * implementation issues by assigning prototype functions as instance ones\r\n *\r\n * This method is the primary method used to \"update\" the snippet proxy with the ultimate implementations.\r\n *\r\n * Special ES3 Notes:\r\n * Updates (setting) of direct property values on the target or indirectly on the source object WILL NOT WORK PROPERLY, updates to the\r\n * properties of \"referenced\" object will work (target.context.newValue = 10 => will be reflected in the source.context as it's the\r\n * same object). ES3 Failures: assigning target.myProp = 3 -> Won't change source.myProp = 3, likewise the reverse would also fail.\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param chkSet - An optional callback to determine whether a specific property/function should be proxied\r\n */\r\nexport function proxyAssign(target, source, chkSet) {\r\n if (target && source && isObject(target) && isObject(source)) {\r\n var _loop_1 = function (field) {\r\n if (isString(field)) {\r\n var value = source[field];\r\n if (isFunction(value)) {\r\n if (!chkSet || chkSet(field, true, source, target)) {\r\n // Create a proxy function rather than just copying the (possible) prototype to the new object as an instance function\r\n target[field] = _createProxyFunction(source, field);\r\n }\r\n }\r\n else if (!chkSet || chkSet(field, false, source, target)) {\r\n if (objHasOwn(target, field)) {\r\n // Remove any previous instance property\r\n delete target[field];\r\n }\r\n objDefine(target, field, {\r\n g: function () {\r\n return source[field];\r\n },\r\n s: function (theValue) {\r\n source[field] = theValue;\r\n }\r\n });\r\n }\r\n }\r\n };\r\n // effectively apply/proxy full source to the target instance\r\n for (var field in source) {\r\n _loop_1(field);\r\n }\r\n }\r\n return target;\r\n}\r\n/**\r\n * Creates a proxy function on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param name - The function name that will be added on the target\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param theFunc - The function name on the source that will be proxied on the target\r\n * @param overwriteTarget - If `false` this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctionAs(target, name, source, theFunc, overwriteTarget) {\r\n if (target && name && source) {\r\n if (overwriteTarget !== false || isUndefined(target[name])) {\r\n target[name] = _createProxyFunction(source, theFunc);\r\n }\r\n }\r\n}\r\n/**\r\n * Creates proxy functions on the target which internally will call the source version with all arguments passed to the target method.\r\n *\r\n * @param target - The target object to be assigned with the source properties and functions\r\n * @param source - The source object which will be assigned / called by setting / calling the targets proxies\r\n * @param functionsToProxy - An array of function names that will be proxied on the target\r\n * @param overwriteTarget - If false this will not replace any pre-existing name otherwise (the default) it will overwrite any existing name\r\n */\r\nexport function proxyFunctions(target, source, functionsToProxy, overwriteTarget) {\r\n if (target && source && isObject(target) && isArray(functionsToProxy)) {\r\n arrForEach(functionsToProxy, function (theFuncName) {\r\n if (isString(theFuncName)) {\r\n proxyFunctionAs(target, theFuncName, source, theFuncName, overwriteTarget);\r\n }\r\n });\r\n }\r\n return target;\r\n}\r\n/**\r\n * Simpler helper to create a dynamic class that implements the interface and populates the values with the defaults.\r\n * Only instance properties (hasOwnProperty) values are copied from the defaults to the new instance\r\n * @param defaults - Simple helper\r\n */\r\nexport function createClassFromInterface(defaults) {\r\n return /** @class */ (function () {\r\n function class_1() {\r\n var _this = this;\r\n if (defaults) {\r\n objForEachKey(defaults, function (field, value) {\r\n _this[field] = value;\r\n });\r\n }\r\n }\r\n return class_1;\r\n }());\r\n}\r\n/**\r\n * A helper function to assist with JIT performance for objects that have properties added / removed dynamically\r\n * this is primarily for chromium based browsers and has limited effects on Firefox and none of IE. Only call this\r\n * function after you have finished \"updating\" the object, calling this within loops reduces or defeats the benefits.\r\n * This helps when iterating using for..in, objKeys() and objForEach()\r\n * @param theObject - The object to be optimized if possible\r\n */\r\nexport function optimizeObject(theObject) {\r\n // V8 Optimization to cause the JIT compiler to create a new optimized object for looking up the own properties\r\n // primarily for object with <= 19 properties for >= 20 the effect is reduced or non-existent\r\n if (theObject && ObjAssign) {\r\n theObject = ObjClass(ObjAssign({}, theObject));\r\n }\r\n return theObject;\r\n}\r\nexport function objExtend(obj1, obj2, obj3, obj4, obj5, obj6) {\r\n // Variables\r\n var theArgs = arguments;\r\n var extended = theArgs[0] || {};\r\n var argLen = theArgs[_DYN_LENGTH /* @min:%2elength */];\r\n var deep = false;\r\n var idx = 1;\r\n // Check for \"Deep\" flag\r\n if (argLen > 0 && isBoolean(extended)) {\r\n deep = extended;\r\n extended = theArgs[idx] || {};\r\n idx++;\r\n }\r\n // Handle case when target is a string or something (possible in deep copy)\r\n if (!isObject(extended)) {\r\n extended = {};\r\n }\r\n // Loop through each remaining object and conduct a merge\r\n for (; idx < argLen; idx++) {\r\n var arg = theArgs[idx];\r\n var isArgArray = isArray(arg);\r\n var isArgObj = isObject(arg);\r\n for (var prop in arg) {\r\n var propOk = (isArgArray && (prop in arg)) || (isArgObj && objHasOwn(arg, prop));\r\n if (!propOk) {\r\n continue;\r\n }\r\n var newValue = arg[prop];\r\n var isNewArray = void 0;\r\n // If deep merge and property is an object, merge properties\r\n if (deep && newValue && ((isNewArray = isArray(newValue)) || isPlainObject(newValue))) {\r\n // Grab the current value of the extended object\r\n var clone = extended[prop];\r\n if (isNewArray) {\r\n if (!isArray(clone)) {\r\n // We can't \"merge\" an array with a non-array so overwrite the original\r\n clone = [];\r\n }\r\n }\r\n else if (!isPlainObject(clone)) {\r\n // We can't \"merge\" an object with a non-object\r\n clone = {};\r\n }\r\n // Never move the original objects always clone them\r\n newValue = objExtend(deep, clone, newValue);\r\n }\r\n // Assign the new (or previous) value (unless undefined)\r\n if (newValue !== undefined) {\r\n extended[prop] = newValue;\r\n }\r\n }\r\n }\r\n return extended;\r\n}\r\nexport var asString = asString21;\r\nexport function isFeatureEnabled(feature, cfg) {\r\n var rlt = false;\r\n var ft = cfg && cfg.featureOptIn && cfg.featureOptIn[feature];\r\n if (feature && ft) {\r\n var mode = ft.mode;\r\n // NOTE: None will be considered as true\r\n rlt = (mode == 3 /* FeatureOptInMode.enable */) || (mode == 1 /* FeatureOptInMode.none */);\r\n }\r\n return rlt;\r\n}\r\nexport function getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nexport function formatErrorMessageXdr(xdr, message) {\r\n if (xdr) {\r\n return \"XDomainRequest,Response:\" + getResponseText(xdr) || \"\";\r\n }\r\n return message;\r\n}\r\nexport function formatErrorMessageXhr(xhr, message) {\r\n if (xhr) {\r\n return \"XMLHttpRequest,Status:\" + xhr[_DYN_STATUS /* @min:%2estatus */] + \",Response:\" + getResponseText(xhr) || xhr.response || \"\";\r\n }\r\n return message;\r\n}\r\nexport function prependTransports(theTransports, newTransports) {\r\n if (newTransports) {\r\n if (isNumber(newTransports)) {\r\n theTransports = [newTransports].concat(theTransports);\r\n }\r\n else if (isArray(newTransports)) {\r\n theTransports = newTransports.concat(theTransports);\r\n }\r\n }\r\n return theTransports;\r\n}\r\nvar strDisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nvar strWithCredentials = \"withCredentials\";\r\nvar strTimeout = \"timeout\";\r\n/**\r\n * Create and open an XMLHttpRequest object\r\n * @param method - The request method\r\n * @param urlString - The url\r\n * @param withCredentials - Option flag indicating that credentials should be sent\r\n * @param disabled - Optional flag indicating that the XHR object should be marked as disabled and not tracked (default is false)\r\n * @param isSync - Optional flag indicating if the instance should be a synchronous request (defaults to false)\r\n * @param timeout - Optional value identifying the timeout value that should be assigned to the XHR request\r\n * @returns A new opened XHR request\r\n */\r\nexport function openXhr(method, urlString, withCredentials, disabled, isSync, timeout) {\r\n if (disabled === void 0) { disabled = false; }\r\n if (isSync === void 0) { isSync = false; }\r\n function _wrapSetXhrProp(xhr, prop, value) {\r\n try {\r\n xhr[prop] = value;\r\n }\r\n catch (e) {\r\n // - Wrapping as depending on the environment setting the property may fail (non-terminally)\r\n }\r\n }\r\n var xhr = new XMLHttpRequest();\r\n if (disabled) {\r\n // Tag the instance so it's not tracked (trackDependency)\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n _wrapSetXhrProp(xhr, strDisabledPropertyName, disabled);\r\n }\r\n if (withCredentials) {\r\n // Some libraries require that the withCredentials flag is set \"before\" open and\r\n // - Wrapping as IE 10 has started throwing when setting before open\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n xhr.open(method, urlString, !isSync);\r\n if (withCredentials) {\r\n // withCredentials should be set AFTER open (https://xhr.spec.whatwg.org/#the-withcredentials-attribute)\r\n // And older firefox instances from 11+ will throw for sync events (current versions don't) which happens during unload processing\r\n _wrapSetXhrProp(xhr, strWithCredentials, withCredentials);\r\n }\r\n // Only set the timeout for asynchronous requests as\r\n // \"Timeout shouldn't be used for synchronous XMLHttpRequests requests used in a document environment or it will throw an InvalidAccessError exception.\"\"\r\n // https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/timeout\r\n if (!isSync && timeout) {\r\n _wrapSetXhrProp(xhr, strTimeout, timeout);\r\n }\r\n return xhr;\r\n}\r\n/**\r\n* Converts the XHR getAllResponseHeaders to a map containing the header key and value.\r\n* @internal\r\n*/\r\n// tslint:disable-next-line: align\r\nexport function convertAllHeadersToMap(headersString) {\r\n var headers = {};\r\n if (isString(headersString)) {\r\n var headersArray = strTrim(headersString)[_DYN_SPLIT /* @min:%2esplit */](/[\\r\\n]+/);\r\n arrForEach(headersArray, function (headerEntry) {\r\n if (headerEntry) {\r\n var idx = headerEntry.indexOf(\": \");\r\n if (idx !== -1) {\r\n // The new spec has the headers returning all as lowercase -- but not all browsers do this yet\r\n var header = strTrim(headerEntry.substring(0, idx))[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = strTrim(headerEntry.substring(idx + 1));\r\n headers[header] = value;\r\n }\r\n else {\r\n headers[strTrim(headerEntry)] = 1;\r\n }\r\n }\r\n });\r\n }\r\n return headers;\r\n}\r\n/**\r\n* append the XHR headers.\r\n* @internal\r\n*/\r\nexport function _appendHeader(theHeaders, xhr, name) {\r\n if (!theHeaders[name] && xhr && xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */]) {\r\n var value = xhr[_DYN_GET_RESPONSE_HEADER /* @min:%2egetResponseHeader */](name);\r\n if (value) {\r\n theHeaders[name] = strTrim(value);\r\n }\r\n }\r\n return theHeaders;\r\n}\r\nvar STR_KILL_DURATION_HEADER = \"kill-duration\";\r\nvar STR_KILL_DURATION_SECONDS_HEADER = \"kill-duration-seconds\";\r\nvar STR_TIME_DELTA_HEADER = \"time-delta-millis\";\r\n/**\r\n* get the XHR getAllResponseHeaders.\r\n* @internal\r\n*/\r\nexport function _getAllResponseHeaders(xhr, isOneDs) {\r\n var theHeaders = {};\r\n if (!xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]) {\r\n // Firefox 2-63 doesn't have getAllResponseHeaders function but it does have getResponseHeader\r\n // Only call these if getAllResponseHeaders doesn't exist, otherwise we can get invalid response errors\r\n // as collector is not currently returning the correct header to allow JS to access these headers\r\n if (!!isOneDs) {\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_TIME_DELTA_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_HEADER);\r\n theHeaders = _appendHeader(theHeaders, xhr, STR_KILL_DURATION_SECONDS_HEADER);\r\n }\r\n }\r\n else {\r\n theHeaders = convertAllHeadersToMap(xhr[_DYN_GET_ALL_RESPONSE_HEA5 /* @min:%2egetAllResponseHeaders */]());\r\n }\r\n return theHeaders;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { getGlobal, strShimObject, strShimPrototype, strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { getDocument, getInst, getNavigator, getPerformance, hasNavigator, isFunction, isString, isUndefined, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_NAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { strContains } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n/**\r\n * This file exists to hold environment utilities that are required to check and\r\n * validate the current operating environment. Unless otherwise required, please\r\n * only use defined methods (functions) in this class so that users of these\r\n * functions/properties only need to include those that are used within their own modules.\r\n */\r\nvar strDocumentMode = \"documentMode\";\r\nvar strLocation = \"location\";\r\nvar strConsole = \"console\";\r\nvar strJSON = \"JSON\";\r\nvar strCrypto = \"crypto\";\r\nvar strMsCrypto = \"msCrypto\";\r\nvar strReactNative = \"ReactNative\";\r\nvar strMsie = \"msie\";\r\nvar strTrident = \"trident/\";\r\nvar strXMLHttpRequest = \"XMLHttpRequest\";\r\nvar _isTrident = null;\r\nvar _navUserAgentCheck = null;\r\nvar _enableMocks = false;\r\nvar _useXDomainRequest = null;\r\nvar _beaconsSupported = null;\r\nfunction _hasProperty(theClass, property) {\r\n var supported = false;\r\n if (theClass) {\r\n try {\r\n supported = property in theClass;\r\n if (!supported) {\r\n var proto = theClass[strShimPrototype];\r\n if (proto) {\r\n supported = property in proto;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n if (!supported) {\r\n try {\r\n var tmp = new theClass();\r\n supported = !isUndefined(tmp[property]);\r\n }\r\n catch (e) {\r\n // Do Nothing\r\n }\r\n }\r\n }\r\n return supported;\r\n}\r\n/**\r\n * Enable the lookup of test mock objects if requested\r\n * @param enabled\r\n */\r\nexport function setEnableEnvMocks(enabled) {\r\n _enableMocks = enabled;\r\n}\r\n/**\r\n * Returns the global location object if it is present otherwise null.\r\n * This helper is used to access the location object without causing an exception\r\n * \"Uncaught ReferenceError: location is not defined\"\r\n */\r\nexport function getLocation(checkForMock) {\r\n if (checkForMock && _enableMocks) {\r\n var mockLocation = getInst(\"__mockLocation\");\r\n if (mockLocation) {\r\n return mockLocation;\r\n }\r\n }\r\n if (typeof location === strShimObject && location) {\r\n return location;\r\n }\r\n return getInst(strLocation);\r\n}\r\n/**\r\n * Returns the global console object\r\n */\r\nexport function getConsole() {\r\n if (typeof console !== strShimUndefined) {\r\n return console;\r\n }\r\n return getInst(strConsole);\r\n}\r\n/**\r\n * Checks if JSON object is available, this is required as we support the API running without a\r\n * window /document (eg. Node server, electron webworkers) and if we attempt to assign a history\r\n * object to a local variable or pass as an argument an \"Uncaught ReferenceError: JSON is not defined\"\r\n * exception will be thrown.\r\n * Defined as a function to support lazy / late binding environments.\r\n */\r\nexport function hasJSON() {\r\n return Boolean((typeof JSON === strShimObject && JSON) || getInst(strJSON) !== null);\r\n}\r\n/**\r\n * Returns the global JSON object if it is present otherwise null.\r\n * This helper is used to access the JSON object without causing an exception\r\n * \"Uncaught ReferenceError: JSON is not defined\"\r\n */\r\nexport function getJSON() {\r\n if (hasJSON()) {\r\n return JSON || getInst(strJSON);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getCrypto() {\r\n return getInst(strCrypto);\r\n}\r\n/**\r\n * Returns the crypto object if it is present otherwise null.\r\n * This helper is used to access the crypto object from the current\r\n * global instance which could be window or globalThis for a web worker\r\n */\r\nexport function getMsCrypto() {\r\n return getInst(strMsCrypto);\r\n}\r\n/**\r\n * Returns whether the environment is reporting that we are running in a React Native Environment\r\n */\r\nexport function isReactNative() {\r\n // If running in React Native, navigator.product will be populated\r\n var nav = getNavigator();\r\n if (nav && nav.product) {\r\n return nav.product === strReactNative;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Identifies whether the current environment appears to be IE\r\n */\r\nexport function isIE() {\r\n var nav = getNavigator();\r\n if (nav && (nav[_DYN_USER_AGENT /* @min:%2euserAgent */] !== _navUserAgentCheck || _isTrident === null)) {\r\n // Added to support test mocking of the user agent\r\n _navUserAgentCheck = nav[_DYN_USER_AGENT /* @min:%2euserAgent */];\r\n var userAgent = (_navUserAgentCheck || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _isTrident = (strContains(userAgent, strMsie) || strContains(userAgent, strTrident));\r\n }\r\n return _isTrident;\r\n}\r\n/**\r\n * Gets IE version returning the document emulation mode if we are running on IE, or null otherwise\r\n */\r\nexport function getIEVersion(userAgentStr) {\r\n if (userAgentStr === void 0) { userAgentStr = null; }\r\n if (!userAgentStr) {\r\n var navigator_1 = getNavigator() || {};\r\n userAgentStr = navigator_1 ? (navigator_1.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // Also check for documentMode in case X-UA-Compatible meta tag was included in HTML.\r\n if (strContains(ua, strMsie)) {\r\n var doc = getDocument() || {};\r\n return Math.max(parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strMsie)[1]), (doc[strDocumentMode] || 0));\r\n }\r\n else if (strContains(ua, strTrident)) {\r\n var tridentVer = parseInt(ua[_DYN_SPLIT /* @min:%2esplit */](strTrident)[1]);\r\n if (tridentVer) {\r\n return tridentVer + 4;\r\n }\r\n }\r\n return null;\r\n}\r\nexport function isSafari(userAgentStr) {\r\n if (!userAgentStr || !isString(userAgentStr)) {\r\n var navigator_2 = getNavigator() || {};\r\n userAgentStr = navigator_2 ? (navigator_2.userAgent || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() : STR_EMPTY;\r\n }\r\n var ua = (userAgentStr || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n return (strIndexOf(ua, \"safari\") >= 0);\r\n}\r\n/**\r\n * Checks if HTML5 Beacons are supported in the current environment.\r\n * @param useCached - [Optional] used for testing to bypass the cached lookup, when `true` this will\r\n * cause the cached global to be reset.\r\n * @returns True if supported, false otherwise.\r\n */\r\nexport function isBeaconsSupported(useCached) {\r\n if (_beaconsSupported === null || useCached === false) {\r\n _beaconsSupported = hasNavigator() && Boolean(getNavigator().sendBeacon);\r\n }\r\n return _beaconsSupported;\r\n}\r\n/**\r\n * Checks if the Fetch API is supported in the current environment.\r\n * @param withKeepAlive - [Optional] If True, check if fetch is available and it supports the keepalive feature, otherwise only check if fetch is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isFetchSupported(withKeepAlive) {\r\n var isSupported = false;\r\n try {\r\n isSupported = !!getInst(\"fetch\");\r\n var request = getInst(\"Request\");\r\n if (isSupported && withKeepAlive && request) {\r\n isSupported = _hasProperty(request, \"keepalive\");\r\n }\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nexport function useXDomainRequest() {\r\n if (_useXDomainRequest === null) {\r\n _useXDomainRequest = (typeof XDomainRequest !== strShimUndefined);\r\n if (_useXDomainRequest && isXhrSupported()) {\r\n _useXDomainRequest = _useXDomainRequest && !_hasProperty(getInst(strXMLHttpRequest), \"withCredentials\");\r\n }\r\n }\r\n return _useXDomainRequest;\r\n}\r\n/**\r\n * Checks if XMLHttpRequest is supported\r\n * @returns True if supported, otherwise false\r\n */\r\nexport function isXhrSupported() {\r\n var isSupported = false;\r\n try {\r\n var xmlHttpRequest = getInst(strXMLHttpRequest);\r\n isSupported = !!xmlHttpRequest;\r\n }\r\n catch (e) {\r\n // Just Swallow any failure during availability checks\r\n }\r\n return isSupported;\r\n}\r\nfunction _getNamedValue(values, name) {\r\n if (values) {\r\n for (var i = 0; i < values[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var value = values[i];\r\n if (value[_DYN_NAME /* @min:%2ename */]) {\r\n if (value[_DYN_NAME /* @min:%2ename */] === name) {\r\n return value;\r\n }\r\n }\r\n }\r\n }\r\n return {};\r\n}\r\n/**\r\n * Helper function to fetch the named meta-tag from the page.\r\n * @param name\r\n */\r\nexport function findMetaTag(name) {\r\n var doc = getDocument();\r\n if (doc && name) {\r\n // Look for a meta-tag\r\n return _getNamedValue(doc.querySelectorAll(\"meta\"), name).content;\r\n }\r\n return null;\r\n}\r\n/**\r\n * Helper function to fetch the named server timing value from the page response (first navigation event).\r\n * @param name\r\n */\r\nexport function findNamedServerTiming(name) {\r\n var value;\r\n var perf = getPerformance();\r\n if (perf) {\r\n // Try looking for a server-timing header\r\n var navPerf = perf.getEntriesByType(\"navigation\") || [];\r\n value = _getNamedValue((navPerf[_DYN_LENGTH /* @min:%2elength */] > 0 ? navPerf[0] : {}).serverTiming, name).description;\r\n }\r\n return value;\r\n}\r\n// TODO: should reuse this method for analytics plugin\r\nexport function dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n return true;\r\n }\r\n return false;\r\n}\r\nexport function createCustomDomEvent(eventName, details) {\r\n var event = null;\r\n var detail = { detail: details || null };\r\n if (isFunction(CustomEvent)) { // Use CustomEvent constructor when available\r\n event = new CustomEvent(eventName, detail);\r\n }\r\n else { // CustomEvent has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"CustomEvent\");\r\n event.initCustomEvent(eventName, true, true, detail);\r\n }\r\n }\r\n return event;\r\n}\r\nexport function sendCustomEvent(evtName, cfg, customDetails) {\r\n var global = getGlobal();\r\n if (global && global.CustomEvent) {\r\n try {\r\n var details = { cfg: cfg || null, customDetails: customDetails || null };\r\n return dispatchEvent(global, createCustomDomEvent(evtName, details));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n return false;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { getCrypto, getMsCrypto, isIE } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar UInt32Mask = 0x100000000;\r\nvar MaxUInt32 = 0xffffffff;\r\nvar SEED1 = 123456789;\r\nvar SEED2 = 987654321;\r\n// MWC based Random generator (for IE)\r\nvar _mwcSeeded = false;\r\nvar _mwcW = SEED1;\r\nvar _mwcZ = SEED2;\r\n// Takes any integer\r\nfunction _mwcSeed(seedValue) {\r\n if (seedValue < 0) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n seedValue >>>= 0;\r\n }\r\n _mwcW = (SEED1 + seedValue) & MaxUInt32;\r\n _mwcZ = (SEED2 - seedValue) & MaxUInt32;\r\n _mwcSeeded = true;\r\n}\r\nfunction _autoSeedMwc() {\r\n // Simple initialization using default Math.random() - So we inherit any entropy from the browser\r\n // and bitwise XOR with the current milliseconds\r\n try {\r\n var now = utcNow() & 0x7fffffff;\r\n _mwcSeed(((Math.random() * UInt32Mask) ^ now) + now);\r\n }\r\n catch (e) {\r\n // Don't crash if something goes wrong\r\n }\r\n}\r\n/**\r\n * Generate a random value between 0 and maxValue, max value should be limited to a 32-bit maximum.\r\n * So maxValue(16) will produce a number from 0..16 (range of 17)\r\n * @param maxValue\r\n */\r\nexport function randomValue(maxValue) {\r\n if (maxValue > 0) {\r\n return Math.floor((random32() / MaxUInt32) * (maxValue + 1)) >>> 0;\r\n }\r\n return 0;\r\n}\r\n/**\r\n * generate a random 32-bit number (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), defaults un-unsigned.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function random32(signed) {\r\n var value = 0;\r\n var c = getCrypto() || getMsCrypto();\r\n if (c && c.getRandomValues) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = c.getRandomValues(new Uint32Array(1))[0] & MaxUInt32;\r\n }\r\n if (value === 0 && isIE()) {\r\n // For IE 6, 7, 8 (especially on XP) Math.random is not very random\r\n if (!_mwcSeeded) {\r\n // Set the seed for the Mwc algorithm\r\n _autoSeedMwc();\r\n }\r\n // Don't use Math.random for IE\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = mwcRandom32() & MaxUInt32;\r\n }\r\n if (value === 0) {\r\n // Make sure the number is converted into the specified range (-0x80000000..0x7FFFFFFF)\r\n value = Math.floor((UInt32Mask * Math.random()) | 0);\r\n }\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Seed the MWC random number generator with the specified seed or a random value\r\n * @param value - optional the number to used as the seed, if undefined, null or zero a random value will be chosen\r\n */\r\nexport function mwcRandomSeed(value) {\r\n if (!value) {\r\n _autoSeedMwc();\r\n }\r\n else {\r\n _mwcSeed(value);\r\n }\r\n}\r\n/**\r\n * Generate a random 32-bit number between (0x000000..0xFFFFFFFF) or (-0x80000000..0x7FFFFFFF), using MWC (Multiply with carry)\r\n * instead of Math.random() defaults to un-signed.\r\n * Used as a replacement random generator for IE to avoid issues with older IE instances.\r\n * @param signed - True to return a signed 32-bit number (-0x80000000..0x7FFFFFFF) otherwise an unsigned one (0x000000..0xFFFFFFFF)\r\n */\r\nexport function mwcRandom32(signed) {\r\n _mwcZ = (36969 * (_mwcZ & 0xFFFF) + (_mwcZ >> 16)) & MaxUInt32;\r\n _mwcW = (18000 * (_mwcW & 0xFFFF) + (_mwcW >> 16)) & MaxUInt32;\r\n var value = (((_mwcZ << 16) + (_mwcW & 0xFFFF)) >>> 0) & MaxUInt32 | 0;\r\n if (!signed) {\r\n // Make sure we end up with a positive number and not -ve one.\r\n value >>>= 0;\r\n }\r\n return value;\r\n}\r\n/**\r\n * Generate random base64 id string.\r\n * The default length is 22 which is 132-bits so almost the same as a GUID but as base64 (the previous default was 5)\r\n * @param maxLength - Optional value to specify the length of the id to be generated, defaults to 22\r\n */\r\nexport function newId(maxLength) {\r\n if (maxLength === void 0) { maxLength = 22; }\r\n var base64chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\r\n // Start with an initial random number, consuming the value in reverse byte order\r\n var number = random32() >>> 0; // Make sure it's a +ve number\r\n var chars = 0;\r\n var result = STR_EMPTY;\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < maxLength) {\r\n chars++;\r\n result += base64chars.charAt(number & 0x3F);\r\n number >>>= 6; // Zero fill with right shift\r\n if (chars === 5) {\r\n // 5 base64 characters === 30 bits so we don't have enough bits for another base64 char\r\n // So add on another 30 bits and make sure it's +ve\r\n number = (((random32() << 2) & 0xFFFFFFFF) | (number & 0x03)) >>> 0;\r\n chars = 0; // We need to reset the number every 5 chars (30 bits)\r\n }\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_NODE_TYPE } from \"../__DynamicConstants\";\r\nimport { normalizeJsName } from \"./HelperFuncs\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { newId } from \"./RandomHelper\";\r\nvar version = '3.3.4';\r\nvar instanceName = \".\" + newId(6);\r\nvar _dataUid = 0;\r\n// Accepts only:\r\n// - Node\r\n// - Node.ELEMENT_NODE\r\n// - Node.DOCUMENT_NODE\r\n// - Object\r\n// - Any\r\nfunction _canAcceptData(target) {\r\n return target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 1 || target[_DYN_NODE_TYPE /* @min:%2enodeType */] === 9 || !(+target[_DYN_NODE_TYPE /* @min:%2enodeType */]);\r\n}\r\nfunction _getCache(data, target) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n theCache = {};\r\n try {\r\n if (_canAcceptData(target)) {\r\n objDefine(target, data.id, {\r\n e: false,\r\n v: theCache\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // Not all environments allow extending all objects, so just ignore the cache in those cases\r\n }\r\n }\r\n return theCache;\r\n}\r\nexport function createUniqueNamespace(name, includeVersion) {\r\n if (includeVersion === void 0) { includeVersion = false; }\r\n return normalizeJsName(name + (_dataUid++) + (includeVersion ? \".\" + version : STR_EMPTY) + instanceName);\r\n}\r\nexport function createElmNodeData(name) {\r\n var data = {\r\n id: createUniqueNamespace(\"_aiData-\" + (name || STR_EMPTY) + \".\" + version),\r\n accept: function (target) {\r\n return _canAcceptData(target);\r\n },\r\n get: function (target, name, defValue, addDefault) {\r\n var theCache = target[data.id];\r\n if (!theCache) {\r\n if (addDefault) {\r\n // Side effect is adds the cache\r\n theCache = _getCache(data, target);\r\n theCache[normalizeJsName(name)] = defValue;\r\n }\r\n return defValue;\r\n }\r\n return theCache[normalizeJsName(name)];\r\n },\r\n kill: function (target, name) {\r\n if (target && target[name]) {\r\n try {\r\n delete target[name];\r\n }\r\n catch (e) {\r\n // Just cleaning up, so if this fails -- ignore\r\n }\r\n }\r\n }\r\n };\r\n return data;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isArray, isDefined, isNullOrUndefined, isObject, isPlainObject, isUndefined, objForEachKey, objHasOwn } from \"@nevware21/ts-utils\";\r\nimport { _DYN_BLK_VAL, _DYN_LENGTH, _DYN_RD_ONLY } from \"../__DynamicConstants\";\r\nfunction _isConfigDefaults(value) {\r\n return (value && isObject(value) && (value.isVal || value.fb || objHasOwn(value, \"v\") || objHasOwn(value, \"mrg\") || objHasOwn(value, \"ref\") || value.set));\r\n}\r\nfunction _getDefault(dynamicHandler, theConfig, cfgDefaults) {\r\n var defValue;\r\n var isDefaultValid = cfgDefaults.dfVal || isDefined;\r\n // There is a fallback config key so try and grab that first\r\n if (theConfig && cfgDefaults.fb) {\r\n var fallbacks = cfgDefaults.fb;\r\n if (!isArray(fallbacks)) {\r\n fallbacks = [fallbacks];\r\n }\r\n for (var lp = 0; lp < fallbacks[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var fallback = fallbacks[lp];\r\n var fbValue = theConfig[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n else if (dynamicHandler) {\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n fbValue = dynamicHandler.cfg[fallback];\r\n if (isDefaultValid(fbValue)) {\r\n defValue = fbValue;\r\n }\r\n // Needed to ensure that the fallback value (and potentially) new field is also dynamic even if null/undefined\r\n dynamicHandler.set(dynamicHandler.cfg, asString(fallback), fbValue);\r\n }\r\n if (isDefaultValid(defValue)) {\r\n // We have a valid default so break out of the look\r\n break;\r\n }\r\n }\r\n }\r\n // If the value is still not defined and we have a default value then use that\r\n if (!isDefaultValid(defValue) && isDefaultValid(cfgDefaults.v)) {\r\n defValue = cfgDefaults.v;\r\n }\r\n return defValue;\r\n}\r\n/**\r\n * Recursively resolve the default value\r\n * @param dynamicHandler\r\n * @param theConfig\r\n * @param cfgDefaults\r\n * @returns\r\n */\r\nfunction _resolveDefaultValue(dynamicHandler, theConfig, cfgDefaults) {\r\n var theValue = cfgDefaults;\r\n if (cfgDefaults && _isConfigDefaults(cfgDefaults)) {\r\n theValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n if (theValue) {\r\n if (_isConfigDefaults(theValue)) {\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, theValue);\r\n }\r\n var newValue_1;\r\n if (isArray(theValue)) {\r\n newValue_1 = [];\r\n newValue_1[_DYN_LENGTH /* @min:%2elength */] = theValue[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(theValue)) {\r\n newValue_1 = {};\r\n }\r\n if (newValue_1) {\r\n objForEachKey(theValue, function (key, value) {\r\n if (value && _isConfigDefaults(value)) {\r\n value = _resolveDefaultValue(dynamicHandler, theConfig, value);\r\n }\r\n newValue_1[key] = value;\r\n });\r\n theValue = newValue_1;\r\n }\r\n }\r\n return theValue;\r\n}\r\n/**\r\n * Applies the default value on the config property and makes sure that it's dynamic\r\n * @param theConfig\r\n * @param name\r\n * @param defaultValue\r\n */\r\nexport function _applyDefaultValue(dynamicHandler, theConfig, name, defaultValue) {\r\n // Resolve the initial config value from the provided value or use the defined default\r\n var isValid;\r\n var setFn;\r\n var defValue;\r\n var cfgDefaults = defaultValue;\r\n var mergeDf;\r\n var reference;\r\n var readOnly;\r\n var blkDynamicValue;\r\n if (_isConfigDefaults(cfgDefaults)) {\r\n // looks like a IConfigDefault\r\n isValid = cfgDefaults.isVal;\r\n setFn = cfgDefaults.set;\r\n readOnly = cfgDefaults[_DYN_RD_ONLY /* @min:%2erdOnly */];\r\n blkDynamicValue = cfgDefaults[_DYN_BLK_VAL /* @min:%2eblkVal */];\r\n mergeDf = cfgDefaults.mrg;\r\n reference = cfgDefaults.ref;\r\n if (!reference && isUndefined(reference)) {\r\n reference = !!mergeDf;\r\n }\r\n defValue = _getDefault(dynamicHandler, theConfig, cfgDefaults);\r\n }\r\n else {\r\n defValue = defaultValue;\r\n }\r\n if (blkDynamicValue) {\r\n // Mark the property so that any value assigned will be blocked from conversion, we need to do this\r\n // before assigning or fetching the value to ensure it's not converted\r\n dynamicHandler[_DYN_BLK_VAL /* @min:%2eblkVal */](theConfig, name);\r\n }\r\n // Set the value to the default value;\r\n var theValue;\r\n var usingDefault = true;\r\n var cfgValue = theConfig[name];\r\n // try and get and user provided values\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n // Use the defined theConfig[name] value\r\n theValue = cfgValue;\r\n usingDefault = false;\r\n // The values are different and we have a special default value check, which is used to\r\n // override config values like empty strings to continue using the default\r\n if (isValid && theValue !== defValue && !isValid(theValue)) {\r\n theValue = defValue;\r\n usingDefault = true;\r\n }\r\n if (setFn) {\r\n theValue = setFn(theValue, defValue, theConfig);\r\n usingDefault = theValue === defValue;\r\n }\r\n }\r\n if (!usingDefault) {\r\n if (isPlainObject(theValue) || isArray(defValue)) {\r\n // we are using the user supplied value and it's an object\r\n if (mergeDf && defValue && (isPlainObject(defValue) || isArray(defValue))) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defValue, function (dfName, dfValue) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(dynamicHandler, theValue, dfName, dfValue);\r\n });\r\n }\r\n }\r\n }\r\n else if (defValue) {\r\n // Just resolve the default\r\n theValue = _resolveDefaultValue(dynamicHandler, theConfig, defValue);\r\n }\r\n else {\r\n theValue = defValue;\r\n }\r\n // if (theValue && usingDefault && (isPlainObject(theValue) || isArray(theValue))) {\r\n // theValue = _cfgDeepCopy(theValue);\r\n // }\r\n // Needed to ensure that the (potentially) new field is dynamic even if null/undefined\r\n dynamicHandler.set(theConfig, name, theValue);\r\n if (reference) {\r\n dynamicHandler.ref(theConfig, name);\r\n }\r\n if (readOnly) {\r\n dynamicHandler[_DYN_RD_ONLY /* @min:%2erdOnly */](theConfig, name);\r\n }\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isArray, isPlainObject, objForEachKey, symbolFor, throwTypeError } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\n// Using Symbol.for so that if the same symbol was already created it would be returned\r\n// To handle multiple instances using potentially different versions we are not using\r\n// createUniqueNamespace()\r\nexport var CFG_HANDLER_LINK = symbolFor(\"[[ai_dynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects / arrays with if they should not be converted\r\n */\r\nvar BLOCK_DYNAMIC = symbolFor(\"[[ai_blkDynCfg_1]]\");\r\n/**\r\n * @internal\r\n * @ignore\r\n * The symbol to tag objects to indicate that when included into the configuration that\r\n * they should be converted into a trackable dynamic object.\r\n */\r\nvar FORCE_DYNAMIC = symbolFor(\"[[ai_frcDynCfg_1]]\");\r\nexport function _cfgDeepCopy(source) {\r\n if (source) {\r\n var target_1;\r\n if (isArray(source)) {\r\n target_1 = [];\r\n target_1[_DYN_LENGTH /* @min:%2elength */] = source[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n else if (isPlainObject(source)) {\r\n target_1 = {};\r\n }\r\n if (target_1) {\r\n // Copying index values by property name as the extensionConfig can be an array or object\r\n objForEachKey(source, function (key, value) {\r\n // Perform a deep copy of the object\r\n target_1[key] = _cfgDeepCopy(value);\r\n });\r\n return target_1;\r\n }\r\n }\r\n return source;\r\n}\r\n/**\r\n * @internal\r\n * Get the dynamic config handler if the value is already dynamic\r\n * @param value\r\n * @returns\r\n */\r\nexport function getDynamicConfigHandler(value) {\r\n if (value) {\r\n var handler = value[CFG_HANDLER_LINK] || value;\r\n if (handler.cfg && (handler.cfg === value || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler;\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Mark the provided value so that if it's included into the configuration it will NOT have\r\n * its properties converted into a dynamic (reactive) object. If the object is not a plain object\r\n * or an array (ie. a class) this function has not affect as only Objects and Arrays are converted\r\n * into dynamic objects in the dynamic configuration.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * You should only need to use this function, if you are creating dynamic \"classes\" from objects\r\n * which confirm to the require interface. A common case for this is during unit testing where it's\r\n * easier to create mock extensions.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed\r\n *\r\n * @example\r\n * ```ts\r\n * // This is a valid \"extension\", but it is technically an object\r\n * // So when included in the config.extensions it WILL be cloned and then\r\n * // converted into a dynamic object, where all of its properties will become\r\n * // get/set object properties and will be tracked. While this WILL still\r\n * // function, when attempt to use a mocking framework on top of this the\r\n * // functions are now technically get accessors which return a function\r\n * // and this can cause some mocking frameworks to fail.\r\n * let mockChannel = {\r\n * pause: () => { },\r\n* resume: () => { },\r\n* teardown: () => { },\r\n* flush: (async: any, callBack: any) => { },\r\n* processTelemetry: (env: any) => { },\r\n* setNextPlugin: (next: any) => { },\r\n* initialize: (config: any, core: any, extensions: any) => { },\r\n* identifier: \"testChannel\",\r\n* priority: 1003\r\n* };\r\n * ```\r\n * @param value - The object that you want to block from being converted into a\r\n * trackable dynamic object\r\n * @returns The original value\r\n */\r\nexport function blockDynamicConversion(value) {\r\n if (value && (isPlainObject(value) || isArray(value))) {\r\n try {\r\n value[BLOCK_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * This is the reverse case of {@link blockDynamicConversion} in that this will tag an\r\n * object to indicate that it should always be converted into a dynamic trackable object\r\n * even when not an object or array. So all properties of this object will become\r\n * get / set accessor functions.\r\n *\r\n * When you have tagged a value as both {@link forceDynamicConversion} and blocked force will take precedence.\r\n *\r\n * If `value` is falsy (null / undefined / 0 / empty string etc) it will not be tagged and\r\n * if there is an exception adding the property to the value (because its frozen etc) the\r\n * exception will be swallowed.\r\n * @param value - The object that should be tagged and converted if included into a dynamic\r\n * configuration.\r\n * @returns The original value\r\n */\r\nexport function forceDynamicConversion(value) {\r\n if (value) {\r\n try {\r\n value[FORCE_DYNAMIC] = true;\r\n }\r\n catch (e) {\r\n // Don't throw for this case as it's an ask only\r\n }\r\n }\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n * @ignore\r\n * Helper function to check whether an object can or should be converted into a dynamic\r\n * object.\r\n * @param value - The object to check whether it should be converted\r\n * @returns `true` if the value should be converted otherwise `false`.\r\n */\r\nexport function _canMakeDynamic(getFunc, state, value) {\r\n var result = false;\r\n // Object must exist and be truthy\r\n if (value && !getFunc[state.blkVal]) {\r\n // Tagged as always convert\r\n result = value[FORCE_DYNAMIC];\r\n // Check that it's not explicitly tagged as blocked\r\n if (!result && !value[BLOCK_DYNAMIC]) {\r\n // Only convert plain objects or arrays by default\r\n result = isPlainObject(value) || isArray(value);\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Throws an invalid access exception\r\n * @param message - The message to include in the exception\r\n */\r\nexport function throwInvalidAccess(message) {\r\n throwTypeError(\"InvalidAccess:\" + message);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, isArray, objDefine, objDefineProp, objForEachKey, objGetOwnPropertyDescriptor } from \"@nevware21/ts-utils\";\r\nimport { UNDEFINED_VALUE } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_APPLY, _DYN_HDLR, _DYN_LOGGER, _DYN_PUSH, _DYN_SPLICE, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nimport { CFG_HANDLER_LINK, _canMakeDynamic, blockDynamicConversion, throwInvalidAccess } from \"./DynamicSupport\";\r\nvar arrayMethodsToPatch = [\r\n \"push\",\r\n \"pop\",\r\n \"shift\",\r\n \"unshift\",\r\n \"splice\"\r\n];\r\nexport var _throwDynamicError = function (logger, name, desc, e) {\r\n logger && logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](3 /* eLoggingSeverity.DEBUG */, 108 /* _eInternalMessageId.DynamicConfigException */, \"\".concat(desc, \" [\").concat(name, \"] failed - \") + dumpObj(e));\r\n};\r\nfunction _patchArray(state, target, name) {\r\n if (isArray(target)) {\r\n // Monkey Patch the methods that might change the array\r\n arrForEach(arrayMethodsToPatch, function (method) {\r\n var orgMethod = target[method];\r\n target[method] = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n var result = orgMethod[_DYN_APPLY /* @min:%2eapply */](this, args);\r\n // items may be added, removed or moved so need to make some new dynamic properties\r\n _makeDynamicObject(state, target, name, \"Patching\");\r\n return result;\r\n };\r\n });\r\n }\r\n}\r\nfunction _getOwnPropGetter(target, name) {\r\n var propDesc = objGetOwnPropertyDescriptor(target, name);\r\n return propDesc && propDesc.get;\r\n}\r\nfunction _createDynamicProperty(state, theConfig, name, value) {\r\n // Does not appear to be dynamic so lets make it so\r\n var detail = {\r\n n: name,\r\n h: [],\r\n trk: function (handler) {\r\n if (handler && handler.fn) {\r\n if (arrIndexOf(detail.h, handler) === -1) {\r\n // Add this handler to the collection that should be notified when the value changes\r\n detail.h[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n state.trk(handler, detail);\r\n }\r\n },\r\n clr: function (handler) {\r\n var idx = arrIndexOf(detail.h, handler);\r\n if (idx !== -1) {\r\n detail.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n };\r\n // Flag to optimize lookup response time by avoiding additional function calls\r\n var checkDynamic = true;\r\n var isObjectOrArray = false;\r\n function _getProperty() {\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n // Make sure that if it's an object that we make it dynamic\r\n if (value && !value[CFG_HANDLER_LINK] && isObjectOrArray) {\r\n // It doesn't look like it's already dynamic so lets make sure it's converted the object into a dynamic Config as well\r\n value = _makeDynamicObject(state, value, name, \"Converting\");\r\n }\r\n // If it needed to be converted it now has been\r\n checkDynamic = false;\r\n }\r\n // If there is an active handler then add it to the tracking set of handlers\r\n var activeHandler = state.act;\r\n if (activeHandler) {\r\n detail.trk(activeHandler);\r\n }\r\n return value;\r\n }\r\n // Tag this getter as our dynamic property and provide shortcut for notifying a change\r\n _getProperty[state.prop] = {\r\n chng: function () {\r\n state.add(detail);\r\n }\r\n };\r\n function _setProperty(newValue) {\r\n if (value !== newValue) {\r\n if (!!_getProperty[state.ro] && !state.upd) {\r\n // field is marked as readonly so return false\r\n throwInvalidAccess(\"[\" + name + \"] is read-only:\" + dumpObj(theConfig));\r\n }\r\n if (checkDynamic) {\r\n isObjectOrArray = isObjectOrArray || _canMakeDynamic(_getProperty, state, value);\r\n checkDynamic = false;\r\n }\r\n // The value must be a plain object or an array to enforce the reference (in-place updates)\r\n var isReferenced = isObjectOrArray && _getProperty[state.rf];\r\n if (isObjectOrArray) {\r\n // We are about to replace a plain object or an array\r\n if (isReferenced) {\r\n // Reassign the properties from the current value to the same properties from the newValue\r\n // This will set properties not in the newValue to undefined\r\n objForEachKey(value, function (key) {\r\n value[key] = newValue ? newValue[key] : UNDEFINED_VALUE;\r\n });\r\n // Now assign / re-assign value with all of the keys from newValue\r\n try {\r\n objForEachKey(newValue, function (key, theValue) {\r\n _setDynamicProperty(state, value, key, theValue);\r\n });\r\n // Now drop newValue so when we assign value later it keeps the existing reference\r\n newValue = value;\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Assigning\", e);\r\n // Mark as not an object or array so we don't try and do this again\r\n isObjectOrArray = false;\r\n }\r\n }\r\n else if (value && value[CFG_HANDLER_LINK]) {\r\n // As we are replacing the value, if it's already dynamic then we need to notify the listeners\r\n // for every property it has already\r\n objForEachKey(value, function (key) {\r\n // Check if the value is dynamic\r\n var getter = _getOwnPropGetter(value, key);\r\n if (getter) {\r\n // And if it is tell it's listeners that the value has changed\r\n var valueState = getter[state.prop];\r\n valueState && valueState.chng();\r\n }\r\n });\r\n }\r\n }\r\n if (newValue !== value) {\r\n var newIsObjectOrArray = newValue && _canMakeDynamic(_getProperty, state, newValue);\r\n if (!isReferenced && newIsObjectOrArray) {\r\n // As the newValue is an object/array lets preemptively make it dynamic\r\n newValue = _makeDynamicObject(state, newValue, name, \"Converting\");\r\n }\r\n // Now assign the internal \"value\" to the newValue\r\n value = newValue;\r\n isObjectOrArray = newIsObjectOrArray;\r\n }\r\n // Cause any listeners to be scheduled for notification\r\n state.add(detail);\r\n }\r\n }\r\n objDefine(theConfig, detail.n, { g: _getProperty, s: _setProperty });\r\n}\r\nexport function _setDynamicProperty(state, target, name, value) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n if (!isDynamic) {\r\n _createDynamicProperty(state, target, name, value);\r\n }\r\n else {\r\n // Looks like it's already dynamic just assign the new value\r\n target[name] = value;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _setDynamicPropertyState(state, target, name, flags) {\r\n if (target) {\r\n // To be a dynamic property it needs to have a get function\r\n var getter = _getOwnPropGetter(target, name);\r\n var isDynamic = getter && !!getter[state.prop];\r\n var inPlace = flags && flags[0 /* _eSetDynamicPropertyFlags.inPlace */];\r\n var rdOnly = flags && flags[1 /* _eSetDynamicPropertyFlags.readOnly */];\r\n var blkProp = flags && flags[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */];\r\n if (!isDynamic) {\r\n if (blkProp) {\r\n try {\r\n // Attempt to mark the target as blocked from conversion\r\n blockDynamicConversion(target);\r\n }\r\n catch (e) {\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"Blocking\", e);\r\n }\r\n }\r\n try {\r\n // Make sure it's dynamic so that we can tag the property as per the state\r\n _setDynamicProperty(state, target, name, target[name]);\r\n getter = _getOwnPropGetter(target, name);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, \"State\", e);\r\n }\r\n }\r\n // Assign the optional flags if true\r\n if (inPlace) {\r\n getter[state.rf] = inPlace;\r\n }\r\n if (rdOnly) {\r\n getter[state.ro] = rdOnly;\r\n }\r\n if (blkProp) {\r\n getter[state.blkVal] = true;\r\n }\r\n }\r\n return target;\r\n}\r\nexport function _makeDynamicObject(state, target, name, desc) {\r\n try {\r\n // Assign target with new value properties (converting into dynamic properties in the process)\r\n objForEachKey(target, function (key, value) {\r\n // Assign and/or make the property dynamic\r\n _setDynamicProperty(state, target, key, value);\r\n });\r\n if (!target[CFG_HANDLER_LINK]) {\r\n // Link the config back to the dynamic config details\r\n objDefineProp(target, CFG_HANDLER_LINK, {\r\n get: function () {\r\n return state[_DYN_HDLR /* @min:%2ehdlr */];\r\n }\r\n });\r\n _patchArray(state, target, name);\r\n }\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError((state.hdlr || {})[_DYN_LOGGER /* @min:%2elogger */], name, desc, e);\r\n }\r\n return target;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, createCustomError, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nvar aggregationErrorType;\r\n/**\r\n * Throws an Aggregation Error which includes all of the errors that led to this error occurring\r\n * @param message - The message describing the aggregation error (the sourceError details are added to this)\r\n * @param sourceErrors - An array of the errors that caused this situation\r\n */\r\nexport function throwAggregationError(message, sourceErrors) {\r\n if (!aggregationErrorType) {\r\n aggregationErrorType = createCustomError(\"AggregationError\", function (self, args) {\r\n if (args[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n // Save the provided errors\r\n self.errors = args[1];\r\n }\r\n });\r\n }\r\n var theMessage = message || \"One or more errors occurred.\";\r\n arrForEach(sourceErrors, function (srcError, idx) {\r\n theMessage += \"\\n\".concat(idx, \" > \").concat(dumpObj(srcError));\r\n });\r\n throw new aggregationErrorType(theMessage, sourceErrors || []);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dumpObj, newSymbol, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { throwAggregationError } from \"../JavaScriptSDK/AggregationError\";\r\nimport { _DYN_BLK_VAL, _DYN_CANCEL, _DYN_HDLR, _DYN_LENGTH, _DYN_LOGGER, _DYN_NOTIFY, _DYN_PUSH, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL } from \"../__DynamicConstants\";\r\nvar symPrefix = \"[[ai_\";\r\nvar symPostfix = \"]]\";\r\nexport function _createState(cfgHandler) {\r\n var _a;\r\n var dynamicPropertySymbol = newSymbol(symPrefix + \"get\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReadOnly = newSymbol(symPrefix + \"ro\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyReferenced = newSymbol(symPrefix + \"rf\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyBlockValue = newSymbol(symPrefix + \"blkVal\" + cfgHandler.uid + symPostfix);\r\n var dynamicPropertyDetail = newSymbol(symPrefix + \"dtl\" + cfgHandler.uid + symPostfix);\r\n var _waitingHandlers = null;\r\n var _watcherTimer = null;\r\n var theState;\r\n function _useHandler(activeHandler, callback) {\r\n var prevWatcher = theState.act;\r\n try {\r\n theState.act = activeHandler;\r\n if (activeHandler && activeHandler[dynamicPropertyDetail]) {\r\n // Clear out the previously tracked details for this handler, so that access are re-evaluated\r\n arrForEach(activeHandler[dynamicPropertyDetail], function (detail) {\r\n detail.clr(activeHandler);\r\n });\r\n activeHandler[dynamicPropertyDetail] = [];\r\n }\r\n callback({\r\n cfg: cfgHandler.cfg,\r\n set: cfgHandler.set.bind(cfgHandler),\r\n setDf: cfgHandler[_DYN_SET_DF /* @min:%2esetDf */].bind(cfgHandler),\r\n ref: cfgHandler.ref.bind(cfgHandler),\r\n rdOnly: cfgHandler[_DYN_RD_ONLY /* @min:%2erdOnly */].bind(cfgHandler)\r\n });\r\n }\r\n catch (e) {\r\n var logger = cfgHandler[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // Don't let one individual failure break everyone\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](1 /* eLoggingSeverity.CRITICAL */, 107 /* _eInternalMessageId.ConfigWatcherException */, dumpObj(e));\r\n }\r\n // Re-throw the exception so that any true \"error\" is reported back to the called\r\n throw e;\r\n }\r\n finally {\r\n theState.act = prevWatcher || null;\r\n }\r\n }\r\n function _notifyWatchers() {\r\n if (_waitingHandlers) {\r\n var notifyHandlers = _waitingHandlers;\r\n _waitingHandlers = null;\r\n // Stop any timer as we are running them now anyway\r\n _watcherTimer && _watcherTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _watcherTimer = null;\r\n var watcherFailures_1 = [];\r\n // Now run the handlers\r\n arrForEach(notifyHandlers, function (handler) {\r\n if (handler) {\r\n if (handler[dynamicPropertyDetail]) {\r\n arrForEach(handler[dynamicPropertyDetail], function (detail) {\r\n // Clear out this handler from previously tracked details, so that access are re-evaluated\r\n detail.clr(handler);\r\n });\r\n handler[dynamicPropertyDetail] = null;\r\n }\r\n // The handler may have self removed as part of another handler so re-check\r\n if (handler.fn) {\r\n try {\r\n _useHandler(handler, handler.fn);\r\n }\r\n catch (e) {\r\n // Don't let a single failing watcher cause other watches to fail\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n }\r\n });\r\n // During notification we may have had additional updates -- so notify those updates as well\r\n if (_waitingHandlers) {\r\n try {\r\n _notifyWatchers();\r\n }\r\n catch (e) {\r\n watcherFailures_1[_DYN_PUSH /* @min:%2epush */](e);\r\n }\r\n }\r\n if (watcherFailures_1[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n throwAggregationError(\"Watcher error(s): \", watcherFailures_1);\r\n }\r\n }\r\n }\r\n function _addWatcher(detail) {\r\n if (detail && detail.h[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n if (!_waitingHandlers) {\r\n _waitingHandlers = [];\r\n }\r\n if (!_watcherTimer) {\r\n _watcherTimer = scheduleTimeout(function () {\r\n _watcherTimer = null;\r\n _notifyWatchers();\r\n }, 0);\r\n }\r\n // Add all of the handlers for this detail (if not already present) - using normal for-loop for performance\r\n for (var idx = 0; idx < detail.h[_DYN_LENGTH /* @min:%2elength */]; idx++) {\r\n var handler = detail.h[idx];\r\n // Add this handler to the collection of handlers to re-execute\r\n if (handler && arrIndexOf(_waitingHandlers, handler) === -1) {\r\n _waitingHandlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n }\r\n }\r\n function _trackHandler(handler, detail) {\r\n if (handler) {\r\n var details = handler[dynamicPropertyDetail] = handler[dynamicPropertyDetail] || [];\r\n if (arrIndexOf(details, detail) === -1) {\r\n // If this detail is not already listed as tracked then add it so that we re-evaluate it's usage\r\n details[_DYN_PUSH /* @min:%2epush */](detail);\r\n }\r\n }\r\n }\r\n theState = (_a = {\r\n prop: dynamicPropertySymbol,\r\n ro: dynamicPropertyReadOnly,\r\n rf: dynamicPropertyReferenced\r\n },\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = dynamicPropertyBlockValue,\r\n _a[_DYN_HDLR /* @min:hdlr */] = cfgHandler,\r\n _a.add = _addWatcher,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.use = _useHandler,\r\n _a.trk = _trackHandler,\r\n _a);\r\n return theState;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj, isUndefined, objDefine, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { createUniqueNamespace } from \"../JavaScriptSDK/DataCacheHelper\";\r\nimport { STR_NOT_DYNAMIC_ERROR } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_LOGGER, _DYN_NOTIFY, _DYN_RD_ONLY, _DYN_SET_DF, _DYN_THROW_INTERNAL, _DYN_WARN_TO_CONSOLE, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { _applyDefaultValue } from \"./ConfigDefaults\";\r\nimport { _makeDynamicObject, _setDynamicProperty, _setDynamicPropertyState, _throwDynamicError } from \"./DynamicProperty\";\r\nimport { _createState } from \"./DynamicState\";\r\nimport { CFG_HANDLER_LINK, _cfgDeepCopy, getDynamicConfigHandler, throwInvalidAccess } from \"./DynamicSupport\";\r\n/**\r\n * Identifies a function which will be re-called whenever any of it's accessed configuration values\r\n * change.\r\n * @param configHandler - The callback that will be called for the initial request and then whenever any\r\n * accessed configuration changes are identified.\r\n */\r\nfunction _createAndUseHandler(state, configHandler) {\r\n var handler = {\r\n fn: configHandler,\r\n rm: function () {\r\n // Clear all references to the handler so it can be garbage collected\r\n // This will also cause this handler to never get called and eventually removed\r\n handler.fn = null;\r\n state = null;\r\n configHandler = null;\r\n }\r\n };\r\n objDefine(handler, \"toJSON\", { v: function () { return \"WatcherHandler\" + (handler.fn ? \"\" : \"[X]\"); } });\r\n state.use(handler, configHandler);\r\n return handler;\r\n}\r\n/**\r\n * Creates the dynamic config handler and associates with the target config as the root object\r\n * @param target - The config that you want to be root of the dynamic config\r\n * @param inPlace - Should the passed config be converted in-place or a new proxy returned\r\n * @returns The existing dynamic handler or a new instance with the provided config values\r\n */\r\nfunction _createDynamicHandler(logger, target, inPlace) {\r\n var _a;\r\n var dynamicHandler = getDynamicConfigHandler(target);\r\n if (dynamicHandler) {\r\n // The passed config is already dynamic so return it's tracker\r\n return dynamicHandler;\r\n }\r\n var uid = createUniqueNamespace(\"dyncfg\", true);\r\n var newTarget = (target && inPlace !== false) ? target : _cfgDeepCopy(target);\r\n var theState;\r\n function _notifyWatchers() {\r\n theState[_DYN_NOTIFY /* @min:%2enotify */]();\r\n }\r\n function _setValue(target, name, value) {\r\n try {\r\n target = _setDynamicProperty(theState, target, name, value);\r\n }\r\n catch (e) {\r\n // Unable to convert to dynamic property so just leave as non-dynamic\r\n _throwDynamicError(logger, name, \"Setting value\", e);\r\n }\r\n return target[name];\r\n }\r\n function _watch(configHandler) {\r\n return _createAndUseHandler(theState, configHandler);\r\n }\r\n function _block(configHandler, allowUpdate) {\r\n theState.use(null, function (details) {\r\n var prevUpd = theState.upd;\r\n try {\r\n if (!isUndefined(allowUpdate)) {\r\n theState.upd = allowUpdate;\r\n }\r\n configHandler(details);\r\n }\r\n finally {\r\n theState.upd = prevUpd;\r\n }\r\n });\r\n }\r\n function _ref(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as referenced with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[0 /* _eSetDynamicPropertyFlags.inPlace */] = true, _a))[name];\r\n }\r\n function _rdOnly(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[1 /* _eSetDynamicPropertyFlags.readOnly */] = true, _a))[name];\r\n }\r\n function _blkPropValue(target, name) {\r\n var _a;\r\n // Make sure it's dynamic and mark as readonly with it's current value\r\n return _setDynamicPropertyState(theState, target, name, (_a = {}, _a[2 /* _eSetDynamicPropertyFlags.blockDynamicProperty */] = true, _a))[name];\r\n }\r\n function _applyDefaults(theConfig, defaultValues) {\r\n if (defaultValues) {\r\n // Resolve/apply the defaults\r\n objForEachKey(defaultValues, function (name, value) {\r\n // Sets the value and makes it dynamic (if it doesn't already exist)\r\n _applyDefaultValue(cfgHandler, theConfig, name, value);\r\n });\r\n }\r\n return theConfig;\r\n }\r\n var cfgHandler = (_a = {\r\n uid: null,\r\n cfg: newTarget\r\n },\r\n _a[_DYN_LOGGER /* @min:logger */] = logger,\r\n _a[_DYN_NOTIFY /* @min:notify */] = _notifyWatchers,\r\n _a.set = _setValue,\r\n _a[_DYN_SET_DF /* @min:setDf */] = _applyDefaults,\r\n _a[_DYN_WATCH /* @min:watch */] = _watch,\r\n _a.ref = _ref,\r\n _a[_DYN_RD_ONLY /* @min:rdOnly */] = _rdOnly,\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = _blkPropValue,\r\n _a._block = _block,\r\n _a);\r\n objDefine(cfgHandler, \"uid\", {\r\n c: false,\r\n e: false,\r\n w: false,\r\n v: uid\r\n });\r\n theState = _createState(cfgHandler);\r\n // Setup tracking for all defined default keys\r\n _makeDynamicObject(theState, newTarget, \"config\", \"Creating\");\r\n return cfgHandler;\r\n}\r\n/**\r\n * Log an invalid access message to the console\r\n * @param message\r\n */\r\nfunction _logInvalidAccess(logger, message) {\r\n if (logger) {\r\n logger[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n logger[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](2 /* eLoggingSeverity.WARNING */, 108 /* _eInternalMessageId.DynamicConfigException */, message);\r\n }\r\n else {\r\n // We don't have a logger so just throw an exception\r\n throwInvalidAccess(message);\r\n }\r\n}\r\n/**\r\n * Create or return a dynamic version of the passed config, if it is not already dynamic\r\n * @param config - The config to be converted into a dynamic config\r\n * @param defaultConfig - The default values to apply on the config if the properties don't already exist\r\n * @param inPlace - Should the config be converted in-place into a dynamic config or a new instance returned, defaults to true\r\n * @returns The dynamic config handler for the config (whether new or existing)\r\n */\r\nexport function createDynamicConfig(config, defaultConfig, logger, inPlace) {\r\n var dynamicHandler = _createDynamicHandler(logger, config || {}, inPlace);\r\n if (defaultConfig) {\r\n dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](dynamicHandler.cfg, defaultConfig);\r\n }\r\n return dynamicHandler;\r\n}\r\n/**\r\n * Watch and track changes for accesses to the current config, the provided config MUST already be\r\n * a dynamic config or a child accessed via the dynamic config\r\n * @param config\r\n * @param configHandler\r\n * @param logger - The logger instance to use if there is no existing handler\r\n * @returns A watcher handler instance that can be used to remove itself when being unloaded\r\n * @throws TypeError if the provided config is not a dynamic config instance\r\n */\r\nexport function onConfigChange(config, configHandler, logger) {\r\n var handler = config[CFG_HANDLER_LINK] || config;\r\n if (handler.cfg && (handler.cfg === config || handler.cfg[CFG_HANDLER_LINK] === handler)) {\r\n return handler[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n }\r\n _logInvalidAccess(logger, STR_NOT_DYNAMIC_ERROR + dumpObj(config));\r\n return createDynamicConfig(config, null, logger)[_DYN_WATCH /* @min:%2ewatch */](configHandler);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getInst } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar listenerFuncs = [STR_EVENTS_SENT, STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_PERF_EVENT];\r\nvar _aiNamespace = null;\r\nvar _debugListener;\r\nfunction _listenerProxyFunc(name, config) {\r\n return function () {\r\n var args = arguments;\r\n var dbgExt = getDebugExt(config);\r\n if (dbgExt) {\r\n var listener = dbgExt.listener;\r\n if (listener && listener[name]) {\r\n listener[name][_DYN_APPLY /* @min:%2eapply */](listener, args);\r\n }\r\n }\r\n };\r\n}\r\nfunction _getExtensionNamespace() {\r\n // Cache the lookup of the global namespace object\r\n var target = getInst(\"Microsoft\");\r\n if (target) {\r\n _aiNamespace = target[\"ApplicationInsights\"];\r\n }\r\n return _aiNamespace;\r\n}\r\nexport function getDebugExt(config) {\r\n var ns = _aiNamespace;\r\n if (!ns && config.disableDbgExt !== true) {\r\n ns = _aiNamespace || _getExtensionNamespace();\r\n }\r\n return ns ? ns[\"ChromeDbgExt\"] : null;\r\n}\r\nexport function getDebugListener(config) {\r\n if (!_debugListener) {\r\n _debugListener = {};\r\n for (var lp = 0; lp < listenerFuncs[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n _debugListener[listenerFuncs[lp]] = _listenerProxyFunc(listenerFuncs[lp], config);\r\n }\r\n }\r\n return _debugListener;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dumpObj, isFunction, isUndefined } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_DIAG_LOG, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_LOG_INTERNAL_MESSAGE, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_PUSH, _DYN_REPLACE, _DYN_THROW_INTERNAL, _DYN_UNLOAD, _DYN_WARN_TO_CONSOLE } from \"../__DynamicConstants\";\r\nimport { getDebugExt } from \"./DbgExtensionUtils\";\r\nimport { getConsole, getJSON, hasJSON } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nvar STR_WARN_TO_CONSOLE = \"warnToConsole\";\r\n/**\r\n * For user non actionable traces use AI Internal prefix.\r\n */\r\nvar AiNonUserActionablePrefix = \"AI (Internal): \";\r\n/**\r\n * Prefix of the traces in portal.\r\n */\r\nvar AiUserActionablePrefix = \"AI: \";\r\n/**\r\n * Session storage key for the prefix for the key indicating message type already logged\r\n */\r\nvar AIInternalMessagePrefix = \"AITR_\";\r\nvar defaultValues = {\r\n loggingLevelConsole: 0,\r\n loggingLevelTelemetry: 1,\r\n maxMessageLimit: 25,\r\n enableDebug: false\r\n};\r\nvar _logFuncs = (_a = {},\r\n _a[0 /* eLoggingSeverity.DISABLED */] = null,\r\n _a[1 /* eLoggingSeverity.CRITICAL */] = \"errorToConsole\",\r\n _a[2 /* eLoggingSeverity.WARNING */] = STR_WARN_TO_CONSOLE,\r\n _a[3 /* eLoggingSeverity.DEBUG */] = \"debugToConsole\",\r\n _a);\r\nfunction _sanitizeDiagnosticText(text) {\r\n if (text) {\r\n return \"\\\"\" + text[_DYN_REPLACE /* @min:%2ereplace */](/\\\"/g, STR_EMPTY) + \"\\\"\";\r\n }\r\n return STR_EMPTY;\r\n}\r\nfunction _logToConsole(func, message) {\r\n var theConsole = getConsole();\r\n if (!!theConsole) {\r\n var logFunc = \"log\";\r\n if (theConsole[func]) {\r\n logFunc = func;\r\n }\r\n if (isFunction(theConsole[logFunc])) {\r\n theConsole[logFunc](message);\r\n }\r\n }\r\n}\r\nvar _InternalLogMessage = /** @class */ (function () {\r\n function _InternalLogMessage(msgId, msg, isUserAct, properties) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var _self = this;\r\n _self[_DYN_MESSAGE_ID /* @min:%2emessageId */] = msgId;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] =\r\n (isUserAct ? AiUserActionablePrefix : AiNonUserActionablePrefix) +\r\n msgId;\r\n var strProps = STR_EMPTY;\r\n if (hasJSON()) {\r\n strProps = getJSON().stringify(properties);\r\n }\r\n var diagnosticText = (msg ? \" message:\" + _sanitizeDiagnosticText(msg) : STR_EMPTY) +\r\n (properties ? \" props:\" + _sanitizeDiagnosticText(strProps) : STR_EMPTY);\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] += diagnosticText;\r\n }\r\n _InternalLogMessage.dataType = \"MessageData\";\r\n return _InternalLogMessage;\r\n}());\r\nexport { _InternalLogMessage };\r\nexport function safeGetLogger(core, config) {\r\n return (core || {})[_DYN_LOGGER /* @min:%2elogger */] || new DiagnosticLogger(config);\r\n}\r\nvar DiagnosticLogger = /** @class */ (function () {\r\n function DiagnosticLogger(config) {\r\n this.identifier = \"DiagnosticLogger\";\r\n /**\r\n * The internal logging queue\r\n */\r\n this.queue = [];\r\n /**\r\n * Count of internal messages sent\r\n */\r\n var _messageCount = 0;\r\n /**\r\n * Holds information about what message types were already logged to console or sent to server.\r\n */\r\n var _messageLogged = {};\r\n var _loggingLevelConsole;\r\n var _loggingLevelTelemetry;\r\n var _maxInternalMessageLimit;\r\n var _enableDebug;\r\n var _unloadHandler;\r\n dynamicProto(DiagnosticLogger, this, function (_self) {\r\n _unloadHandler = _setDefaultsFromConfig(config || {});\r\n _self.consoleLoggingLevel = function () { return _loggingLevelConsole; };\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\n _self[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */] = function (severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n var message = new _InternalLogMessage(msgId, msg, isUserAct, properties);\r\n if (_enableDebug) {\r\n throw dumpObj(message);\r\n }\r\n else {\r\n // Get the logging function and fallback to warnToConsole of for some reason errorToConsole doesn't exist\r\n var logFunc = _logFuncs[severity] || STR_WARN_TO_CONSOLE;\r\n if (!isUndefined(message[_DYN_MESSAGE /* @min:%2emessage */])) {\r\n if (isUserAct) {\r\n // check if this message type was already logged to console for this page view and if so, don't log it again\r\n var messageKey = +message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n if (!_messageLogged[messageKey] && _loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n _messageLogged[messageKey] = true;\r\n }\r\n }\r\n else {\r\n // Only log traces if the console Logging Level is >= the throwInternal severity level\r\n if (_loggingLevelConsole >= severity) {\r\n _self[logFunc](message[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n }\r\n _logInternalMessage(severity, message);\r\n }\r\n else {\r\n _debugExtMsg(\"throw\" + (severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"Critical\" : \"Warning\"), message);\r\n }\r\n }\r\n };\r\n _self.debugToConsole = function (message) {\r\n _logToConsole(\"debug\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */] = function (message) {\r\n _logToConsole(\"warn\", message);\r\n _debugExtMsg(\"warning\", message);\r\n };\r\n _self.errorToConsole = function (message) {\r\n _logToConsole(\"error\", message);\r\n _debugExtMsg(\"error\", message);\r\n };\r\n _self.resetInternalMessageCount = function () {\r\n _messageCount = 0;\r\n _messageLogged = {};\r\n };\r\n _self[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */] = _logInternalMessage;\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n _unloadHandler && _unloadHandler.rm();\r\n _unloadHandler = null;\r\n };\r\n function _logInternalMessage(severity, message) {\r\n if (_areInternalMessagesThrottled()) {\r\n return;\r\n }\r\n // check if this message type was already logged for this session and if so, don't log it again\r\n var logMessage = true;\r\n var messageKey = AIInternalMessagePrefix + message[_DYN_MESSAGE_ID /* @min:%2emessageId */];\r\n // if the session storage is not available, limit to only one message type per page view\r\n if (_messageLogged[messageKey]) {\r\n logMessage = false;\r\n }\r\n else {\r\n _messageLogged[messageKey] = true;\r\n }\r\n if (logMessage) {\r\n // Push the event in the internal queue\r\n if (severity <= _loggingLevelTelemetry) {\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](message);\r\n _messageCount++;\r\n _debugExtMsg((severity === 1 /* eLoggingSeverity.CRITICAL */ ? \"error\" : \"warn\"), message);\r\n }\r\n // When throttle limit reached, send a special event\r\n if (_messageCount === _maxInternalMessageLimit) {\r\n var throttleLimitMessage = \"Internal events throttle limit per PageView reached for this app.\";\r\n var throttleMessage = new _InternalLogMessage(23 /* _eInternalMessageId.MessageLimitPerPVExceeded */, throttleLimitMessage, false);\r\n _self.queue[_DYN_PUSH /* @min:%2epush */](throttleMessage);\r\n if (severity === 1 /* eLoggingSeverity.CRITICAL */) {\r\n _self.errorToConsole(throttleLimitMessage);\r\n }\r\n else {\r\n _self[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](throttleLimitMessage);\r\n }\r\n }\r\n }\r\n }\r\n function _setDefaultsFromConfig(config) {\r\n // make sure the config is dynamic\r\n return onConfigChange(createDynamicConfig(config, defaultValues, _self).cfg, function (details) {\r\n var config = details.cfg;\r\n _loggingLevelConsole = config[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */];\r\n _loggingLevelTelemetry = config.loggingLevelTelemetry;\r\n _maxInternalMessageLimit = config.maxMessageLimit;\r\n _enableDebug = config.enableDebug;\r\n });\r\n }\r\n function _areInternalMessagesThrottled() {\r\n return _messageCount >= _maxInternalMessageLimit;\r\n }\r\n function _debugExtMsg(name, data) {\r\n var dbgExt = getDebugExt(config || {});\r\n if (dbgExt && dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */]) {\r\n dbgExt[_DYN_DIAG_LOG /* @min:%2ediagLog */](name, data);\r\n }\r\n }\r\n });\r\n }\r\n// Removed Stub for DiagnosticLogger.prototype.consoleLoggingLevel.\r\n// Removed Stub for DiagnosticLogger.prototype.throwInternal.\r\n// Removed Stub for DiagnosticLogger.prototype.debugToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.warnToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.errorToConsole.\r\n// Removed Stub for DiagnosticLogger.prototype.resetInternalMessageCount.\r\n// Removed Stub for DiagnosticLogger.prototype.logInternalMessage.\r\n// Removed Stub for DiagnosticLogger.prototype.unload.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n DiagnosticLogger.__ieDyn=1;\n\n return DiagnosticLogger;\r\n}());\r\nexport { DiagnosticLogger };\r\nfunction _getLogger(logger) {\r\n return (logger || new DiagnosticLogger());\r\n}\r\n/**\r\n * This is a helper method which will call throwInternal on the passed logger, will throw exceptions in\r\n * debug mode or attempt to log the error as a console warning. This helper is provided mostly to better\r\n * support minification as logger.throwInternal() will not compress the publish \"throwInternal\" used throughout\r\n * the code.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _throwInternal(logger, severity, msgId, msg, properties, isUserAct) {\r\n if (isUserAct === void 0) { isUserAct = false; }\r\n _getLogger(logger)[_DYN_THROW_INTERNAL /* @min:%2ethrowInternal */](severity, msgId, msg, properties, isUserAct);\r\n}\r\n/**\r\n * This is a helper method which will call warnToConsole on the passed logger with the provided message.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param message - {_InternalLogMessage} - The log message.\r\n */\r\nexport function _warnToConsole(logger, message) {\r\n _getLogger(logger)[_DYN_WARN_TO_CONSOLE /* @min:%2ewarnToConsole */](message);\r\n}\r\n/**\r\n * Logs a message to the internal queue.\r\n * @param logger - The Diagnostic Logger instance to use.\r\n * @param severity - {LoggingSeverity} - The severity of the log message\r\n * @param message - {_InternalLogMessage} - The message to log.\r\n */\r\nexport function _logInternalMessage(logger, severity, message) {\r\n _getLogger(logger)[_DYN_LOG_INTERNAL_MESSAGE /* @min:%2elogInternalMessage */](severity, message);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\nexport var StorageType = createEnumStyle({\r\n LocalStorage: 0 /* eStorageType.LocalStorage */,\r\n SessionStorage: 1 /* eStorageType.SessionStorage */\r\n});\r\nexport var DistributedTracingModes = createEnumStyle({\r\n AI: 0 /* eDistributedTracingModes.AI */,\r\n AI_AND_W3C: 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n W3C: 2 /* eDistributedTracingModes.W3C */\r\n});\r\n/**\r\n * The EventPersistence contains a set of values that specify the event's persistence.\r\n */\r\nexport var EventPersistence = createEnumStyle({\r\n /**\r\n * Normal persistence.\r\n */\r\n Normal: 1 /* EventPersistenceValue.Normal */,\r\n /**\r\n * Critical persistence.\r\n */\r\n Critical: 2 /* EventPersistenceValue.Critical */\r\n});\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SPLIT = \"split\"; // Count: 6\r\nexport var _DYN_LENGTH = \"length\"; // Count: 41\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 6\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 9\r\nexport var _DYN_PUSH = \"push\"; // Count: 5\r\nexport var _DYN_REMOVE_ITEM = \"removeItem\"; // Count: 3\r\nexport var _DYN_NAME = \"name\"; // Count: 11\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 10\r\nexport var _DYN_COUNT = \"count\"; // Count: 8\r\nexport var _DYN_PRE_TRIGGER_DATE = \"preTriggerDate\"; // Count: 4\r\nexport var _DYN_DISABLED = \"disabled\"; // Count: 3\r\nexport var _DYN_INTERVAL = \"interval\"; // Count: 3\r\nexport var _DYN_DAYS_OF_MONTH = \"daysOfMonth\"; // Count: 3\r\nexport var _DYN_DATE = \"date\"; // Count: 5\r\nexport var _DYN_GET_UTCDATE = \"getUTCDate\"; // Count: 3\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 4\r\nexport var _DYN_PATHNAME = \"pathname\"; // Count: 4\r\nexport var _DYN_CORRELATION_HEADER_E0 = \"correlationHeaderExcludePatterns\"; // Count: 2\r\nexport var _DYN_EXTENSION_CONFIG = \"extensionConfig\"; // Count: 4\r\nexport var _DYN_EXCEPTIONS = \"exceptions\"; // Count: 6\r\nexport var _DYN_PARSED_STACK = \"parsedStack\"; // Count: 13\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 9\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 9\r\nexport var _DYN_SIZE_IN_BYTES = \"sizeInBytes\"; // Count: 11\r\nexport var _DYN_TYPE_NAME = \"typeName\"; // Count: 11\r\nexport var _DYN_SEVERITY_LEVEL = \"severityLevel\"; // Count: 5\r\nexport var _DYN_PROBLEM_GROUP = \"problemGroup\"; // Count: 3\r\nexport var _DYN_IS_MANUAL = \"isManual\"; // Count: 3\r\nexport var _DYN__CREATE_FROM_INTERFA1 = \"CreateFromInterface\"; // Count: 2\r\nexport var _DYN_ASSEMBLY = \"assembly\"; // Count: 7\r\nexport var _DYN_FILE_NAME = \"fileName\"; // Count: 8\r\nexport var _DYN_HAS_FULL_STACK = \"hasFullStack\"; // Count: 6\r\nexport var _DYN_LEVEL = \"level\"; // Count: 5\r\nexport var _DYN_METHOD = \"method\"; // Count: 7\r\nexport var _DYN_LINE = \"line\"; // Count: 6\r\nexport var _DYN_DURATION = \"duration\"; // Count: 4\r\nexport var _DYN_RECEIVED_RESPONSE = \"receivedResponse\"; // Count: 2\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, dumpObj, getExceptionName, getGlobal, getGlobalInst, isNullOrUndefined, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { StorageType } from \"./Enums\";\r\nimport { _DYN_PUSH, _DYN_REMOVE_ITEM, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar _canUseLocalStorage = undefined;\r\nvar _canUseSessionStorage = undefined;\r\nvar _storagePrefix = \"\";\r\n/**\r\n * Gets the localStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getLocalStorageObject() {\r\n if (utlCanUseLocalStorage()) {\r\n return _getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Tests storage object (localStorage or sessionStorage) to verify that it is usable\r\n * More details here: https://mathiasbynens.be/notes/localstorage-pattern\r\n * @param storageType - Type of storage\r\n * @return {Storage} Returns storage object verified that it is usable\r\n */\r\nfunction _getVerifiedStorageObject(storageType) {\r\n try {\r\n if (isNullOrUndefined(getGlobal())) {\r\n return null;\r\n }\r\n var uid = (new Date)[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var storage = getGlobalInst(storageType === StorageType.LocalStorage ? \"localStorage\" : \"sessionStorage\");\r\n var name_1 = _storagePrefix + uid;\r\n storage.setItem(name_1, uid);\r\n var fail = storage.getItem(name_1) !== uid;\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name_1);\r\n if (!fail) {\r\n return storage;\r\n }\r\n }\r\n catch (exception) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\n/**\r\n * Gets the sessionStorage object if available\r\n * @return {Storage} - Returns the storage object if available else returns null\r\n */\r\nfunction _getSessionStorageObject() {\r\n if (utlCanUseSessionStorage()) {\r\n return _getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Disables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlDisableStorage() {\r\n _canUseLocalStorage = false;\r\n _canUseSessionStorage = false;\r\n}\r\nexport function utlSetStoragePrefix(storagePrefix) {\r\n _storagePrefix = storagePrefix || \"\";\r\n}\r\n/**\r\n * Re-enables the global SDK usage of local or session storage if available\r\n */\r\nexport function utlEnableStorage() {\r\n _canUseLocalStorage = utlCanUseLocalStorage(true);\r\n _canUseSessionStorage = utlCanUseSessionStorage(true);\r\n}\r\n/**\r\n * Returns whether LocalStorage can be used, if the reset parameter is passed a true this will override\r\n * any previous disable calls.\r\n * @param reset - Should the usage be reset and determined only based on whether LocalStorage is available\r\n */\r\nexport function utlCanUseLocalStorage(reset) {\r\n if (reset || _canUseLocalStorage === undefined) {\r\n _canUseLocalStorage = !!_getVerifiedStorageObject(StorageType.LocalStorage);\r\n }\r\n return _canUseLocalStorage;\r\n}\r\nexport function utlGetLocalStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 1 /* _eInternalMessageId.BrowserCannotReadLocalStorage */, \"Browser failed read of local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetLocalStorage(logger, name, data) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 3 /* _eInternalMessageId.BrowserCannotWriteLocalStorage */, \"Browser failed write to local storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveStorage(logger, name) {\r\n var storage = _getLocalStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseLocalStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 5 /* _eInternalMessageId.BrowserFailedRemovalFromLocalStorage */, \"Browser failed removal of local storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlCanUseSessionStorage(reset) {\r\n if (reset || _canUseSessionStorage === undefined) {\r\n _canUseSessionStorage = !!_getVerifiedStorageObject(StorageType.SessionStorage);\r\n }\r\n return _canUseSessionStorage;\r\n}\r\nexport function utlGetSessionStorageKeys() {\r\n var keys = [];\r\n if (utlCanUseSessionStorage()) {\r\n objForEachKey(getGlobalInst(\"sessionStorage\"), function (key) {\r\n keys[_DYN_PUSH /* @min:%2epush */](key);\r\n });\r\n }\r\n return keys;\r\n}\r\nexport function utlGetSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n return storage.getItem(name);\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 2 /* _eInternalMessageId.BrowserCannotReadSessionStorage */, \"Browser failed read of session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return null;\r\n}\r\nexport function utlSetSessionStorage(logger, name, data) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage.setItem(name, data);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 4 /* _eInternalMessageId.BrowserCannotWriteSessionStorage */, \"Browser failed write to session storage. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\nexport function utlRemoveSessionStorage(logger, name) {\r\n var storage = _getSessionStorageObject();\r\n if (storage !== null) {\r\n try {\r\n storage[_DYN_REMOVE_ITEM /* @min:%2eremoveItem */](name);\r\n return true;\r\n }\r\n catch (e) {\r\n _canUseSessionStorage = false;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 6 /* _eInternalMessageId.BrowserFailedRemovalFromSessionStorage */, \"Browser failed removal of session storage item. \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return false;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n// Licensed under the\r\nexport { correlationIdSetPrefix, correlationIdGetPrefix, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, correlationIdGetCorrelationContextValue, dateTimeUtilsNow, dateTimeUtilsDuration, isInternalApplicationInsightsEndpoint, createDistributedTraceContextFromTrace } from \"./Util\";\r\nexport { ThrottleMgr } from \"./ThrottleMgr\";\r\nexport { parseConnectionString, ConnectionStringParser } from \"./ConnectionStringParser\";\r\nexport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nexport { DisabledPropertyName, ProcessLegacy, SampleRate, HttpMethod, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, strNotSpecified } from \"./Constants\";\r\nexport { Envelope } from \"./Telemetry/Common/Envelope\";\r\nexport { Event } from \"./Telemetry/Event\";\r\nexport { Exception } from \"./Telemetry/Exception\";\r\nexport { Metric } from \"./Telemetry/Metric\";\r\nexport { PageView } from \"./Telemetry/PageView\";\r\nexport { RemoteDependencyData } from \"./Telemetry/RemoteDependencyData\";\r\nexport { Trace } from \"./Telemetry/Trace\";\r\nexport { PageViewPerformance } from \"./Telemetry/PageViewPerformance\";\r\nexport { Data } from \"./Telemetry/Common/Data\";\r\nexport { SeverityLevel } from \"./Interfaces/Contracts/SeverityLevel\";\r\nexport { ConfigurationManager } from \"./Interfaces/IConfig\";\r\nexport { ContextTagKeys } from \"./Interfaces/Contracts/ContextTagKeys\";\r\nexport { dataSanitizeKeyAndAddUniqueness, dataSanitizeKey, dataSanitizeString, dataSanitizeUrl, dataSanitizeMessage, dataSanitizeException, dataSanitizeProperties, dataSanitizeMeasurements, dataSanitizeId, dataSanitizeInput, dsPadNumber } from \"./Telemetry/Common/DataSanitizer\";\r\nexport { TelemetryItemCreator, createTelemetryItem } from \"./TelemetryItemCreator\";\r\nexport { CtxTagKeys, Extensions } from \"./Interfaces/PartAExtensions\";\r\nexport { DistributedTracingModes, EventPersistence } from \"./Enums\";\r\nexport { stringToBoolOrDefault, msToTimeSpan, getExtensionByName, isCrossOriginError } from \"./HelperFuncs\";\r\nexport { isBeaconsSupported as isBeaconApiSupported, createTraceParent, parseTraceParent, isValidTraceId, isValidSpanId, isValidTraceParent, isSampledFlag, formatTraceParent, findW3cTraceParent, findAllScripts } from \"@microsoft/applicationinsights-core-js\";\r\nexport { createDomEvent } from \"./DomHelperFuncs\";\r\nexport { utlDisableStorage, utlEnableStorage, utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage, utlRemoveStorage, utlCanUseSessionStorage, utlGetSessionStorageKeys, utlGetSessionStorage, utlSetSessionStorage, utlRemoveSessionStorage, utlSetStoragePrefix } from \"./StorageHelperFuncs\";\r\nexport { urlParseUrl, urlGetAbsoluteUrl, urlGetPathName, urlGetCompleteUrl, urlParseHost, urlParseFullHost } from \"./UrlHelperFuncs\";\r\nexport { createOfflineListener } from \"./Offline\";\r\nexport var PropertiesPluginIdentifier = \"AppInsightsPropertiesPlugin\";\r\nexport var BreezeChannelIdentifier = \"AppInsightsChannelPlugin\";\r\nexport var AnalyticsPluginIdentifier = \"ApplicationInsightsAnalytics\";\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n/**\r\n * This is an internal property used to cause internal (reporting) requests to be ignored from reporting\r\n * additional telemetry, to handle polyfil implementations ALL urls used with a disabled request will\r\n * also be ignored for future requests even when this property is not provided.\r\n * Tagging as Ignore as this is an internal value and is not expected to be used outside of the SDK\r\n * @ignore\r\n */\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\nexport var SampleRate = \"sampleRate\";\r\nexport var ProcessLegacy = \"ProcessLegacy\";\r\nexport var HttpMethod = \"http.method\";\r\nexport var DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\nexport var DEFAULT_BREEZE_PATH = \"/v2/track\";\r\nexport var strNotSpecified = \"not_specified\";\r\nexport var strIkey = \"iKey\";\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _throwInternal, getJSON, hasJSON, isObject, objForEachKey, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { asString, strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH, _DYN_STRINGIFY, _DYN_TO_STRING } from \"../../__DynamicConstants\";\r\nexport function dataSanitizeKeyAndAddUniqueness(logger, key, map) {\r\n var origLength = key[_DYN_LENGTH /* @min:%2elength */];\r\n var field = dataSanitizeKey(logger, key);\r\n // validation truncated the length. We need to add uniqueness\r\n if (field[_DYN_LENGTH /* @min:%2elength */] !== origLength) {\r\n var i = 0;\r\n var uniqueField = field;\r\n while (map[uniqueField] !== undefined) {\r\n i++;\r\n uniqueField = strSubstring(field, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ - 3) + dsPadNumber(i);\r\n }\r\n field = uniqueField;\r\n }\r\n return field;\r\n}\r\nexport function dataSanitizeKey(logger, name) {\r\n var nameTrunc;\r\n if (name) {\r\n // Remove any leading or trailing whitespace\r\n name = strTrim(asString(name));\r\n // truncate the string to 150 chars\r\n if (name[_DYN_LENGTH /* @min:%2elength */] > 150 /* DataSanitizerValues.MAX_NAME_LENGTH */) {\r\n nameTrunc = strSubstring(name, 0, 150 /* DataSanitizerValues.MAX_NAME_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 57 /* _eInternalMessageId.NameTooLong */, \"name is too long. It has been truncated to \" + 150 /* DataSanitizerValues.MAX_NAME_LENGTH */ + \" characters.\", { name: name }, true);\r\n }\r\n }\r\n return nameTrunc || name;\r\n}\r\nexport function dataSanitizeString(logger, value, maxLength) {\r\n if (maxLength === void 0) { maxLength = 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; }\r\n var valueTrunc;\r\n if (value) {\r\n maxLength = maxLength ? maxLength : 1024 /* DataSanitizerValues.MAX_STRING_LENGTH */; // in case default parameters dont work\r\n value = strTrim(asString(value));\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n valueTrunc = strSubstring(value, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 61 /* _eInternalMessageId.StringValueTooLong */, \"string value is too long. It has been truncated to \" + maxLength + \" characters.\", { value: value }, true);\r\n }\r\n }\r\n return valueTrunc || value;\r\n}\r\nexport function dataSanitizeUrl(logger, url) {\r\n return dataSanitizeInput(logger, url, 2048 /* DataSanitizerValues.MAX_URL_LENGTH */, 66 /* _eInternalMessageId.UrlTooLong */);\r\n}\r\nexport function dataSanitizeMessage(logger, message) {\r\n var messageTrunc;\r\n if (message) {\r\n if (message[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */) {\r\n messageTrunc = strSubstring(message, 0, 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 56 /* _eInternalMessageId.MessageTruncated */, \"message is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_MESSAGE_LENGTH */ + \" characters.\", { message: message }, true);\r\n }\r\n }\r\n return messageTrunc || message;\r\n}\r\nexport function dataSanitizeException(logger, exception) {\r\n var exceptionTrunc;\r\n if (exception) {\r\n // Make surte its a string\r\n var value = \"\" + exception;\r\n if (value[_DYN_LENGTH /* @min:%2elength */] > 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */) {\r\n exceptionTrunc = strSubstring(value, 0, 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 52 /* _eInternalMessageId.ExceptionTruncated */, \"exception is too long, it has been truncated to \" + 32768 /* DataSanitizerValues.MAX_EXCEPTION_LENGTH */ + \" characters.\", { exception: exception }, true);\r\n }\r\n }\r\n return exceptionTrunc || exception;\r\n}\r\nexport function dataSanitizeProperties(logger, properties) {\r\n if (properties) {\r\n var tempProps_1 = {};\r\n objForEachKey(properties, function (prop, value) {\r\n if (isObject(value) && hasJSON()) {\r\n // Stringify any part C properties\r\n try {\r\n value = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"custom property is not valid\", { exception: e }, true);\r\n }\r\n }\r\n value = dataSanitizeString(logger, value, 8192 /* DataSanitizerValues.MAX_PROPERTY_LENGTH */);\r\n prop = dataSanitizeKeyAndAddUniqueness(logger, prop, tempProps_1);\r\n tempProps_1[prop] = value;\r\n });\r\n properties = tempProps_1;\r\n }\r\n return properties;\r\n}\r\nexport function dataSanitizeMeasurements(logger, measurements) {\r\n if (measurements) {\r\n var tempMeasurements_1 = {};\r\n objForEachKey(measurements, function (measure, value) {\r\n measure = dataSanitizeKeyAndAddUniqueness(logger, measure, tempMeasurements_1);\r\n tempMeasurements_1[measure] = value;\r\n });\r\n measurements = tempMeasurements_1;\r\n }\r\n return measurements;\r\n}\r\nexport function dataSanitizeId(logger, id) {\r\n return id ? dataSanitizeInput(logger, id, 128 /* DataSanitizerValues.MAX_ID_LENGTH */, 69 /* _eInternalMessageId.IdTooLong */)[_DYN_TO_STRING /* @min:%2etoString */]() : id;\r\n}\r\nexport function dataSanitizeInput(logger, input, maxLength, _msgId) {\r\n var inputTrunc;\r\n if (input) {\r\n input = strTrim(asString(input));\r\n if (input[_DYN_LENGTH /* @min:%2elength */] > maxLength) {\r\n inputTrunc = strSubstring(input, 0, maxLength);\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, _msgId, \"input is too long, it has been truncated to \" + maxLength + \" characters.\", { data: input }, true);\r\n }\r\n }\r\n return inputTrunc || input;\r\n}\r\nexport function dsPadNumber(num) {\r\n var s = \"00\" + num;\r\n return strSubstr(s, s[_DYN_LENGTH /* @min:%2elength */] - 3);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { isNullOrUndefined, objForEachKey, throwError, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIkey, strNotSpecified } from \"./Constants\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { _DYN_NAME } from \"./__DynamicConstants\";\r\n/**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\nexport function createTelemetryItem(item, baseType, envelopeName, logger, customProperties, systemProperties) {\r\n var _a;\r\n envelopeName = dataSanitizeString(logger, envelopeName) || strNotSpecified;\r\n if (isNullOrUndefined(item) ||\r\n isNullOrUndefined(baseType) ||\r\n isNullOrUndefined(envelopeName)) {\r\n throwError(\"Input doesn't contain all required fields\");\r\n }\r\n var iKey = \"\";\r\n if (item[strIkey]) {\r\n iKey = item[strIkey];\r\n delete item[strIkey];\r\n }\r\n var telemetryItem = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = envelopeName,\r\n _a.time = toISOString(new Date()),\r\n _a.iKey = iKey,\r\n _a.ext = systemProperties ? systemProperties : {},\r\n _a.tags = [],\r\n _a.data = {},\r\n _a.baseType = baseType,\r\n _a.baseData = item // Part B\r\n ,\r\n _a);\r\n // Part C\r\n if (!isNullOrUndefined(customProperties)) {\r\n objForEachKey(customProperties, function (prop, value) {\r\n telemetryItem.data[prop] = value;\r\n });\r\n }\r\n return telemetryItem;\r\n}\r\nvar TelemetryItemCreator = /** @class */ (function () {\r\n function TelemetryItemCreator() {\r\n }\r\n /**\r\n * Create a telemetry item that the 1DS channel understands\r\n * @param item - domain specific properties; part B\r\n * @param baseType - telemetry item type. ie PageViewData\r\n * @param envelopeName - name of the envelope. ie Microsoft.ApplicationInsights..PageView\r\n * @param customProperties - user defined custom properties; part C\r\n * @param systemProperties - system properties that are added to the context; part A\r\n * @returns ITelemetryItem that is sent to channel\r\n */\r\n TelemetryItemCreator.create = createTelemetryItem;\r\n return TelemetryItemCreator;\r\n}());\r\nexport { TelemetryItemCreator };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Event = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the EventTelemetry object\r\n */\r\n function Event(logger, name, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Event.envelopeType = \"Microsoft.ApplicationInsights.{0}.Event\";\r\n Event.dataType = \"EventData\";\r\n return Event;\r\n}());\r\nexport { Event };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_PROPERTIES, _DYN_SEVERITY_LEVEL } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties } from \"./Common/DataSanitizer\";\r\nvar Trace = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the TraceTelemetry object\r\n */\r\n function Trace(logger, message, severityLevel, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n message = message || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, message);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n }\r\n Trace.envelopeType = \"Microsoft.ApplicationInsights.{0}.Message\";\r\n Trace.dataType = \"MessageData\";\r\n return Trace;\r\n}());\r\nexport { Trace };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar DataPoint = /** @class */ (function () {\r\n function DataPoint() {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n name: 1 /* FieldType.Required */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 1 /* FieldType.Required */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */\r\n };\r\n /**\r\n * Metric type. Single measurement or the aggregated value.\r\n */\r\n this.kind = 0 /* DataPointType.Measurement */;\r\n }\r\n return DataPoint;\r\n}());\r\nexport { DataPoint };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_COUNT, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { DataPoint } from \"./Common/DataPoint\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar Metric = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the MetricTelemetry object\r\n */\r\n function Metric(logger, name, value, count, min, max, stdDev, properties, measurements) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n metrics: 1 /* FieldType.Required */,\r\n properties: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n var dataPoint = new DataPoint();\r\n dataPoint[_DYN_COUNT /* @min:%2ecount */] = count > 0 ? count : undefined;\r\n dataPoint.max = isNaN(max) || max === null ? undefined : max;\r\n dataPoint.min = isNaN(min) || min === null ? undefined : min;\r\n dataPoint[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n dataPoint.value = value;\r\n dataPoint.stdDev = isNaN(stdDev) || stdDev === null ? undefined : stdDev;\r\n _self.metrics = [dataPoint];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n Metric.envelopeType = \"Microsoft.ApplicationInsights.{0}.Metric\";\r\n Metric.dataType = \"MetricData\";\r\n return Metric;\r\n}());\r\nexport { Metric };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar strEmpty = \"\";\r\nexport function stringToBoolOrDefault(str, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n if (str === undefined || str === null) {\r\n return defaultValue;\r\n }\r\n return str.toString()[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Convert ms to c# time span format\r\n */\r\nexport function msToTimeSpan(totalms) {\r\n if (isNaN(totalms) || totalms < 0) {\r\n totalms = 0;\r\n }\r\n totalms = Math.round(totalms);\r\n var ms = strEmpty + totalms % 1000;\r\n var sec = strEmpty + Math.floor(totalms / 1000) % 60;\r\n var min = strEmpty + Math.floor(totalms / (1000 * 60)) % 60;\r\n var hour = strEmpty + Math.floor(totalms / (1000 * 60 * 60)) % 24;\r\n var days = Math.floor(totalms / (1000 * 60 * 60 * 24));\r\n ms = ms[_DYN_LENGTH /* @min:%2elength */] === 1 ? \"00\" + ms : ms[_DYN_LENGTH /* @min:%2elength */] === 2 ? \"0\" + ms : ms;\r\n sec = sec[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + sec : sec;\r\n min = min[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + min : min;\r\n hour = hour[_DYN_LENGTH /* @min:%2elength */] < 2 ? \"0\" + hour : hour;\r\n return (days > 0 ? days + \".\" : strEmpty) + hour + \":\" + min + \":\" + sec + \".\" + ms;\r\n}\r\nexport function getExtensionByName(extensions, identifier) {\r\n var extension = null;\r\n arrForEach(extensions, function (value) {\r\n if (value.identifier === identifier) {\r\n extension = value;\r\n return -1;\r\n }\r\n });\r\n return extension;\r\n}\r\nexport function isCrossOriginError(message, url, lineNumber, columnNumber, error) {\r\n return !error && isString(message) && (message === \"Script error.\" || message === \"Script error\");\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeId, dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageView = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageView(logger, name, url, durationMs, properties, measurements, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n id: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = dataSanitizeId(logger, id);\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n if (!isNaN(durationMs)) {\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(durationMs);\r\n }\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n PageView.envelopeType = \"Microsoft.ApplicationInsights.{0}.Pageview\";\r\n PageView.dataType = \"PageviewData\";\r\n return PageView;\r\n}());\r\nexport { PageView };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES, _DYN_RECEIVED_RESPONSE } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar PageViewPerformance = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the PageEventTelemetry object\r\n */\r\n function PageViewPerformance(logger, name, url, unused, properties, measurements, cs4BaseData) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n url: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n perfTotal: 0 /* FieldType.Default */,\r\n networkConnect: 0 /* FieldType.Default */,\r\n sentRequest: 0 /* FieldType.Default */,\r\n receivedResponse: 0 /* FieldType.Default */,\r\n domProcessing: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.url = dataSanitizeUrl(logger, url);\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (cs4BaseData) {\r\n _self.domProcessing = cs4BaseData.domProcessing;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = cs4BaseData[_DYN_DURATION /* @min:%2eduration */];\r\n _self.networkConnect = cs4BaseData.networkConnect;\r\n _self.perfTotal = cs4BaseData.perfTotal;\r\n _self[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */] = cs4BaseData[_DYN_RECEIVED_RESPONSE /* @min:%2ereceivedResponse */];\r\n _self.sentRequest = cs4BaseData.sentRequest;\r\n }\r\n }\r\n PageViewPerformance.envelopeType = \"Microsoft.ApplicationInsights.{0}.PageviewPerformance\";\r\n PageViewPerformance.dataType = \"PageviewPerformanceData\";\r\n return PageViewPerformance;\r\n}());\r\nexport { PageViewPerformance };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { arrForEach, arrMap, isArray, isError, isFunction, isNullOrUndefined, isObject, isString, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getWindow, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { strNotSpecified } from \"../Constants\";\r\nimport { _DYN_ASSEMBLY, _DYN_EXCEPTIONS, _DYN_FILE_NAME, _DYN_HAS_FULL_STACK, _DYN_IS_MANUAL, _DYN_LENGTH, _DYN_LEVEL, _DYN_LINE, _DYN_MEASUREMENTS, _DYN_MESSAGE, _DYN_METHOD, _DYN_NAME, _DYN_PARSED_STACK, _DYN_PROBLEM_GROUP, _DYN_PROPERTIES, _DYN_PUSH, _DYN_SEVERITY_LEVEL, _DYN_SIZE_IN_BYTES, _DYN_SPLIT, _DYN_STRINGIFY, _DYN_TO_STRING, _DYN_TYPE_NAME, _DYN__CREATE_FROM_INTERFA1 } from \"../__DynamicConstants\";\r\nimport { dataSanitizeException, dataSanitizeMeasurements, dataSanitizeMessage, dataSanitizeProperties, dataSanitizeString } from \"./Common/DataSanitizer\";\r\nvar NoMethod = \"\";\r\nvar strError = \"error\";\r\nvar strStack = \"stack\";\r\nvar strStackDetails = \"stackDetails\";\r\nvar strErrorSrc = \"errorSrc\";\r\nvar strMessage = \"message\";\r\nvar strDescription = \"description\";\r\nfunction _stringify(value, convertToString) {\r\n var result = value;\r\n if (result && !isString(result)) {\r\n if (JSON && JSON[_DYN_STRINGIFY /* @min:%2estringify */]) {\r\n result = JSON[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n if (convertToString && (!result || result === \"{}\")) {\r\n if (isFunction(value[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n result = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n else {\r\n result = \"\" + value;\r\n }\r\n }\r\n }\r\n else {\r\n result = \"\" + value + \" - (Missing JSON.stringify)\";\r\n }\r\n }\r\n return result || \"\";\r\n}\r\nfunction _formatMessage(theEvent, errorType) {\r\n var evtMessage = theEvent;\r\n if (theEvent) {\r\n if (evtMessage && !isString(evtMessage)) {\r\n evtMessage = theEvent[strMessage] || theEvent[strDescription] || evtMessage;\r\n }\r\n // Make sure the message is a string\r\n if (evtMessage && !isString(evtMessage)) {\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n evtMessage = _stringify(evtMessage, true);\r\n }\r\n if (theEvent[\"filename\"]) {\r\n // Looks like an event object with filename\r\n evtMessage = evtMessage + \" @\" + (theEvent[\"filename\"] || \"\") + \":\" + (theEvent[\"lineno\"] || \"?\") + \":\" + (theEvent[\"colno\"] || \"?\");\r\n }\r\n }\r\n // Automatically add the error type to the message if it does already appear to be present\r\n if (errorType && errorType !== \"String\" && errorType !== \"Object\" && errorType !== \"Error\" && strIndexOf(evtMessage || \"\", errorType) === -1) {\r\n evtMessage = errorType + \": \" + evtMessage;\r\n }\r\n return evtMessage || \"\";\r\n}\r\nfunction _isExceptionDetailsInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return \"hasFullStack\" in value && \"typeName\" in value;\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isExceptionInternal(value) {\r\n try {\r\n if (isObject(value)) {\r\n return (\"ver\" in value && \"exceptions\" in value && \"properties\" in value);\r\n }\r\n }\r\n catch (e) {\r\n // This can happen with some native browser objects, but should not happen for the type we are checking for\r\n }\r\n return false;\r\n}\r\nfunction _isStackDetails(details) {\r\n return details && details.src && isString(details.src) && details.obj && isArray(details.obj);\r\n}\r\nfunction _convertStackObj(errorStack) {\r\n var src = errorStack || \"\";\r\n if (!isString(src)) {\r\n if (isString(src[strStack])) {\r\n src = src[strStack];\r\n }\r\n else {\r\n src = \"\" + src;\r\n }\r\n }\r\n var items = src[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n return {\r\n src: src,\r\n obj: items\r\n };\r\n}\r\nfunction _getOperaStack(errorMessage) {\r\n var stack = [];\r\n var lines = errorMessage[_DYN_SPLIT /* @min:%2esplit */](\"\\n\");\r\n for (var lp = 0; lp < lines[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var entry = lines[lp];\r\n if (lines[lp + 1]) {\r\n entry += \"@\" + lines[lp + 1];\r\n lp++;\r\n }\r\n stack[_DYN_PUSH /* @min:%2epush */](entry);\r\n }\r\n return {\r\n src: errorMessage,\r\n obj: stack\r\n };\r\n}\r\nfunction _getStackFromErrorObj(errorObj) {\r\n var details = null;\r\n if (errorObj) {\r\n try {\r\n /* Using bracket notation is support older browsers (IE 7/8 -- dont remember the version) that throw when using dot\r\n notation for undefined objects and we don't want to loose the error from being reported */\r\n if (errorObj[strStack]) {\r\n // Chrome/Firefox\r\n details = _convertStackObj(errorObj[strStack]);\r\n }\r\n else if (errorObj[strError] && errorObj[strError][strStack]) {\r\n // Edge error event provides the stack and error object\r\n details = _convertStackObj(errorObj[strError][strStack]);\r\n }\r\n else if (errorObj[\"exception\"] && errorObj.exception[strStack]) {\r\n details = _convertStackObj(errorObj.exception[strStack]);\r\n }\r\n else if (_isStackDetails(errorObj)) {\r\n details = errorObj;\r\n }\r\n else if (_isStackDetails(errorObj[strStackDetails])) {\r\n details = errorObj[strStackDetails];\r\n }\r\n else if (getWindow() && getWindow()[\"opera\"] && errorObj[strMessage]) {\r\n // Opera\r\n details = _getOperaStack(errorObj[_DYN_MESSAGE /* @min:%2emessage */]);\r\n }\r\n else if (errorObj[\"reason\"] && errorObj.reason[strStack]) {\r\n // UnhandledPromiseRejection\r\n details = _convertStackObj(errorObj.reason[strStack]);\r\n }\r\n else if (isString(errorObj)) {\r\n details = _convertStackObj(errorObj);\r\n }\r\n else {\r\n var evtMessage = errorObj[strMessage] || errorObj[strDescription] || \"\";\r\n if (isString(errorObj[strErrorSrc])) {\r\n if (evtMessage) {\r\n evtMessage += \"\\n\";\r\n }\r\n evtMessage += \" from \" + errorObj[strErrorSrc];\r\n }\r\n if (evtMessage) {\r\n details = _convertStackObj(evtMessage);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // something unexpected happened so to avoid failing to report any error lets swallow the exception\r\n // and fallback to the callee/caller method\r\n details = _convertStackObj(e);\r\n }\r\n }\r\n return details || {\r\n src: \"\",\r\n obj: null\r\n };\r\n}\r\nfunction _formatStackTrace(stackDetails) {\r\n var stack = \"\";\r\n if (stackDetails) {\r\n if (stackDetails.obj) {\r\n arrForEach(stackDetails.obj, function (entry) {\r\n stack += entry + \"\\n\";\r\n });\r\n }\r\n else {\r\n stack = stackDetails.src || \"\";\r\n }\r\n }\r\n return stack;\r\n}\r\nfunction _parseStack(stack) {\r\n var parsedStack;\r\n var frames = stack.obj;\r\n if (frames && frames[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n parsedStack = [];\r\n var level_1 = 0;\r\n var totalSizeInBytes_1 = 0;\r\n arrForEach(frames, function (frame) {\r\n var theFrame = frame[_DYN_TO_STRING /* @min:%2etoString */]();\r\n if (_StackFrame.regex.test(theFrame)) {\r\n var parsedFrame = new _StackFrame(theFrame, level_1++);\r\n totalSizeInBytes_1 += parsedFrame[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n parsedStack[_DYN_PUSH /* @min:%2epush */](parsedFrame);\r\n }\r\n });\r\n // DP Constraint - exception parsed stack must be < 32KB\r\n // remove frames from the middle to meet the threshold\r\n var exceptionParsedStackThreshold = 32 * 1024;\r\n if (totalSizeInBytes_1 > exceptionParsedStackThreshold) {\r\n var left = 0;\r\n var right = parsedStack[_DYN_LENGTH /* @min:%2elength */] - 1;\r\n var size = 0;\r\n var acceptedLeft = left;\r\n var acceptedRight = right;\r\n while (left < right) {\r\n // check size\r\n var lSize = parsedStack[left][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n var rSize = parsedStack[right][_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */];\r\n size += lSize + rSize;\r\n if (size > exceptionParsedStackThreshold) {\r\n // remove extra frames from the middle\r\n var howMany = acceptedRight - acceptedLeft + 1;\r\n parsedStack.splice(acceptedLeft, howMany);\r\n break;\r\n }\r\n // update pointers\r\n acceptedLeft = left;\r\n acceptedRight = right;\r\n left++;\r\n right--;\r\n }\r\n }\r\n }\r\n return parsedStack;\r\n}\r\nfunction _getErrorType(errorType) {\r\n // Gets the Error Type by passing the constructor (used to get the true type of native error object).\r\n var typeName = \"\";\r\n if (errorType) {\r\n typeName = errorType.typeName || errorType[_DYN_NAME /* @min:%2ename */] || \"\";\r\n if (!typeName) {\r\n try {\r\n var funcNameRegex = /function (.{1,200})\\(/;\r\n var results = (funcNameRegex).exec((errorType).constructor[_DYN_TO_STRING /* @min:%2etoString */]());\r\n typeName = (results && results[_DYN_LENGTH /* @min:%2elength */] > 1) ? results[1] : \"\";\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n }\r\n return typeName;\r\n}\r\n/**\r\n * Formats the provided errorObj for display and reporting, it may be a String, Object, integer or undefined depending on the browser.\r\n * @param errorObj - The supplied errorObj\r\n */\r\nexport function _formatErrorCode(errorObj) {\r\n if (errorObj) {\r\n try {\r\n if (!isString(errorObj)) {\r\n var errorType = _getErrorType(errorObj);\r\n var result = _stringify(errorObj, false);\r\n if (!result || result === \"{}\") {\r\n if (errorObj[strError]) {\r\n // Looks like an MS Error Event\r\n errorObj = errorObj[strError];\r\n errorType = _getErrorType(errorObj);\r\n }\r\n result = _stringify(errorObj, true);\r\n }\r\n if (strIndexOf(result, errorType) !== 0 && errorType !== \"String\") {\r\n return errorType + \":\" + result;\r\n }\r\n return result;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty -- Ignoring any failures as nothing we can do\r\n }\r\n }\r\n // Fallback to just letting the object format itself into a string\r\n return \"\" + (errorObj || \"\");\r\n}\r\nvar Exception = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the ExceptionTelemetry object\r\n */\r\n function Exception(logger, exception, properties, measurements, severityLevel, id) {\r\n this.aiDataContract = {\r\n ver: 1 /* FieldType.Required */,\r\n exceptions: 1 /* FieldType.Required */,\r\n severityLevel: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2; // TODO: handle the CS\"4.0\" ==> breeze 2 conversion in a better way\r\n if (!_isExceptionInternal(exception)) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (id) {\r\n properties.id = id;\r\n }\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = [new _ExceptionDetails(logger, exception, properties)];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n if (severityLevel) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = severityLevel;\r\n }\r\n if (id) {\r\n _self.id = id;\r\n }\r\n }\r\n else {\r\n _self[_DYN_EXCEPTIONS /* @min:%2eexceptions */] = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */] || [];\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = exception[_DYN_PROPERTIES /* @min:%2eproperties */];\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = exception[_DYN_MEASUREMENTS /* @min:%2emeasurements */];\r\n if (exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */]) {\r\n _self[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */] = exception[_DYN_SEVERITY_LEVEL /* @min:%2eseverityLevel */];\r\n }\r\n if (exception.id) {\r\n _self.id = exception.id;\r\n exception[_DYN_PROPERTIES /* @min:%2eproperties */].id = exception.id;\r\n }\r\n if (exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */]) {\r\n _self[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */] = exception[_DYN_PROBLEM_GROUP /* @min:%2eproblemGroup */];\r\n }\r\n // bool/int types, use isNullOrUndefined\r\n if (!isNullOrUndefined(exception[_DYN_IS_MANUAL /* @min:%2eisManual */])) {\r\n _self[_DYN_IS_MANUAL /* @min:%2eisManual */] = exception[_DYN_IS_MANUAL /* @min:%2eisManual */];\r\n }\r\n }\r\n }\r\n Exception.CreateAutoException = function (message, url, lineNumber, columnNumber, error, evt, stack, errorSrc) {\r\n var _a;\r\n var errorType = _getErrorType(error || evt || message);\r\n return _a = {},\r\n _a[_DYN_MESSAGE /* @min:message */] = _formatMessage(message, errorType),\r\n _a.url = url,\r\n _a.lineNumber = lineNumber,\r\n _a.columnNumber = columnNumber,\r\n _a.error = _formatErrorCode(error || evt || message),\r\n _a.evt = _formatErrorCode(evt || message),\r\n _a[_DYN_TYPE_NAME /* @min:typeName */] = errorType,\r\n _a.stackDetails = _getStackFromErrorObj(stack || error || evt),\r\n _a.errorSrc = errorSrc,\r\n _a;\r\n };\r\n Exception.CreateFromInterface = function (logger, exception, properties, measurements) {\r\n var exceptions = exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */]\r\n && arrMap(exception[_DYN_EXCEPTIONS /* @min:%2eexceptions */], function (ex) { return _ExceptionDetails[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](logger, ex); });\r\n var exceptionData = new Exception(logger, __assign(__assign({}, exception), { exceptions: exceptions }), properties, measurements);\r\n return exceptionData;\r\n };\r\n Exception.prototype.toInterface = function () {\r\n var _a;\r\n var _b = this, exceptions = _b.exceptions, properties = _b.properties, measurements = _b.measurements, severityLevel = _b.severityLevel, problemGroup = _b.problemGroup, id = _b.id, isManual = _b.isManual;\r\n var exceptionDetailsInterface = exceptions instanceof Array\r\n && arrMap(exceptions, function (exception) { return exception.toInterface(); })\r\n || undefined;\r\n return _a = {\r\n ver: \"4.0\"\r\n },\r\n _a[_DYN_EXCEPTIONS /* @min:exceptions */] = exceptionDetailsInterface,\r\n _a.severityLevel = severityLevel,\r\n _a.properties = properties,\r\n _a.measurements = measurements,\r\n _a.problemGroup = problemGroup,\r\n _a.id = id,\r\n _a.isManual = isManual,\r\n _a;\r\n };\r\n /**\r\n * Creates a simple exception with 1 stack frame. Useful for manual constracting of exception.\r\n */\r\n Exception.CreateSimpleException = function (message, typeName, assembly, fileName, details, line) {\r\n var _a;\r\n return {\r\n exceptions: [\r\n (_a = {},\r\n _a[_DYN_HAS_FULL_STACK /* @min:hasFullStack */] = true,\r\n _a.message = message,\r\n _a.stack = details,\r\n _a.typeName = typeName,\r\n _a)\r\n ]\r\n };\r\n };\r\n Exception.envelopeType = \"Microsoft.ApplicationInsights.{0}.Exception\";\r\n Exception.dataType = \"ExceptionData\";\r\n Exception.formatError = _formatErrorCode;\r\n return Exception;\r\n}());\r\nexport { Exception };\r\nvar _ExceptionDetails = /** @class */ (function () {\r\n function _ExceptionDetails(logger, exception, properties) {\r\n this.aiDataContract = {\r\n id: 0 /* FieldType.Default */,\r\n outerId: 0 /* FieldType.Default */,\r\n typeName: 1 /* FieldType.Required */,\r\n message: 1 /* FieldType.Required */,\r\n hasFullStack: 0 /* FieldType.Default */,\r\n stack: 0 /* FieldType.Default */,\r\n parsedStack: 2 /* FieldType.Array */\r\n };\r\n var _self = this;\r\n if (!_isExceptionDetailsInternal(exception)) {\r\n var error = exception;\r\n var evt = error && error.evt;\r\n if (!isError(error)) {\r\n error = error[strError] || evt || error;\r\n }\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = dataSanitizeString(logger, _getErrorType(error)) || strNotSpecified;\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = dataSanitizeMessage(logger, _formatMessage(exception || error, _self[_DYN_TYPE_NAME /* @min:%2etypeName */])) || strNotSpecified;\r\n var stack = exception[strStackDetails] || _getStackFromErrorObj(exception);\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = _parseStack(stack);\r\n // after parsedStack is inited, iterate over each frame object, sanitize its assembly field\r\n if (isArray(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */])) {\r\n arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) {\r\n frame[_DYN_ASSEMBLY /* @min:%2eassembly */] = dataSanitizeString(logger, frame[_DYN_ASSEMBLY /* @min:%2eassembly */]);\r\n frame[_DYN_FILE_NAME /* @min:%2efileName */] = dataSanitizeString(logger, frame[_DYN_FILE_NAME /* @min:%2efileName */]);\r\n });\r\n }\r\n _self[strStack] = dataSanitizeException(logger, _formatStackTrace(stack));\r\n _self.hasFullStack = isArray(_self.parsedStack) && _self.parsedStack[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n if (properties) {\r\n properties[_DYN_TYPE_NAME /* @min:%2etypeName */] = properties[_DYN_TYPE_NAME /* @min:%2etypeName */] || _self[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n }\r\n }\r\n else {\r\n _self[_DYN_TYPE_NAME /* @min:%2etypeName */] = exception[_DYN_TYPE_NAME /* @min:%2etypeName */];\r\n _self[_DYN_MESSAGE /* @min:%2emessage */] = exception[_DYN_MESSAGE /* @min:%2emessage */];\r\n _self[strStack] = exception[strStack];\r\n _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] = exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] || [];\r\n _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */] = exception[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */];\r\n }\r\n }\r\n _ExceptionDetails.prototype.toInterface = function () {\r\n var _a;\r\n var _self = this;\r\n var parsedStack = _self[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(_self[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return frame.toInterface(); });\r\n var exceptionDetailsInterface = (_a = {\r\n id: _self.id,\r\n outerId: _self.outerId,\r\n typeName: _self[_DYN_TYPE_NAME /* @min:%2etypeName */],\r\n message: _self[_DYN_MESSAGE /* @min:%2emessage */],\r\n hasFullStack: _self[_DYN_HAS_FULL_STACK /* @min:%2ehasFullStack */],\r\n stack: _self[strStack]\r\n },\r\n _a[_DYN_PARSED_STACK /* @min:parsedStack */] = parsedStack || undefined,\r\n _a);\r\n return exceptionDetailsInterface;\r\n };\r\n _ExceptionDetails.CreateFromInterface = function (logger, exception) {\r\n var parsedStack = (exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */] instanceof Array\r\n && arrMap(exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */], function (frame) { return _StackFrame[_DYN__CREATE_FROM_INTERFA1 /* @min:%2eCreateFromInterface */](frame); }))\r\n || exception[_DYN_PARSED_STACK /* @min:%2eparsedStack */];\r\n var exceptionDetails = new _ExceptionDetails(logger, __assign(__assign({}, exception), { parsedStack: parsedStack }));\r\n return exceptionDetails;\r\n };\r\n return _ExceptionDetails;\r\n}());\r\nexport { _ExceptionDetails };\r\nvar _StackFrame = /** @class */ (function () {\r\n function _StackFrame(sourceFrame, level) {\r\n this.aiDataContract = {\r\n level: 1 /* FieldType.Required */,\r\n method: 1 /* FieldType.Required */,\r\n assembly: 0 /* FieldType.Default */,\r\n fileName: 0 /* FieldType.Default */,\r\n line: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n // Not converting this to isString() as typescript uses this logic to \"understand\" the different\r\n // types for the 2 different code paths\r\n if (typeof sourceFrame === \"string\") {\r\n var frame = sourceFrame;\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = level;\r\n _self[_DYN_METHOD /* @min:%2emethod */] = NoMethod;\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = strTrim(frame);\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = \"\";\r\n _self[_DYN_LINE /* @min:%2eline */] = 0;\r\n var matches = frame.match(_StackFrame.regex);\r\n if (matches && matches[_DYN_LENGTH /* @min:%2elength */] >= 5) {\r\n _self[_DYN_METHOD /* @min:%2emethod */] = strTrim(matches[2]) || _self[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = strTrim(matches[4]);\r\n _self[_DYN_LINE /* @min:%2eline */] = parseInt(matches[5]) || 0;\r\n }\r\n }\r\n else {\r\n _self[_DYN_LEVEL /* @min:%2elevel */] = sourceFrame[_DYN_LEVEL /* @min:%2elevel */];\r\n _self[_DYN_METHOD /* @min:%2emethod */] = sourceFrame[_DYN_METHOD /* @min:%2emethod */];\r\n _self[_DYN_ASSEMBLY /* @min:%2eassembly */] = sourceFrame[_DYN_ASSEMBLY /* @min:%2eassembly */];\r\n _self[_DYN_FILE_NAME /* @min:%2efileName */] = sourceFrame[_DYN_FILE_NAME /* @min:%2efileName */];\r\n _self[_DYN_LINE /* @min:%2eline */] = sourceFrame[_DYN_LINE /* @min:%2eline */];\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] = 0;\r\n }\r\n _self.sizeInBytes += _self.method[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.fileName[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.assembly[_DYN_LENGTH /* @min:%2elength */];\r\n // todo: these might need to be removed depending on how the back-end settles on their size calculation\r\n _self[_DYN_SIZE_IN_BYTES /* @min:%2esizeInBytes */] += _StackFrame.baseSize;\r\n _self.sizeInBytes += _self.level.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n _self.sizeInBytes += _self.line.toString()[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n _StackFrame.CreateFromInterface = function (frame) {\r\n return new _StackFrame(frame, null /* level is available in frame interface */);\r\n };\r\n _StackFrame.prototype.toInterface = function () {\r\n var _self = this;\r\n return {\r\n level: _self[_DYN_LEVEL /* @min:%2elevel */],\r\n method: _self[_DYN_METHOD /* @min:%2emethod */],\r\n assembly: _self[_DYN_ASSEMBLY /* @min:%2eassembly */],\r\n fileName: _self[_DYN_FILE_NAME /* @min:%2efileName */],\r\n line: _self[_DYN_LINE /* @min:%2eline */]\r\n };\r\n };\r\n // regex to match stack frames from ie/chrome/ff\r\n // methodName=$2, fileName=$4, lineNo=$5, column=$6\r\n _StackFrame.regex = /^([\\s]+at)?[\\s]{0,50}([^\\@\\()]+?)[\\s]{0,50}(\\@|\\()([^\\(\\n]+):([0-9]+):([0-9]+)(\\)?)$/;\r\n _StackFrame.baseSize = 58; // '{\"method\":\"\",\"level\":,\"assembly\":\"\",\"fileName\":\"\",\"line\":}'.length\r\n return _StackFrame;\r\n}());\r\nexport { _StackFrame };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { strShimUndefined } from \"@microsoft/applicationinsights-shims\";\r\nimport { strSubstr, strSubstring } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\nimport { random32 } from \"./RandomHelper\";\r\n// Added to help with minfication\r\nexport var Undefined = strShimUndefined;\r\nexport function newGuid() {\r\n var uuid = generateW3CId();\r\n return strSubstring(uuid, 0, 8) + \"-\" + strSubstring(uuid, 8, 12) + \"-\" + strSubstring(uuid, 12, 16) + \"-\" + strSubstring(uuid, 16, 20) + \"-\" + strSubstring(uuid, 20);\r\n}\r\n/**\r\n * The strEndsWith() method determines whether a string ends with the characters of a specified string, returning true or false as appropriate.\r\n * @param value - The value to check whether it ends with the search value.\r\n * @param search - The characters to be searched for at the end of the value.\r\n * @returns true if the given search value is found at the end of the string, otherwise false.\r\n */\r\nexport function strEndsWith(value, search) {\r\n if (value && search) {\r\n var len = value[_DYN_LENGTH /* @min:%2elength */];\r\n var start = len - search[_DYN_LENGTH /* @min:%2elength */];\r\n return strSubstring(value, start >= 0 ? start : 0, len) === search;\r\n }\r\n return false;\r\n}\r\n/**\r\n * generate W3C trace id\r\n */\r\nexport function generateW3CId() {\r\n var hexValues = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\r\n // rfc4122 version 4 UUID without dashes and with lowercase letters\r\n var oct = STR_EMPTY, tmp;\r\n for (var a = 0; a < 4; a++) {\r\n tmp = random32();\r\n oct +=\r\n hexValues[tmp & 0xF] +\r\n hexValues[tmp >> 4 & 0xF] +\r\n hexValues[tmp >> 8 & 0xF] +\r\n hexValues[tmp >> 12 & 0xF] +\r\n hexValues[tmp >> 16 & 0xF] +\r\n hexValues[tmp >> 20 & 0xF] +\r\n hexValues[tmp >> 24 & 0xF] +\r\n hexValues[tmp >> 28 & 0xF];\r\n }\r\n // \"Set the two most significant bits (bits 6 and 7) of the clock_seq_hi_and_reserved to zero and one, respectively\"\r\n var clockSequenceHi = hexValues[8 + (random32() & 0x03) | 0];\r\n return strSubstr(oct, 0, 8) + strSubstr(oct, 9, 4) + \"4\" + strSubstr(oct, 13, 3) + clockSequenceHi + strSubstr(oct, 16, 3) + strSubstr(oct, 19, 12);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, isArray, isString, strLeft, strTrim } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_ATTRIBUTE, _DYN_LENGTH, _DYN_PUSH, _DYN_SPAN_ID, _DYN_SPLIT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_VERSION } from \"../__DynamicConstants\";\r\nimport { generateW3CId } from \"./CoreUtils\";\r\nimport { findMetaTag, findNamedServerTiming } from \"./EnvUtils\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// using {0,16} for leading and trailing whitespace just to constrain the possible runtime of a random string\r\nvar TRACE_PARENT_REGEX = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})(-[^\\s]{1,64})?$/i;\r\nvar DEFAULT_VERSION = \"00\";\r\nvar INVALID_VERSION = \"ff\";\r\nvar INVALID_TRACE_ID = \"00000000000000000000000000000000\";\r\nvar INVALID_SPAN_ID = \"0000000000000000\";\r\nvar SAMPLED_FLAG = 0x01;\r\nfunction _isValid(value, len, invalidValue) {\r\n if (value && value[_DYN_LENGTH /* @min:%2elength */] === len && value !== invalidValue) {\r\n return !!value.match(/^[\\da-f]*$/i);\r\n }\r\n return false;\r\n}\r\nfunction _formatValue(value, len, defValue) {\r\n if (_isValid(value, len)) {\r\n return value;\r\n }\r\n return defValue;\r\n}\r\nfunction _formatFlags(value) {\r\n if (isNaN(value) || value < 0 || value > 255) {\r\n value = 0x01;\r\n }\r\n var result = value.toString(16);\r\n while (result[_DYN_LENGTH /* @min:%2elength */] < 2) {\r\n result = \"0\" + result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Create a new ITraceParent instance using the provided values.\r\n * @param traceId - The traceId to use, when invalid a new random W3C id will be generated.\r\n * @param spanId - The parent/span id to use, a new random value will be generated if it is invalid.\r\n * @param flags - The traceFlags to use, defaults to zero (0) if not supplied or invalid\r\n * @param version - The version to used, defaults to version \"01\" if not supplied or invalid.\r\n * @returns\r\n */\r\nexport function createTraceParent(traceId, spanId, flags, version) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_VERSION /* @min:version */] = _isValid(version, 2, INVALID_VERSION) ? version : DEFAULT_VERSION,\r\n _a[_DYN_TRACE_ID /* @min:traceId */] = isValidTraceId(traceId) ? traceId : generateW3CId(),\r\n _a[_DYN_SPAN_ID /* @min:spanId */] = isValidSpanId(spanId) ? spanId : strLeft(generateW3CId(), 16),\r\n _a.traceFlags = flags >= 0 && flags <= 0xFF ? flags : 1,\r\n _a;\r\n}\r\n/**\r\n * Attempt to parse the provided string as a W3C TraceParent header value (https://www.w3.org/TR/trace-context/#traceparent-header)\r\n *\r\n * @param value - The value to be parsed\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function parseTraceParent(value, selectIdx) {\r\n var _a;\r\n if (!value) {\r\n // Don't pass a null/undefined or empty string\r\n return null;\r\n }\r\n if (isArray(value)) {\r\n // The value may have been encoded on the page into an array so handle this automatically\r\n value = value[0] || \"\";\r\n }\r\n if (!value || !isString(value) || value[_DYN_LENGTH /* @min:%2elength */] > 8192) {\r\n // limit potential processing based on total length\r\n return null;\r\n }\r\n if (value.indexOf(\",\") !== -1) {\r\n var values = value[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n value = values[selectIdx > 0 && values[_DYN_LENGTH /* @min:%2elength */] > selectIdx ? selectIdx : 0];\r\n }\r\n // See https://www.w3.org/TR/trace-context/#versioning-of-traceparent\r\n var match = TRACE_PARENT_REGEX.exec(strTrim(value));\r\n if (!match || // No match\r\n match[1] === INVALID_VERSION || // version ff is forbidden\r\n match[2] === INVALID_TRACE_ID || // All zeros is considered to be invalid\r\n match[3] === INVALID_SPAN_ID) { // All zeros is considered to be invalid\r\n return null;\r\n }\r\n return _a = {\r\n version: (match[1] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n traceId: (match[2] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](),\r\n spanId: (match[3] || STR_EMPTY)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()\r\n },\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = parseInt(match[4], 16),\r\n _a;\r\n}\r\n/**\r\n * Is the provided W3c Trace Id a valid string representation, it must be a 32-character string\r\n * of lowercase hexadecimal characters for example, 4bf92f3577b34da6a3ce929d0e0e4736.\r\n * If all characters as zero (00000000000000000000000000000000) it will be considered an invalid value.\r\n * @param value - The W3c trace Id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidTraceId(value) {\r\n return _isValid(value, 32, INVALID_TRACE_ID);\r\n}\r\n/**\r\n * Is the provided W3c span id (aka. parent id) a valid string representation, it must be a 16-character\r\n * string of lowercase hexadecimal characters, for example, 00f067aa0ba902b7.\r\n * If all characters are zero (0000000000000000) this is considered an invalid value.\r\n * @param value - The W3c span id to be validated\r\n * @returns true if valid otherwise false\r\n */\r\nexport function isValidSpanId(value) {\r\n return _isValid(value, 16, INVALID_SPAN_ID);\r\n}\r\n/**\r\n * Validates that the provided ITraceParent instance conforms to the currently supported specifications\r\n * @param value\r\n * @returns\r\n */\r\nexport function isValidTraceParent(value) {\r\n if (!value ||\r\n !_isValid(value[_DYN_VERSION /* @min:%2eversion */], 2, INVALID_VERSION) ||\r\n !_isValid(value[_DYN_TRACE_ID /* @min:%2etraceId */], 32, INVALID_TRACE_ID) ||\r\n !_isValid(value[_DYN_SPAN_ID /* @min:%2espanId */], 16, INVALID_SPAN_ID) ||\r\n !_isValid(_formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]), 2)) {\r\n // Each known field must contain a valid value\r\n return false;\r\n }\r\n return true;\r\n}\r\n/**\r\n * Is the parsed traceParent indicating that the trace is currently sampled.\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function isSampledFlag(value) {\r\n if (isValidTraceParent(value)) {\r\n return (value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] & SAMPLED_FLAG) === SAMPLED_FLAG;\r\n }\r\n return false;\r\n}\r\n/**\r\n * Format the ITraceParent value as a string using the supported and know version formats.\r\n * So even if the passed traceParent is a later version the string value returned from this\r\n * function will convert it to only the known version formats.\r\n * This currently only supports version \"00\" and invalid \"ff\"\r\n * @param value - The parsed traceParent value\r\n * @returns\r\n */\r\nexport function formatTraceParent(value) {\r\n if (value) {\r\n // Special Note: This only supports formatting as version 00, future versions should encode any known supported version\r\n // So parsing a future version will populate the correct version value but reformatting will reduce it to version 00.\r\n var flags = _formatFlags(value[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */]);\r\n if (!_isValid(flags, 2)) {\r\n flags = \"01\";\r\n }\r\n var version = value[_DYN_VERSION /* @min:%2eversion */] || DEFAULT_VERSION;\r\n if (version !== \"00\" && version !== \"ff\") {\r\n // Reduce version to \"00\"\r\n version = DEFAULT_VERSION;\r\n }\r\n // Format as version 00\r\n return \"\".concat(version.toLowerCase(), \"-\").concat(_formatValue(value.traceId, 32, INVALID_TRACE_ID).toLowerCase(), \"-\").concat(_formatValue(value.spanId, 16, INVALID_SPAN_ID).toLowerCase(), \"-\").concat(flags.toLowerCase());\r\n }\r\n return \"\";\r\n}\r\n/**\r\n * Helper function to fetch the passed traceparent from the page, looking for it as a meta-tag or a Server-Timing header.\r\n * @param selectIdx - If the found value is comma separated which is the preferred entry to select, defaults to the first\r\n * @returns\r\n */\r\nexport function findW3cTraceParent(selectIdx) {\r\n var name = \"traceparent\";\r\n var traceParent = parseTraceParent(findMetaTag(name), selectIdx);\r\n if (!traceParent) {\r\n traceParent = parseTraceParent(findNamedServerTiming(name), selectIdx);\r\n }\r\n return traceParent;\r\n}\r\n/**\r\n * Find all script tags in the provided document and return the information about them.\r\n * @param doc\r\n * @returns\r\n */\r\nexport function findAllScripts(doc) {\r\n var scripts = doc.getElementsByTagName(\"script\");\r\n var result = [];\r\n arrForEach(scripts, function (script) {\r\n var src = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"src\");\r\n if (src) {\r\n var crossOrigin = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"crossorigin\");\r\n var async = script.hasAttribute(\"async\") === true;\r\n var defer = script.hasAttribute(\"defer\") === true;\r\n var referrerPolicy = script[_DYN_GET_ATTRIBUTE /* @min:%2egetAttribute */](\"referrerpolicy\");\r\n var info = { url: src };\r\n if (crossOrigin) {\r\n info.crossOrigin = crossOrigin;\r\n }\r\n if (async) {\r\n info.async = async;\r\n }\r\n if (defer) {\r\n info.defer = defer;\r\n }\r\n if (referrerPolicy) {\r\n info.referrerPolicy = referrerPolicy;\r\n }\r\n result[_DYN_PUSH /* @min:%2epush */](info);\r\n }\r\n });\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nexport var RequestHeaders = createValueMap({\r\n requestContextHeader: [0 /* eRequestHeaders.requestContextHeader */, \"Request-Context\"],\r\n requestContextTargetKey: [1 /* eRequestHeaders.requestContextTargetKey */, \"appId\"],\r\n requestContextAppIdFormat: [2 /* eRequestHeaders.requestContextAppIdFormat */, \"appId=cid-v1:\"],\r\n requestIdHeader: [3 /* eRequestHeaders.requestIdHeader */, \"Request-Id\"],\r\n traceParentHeader: [4 /* eRequestHeaders.traceParentHeader */, \"traceparent\"],\r\n traceStateHeader: [5 /* eRequestHeaders.traceStateHeader */, \"tracestate\"],\r\n sdkContextHeader: [6 /* eRequestHeaders.sdkContextHeader */, \"Sdk-Context\"],\r\n sdkContextHeaderAppIdRequest: [7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */, \"appId\"],\r\n requestContextHeaderLowerCase: [8 /* eRequestHeaders.requestContextHeaderLowerCase */, \"request-context\"]\r\n});\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PATHNAME, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _document = getDocument() || {};\r\nvar _htmlAnchorIdx = 0;\r\n// Use an array of temporary values as it's possible for multiple calls to parseUrl() will be called with different URLs\r\n// Using a cache size of 5 for now as it current depth usage is at least 2, so adding a minor buffer to handle future updates\r\nvar _htmlAnchorElement = [null, null, null, null, null];\r\nexport function urlParseUrl(url) {\r\n var anchorIdx = _htmlAnchorIdx;\r\n var anchorCache = _htmlAnchorElement;\r\n var tempAnchor = anchorCache[anchorIdx];\r\n if (!_document.createElement) {\r\n // Always create the temp instance if createElement is not available\r\n tempAnchor = { host: urlParseHost(url, true) };\r\n }\r\n else if (!anchorCache[anchorIdx]) {\r\n // Create and cache the unattached anchor instance\r\n tempAnchor = anchorCache[anchorIdx] = _document.createElement(\"a\");\r\n }\r\n tempAnchor.href = url;\r\n // Move the cache index forward\r\n anchorIdx++;\r\n if (anchorIdx >= anchorCache[_DYN_LENGTH /* @min:%2elength */]) {\r\n anchorIdx = 0;\r\n }\r\n _htmlAnchorIdx = anchorIdx;\r\n return tempAnchor;\r\n}\r\nexport function urlGetAbsoluteUrl(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a.href;\r\n }\r\n return result;\r\n}\r\nexport function urlGetPathName(url) {\r\n var result;\r\n var a = urlParseUrl(url);\r\n if (a) {\r\n result = a[_DYN_PATHNAME /* @min:%2epathname */];\r\n }\r\n return result;\r\n}\r\nexport function urlGetCompleteUrl(method, absoluteUrl) {\r\n if (method) {\r\n return method.toUpperCase() + \" \" + absoluteUrl;\r\n }\r\n return absoluteUrl;\r\n}\r\n// Fallback method to grab host from url if document.createElement method is not available\r\nexport function urlParseHost(url, inclPort) {\r\n var fullHost = urlParseFullHost(url, inclPort) || \"\";\r\n if (fullHost) {\r\n var match = fullHost.match(/(www\\d{0,5}\\.)?([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 3 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n return match[2] + (match[3] || \"\");\r\n }\r\n }\r\n return fullHost;\r\n}\r\nexport function urlParseFullHost(url, inclPort) {\r\n var result = null;\r\n if (url) {\r\n var match = url.match(/(\\w{1,150}):\\/\\/([^\\/:]{1,256})(:\\d{1,20})?/i);\r\n if (match != null && match[_DYN_LENGTH /* @min:%2elength */] > 2 && isString(match[2]) && match[2][_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n result = match[2] || \"\";\r\n if (inclPort && match[_DYN_LENGTH /* @min:%2elength */] > 2) {\r\n var protocol = (match[1] || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var port = match[3] || \"\";\r\n // IE includes the standard port so pass it off if it's the same as the protocol\r\n if (protocol === \"http\" && port === \":80\") {\r\n port = \"\";\r\n }\r\n else if (protocol === \"https\" && port === \":443\") {\r\n port = \"\";\r\n }\r\n result += port;\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, dateNow, getPerformance, isNullOrUndefined, isValidSpanId, isValidTraceId } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH } from \"./Constants\";\r\nimport { RequestHeaders } from \"./RequestResponseHeaders\";\r\nimport { dataSanitizeString } from \"./Telemetry/Common/DataSanitizer\";\r\nimport { urlParseFullHost, urlParseUrl } from \"./UrlHelperFuncs\";\r\nimport { _DYN_CORRELATION_HEADER_E0, _DYN_LENGTH, _DYN_NAME, _DYN_PATHNAME, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\n// listing only non-geo specific locations\r\nvar _internalEndpoints = [\r\n DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH,\r\n \"https://breeze.aimon.applicationinsights.io\" + DEFAULT_BREEZE_PATH,\r\n \"https://dc-int.services.visualstudio.com\" + DEFAULT_BREEZE_PATH\r\n];\r\nvar _correlationIdPrefix = \"cid-v1:\";\r\nexport function isInternalApplicationInsightsEndpoint(endpointUrl) {\r\n return arrIndexOf(_internalEndpoints, endpointUrl[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) !== -1;\r\n}\r\nexport function correlationIdSetPrefix(prefix) {\r\n _correlationIdPrefix = prefix;\r\n}\r\nexport function correlationIdGetPrefix() {\r\n return _correlationIdPrefix;\r\n}\r\n/**\r\n * Checks if a request url is not on a excluded domain list and if it is safe to add correlation headers.\r\n * Headers are always included if the current domain matches the request domain. If they do not match (CORS),\r\n * they are regex-ed across correlationHeaderDomains and correlationHeaderExcludedDomains to determine if headers are included.\r\n * Some environments don't give information on currentHost via window.location.host (e.g. Cordova). In these cases, the user must\r\n * manually supply domains to include correlation headers on. Else, no headers will be included at all.\r\n */\r\nexport function correlationIdCanIncludeCorrelationHeader(config, requestUrl, currentHost) {\r\n if (!requestUrl || (config && config.disableCorrelationHeaders)) {\r\n return false;\r\n }\r\n if (config && config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */]) {\r\n for (var i = 0; i < config.correlationHeaderExcludePatterns[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (config[_DYN_CORRELATION_HEADER_E0 /* @min:%2ecorrelationHeaderExcludePatterns */][i].test(requestUrl)) {\r\n return false;\r\n }\r\n }\r\n }\r\n var requestHost = urlParseUrl(requestUrl).host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n if (requestHost && (strIndexOf(requestHost, \":443\") !== -1 || strIndexOf(requestHost, \":80\") !== -1)) {\r\n // [Bug #1260] IE can include the port even for http and https URLs so if present\r\n // try and parse it to remove if it matches the default protocol port\r\n requestHost = (urlParseFullHost(requestUrl, true) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n }\r\n if ((!config || !config.enableCorsCorrelation) && (requestHost && requestHost !== currentHost)) {\r\n return false;\r\n }\r\n var includedDomains = config && config.correlationHeaderDomains;\r\n if (includedDomains) {\r\n var matchExists_1;\r\n arrForEach(includedDomains, function (domain) {\r\n var regex = new RegExp(domain.toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n matchExists_1 = matchExists_1 || regex.test(requestHost);\r\n });\r\n if (!matchExists_1) {\r\n return false;\r\n }\r\n }\r\n var excludedDomains = config && config.correlationHeaderExcludedDomains;\r\n if (!excludedDomains || excludedDomains[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return true;\r\n }\r\n for (var i = 0; i < excludedDomains[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var regex = new RegExp(excludedDomains[i].toLowerCase().replace(/\\\\/g, \"\\\\\\\\\").replace(/\\./g, \"\\\\.\").replace(/\\*/g, \".*\"));\r\n if (regex.test(requestHost)) {\r\n return false;\r\n }\r\n }\r\n // if we don't know anything about the requestHost, require the user to use included/excludedDomains.\r\n // Previously we always returned false for a falsy requestHost\r\n return requestHost && requestHost[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\n/**\r\n * Combines target appId and target role name from response header.\r\n */\r\nexport function correlationIdGetCorrelationContext(responseHeader) {\r\n if (responseHeader) {\r\n var correlationId = correlationIdGetCorrelationContextValue(responseHeader, RequestHeaders[1 /* eRequestHeaders.requestContextTargetKey */]);\r\n if (correlationId && correlationId !== _correlationIdPrefix) {\r\n return correlationId;\r\n }\r\n }\r\n}\r\n/**\r\n * Gets key from correlation response header\r\n */\r\nexport function correlationIdGetCorrelationContextValue(responseHeader, key) {\r\n if (responseHeader) {\r\n var keyValues = responseHeader[_DYN_SPLIT /* @min:%2esplit */](\",\");\r\n for (var i = 0; i < keyValues[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n var keyValue = keyValues[i][_DYN_SPLIT /* @min:%2esplit */](\"=\");\r\n if (keyValue[_DYN_LENGTH /* @min:%2elength */] === 2 && keyValue[0] === key) {\r\n return keyValue[1];\r\n }\r\n }\r\n }\r\n}\r\nexport function AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName) {\r\n var target, name = commandName, data = commandName;\r\n if (absoluteUrl && absoluteUrl[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var parsedUrl = urlParseUrl(absoluteUrl);\r\n target = parsedUrl.host;\r\n if (!name) {\r\n if (parsedUrl[_DYN_PATHNAME /* @min:%2epathname */] != null) {\r\n var pathName = (parsedUrl.pathname[_DYN_LENGTH /* @min:%2elength */] === 0) ? \"/\" : parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n if (pathName.charAt(0) !== \"/\") {\r\n pathName = \"/\" + pathName;\r\n }\r\n data = parsedUrl[_DYN_PATHNAME /* @min:%2epathname */];\r\n name = dataSanitizeString(logger, method ? method + \" \" + pathName : pathName);\r\n }\r\n else {\r\n name = dataSanitizeString(logger, absoluteUrl);\r\n }\r\n }\r\n }\r\n else {\r\n target = commandName;\r\n name = commandName;\r\n }\r\n return {\r\n target: target,\r\n name: name,\r\n data: data\r\n };\r\n}\r\nexport function dateTimeUtilsNow() {\r\n // returns the window or webworker performance object\r\n var perf = getPerformance();\r\n if (perf && perf.now && perf.timing) {\r\n var now = perf.now() + perf.timing.navigationStart;\r\n // Known issue with IE where this calculation can be negative, so if it is then ignore and fallback\r\n if (now > 0) {\r\n return now;\r\n }\r\n }\r\n return dateNow();\r\n}\r\nexport function dateTimeUtilsDuration(start, end) {\r\n var result = null;\r\n if (start !== 0 && end !== 0 && !isNullOrUndefined(start) && !isNullOrUndefined(end)) {\r\n result = end - start;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext from an optional telemetryTrace\r\n * @param telemetryTrace - The telemetryTrace instance that is being wrapped\r\n * @param parentCtx - An optional parent distributed trace instance, almost always undefined as this scenario is only used in the case of multiple property handlers.\r\n * @returns A new IDistributedTraceContext instance that is backed by the telemetryTrace or temporary object\r\n */\r\nexport function createDistributedTraceContextFromTrace(telemetryTrace, parentCtx) {\r\n var trace = telemetryTrace || {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace.traceID;\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace.traceID = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace.parentID;\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace.parentID = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace.traceFlags;\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace.traceFlags = newTraceFlags;\r\n }\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { msToTimeSpan } from \"../HelperFuncs\";\r\nimport { AjaxHelperParseDependencyPath } from \"../Util\";\r\nimport { _DYN_DURATION, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_PROPERTIES } from \"../__DynamicConstants\";\r\nimport { dataSanitizeMeasurements, dataSanitizeProperties, dataSanitizeString, dataSanitizeUrl } from \"./Common/DataSanitizer\";\r\nvar RemoteDependencyData = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the RemoteDependencyData object\r\n */\r\n function RemoteDependencyData(logger, id, absoluteUrl, commandName, value, success, resultCode, method, requestAPI, correlationContext, properties, measurements) {\r\n if (requestAPI === void 0) { requestAPI = \"Ajax\"; }\r\n this.aiDataContract = {\r\n id: 1 /* FieldType.Required */,\r\n ver: 1 /* FieldType.Required */,\r\n name: 0 /* FieldType.Default */,\r\n resultCode: 0 /* FieldType.Default */,\r\n duration: 0 /* FieldType.Default */,\r\n success: 0 /* FieldType.Default */,\r\n data: 0 /* FieldType.Default */,\r\n target: 0 /* FieldType.Default */,\r\n type: 0 /* FieldType.Default */,\r\n properties: 0 /* FieldType.Default */,\r\n measurements: 0 /* FieldType.Default */,\r\n kind: 0 /* FieldType.Default */,\r\n value: 0 /* FieldType.Default */,\r\n count: 0 /* FieldType.Default */,\r\n min: 0 /* FieldType.Default */,\r\n max: 0 /* FieldType.Default */,\r\n stdDev: 0 /* FieldType.Default */,\r\n dependencyKind: 0 /* FieldType.Default */,\r\n dependencySource: 0 /* FieldType.Default */,\r\n commandName: 0 /* FieldType.Default */,\r\n dependencyTypeName: 0 /* FieldType.Default */\r\n };\r\n var _self = this;\r\n _self.ver = 2;\r\n _self.id = id;\r\n _self[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(value);\r\n _self.success = success;\r\n _self.resultCode = resultCode + \"\";\r\n _self.type = dataSanitizeString(logger, requestAPI);\r\n var dependencyFields = AjaxHelperParseDependencyPath(logger, absoluteUrl, method, commandName);\r\n _self.data = dataSanitizeUrl(logger, commandName) || dependencyFields.data; // get a value from hosturl if commandName not available\r\n _self.target = dataSanitizeString(logger, dependencyFields.target);\r\n if (correlationContext) {\r\n _self.target = \"\".concat(_self.target, \" | \").concat(correlationContext);\r\n }\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, dependencyFields[_DYN_NAME /* @min:%2ename */]);\r\n _self[_DYN_PROPERTIES /* @min:%2eproperties */] = dataSanitizeProperties(logger, properties);\r\n _self[_DYN_MEASUREMENTS /* @min:%2emeasurements */] = dataSanitizeMeasurements(logger, measurements);\r\n }\r\n RemoteDependencyData.envelopeType = \"Microsoft.ApplicationInsights.{0}.RemoteDependency\";\r\n RemoteDependencyData.dataType = \"RemoteDependencyData\";\r\n return RemoteDependencyData;\r\n}());\r\nexport { RemoteDependencyData };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { getDocument, isFunction } from \"@microsoft/applicationinsights-core-js\";\r\nexport function createDomEvent(eventName) {\r\n var event = null;\r\n if (isFunction(Event)) { // Use Event constructor when available\r\n event = new Event(eventName);\r\n }\r\n else { // Event has no constructor in IE\r\n var doc = getDocument();\r\n if (doc && doc.createEvent) {\r\n event = doc.createEvent(\"Event\");\r\n event.initEvent(eventName, true, true);\r\n }\r\n }\r\n return event;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { asString, isBoolean, isFunction, isNullOrUndefined, isString } from \"@nevware21/ts-utils\";\r\nimport { STR_EMPTY } from \"../JavaScriptSDK/InternalConstants\";\r\nimport { _DYN_BLK_VAL, _DYN_TO_LOWER_CASE } from \"../__DynamicConstants\";\r\n/**\r\n * @internal\r\n * @ignore\r\n * @param str\r\n * @param defaultValue\r\n * @returns\r\n */\r\nfunction _stringToBoolOrDefault(theValue, defaultValue, theConfig) {\r\n if (!theValue && isNullOrUndefined(theValue)) {\r\n return defaultValue;\r\n }\r\n if (isBoolean(theValue)) {\r\n return theValue;\r\n }\r\n return asString(theValue)[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"true\";\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the field defined as an object\r\n * that should be merged\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfMerge(defaultValue) {\r\n return {\r\n mrg: true,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field set function\r\n * @param setter - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfSet(setter, defaultValue) {\r\n return {\r\n set: setter,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance with the provided field validator\r\n * @param validator - The IConfigCheckFn function to validate the user provided value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfValidate(validator, defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n isVal: validator,\r\n v: defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate and convert the user\r\n * provided value to a boolean from a string or boolean value\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @param fallBackName - The fallback configuration name if the current value is not available\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBoolean(defaultValue, fallBackName) {\r\n return {\r\n fb: fallBackName,\r\n set: _stringToBoolOrDefault,\r\n v: !!defaultValue\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfFunc(defaultValue) {\r\n return {\r\n isVal: isFunction,\r\n v: defaultValue || null\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance that will validate that the user\r\n * provided value is a function.\r\n * @param defaultValue - The default string value to apply it not provided or it's not valid, defaults to an empty string\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfString(defaultValue) {\r\n return {\r\n isVal: isString,\r\n v: asString(defaultValue || STR_EMPTY)\r\n };\r\n}\r\n/**\r\n * Helper which returns an IConfigDefaultCheck instance identifying that value associated with this property\r\n * should not have it's properties converted into a dynamic config properties.\r\n * @param defaultValue - The default value to apply it not provided or it's not valid\r\n * @returns a new IConfigDefaultCheck structure\r\n */\r\nexport function cfgDfBlockPropValue(defaultValue) {\r\n var _a;\r\n return _a = {},\r\n _a[_DYN_BLK_VAL /* @min:blkVal */] = true,\r\n _a.v = defaultValue,\r\n _a;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { arrForEach, arrIndexOf, dumpObj, getDocument, getLazy, getNavigator, isArray, isFunction, isNullOrUndefined, isString, isTruthy, isUndefined, objForEachKey, strEndsWith, strIndexOf, strLeft, strSubstring, strTrim, utcNow } from \"@nevware21/ts-utils\";\r\nimport { cfgDfMerge } from \"../Config/ConfigDefaultHelpers\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ENABLED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROTOCOL, _DYN_SET_DF, _DYN_SPLIT, _DYN_UNLOAD, _DYN_USER_AGENT } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getLocation, isIE } from \"./EnvUtils\";\r\nimport { getExceptionName, isNotNullOrUndefined, setValue, strContains } from \"./HelperFuncs\";\r\nimport { STR_DOMAIN, STR_EMPTY, STR_PATH, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nvar strToGMTString = \"toGMTString\";\r\nvar strToUTCString = \"toUTCString\";\r\nvar strCookie = \"cookie\";\r\nvar strExpires = \"expires\";\r\nvar strIsCookieUseDisabled = \"isCookieUseDisabled\";\r\nvar strDisableCookiesUsage = \"disableCookiesUsage\";\r\nvar strConfigCookieMgr = \"_ckMgr\";\r\nvar _supportsCookies = null;\r\nvar _allowUaSameSite = null;\r\nvar _parsedCookieValue = null;\r\nvar _doc;\r\nvar _cookieCache = {};\r\nvar _globalCookieConfig = {};\r\n// // `isCookieUseDisabled` is deprecated, so explicitly casting as a key of IConfiguration to avoid typing error\r\n// // when both isCookieUseDisabled and disableCookiesUsage are used disableCookiesUsage will take precedent, which is\r\n// // why its listed first\r\n/**\r\n * Set the supported dynamic config values as undefined (or an empty object) so that\r\n * any listeners will be informed of any changes.\r\n * Explicitly NOT including the deprecated `isCookieUseDisabled` as we don't want to support\r\n * the v1 deprecated field as dynamic for updates\r\n */\r\nvar rootDefaultConfig = (_a = {\r\n cookieCfg: cfgDfMerge((_b = {},\r\n _b[STR_DOMAIN] = { fb: \"cookieDomain\", dfVal: isNotNullOrUndefined },\r\n _b.path = { fb: \"cookiePath\", dfVal: isNotNullOrUndefined },\r\n _b.enabled = UNDEFINED_VALUE,\r\n _b.ignoreCookies = UNDEFINED_VALUE,\r\n _b.blockedCookies = UNDEFINED_VALUE,\r\n _b)),\r\n cookieDomain: UNDEFINED_VALUE,\r\n cookiePath: UNDEFINED_VALUE\r\n },\r\n _a[strDisableCookiesUsage] = UNDEFINED_VALUE,\r\n _a);\r\nfunction _getDoc() {\r\n !_doc && (_doc = getLazy(function () { return getDocument(); }));\r\n}\r\n/**\r\n * @ignore\r\n * DO NOT USE or export from the module, this is exposed as public to support backward compatibility of previous static utility methods only.\r\n * If you want to manager cookies either use the ICookieMgr available from the core instance via getCookieMgr() or create\r\n * your own instance of the CookieMgr and use that.\r\n * Using this directly for enabling / disabling cookie handling will not only affect your usage but EVERY user of cookies.\r\n * Example, if you are using a shared component that is also using Application Insights you will affect their cookie handling.\r\n * @param logger - The DiagnosticLogger to use for reporting errors.\r\n */\r\nfunction _gblCookieMgr(config, logger) {\r\n // Stash the global instance against the BaseCookieMgr class\r\n var inst = createCookieMgr[strConfigCookieMgr] || _globalCookieConfig[strConfigCookieMgr];\r\n if (!inst) {\r\n // Note: not using the getSetValue() helper as that would require always creating a temporary cookieMgr\r\n // that ultimately is never used\r\n inst = createCookieMgr[strConfigCookieMgr] = createCookieMgr(config, logger);\r\n _globalCookieConfig[strConfigCookieMgr] = inst;\r\n }\r\n return inst;\r\n}\r\nfunction _isMgrEnabled(cookieMgr) {\r\n if (cookieMgr) {\r\n return cookieMgr.isEnabled();\r\n }\r\n return true;\r\n}\r\nfunction _isIgnoredCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.ignoreCookies)) {\r\n return arrIndexOf(cookieMgrCfg.ignoreCookies, name) !== -1;\r\n }\r\n return false;\r\n}\r\nfunction _isBlockedCookie(cookieMgrCfg, name) {\r\n if (name && cookieMgrCfg && isArray(cookieMgrCfg.blockedCookies)) {\r\n if (arrIndexOf(cookieMgrCfg.blockedCookies, name) !== -1) {\r\n return true;\r\n }\r\n }\r\n return _isIgnoredCookie(cookieMgrCfg, name);\r\n}\r\nfunction _isCfgEnabled(rootConfig, cookieMgrConfig) {\r\n var isCfgEnabled = cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */];\r\n if (isNullOrUndefined(isCfgEnabled)) {\r\n // Set the enabled from the provided setting or the legacy root values\r\n var cookieEnabled = void 0;\r\n // This field is deprecated and dynamic updates will not be fully supported\r\n if (!isUndefined(rootConfig[strIsCookieUseDisabled])) {\r\n cookieEnabled = !rootConfig[strIsCookieUseDisabled];\r\n }\r\n // If this value is defined it takes precedent over the above\r\n if (!isUndefined(rootConfig[strDisableCookiesUsage])) {\r\n cookieEnabled = !rootConfig[strDisableCookiesUsage];\r\n }\r\n // Not setting the cookieMgrConfig.enabled as that will update (set) the global dynamic config\r\n // So future \"updates\" then may not be as expected\r\n isCfgEnabled = cookieEnabled;\r\n }\r\n return isCfgEnabled;\r\n}\r\n/**\r\n * Helper to return the ICookieMgr from the core (if not null/undefined) or a default implementation\r\n * associated with the configuration or a legacy default.\r\n * @param core\r\n * @param config\r\n * @returns\r\n */\r\nexport function safeGetCookieMgr(core, config) {\r\n var cookieMgr;\r\n if (core) {\r\n // Always returns an instance\r\n cookieMgr = core.getCookieMgr();\r\n }\r\n else if (config) {\r\n var cookieCfg = config.cookieCfg;\r\n if (cookieCfg && cookieCfg[strConfigCookieMgr]) {\r\n cookieMgr = cookieCfg[strConfigCookieMgr];\r\n }\r\n else {\r\n cookieMgr = createCookieMgr(config);\r\n }\r\n }\r\n if (!cookieMgr) {\r\n // Get or initialize the default global (legacy) cookie manager if we couldn't find one\r\n cookieMgr = _gblCookieMgr(config, (core || {})[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return cookieMgr;\r\n}\r\nexport function createCookieMgr(rootConfig, logger) {\r\n var _a;\r\n var cookieMgrConfig;\r\n var _path;\r\n var _domain;\r\n var unloadHandler;\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n var _enabled;\r\n var _getCookieFn;\r\n var _setCookieFn;\r\n var _delCookieFn;\r\n // Make sure the root config is dynamic as it may be the global config\r\n rootConfig = createDynamicConfig(rootConfig || _globalCookieConfig, null, logger).cfg;\r\n // Will get recalled if the referenced configuration is changed\r\n unloadHandler = onConfigChange(rootConfig, function (details) {\r\n // Make sure the root config has all of the the defaults to the root config to ensure they are dynamic\r\n details[_DYN_SET_DF /* @min:%2esetDf */](details.cfg, rootDefaultConfig);\r\n // Create and apply the defaults to the cookieCfg element\r\n cookieMgrConfig = details.ref(details.cfg, \"cookieCfg\"); // details.setDf(details.cfg.cookieCfg, defaultConfig);\r\n _path = cookieMgrConfig[STR_PATH /* @min:%2epath */] || \"/\";\r\n _domain = cookieMgrConfig[STR_DOMAIN /* @min:%2edomain */];\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false;\r\n _getCookieFn = cookieMgrConfig.getCookie || _getCookieValue;\r\n _setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _delCookieFn = cookieMgrConfig.delCookie || _setCookieValue;\r\n }, logger);\r\n var cookieMgr = (_a = {\r\n isEnabled: function () {\r\n var enabled = _isCfgEnabled(rootConfig, cookieMgrConfig) !== false && _enabled && areCookiesSupported(logger);\r\n // Using an indirect lookup for any global cookie manager to support tree shaking for SDK's\r\n // that don't use the \"applicationinsights-core\" version of the default cookie function\r\n var gblManager = _globalCookieConfig[strConfigCookieMgr];\r\n if (enabled && gblManager && cookieMgr !== gblManager) {\r\n // Make sure the GlobalCookie Manager instance (if not this instance) is also enabled.\r\n // As the global (deprecated) functions may have been called (for backward compatibility)\r\n enabled = _isMgrEnabled(gblManager);\r\n }\r\n return enabled;\r\n },\r\n setEnabled: function (value) {\r\n // Explicitly checking against false, so that setting to undefined will === true\r\n _enabled = value !== false;\r\n cookieMgrConfig[_DYN_ENABLED /* @min:%2eenabled */] = value;\r\n },\r\n set: function (name, value, maxAgeSec, domain, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr) && !_isBlockedCookie(cookieMgrConfig, name)) {\r\n var values = {};\r\n var theValue = strTrim(value || STR_EMPTY);\r\n var idx = strIndexOf(theValue, \";\");\r\n if (idx !== -1) {\r\n theValue = strTrim(strLeft(value, idx));\r\n values = _extractParts(strSubstring(value, idx + 1));\r\n }\r\n // Only update domain if not already present (isUndefined) and the value is truthy (not null, undefined or empty string)\r\n setValue(values, STR_DOMAIN, domain || _domain, isTruthy, isUndefined);\r\n if (!isNullOrUndefined(maxAgeSec)) {\r\n var _isIE = isIE();\r\n if (isUndefined(values[strExpires])) {\r\n var nowMs = utcNow();\r\n // Only add expires if not already present\r\n var expireMs = nowMs + (maxAgeSec * 1000);\r\n // Sanity check, if zero or -ve then ignore\r\n if (expireMs > 0) {\r\n var expiry = new Date();\r\n expiry.setTime(expireMs);\r\n setValue(values, strExpires, _formatDate(expiry, !_isIE ? strToUTCString : strToGMTString) || _formatDate(expiry, _isIE ? strToGMTString : strToUTCString) || STR_EMPTY, isTruthy);\r\n }\r\n }\r\n if (!_isIE) {\r\n // Only replace if not already present\r\n setValue(values, \"max-age\", STR_EMPTY + maxAgeSec, null, isUndefined);\r\n }\r\n }\r\n var location_1 = getLocation();\r\n if (location_1 && location_1[_DYN_PROTOCOL /* @min:%2eprotocol */] === \"https:\") {\r\n setValue(values, \"secure\", null, null, isUndefined);\r\n // Only set same site if not also secure\r\n if (_allowUaSameSite === null) {\r\n _allowUaSameSite = !uaDisallowsSameSiteNone((getNavigator() || {})[_DYN_USER_AGENT /* @min:%2euserAgent */]);\r\n }\r\n if (_allowUaSameSite) {\r\n setValue(values, \"SameSite\", \"None\", null, isUndefined);\r\n }\r\n }\r\n setValue(values, STR_PATH, path || _path, null, isUndefined);\r\n //let setCookieFn = cookieMgrConfig.setCookie || _setCookieValue;\r\n _setCookieFn(name, _formatCookieValue(theValue, values));\r\n result = true;\r\n }\r\n return result;\r\n },\r\n get: function (name) {\r\n var value = STR_EMPTY;\r\n if (_isMgrEnabled(cookieMgr) && !_isIgnoredCookie(cookieMgrConfig, name)) {\r\n value = _getCookieFn(name);\r\n }\r\n return value;\r\n },\r\n del: function (name, path) {\r\n var result = false;\r\n if (_isMgrEnabled(cookieMgr)) {\r\n // Only remove the cookie if the manager and cookie support has not been disabled\r\n result = cookieMgr.purge(name, path);\r\n }\r\n return result;\r\n },\r\n purge: function (name, path) {\r\n var _a;\r\n var result = false;\r\n if (areCookiesSupported(logger)) {\r\n // Setting the expiration date in the past immediately removes the cookie\r\n var values = (_a = {},\r\n _a[STR_PATH] = path ? path : \"/\",\r\n _a[strExpires] = \"Thu, 01 Jan 1970 00:00:01 GMT\",\r\n _a);\r\n if (!isIE()) {\r\n // Set max age to expire now\r\n values[\"max-age\"] = \"0\";\r\n }\r\n // let delCookie = cookieMgrConfig.delCookie || _setCookieValue;\r\n _delCookieFn(name, _formatCookieValue(STR_EMPTY, values));\r\n result = true;\r\n }\r\n return result;\r\n }\r\n },\r\n _a[_DYN_UNLOAD /* @min:unload */] = function (isAsync) {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n },\r\n _a);\r\n // Associated this cookie manager with the config\r\n cookieMgr[strConfigCookieMgr] = cookieMgr;\r\n return cookieMgr;\r\n}\r\n/*\r\n* Helper method to tell if document.cookie object is supported by the runtime\r\n*/\r\nexport function areCookiesSupported(logger) {\r\n if (_supportsCookies === null) {\r\n _supportsCookies = false;\r\n !_doc && _getDoc();\r\n try {\r\n var doc = _doc.v || {};\r\n _supportsCookies = doc[strCookie] !== undefined;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 68 /* _eInternalMessageId.CannotAccessCookie */, \"Cannot access document.cookie - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return _supportsCookies;\r\n}\r\nfunction _extractParts(theValue) {\r\n var values = {};\r\n if (theValue && theValue[_DYN_LENGTH /* @min:%2elength */]) {\r\n var parts = strTrim(theValue)[_DYN_SPLIT /* @min:%2esplit */](\";\");\r\n arrForEach(parts, function (thePart) {\r\n thePart = strTrim(thePart || STR_EMPTY);\r\n if (thePart) {\r\n var idx = strIndexOf(thePart, \"=\");\r\n if (idx === -1) {\r\n values[thePart] = null;\r\n }\r\n else {\r\n values[strTrim(strLeft(thePart, idx))] = strTrim(strSubstring(thePart, idx + 1));\r\n }\r\n }\r\n });\r\n }\r\n return values;\r\n}\r\nfunction _formatDate(theDate, func) {\r\n if (isFunction(theDate[func])) {\r\n return theDate[func]();\r\n }\r\n return null;\r\n}\r\nfunction _formatCookieValue(value, values) {\r\n var cookieValue = value || STR_EMPTY;\r\n objForEachKey(values, function (name, theValue) {\r\n cookieValue += \"; \" + name + (!isNullOrUndefined(theValue) ? \"=\" + theValue : STR_EMPTY);\r\n });\r\n return cookieValue;\r\n}\r\nfunction _getCookieValue(name) {\r\n var cookieValue = STR_EMPTY;\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n var theCookie = _doc.v[strCookie] || STR_EMPTY;\r\n if (_parsedCookieValue !== theCookie) {\r\n _cookieCache = _extractParts(theCookie);\r\n _parsedCookieValue = theCookie;\r\n }\r\n cookieValue = strTrim(_cookieCache[name] || STR_EMPTY);\r\n }\r\n return cookieValue;\r\n}\r\nfunction _setCookieValue(name, cookieValue) {\r\n !_doc && _getDoc();\r\n if (_doc.v) {\r\n _doc.v[strCookie] = name + \"=\" + cookieValue;\r\n }\r\n}\r\nexport function uaDisallowsSameSiteNone(userAgent) {\r\n if (!isString(userAgent)) {\r\n return false;\r\n }\r\n // Cover all iOS based browsers here. This includes:\r\n // - Safari on iOS 12 for iPhone, iPod Touch, iPad\r\n // - WkWebview on iOS 12 for iPhone, iPod Touch, iPad\r\n // - Chrome on iOS 12 for iPhone, iPod Touch, iPad\r\n // All of which are broken by SameSite=None, because they use the iOS networking stack\r\n if (strContains(userAgent, \"CPU iPhone OS 12\") || strContains(userAgent, \"iPad; CPU OS 12\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X based browsers that use the Mac OS networking stack. This includes:\r\n // - Safari on Mac OS X\r\n // This does not include:\r\n // - Internal browser on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strContains(userAgent, \"Version/\") && strContains(userAgent, \"Safari\")) {\r\n return true;\r\n }\r\n // Cover Mac OS X internal browsers that use the Mac OS networking stack. This includes:\r\n // - Internal browser on Mac OS X\r\n // This does not include:\r\n // - Safari on Mac OS X\r\n // - Chrome on Mac OS X\r\n // - Chromium on Mac OS X\r\n // Because they do not use the Mac OS networking stack.\r\n if (strContains(userAgent, \"Macintosh; Intel Mac OS X 10_14\") && strEndsWith(userAgent, \"AppleWebKit/605.1.15 (KHTML, like Gecko)\")) {\r\n return true;\r\n }\r\n // Cover Chrome 50-69, because some versions are broken by SameSite=None, and none in this range require it.\r\n // Note: this covers some pre-Chromium Edge versions, but pre-Chromim Edge does not require SameSite=None, so this is fine.\r\n // Note: this regex applies to Windows, Mac OS X, and Linux, deliberately.\r\n if (strContains(userAgent, \"Chrome/5\") || strContains(userAgent, \"Chrome/6\")) {\r\n return true;\r\n }\r\n // Unreal Engine runs Chromium 59, but does not advertise as Chrome until 4.23. Treat versions of Unreal\r\n // that don't specify their Chrome version as lacking support for SameSite=None.\r\n if (strContains(userAgent, \"UnrealEngine\") && !strContains(userAgent, \"Chrome\")) {\r\n return true;\r\n }\r\n // UCBrowser < 12.13.2 ignores Set-Cookie headers with SameSite=None\r\n // NB: this rule isn't complete - you need regex to make a complete rule.\r\n // See: https://www.chromium.org/updates/same-site/incompatible-clients\r\n if (strContains(userAgent, \"UCBrowser/12\") || strContains(userAgent, \"UCBrowser/11\")) {\r\n return true;\r\n }\r\n return false;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, arrIndexOf, getDocument, getWindow, isArray, objForEachKey, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_HANDLER, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_REPLACE, _DYN_SPLICE, _DYN_SPLIT, _DYN_TYPE } from \"../__DynamicConstants\";\r\nimport { createElmNodeData, createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { STR_EMPTY } from \"./InternalConstants\";\r\n// Added to help with minfication\r\nvar strOnPrefix = \"on\";\r\nvar strAttachEvent = \"attachEvent\";\r\nvar strAddEventHelper = \"addEventListener\";\r\nvar strDetachEvent = \"detachEvent\";\r\nvar strRemoveEventListener = \"removeEventListener\";\r\nvar strEvents = \"events\";\r\nvar strVisibilityChangeEvt = \"visibilitychange\";\r\nvar strPageHide = \"pagehide\";\r\nvar strPageShow = \"pageshow\";\r\nvar strUnload = \"unload\";\r\nvar strBeforeUnload = \"beforeunload\";\r\nvar strPageHideNamespace = createUniqueNamespace(\"aiEvtPageHide\");\r\nvar strPageShowNamespace = createUniqueNamespace(\"aiEvtPageShow\");\r\nvar rRemoveEmptyNs = /\\.[\\.]+/g;\r\nvar rRemoveTrailingEmptyNs = /[\\.]+$/;\r\nvar _guid = 1;\r\nvar elmNodeData = createElmNodeData(\"events\");\r\nvar eventNamespace = /^([^.]*)(?:\\.(.+)|)/;\r\nfunction _normalizeNamespace(name) {\r\n if (name && name[_DYN_REPLACE /* @min:%2ereplace */]) {\r\n return name[_DYN_REPLACE /* @min:%2ereplace */](/^[\\s\\.]+|(?=[\\s\\.])[\\.\\s]+$/g, STR_EMPTY);\r\n }\r\n return name;\r\n}\r\nfunction _getEvtNamespace(eventName, evtNamespace) {\r\n var _a;\r\n if (evtNamespace) {\r\n var theNamespace_1 = STR_EMPTY;\r\n if (isArray(evtNamespace)) {\r\n theNamespace_1 = STR_EMPTY;\r\n arrForEach(evtNamespace, function (name) {\r\n name = _normalizeNamespace(name);\r\n if (name) {\r\n if (name[0] !== \".\") {\r\n name = \".\" + name;\r\n }\r\n theNamespace_1 += name;\r\n }\r\n });\r\n }\r\n else {\r\n theNamespace_1 = _normalizeNamespace(evtNamespace);\r\n }\r\n if (theNamespace_1) {\r\n if (theNamespace_1[0] !== \".\") {\r\n theNamespace_1 = \".\" + theNamespace_1;\r\n }\r\n // We may only have the namespace and not an eventName\r\n eventName = (eventName || STR_EMPTY) + theNamespace_1;\r\n }\r\n }\r\n var parsedEvent = (eventNamespace.exec(eventName || STR_EMPTY) || []);\r\n return _a = {},\r\n _a[_DYN_TYPE /* @min:type */] = parsedEvent[1],\r\n _a.ns = ((parsedEvent[2] || STR_EMPTY).replace(rRemoveEmptyNs, \".\").replace(rRemoveTrailingEmptyNs, STR_EMPTY)[_DYN_SPLIT /* @min:%2esplit */](\".\").sort()).join(\".\"),\r\n _a;\r\n}\r\n/**\r\n * Get all of the registered events on the target object, this is primarily used for testing cleanup but may also be used by\r\n * applications to remove their own events\r\n * @param target - The EventTarget that has registered events\r\n * @param eventName - [Optional] The name of the event to return the registered handlers and full name (with namespaces)\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n */\r\nexport function __getRegisteredEvents(target, eventName, evtNamespace) {\r\n var theEvents = [];\r\n var eventCache = elmNodeData.get(target, strEvents, {}, false);\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n objForEachKey(eventCache, function (evtType, registeredEvents) {\r\n arrForEach(registeredEvents, function (value) {\r\n var _a;\r\n if (!evtName[_DYN_TYPE /* @min:%2etype */] || evtName[_DYN_TYPE /* @min:%2etype */] === value.evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (!evtName.ns || evtName.ns === evtName.ns) {\r\n theEvents[_DYN_PUSH /* @min:%2epush */]((_a = {},\r\n _a[_DYN_NAME /* @min:name */] = value.evtName[_DYN_TYPE /* @min:%2etype */] + (value.evtName.ns ? \".\" + value.evtName.ns : STR_EMPTY),\r\n _a.handler = value[_DYN_HANDLER /* @min:%2ehandler */],\r\n _a));\r\n }\r\n }\r\n });\r\n });\r\n return theEvents;\r\n}\r\n// Exported for internal unit testing only\r\nfunction _getRegisteredEvents(target, evtName, addDefault) {\r\n if (addDefault === void 0) { addDefault = true; }\r\n var aiEvts = elmNodeData.get(target, strEvents, {}, addDefault);\r\n var registeredEvents = aiEvts[evtName];\r\n if (!registeredEvents) {\r\n registeredEvents = aiEvts[evtName] = [];\r\n }\r\n return registeredEvents;\r\n}\r\nfunction _doDetach(obj, evtName, handlerRef, useCapture) {\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n if (obj[strRemoveEventListener]) {\r\n obj[strRemoveEventListener](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n }\r\n else if (obj[strDetachEvent]) {\r\n obj[strDetachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n }\r\n }\r\n}\r\nfunction _doAttach(obj, evtName, handlerRef, useCapture) {\r\n var result = false;\r\n if (obj && evtName && evtName[_DYN_TYPE /* @min:%2etype */] && handlerRef) {\r\n if (obj[strAddEventHelper]) {\r\n // all browsers except IE before version 9\r\n obj[strAddEventHelper](evtName[_DYN_TYPE /* @min:%2etype */], handlerRef, useCapture);\r\n result = true;\r\n }\r\n else if (obj[strAttachEvent]) {\r\n // IE before version 9\r\n obj[strAttachEvent](strOnPrefix + evtName[_DYN_TYPE /* @min:%2etype */], handlerRef);\r\n result = true;\r\n }\r\n }\r\n return result;\r\n}\r\nfunction _doUnregister(target, events, evtName, unRegFn) {\r\n var idx = events[_DYN_LENGTH /* @min:%2elength */];\r\n while (idx--) {\r\n var theEvent = events[idx];\r\n if (theEvent) {\r\n if (!evtName.ns || evtName.ns === theEvent.evtName.ns) {\r\n if (!unRegFn || unRegFn(theEvent)) {\r\n _doDetach(target, theEvent.evtName, theEvent[_DYN_HANDLER /* @min:%2ehandler */], theEvent.capture);\r\n // Remove the registered event\r\n events[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n }\r\n }\r\n }\r\n }\r\n}\r\nfunction _unregisterEvents(target, evtName, unRegFn) {\r\n if (evtName[_DYN_TYPE /* @min:%2etype */]) {\r\n _doUnregister(target, _getRegisteredEvents(target, evtName[_DYN_TYPE /* @min:%2etype */]), evtName, unRegFn);\r\n }\r\n else {\r\n var eventCache = elmNodeData.get(target, strEvents, {});\r\n objForEachKey(eventCache, function (evtType, events) {\r\n _doUnregister(target, events, evtName, unRegFn);\r\n });\r\n // Cleanup\r\n if (objKeys(eventCache)[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n elmNodeData.kill(target, strEvents);\r\n }\r\n }\r\n}\r\nexport function mergeEvtNamespace(theNamespace, namespaces) {\r\n var newNamespaces;\r\n if (namespaces) {\r\n if (isArray(namespaces)) {\r\n newNamespaces = [theNamespace].concat(namespaces);\r\n }\r\n else {\r\n newNamespaces = [theNamespace, namespaces];\r\n }\r\n // resort the namespaces so they are always in order\r\n newNamespaces = (_getEvtNamespace(\"xx\", newNamespaces).ns)[_DYN_SPLIT /* @min:%2esplit */](\".\");\r\n }\r\n else {\r\n newNamespaces = theNamespace;\r\n }\r\n return newNamespaces;\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventName - String that specifies any of the standard DHTML Events without \"on\" prefix, if may also include an optional (dot \".\" prefixed)\r\n * namespaces \"click\" \"click.mynamespace\" in addition to specific namespaces.\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function eventOn(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n var _a;\r\n if (useCapture === void 0) { useCapture = false; }\r\n var result = false;\r\n if (target) {\r\n try {\r\n var evtName = _getEvtNamespace(eventName, evtNamespace);\r\n result = _doAttach(target, evtName, handlerRef, useCapture);\r\n if (result && elmNodeData.accept(target)) {\r\n var registeredEvent = (_a = {\r\n guid: _guid++,\r\n evtName: evtName\r\n },\r\n _a[_DYN_HANDLER /* @min:handler */] = handlerRef,\r\n _a.capture = useCapture,\r\n _a);\r\n _getRegisteredEvents(target, evtName.type)[_DYN_PUSH /* @min:%2epush */](registeredEvent);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Additional namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace,\r\n * if the eventName also includes a namespace the namespace(s) are merged into a single namespace\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function eventOff(target, eventName, handlerRef, evtNamespace, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n if (target) {\r\n try {\r\n var evtName_1 = _getEvtNamespace(eventName, evtNamespace);\r\n var found_1 = false;\r\n _unregisterEvents(target, evtName_1, function (regEvent) {\r\n if ((evtName_1.ns && !handlerRef) || regEvent[_DYN_HANDLER /* @min:%2ehandler */] === handlerRef) {\r\n found_1 = true;\r\n return true;\r\n }\r\n return false;\r\n });\r\n if (!found_1) {\r\n // fallback to try and remove as requested\r\n _doDetach(target, evtName_1, handlerRef, useCapture);\r\n }\r\n }\r\n catch (e) {\r\n // Just Ignore any error so that we don't break any execution path\r\n }\r\n }\r\n}\r\n/**\r\n * Binds the specified function to an event, so that the function gets called whenever the event fires on the object\r\n * @param obj - Object to add the event too.\r\n * @param eventNameWithoutOn - String that specifies any of the standard DHTML Events without \"on\" prefix and optional (dot \".\" prefixed) namespaces \"click\" \"click.mynamespace\".\r\n * @param handlerRef - Pointer that specifies the function to call when event fires\r\n * @param useCapture - [Optional] Defaults to false\r\n * @returns True if the function was bound successfully to the event, otherwise false\r\n */\r\nexport function attachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n return eventOn(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Removes an event handler for the specified event\r\n * @param Object - to remove the event from\r\n * @param eventNameWithoutOn - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param handlerRef - {any} - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param useCapture - [Optional] Defaults to false\r\n */\r\nexport function detachEvent(obj, eventNameWithoutOn, handlerRef, useCapture) {\r\n if (useCapture === void 0) { useCapture = false; }\r\n eventOff(obj, eventNameWithoutOn, handlerRef, null, useCapture);\r\n}\r\n/**\r\n * Trys to add an event handler for the specified event to the window, body and document\r\n * @param eventName - {string} - The name of the event\r\n * @param callback - {any} - The callback function that needs to be executed for the given event\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @return {boolean} - true if the handler was successfully added\r\n */\r\nexport function addEventHandler(eventName, callback, evtNamespace) {\r\n var result = false;\r\n var w = getWindow();\r\n if (w) {\r\n result = eventOn(w, eventName, callback, evtNamespace);\r\n result = eventOn(w[\"body\"], eventName, callback, evtNamespace) || result;\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n result = eventOn(doc, eventName, callback, evtNamespace) || result;\r\n }\r\n return result;\r\n}\r\n/**\r\n * Trys to remove event handler(s) for the specified event/namespace to the window, body and document\r\n * @param eventName - {string} - The name of the event, with optional namespaces or just the namespaces,\r\n * such as \"click\", \"click.mynamespace\" or \".mynamespace\"\r\n * @param callback - {any} - - The callback function that needs to be removed from the given event, when using a\r\n * namespace (with or without a qualifying event) this may be null to remove all previously attached event handlers\r\n * otherwise this will only remove events with this specific handler.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventHandler(eventName, callback, evtNamespace) {\r\n var w = getWindow();\r\n if (w) {\r\n eventOff(w, eventName, callback, evtNamespace);\r\n eventOff(w[\"body\"], eventName, callback, evtNamespace);\r\n }\r\n var doc = getDocument();\r\n if (doc) {\r\n eventOff(doc, eventName, callback, evtNamespace);\r\n }\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nfunction _addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && events[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n if (!excludeEvents || arrIndexOf(excludeEvents, name) === -1) {\r\n added = addEventHandler(name, listener, evtNamespace) || added;\r\n }\r\n }\r\n });\r\n }\r\n return added;\r\n}\r\n/**\r\n * Bind the listener to the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addEventListeners(events, listener, excludeEvents, evtNamespace) {\r\n var added = false;\r\n if (listener && events && isArray(events)) {\r\n added = _addEventListeners(events, listener, excludeEvents, evtNamespace);\r\n if (!added && excludeEvents && excludeEvents[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Failed to add any listeners and we excluded some, so just attempt to add the excluded events\r\n added = _addEventListeners(events, listener, null, evtNamespace);\r\n }\r\n }\r\n return added;\r\n}\r\n/**\r\n * Remove the listener from the array of events\r\n * @param events - An string array of event names to bind the listener to\r\n * @param listener - The event callback to call when the event is triggered\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n */\r\nexport function removeEventListeners(events, listener, evtNamespace) {\r\n if (events && isArray(events)) {\r\n arrForEach(events, function (name) {\r\n if (name) {\r\n removeEventHandler(name, listener, evtNamespace);\r\n }\r\n });\r\n }\r\n}\r\n/**\r\n * Listen to the 'beforeunload', 'unload' and 'pagehide' events which indicates a page unload is occurring,\r\n * this does NOT listen to the 'visibilitychange' event as while it does indicate that the page is being hidden\r\n * it does not *necessarily* mean that the page is being completely unloaded, it can mean that the user is\r\n * just navigating to a different Tab and may come back (without unloading the page). As such you may also\r\n * need to listen to the 'addPageHideEventListener' and 'addPageShowEventListener' events.\r\n * @param listener - The event callback to call when a page unload event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked, unless no other events can be.\r\n * @param evtNamespace - [Optional] Namespace(s) to append to the event listeners so they can be uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageUnloadEventListener(listener, excludeEvents, evtNamespace) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n return addEventListeners([strBeforeUnload, strUnload, strPageHide], listener, excludeEvents, evtNamespace);\r\n}\r\n/**\r\n * Remove any matching 'beforeunload', 'unload' and 'pagehide' events that may have been added via addEventListener,\r\n * addEventListeners, addPageUnloadEventListener or addPageHideEventListener.\r\n * @param listener - The specific event callback to to be removed\r\n * @param evtNamespace - [Optional] Namespace(s) uniquely identified and removed based on this namespace.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function removePageUnloadEventListener(listener, evtNamespace) {\r\n removeEventListeners([strBeforeUnload, strUnload, strPageHide], listener, evtNamespace);\r\n}\r\n/**\r\n * Listen to the pagehide and visibility changing to 'hidden' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page hide event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional] A Namespace to append to the event listeners so they can be uniquely identified and removed\r\n * based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageHideEventListener\" can remove these events.\r\n * Suggestion: pass as true if you are also calling addPageUnloadEventListener as that also hooks pagehide\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageHideEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"hidden\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n var pageUnloadAdded = _addEventListeners([strPageHide], listener, excludeEvents, newNamespaces);\r\n if (!excludeEvents || arrIndexOf(excludeEvents, strVisibilityChangeEvt) === -1) {\r\n pageUnloadAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageUnloadAdded;\r\n }\r\n if (!pageUnloadAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageUnloadAdded = addPageHideEventListener(listener, null, evtNamespace);\r\n }\r\n return pageUnloadAdded;\r\n}\r\n/**\r\n * Removes the pageHide event listeners added by addPageHideEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageHideEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageHideEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pagehide\"\r\n var newNamespaces = mergeEvtNamespace(strPageHideNamespace, evtNamespace);\r\n removeEventListeners([strPageHide], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n/**\r\n * Listen to the pageshow and visibility changing to 'visible' events, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when if you plan to call\r\n * removePageShowEventListener as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The event callback to call when a page is show event is triggered\r\n * @param excludeEvents - [Optional] An array of events that should not be hooked (if possible), unless no other events can be.\r\n * @param evtNamespace - [Optional/Recommended] A Namespace to append to the event listeners so they can be uniquely\r\n * identified and removed based on this namespace. This call also adds an additional unique \"pageshow\" namespace to the events\r\n * so that only the matching \"removePageShowEventListener\" can remove these events.\r\n * @returns true - when at least one of the events was registered otherwise false\r\n */\r\nexport function addPageShowEventListener(listener, excludeEvents, evtNamespace) {\r\n function _handlePageVisibility(evt) {\r\n var doc = getDocument();\r\n if (listener && doc && doc.visibilityState === \"visible\") {\r\n listener(evt);\r\n }\r\n }\r\n // add the unique page show namespace to any provided namespace so we can only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n var pageShowAdded = _addEventListeners([strPageShow], listener, excludeEvents, newNamespaces);\r\n pageShowAdded = _addEventListeners([strVisibilityChangeEvt], _handlePageVisibility, excludeEvents, newNamespaces) || pageShowAdded;\r\n if (!pageShowAdded && excludeEvents) {\r\n // Failed to add any listeners and we where requested to exclude some, so just call again without excluding anything\r\n pageShowAdded = addPageShowEventListener(listener, null, evtNamespace);\r\n }\r\n return pageShowAdded;\r\n}\r\n/**\r\n * Removes the pageShow event listeners added by addPageShowEventListener, because the 'visibilitychange' uses\r\n * an internal proxy to detect the visibility state you SHOULD use a unique namespace when calling addPageShowEventListener\r\n * as the remove ignores the listener argument for the 'visibilitychange' event.\r\n * @param listener - The specific listener to remove for the 'pageshow' event only (ignored for 'visibilitychange')\r\n * @param evtNamespace - The unique namespace used when calling addPageShowEventListener\r\n */\r\nexport function removePageShowEventListener(listener, evtNamespace) {\r\n // add the unique page show namespace to any provided namespace so we only remove the ones added by \"pageshow\"\r\n var newNamespaces = mergeEvtNamespace(strPageShowNamespace, evtNamespace);\r\n removeEventListeners([strPageShow], listener, newNamespaces);\r\n removeEventListeners([strVisibilityChangeEvt], null, newNamespaces);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isArray, isFunction, objDefine, utcNow } from \"@nevware21/ts-utils\";\r\nimport { _DYN_COMPLETE, _DYN_GET_CTX, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_CTX, _DYN_TIME } from \"../__DynamicConstants\";\r\nimport { STR_GET_PERF_MGR, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar strExecutionContextKey = \"ctx\";\r\nvar strParentContextKey = \"ParentContextKey\";\r\nvar strChildrenContextKey = \"ChildrenContextKey\";\r\nvar _defaultPerfManager = null;\r\nvar PerfEvent = /** @class */ (function () {\r\n function PerfEvent(name, payloadDetails, isAsync) {\r\n var _self = this;\r\n _self.start = utcNow();\r\n _self[_DYN_NAME /* @min:%2ename */] = name;\r\n _self[_DYN_IS_ASYNC /* @min:%2eisAsync */] = isAsync;\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return false; };\r\n if (isFunction(payloadDetails)) {\r\n // Create an accessor to minimize the potential performance impact of executing the payloadDetails callback\r\n var theDetails_1;\r\n objDefine(_self, \"payload\", {\r\n g: function () {\r\n // Delay the execution of the payloadDetails until needed\r\n if (!theDetails_1 && isFunction(payloadDetails)) {\r\n theDetails_1 = payloadDetails();\r\n // clear it out now so the referenced objects can be garbage collected\r\n payloadDetails = null;\r\n }\r\n return theDetails_1;\r\n }\r\n });\r\n }\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n if (key) {\r\n // The parent and child links are located directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey] || key === PerfEvent[strChildrenContextKey]) {\r\n return _self[key];\r\n }\r\n return (_self[strExecutionContextKey] || {})[key];\r\n }\r\n return null;\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n // Put the parent and child links directly on the object (for better viewing in the DebugPlugin)\r\n if (key === PerfEvent[strParentContextKey]) {\r\n // Simple assumption, if we are setting a parent then we must be a child\r\n if (!_self[key]) {\r\n _self[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */] = function () { return true; };\r\n }\r\n _self[key] = value;\r\n }\r\n else if (key === PerfEvent[strChildrenContextKey]) {\r\n _self[key] = value;\r\n }\r\n else {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n }\r\n };\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () {\r\n var childTime = 0;\r\n var childEvts = _self[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (isArray(childEvts)) {\r\n for (var lp = 0; lp < childEvts[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var childEvt = childEvts[lp];\r\n if (childEvt) {\r\n childTime += childEvt[_DYN_TIME /* @min:%2etime */];\r\n }\r\n }\r\n }\r\n _self[_DYN_TIME /* @min:%2etime */] = utcNow() - _self.start;\r\n _self.exTime = _self[_DYN_TIME /* @min:%2etime */] - childTime;\r\n _self[_DYN_COMPLETE /* @min:%2ecomplete */] = function () { };\r\n };\r\n }\r\n PerfEvent.ParentContextKey = \"parent\";\r\n PerfEvent.ChildrenContextKey = \"childEvts\";\r\n return PerfEvent;\r\n}());\r\nexport { PerfEvent };\r\nvar PerfManager = /** @class */ (function () {\r\n function PerfManager(manager) {\r\n /**\r\n * General bucket used for execution context set and retrieved via setCtx() and getCtx.\r\n * Defined as private so it can be visualized via the DebugPlugin\r\n */\r\n this.ctx = {};\r\n dynamicProto(PerfManager, this, function (_self) {\r\n _self.create = function (src, payloadDetails, isAsync) {\r\n // TODO (@MSNev): at some point we will want to add additional configuration to \"select\" which events to instrument\r\n // for now this is just a simple do everything.\r\n return new PerfEvent(src, payloadDetails, isAsync);\r\n };\r\n _self.fire = function (perfEvent) {\r\n if (perfEvent) {\r\n perfEvent[_DYN_COMPLETE /* @min:%2ecomplete */]();\r\n if (manager && isFunction(manager[STR_PERF_EVENT /* @min:%2eperfEvent */])) {\r\n manager[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n }\r\n };\r\n _self[_DYN_SET_CTX /* @min:%2esetCtx */] = function (key, value) {\r\n if (key) {\r\n var ctx = _self[strExecutionContextKey] = _self[strExecutionContextKey] || {};\r\n ctx[key] = value;\r\n }\r\n };\r\n _self[_DYN_GET_CTX /* @min:%2egetCtx */] = function (key) {\r\n return (_self[strExecutionContextKey] || {})[key];\r\n };\r\n });\r\n }\r\n// Removed Stub for PerfManager.prototype.create.\r\n// Removed Stub for PerfManager.prototype.fire.\r\n// Removed Stub for PerfManager.prototype.setCtx.\r\n// Removed Stub for PerfManager.prototype.getCtx.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PerfManager.__ieDyn=1;\n\n return PerfManager;\r\n}());\r\nexport { PerfManager };\r\nvar doPerfActiveKey = \"CoreUtils.doPerf\";\r\n/**\r\n * Helper function to wrap a function with a perf event\r\n * @param mgrSource - The Performance Manager or a Performance provider source (may be null)\r\n * @param getSource - The callback to create the source name for the event (if perf monitoring is enabled)\r\n * @param func - The function to call and measure\r\n * @param details - A function to return the payload details\r\n * @param isAsync - Is the event / function being call asynchronously or synchronously\r\n */\r\nexport function doPerf(mgrSource, getSource, func, details, isAsync) {\r\n if (mgrSource) {\r\n var perfMgr = mgrSource;\r\n if (perfMgr[STR_GET_PERF_MGR]) {\r\n // Looks like a perf manager provider object\r\n perfMgr = perfMgr[STR_GET_PERF_MGR]();\r\n }\r\n if (perfMgr) {\r\n var perfEvt = void 0;\r\n var currentActive = perfMgr[_DYN_GET_CTX /* @min:%2egetCtx */](doPerfActiveKey);\r\n try {\r\n perfEvt = perfMgr.create(getSource(), details, isAsync);\r\n if (perfEvt) {\r\n if (currentActive && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strParentContextKey], currentActive);\r\n if (currentActive[_DYN_GET_CTX /* @min:%2egetCtx */] && currentActive[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n var children = currentActive[_DYN_GET_CTX /* @min:%2egetCtx */](PerfEvent[strChildrenContextKey]);\r\n if (!children) {\r\n children = [];\r\n currentActive[_DYN_SET_CTX /* @min:%2esetCtx */](PerfEvent[strChildrenContextKey], children);\r\n }\r\n children[_DYN_PUSH /* @min:%2epush */](perfEvt);\r\n }\r\n }\r\n // Set this event as the active event now\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, perfEvt);\r\n return func(perfEvt);\r\n }\r\n }\r\n catch (ex) {\r\n if (perfEvt && perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */]) {\r\n perfEvt[_DYN_SET_CTX /* @min:%2esetCtx */](\"exception\", ex);\r\n }\r\n }\r\n finally {\r\n // fire the perf event\r\n if (perfEvt) {\r\n perfMgr.fire(perfEvt);\r\n }\r\n // Reset the active event to the previous value\r\n perfMgr[_DYN_SET_CTX /* @min:%2esetCtx */](doPerfActiveKey, currentActive);\r\n }\r\n }\r\n }\r\n return func();\r\n}\r\n/**\r\n * Set the global performance manager to use when there is no core instance or it has not been initialized yet.\r\n * @param perfManager - The IPerfManager instance to use when no performance manager is supplied.\r\n */\r\nexport function setGblPerfMgr(perfManager) {\r\n _defaultPerfManager = perfManager;\r\n}\r\n/**\r\n * Get the current global performance manager that will be used with no performance manager is supplied.\r\n * @returns - The current default manager\r\n */\r\nexport function getGblPerfMgr() {\r\n return _defaultPerfManager;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, isFunction } from \"@nevware21/ts-utils\";\r\nimport { _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_INITIALIZE, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SET_NEXT_PLUGIN, _DYN_SPAN_ID, _DYN_TEARDOWN, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { createElmNodeData } from \"./DataCacheHelper\";\r\nimport { STR_CORE, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { isValidSpanId, isValidTraceId } from \"./W3cTraceParent\";\r\nvar pluginStateData = createElmNodeData(\"plugin\");\r\nexport function _getPluginState(plugin) {\r\n return pluginStateData.get(plugin, \"state\", {}, true);\r\n}\r\n/**\r\n * Initialize the queue of plugins\r\n * @param plugins - The array of plugins to initialize and setting of the next plugin\r\n * @param config - The current config for the instance\r\n * @param core - THe current core instance\r\n * @param extensions - The extensions\r\n */\r\nexport function initializePlugins(processContext, extensions) {\r\n // Set the next plugin and identified the uninitialized plugins\r\n var initPlugins = [];\r\n var lastPlugin = null;\r\n var proxy = processContext[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n var pluginState;\r\n while (proxy) {\r\n var thePlugin = proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (thePlugin) {\r\n if (lastPlugin && lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] && thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]) {\r\n // Set this plugin as the next for the previous one\r\n lastPlugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](thePlugin);\r\n }\r\n pluginState = _getPluginState(thePlugin);\r\n var isInitialized = !!pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */];\r\n if (thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]) {\r\n isInitialized = thePlugin[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]();\r\n }\r\n if (!isInitialized) {\r\n initPlugins[_DYN_PUSH /* @min:%2epush */](thePlugin);\r\n }\r\n lastPlugin = thePlugin;\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n }\r\n // Now initialize the plugins\r\n arrForEach(initPlugins, function (thePlugin) {\r\n var core = processContext[STR_CORE /* @min:%2ecore */]();\r\n thePlugin[_DYN_INITIALIZE /* @min:%2einitialize */](processContext.getCfg(), core, extensions, processContext[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n pluginState = _getPluginState(thePlugin);\r\n // Only add the core to the state if the plugin didn't set it (doesn't extend from BaseTelemetryPlugin)\r\n if (!thePlugin[STR_CORE] && !pluginState[STR_CORE]) {\r\n pluginState[STR_CORE] = core;\r\n }\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = true;\r\n delete pluginState[_DYN_TEARDOWN /* @min:%2eteardown */];\r\n });\r\n}\r\nexport function sortPlugins(plugins) {\r\n // Sort by priority\r\n return plugins.sort(function (extA, extB) {\r\n var result = 0;\r\n if (extB) {\r\n var bHasProcess = extB[STR_PROCESS_TELEMETRY];\r\n if (extA[STR_PROCESS_TELEMETRY]) {\r\n result = bHasProcess ? extA[STR_PRIORITY] - extB[STR_PRIORITY] : 1;\r\n }\r\n else if (bHasProcess) {\r\n result = -1;\r\n }\r\n }\r\n else {\r\n result = extA ? 1 : -1;\r\n }\r\n return result;\r\n });\r\n // sort complete\r\n}\r\n/**\r\n * Teardown / Unload helper to perform teardown/unloading operations for the provided components synchronously or asynchronously, this will call any\r\n * _doTeardown() or _doUnload() functions on the provided components to allow them to finish removal.\r\n * @param components - The components you want to unload\r\n * @param unloadCtx - This is the context that should be used during unloading.\r\n * @param unloadState - The details / state of the unload process, it holds details like whether it should be unloaded synchronously or asynchronously and the reason for the unload.\r\n * @param asyncCallback - An optional callback that the plugin must call if it returns true to inform the caller that it has completed any async unload/teardown operations.\r\n * @returns boolean - true if the plugin has or will call asyncCallback, this allows the plugin to perform any asynchronous operations.\r\n */\r\nexport function unloadComponents(components, unloadCtx, unloadState, asyncCallback) {\r\n var idx = 0;\r\n function _doUnload() {\r\n while (idx < components[_DYN_LENGTH /* @min:%2elength */]) {\r\n var component = components[idx++];\r\n if (component) {\r\n var func = component._doUnload || component[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */];\r\n if (isFunction(func)) {\r\n if (func.call(component, unloadCtx, unloadState, _doUnload) === true) {\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n return _doUnload();\r\n}\r\n/**\r\n * Creates a IDistributedTraceContext which optionally also \"sets\" the value on a parent\r\n * @param parentCtx - An optional parent distributed trace instance\r\n * @returns A new IDistributedTraceContext instance that uses an internal temporary object\r\n */\r\nexport function createDistributedTraceContext(parentCtx) {\r\n var trace = {};\r\n return {\r\n getName: function () {\r\n return trace[_DYN_NAME /* @min:%2ename */];\r\n },\r\n setName: function (newValue) {\r\n parentCtx && parentCtx.setName(newValue);\r\n trace[_DYN_NAME /* @min:%2ename */] = newValue;\r\n },\r\n getTraceId: function () {\r\n return trace[_DYN_TRACE_ID /* @min:%2etraceId */];\r\n },\r\n setTraceId: function (newValue) {\r\n parentCtx && parentCtx.setTraceId(newValue);\r\n if (isValidTraceId(newValue)) {\r\n trace[_DYN_TRACE_ID /* @min:%2etraceId */] = newValue;\r\n }\r\n },\r\n getSpanId: function () {\r\n return trace[_DYN_SPAN_ID /* @min:%2espanId */];\r\n },\r\n setSpanId: function (newValue) {\r\n parentCtx && parentCtx.setSpanId(newValue);\r\n if (isValidSpanId(newValue)) {\r\n trace[_DYN_SPAN_ID /* @min:%2espanId */] = newValue;\r\n }\r\n },\r\n getTraceFlags: function () {\r\n return trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n },\r\n setTraceFlags: function (newTraceFlags) {\r\n parentCtx && parentCtx.setTraceFlags(newTraceFlags);\r\n trace[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = newTraceFlags;\r\n }\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nimport { arrForEach, dumpObj, isArray, isFunction, isNullOrUndefined, isUndefined, objForEachKey, objFreeze, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _applyDefaultValue } from \"../Config/ConfigDefaults\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PLUGIN, _DYN_IDENTIFIER, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_LENGTH, _DYN_LOGGER, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_SET_DF, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UNLOAD, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nimport { _throwInternal, safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { proxyFunctions } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_DISABLED, STR_EMPTY, STR_EXTENSION_CONFIG, STR_PRIORITY, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { doPerf } from \"./PerfManager\";\r\nimport { _getPluginState } from \"./TelemetryHelpers\";\r\nvar strTelemetryPluginChain = \"TelemetryPluginChain\";\r\nvar strHasRunFlags = \"_hasRun\";\r\nvar strGetTelCtx = \"_getTelCtx\";\r\nvar _chainId = 0;\r\nfunction _getNextProxyStart(proxy, core, startAt) {\r\n while (proxy) {\r\n if (proxy[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]() === startAt) {\r\n return proxy;\r\n }\r\n proxy = proxy[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n // This wasn't found in the existing chain so create an isolated one with just this plugin\r\n return createTelemetryProxyChain([startAt], core.config || {}, core);\r\n}\r\n/**\r\n * @ignore\r\n * @param telemetryChain\r\n * @param dynamicHandler\r\n * @param core\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n * @returns\r\n */\r\nfunction _createInternalContext(telemetryChain, dynamicHandler, core, startAt) {\r\n // We have a special case where we want to start execution from this specific plugin\r\n // or we simply reuse the existing telemetry plugin chain (normal execution case)\r\n var _nextProxy = null; // By Default set as no next plugin\r\n var _onComplete = [];\r\n if (!dynamicHandler) {\r\n dynamicHandler = createDynamicConfig({}, null, core[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n if (startAt !== null) {\r\n // There is no next element (null) vs not defined (undefined) so use the full chain\r\n _nextProxy = startAt ? _getNextProxyStart(telemetryChain, core, startAt) : telemetryChain;\r\n }\r\n var context = {\r\n _next: _moveNext,\r\n ctx: {\r\n core: function () {\r\n return core;\r\n },\r\n diagLog: function () {\r\n return safeGetLogger(core, dynamicHandler.cfg);\r\n },\r\n getCfg: function () {\r\n return dynamicHandler.cfg;\r\n },\r\n getExtCfg: _resolveExtCfg,\r\n getConfig: _getConfig,\r\n hasNext: function () {\r\n return !!_nextProxy;\r\n },\r\n getNext: function () {\r\n return _nextProxy;\r\n },\r\n setNext: function (nextPlugin) {\r\n _nextProxy = nextPlugin;\r\n },\r\n iterate: _iterateChain,\r\n onComplete: _addOnComplete\r\n }\r\n };\r\n function _addOnComplete(onComplete, that) {\r\n var args = [];\r\n for (var _i = 2; _i < arguments.length; _i++) {\r\n args[_i - 2] = arguments[_i];\r\n }\r\n if (onComplete) {\r\n _onComplete[_DYN_PUSH /* @min:%2epush */]({\r\n func: onComplete,\r\n self: !isUndefined(that) ? that : context.ctx,\r\n args: args\r\n });\r\n }\r\n }\r\n function _moveNext() {\r\n var nextProxy = _nextProxy;\r\n // Automatically move to the next plugin\r\n _nextProxy = nextProxy ? nextProxy[_DYN_GET_NEXT /* @min:%2egetNext */]() : null;\r\n if (!nextProxy) {\r\n var onComplete = _onComplete;\r\n if (onComplete && onComplete[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(onComplete, function (completeDetails) {\r\n try {\r\n completeDetails.func.call(completeDetails.self, completeDetails.args);\r\n }\r\n catch (e) {\r\n _throwInternal(core[_DYN_LOGGER /* @min:%2elogger */], 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected Exception during onComplete - \" + dumpObj(e));\r\n }\r\n });\r\n _onComplete = [];\r\n }\r\n }\r\n return nextProxy;\r\n }\r\n function _getExtCfg(identifier, createIfMissing) {\r\n var idCfg = null;\r\n var cfg = dynamicHandler.cfg;\r\n if (cfg && identifier) {\r\n var extCfg = cfg[STR_EXTENSION_CONFIG /* @min:%2eextensionConfig */];\r\n if (!extCfg && createIfMissing) {\r\n extCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n cfg[STR_EXTENSION_CONFIG] = extCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n extCfg = dynamicHandler.ref(cfg, STR_EXTENSION_CONFIG);\r\n if (extCfg) {\r\n idCfg = extCfg[identifier];\r\n if (!idCfg && createIfMissing) {\r\n idCfg = {};\r\n }\r\n // Always set the value so that the property always exists\r\n extCfg[identifier] = idCfg; // Note: it is valid for the \"value\" to be undefined\r\n // Calling `ref()` has a side effect of causing the referenced property to become dynamic (if not already)\r\n idCfg = dynamicHandler.ref(extCfg, identifier);\r\n }\r\n }\r\n return idCfg;\r\n }\r\n function _resolveExtCfg(identifier, defaultValues) {\r\n var newConfig = _getExtCfg(identifier, true);\r\n if (defaultValues) {\r\n // Enumerate over the defaultValues and if not already populated attempt to\r\n // find a value from the root config or use the default value\r\n objForEachKey(defaultValues, function (field, defaultValue) {\r\n // for each unspecified field, set the default value\r\n if (isNullOrUndefined(newConfig[field])) {\r\n var cfgValue = dynamicHandler.cfg[field];\r\n if (cfgValue || !isNullOrUndefined(cfgValue)) {\r\n newConfig[field] = cfgValue;\r\n }\r\n }\r\n _applyDefaultValue(dynamicHandler, newConfig, field, defaultValue);\r\n });\r\n }\r\n return dynamicHandler[_DYN_SET_DF /* @min:%2esetDf */](newConfig, defaultValues);\r\n }\r\n function _getConfig(identifier, field, defaultValue) {\r\n if (defaultValue === void 0) { defaultValue = false; }\r\n var theValue;\r\n var extConfig = _getExtCfg(identifier, false);\r\n var rootConfig = dynamicHandler.cfg;\r\n if (extConfig && (extConfig[field] || !isNullOrUndefined(extConfig[field]))) {\r\n theValue = extConfig[field];\r\n }\r\n else if (rootConfig[field] || !isNullOrUndefined(rootConfig[field])) {\r\n theValue = rootConfig[field];\r\n }\r\n return (theValue || !isNullOrUndefined(theValue)) ? theValue : defaultValue;\r\n }\r\n function _iterateChain(cb) {\r\n // Keep processing until we reach the end of the chain\r\n var nextPlugin;\r\n while (!!(nextPlugin = context._next())) {\r\n var plugin = nextPlugin[_DYN_GET_PLUGIN /* @min:%2egetPlugin */]();\r\n if (plugin) {\r\n // callback with the current on\r\n cb(plugin);\r\n }\r\n }\r\n }\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryContext(telemetryChain, cfg, core, startAt) {\r\n var config = createDynamicConfig(cfg);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(env) {\r\n var nextPlugin = internalContext._next();\r\n if (nextPlugin) {\r\n // Run the next plugin which will call \"processNext()\"\r\n nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, context);\r\n }\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), config.cfg, core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for handling the unloading of the chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUnloadContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(unloadState) {\r\n var nextPlugin = internalContext._next();\r\n nextPlugin && nextPlugin[_DYN_UNLOAD /* @min:%2eunload */](context, unloadState);\r\n return !nextPlugin;\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUnloadContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain for updating the configuration\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n * @param startAt - Identifies the next plugin to execute, if null there is no \"next\" plugin and if undefined it should assume the start of the chain\r\n */\r\nexport function createProcessTelemetryUpdateContext(telemetryChain, core, startAt) {\r\n var config = createDynamicConfig(core.config);\r\n var internalContext = _createInternalContext(telemetryChain, config, core, startAt);\r\n var context = internalContext.ctx;\r\n function _processNext(updateState) {\r\n return context.iterate(function (plugin) {\r\n if (isFunction(plugin[_DYN_UPDATE /* @min:%2eupdate */])) {\r\n plugin[_DYN_UPDATE /* @min:%2eupdate */](context, updateState);\r\n }\r\n });\r\n }\r\n function _createNew(plugins, startAt) {\r\n if (plugins === void 0) { plugins = null; }\r\n if (isArray(plugins)) {\r\n plugins = createTelemetryProxyChain(plugins, config.cfg, core, startAt);\r\n }\r\n return createProcessTelemetryUpdateContext(plugins || context[_DYN_GET_NEXT /* @min:%2egetNext */](), core, startAt);\r\n }\r\n context[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = _processNext;\r\n context[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = _createNew;\r\n return context;\r\n}\r\n/**\r\n * Creates an execution chain from the array of plugins\r\n * @param plugins - The array of plugins that will be executed in this order\r\n * @param defItemCtx - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n */\r\nexport function createTelemetryProxyChain(plugins, config, core, startAt) {\r\n var firstProxy = null;\r\n var add = startAt ? false : true;\r\n if (isArray(plugins) && plugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // Create the proxies and wire up the next plugin chain\r\n var lastProxy_1 = null;\r\n arrForEach(plugins, function (thePlugin) {\r\n if (!add && startAt === thePlugin) {\r\n add = true;\r\n }\r\n if (add && thePlugin && isFunction(thePlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Only add plugins that are processors\r\n var newProxy = createTelemetryPluginProxy(thePlugin, config, core);\r\n if (!firstProxy) {\r\n firstProxy = newProxy;\r\n }\r\n if (lastProxy_1) {\r\n // Set this new proxy as the next for the previous one\r\n lastProxy_1._setNext(newProxy);\r\n }\r\n lastProxy_1 = newProxy;\r\n }\r\n });\r\n }\r\n if (startAt && !firstProxy) {\r\n // Special case where the \"startAt\" was not in the original list of plugins\r\n return createTelemetryProxyChain([startAt], config, core);\r\n }\r\n return firstProxy;\r\n}\r\n/**\r\n * Create the processing telemetry proxy instance, the proxy is used to abstract the current plugin to allow monitoring and\r\n * execution plugins while passing around the dynamic execution state (IProcessTelemetryContext), the proxy instance no longer\r\n * contains any execution state and can be reused between requests (this was not the case for 2.7.2 and earlier with the\r\n * TelemetryPluginChain class).\r\n * @param plugin - The plugin instance to proxy\r\n * @param config - The default execution context to use when no telemetry context is passed to processTelemetry(), this\r\n * should be for legacy plugins only. Currently, only used for passing the current core instance and to provide better error\r\n * reporting (hasRun) when errors occur.\r\n * @returns\r\n */\r\nexport function createTelemetryPluginProxy(plugin, config, core) {\r\n var nextProxy = null;\r\n var hasProcessTelemetry = isFunction(plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */]);\r\n var hasSetNext = isFunction(plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */]);\r\n var chainId;\r\n if (plugin) {\r\n chainId = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"-\" + plugin[STR_PRIORITY /* @min:%2epriority */] + \"-\" + _chainId++;\r\n }\r\n else {\r\n chainId = \"Unknown-0-\" + _chainId++;\r\n }\r\n var proxyChain = {\r\n getPlugin: function () {\r\n return plugin;\r\n },\r\n getNext: function () {\r\n return nextProxy;\r\n },\r\n processTelemetry: _processTelemetry,\r\n unload: _unloadPlugin,\r\n update: _updatePlugin,\r\n _id: chainId,\r\n _setNext: function (nextPlugin) {\r\n nextProxy = nextPlugin;\r\n }\r\n };\r\n function _getTelCtx() {\r\n var itemCtx;\r\n // Looks like a plugin didn't pass the (optional) context, so create a new one\r\n if (plugin && isFunction(plugin[strGetTelCtx])) {\r\n // This plugin extends from the BaseTelemetryPlugin so lets use it\r\n itemCtx = plugin[strGetTelCtx]();\r\n }\r\n if (!itemCtx) {\r\n // Create a temporary one\r\n itemCtx = createProcessTelemetryContext(proxyChain, config, core);\r\n }\r\n return itemCtx;\r\n }\r\n function _processChain(itemCtx, processPluginFn, name, details, isAsync) {\r\n var hasRun = false;\r\n var identifier = plugin ? plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] : strTelemetryPluginChain;\r\n var hasRunContext = itemCtx[strHasRunFlags];\r\n if (!hasRunContext) {\r\n // Assign and populate\r\n hasRunContext = itemCtx[strHasRunFlags] = {};\r\n }\r\n // Ensure that we keep the context in sync\r\n itemCtx.setNext(nextProxy);\r\n if (plugin) {\r\n doPerf(itemCtx[STR_CORE /* @min:%2ecore */](), function () { return identifier + \":\" + name; }, function () {\r\n // Mark this component as having run\r\n hasRunContext[chainId] = true;\r\n try {\r\n // Set a flag on the next plugin so we know if it was attempted to be executed\r\n var nextId = nextProxy ? nextProxy._id : STR_EMPTY;\r\n if (nextId) {\r\n hasRunContext[nextId] = false;\r\n }\r\n hasRun = processPluginFn(itemCtx);\r\n }\r\n catch (error) {\r\n var hasNextRun = nextProxy ? hasRunContext[nextProxy._id] : true;\r\n if (hasNextRun) {\r\n // The next plugin after us has already run so set this one as complete\r\n hasRun = true;\r\n }\r\n if (!nextProxy || !hasNextRun) {\r\n // Either we have no next plugin or the current one did not attempt to call the next plugin\r\n // Which means the current one is the root of the failure so log/report this failure\r\n _throwInternal(itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 73 /* _eInternalMessageId.PluginException */, \"Plugin [\" + identifier + \"] failed during \" + name + \" - \" + dumpObj(error) + \", run flags: \" + dumpObj(hasRunContext));\r\n }\r\n }\r\n }, details, isAsync);\r\n }\r\n return hasRun;\r\n }\r\n function _processTelemetry(env, itemCtx) {\r\n itemCtx = itemCtx || _getTelCtx();\r\n function _callProcessTelemetry(itemCtx) {\r\n if (!plugin || !hasProcessTelemetry) {\r\n return false;\r\n }\r\n var pluginState = _getPluginState(plugin);\r\n if (pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] || pluginState[STR_DISABLED]) {\r\n return false;\r\n }\r\n // Ensure that we keep the context in sync (for processNext()), just in case a plugin\r\n // doesn't calls processTelemetry() instead of itemContext.processNext() or some\r\n // other form of error occurred\r\n if (hasSetNext) {\r\n // Backward compatibility setting the next plugin on the instance\r\n plugin[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */](nextProxy);\r\n }\r\n plugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, itemCtx);\r\n // Process Telemetry is expected to call itemCtx.processNext() or nextPlugin.processTelemetry()\r\n return true;\r\n }\r\n if (!_processChain(itemCtx, _callProcessTelemetry, \"processTelemetry\", function () { return ({ item: env }); }, !(env.sync))) {\r\n // The underlying plugin is either not defined, not enabled or does not have a processTelemetry implementation\r\n // so we still want the next plugin to be executed.\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n }\r\n function _unloadPlugin(unloadCtx, unloadState) {\r\n function _callTeardown() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only teardown the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === unloadCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n // Handle plugins that don't extend from the BaseTelemetryPlugin\r\n pluginState[STR_CORE /* @min:%2ecore */] = null;\r\n pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] = true;\r\n pluginState[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = false;\r\n if (plugin[_DYN_TEARDOWN /* @min:%2eteardown */] && plugin[_DYN_TEARDOWN /* @min:%2eteardown */](unloadCtx, unloadState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(unloadCtx, _callTeardown, \"unload\", function () { }, unloadState[_DYN_IS_ASYNC /* @min:%2eisAsync */])) {\r\n // Only called if we hasRun was not true\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n }\r\n function _updatePlugin(updateCtx, updateState) {\r\n function _callUpdate() {\r\n // Setting default of hasRun as false so the proxyProcessFn() is called as teardown() doesn't have to exist or call unloadNext().\r\n var hasRun = false;\r\n if (plugin) {\r\n var pluginState = _getPluginState(plugin);\r\n var pluginCore = plugin[STR_CORE] || pluginState[STR_CORE /* @min:%2ecore */];\r\n // Only update the plugin if it was initialized by the current core (i.e. It's not a shared plugin)\r\n if (plugin && (!pluginCore || pluginCore === updateCtx.core()) && !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */]) {\r\n if (plugin[_DYN_UPDATE /* @min:%2eupdate */] && plugin[_DYN_UPDATE /* @min:%2eupdate */](updateCtx, updateState) === true) {\r\n // plugin told us that it was going to (or has) call unloadCtx.processNext()\r\n hasRun = true;\r\n }\r\n }\r\n }\r\n return hasRun;\r\n }\r\n if (!_processChain(updateCtx, _callUpdate, \"update\", function () { }, false)) {\r\n // Only called if we hasRun was not true\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n return objFreeze(proxyChain);\r\n}\r\n/**\r\n * This class will be removed!\r\n * @deprecated use createProcessTelemetryContext() instead\r\n */\r\nvar ProcessTelemetryContext = /** @class */ (function () {\r\n /**\r\n * Creates a new Telemetry Item context with the current config, core and plugin execution chain\r\n * @param plugins - The plugin instances that will be executed\r\n * @param config - The current config\r\n * @param core - The current core instance\r\n */\r\n function ProcessTelemetryContext(pluginChain, config, core, startAt) {\r\n var _self = this;\r\n var context = createProcessTelemetryContext(pluginChain, config, core, startAt);\r\n // Proxy all functions of the context to this object\r\n proxyFunctions(_self, context, objKeys(context));\r\n }\r\n return ProcessTelemetryContext;\r\n}());\r\nexport { ProcessTelemetryContext };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { strShimFunction, strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\nimport { getInst, objHasOwnProperty } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_LENGTH, _DYN_NAME, _DYN_PUSH, _DYN_SPLICE } from \"../__DynamicConstants\";\r\nimport { _getObjProto } from \"./HelperFuncs\";\r\nvar aiInstrumentHooks = \"_aiHooks\";\r\nvar cbNames = [\r\n \"req\", \"rsp\", \"hkErr\", \"fnErr\"\r\n];\r\n/** @ignore */\r\nfunction _arrLoop(arr, fn) {\r\n if (arr) {\r\n for (var lp = 0; lp < arr[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n if (fn(arr[lp], lp)) {\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @ignore */\r\nfunction _doCallbacks(hooks, callDetails, cbArgs, hookCtx, type) {\r\n if (type >= 0 /* CallbackType.Request */ && type <= 2 /* CallbackType.HookError */) {\r\n _arrLoop(hooks, function (hook, idx) {\r\n var cbks = hook.cbks;\r\n var cb = cbks[cbNames[type]];\r\n if (cb) {\r\n // Set the specific hook context implementation using a lazy creation pattern\r\n callDetails.ctx = function () {\r\n var ctx = hookCtx[idx] = (hookCtx[idx] || {});\r\n return ctx;\r\n };\r\n try {\r\n cb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n catch (err) {\r\n var orgEx = callDetails.err;\r\n try {\r\n // Report Hook error via the callback\r\n var hookErrorCb = cbks[cbNames[2 /* CallbackType.HookError */]];\r\n if (hookErrorCb) {\r\n callDetails.err = err;\r\n hookErrorCb[_DYN_APPLY /* @min:%2eapply */](callDetails.inst, cbArgs);\r\n }\r\n }\r\n catch (e) {\r\n // Not much we can do here -- swallowing the exception to avoid crashing the hosting app\r\n }\r\n finally {\r\n // restore the original exception (if any)\r\n callDetails.err = orgEx;\r\n }\r\n }\r\n }\r\n });\r\n }\r\n}\r\n/** @ignore */\r\nfunction _createFunctionHook(aiHook) {\r\n // Define a temporary method that queues-up a the real method call\r\n return function () {\r\n var _a;\r\n var funcThis = this;\r\n // Capture the original arguments passed to the method\r\n var orgArgs = arguments;\r\n var hooks = aiHook.h;\r\n var funcArgs = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = aiHook.n,\r\n _a.inst = funcThis,\r\n _a.ctx = null,\r\n _a.set = _replaceArg,\r\n _a);\r\n var hookCtx = [];\r\n var cbArgs = _createArgs([funcArgs], orgArgs);\r\n funcArgs.evt = getInst(\"event\");\r\n function _createArgs(target, theArgs) {\r\n _arrLoop(theArgs, function (arg) {\r\n target[_DYN_PUSH /* @min:%2epush */](arg);\r\n });\r\n return target;\r\n }\r\n function _replaceArg(idx, value) {\r\n orgArgs = _createArgs([], orgArgs);\r\n orgArgs[idx] = value;\r\n cbArgs = _createArgs([funcArgs], orgArgs);\r\n }\r\n // Call the pre-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 0 /* CallbackType.Request */);\r\n // Call the original function was called\r\n var theFunc = aiHook.f;\r\n if (theFunc) {\r\n try {\r\n funcArgs.rslt = theFunc[_DYN_APPLY /* @min:%2eapply */](funcThis, orgArgs);\r\n }\r\n catch (err) {\r\n // Report the request callback\r\n funcArgs.err = err;\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 3 /* CallbackType.FunctionError */);\r\n // rethrow the original exception so anyone listening for it can catch the exception\r\n throw err;\r\n }\r\n }\r\n // Call the post-request hooks\r\n _doCallbacks(hooks, funcArgs, cbArgs, hookCtx, 1 /* CallbackType.Response */);\r\n return funcArgs.rslt;\r\n };\r\n}\r\n/** @ignore */\r\nfunction _getOwner(target, name, checkPrototype, checkParentProto) {\r\n var owner = null;\r\n if (target) {\r\n if (objHasOwnProperty(target, name)) {\r\n owner = target;\r\n }\r\n else if (checkPrototype) {\r\n owner = _getOwner(_getObjProto(target), name, checkParentProto, false);\r\n }\r\n }\r\n return owner;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProto(target, funcName, callbacks) {\r\n if (target) {\r\n return InstrumentFunc(target[strShimPrototype], funcName, callbacks, false);\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n */\r\nexport function InstrumentProtos(target, funcNames, callbacks) {\r\n if (target) {\r\n return InstrumentFuncs(target[strShimPrototype], funcNames, callbacks, false);\r\n }\r\n return null;\r\n}\r\nfunction _createInstrumentHook(owner, funcName, fn, callbacks) {\r\n var aiHook = fn && fn[aiInstrumentHooks];\r\n if (!aiHook) {\r\n // Only hook the function once\r\n aiHook = {\r\n i: 0,\r\n n: funcName,\r\n f: fn,\r\n h: []\r\n };\r\n // Override (hook) the original function\r\n var newFunc = _createFunctionHook(aiHook);\r\n newFunc[aiInstrumentHooks] = aiHook; // Tag and store the function hooks\r\n owner[funcName] = newFunc;\r\n }\r\n var theHook = {\r\n // tslint:disable:object-literal-shorthand\r\n id: aiHook.i,\r\n cbks: callbacks,\r\n rm: function () {\r\n // DO NOT Use () => { shorthand for the function as the this gets replaced\r\n // with the outer this and not the this for theHook instance.\r\n var id = this.id;\r\n _arrLoop(aiHook.h, function (hook, idx) {\r\n if (hook.id === id) {\r\n aiHook.h[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return 1;\r\n }\r\n });\r\n }\r\n // tslint:enable:object-literal-shorthand\r\n };\r\n aiHook.i++;\r\n aiHook.h[_DYN_PUSH /* @min:%2epush */](theHook);\r\n return theHook;\r\n}\r\n/**\r\n * Intercept the named prototype functions for the target class / object\r\n * @param target - The target object\r\n * @param funcName - The function name\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n if (target && funcName && callbacks) {\r\n var owner = _getOwner(target, funcName, checkPrototype, checkParentProto);\r\n if (owner) {\r\n var fn = owner[funcName];\r\n if (typeof fn === strShimFunction) {\r\n return _createInstrumentHook(owner, funcName, fn, callbacks);\r\n }\r\n }\r\n }\r\n return null;\r\n}\r\n/**\r\n * Intercept the named functions for the target class / object\r\n * @param target - The target object\r\n * @param funcNames - The function names to intercept and call\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentFuncs(target, funcNames, callbacks, checkPrototype, checkParentProto) {\r\n if (checkPrototype === void 0) { checkPrototype = true; }\r\n var hooks = null;\r\n _arrLoop(funcNames, function (funcName) {\r\n var hook = InstrumentFunc(target, funcName, callbacks, checkPrototype, checkParentProto);\r\n if (hook) {\r\n if (!hooks) {\r\n hooks = [];\r\n }\r\n hooks[_DYN_PUSH /* @min:%2epush */](hook);\r\n }\r\n });\r\n return hooks;\r\n}\r\n/**\r\n * Add an instrumentation hook to the provided named \"event\" for the target class / object, this doesn't check whether the\r\n * named \"event\" is in fact a function and just assigns the instrumentation hook to the target[evtName]\r\n * @param target - The target object\r\n * @param evtName - The name of the event\r\n * @param callbacks - The callbacks to configure and call whenever the function is called\r\n * @param checkPrototype - If the function doesn't exist on the target should it attempt to hook the prototype function\r\n * @param checkParentProto - If the function doesn't exist on the target or it's prototype should it attempt to hook the parent's prototype\r\n */\r\nexport function InstrumentEvent(target, evtName, callbacks, checkPrototype, checkParentProto) {\r\n if (target && evtName && callbacks) {\r\n var owner = _getOwner(target, evtName, checkPrototype, checkParentProto) || target;\r\n if (owner) {\r\n return _createInstrumentHook(owner, evtName, owner[evtName], callbacks);\r\n }\r\n }\r\n return null;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DIAG_LOG, _DYN_PUSH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nexport function createUnloadHandlerContainer() {\r\n var handlers = [];\r\n function _addHandler(handler) {\r\n if (handler) {\r\n handlers[_DYN_PUSH /* @min:%2epush */](handler);\r\n }\r\n }\r\n function _runHandlers(unloadCtx, unloadState) {\r\n arrForEach(handlers, function (handler) {\r\n try {\r\n handler(unloadCtx, unloadState);\r\n }\r\n catch (e) {\r\n _throwInternal(unloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unexpected error calling unload handler - \" + dumpObj(e));\r\n }\r\n });\r\n handlers = [];\r\n }\r\n return {\r\n add: _addHandler,\r\n run: _runHandlers\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_LENGTH } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nvar _maxHooks;\r\nvar _hookAddMonitor;\r\n/**\r\n * Test hook for setting the maximum number of unload hooks and calling a monitor function when the hooks are added or removed\r\n * This allows for automatic test failure when the maximum number of unload hooks is exceeded\r\n * @param maxHooks - The maximum number of unload hooks\r\n * @param addMonitor - The monitor function to call when hooks are added or removed\r\n */\r\nexport function _testHookMaxUnloadHooksCb(maxHooks, addMonitor) {\r\n _maxHooks = maxHooks;\r\n _hookAddMonitor = addMonitor;\r\n}\r\n/**\r\n * Create a IUnloadHookContainer which can be used to remember unload hook functions to be executed during the component unloading\r\n * process.\r\n * @returns A new IUnloadHookContainer instance\r\n */\r\nexport function createUnloadHookContainer() {\r\n var _hooks = [];\r\n function _doUnload(logger) {\r\n var oldHooks = _hooks;\r\n _hooks = [];\r\n // Remove all registered unload hooks\r\n arrForEach(oldHooks, function (fn) {\r\n // allow either rm or remove callback function\r\n try {\r\n (fn.rm || fn.remove).call(fn);\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, \"Unloading:\" + dumpObj(e));\r\n }\r\n });\r\n if (_maxHooks && oldHooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"doUnload\", oldHooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n function _addHook(hooks) {\r\n if (hooks) {\r\n arrAppend(_hooks, hooks);\r\n if (_maxHooks && _hooks[_DYN_LENGTH /* @min:%2elength */] > _maxHooks) {\r\n _hookAddMonitor ? _hookAddMonitor(\"Add\", _hooks) : _throwInternal(null, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.MaxUnloadHookExceeded */, \"Max unload hooks exceeded. An excessive number of unload hooks has been detected.\");\r\n }\r\n }\r\n }\r\n return {\r\n run: _doUnload,\r\n add: _addHook\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { isFunction, objDefine } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_CREATE_NEW, _DYN_DIAG_LOG, _DYN_GET_NEXT, _DYN_GET_PROCESS_TEL_CONT2, _DYN_INITIALIZE, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_PROCESS_NEXT, _DYN_SET_NEXT_PLUGIN, _DYN_TEARDOWN, _DYN_UPDATE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { safeGetLogger } from \"./DiagnosticLogger\";\r\nimport { isNotNullOrUndefined, proxyFunctionAs } from \"./HelperFuncs\";\r\nimport { STR_CORE, STR_EXTENSION_CONFIG, STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext } from \"./ProcessTelemetryContext\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strGetPlugin = \"getPlugin\";\r\nvar defaultValues = (_a = {},\r\n _a[STR_EXTENSION_CONFIG] = { isVal: isNotNullOrUndefined, v: {} },\r\n _a);\r\n/**\r\n * BaseTelemetryPlugin provides a basic implementation of the ITelemetryPlugin interface so that plugins\r\n * can avoid implementation the same set of boiler plate code as well as provide a base\r\n * implementation so that new default implementations can be added without breaking all plugins.\r\n */\r\nvar BaseTelemetryPlugin = /** @class */ (function () {\r\n function BaseTelemetryPlugin() {\r\n var _self = this; // Setting _self here as it's used outside of the dynamicProto as well\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _isinitialized;\r\n var _rootCtx; // Used as the root context, holding the current config and initialized core\r\n var _nextPlugin; // Used for backward compatibility where plugins don't call the main pipeline\r\n var _unloadHandlerContainer;\r\n var _hookContainer;\r\n _initDefaults();\r\n dynamicProto(BaseTelemetryPlugin, _self, function (_self) {\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n _setDefaults(config, core, pluginChain);\r\n _isinitialized = true;\r\n };\r\n _self[_DYN_TEARDOWN /* @min:%2eteardown */] = function (unloadCtx, unloadState) {\r\n var _a;\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (unloadCtx && core !== unloadCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing as either the plugin is not initialized or was not initialized by the current core\r\n return;\r\n }\r\n var result;\r\n var unloadDone = false;\r\n var theUnloadCtx = unloadCtx || createProcessTelemetryUnloadContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUnloadState = unloadState || (_a = {\r\n reason: 0 /* TelemetryUnloadReason.ManualTeardown */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = false,\r\n _a);\r\n function _unloadCallback() {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _unloadHandlerContainer.run(theUnloadCtx, unloadState);\r\n _hookContainer.run(theUnloadCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]());\r\n if (result === true) {\r\n theUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](theUnloadState);\r\n }\r\n _initDefaults();\r\n }\r\n }\r\n if (!_self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] || _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */](theUnloadCtx, theUnloadState, _unloadCallback) !== true) {\r\n _unloadCallback();\r\n }\r\n else {\r\n // Tell the caller that we will be calling processNext()\r\n result = true;\r\n }\r\n return result;\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (updateCtx, updateState) {\r\n // If this plugin has already been torn down (not operational) or is not initialized (core is not set)\r\n // or the core being used for unload was not the same core used for initialization.\r\n var core = _self[STR_CORE /* @min:%2ecore */];\r\n if (!core || (updateCtx && core !== updateCtx[STR_CORE /* @min:%2ecore */]())) {\r\n // Do Nothing\r\n return;\r\n }\r\n var result;\r\n var updateDone = false;\r\n var theUpdateCtx = updateCtx || createProcessTelemetryUpdateContext(null, core, _nextPlugin && _nextPlugin[strGetPlugin] ? _nextPlugin[strGetPlugin]() : _nextPlugin);\r\n var theUpdateState = updateState || {\r\n reason: 0 /* TelemetryUpdateReason.Unknown */\r\n };\r\n function _updateCallback() {\r\n if (!updateDone) {\r\n updateDone = true;\r\n _setDefaults(theUpdateCtx.getCfg(), theUpdateCtx.core(), theUpdateCtx[_DYN_GET_NEXT /* @min:%2egetNext */]());\r\n }\r\n }\r\n if (!_self._doUpdate || _self._doUpdate(theUpdateCtx, theUpdateState, _updateCallback) !== true) {\r\n _updateCallback();\r\n }\r\n else {\r\n result = true;\r\n }\r\n return result;\r\n };\r\n proxyFunctionAs(_self, \"_addUnloadCb\", function () { return _unloadHandlerContainer; }, \"add\");\r\n proxyFunctionAs(_self, \"_addHook\", function () { return _hookContainer; }, \"add\");\r\n objDefine(_self, \"_unloadHooks\", { g: function () { return _hookContainer; } });\r\n });\r\n // These are added after the dynamicProto so that are not moved to the prototype\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */] = function (itemCtx) {\r\n return _getTelCtx(itemCtx)[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () {\r\n return _isinitialized;\r\n };\r\n _self.setInitialized = function (isInitialized) {\r\n _isinitialized = isInitialized;\r\n };\r\n // _self.getNextPlugin = () => DO NOT IMPLEMENT\r\n // Sub-classes of this base class *should* not be relying on this value and instead\r\n // should use processNext() function. If you require access to the plugin use the\r\n // IProcessTelemetryContext.getNext().getPlugin() while in the pipeline, Note getNext() may return null.\r\n _self[_DYN_SET_NEXT_PLUGIN /* @min:%2esetNextPlugin */] = function (next) {\r\n _nextPlugin = next;\r\n };\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */] = function (env, itemCtx) {\r\n if (itemCtx) {\r\n // Normal core execution sequence\r\n itemCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](env);\r\n }\r\n else if (_nextPlugin && isFunction(_nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */])) {\r\n // Looks like backward compatibility or out of band processing. And as it looks\r\n // like a ITelemetryPlugin or ITelemetryPluginChain, just call processTelemetry\r\n _nextPlugin[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */](env, null);\r\n }\r\n };\r\n _self._getTelCtx = _getTelCtx;\r\n function _getTelCtx(currentCtx) {\r\n if (currentCtx === void 0) { currentCtx = null; }\r\n var itemCtx = currentCtx;\r\n if (!itemCtx) {\r\n var rootCtx = _rootCtx || createProcessTelemetryContext(null, {}, _self[STR_CORE /* @min:%2ecore */]);\r\n // tslint:disable-next-line: prefer-conditional-expression\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // Looks like a chain object\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin[strGetPlugin]);\r\n }\r\n else {\r\n itemCtx = rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](null, _nextPlugin);\r\n }\r\n }\r\n return itemCtx;\r\n }\r\n function _setDefaults(config, core, pluginChain) {\r\n // Make sure the extensionConfig exists and the config is dynamic\r\n createDynamicConfig(config, defaultValues, safeGetLogger(core));\r\n if (!pluginChain && core) {\r\n // Get the first plugin from the core\r\n pluginChain = core[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */]()[_DYN_GET_NEXT /* @min:%2egetNext */]();\r\n }\r\n var nextPlugin = _nextPlugin;\r\n if (_nextPlugin && _nextPlugin[strGetPlugin]) {\r\n // If it looks like a proxy/chain then get the plugin\r\n nextPlugin = _nextPlugin[strGetPlugin]();\r\n }\r\n // Support legacy plugins where core was defined as a property\r\n _self[STR_CORE /* @min:%2ecore */] = core;\r\n _rootCtx = createProcessTelemetryContext(pluginChain, config, core, nextPlugin);\r\n }\r\n function _initDefaults() {\r\n _isinitialized = false;\r\n _self[STR_CORE /* @min:%2ecore */] = null;\r\n _rootCtx = null;\r\n _nextPlugin = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _unloadHandlerContainer = createUnloadHandlerContainer();\r\n }\r\n }\r\n// Removed Stub for BaseTelemetryPlugin.prototype.initialize.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.teardown.\r\n// Removed Stub for BaseTelemetryPlugin.prototype.update.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addUnloadCb.\r\n// Removed Stub for BaseTelemetryPlugin.prototype._addHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseTelemetryPlugin.__ieDyn=1;\n\n return BaseTelemetryPlugin;\r\n}());\r\nexport { BaseTelemetryPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 4\r\nexport var _DYN_IS_STORAGE_USE_DISAB0 = \"isStorageUseDisabled\"; // Count: 3\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 6\r\nexport var _DYN_CORE = \"core\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 8\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 13\r\nexport var _DYN_TRACK = \"track\"; // Count: 7\r\nexport var _DYN_TRACK_PAGE_VIEW = \"trackPageView\"; // Count: 4\r\nexport var _DYN_TRACK_PREVIOUS_PAGE_1 = \"trackPreviousPageVisit\"; // Count: 3\r\nexport var _DYN_SEND_PAGE_VIEW_INTER2 = \"sendPageViewInternal\"; // Count: 7\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_PROPERTIES = \"properties\"; // Count: 5\r\nexport var _DYN_DURATION = \"duration\"; // Count: 12\r\nexport var _DYN_SEND_PAGE_VIEW_PERFO3 = \"sendPageViewPerformanceInternal\"; // Count: 3\r\nexport var _DYN_POPULATE_PAGE_VIEW_P4 = \"populatePageViewPerformanceEvent\"; // Count: 3\r\nexport var _DYN_HREF = \"href\"; // Count: 6\r\nexport var _DYN_SEND_EXCEPTION_INTER5 = \"sendExceptionInternal\"; // Count: 2\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 3\r\nexport var _DYN_ERROR = \"error\"; // Count: 5\r\nexport var _DYN__ONERROR = \"_onerror\"; // Count: 3\r\nexport var _DYN_ERROR_SRC = \"errorSrc\"; // Count: 3\r\nexport var _DYN_LINE_NUMBER = \"lineNumber\"; // Count: 5\r\nexport var _DYN_COLUMN_NUMBER = \"columnNumber\"; // Count: 5\r\nexport var _DYN_MESSAGE = \"message\"; // Count: 4\r\nexport var _DYN__CREATE_AUTO_EXCEPTI6 = \"CreateAutoException\"; // Count: 3\r\nexport var _DYN_ADD_TELEMETRY_INITIA7 = \"addTelemetryInitializer\"; // Count: 4\r\nexport var _DYN_OVERRIDE_PAGE_VIEW_D8 = \"overridePageViewDuration\"; // Count: 2\r\nexport var _DYN_AUTO_TRACK_PAGE_VISI9 = \"autoTrackPageVisitTime\"; // Count: 2\r\nexport var _DYN_IS_BROWSER_LINK_TRAC10 = \"isBrowserLinkTrackingEnabled\"; // Count: 2\r\nexport var _DYN_LENGTH = \"length\"; // Count: 5\r\nexport var _DYN_ENABLE_AUTO_ROUTE_TR11 = \"enableAutoRouteTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_UNHANDLED_PRO12 = \"enableUnhandledPromiseRejectionTracking\"; // Count: 2\r\nexport var _DYN_AUTO_UNHANDLED_PROMI13 = \"autoUnhandledPromiseInstrumented\"; // Count: 3\r\nexport var _DYN_GET_ENTRIES_BY_TYPE = \"getEntriesByType\"; // Count: 5\r\nexport var _DYN_IS_PERFORMANCE_TIMIN14 = \"isPerformanceTimingSupported\"; // Count: 2\r\nexport var _DYN_GET_PERFORMANCE_TIMI15 = \"getPerformanceTiming\"; // Count: 2\r\nexport var _DYN_NAVIGATION_START = \"navigationStart\"; // Count: 4\r\nexport var _DYN_SHOULD_COLLECT_DURAT16 = \"shouldCollectDuration\"; // Count: 3\r\nexport var _DYN_IS_PERFORMANCE_TIMIN17 = \"isPerformanceTimingDataReady\"; // Count: 2\r\nexport var _DYN_RESPONSE_START = \"responseStart\"; // Count: 5\r\nexport var _DYN_REQUEST_START = \"requestStart\"; // Count: 3\r\nexport var _DYN_LOAD_EVENT_END = \"loadEventEnd\"; // Count: 4\r\nexport var _DYN_RESPONSE_END = \"responseEnd\"; // Count: 5\r\nexport var _DYN_CONNECT_END = \"connectEnd\"; // Count: 4\r\nexport var _DYN_PAGE_VISIT_START_TIM18 = \"pageVisitStartTime\"; // Count: 2\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, dumpObj, getDocument, getExceptionName, getLocation, isNullOrUndefined } from \"@microsoft/applicationinsights-core-js\";\r\nimport { getPerformance, isUndefined, isWebWorker, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_HREF, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME, _DYN_TRACK_PAGE_VIEW } from \"../../__DynamicConstants\";\r\n/**\r\n * Class encapsulates sending page views and page view performance telemetry.\r\n */\r\nvar PageViewManager = /** @class */ (function () {\r\n function PageViewManager(appInsights, overridePageViewDuration, core, pageViewPerformanceManager) {\r\n dynamicProto(PageViewManager, this, function (_self) {\r\n var queueTimer = null;\r\n var itemQueue = [];\r\n var pageViewPerformanceSent = false;\r\n var firstPageViewSent = false;\r\n var _logger;\r\n if (core) {\r\n _logger = core.logger;\r\n }\r\n function _flushChannels(isAsync) {\r\n if (core) {\r\n core.flush(isAsync, function () {\r\n // Event flushed, callback added to prevent promise creation\r\n });\r\n }\r\n }\r\n function _startTimer() {\r\n if (!queueTimer) {\r\n queueTimer = scheduleTimeout((function () {\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (!item()) {\r\n // Not processed so rescheduled\r\n itemQueue.push(item);\r\n }\r\n else {\r\n doFlush = true;\r\n }\r\n });\r\n if (itemQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _startTimer();\r\n }\r\n if (doFlush) {\r\n // We process at least one item so flush the queue\r\n _flushChannels(true);\r\n }\r\n }), 100);\r\n }\r\n }\r\n function _addQueue(cb) {\r\n itemQueue.push(cb);\r\n _startTimer();\r\n }\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n var name = pageView.name;\r\n if (isNullOrUndefined(name) || typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = pageView.name = doc && doc.title || \"\";\r\n }\r\n var uri = pageView.uri;\r\n if (isNullOrUndefined(uri) || typeof uri !== \"string\") {\r\n var location_1 = getLocation();\r\n uri = pageView.uri = location_1 && location_1[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (!firstPageViewSent) {\r\n var perf = getPerformance();\r\n // Access the performance timing object\r\n var navigationEntries = (perf && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */] && perf[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\"));\r\n // Edge Case the navigation Entries may return an empty array and the timeOrigin is not supported on IE\r\n if (navigationEntries && navigationEntries[0] && !isUndefined(perf.timeOrigin)) {\r\n // Get the value of loadEventStart\r\n var loadEventStart = navigationEntries[0].loadEventStart;\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(perf.timeOrigin + loadEventStart);\r\n }\r\n else {\r\n // calculate the start time manually\r\n var duration_1 = ((customProperties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration_1);\r\n }\r\n firstPageViewSent = true;\r\n }\r\n // case 1a. if performance timing is not supported by the browser, send the page view telemetry with the duration provided by the user. If the user\r\n // do not provide the duration, set duration to undefined\r\n // Also this is case 4\r\n if (!pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */]()) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n if (!isWebWorker()) {\r\n // no navigation timing (IE 8, iOS Safari 8.4, Opera Mini 8 - see http://caniuse.com/#feat=nav-timing)\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 25 /* _eInternalMessageId.NavigationTimingNotSupported */, \"trackPageView: navigation timing API used for calculation of page duration is not supported in this browser. This page view will be collected without duration and timing info.\");\r\n }\r\n return;\r\n }\r\n var pageViewSent = false;\r\n var customDuration;\r\n // if the performance timing is supported by the browser, calculate the custom duration\r\n var start = pageViewPerformanceManager[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */]()[_DYN_NAVIGATION_START /* @min:%2enavigationStart */];\r\n if (start > 0) {\r\n customDuration = dateTimeUtilsDuration(start, +new Date);\r\n if (!pageViewPerformanceManager[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](customDuration)) {\r\n customDuration = undefined;\r\n }\r\n }\r\n // if the user has provided duration, send a page view telemetry with the provided duration. Otherwise, if\r\n // overridePageViewDuration is set to true, send a page view telemetry with the custom duration calculated earlier\r\n var duration;\r\n if (!isNullOrUndefined(customProperties) &&\r\n !isNullOrUndefined(customProperties[_DYN_DURATION /* @min:%2eduration */])) {\r\n duration = customProperties[_DYN_DURATION /* @min:%2eduration */];\r\n }\r\n if (overridePageViewDuration || !isNaN(duration)) {\r\n if (isNaN(duration)) {\r\n // case 3\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n }\r\n // case 2\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n _flushChannels(true);\r\n pageViewSent = true;\r\n }\r\n // now try to send the page view performance telemetry\r\n var maxDurationLimit = 60000;\r\n if (!customProperties) {\r\n customProperties = {};\r\n }\r\n // Queue the event for processing\r\n _addQueue(function () {\r\n var processed = false;\r\n try {\r\n if (pageViewPerformanceManager[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */]()) {\r\n processed = true;\r\n var pageViewPerformance = {\r\n name: name,\r\n uri: uri\r\n };\r\n pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](pageViewPerformance);\r\n if (!pageViewPerformance.isValid && !pageViewSent) {\r\n // If navigation timing gives invalid numbers, then go back to \"override page view duration\" mode.\r\n // That's the best value we can get that makes sense.\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = customDuration;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n else {\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = pageViewPerformance.durationMs;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n if (!pageViewPerformanceSent) {\r\n appInsights[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](pageViewPerformance, customProperties);\r\n pageViewPerformanceSent = true;\r\n }\r\n }\r\n }\r\n else if (start > 0 && dateTimeUtilsDuration(start, +new Date) > maxDurationLimit) {\r\n // if performance timings are not ready but we exceeded the maximum duration limit, just log a page view telemetry\r\n // with the maximum duration limit. Otherwise, keep waiting until performance timings are ready\r\n processed = true;\r\n if (!pageViewSent) {\r\n customProperties[_DYN_DURATION /* @min:%2eduration */] = maxDurationLimit;\r\n appInsights[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageView, customProperties);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 38 /* _eInternalMessageId.TrackPVFailedCalc */, \"trackPageView failed on page load calculation: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return processed;\r\n });\r\n };\r\n _self.teardown = function (unloadCtx, unloadState) {\r\n if (queueTimer) {\r\n queueTimer.cancel();\r\n queueTimer = null;\r\n var allItems = itemQueue.slice(0);\r\n var doFlush_1 = false;\r\n itemQueue = [];\r\n arrForEach(allItems, function (item) {\r\n if (item()) {\r\n doFlush_1 = true;\r\n }\r\n });\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for PageViewManager.prototype.trackPageView.\r\n// Removed Stub for PageViewManager.prototype.teardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewManager.__ieDyn=1;\n\n return PageViewManager;\r\n}());\r\nexport { PageViewManager };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { dateTimeUtilsDuration, msToTimeSpan } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, getNavigator, getPerformance, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_CONNECT_END, _DYN_DURATION, _DYN_GET_ENTRIES_BY_TYPE, _DYN_GET_PERFORMANCE_TIMI15, _DYN_IS_PERFORMANCE_TIMIN14, _DYN_IS_PERFORMANCE_TIMIN17, _DYN_LENGTH, _DYN_LOAD_EVENT_END, _DYN_NAVIGATION_START, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_REQUEST_START, _DYN_RESPONSE_END, _DYN_RESPONSE_START, _DYN_SHOULD_COLLECT_DURAT16, _DYN_START_TIME } from \"../../__DynamicConstants\";\r\nvar MAX_DURATION_ALLOWED = 3600000; // 1h\r\nvar botAgentNames = [\"googlebot\", \"adsbot-google\", \"apis-google\", \"mediapartners-google\"];\r\nfunction _isPerformanceTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && !!perf.timing;\r\n}\r\nfunction _isPerformanceNavigationTimingSupported() {\r\n var perf = getPerformance();\r\n return perf && perf.getEntriesByType && perf.getEntriesByType(\"navigation\")[_DYN_LENGTH /* @min:%2elength */] > 0;\r\n}\r\nfunction _isPerformanceTimingDataReady() {\r\n var perf = getPerformance();\r\n var timing = perf ? perf.timing : 0;\r\n return timing\r\n && timing.domainLookupStart > 0\r\n && timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */] > 0\r\n && timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */] > 0\r\n && timing[_DYN_REQUEST_START /* @min:%2erequestStart */] > 0\r\n && timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */] > 0\r\n && timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */] > 0\r\n && timing[_DYN_CONNECT_END /* @min:%2econnectEnd */] > 0\r\n && timing.domLoading > 0;\r\n}\r\nfunction _getPerformanceTiming() {\r\n if (_isPerformanceTimingSupported()) {\r\n return getPerformance().timing;\r\n }\r\n return null;\r\n}\r\nfunction _getPerformanceNavigationTiming() {\r\n if (_isPerformanceNavigationTimingSupported()) {\r\n return getPerformance()[_DYN_GET_ENTRIES_BY_TYPE /* @min:%2egetEntriesByType */](\"navigation\")[0];\r\n }\r\n return null;\r\n}\r\n/**\r\n* This method tells if given durations should be excluded from collection.\r\n*/\r\nfunction _shouldCollectDuration() {\r\n var durations = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n durations[_i] = arguments[_i];\r\n }\r\n var _navigator = getNavigator() || {};\r\n // a full list of Google crawlers user agent strings - https://support.google.com/webmasters/answer/1061943?hl=en\r\n var userAgent = _navigator.userAgent;\r\n var isGoogleBot = false;\r\n if (userAgent) {\r\n for (var i = 0; i < botAgentNames[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n isGoogleBot = isGoogleBot || strIndexOf(userAgent.toLowerCase(), botAgentNames[i]) !== -1;\r\n }\r\n }\r\n if (isGoogleBot) {\r\n // Don't report durations for GoogleBot, it is returning invalid values in performance.timing API.\r\n return false;\r\n }\r\n else {\r\n // for other page views, don't report if it's outside of a reasonable range\r\n for (var i = 0; i < durations[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (durations[i] < 0 || durations[i] >= MAX_DURATION_ALLOWED) {\r\n return false;\r\n }\r\n }\r\n }\r\n return true;\r\n}\r\n/**\r\n * Class encapsulates sending page view performance telemetry.\r\n */\r\nvar PageViewPerformanceManager = /** @class */ (function () {\r\n function PageViewPerformanceManager(core) {\r\n var _logger = safeGetLogger(core);\r\n dynamicProto(PageViewPerformanceManager, this, function (_self) {\r\n _self[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */] = function (pageViewPerformance) {\r\n pageViewPerformance.isValid = false;\r\n /*\r\n * http://www.w3.org/TR/navigation-timing/#processing-model\r\n * |-navigationStart\r\n * | |-connectEnd\r\n * | ||-requestStart\r\n * | || |-responseStart\r\n * | || | |-responseEnd\r\n * | || | |\r\n * | || | | |-loadEventEnd\r\n * |---network---||---request---|---response---|---dom---|\r\n * |--------------------------total----------------------|\r\n *\r\n * total = The difference between the load event of the current document is completed and the first recorded timestamp of the performance entry : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#duration\r\n * network = Redirect time + App Cache + DNS lookup time + TCP connection time\r\n * request = Request time : https://developer.mozilla.org/en-US/docs/Web/Performance/Navigation_and_resource_timings#request_time\r\n * response = Response time\r\n * dom = Document load time : https://html.spec.whatwg.org/multipage/dom.html#document-load-timing-info\r\n * = Document processing time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#document_processing\r\n * + Loading time : https://developers.google.com/web/fundamentals/performance/navigation-and-resource-timing/#loading\r\n */\r\n var navigationTiming = _getPerformanceNavigationTiming();\r\n var timing = _getPerformanceTiming();\r\n var total = 0;\r\n var network = 0;\r\n var request = 0;\r\n var response = 0;\r\n var dom = 0;\r\n if (navigationTiming || timing) {\r\n if (navigationTiming) {\r\n total = navigationTiming[_DYN_DURATION /* @min:%2eduration */];\r\n /**\r\n * support both cases:\r\n * - startTime is always zero: https://developer.mozilla.org/en-US/docs/Web/API/PerformanceNavigationTiming\r\n * - for older browsers where the startTime is not zero\r\n */\r\n network = navigationTiming[_DYN_START_TIME /* @min:%2estartTime */] === 0 ? navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */] : dateTimeUtilsDuration(navigationTiming[_DYN_START_TIME /* @min:%2estartTime */], navigationTiming[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(navigationTiming.requestStart, navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(navigationTiming[_DYN_RESPONSE_START /* @min:%2eresponseStart */], navigationTiming[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(navigationTiming.responseEnd, navigationTiming[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n else {\r\n total = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n network = dateTimeUtilsDuration(timing[_DYN_NAVIGATION_START /* @min:%2enavigationStart */], timing[_DYN_CONNECT_END /* @min:%2econnectEnd */]);\r\n request = dateTimeUtilsDuration(timing.requestStart, timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */]);\r\n response = dateTimeUtilsDuration(timing[_DYN_RESPONSE_START /* @min:%2eresponseStart */], timing[_DYN_RESPONSE_END /* @min:%2eresponseEnd */]);\r\n dom = dateTimeUtilsDuration(timing.responseEnd, timing[_DYN_LOAD_EVENT_END /* @min:%2eloadEventEnd */]);\r\n }\r\n if (total === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 10 /* _eInternalMessageId.ErrorPVCalc */, \"error calculating page view performance.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (!_self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */](total, network, request, response, dom)) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 45 /* _eInternalMessageId.InvalidDurationValue */, \"Invalid page load duration value. Browser perf data won't be sent.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else if (total < Math.floor(network) + Math.floor(request) + Math.floor(response) + Math.floor(dom)) {\r\n // some browsers may report individual components incorrectly so that the sum of the parts will be bigger than total PLT\r\n // in this case, don't report client performance from this page\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 8 /* _eInternalMessageId.ClientPerformanceMathError */, \"client performance math error.\", { total: total, network: network, request: request, response: response, dom: dom });\r\n }\r\n else {\r\n pageViewPerformance.durationMs = total;\r\n // // convert to timespans\r\n pageViewPerformance.perfTotal = pageViewPerformance[_DYN_DURATION /* @min:%2eduration */] = msToTimeSpan(total);\r\n pageViewPerformance.networkConnect = msToTimeSpan(network);\r\n pageViewPerformance.sentRequest = msToTimeSpan(request);\r\n pageViewPerformance.receivedResponse = msToTimeSpan(response);\r\n pageViewPerformance.domProcessing = msToTimeSpan(dom);\r\n pageViewPerformance.isValid = true;\r\n }\r\n }\r\n };\r\n _self[_DYN_GET_PERFORMANCE_TIMI15 /* @min:%2egetPerformanceTiming */] = _getPerformanceTiming;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN14 /* @min:%2eisPerformanceTimingSupported */] = _isPerformanceTimingSupported;\r\n _self[_DYN_IS_PERFORMANCE_TIMIN17 /* @min:%2eisPerformanceTimingDataReady */] = _isPerformanceTimingDataReady;\r\n _self[_DYN_SHOULD_COLLECT_DURAT16 /* @min:%2eshouldCollectDuration */] = _shouldCollectDuration;\r\n });\r\n }\r\n// Removed Stub for PageViewPerformanceManager.prototype.populatePageViewPerformanceEvent.\r\n// Removed Stub for PageViewPerformanceManager.prototype.getPerformanceTiming.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingSupported.\r\n// Removed Stub for PageViewPerformanceManager.prototype.isPerformanceTimingDataReady.\r\n// Removed Stub for PageViewPerformanceManager.prototype.shouldCollectDuration.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageViewPerformanceManager.__ieDyn=1;\n\n return PageViewPerformanceManager;\r\n}());\r\nexport { PageViewPerformanceManager };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* ApplicationInsights.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPluginIdentifier, Event as EventTelemetry, Exception, Metric, PageView, PageViewPerformance, PropertiesPluginIdentifier, RemoteDependencyData, Trace, createDistributedTraceContextFromTrace, createDomEvent, createTelemetryItem, dataSanitizeString, isCrossOriginError, strNotSpecified, utlDisableStorage, utlEnableStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentEvent, arrForEach, cfgDfBoolean, cfgDfMerge, cfgDfSet, cfgDfString, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOff, eventOn, findAllScripts, generateW3CId, getDocument, getExceptionName, getHistory, getLocation, getWindow, hasHistory, hasWindow, isFunction, isNullOrUndefined, isString, isUndefined, mergeEvtNamespace, onConfigChange, safeGetCookieMgr, strUndefined, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isArray, isError, objDeepFreeze, objDefine, scheduleTimeout, strIndexOf } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ADD_TELEMETRY_INITIA7, _DYN_AUTO_TRACK_PAGE_VISI9, _DYN_AUTO_UNHANDLED_PROMI13, _DYN_COLUMN_NUMBER, _DYN_CORE, _DYN_DATA_TYPE, _DYN_DIAG_LOG, _DYN_DURATION, _DYN_ENABLE_AUTO_ROUTE_TR11, _DYN_ENABLE_UNHANDLED_PRO12, _DYN_ENVELOPE_TYPE, _DYN_ERROR, _DYN_ERROR_SRC, _DYN_EXCEPTION, _DYN_HREF, _DYN_IS_BROWSER_LINK_TRAC10, _DYN_IS_STORAGE_USE_DISAB0, _DYN_LENGTH, _DYN_LINE_NUMBER, _DYN_MESSAGE, _DYN_OVERRIDE_PAGE_VIEW_D8, _DYN_POPULATE_PAGE_VIEW_P4, _DYN_PROPERTIES, _DYN_SEND_EXCEPTION_INTER5, _DYN_SEND_PAGE_VIEW_INTER2, _DYN_SEND_PAGE_VIEW_PERFO3, _DYN_START_TIME, _DYN_TO_STRING, _DYN_TRACK, _DYN_TRACK_PAGE_VIEW, _DYN_TRACK_PREVIOUS_PAGE_1, _DYN__ADD_HOOK, _DYN__CREATE_AUTO_EXCEPTI6, _DYN__ONERROR } from \"../__DynamicConstants\";\r\nimport { PageViewManager } from \"./Telemetry/PageViewManager\";\r\nimport { PageViewPerformanceManager } from \"./Telemetry/PageViewPerformanceManager\";\r\nimport { PageVisitTimeManager } from \"./Telemetry/PageVisitTimeManager\";\r\nimport { Timing } from \"./Timing\";\r\nvar strEvent = \"event\";\r\nfunction _dispatchEvent(target, evnt) {\r\n if (target && target.dispatchEvent && evnt) {\r\n target.dispatchEvent(evnt);\r\n }\r\n}\r\nfunction _getReason(error) {\r\n if (error && error.reason) {\r\n var reason = error.reason;\r\n if (!isString(reason) && isFunction(reason[_DYN_TO_STRING /* @min:%2etoString */])) {\r\n return reason[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n return dumpObj(reason);\r\n }\r\n // Pass the original object down which will eventually get evaluated for any message or description\r\n return error || \"\";\r\n}\r\nvar MinMilliSeconds = 60000;\r\nvar defaultValues = objDeepFreeze((_a = {\r\n sessionRenewalMs: cfgDfSet(_chkConfigMilliseconds, 30 * 60 * 1000),\r\n sessionExpirationMs: cfgDfSet(_chkConfigMilliseconds, 24 * 60 * 60 * 1000),\r\n disableExceptionTracking: cfgDfBoolean()\r\n },\r\n _a[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:autoTrackPageVisitTime */] = cfgDfBoolean(),\r\n _a[_DYN_OVERRIDE_PAGE_VIEW_D8 /* @min:overridePageViewDuration */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:enableUnhandledPromiseRejectionTracking */] = cfgDfBoolean(),\r\n _a[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:autoUnhandledPromiseInstrumented */] = false,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_IS_STORAGE_USE_DISAB0 /* @min:isStorageUseDisabled */] = cfgDfBoolean(),\r\n _a[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:isBrowserLinkTrackingEnabled */] = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:enableAutoRouteTracking */] = cfgDfBoolean(),\r\n _a.namePrefix = cfgDfString(),\r\n _a.enableDebug = cfgDfBoolean(),\r\n _a.disableFlushOnBeforeUnload = cfgDfBoolean(),\r\n _a.disableFlushOnUnload = cfgDfBoolean(false, \"disableFlushOnBeforeUnload\"),\r\n _a.expCfg = cfgDfMerge({ inclScripts: false, expLog: undefined, maxLogs: 50 }),\r\n _a));\r\nfunction _chkConfigMilliseconds(value, defValue) {\r\n value = value || defValue;\r\n if (value < MinMilliSeconds) {\r\n value = MinMilliSeconds;\r\n }\r\n return +value;\r\n}\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nfunction _updateStorageUsage(extConfig) {\r\n // Not resetting the storage usage as someone may have manually called utlDisableStorage, so this will only\r\n // reset based if the configuration option is provided\r\n if (!isUndefined(extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */])) {\r\n if (extConfig[_DYN_IS_STORAGE_USE_DISAB0 /* @min:%2eisStorageUseDisabled */]) {\r\n utlDisableStorage();\r\n }\r\n else {\r\n utlEnableStorage();\r\n }\r\n }\r\n}\r\nvar AnalyticsPlugin = /** @class */ (function (_super) {\r\n __extends(AnalyticsPlugin, _super);\r\n function AnalyticsPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AnalyticsPluginIdentifier; // do not change name or priority\r\n _this.priority = 180; // take from reserved priority range 100- 200\r\n _this.autoRoutePVDelay = 500; // ms; Time to wait after a route change before triggering a pageview to allow DOM changes to take place\r\n var _eventTracking;\r\n var _pageTracking;\r\n var _pageViewManager;\r\n var _pageViewPerformanceManager;\r\n var _pageVisitTimeManager;\r\n var _preInitTelemetryInitializers;\r\n var _isBrowserLinkTrackingEnabled;\r\n var _browserLinkInitializerAdded;\r\n var _enableAutoRouteTracking;\r\n var _historyListenerAdded;\r\n var _disableExceptionTracking;\r\n var _autoExceptionInstrumented;\r\n var _enableUnhandledPromiseRejectionTracking;\r\n var _autoUnhandledPromiseInstrumented;\r\n var _extConfig;\r\n var _autoTrackPageVisitTime;\r\n var _expCfg;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n var _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var _prevUri; // Assigned in the constructor\r\n var _currUri;\r\n var _evtNamespace;\r\n dynamicProto(AnalyticsPlugin, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.getCookieMgr = function () {\r\n return safeGetCookieMgr(_self[_DYN_CORE /* @min:%2ecore */]);\r\n };\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n _self.trackEvent = function (event, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(event, EventTelemetry[_DYN_DATA_TYPE /* @min:%2edataType */], EventTelemetry[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Start timing an extended event. Call `stopTrackEvent` to log the event when it ends.\r\n * @param name A string that identifies this event uniquely within the document.\r\n */\r\n _self.startTrackEvent = function (name) {\r\n try {\r\n _eventTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 29 /* _eInternalMessageId.StartTrackEventFailed */, \"startTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Log an extended event that you started timing with `startTrackEvent`.\r\n * @param name The string you used to identify this event in `startTrackEvent`.\r\n * @param properties map[string, string] - additional data used to filter events and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this event, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackEvent = function (name, properties, measurements) {\r\n try {\r\n _eventTracking.stop(name, undefined, properties, measurements);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 30 /* _eInternalMessageId.StopTrackEventFailed */, \"stopTrackEvent failed, event will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a diagnostic message\r\n * @param trace\r\n * @param ICustomProperties.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackTrace = function (trace, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(trace, Trace[_DYN_DATA_TYPE /* @min:%2edataType */], Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(2 /* eLoggingSeverity.WARNING */, 39 /* _eInternalMessageId.TrackTraceFailed */, \"trackTrace failed, trace will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Log a numeric value that is not associated with a specific event. Typically\r\n * used to send regular reports of performance indicators. To send single measurement, just\r\n * use the name and average fields of {@link IMetricTelemetry}. If you take measurements\r\n * frequently, you can reduce the telemetry bandwidth by aggregating multiple measurements\r\n * and sending the resulting average at intervals\r\n * @param metric - input object argument. Only name and average are mandatory.\r\n * @param } customProperties additional data used to filter metrics in the\r\n * portal. Defaults to empty.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackMetric = function (metric, customProperties) {\r\n try {\r\n var telemetryItem = createTelemetryItem(metric, Metric[_DYN_DATA_TYPE /* @min:%2edataType */], Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 36 /* _eInternalMessageId.TrackMetricFailed */, \"trackMetric failed, metric will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Logs that a page or other item was viewed.\r\n * @param IPageViewTelemetry - The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param customProperties - Additional data used to filter events and metrics. Defaults to empty.\r\n * If a user wants to provide duration for pageLoad, it'll have to be in pageView.properties.duration\r\n */\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */] = function (pageView, customProperties) {\r\n try {\r\n var inPv = pageView || {};\r\n _pageViewManager[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */](inPv, __assign(__assign(__assign({}, inPv.properties), inPv.measurements), customProperties));\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](inPv.name, inPv.uri);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageView failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Create a page view telemetry item and send it to the SDK pipeline through the core.track API\r\n * @param pageView - Page view item to be sent\r\n * @param properties - Custom properties (Part C) that a user can add to the telemetry item\r\n * @param systemProperties - System level properties (Part A) that a user can add to the telemetry item\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */] = function (pageView, properties, systemProperties) {\r\n var doc = getDocument();\r\n if (doc) {\r\n pageView.refUri = pageView.refUri === undefined ? doc.referrer : pageView.refUri;\r\n }\r\n if (isNullOrUndefined(pageView[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n // calculate the start time manually\r\n var duration = ((properties || pageView[_DYN_PROPERTIES /* @min:%2eproperties */] || {})[_DYN_DURATION /* @min:%2eduration */] || 0);\r\n pageView[_DYN_START_TIME /* @min:%2estartTime */] = new Date(new Date().getTime() - duration);\r\n }\r\n var telemetryItem = createTelemetryItem(pageView, PageView[_DYN_DATA_TYPE /* @min:%2edataType */], PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n // reset ajaxes counter\r\n _trackAjaxAttempts = 0;\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param pageViewPerformance\r\n * @param properties\r\n */\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */] = function (pageViewPerformance, properties, systemProperties) {\r\n var telemetryItem = createTelemetryItem(pageViewPerformance, PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Send browser performance metrics.\r\n * @param pageViewPerformance\r\n * @param customProperties\r\n */\r\n _self.trackPageViewPerformance = function (pageViewPerformance, customProperties) {\r\n var inPvp = pageViewPerformance || {};\r\n try {\r\n _pageViewPerformanceManager[_DYN_POPULATE_PAGE_VIEW_P4 /* @min:%2epopulatePageViewPerformanceEvent */](inPvp);\r\n _self[_DYN_SEND_PAGE_VIEW_PERFO3 /* @min:%2esendPageViewPerformanceInternal */](inPvp, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 37 /* _eInternalMessageId.TrackPVFailed */, \"trackPageViewPerformance failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Starts the timer for tracking a page load time. Use this instead of `trackPageView` if you want to control when the page view timer starts and stops,\r\n * but don't want to calculate the duration yourself. This method doesn't send any telemetry. Call `stopTrackPage` to log the end of the page view\r\n * and send the event.\r\n * @param name - A string that idenfities this item, unique within this HTML document. Defaults to the document title.\r\n */\r\n _self.startTrackPage = function (name) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n _pageTracking.start(name);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 31 /* _eInternalMessageId.StartTrackFailed */, \"startTrackPage failed, page view may not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * Stops the timer that was started by calling `startTrackPage` and sends the pageview load time telemetry with the specified properties and measurements.\r\n * The duration of the page view will be the time between calling `startTrackPage` and `stopTrackPage`.\r\n * @param name The string you used as the name in startTrackPage. Defaults to the document title.\r\n * @param url String - a relative or absolute URL that identifies the page or other item. Defaults to the window location.\r\n * @param properties map[string, string] - additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n * @param measurements map[string, number] - metrics associated with this page, displayed in Metrics Explorer on the portal. Defaults to empty.\r\n */\r\n _self.stopTrackPage = function (name, url, properties, measurement) {\r\n try {\r\n if (typeof name !== \"string\") {\r\n var doc = getDocument();\r\n name = doc && doc.title || \"\";\r\n }\r\n if (typeof url !== \"string\") {\r\n var loc = getLocation();\r\n url = loc && loc[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n _pageTracking.stop(name, url, properties, measurement);\r\n if (_autoTrackPageVisitTime) {\r\n _pageVisitTimeManager[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */](name, url);\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 32 /* _eInternalMessageId.StopTrackFailed */, \"stopTrackPage failed, page view will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @ignore INTERNAL ONLY\r\n * @param exception\r\n * @param properties\r\n * @param systemProperties\r\n */\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */] = function (exception, customProperties, systemProperties) {\r\n // Adding additional edge cases to handle\r\n // - Not passing anything (null / undefined)\r\n var theError = (exception && (exception[_DYN_EXCEPTION /* @min:%2eexception */] || exception[_DYN_ERROR /* @min:%2eerror */])) ||\r\n // - Handle someone calling trackException based of v1 API where the exception was the Error\r\n isError(exception) && exception ||\r\n // - Handles no error being defined and instead of creating a new Error() instance attempt to map so any stacktrace\r\n // is preserved and does not list ApplicationInsights code as the source\r\n { name: (exception && typeof exception), message: exception || strNotSpecified };\r\n // If no exception object was passed assign to an empty object to avoid internal exceptions\r\n exception = exception || {};\r\n var exceptionPartB = new Exception(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), theError, exception[_DYN_PROPERTIES /* @min:%2eproperties */] || customProperties, exception.measurements, exception.severityLevel, exception.id).toInterface();\r\n var doc = getDocument();\r\n if (doc && (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.inclScripts)) {\r\n var scriptsInfo = findAllScripts(doc);\r\n exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionScripts\"] = JSON.stringify(scriptsInfo);\r\n }\r\n if (_expCfg === null || _expCfg === void 0 ? void 0 : _expCfg.expLog) {\r\n var logs = _expCfg.expLog();\r\n if (logs && logs.logs && isArray(logs.logs)) {\r\n exceptionPartB[_DYN_PROPERTIES /* @min:%2eproperties */][\"exceptionLog\"] = logs.logs.slice(0, _expCfg.maxLogs).join(\"\\n\");\r\n }\r\n }\r\n var telemetryItem = createTelemetryItem(exceptionPartB, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), customProperties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n };\r\n /**\r\n * Log an exception you have caught.\r\n *\r\n * @param exception - Object which contains exception to be sent\r\n * @param } customProperties Additional data used to filter pages and metrics in the portal. Defaults to empty.\r\n *\r\n * Any property of type double will be considered a measurement, and will be treated by Application Insights as a metric.\r\n * @memberof ApplicationInsights\r\n */\r\n _self.trackException = function (exception, customProperties) {\r\n if (exception && !exception[_DYN_EXCEPTION /* @min:%2eexception */] && exception[_DYN_ERROR /* @min:%2eerror */]) {\r\n exception[_DYN_EXCEPTION /* @min:%2eexception */] = exception[_DYN_ERROR /* @min:%2eerror */];\r\n }\r\n try {\r\n _self[_DYN_SEND_EXCEPTION_INTER5 /* @min:%2esendExceptionInternal */](exception, customProperties);\r\n }\r\n catch (e) {\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 35 /* _eInternalMessageId.TrackExceptionFailed */, \"trackException failed, exception will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n };\r\n /**\r\n * @description Custom error handler for Application Insights Analytics\r\n * @param exception\r\n * @memberof ApplicationInsights\r\n */\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */] = function (exception) {\r\n var error = exception && exception[_DYN_ERROR /* @min:%2eerror */];\r\n var evt = exception && exception.evt;\r\n try {\r\n if (!evt) {\r\n var _window = getWindow();\r\n if (_window) {\r\n evt = _window[strEvent];\r\n }\r\n }\r\n var url = (exception && exception.url) || (getDocument() || {}).URL;\r\n // If no error source is provided assume the default window.onerror handler\r\n var errorSrc = exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] || \"window.onerror@\" + url + \":\" + (exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0) + \":\" + (exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0);\r\n var properties = {\r\n errorSrc: errorSrc,\r\n url: url,\r\n lineNumber: exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0,\r\n columnNumber: exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0,\r\n message: exception[_DYN_MESSAGE /* @min:%2emessage */]\r\n };\r\n if (isCrossOriginError(exception.message, exception.url, exception.lineNumber, exception.columnNumber, exception[_DYN_ERROR /* @min:%2eerror */])) {\r\n _sendCORSException(Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](\"Script error: The browser's same-origin policy prevents us from getting the details of this exception. Consider using the 'crossorigin' attribute.\", url, exception[_DYN_LINE_NUMBER /* @min:%2elineNumber */] || 0, exception[_DYN_COLUMN_NUMBER /* @min:%2ecolumnNumber */] || 0, error, evt, null, errorSrc), properties);\r\n }\r\n else {\r\n if (!exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */]) {\r\n exception[_DYN_ERROR_SRC /* @min:%2eerrorSrc */] = errorSrc;\r\n }\r\n _self.trackException({ exception: exception, severityLevel: 3 /* eSeverityLevel.Error */ }, properties);\r\n }\r\n }\r\n catch (e) {\r\n var errorString = error ? (error.name + \", \" + error[_DYN_MESSAGE /* @min:%2emessage */]) : \"null\";\r\n _throwInternal(1 /* eLoggingSeverity.CRITICAL */, 11 /* _eInternalMessageId.ExceptionWhileLoggingError */, \"_onError threw exception while logging error, error will not be collected: \"\r\n + getExceptionName(e), { exception: dumpObj(e), errorString: errorString });\r\n }\r\n };\r\n _self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */] = function (telemetryInitializer) {\r\n if (_self[_DYN_CORE /* @min:%2ecore */]) {\r\n // Just add to the core\r\n return _self[_DYN_CORE /* @min:%2ecore */][_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](telemetryInitializer);\r\n }\r\n // Handle \"pre-initialization\" telemetry initializers (for backward compatibility)\r\n if (!_preInitTelemetryInitializers) {\r\n _preInitTelemetryInitializers = [];\r\n }\r\n _preInitTelemetryInitializers.push(telemetryInitializer);\r\n };\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n return;\r\n }\r\n if (isNullOrUndefined(core)) {\r\n throwError(\"Error initializing\");\r\n }\r\n _base.initialize(config, core, extensions, pluginChain);\r\n try {\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n if (_preInitTelemetryInitializers) {\r\n arrForEach(_preInitTelemetryInitializers, function (initializer) {\r\n core[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](initializer);\r\n });\r\n _preInitTelemetryInitializers = null;\r\n }\r\n _populateDefaults(config);\r\n _pageViewPerformanceManager = new PageViewPerformanceManager(_self[_DYN_CORE /* @min:%2ecore */]);\r\n _pageViewManager = new PageViewManager(_self, _extConfig.overridePageViewDuration, _self[_DYN_CORE /* @min:%2ecore */], _pageViewPerformanceManager);\r\n _pageVisitTimeManager = new PageVisitTimeManager(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), function (pageName, pageUrl, pageVisitTime) { return trackPageVisitTime(pageName, pageUrl, pageVisitTime); });\r\n _eventTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackEvent\");\r\n _eventTracking.action =\r\n function (name, url, duration, properties, measurements) {\r\n if (!properties) {\r\n properties = {};\r\n }\r\n if (!measurements) {\r\n measurements = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n _self.trackEvent({ name: name, properties: properties, measurements: measurements });\r\n };\r\n // initialize page view timing\r\n _pageTracking = new Timing(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), \"trackPageView\");\r\n _pageTracking.action = function (name, url, duration, properties, measurements) {\r\n // duration must be a custom property in order for the collector to extract it\r\n if (isNullOrUndefined(properties)) {\r\n properties = {};\r\n }\r\n properties.duration = duration[_DYN_TO_STRING /* @min:%2etoString */]();\r\n var pageViewItem = {\r\n name: name,\r\n uri: url,\r\n properties: properties,\r\n measurements: measurements\r\n };\r\n _self[_DYN_SEND_PAGE_VIEW_INTER2 /* @min:%2esendPageViewInternal */](pageViewItem, properties);\r\n };\r\n if (hasWindow()) {\r\n _updateExceptionTracking();\r\n _updateLocationChange();\r\n }\r\n }\r\n catch (e) {\r\n // resetting the initialized state because of failure\r\n _self.setInitialized(false);\r\n throw e;\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _pageViewManager && _pageViewManager.teardown(unloadCtx, unloadState);\r\n // Just register to remove all events associated with this namespace\r\n eventOff(window, null, null, _evtNamespace);\r\n _initDefaults();\r\n };\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self[_DYN_CORE /* @min:%2ecore */];\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extConfig = ctx.getExtCfg(identifier, defaultValues);\r\n _expCfg = _extConfig.expCfg;\r\n _autoTrackPageVisitTime = _extConfig[_DYN_AUTO_TRACK_PAGE_VISI9 /* @min:%2eautoTrackPageVisitTime */];\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _updateStorageUsage(_extConfig);\r\n // _updateBrowserLinkTracking\r\n _isBrowserLinkTrackingEnabled = _extConfig[_DYN_IS_BROWSER_LINK_TRAC10 /* @min:%2eisBrowserLinkTrackingEnabled */];\r\n _addDefaultTelemetryInitializers();\r\n }));\r\n }\r\n /**\r\n * Log a page visit time\r\n * @param pageName Name of page\r\n * @param pageVisitDuration Duration of visit to the page in milliseconds\r\n */\r\n function trackPageVisitTime(pageName, pageUrl, pageVisitTime) {\r\n var properties = { PageName: pageName, PageUrl: pageUrl };\r\n _self.trackMetric({\r\n name: \"PageVisitTime\",\r\n average: pageVisitTime,\r\n max: pageVisitTime,\r\n min: pageVisitTime,\r\n sampleCount: 1\r\n }, properties);\r\n }\r\n function _addDefaultTelemetryInitializers() {\r\n if (!_browserLinkInitializerAdded && _isBrowserLinkTrackingEnabled) {\r\n var browserLinkPaths_1 = [\"/browserLinkSignalR/\", \"/__browserLink/\"];\r\n var dropBrowserLinkRequests = function (envelope) {\r\n if (_isBrowserLinkTrackingEnabled && envelope.baseType === RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n var remoteData = envelope.baseData;\r\n if (remoteData) {\r\n for (var i = 0; i < browserLinkPaths_1[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n if (remoteData.target && strIndexOf(remoteData.target, browserLinkPaths_1[i]) >= 0) {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n return true;\r\n };\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](_self[_DYN_ADD_TELEMETRY_INITIA7 /* @min:%2eaddTelemetryInitializer */](dropBrowserLinkRequests));\r\n _browserLinkInitializerAdded = true;\r\n }\r\n }\r\n function _sendCORSException(exception, properties) {\r\n var telemetryItem = createTelemetryItem(exception, Exception[_DYN_DATA_TYPE /* @min:%2edataType */], Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], _self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), properties);\r\n _self[_DYN_CORE /* @min:%2ecore */][_DYN_TRACK /* @min:%2etrack */](telemetryItem);\r\n }\r\n function _updateExceptionTracking() {\r\n var _window = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _disableExceptionTracking = _extConfig.disableExceptionTracking;\r\n if (!_disableExceptionTracking && !_autoExceptionInstrumented && !_extConfig.autoExceptionInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onerror\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, message, url, lineNumber, columnNumber, error) {\r\n if (!_disableExceptionTracking && callDetails.rslt !== true) {\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](message, url, lineNumber, columnNumber, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _autoExceptionInstrumented = true;\r\n }\r\n }));\r\n _addUnhandledPromiseRejectionTracking(_window, locn);\r\n }\r\n function _updateLocationChange() {\r\n var win = getWindow();\r\n var locn = getLocation(true);\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableAutoRouteTracking = _extConfig[_DYN_ENABLE_AUTO_ROUTE_TR11 /* @min:%2eenableAutoRouteTracking */] === true;\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n if (win && _enableAutoRouteTracking && !_historyListenerAdded && hasHistory()) {\r\n var _history = getHistory();\r\n if (isFunction(_history.pushState) && isFunction(_history.replaceState) && typeof Event !== strUndefined) {\r\n _addHistoryListener(win, _history, locn);\r\n }\r\n }\r\n }));\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n if (!distributedTraceCtx) {\r\n // Fallback when using an older Core and PropertiesPlugin\r\n var properties = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (properties) {\r\n var context = properties.plugin.context;\r\n if (context) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(context.telemetryTrace);\r\n }\r\n }\r\n }\r\n return distributedTraceCtx;\r\n }\r\n /**\r\n * Create a custom \"locationchange\" event which is triggered each time the history object is changed\r\n */\r\n function _addHistoryListener(win, history, locn) {\r\n if (_historyListenerAdded) {\r\n return;\r\n }\r\n // Name Prefix is only referenced during the initial initialization and cannot be changed afterwards\r\n var namePrefix = _extConfig.namePrefix || \"\";\r\n function _popstateHandler() {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n function _locationChangeHandler() {\r\n // We always track the changes (if the handler is installed) to handle the feature being disabled between location changes\r\n if (_currUri) {\r\n _prevUri = _currUri;\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n else {\r\n _currUri = locn && locn[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n }\r\n if (_enableAutoRouteTracking) {\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n if (distributedTraceCtx) {\r\n distributedTraceCtx.setTraceId(generateW3CId());\r\n var traceLocationName = \"_unknown_\";\r\n if (locn && locn.pathname) {\r\n traceLocationName = locn.pathname + (locn.hash || \"\");\r\n }\r\n // This populates the ai.operation.name which has a maximum size of 1024 so we need to sanitize it\r\n distributedTraceCtx.setName(dataSanitizeString(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), traceLocationName));\r\n }\r\n scheduleTimeout((function (uri) {\r\n // todo: override start time so that it is not affected by autoRoutePVDelay\r\n _self[_DYN_TRACK_PAGE_VIEW /* @min:%2etrackPageView */]({ refUri: uri, properties: { duration: 0 } }); // SPA route change loading durations are undefined, so send 0\r\n }).bind(_self, _prevUri), _self.autoRoutePVDelay);\r\n }\r\n }\r\n _addHook(InstrumentEvent(history, \"pushState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"pushState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n _addHook(InstrumentEvent(history, \"replaceState\", {\r\n ns: _evtNamespace,\r\n rsp: function () {\r\n if (_enableAutoRouteTracking) {\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"replaceState\"));\r\n _dispatchEvent(win, createDomEvent(namePrefix + \"locationchange\"));\r\n }\r\n }\r\n }, true));\r\n eventOn(win, namePrefix + \"popstate\", _popstateHandler, _evtNamespace);\r\n eventOn(win, namePrefix + \"locationchange\", _locationChangeHandler, _evtNamespace);\r\n _historyListenerAdded = true;\r\n }\r\n function _addUnhandledPromiseRejectionTracking(_window, _location) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extConfig, function () {\r\n _enableUnhandledPromiseRejectionTracking = _extConfig[_DYN_ENABLE_UNHANDLED_PRO12 /* @min:%2eenableUnhandledPromiseRejectionTracking */] === true;\r\n _autoExceptionInstrumented = _autoExceptionInstrumented || _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */];\r\n if (_enableUnhandledPromiseRejectionTracking && !_autoUnhandledPromiseInstrumented) {\r\n // We want to enable exception auto collection and it has not been done so yet\r\n _addHook(InstrumentEvent(_window, \"onunhandledrejection\", {\r\n ns: _evtNamespace,\r\n rsp: function (callDetails, error) {\r\n if (_enableUnhandledPromiseRejectionTracking && callDetails.rslt !== true) { // handled could be typeof function\r\n _self[_DYN__ONERROR /* @min:%2e_onerror */](Exception[_DYN__CREATE_AUTO_EXCEPTI6 /* @min:%2eCreateAutoException */](_getReason(error), _location ? _location[_DYN_HREF /* @min:%2ehref */] : \"\", 0, 0, error, callDetails.evt));\r\n }\r\n }\r\n }, false));\r\n _extConfig[_DYN_AUTO_UNHANDLED_PROMI13 /* @min:%2eautoUnhandledPromiseInstrumented */] = _autoUnhandledPromiseInstrumented = true;\r\n }\r\n }));\r\n }\r\n /**\r\n * This method will throw exceptions in debug mode or attempt to log the error as a console warning.\r\n * @param severity - {eLoggingSeverity} - The severity of the log message\r\n * @param msgId - {_eInternalLogMessage} - The log message.\r\n */\r\n function _throwInternal(severity, msgId, msg, properties, isUserAct) {\r\n _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]().throwInternal(severity, msgId, msg, properties, isUserAct);\r\n }\r\n function _initDefaults() {\r\n _eventTracking = null;\r\n _pageTracking = null;\r\n _pageViewManager = null;\r\n _pageViewPerformanceManager = null;\r\n _pageVisitTimeManager = null;\r\n _preInitTelemetryInitializers = null;\r\n _isBrowserLinkTrackingEnabled = false;\r\n _browserLinkInitializerAdded = false;\r\n _enableAutoRouteTracking = false;\r\n _historyListenerAdded = false;\r\n _disableExceptionTracking = false;\r\n _autoExceptionInstrumented = false;\r\n _enableUnhandledPromiseRejectionTracking = false;\r\n _autoUnhandledPromiseInstrumented = false;\r\n _autoTrackPageVisitTime = false;\r\n // Counts number of trackAjax invocations.\r\n // By default we only monitor X ajax call per view to avoid too much load.\r\n // Default value is set in config.\r\n // This counter keeps increasing even after the limit is reached.\r\n _trackAjaxAttempts = 0;\r\n // array with max length of 2 that store current url and previous url for SPA page route change trackPageview use.\r\n var location = getLocation(true);\r\n _prevUri = location && location[_DYN_HREF /* @min:%2ehref */] || \"\";\r\n _currUri = null;\r\n _evtNamespace = null;\r\n _extConfig = null;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _extConfig; }\r\n });\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_pageViewManager\", { g: function () { return _pageViewManager; } });\r\n objDefine(_self, \"_pageViewPerformanceManager\", { g: function () { return _pageViewPerformanceManager; } });\r\n objDefine(_self, \"_pageVisitTimeManager\", { g: function () { return _pageVisitTimeManager; } });\r\n objDefine(_self, \"_evtNamespace\", { g: function () { return \".\" + _evtNamespace; } });\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AnalyticsPlugin.prototype.getCookieMgr.\r\n// Removed Stub for AnalyticsPlugin.prototype.processTelemetry.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackEvent.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackTrace.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackMetric.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageView.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendPageViewPerformanceInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackPageViewPerformance.\r\n// Removed Stub for AnalyticsPlugin.prototype.startTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.stopTrackPage.\r\n// Removed Stub for AnalyticsPlugin.prototype.sendExceptionInternal.\r\n// Removed Stub for AnalyticsPlugin.prototype.trackException.\r\n// Removed Stub for AnalyticsPlugin.prototype._onerror.\r\n// Removed Stub for AnalyticsPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for AnalyticsPlugin.prototype.initialize.\r\n AnalyticsPlugin.Version = '3.3.4'; // Not currently used anywhere\r\n return AnalyticsPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { AnalyticsPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseSessionStorage, utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _warnToConsole, dateNow, dumpObj, getJSON, hasJSON, throwError } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_PAGE_VISIT_START_TIM18, _DYN_TRACK_PREVIOUS_PAGE_1 } from \"../../__DynamicConstants\";\r\n/**\r\n * Used to track page visit durations\r\n */\r\nvar PageVisitTimeManager = /** @class */ (function () {\r\n /**\r\n * Creates a new instance of PageVisitTimeManager\r\n * @param pageVisitTimeTrackingHandler - Delegate that will be called to send telemetry data to AI (when trackPreviousPageVisit is called)\r\n * @returns {}\r\n */\r\n function PageVisitTimeManager(logger, pageVisitTimeTrackingHandler) {\r\n var prevPageVisitDataKeyName = \"prevPageVisitData\";\r\n dynamicProto(PageVisitTimeManager, this, function (_self) {\r\n _self[_DYN_TRACK_PREVIOUS_PAGE_1 /* @min:%2etrackPreviousPageVisit */] = function (currentPageName, currentPageUrl) {\r\n try {\r\n // Restart timer for new page view\r\n var prevPageVisitTimeData = restartPageVisitTimer(currentPageName, currentPageUrl);\r\n // If there was a page already being timed, track the visit time for it now.\r\n if (prevPageVisitTimeData) {\r\n pageVisitTimeTrackingHandler(prevPageVisitTimeData.pageName, prevPageVisitTimeData.pageUrl, prevPageVisitTimeData.pageVisitTime);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Auto track page visit time failed, metric will not be collected: \" + dumpObj(e));\r\n }\r\n };\r\n /**\r\n * Stops timing of current page (if exists) and starts timing for duration of visit to pageName\r\n * @param pageName - Name of page to begin timing visit duration\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from last call to start or restart, if exists. Null if not.\r\n */\r\n function restartPageVisitTimer(pageName, pageUrl) {\r\n var prevPageVisitData = null;\r\n try {\r\n prevPageVisitData = stopPageVisitTimer();\r\n if (utlCanUseSessionStorage()) {\r\n if (utlGetSessionStorage(logger, prevPageVisitDataKeyName) != null) {\r\n throwError(\"Cannot call startPageVisit consecutively without first calling stopPageVisit\");\r\n }\r\n var currPageVisitDataStr = getJSON().stringify(new PageVisitData(pageName, pageUrl));\r\n utlSetSessionStorage(logger, prevPageVisitDataKeyName, currPageVisitDataStr);\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Call to restart failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n /**\r\n * Stops timing of current page, if exists.\r\n * @returns {PageVisitData} Page visit data (including duration) of pageName from call to start, if exists. Null if not.\r\n */\r\n function stopPageVisitTimer() {\r\n var prevPageVisitData = null;\r\n try {\r\n if (utlCanUseSessionStorage()) {\r\n // Define end time of page's visit\r\n var pageVisitEndTime = dateNow();\r\n // Try to retrieve page name and start time from session storage\r\n var pageVisitDataJsonStr = utlGetSessionStorage(logger, prevPageVisitDataKeyName);\r\n if (pageVisitDataJsonStr && hasJSON()) {\r\n // if previous page data exists, set end time of visit\r\n prevPageVisitData = getJSON().parse(pageVisitDataJsonStr);\r\n prevPageVisitData.pageVisitTime = pageVisitEndTime - prevPageVisitData[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */];\r\n // Remove data from storage since we already used it\r\n utlRemoveSessionStorage(logger, prevPageVisitDataKeyName);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _warnToConsole(logger, \"Stop page visit timer failed: \" + dumpObj(e));\r\n prevPageVisitData = null;\r\n }\r\n return prevPageVisitData;\r\n }\r\n // For backward compatibility\r\n objDefine(_self, \"_logger\", { g: function () { return logger; } });\r\n objDefine(_self, \"pageVisitTimeTrackingHandler\", { g: function () { return pageVisitTimeTrackingHandler; } });\r\n });\r\n }\r\n// Removed Stub for PageVisitTimeManager.prototype.trackPreviousPageVisit.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PageVisitTimeManager.__ieDyn=1;\n\n return PageVisitTimeManager;\r\n}());\r\nexport { PageVisitTimeManager };\r\nvar PageVisitData = /** @class */ (function () {\r\n function PageVisitData(pageName, pageUrl) {\r\n this[_DYN_PAGE_VISIT_START_TIM18 /* @min:%2epageVisitStartTime */] = dateNow();\r\n this.pageName = pageName;\r\n this.pageUrl = pageUrl;\r\n }\r\n return PageVisitData;\r\n}());\r\nexport { PageVisitData };\r\n","/*\n * Application Insights JavaScript SDK - Web Analytics, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dateTimeUtilsDuration } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Used to record timed events and page views.\r\n */\r\nvar Timing = /** @class */ (function () {\r\n function Timing(logger, name) {\r\n var _self = this;\r\n var _events = {};\r\n _self.start = function (name) {\r\n if (typeof _events[name] !== \"undefined\") {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 62 /* _eInternalMessageId.StartCalledMoreThanOnce */, \"start was called more than once for this event without calling stop.\", { name: name, key: name }, true);\r\n }\r\n _events[name] = +new Date;\r\n };\r\n _self.stop = function (name, url, properties, measurements) {\r\n var start = _events[name];\r\n if (isNaN(start)) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 63 /* _eInternalMessageId.StopCalledWithoutStart */, \"stop was called without a corresponding start.\", { name: name, key: name }, true);\r\n }\r\n else {\r\n var end = +new Date;\r\n var duration = dateTimeUtilsDuration(start, end);\r\n _self.action(name, url, duration, properties, measurements);\r\n }\r\n delete _events[name];\r\n _events[name] = undefined;\r\n };\r\n }\r\n return Timing;\r\n}());\r\nexport { Timing };\r\n","/*!\n * NevWare21 Solutions LLC - ts-async, 0.5.3\n * https://github.com/nevware21/ts-async\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\nimport { isPromiseLike, objDefineProperties, getDocument, createCachedValue, safe, getInst, dumpObj, arrSlice, objDefineProp, hasSymbol, getKnownSymbol, isFunction, throwTypeError, iterForOf, scheduleTimeout, isNode, getWindow, getGlobal, objDefine, objToString, isUndefined, isArray, arrForEach, isIterable, createCustomError, isNumber, scheduleIdleCallback, utcNow, getLength, isIterator, fnCall, arrIndexOf } from '@nevware21/ts-utils';\n\nvar STR_PROMISE = \"Promise\";\nvar DONE = \"done\";\nvar VALUE = \"value\";\nvar RETURN = \"return\";\nvar REJECTED = \"rejected\";\n\nfunction doAwaitResponse(value, cb) {\n return doAwait(value, function (value) {\n return cb ? cb({\n status: \"fulfilled\",\n rejected: false,\n value: value\n }) : value;\n }, function (reason) {\n return cb ? cb({\n status: REJECTED,\n rejected: true,\n reason: reason\n }) : reason;\n });\n}\nfunction doAwait(value, resolveFn, rejectFn, finallyFn) {\n var result = value;\n try {\n if (isPromiseLike(value)) {\n if (resolveFn || rejectFn) {\n result = value.then(resolveFn, rejectFn);\n }\n }\n else {\n try {\n if (resolveFn) {\n result = resolveFn(value);\n }\n }\n catch (err) {\n if (rejectFn) {\n result = rejectFn(err);\n }\n else {\n throw err;\n }\n }\n }\n }\n finally {\n if (finallyFn) {\n doFinally(result, finallyFn);\n }\n }\n return result;\n}\nfunction doFinally(value, finallyFn) {\n var result = value;\n if (finallyFn) {\n if (isPromiseLike(value)) {\n if (value.finally) {\n result = value.finally(finallyFn);\n }\n else {\n result = value.then(function (value) {\n finallyFn();\n return value;\n }, function (reason) {\n finallyFn();\n throw reason;\n });\n }\n }\n else {\n finallyFn();\n }\n }\n return result;\n}\n\nvar _debugState;\nvar _debugResult;\nvar _debugHandled;\nvar _promiseDebugEnabled = false;\nfunction _addDebugState$1(thePromise, stateFn, resultFn, handledFn) {\n _debugState = _debugState || { toString: function () { return \"[[PromiseState]]\"; } };\n _debugResult = _debugResult || { toString: function () { return \"[[PromiseResult]]\"; } };\n _debugHandled = _debugHandled || { toString: function () { return \"[[PromiseIsHandled]]\"; } };\n var props = {};\n props[_debugState] = { get: stateFn };\n props[_debugResult] = { get: resultFn };\n props[_debugHandled] = { get: handledFn };\n objDefineProperties(thePromise, props);\n}\nfunction setPromiseDebugState(enabled, logger) {\n _promiseDebugEnabled = enabled;\n}\n\nvar STRING_STATES = [\n \"pending\", \"resolving\", \"resolved\", REJECTED\n];\n\nvar DISPATCH_EVENT = \"dispatchEvent\";\nvar _hasInitEvent;\nfunction _hasInitEventFn(doc) {\n var evt;\n if (doc && doc.createEvent) {\n evt = doc.createEvent(\"Event\");\n }\n return (!!evt && evt.initEvent);\n}\nfunction emitEvent(target, evtName, populateEvent, useNewEvent) {\n var doc = getDocument();\n !_hasInitEvent && (_hasInitEvent = createCachedValue(!!safe(_hasInitEventFn, [doc]).v));\n var theEvt = _hasInitEvent.v ? doc.createEvent(\"Event\") : (useNewEvent ? new Event(evtName) : {});\n populateEvent && populateEvent(theEvt);\n if (_hasInitEvent.v) {\n theEvt.initEvent(evtName, false, true);\n }\n if (theEvt && target[DISPATCH_EVENT]) {\n target[DISPATCH_EVENT](theEvt);\n }\n else {\n var handler = target[\"on\" + evtName];\n if (handler) {\n handler(theEvt);\n }\n else {\n var theConsole = getInst(\"console\");\n theConsole && (theConsole[\"error\"] || theConsole[\"log\"])(evtName, dumpObj(theEvt));\n }\n }\n}\n\nvar NODE_UNHANDLED_REJECTION = \"unhandledRejection\";\nvar UNHANDLED_REJECTION = NODE_UNHANDLED_REJECTION.toLowerCase();\nvar _currentPromiseId = [];\nvar _uniquePromiseId = 0;\nvar _unhandledRejectionTimeout = 10;\nvar _aggregationError;\nvar _hasPromiseRejectionEvent;\nfunction dumpFnObj(value) {\n if (isFunction(value)) {\n return value.toString();\n }\n return dumpObj(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAggregationError(values) {\n !_aggregationError && (_aggregationError = createCachedValue(safe(getInst, [\"AggregationError\"]).v || createCustomError(\"AggregationError\", function (self, args) {\n self.errors = args[0];\n })));\n return new _aggregationError.v(values);\n}\nfunction _createPromise(newPromise, processor, executor) {\n var additionalArgs = arrSlice(arguments, 3);\n var _state = 0 ;\n var _hasResolved = false;\n var _settledValue;\n var _queue = [];\n var _id = _uniquePromiseId++;\n var _parentId = _currentPromiseId.length > 0 ? _currentPromiseId[_currentPromiseId.length - 1] : undefined;\n var _handled = false;\n var _unHandledRejectionHandler = null;\n var _thePromise;\n function _then(onResolved, onRejected) {\n try {\n _currentPromiseId.push(_id);\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n var thenPromise = newPromise(function (resolve, reject) {\n _queue.push(function () {\n try {\n var handler = _state === 2 ? onResolved : onRejected;\n var value = isUndefined(handler) ? _settledValue : (isFunction(handler) ? handler(_settledValue) : handler);\n if (isPromiseLike(value)) {\n value.then(resolve, reject);\n }\n else if (handler) {\n resolve(value);\n }\n else if (_state === 3 ) {\n reject(value);\n }\n else {\n resolve(value);\n }\n }\n catch (e) {\n reject(e);\n }\n });\n if (_hasResolved) {\n _processQueue();\n }\n }, additionalArgs);\n return thenPromise;\n }\n finally {\n _currentPromiseId.pop();\n }\n }\n function _catch(onRejected) {\n return _then(undefined, onRejected);\n }\n function _finally(onFinally) {\n var thenFinally = onFinally;\n var catchFinally = onFinally;\n if (isFunction(onFinally)) {\n thenFinally = function (value) {\n onFinally && onFinally();\n return value;\n };\n catchFinally = function (reason) {\n onFinally && onFinally();\n throw reason;\n };\n }\n return _then(thenFinally, catchFinally);\n }\n function _strState() {\n return STRING_STATES[_state];\n }\n function _processQueue() {\n if (_queue.length > 0) {\n var pending = _queue.slice();\n _queue = [];\n _handled = true;\n _unHandledRejectionHandler && _unHandledRejectionHandler.cancel();\n _unHandledRejectionHandler = null;\n processor(pending);\n }\n }\n function _createSettleIfFn(newState, allowState) {\n return function (theValue) {\n if (_state === allowState) {\n if (newState === 2 && isPromiseLike(theValue)) {\n _state = 1 ;\n theValue.then(_createSettleIfFn(2 , 1 ), _createSettleIfFn(3 , 1 ));\n return;\n }\n _state = newState;\n _hasResolved = true;\n _settledValue = theValue;\n _processQueue();\n if (!_handled && newState === 3 && !_unHandledRejectionHandler) {\n _unHandledRejectionHandler = scheduleTimeout(_notifyUnhandledRejection, _unhandledRejectionTimeout);\n }\n }\n };\n }\n function _notifyUnhandledRejection() {\n if (!_handled) {\n _handled = true;\n if (isNode()) {\n process.emit(NODE_UNHANDLED_REJECTION, _settledValue, _thePromise);\n }\n else {\n var gbl = getWindow() || getGlobal();\n !_hasPromiseRejectionEvent && (_hasPromiseRejectionEvent = createCachedValue(safe((getInst), [STR_PROMISE + \"RejectionEvent\"]).v));\n emitEvent(gbl, UNHANDLED_REJECTION, function (theEvt) {\n objDefine(theEvt, \"promise\", { g: function () { return _thePromise; } });\n theEvt.reason = _settledValue;\n return theEvt;\n }, !!_hasPromiseRejectionEvent.v);\n }\n }\n }\n _thePromise = {\n then: _then,\n \"catch\": _catch,\n finally: _finally\n };\n objDefineProp(_thePromise, \"state\", {\n get: _strState\n });\n if (_promiseDebugEnabled) {\n _addDebugState$1(_thePromise, _strState, function () { return objToString(_settledValue); }, function () { return _handled; });\n }\n if (hasSymbol()) {\n _thePromise[getKnownSymbol(11 )] = \"IPromise\";\n }\n function _toString() {\n return \"IPromise\" + (_promiseDebugEnabled ? \"[\" + _id + (!isUndefined(_parentId) ? (\":\" + _parentId) : \"\") + \"]\" : \"\") + \" \" + _strState() + (_hasResolved ? (\" - \" + dumpFnObj(_settledValue)) : \"\") + (\"\");\n }\n _thePromise.toString = _toString;\n (function _initialize() {\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpFnObj(executor));\n }\n var _rejectFn = _createSettleIfFn(3 , 0 );\n try {\n executor.call(_thePromise, _createSettleIfFn(2 , 0 ), _rejectFn);\n }\n catch (e) {\n _rejectFn(e);\n }\n })();\n return _thePromise;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllPromise(newPromise) {\n return function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n try {\n var values_1 = [];\n var pending_1 = 1;\n iterForOf(input, function (item, idx) {\n if (item) {\n pending_1++;\n doAwait(item, function (value) {\n values_1[idx] = value;\n if (--pending_1 === 0) {\n resolve(values_1);\n }\n }, reject);\n }\n });\n pending_1--;\n if (pending_1 === 0) {\n resolve(values_1);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createResolvedPromise(newPromise) {\n return function (value) {\n var additionalArgs = arrSlice(arguments, 1);\n if (isPromiseLike(value)) {\n return value;\n }\n return newPromise(function (resolve) {\n resolve(value);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRejectedPromise(newPromise) {\n return function (reason) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (_resolve, reject) {\n reject(reason);\n }, additionalArgs);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAllSettledPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var values = [];\n var pending = 1;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (value.rejected) {\n values[idx] = {\n status: REJECTED,\n reason: value.reason\n };\n }\n else {\n values[idx] = {\n status: \"fulfilled\",\n value: value.value\n };\n }\n if (--pending === 0) {\n resolve(values);\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0) {\n resolve(values);\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createRacePromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var isDone = false;\n function processItem(item) {\n doAwaitResponse(item, function (value) {\n if (!isDone) {\n isDone = true;\n if (value.rejected) {\n reject(value.reason);\n }\n else {\n resolve(value.value);\n }\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createAnyPromise(newPromise) {\n return createCachedValue(function (input) {\n var additionalArgs = arrSlice(arguments, 1);\n return newPromise(function (resolve, reject) {\n var theErros = [];\n var pending = 1;\n var isDone = false;\n function processItem(item, idx) {\n pending++;\n doAwaitResponse(item, function (value) {\n if (!value.rejected) {\n isDone = true;\n resolve(value.value);\n return;\n }\n else {\n theErros[idx] = value.reason;\n }\n if (--pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n });\n }\n try {\n if (isArray(input)) {\n arrForEach(input, processItem);\n }\n else if (isIterable(input)) {\n iterForOf(input, processItem);\n }\n else {\n throwTypeError(\"Input is not an iterable\");\n }\n pending--;\n if (pending === 0 && !isDone) {\n reject(_createAggregationError(theErros));\n }\n }\n catch (e) {\n reject(e);\n }\n }, additionalArgs);\n });\n}\n\nfunction syncItemProcessor(pending) {\n arrForEach(pending, function (fn) {\n try {\n fn();\n }\n catch (e) {\n }\n });\n}\nfunction timeoutItemProcessor(timeout) {\n var callbackTimeout = isNumber(timeout) ? timeout : 0;\n return function (pending) {\n scheduleTimeout(function () {\n syncItemProcessor(pending);\n }, callbackTimeout);\n };\n}\nfunction idleItemProcessor(timeout) {\n var options;\n if (timeout >= 0) {\n options = {\n timeout: +timeout\n };\n }\n return function (pending) {\n scheduleIdleCallback(function (deadline) {\n syncItemProcessor(pending);\n }, options);\n };\n}\n\nvar _allAsyncSettledCreator;\nvar _raceAsyncCreator;\nvar _anyAsyncCreator;\nfunction createAsyncPromise(executor, timeout) {\n return _createPromise(createAsyncPromise, timeoutItemProcessor(timeout), executor, timeout);\n}\nvar createAsyncAllPromise = /*#__PURE__*/ _createAllPromise(createAsyncPromise);\nvar createAsyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createAsyncPromise);\nvar createAsyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createAsyncPromise);\nfunction createAsyncAllSettledPromise(input, timeout) {\n !_allAsyncSettledCreator && (_allAsyncSettledCreator = _createAllSettledPromise(createAsyncPromise));\n return _allAsyncSettledCreator.v(input, timeout);\n}\nfunction createAsyncRacePromise(values, timeout) {\n !_raceAsyncCreator && (_raceAsyncCreator = _createRacePromise(createAsyncPromise));\n return _raceAsyncCreator.v(values, timeout);\n}\nfunction createAsyncAnyPromise(values, timeout) {\n !_anyAsyncCreator && (_anyAsyncCreator = _createAnyPromise(createAsyncPromise));\n return _anyAsyncCreator.v(values, timeout);\n}\n\nvar _promiseCls;\nvar _allCreator;\nvar _allNativeSettledCreator;\nvar _raceNativeCreator;\nvar _anyNativeCreator;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createNativePromiseHelper(name, func) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n if (_promiseCls.v && _promiseCls.v[name]) {\n return createCachedValue(function (input, timeout) {\n return createNativePromise(function (resolve, reject) {\n _promiseCls.v[name](input).then(resolve, reject);\n });\n });\n }\n return func();\n}\nfunction createNativePromise(executor, timeout) {\n !_promiseCls && (_promiseCls = createCachedValue((safe(getInst, [STR_PROMISE]).v) || null));\n var PrmCls = _promiseCls.v;\n if (!PrmCls) {\n return createAsyncPromise(executor);\n }\n if (!isFunction(executor)) {\n throwTypeError(STR_PROMISE + \": executor is not a function - \" + dumpObj(executor));\n }\n var _state = 0 ;\n function _strState() {\n return STRING_STATES[_state];\n }\n var thePromise = new PrmCls(function (resolve, reject) {\n function _resolve(value) {\n _state = 2 ;\n resolve(value);\n }\n function _reject(reason) {\n _state = 3 ;\n reject(reason);\n }\n executor(_resolve, _reject);\n });\n objDefineProp(thePromise, \"state\", {\n get: _strState\n });\n return thePromise;\n}\nfunction createNativeAllPromise(input, timeout) {\n !_allCreator && (_allCreator = _createNativePromiseHelper(\"all\", function () { return createCachedValue(_createAllPromise(createNativePromise)); }));\n return _allCreator.v(input, timeout);\n}\nvar createNativeResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createNativePromise);\nvar createNativeRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createNativePromise);\nfunction createNativeAllSettledPromise(input, timeout) {\n !_allNativeSettledCreator && (_allNativeSettledCreator = _createNativePromiseHelper(\"allSettled\", function () { return _createAllSettledPromise(createNativePromise); }));\n return _allNativeSettledCreator.v(input, timeout);\n}\nfunction createNativeRacePromise(values, timeout) {\n !_raceNativeCreator && (_raceNativeCreator = _createNativePromiseHelper(\"race\", function () { return _createRacePromise(createNativePromise); }));\n return _raceNativeCreator.v(values, timeout);\n}\nfunction createNativeAnyPromise(values, timeout) {\n !_anyNativeCreator && (_anyNativeCreator = _createNativePromiseHelper(\"any\", function () { return _createAnyPromise(createNativePromise); }));\n return _anyNativeCreator.v(values, timeout);\n}\n\nvar _allSyncSettledCreator;\nvar _raceSyncCreator;\nvar _anySyncCreator;\nfunction createSyncPromise(executor) {\n return _createPromise(createSyncPromise, syncItemProcessor, executor);\n}\nvar createSyncAllPromise = /*#__PURE__*/ _createAllPromise(createSyncPromise);\nvar createSyncResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createSyncPromise);\nvar createSyncRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createSyncPromise);\nfunction createSyncAllSettledPromise(input, timeout) {\n !_allSyncSettledCreator && (_allSyncSettledCreator = _createAllSettledPromise(createSyncPromise));\n return _allSyncSettledCreator.v(input, timeout);\n}\nfunction createSyncRacePromise(values, timeout) {\n !_raceSyncCreator && (_raceSyncCreator = _createRacePromise(createSyncPromise));\n return _raceSyncCreator.v(values, timeout);\n}\nfunction createSyncAnyPromise(values, timeout) {\n !_anySyncCreator && (_anySyncCreator = _createAnyPromise(createSyncPromise));\n return _anySyncCreator.v(values, timeout);\n}\n\nvar _defaultIdleTimeout;\nvar _allIdleSettledCreator;\nvar _raceIdleCreator;\nvar _anyIdleCreator;\nfunction setDefaultIdlePromiseTimeout(idleDeadline) {\n _defaultIdleTimeout = idleDeadline;\n}\nvar setDefaultIdleTimeout = ( setDefaultIdlePromiseTimeout);\nfunction createIdlePromise(executor, timeout) {\n var theTimeout = isUndefined(timeout) ? _defaultIdleTimeout : timeout;\n return _createPromise(createIdlePromise, idleItemProcessor(theTimeout), executor, theTimeout);\n}\nvar createIdleAllPromise = /*#__PURE__*/ _createAllPromise(createIdlePromise);\nvar createIdleResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createIdlePromise);\nvar createIdleRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createIdlePromise);\nfunction createIdleAllSettledPromise(input, timeout) {\n !_allIdleSettledCreator && (_allIdleSettledCreator = _createAllSettledPromise(createIdlePromise));\n return _allIdleSettledCreator.v(input, timeout);\n}\nfunction createIdleRacePromise(values, timeout) {\n !_raceIdleCreator && (_raceIdleCreator = _createRacePromise(createIdlePromise));\n return _raceIdleCreator.v(values, timeout);\n}\nfunction createIdleAnyPromise(values, timeout) {\n !_anyIdleCreator && (_anyIdleCreator = _createAnyPromise(createIdlePromise));\n return _anyIdleCreator.v(values, timeout);\n}\n\nvar _promiseCreator;\nvar _allSettledCreator;\nvar _raceCreator;\nvar _anyCreator;\nfunction setCreatePromiseImpl(creator) {\n _promiseCreator = creator ? createCachedValue(creator) : null;\n}\nfunction createPromise(executor, timeout) {\n !_promiseCreator && (_promiseCreator = createCachedValue(createNativePromise));\n return _promiseCreator.v.call(this, executor, timeout);\n}\nvar createAllPromise = /*#__PURE__*/ _createAllPromise(createPromise);\nvar createResolvedPromise = /*#__PURE__*/ _createResolvedPromise(createPromise);\nvar createRejectedPromise = /*#__PURE__*/ _createRejectedPromise(createPromise);\nfunction createAllSettledPromise(input, timeout) {\n !_allSettledCreator && (_allSettledCreator = _createAllSettledPromise(createPromise));\n return _allSettledCreator.v(input, timeout);\n}\nfunction createRacePromise(values, timeout) {\n !_raceCreator && (_raceCreator = _createRacePromise(createPromise));\n return _raceCreator.v(values, timeout);\n}\nfunction createAnyPromise(values, timeout) {\n !_anyCreator && (_anyCreator = _createAnyPromise(createPromise));\n return _anyCreator.v(values, timeout);\n}\n\nfunction createTimeoutPromise(timeout, resolveReject, message) {\n return createPromise(function (resolve, reject) {\n scheduleTimeout(function () {\n (resolveReject ? resolve : reject)(!isUndefined(message) ? message : \"Timeout of \" + timeout + \"ms exceeded\");\n }, timeout);\n });\n}\n\nfunction _doneChk(isDone, state, value, thisArg) {\n var result = isDone;\n state.res = value;\n if (!result) {\n if (state.isDone && isFunction(state.isDone)) {\n return doAwait(state.isDone.call(thisArg, state), function (done) {\n state.iter++;\n return !!done;\n });\n }\n else {\n result = !!state.isDone;\n }\n }\n state.iter++;\n return result;\n}\nfunction doWhileAsync(callbackFn, isDoneFn, thisArg) {\n var promise;\n var resolve;\n var reject = function (reason) {\n isDone = true;\n throw reason;\n };\n var isDone = false;\n var state = {\n st: utcNow(),\n iter: 0,\n isDone: isDoneFn || false\n };\n if (callbackFn) {\n var _createPromise_1 = function () {\n return createPromise(function (res, rej) {\n resolve = res;\n reject = rej;\n });\n };\n var _handleAsyncDone_1 = function (done) {\n isDone = !!done;\n if (!isDone) {\n _processNext_1();\n }\n else {\n resolve(state.res);\n }\n };\n var _processNext_1 = function () {\n while (!isDone) {\n try {\n var cbResult = callbackFn.call(thisArg, state);\n if (isPromiseLike(cbResult)) {\n promise = promise || _createPromise_1();\n doAwait(cbResult, function (res) {\n try {\n doAwait(_doneChk(isDone, state, res, thisArg), _handleAsyncDone_1, reject);\n }\n catch (e) {\n reject(e);\n }\n }, reject);\n return promise;\n }\n else {\n var dnRes = _doneChk(isDone, state, cbResult, thisArg);\n if (isPromiseLike(dnRes)) {\n promise = promise || _createPromise_1();\n doAwait(dnRes, _handleAsyncDone_1, reject);\n return promise;\n }\n else {\n isDone = !!dnRes;\n }\n }\n }\n catch (e) {\n reject(e);\n return promise;\n }\n }\n if (isDone && resolve) {\n resolve(state.res);\n }\n return promise || state.res;\n };\n return _processNext_1();\n }\n}\n\nfunction arrForEachAsync(theArray, callbackFn, thisArg) {\n if (theArray) {\n var len_1 = getLength(theArray);\n if (len_1) {\n var isDone = function (state) {\n if (state.iter >= len_1 || state.res === -1) {\n return true;\n }\n };\n return doWhileAsync(function (state) {\n var idx = state.iter;\n if (idx in theArray) {\n return callbackFn.call(thisArg || theArray, theArray[idx], idx, theArray);\n }\n }, isDone);\n }\n }\n}\n\nvar _iterSymbol;\nvar _iterAsyncSymbol;\nfunction iterForOfAsync(iter, callbackFn, thisArg) {\n var err;\n var iterResult;\n var theIter = iter;\n function onFailed(failed) {\n err = { e: failed };\n if (theIter.throw) {\n iterResult = null;\n theIter.throw(err);\n }\n throw failed;\n }\n function onFinally() {\n try {\n if (iterResult && !iterResult[DONE]) {\n theIter[RETURN] && theIter[RETURN](iterResult);\n }\n }\n finally {\n if (err) {\n throw err.e;\n }\n }\n }\n if (iter) {\n if (!isIterator(iter)) {\n !_iterAsyncSymbol && (_iterAsyncSymbol = createCachedValue(getKnownSymbol(0 )));\n theIter = iter[_iterAsyncSymbol.v] ? iter[_iterAsyncSymbol.v]() : null;\n if (!theIter) {\n !_iterSymbol && (_iterSymbol = createCachedValue(getKnownSymbol(3 )));\n theIter = iter[_iterSymbol.v] ? iter[_iterSymbol.v]() : null;\n }\n }\n if (theIter && isIterator(theIter)) {\n var result = void 0;\n try {\n result = doWhileAsync(function (state) {\n return doAwait(theIter.next(), function (res) {\n iterResult = res;\n if (!res[DONE]) {\n return fnCall(callbackFn, thisArg || theIter, iterResult[VALUE], state.iter, theIter);\n }\n }, function (reason) {\n state.isDone = true;\n onFailed(reason);\n });\n }, function (state) {\n if (!iterResult || iterResult[DONE] || state.res === -1) {\n onFinally();\n return true;\n }\n }, thisArg || theIter);\n if (isPromiseLike(result)) {\n result = doFinally(result.catch(onFailed), onFinally);\n }\n return result;\n }\n catch (failed) {\n onFailed(failed);\n }\n finally {\n if (result && !isPromiseLike(result)) {\n onFinally();\n }\n }\n }\n }\n}\n\nvar REJECT = \"reject\";\nvar REJECTED_ERROR = \"Rejected\";\nvar _schedulerId = 0;\nvar _debugName;\nvar _debugIntState;\nvar _customErrors = {};\nfunction _rejectDone() {\n}\nfunction _createError(type, evt, message) {\n !_customErrors[type] && (_customErrors[type] = createCustomError(type));\n var now = utcNow();\n return new (_customErrors[type])(\"Task [\".concat(evt.id, \"] \").concat(message || \"\", \"- \").concat((evt.st ? \"Running\" : \"Waiting\"), \": \").concat(_calcTime(now, evt.st || evt.cr)));\n}\nfunction _calcTime(now, start) {\n return ((now - start) || \"0\") + \" ms\";\n}\nfunction _abortStaleTasks(taskQueue, staleTimeoutPeriod) {\n var now = utcNow();\n var expired = now - staleTimeoutPeriod;\n arrForEach(taskQueue, function (evt) {\n if (evt && !evt.rj && (evt.st && evt.st < expired) || (!evt.st && evt.cr && evt.cr < expired)) {\n evt && evt[REJECT](evt.rj || _createError(\"Aborted\", evt, \"Stale \"));\n }\n });\n}\nfunction _removeTask(queue, taskDetail) {\n var idx = arrIndexOf(queue, taskDetail);\n if (idx !== -1) {\n queue.splice(idx, 1);\n }\n}\nfunction _addDebugState(theScheduler, nameFn, stateFn) {\n _debugName = _debugName || { toString: function () { return \"[[SchedulerName]]\"; } };\n _debugIntState = _debugIntState || { toString: function () { return \"[[SchedulerState]]\"; } };\n objDefineProp(theScheduler, _debugName, { get: nameFn });\n objDefineProp(theScheduler, _debugIntState, { get: stateFn });\n}\nfunction createTaskScheduler(newPromise, name) {\n var _theTask;\n var _running = [];\n var _waiting = [];\n var _staleTimeoutPeriod = 600000;\n var _staleTimeoutCheckPeriod = _staleTimeoutPeriod / 10;\n var _taskCount = 0;\n var _schedulerName = (name ? (name + \".\") : \"\") + _schedulerId++;\n var _blockedTimer;\n newPromise = newPromise || createPromise;\n var _startBlockedTimer = function () {\n var hasTasks = (getLength(_running) + getLength(_waiting)) > 0;\n if (_staleTimeoutPeriod > 0) {\n if (!_blockedTimer) {\n _blockedTimer = scheduleTimeout(function () {\n _abortStaleTasks(_running, _staleTimeoutPeriod);\n _abortStaleTasks(_waiting, _staleTimeoutPeriod);\n _blockedTimer && (_blockedTimer.enabled = ((getLength(_running) + getLength(_waiting)) > 0));\n }, _staleTimeoutCheckPeriod);\n _blockedTimer.unref();\n }\n _blockedTimer && (_blockedTimer.enabled = hasTasks);\n }\n };\n var _queueTask = function (startAction, taskName, timeout) {\n var _a;\n var taskId = _schedulerName + \".\" + _taskCount++;\n if (taskName) {\n taskId += \"-(\" + taskName + \")\";\n }\n var newTask = (_a = {\n id: taskId,\n cr: utcNow(),\n to: timeout\n },\n _a[REJECT] = function (reason) {\n newTask.rj = reason || _createError(REJECTED_ERROR, newTask);\n newTask[REJECT] = _rejectDone;\n },\n _a);\n if (!_theTask) {\n newTask.p = newPromise(_runTask(newTask, startAction));\n }\n else {\n newTask.p = _waitForPreviousTask(newTask, _theTask, startAction);\n }\n _theTask = newTask;\n return newTask.p;\n };\n var _runTask = function (taskDetail, startAction) {\n taskDetail.st = utcNow();\n _running.push(taskDetail);\n _startBlockedTimer();\n return function (onTaskResolve, onTaskReject) {\n var _promiseReject = function (reason) {\n taskDetail.rj = taskDetail.rj || reason || _createError(REJECTED_ERROR, taskDetail);\n taskDetail[REJECT] = _rejectDone;\n _doCleanup(taskDetail);\n onTaskResolve = null;\n onTaskReject && onTaskReject(reason);\n onTaskReject = null;\n };\n var taskId = taskDetail.id;\n if (taskDetail.rj) {\n _promiseReject(taskDetail.rj);\n }\n else {\n taskDetail[REJECT] = _promiseReject;\n try {\n var startResult = startAction(taskId);\n if (taskDetail.to && isPromiseLike(startResult)) {\n taskDetail.t = scheduleTimeout(function () {\n _promiseReject(_createError(\"Timeout\", taskDetail));\n }, taskDetail.to);\n }\n doAwait(startResult, function (theResult) {\n _doCleanup(taskDetail);\n try {\n onTaskResolve && onTaskResolve(theResult);\n }\n catch (e) {\n onTaskReject && onTaskReject(e);\n }\n onTaskReject = null;\n onTaskResolve = null;\n }, _promiseReject);\n }\n catch (e) {\n _promiseReject(e);\n }\n }\n };\n };\n var _waitForPreviousTask = function (taskDetail, prevTask, startAction) {\n _waiting.push(taskDetail);\n _startBlockedTimer();\n return newPromise(function (onWaitResolve, onWaitReject) {\n doAwaitResponse(prevTask.p, function () {\n _removeTask(_waiting, taskDetail);\n _runTask(taskDetail, startAction)(onWaitResolve, onWaitReject);\n });\n });\n };\n var _doCleanup = function (taskDetail) {\n _removeTask(_running, taskDetail);\n taskDetail.t && taskDetail.t.cancel();\n taskDetail.t = null;\n if (_theTask && _theTask === taskDetail) {\n _theTask = null;\n if (getLength(_running) + getLength(_waiting) === 0) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n }\n }\n };\n var theScheduler = {\n idle: true,\n queue: _queueTask,\n setStaleTimeout: function (staleTimeout, staleCheckPeriod) {\n _blockedTimer && _blockedTimer.cancel();\n _blockedTimer = null;\n _staleTimeoutPeriod = staleTimeout;\n _staleTimeoutCheckPeriod = staleCheckPeriod || staleTimeout / 10;\n _startBlockedTimer();\n }\n };\n objDefine(theScheduler, \"idle\", {\n g: function () {\n return getLength(_running) + getLength(_waiting) === 0;\n }\n });\n _addDebugState(theScheduler, function () { return _schedulerName; }, function () {\n return {\n l: _theTask,\n r: _running,\n w: _waiting\n };\n });\n return theScheduler;\n}\n\nvar toStringTagSymbol = getKnownSymbol(11 );\nvar PolyPromise = /*#__PURE__*/ (function () {\n function PolyPromiseImpl(executor) {\n this._$ = createAsyncPromise(executor);\n if (toStringTagSymbol) {\n this[toStringTagSymbol] = \"Promise\";\n }\n objDefineProp(this, \"state\", {\n get: function () {\n return this._$.state;\n }\n });\n }\n PolyPromiseImpl.all = createAsyncAllPromise;\n PolyPromiseImpl.race = createAsyncRacePromise;\n PolyPromiseImpl.any = createAsyncAnyPromise;\n PolyPromiseImpl.reject = createAsyncRejectedPromise;\n PolyPromiseImpl.resolve = createAsyncResolvedPromise;\n PolyPromiseImpl.allSettled = createAsyncAllSettledPromise;\n var theProto = PolyPromiseImpl.prototype;\n theProto.then = function (onResolved, onRejected) {\n return this._$.then(onResolved, onRejected);\n };\n theProto.catch = function (onRejected) {\n return this._$.catch(onRejected);\n };\n theProto.finally = function (onfinally) {\n return this._$.finally(onfinally);\n };\n return PolyPromiseImpl;\n}());\n\nexport { PolyPromise, arrForEachAsync, createAllPromise, createAllSettledPromise, createAnyPromise, createAsyncAllPromise, createAsyncAllSettledPromise, createAsyncAnyPromise, createAsyncPromise, createAsyncRacePromise, createAsyncRejectedPromise, createAsyncResolvedPromise, createIdleAllPromise, createIdleAllSettledPromise, createIdleAnyPromise, createIdlePromise, createIdleRacePromise, createIdleRejectedPromise, createIdleResolvedPromise, createNativeAllPromise, createNativeAllSettledPromise, createNativeAnyPromise, createNativePromise, createNativeRacePromise, createNativeRejectedPromise, createNativeResolvedPromise, createPromise, createRacePromise, createRejectedPromise, createResolvedPromise, createSyncAllPromise, createSyncAllSettledPromise, createSyncAnyPromise, createSyncPromise, createSyncRacePromise, createSyncRejectedPromise, createSyncResolvedPromise, createTaskScheduler, createTimeoutPromise, doAwait, doAwaitResponse, doFinally, doWhileAsync, iterForOfAsync, setCreatePromiseImpl, setDefaultIdlePromiseTimeout, setDefaultIdleTimeout, setPromiseDebugState };\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_FEATURE_OPT_IN = \"featureOptIn\"; // Count: 4\r\nexport var _DYN_ON_CFG_CHANGE_RECEIV0 = \"onCfgChangeReceive\"; // Count: 2\r\nexport var _DYN_NON_OVERRIDE_CONFIGS = \"nonOverrideConfigs\"; // Count: 2\r\nexport var _DYN_SCHEDULE_FETCH_TIMEO1 = \"scheduleFetchTimeout\"; // Count: 2\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { isNullOrUndefined, isObject, objExtend, objForEachKey, setValueByKey } from \"@nevware21/ts-utils\";\r\nimport { _DYN_FEATURE_OPT_IN } from \"./__DynamicConstants\";\r\n/**\r\n * Delete a config key in the given cfg, if the config key exists in nonOverrideConfigs and its value is set to true\r\n * @param cfg cfg to modify\r\n * @param nonOverrideConfigs nonOverrideConfigs\r\n * @param curLevel cur config level, starting at 0\r\n * @param maxLevel max config level\r\n * @returns new copy of modified configs\r\n */\r\nexport function replaceByNonOverrideCfg(cfg, nonOverrideConfigs, curLevel, maxLevel) {\r\n try {\r\n var exceedMaxLevel = curLevel > maxLevel;\r\n if (exceedMaxLevel) {\r\n cfg = null;\r\n }\r\n var curCfg_1 = curLevel == 0 ? objExtend({}, cfg) : cfg; // only copy cfg at the begining level\r\n if (curCfg_1 && nonOverrideConfigs && !exceedMaxLevel) {\r\n objForEachKey(curCfg_1, function (key) {\r\n var nonOverrideVal = nonOverrideConfigs[key];\r\n if (!!nonOverrideVal) {\r\n if (isObject(curCfg_1[key]) && isObject(nonOverrideVal)) {\r\n curCfg_1[key] = replaceByNonOverrideCfg(curCfg_1[key], nonOverrideVal, ++curLevel, maxLevel);\r\n }\r\n else {\r\n delete curCfg_1[key];\r\n }\r\n }\r\n });\r\n }\r\n return curCfg_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // if errors happen, do nothing\r\n return cfg;\r\n}\r\n// CDN Mode, value = B (CDN value = B)\r\n// |--------------------------------------------------------------------------|-----------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ----------- | ----------- | ----------- | --------- | --------- |\r\n// | User Mode, value = A | none | none | disabled | enabled | enabled | disabled |\r\n// (user Value = A) | disabled | disabled | disabled | disabled | enabled | disabled |\r\n// | enabled | enabled | disabled | enabled | enabled | disabled |\r\n// | none(blockCdn) | none | none | none | none | none |\r\n// | disabled(blockCdn) | disabled | disabled | disabled | disabled | disabled |\r\n// | enabled(blockCdn) | enabled | enabled | enabled | enabled | enabled |\r\n// This matrix identifies how feature based overrides are selected (if present)\r\n// cdn Mode (cdn Value = B)\r\n// |---------------------------------------------------------------------------|\r\n// | | none | disabled | enabled | forceOn | forceOff |\r\n// | ------------------ | ---------| ---------| ---------| ---------|----------|\r\n// | User Mode | none | A | A | A || B | B || A | B || A |\r\n// (user Value = A) | disabled | A | A | A | B || A | B || A |\r\n// | enabled | A | A | A || B | B || A | B || A |\r\n// | none(blockCdn) | A | A | A | A | A |\r\n// | disabled(blockCdn) | A | A | A | A | A |\r\n// | enabled(blockCdn) | A | A | A | A | A |\r\n// Note:\r\n// Where the \"value\" is an object (map) of encoded key/values which will be used to override the real configuration\r\n// A = either the user supplied enable/disable value (via the `config.featureOptIn[name]`) or if not defined by the user the SDK defaults of the same.\r\n// B = The enable/disable value obtained from the CDN for the named feature\r\n// These are evaluated based on the above matrix to either\r\n// - A (Always the user/sdk value)\r\n// - B (Always the value from the CDN)\r\n// - A || B (If A is null or undefined use the value from the CDN (B) otherwise A)\r\n// - B || A (If B is null or undefined use the user/SDK value otherwise use the value from the CDN)\r\n//\r\n// The result of the value may also be null / undefined, which means there are no overrides to apply when the feature is enabled\r\nvar F = \"featureOptIn.\";\r\nvar M = \".mode\";\r\nvar ON = \".onCfg\";\r\nvar OFF = \".offCfg\";\r\nexport function resolveCdnFeatureCfg(field, cdnCfg, userOptInDetails) {\r\n var _a;\r\n // cdn conifg value\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n var cdnFt = (cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */] || {})[field] || { mode: 1 /* CdnFeatureMode.none */ };\r\n var cdnM = cdnFt.mode;\r\n var cdnOnV = cdnFt.onCfg;\r\n var cdnOffV = cdnFt.offCfg;\r\n var userFt = (userOptInDetails || {})[field] || { mode: 2 /* FeatureOptInMode.disable */ }; // default user mode is disable\r\n var userM = userFt.mode;\r\n var userOnV = userFt.onCfg;\r\n var userOffV = userFt.offCfg;\r\n var blockCdn = !!userFt.blockCdnCfg;\r\n var mFld = F + field + M;\r\n var onFld = F + field + ON;\r\n var offFld = F + field + OFF;\r\n var mode = userM;\r\n var onV = userOnV;\r\n var offV = userOffV;\r\n if (!blockCdn) {\r\n if (cdnM === 4 /* CdnFeatureMode.forceOn */ || cdnM === 5 /* CdnFeatureMode.forceOff */) {\r\n mode = (cdnM == 4 /* CdnFeatureMode.forceOn */ ? 3 /* FeatureOptInMode.enable */ : 2 /* FeatureOptInMode.disable */);\r\n onV = cdnOnV || userOnV;\r\n offV = cdnOffV || userOffV;\r\n }\r\n else if (cdnM === 2 /* CdnFeatureMode.disable */ || userM === 2 /* FeatureOptInMode.disable */) {\r\n mode = 2 /* FeatureOptInMode.disable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 3 /* CdnFeatureMode.enable */) {\r\n mode = 3 /* FeatureOptInMode.enable */;\r\n onV = userOnV || cdnOnV;\r\n offV = userOffV || cdnOffV;\r\n }\r\n else if (cdnM === 1 /* CdnFeatureMode.none */ && userM === 1 /* FeatureOptInMode.none */) {\r\n mode = 1 /* FeatureOptInMode.none */;\r\n }\r\n }\r\n return _a = {},\r\n _a[mFld] = mode,\r\n _a[onFld] = onV,\r\n _a[offFld] = offV,\r\n _a;\r\n}\r\n// helper function to get cdn config with opt-in features\r\nexport function applyCdnfeatureCfg(cdnCfg, core) {\r\n try {\r\n if (!cdnCfg || !cdnCfg.enabled) {\r\n return null;\r\n }\r\n if (!cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]) {\r\n return cdnCfg.config;\r\n }\r\n var optInMap = cdnCfg[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */];\r\n var cdnConfig_1 = cdnCfg.config || {};\r\n objForEachKey(optInMap, function (key) {\r\n var featureVal = resolveCdnFeatureCfg(key, cdnCfg, core.config[_DYN_FEATURE_OPT_IN /* @min:%2efeatureOptIn */]);\r\n if (!isNullOrUndefined(featureVal)) {\r\n objForEachKey(featureVal, function (config, val) {\r\n setValueByKey(cdnConfig_1, config, val);\r\n });\r\n _overrideCdnCfgByFeature(key, featureVal, cdnConfig_1);\r\n }\r\n });\r\n return cdnConfig_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n}\r\nfunction _overrideCdnCfgByFeature(field, ftVal, config) {\r\n var mode = ftVal[F + field + M];\r\n var val = ftVal[F + field + ON];\r\n var dVal = ftVal[F + field + OFF];\r\n var target = null;\r\n if (mode === 3 /* FeatureOptInMode.enable */) {\r\n target = val;\r\n }\r\n if (mode === 2 /* FeatureOptInMode.disable */) {\r\n target = dVal;\r\n }\r\n if (target) {\r\n objForEachKey(target, function (key, cfg) {\r\n setValueByKey(config, key, cfg);\r\n });\r\n }\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* CfgSyncPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, createProcessTelemetryContext, createUniqueNamespace, eventOff, eventOn, getGlobal, getJSON, isFetchSupported, isXhrSupported, mergeEvtNamespace, onConfigChange, sendCustomEvent } from \"@microsoft/applicationinsights-core-js\";\r\nimport { doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { isFunction, isNullOrUndefined, isPlainObject, objDeepFreeze, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { applyCdnfeatureCfg, replaceByNonOverrideCfg } from \"./CfgSyncHelperFuncs\";\r\nimport { _DYN_NON_OVERRIDE_CONFIGS, _DYN_ON_CFG_CHANGE_RECEIV0, _DYN_SCHEDULE_FETCH_TIMEO1 } from \"./__DynamicConstants\";\r\nvar EVENT_NAME = \"ai_cfgsync\";\r\nvar STR_GET_METHOD = \"GET\";\r\nvar FETCH_TIMEOUT = 1800000; // 30 minutes\r\nvar udfVal = undefined;\r\nvar defaultNonOverrideCfg = { instrumentationKey: true, connectionString: true, endpointUrl: true };\r\nvar _defaultConfig = objDeepFreeze((_a = {\r\n syncMode: 1 /* ICfgSyncMode.Broadcast */,\r\n blkCdnCfg: udfVal,\r\n customEvtName: udfVal,\r\n cfgUrl: udfVal,\r\n overrideSyncFn: udfVal,\r\n overrideFetchFn: udfVal\r\n },\r\n _a[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:onCfgChangeReceive */] = udfVal,\r\n _a[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:scheduleFetchTimeout */] = FETCH_TIMEOUT,\r\n _a[_DYN_NON_OVERRIDE_CONFIGS /* @min:nonOverrideConfigs */] = defaultNonOverrideCfg,\r\n _a));\r\nvar CfgSyncPlugin = /** @class */ (function (_super) {\r\n __extends(CfgSyncPlugin, _super);\r\n function CfgSyncPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 198;\r\n _this.identifier = \"AppInsightsCfgSyncPlugin\";\r\n var _extensionConfig;\r\n var _mainConfig; // throttle config should be wrapped in IConfiguration\r\n var _evtName;\r\n var _evtNamespace;\r\n var _cfgUrl;\r\n var _timeoutHandle;\r\n var _receiveChanges;\r\n var _broadcastChanges;\r\n var _blkCdnCfg;\r\n var _fetchTimeout;\r\n var _retryCnt;\r\n var _onCfgChangeReceive;\r\n var _nonOverrideConfigs;\r\n var _fetchFn;\r\n var _overrideFetchFn;\r\n var _overrideSyncFn;\r\n var _paused = false;\r\n dynamicProto(CfgSyncPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(_self.identifier), core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n };\r\n _self.getCfg = function () {\r\n return _mainConfig;\r\n };\r\n _self.pause = function () {\r\n _paused = true;\r\n _clearScheduledTimer();\r\n };\r\n _self.resume = function () {\r\n _paused = false;\r\n _setupTimer();\r\n };\r\n // used for V2 to manaully trigger config udpate\r\n _self.setCfg = function (config) {\r\n return _setCfg(config);\r\n };\r\n _self.sync = function (customDetails) {\r\n return _sendCfgsyncEvents(customDetails);\r\n };\r\n _self.updateEventListenerName = function (eventName) {\r\n return _updateEventListenerName(eventName);\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _eventOff();\r\n _clearScheduledTimer();\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_broadcastChanges, _receiveChanges, _evtName, _blkCdnCfg, _nonOverrideConfigs];\r\n };\r\n function _initDefaults() {\r\n _mainConfig = null;\r\n _evtName = null;\r\n _evtNamespace = null;\r\n _cfgUrl = null;\r\n _receiveChanges = null;\r\n _broadcastChanges = null;\r\n _nonOverrideConfigs = null;\r\n _timeoutHandle = null;\r\n _fetchTimeout = null;\r\n _retryCnt = null;\r\n _blkCdnCfg = null;\r\n _overrideFetchFn = null;\r\n _overrideSyncFn = null;\r\n _onCfgChangeReceive = null;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n var preBlkCdn = _blkCdnCfg;\r\n _blkCdnCfg = !!_extensionConfig.blkCdnCfg;\r\n // avoid initial call\r\n if (!isNullOrUndefined(preBlkCdn) && preBlkCdn !== _blkCdnCfg) {\r\n if (!_blkCdnCfg && _cfgUrl) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n else {\r\n _clearScheduledTimer();\r\n }\r\n }\r\n if (isNullOrUndefined(_receiveChanges)) {\r\n _receiveChanges = _extensionConfig.syncMode === 2 /* ICfgSyncMode.Receive */;\r\n }\r\n if (isNullOrUndefined(_broadcastChanges)) {\r\n _broadcastChanges = _extensionConfig.syncMode === 1 /* ICfgSyncMode.Broadcast */;\r\n }\r\n var newEvtName = _extensionConfig.customEvtName || EVENT_NAME;\r\n if (_evtName !== newEvtName) {\r\n if (_receiveChanges) {\r\n _updateEventListenerName(newEvtName);\r\n }\r\n else {\r\n _eventOff();\r\n _evtName = newEvtName;\r\n }\r\n }\r\n if (isNullOrUndefined(_cfgUrl)) {\r\n _cfgUrl = _extensionConfig.cfgUrl;\r\n }\r\n // if cfgUrl is set, we will ignore core config change\r\n if (!_cfgUrl) {\r\n _mainConfig = config;\r\n if (_broadcastChanges) {\r\n _sendCfgsyncEvents();\r\n }\r\n }\r\n }));\r\n _overrideSyncFn = _extensionConfig.overrideSyncFn;\r\n _overrideFetchFn = _extensionConfig.overrideFetchFn;\r\n _onCfgChangeReceive = _extensionConfig[_DYN_ON_CFG_CHANGE_RECEIV0 /* @min:%2eonCfgChangeReceive */];\r\n _nonOverrideConfigs = _extensionConfig[_DYN_NON_OVERRIDE_CONFIGS /* @min:%2enonOverrideConfigs */]; // override values should not be changed\r\n _fetchTimeout = _extensionConfig[_DYN_SCHEDULE_FETCH_TIMEO1 /* @min:%2escheduleFetchTimeout */];\r\n _fetchFn = _getFetchFnInterface();\r\n _retryCnt = 0;\r\n // NOT support cfgURL change to avoid mutiple fetch calls\r\n if (_cfgUrl && !_blkCdnCfg) {\r\n _fetchFn && _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }\r\n }\r\n function _setCfg(config, isAutoSync) {\r\n if (config) {\r\n _mainConfig = config;\r\n if (!!isAutoSync && !_paused) {\r\n return _sendCfgsyncEvents();\r\n }\r\n if (_receiveChanges && !_paused) {\r\n _self.core.updateCfg(config);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _eventOff() {\r\n try {\r\n var global_1 = getGlobal();\r\n if (global_1) {\r\n eventOff(global_1, null, null, _evtNamespace);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _sendCfgsyncEvents(customDetails) {\r\n try {\r\n if (!!_overrideSyncFn && isFunction(_overrideSyncFn)) {\r\n return _overrideSyncFn(_mainConfig, customDetails);\r\n }\r\n return sendCustomEvent(_evtName, _mainConfig, customDetails);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _updateEventListenerName(name) {\r\n try {\r\n _eventOff();\r\n if (name) {\r\n _evtName = name;\r\n _addEventListener();\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getFetchFnInterface() {\r\n var _fetchFn = _overrideFetchFn;\r\n if (isNullOrUndefined(_fetchFn)) {\r\n if (isFetchSupported()) {\r\n _fetchFn = _fetchSender;\r\n }\r\n else if (isXhrSupported()) {\r\n _fetchFn = _xhrSender;\r\n }\r\n }\r\n return _fetchFn;\r\n }\r\n function _fetchSender(url, oncomplete, isAutoSync) {\r\n var global = getGlobal();\r\n var fetchFn = (global && global.fetch) || null;\r\n if (url && fetchFn && isFunction(fetchFn)) {\r\n try {\r\n var init = {\r\n method: STR_GET_METHOD\r\n };\r\n var request = new Request(url, init);\r\n doAwaitResponse(fetch(request), function (result) {\r\n var response = result.value;\r\n if (!result.rejected) {\r\n if (response.ok) {\r\n doAwaitResponse(response.text(), function (res) {\r\n _doOnComplete(oncomplete, response.status, res.value, isAutoSync);\r\n });\r\n }\r\n else {\r\n _doOnComplete(oncomplete, response.status, null, isAutoSync);\r\n }\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 400);\r\n }\r\n });\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n function _xhrSender(url, oncomplete, isAutoSync) {\r\n try {\r\n var xhr_1 = new XMLHttpRequest();\r\n xhr_1.open(STR_GET_METHOD, url);\r\n xhr_1.onreadystatechange = function () {\r\n if (xhr_1.readyState === XMLHttpRequest.DONE) {\r\n _doOnComplete(oncomplete, xhr_1.status, xhr_1.responseText, isAutoSync);\r\n }\r\n };\r\n xhr_1.onerror = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.ontimeout = function () {\r\n _doOnComplete(oncomplete, 400);\r\n };\r\n xhr_1.send();\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _onFetchComplete(status, response, isAutoSync) {\r\n try {\r\n if (status >= 200 && status < 400 && response) {\r\n _retryCnt = 0; // any successful response will reset retry count to 0\r\n var JSON_1 = getJSON();\r\n if (JSON_1) {\r\n var cdnCfg = JSON_1.parse(response); //comments are not allowed\r\n var cfg = applyCdnfeatureCfg(cdnCfg, _self.core);\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg, isAutoSync);\r\n //cfg && _setCfg(cfg, isAutoSync);\r\n }\r\n }\r\n else {\r\n _retryCnt++;\r\n }\r\n if (_retryCnt < 3) {\r\n _setupTimer();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doOnComplete(oncomplete, status, response, isAutoSync) {\r\n try {\r\n oncomplete(status, response, isAutoSync);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _addEventListener() {\r\n if (_receiveChanges) {\r\n var global_2 = getGlobal();\r\n if (global_2) {\r\n try {\r\n eventOn(global_2, _evtName, function (event) {\r\n // TODO: add more validation here\r\n // may include a \"name\" or some other features to check\r\n var cfgEvent = event && event.detail;\r\n if (_onCfgChangeReceive && cfgEvent) {\r\n _onCfgChangeReceive(cfgEvent);\r\n }\r\n else {\r\n var cfg = cfgEvent && cfgEvent.cfg;\r\n var newCfg = cfg && isPlainObject(cfg) && _replaceTartgetByKeys(cfg);\r\n newCfg && _setCfg(newCfg);\r\n }\r\n }, _evtNamespace, true);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n }\r\n }\r\n // 4 levels\r\n function _replaceTartgetByKeys(cfg, level) {\r\n var _cfg = null;\r\n try {\r\n if (cfg) {\r\n _cfg = replaceByNonOverrideCfg(cfg, _nonOverrideConfigs, 0, 5);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return _cfg;\r\n }\r\n /**\r\n * Sets up the timer which triggers fetching cdn every 30mins after inital call\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && _fetchTimeout) {\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _fetchFn(_cfgUrl, _onFetchComplete, _broadcastChanges);\r\n }, _fetchTimeout);\r\n _timeoutHandle.unref();\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryCnt = 0;\r\n }\r\n _self.processTelemetry = function (env, itemCtx) {\r\n _self.processNext(env, itemCtx);\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for CfgSyncPlugin.prototype.initialize.\r\n// Removed Stub for CfgSyncPlugin.prototype.getCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.setCfg.\r\n// Removed Stub for CfgSyncPlugin.prototype.sync.\r\n// Removed Stub for CfgSyncPlugin.prototype.updateEventListenerName.\r\n// Removed Stub for CfgSyncPlugin.prototype.pause.\r\n// Removed Stub for CfgSyncPlugin.prototype.resume.\r\n //// Removed Stub for CfgSyncPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n CfgSyncPlugin.__ieDyn=1;\n\n return CfgSyncPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { CfgSyncPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { arrForEach, createUniqueNamespace, eventOff, eventOn, getDocument, getNavigator, getWindow, isNullOrUndefined, isUndefined, mergeEvtNamespace } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_PUSH } from \"./__DynamicConstants\";\r\nfunction _disableEvents(target, evtNamespace) {\r\n eventOff(target, null, null, evtNamespace);\r\n}\r\n/**\r\n * Create a new OfflineListener instance to monitor browser online / offline events\r\n * @param parentEvtNamespace - The parent event namespace to append to any specific events for this instance\r\n */\r\nexport function createOfflineListener(parentEvtNamespace) {\r\n var _document = getDocument();\r\n var _navigator = getNavigator(); // Gets the window.navigator or workerNavigator depending on the global\r\n var _isListening = false;\r\n var listenerList = [];\r\n // Set the initial state\r\n // rState is changed by the browser, both via events and when we check the navigator.onLine property\r\n var rState = 1 /* eOfflineValue.Online */;\r\n if (_navigator && !isNullOrUndefined(_navigator.onLine) && !_navigator.onLine) { // navigator.onLine is undefined in react-native\r\n rState = 2 /* eOfflineValue.Offline */;\r\n }\r\n // ustate is changed by the user calling setOnlineState\r\n var uState = 0 /* eOfflineValue.Unknown */;\r\n // current state would be updated each time rState or uState is changed\r\n // it is a resolved value of rState and uState\r\n var _currentState = calCurrentState();\r\n var _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"OfflineListener\"), parentEvtNamespace);\r\n try {\r\n if (_enableEvents(getWindow())) {\r\n _isListening = true;\r\n }\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (target.ononline) {\r\n if (_enableEvents(target)) {\r\n _isListening = true;\r\n }\r\n }\r\n }\r\n }\r\n catch (e) {\r\n // this makes react-native less angry\r\n _isListening = false;\r\n }\r\n function _enableEvents(target) {\r\n var enabled = false;\r\n if (target) {\r\n enabled = eventOn(target, \"online\", _setOnline, _evtNamespace);\r\n if (enabled) {\r\n eventOn(target, \"offline\", _setOffline, _evtNamespace);\r\n }\r\n }\r\n return enabled;\r\n }\r\n function _isOnline() {\r\n return _currentState;\r\n }\r\n function calCurrentState() {\r\n if (uState === 2 /* eOfflineValue.Offline */ || rState === 2 /* eOfflineValue.Offline */) {\r\n return false;\r\n }\r\n return true; // if both unknown, then we assume the network is good\r\n }\r\n function listnerNoticeCheck() {\r\n // we were offline and are now online or we were online and now offline\r\n var newState = calCurrentState();\r\n if (_currentState !== newState) {\r\n _currentState = newState; // use the resolved state to update\r\n // send all the callbacks with the current state\r\n arrForEach(listenerList, function (callback) {\r\n var offlineState = {\r\n isOnline: _currentState,\r\n rState: rState,\r\n uState: uState\r\n };\r\n try {\r\n callback(offlineState);\r\n }\r\n catch (e) {\r\n // Do nothing, just making sure we run all of the callbacks\r\n }\r\n });\r\n }\r\n }\r\n function setOnlineState(newState) {\r\n uState = newState;\r\n listnerNoticeCheck();\r\n }\r\n function _setOnline() {\r\n rState = 1 /* eOfflineValue.Online */;\r\n listnerNoticeCheck();\r\n }\r\n function _setOffline() {\r\n rState = 2 /* eOfflineValue.Offline */;\r\n listnerNoticeCheck();\r\n }\r\n function _unload() {\r\n var win = getWindow();\r\n if (win && _isListening) {\r\n _disableEvents(win, _evtNamespace);\r\n if (_document) {\r\n // Also attach to the document.body or document\r\n var target = _document.body || _document;\r\n if (!isUndefined(target.ononline)) {\r\n _disableEvents(target, _evtNamespace);\r\n }\r\n }\r\n _isListening = false;\r\n }\r\n }\r\n function addListener(callback) {\r\n listenerList[_DYN_PUSH /* @min:%2epush */](callback);\r\n // Define rm as an instance of IUnloadHook\r\n return {\r\n rm: function () {\r\n var index = listenerList.indexOf(callback);\r\n if (index > -1) {\r\n return listenerList.splice(index, 1);\r\n }\r\n else {\r\n return;\r\n }\r\n }\r\n };\r\n }\r\n return {\r\n isOnline: _isOnline,\r\n isListening: function () { return _isListening; },\r\n unload: _unload,\r\n addListener: addListener,\r\n setOnlineState: setOnlineState\r\n };\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { createEnumStyle } from \"./EnumHelperFuncs\";\r\nexport var ActiveStatus = createEnumStyle({\r\n NONE: 0 /* eActiveStatus.NONE */,\r\n PENDING: 3 /* eActiveStatus.PENDING */,\r\n INACTIVE: 1 /* eActiveStatus.INACTIVE */,\r\n ACTIVE: 2 /* eActiveStatus.ACTIVE */\r\n});\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nexport var ChannelControllerPriority = 500;\r\nexport var DisabledPropertyName = \"Microsoft_ApplicationInsights_BypassAjaxInstrumentation\";\r\n// export const SampleRate = \"sampleRate\";\r\n// export const ProcessLegacy = \"ProcessLegacy\";\r\n// export const HttpMethod = \"http.method\";\r\n// export const DEFAULT_BREEZE_ENDPOINT = \"https://dc.services.visualstudio.com\";\r\n// export const DEFAULT_BREEZE_PATH = \"/v2/track\";\r\n// export const strNotSpecified = \"not_specified\";\r\n// export const strIkey = \"iKey\";\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, dumpObj, getNavigator, getWindow, isFunction, objKeys } from \"@nevware21/ts-utils\";\r\nimport { _DYN_DATA, _DYN_HEADERS, _DYN_INITIALIZE, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PROTOCOL, _DYN_REPLACE, _DYN_SEND_POST, _DYN_SET_REQUEST_HEADER, _DYN_STATUS, _DYN_TIMEOUT, _DYN_TO_LOWER_CASE, _DYN_URL_STRING, _DYN_VALUE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { DisabledPropertyName } from \"./Constants\";\r\nimport { _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getLocation, isBeaconsSupported, isFetchSupported, isXhrSupported, useXDomainRequest } from \"./EnvUtils\";\r\nimport { _getAllResponseHeaders, formatErrorMessageXdr, formatErrorMessageXhr, getResponseText, openXhr } from \"./HelperFuncs\";\r\nvar STR_EMPTY = \"\";\r\nvar STR_NO_RESPONSE_BODY = \"NoResponseBody\";\r\nvar _noResponseQs = \"&\" + STR_NO_RESPONSE_BODY + \"=true\";\r\nvar STR_POST_METHOD = \"POST\";\r\n/**\r\n * This Internal component\r\n * Manager SendPost functions\r\n * SendPostManger\r\n * @internal for internal use only\r\n */\r\nvar SenderPostManager = /** @class */ (function () {\r\n function SenderPostManager() {\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _enableSendPromise;\r\n var _isInitialized;\r\n var _diagLog;\r\n var _isOneDs;\r\n var _onCompleteFuncs;\r\n var _disableCredentials;\r\n var _fetchCredentials;\r\n var _fallbackInst;\r\n var _disableXhr;\r\n var _disableBeacon;\r\n var _disableBeaconSync;\r\n var _disableFetchKeepAlive;\r\n var _addNoResponse;\r\n var _timeoutWrapper;\r\n dynamicProto(SenderPostManager, this, function (_self, _base) {\r\n var _sendCredentials = true; // for 1ds\r\n _initDefaults();\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, diagLog) {\r\n _diagLog = diagLog;\r\n if (_isInitialized) {\r\n _throwInternal(_diagLog, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _self.SetConfig(config);\r\n _isInitialized = true;\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_isInitialized, _isOneDs, _disableCredentials, _enableSendPromise];\r\n };\r\n // This componet might get its config from sender, offline sender, 1ds post\r\n // so set this function to mock dynamic changes\r\n _self.SetConfig = function (config) {\r\n try {\r\n _onCompleteFuncs = config.senderOnCompleteCallBack || {};\r\n _disableCredentials = !!config.disableCredentials;\r\n _fetchCredentials = config.fetchCredentials;\r\n _isOneDs = !!config.isOneDs;\r\n _enableSendPromise = !!config.enableSendPromise;\r\n _disableXhr = !!config.disableXhr;\r\n _disableBeacon = !!config.disableBeacon;\r\n _disableBeaconSync = !!config.disableBeaconSync;\r\n _timeoutWrapper = config.timeWrapper;\r\n _addNoResponse = !!config.addNoResponse;\r\n _disableFetchKeepAlive = !!config.disableFetchKeepAlive;\r\n _fallbackInst = { sendPOST: _xhrSender };\r\n if (!_isOneDs) {\r\n _sendCredentials = false; // for appInsights, set it to false always\r\n }\r\n if (_disableCredentials) {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.protocol && location_1.protocol[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === \"file:\") {\r\n // Special case where a local html file fails with a CORS error on Chromium browsers\r\n _sendCredentials = false;\r\n }\r\n }\r\n return true;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n _self.getSyncFetchPayload = function () {\r\n return _syncFetchPayload;\r\n };\r\n _self.getSenderInst = function (transports, sync) {\r\n if (transports && transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n return _getSenderInterface(transports, sync);\r\n }\r\n return null;\r\n };\r\n _self.getFallbackInst = function () {\r\n return _fallbackInst;\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function (unloadCtx, unloadState) {\r\n _initDefaults();\r\n };\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(res, onComplete) {\r\n _doOnComplete(onComplete, 200, {}, res);\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(message, onComplete) {\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _doOnComplete(onComplete, 400, {});\r\n }\r\n function _onNoPayloadUrl(onComplete) {\r\n _onError(\"No endpoint url is provided for the batch\", onComplete);\r\n }\r\n function _getSenderInterface(transports, syncSupport) {\r\n var _a;\r\n var transportType = 0 /* TransportType.NotSet */;\r\n var sendPostFunc = null;\r\n var lp = 0;\r\n while (sendPostFunc == null && lp < transports[_DYN_LENGTH /* @min:%2elength */]) {\r\n transportType = transports[lp];\r\n if (!_disableXhr && transportType === 1 /* TransportType.Xhr */) {\r\n if (useXDomainRequest()) {\r\n // IE 8 and 9\r\n sendPostFunc = _xdrSender;\r\n }\r\n else if (isXhrSupported()) {\r\n sendPostFunc = _xhrSender;\r\n }\r\n }\r\n else if (transportType === 2 /* TransportType.Fetch */ && isFetchSupported(syncSupport) && (!syncSupport || !_disableFetchKeepAlive)) {\r\n sendPostFunc = _doFetchSender;\r\n }\r\n else if (transportType === 3 /* TransportType.Beacon */ && isBeaconsSupported() && (syncSupport ? !_disableBeaconSync : !_disableBeacon)) {\r\n sendPostFunc = _beaconSender;\r\n }\r\n lp++;\r\n }\r\n if (sendPostFunc) {\r\n return _a = {\r\n _transport: transportType,\r\n _isSync: syncSupport\r\n },\r\n _a[_DYN_SEND_POST /* @min:sendPOST */] = sendPostFunc,\r\n _a;\r\n }\r\n return null;\r\n }\r\n function _doOnComplete(oncomplete, status, headers, response) {\r\n try {\r\n oncomplete && oncomplete(status, headers, response);\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _doBeaconSend(payload, oncomplete) {\r\n var nav = getNavigator();\r\n var url = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!url) {\r\n _onNoPayloadUrl(oncomplete);\r\n // return true here, because we don't want to retry it with fallback sender\r\n return true;\r\n }\r\n url = payload[_DYN_URL_STRING /* @min:%2eurlString */] + (_addNoResponse ? _noResponseQs : STR_EMPTY);\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n // Chrome only allows CORS-safelisted values for the sendBeacon data argument\r\n // see: https://bugs.chromium.org/p/chromium/issues/detail?id=720283\r\n var plainTextBatch = _isOneDs ? data : new Blob([data], { type: \"text/plain;charset=UTF-8\" });\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n var queued = nav.sendBeacon(url, plainTextBatch);\r\n return queued;\r\n }\r\n /**\r\n * Send Beacon API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - not used\r\n * Note: Beacon API does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _beaconSender(payload, oncomplete, sync) {\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n try {\r\n if (data) {\r\n // The sendBeacon method returns true if the user agent is able to successfully queue the data for transfer. Otherwise it returns false.\r\n if (!_doBeaconSend(payload, oncomplete)) {\r\n var onRetry = _onCompleteFuncs && _onCompleteFuncs.beaconOnRetry;\r\n if (onRetry && isFunction(onRetry)) {\r\n onRetry(payload, oncomplete, _doBeaconSend);\r\n }\r\n else {\r\n _fallbackInst && _fallbackInst[_DYN_SEND_POST /* @min:%2esendPOST */](payload, oncomplete, true);\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n // if can send\r\n _onSuccess(STR_EMPTY, oncomplete);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _isOneDs && _warnToConsole(_diagLog, \"Failed to send telemetry using sendBeacon API. Ex:\" + dumpObj(e));\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, STR_EMPTY);\r\n }\r\n return;\r\n }\r\n /**\r\n * Send XMLHttpRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n */\r\n function _xhrSender(payload, oncomplete, sync) {\r\n //let internalPayload = payload as IInternalPayloadData;\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (_isOneDs && sync && payload.disableXhrSync) {\r\n sync = false;\r\n }\r\n //const xhr = new XMLHttpRequest();\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n var xhr = openXhr(STR_POST_METHOD, endPointUrl, _sendCredentials, true, sync, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n if (!_isOneDs) {\r\n // application/json should NOT add to 1ds post by default\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](\"Content-type\", \"application/json\");\r\n }\r\n arrForEach(objKeys(headers), function (headerName) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](headerName, headers[headerName]);\r\n });\r\n xhr.onreadystatechange = function () {\r\n if (!_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n if (xhr.readyState === 4) {\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }\r\n };\r\n xhr.onload = function () {\r\n if (_isOneDs) {\r\n _doOnReadyFunc(xhr);\r\n }\r\n };\r\n function _doOnReadyFunc(xhr) {\r\n var onReadyFunc = _onCompleteFuncs && _onCompleteFuncs.xhrOnComplete;\r\n var onReadyFuncExist = onReadyFunc && isFunction(onReadyFunc);\r\n if (onReadyFuncExist) {\r\n onReadyFunc(xhr, oncomplete, payload);\r\n }\r\n else {\r\n var response = getResponseText(xhr);\r\n _doOnComplete(oncomplete, xhr[_DYN_STATUS /* @min:%2estatus */], _getAllResponseHeaders(xhr, _isOneDs), response);\r\n }\r\n }\r\n xhr.onerror = function (event) {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 400, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n rejectFunc && rejectFunc(event);\r\n };\r\n xhr.ontimeout = function () {\r\n _doOnComplete(oncomplete, _isOneDs ? xhr[_DYN_STATUS /* @min:%2estatus */] : 500, _getAllResponseHeaders(xhr, _isOneDs), _isOneDs ? STR_EMPTY : formatErrorMessageXhr(xhr));\r\n resolveFunc && resolveFunc(false);\r\n };\r\n xhr.send(payload[_DYN_DATA /* @min:%2edata */]);\r\n return thePromise;\r\n }\r\n /**\r\n * Send fetch API request\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - For fetch this identifies whether we are \"unloading\" (false) or a normal request\r\n */\r\n function _doFetchSender(payload, oncomplete, sync) {\r\n var _a;\r\n var endPointUrl = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n var batch = payload[_DYN_DATA /* @min:%2edata */];\r\n var plainTextBatch = _isOneDs ? batch : new Blob([batch], { type: \"application/json\" });\r\n var thePromise;\r\n var resolveFunc;\r\n var rejectFunc;\r\n var requestHeaders = new Headers();\r\n var batchLength = batch[_DYN_LENGTH /* @min:%2elength */];\r\n var ignoreResponse = false;\r\n var responseHandled = false;\r\n var headers = payload[_DYN_HEADERS /* @min:%2eheaders */] || {};\r\n //TODO: handle time out for 1ds\r\n var init = (_a = {\r\n method: STR_POST_METHOD,\r\n body: plainTextBatch\r\n },\r\n _a[DisabledPropertyName] = true // Mark so we don't attempt to track this request\r\n ,\r\n _a);\r\n // Only add headers if there are headers to add, due to issue with some polyfills\r\n if (payload.headers && objKeys(payload.headers)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(objKeys(headers), function (headerName) {\r\n requestHeaders.append(headerName, headers[headerName]);\r\n });\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = requestHeaders;\r\n }\r\n if (_fetchCredentials) { // if user passed in this value via post channel (1ds), then use it\r\n init.credentials = _fetchCredentials;\r\n }\r\n else if (_sendCredentials && _isOneDs) {\r\n // for 1ds, Don't send credentials when URL is file://\r\n init.credentials = \"include\";\r\n }\r\n if (sync) {\r\n init.keepalive = true;\r\n _syncFetchPayload += batchLength;\r\n if (_isOneDs) {\r\n if (payload[\"_sendReason\"] === 2 /* SendRequestReason.Unload */) {\r\n // As a sync request (during unload), it is unlikely that we will get a chance to process the response so\r\n // just like beacon send assume that the events have been accepted and processed\r\n ignoreResponse = true;\r\n if (_addNoResponse) {\r\n endPointUrl += _noResponseQs;\r\n }\r\n }\r\n }\r\n else {\r\n // for appinsights, set to true for all sync request\r\n ignoreResponse = true;\r\n }\r\n }\r\n var request = new Request(endPointUrl, init);\r\n try {\r\n // Also try and tag the request (just in case the value in init is not copied over)\r\n request[DisabledPropertyName] = true;\r\n }\r\n catch (e) {\r\n // If the environment has locked down the XMLHttpRequest (preventExtensions and/or freeze), this would\r\n // cause the request to fail and we no telemetry would be sent\r\n }\r\n if (!sync && _enableSendPromise) {\r\n thePromise = createPromise(function (resolve, reject) {\r\n resolveFunc = resolve;\r\n rejectFunc = reject;\r\n });\r\n }\r\n if (!endPointUrl) {\r\n _onNoPayloadUrl(oncomplete);\r\n resolveFunc && resolveFunc(false);\r\n return;\r\n }\r\n function _handleError(res) {\r\n // In case there is an error in the request. Set the status to 0 for 1ds and 400 for appInsights\r\n // so that the events can be retried later.\r\n _doOnComplete(oncomplete, _isOneDs ? 0 : 400, {}, _isOneDs ? STR_EMPTY : res);\r\n }\r\n function _onFetchComplete(response, payload, value) {\r\n var status = response[_DYN_STATUS /* @min:%2estatus */];\r\n var onCompleteFunc = _onCompleteFuncs.fetchOnComplete;\r\n if (onCompleteFunc && isFunction(onCompleteFunc)) {\r\n onCompleteFunc(response, oncomplete, value || STR_EMPTY, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, status, {}, value || STR_EMPTY);\r\n }\r\n }\r\n try {\r\n doAwaitResponse(fetch(_isOneDs ? endPointUrl : request, _isOneDs ? init : null), function (result) {\r\n if (sync) {\r\n _syncFetchPayload -= batchLength;\r\n batchLength = 0;\r\n }\r\n if (!responseHandled) {\r\n responseHandled = true;\r\n if (!result.rejected) {\r\n var response_1 = result[_DYN_VALUE /* @min:%2evalue */];\r\n try {\r\n /**\r\n * The Promise returned from fetch() won’t reject on HTTP error status even if the response is an HTTP 404 or 500.\r\n * Instead, it will resolve normally (with ok status set to false), and it will only reject on network failure\r\n * or if anything prevented the request from completing.\r\n */\r\n if (!_isOneDs && !response_1.ok) {\r\n // this is for appInsights only\r\n _handleError(response_1.statusText);\r\n resolveFunc && resolveFunc(false);\r\n }\r\n else {\r\n if (_isOneDs && !response_1.body) {\r\n _onFetchComplete(response_1, null, STR_EMPTY);\r\n resolveFunc && resolveFunc(true);\r\n }\r\n else {\r\n doAwaitResponse(response_1.text(), function (resp) {\r\n _onFetchComplete(response_1, payload, resp[_DYN_VALUE /* @min:%2evalue */]);\r\n resolveFunc && resolveFunc(true);\r\n });\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n else {\r\n _handleError(result.reason && result.reason[_DYN_MESSAGE /* @min:%2emessage */]);\r\n rejectFunc && rejectFunc(result.reason);\r\n }\r\n }\r\n });\r\n }\r\n catch (e) {\r\n if (!responseHandled) {\r\n _handleError(dumpObj(e));\r\n rejectFunc && rejectFunc(e);\r\n }\r\n }\r\n if (ignoreResponse && !responseHandled) {\r\n // Assume success during unload processing as we most likely won't get the response\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 200, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n if (_isOneDs && !responseHandled && payload[_DYN_TIMEOUT /* @min:%2etimeout */] > 0) {\r\n // Simulate timeout\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n if (!responseHandled) {\r\n // Assume a 500 response (which will cause a retry)\r\n responseHandled = true;\r\n _doOnComplete(oncomplete, 500, {});\r\n resolveFunc && resolveFunc(true);\r\n }\r\n }, payload[_DYN_TIMEOUT /* @min:%2etimeout */]);\r\n }\r\n return thePromise;\r\n }\r\n /**\r\n * Send XDomainRequest\r\n * @param payload - {string} - The data payload to be sent.\r\n * @param sync - {boolean} - Indicates if the request should be sent synchronously\r\n *\r\n * Note: XDomainRequest does not support sync requests. This 'isAsync' parameter is added\r\n * to maintain consistency with the xhrSender's contract\r\n * Note: XDomainRequest does not support custom headers and we are not able to get\r\n * appId from the backend for the correct correlation.\r\n */\r\n function _xdrSender(payload, oncomplete, sync) {\r\n // It doesn't support custom headers, so no action is taken with current requestHeaders\r\n var _window = getWindow();\r\n var xdr = new XDomainRequest();\r\n var data = payload[_DYN_DATA /* @min:%2edata */];\r\n xdr.onload = function () {\r\n var response = getResponseText(xdr);\r\n var onloadFunc = _onCompleteFuncs && _onCompleteFuncs.xdrOnComplete;\r\n if (onloadFunc && isFunction(onloadFunc)) {\r\n onloadFunc(xdr, oncomplete, payload);\r\n }\r\n else {\r\n _doOnComplete(oncomplete, 200, {}, response);\r\n }\r\n };\r\n xdr.onerror = function () {\r\n _doOnComplete(oncomplete, 400, {}, _isOneDs ? STR_EMPTY : formatErrorMessageXdr(xdr));\r\n };\r\n xdr.ontimeout = function () {\r\n _doOnComplete(oncomplete, 500, {});\r\n };\r\n xdr.onprogress = function () { };\r\n // XDomainRequest requires the same protocol as the hosting page.\r\n // If the protocol doesn't match, we can't send the telemetry :(.\r\n var hostingProtocol = _window && _window.location && _window.location[_DYN_PROTOCOL /* @min:%2eprotocol */] || \"\";\r\n var endpoint = payload[_DYN_URL_STRING /* @min:%2eurlString */];\r\n if (!endpoint) {\r\n _onNoPayloadUrl(oncomplete);\r\n return;\r\n }\r\n if (!_isOneDs && endpoint.lastIndexOf(hostingProtocol, 0) !== 0) {\r\n var msg = \"Cannot send XDomain request. The endpoint URL protocol doesn't match the hosting page protocol.\";\r\n _throwInternal(_diagLog, 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + msg);\r\n _onError(msg, oncomplete);\r\n return;\r\n }\r\n var endpointUrl = _isOneDs ? endpoint : endpoint[_DYN_REPLACE /* @min:%2ereplace */](/^(https?:)/, \"\");\r\n xdr.open(STR_POST_METHOD, endpointUrl);\r\n if (payload[_DYN_TIMEOUT /* @min:%2etimeout */]) {\r\n xdr[_DYN_TIMEOUT /* @min:%2etimeout */] = payload[_DYN_TIMEOUT /* @min:%2etimeout */];\r\n }\r\n xdr.send(data);\r\n if (_isOneDs && sync) {\r\n _timeoutWrapper && _timeoutWrapper.set(function () {\r\n xdr.send(data);\r\n }, 0);\r\n }\r\n else {\r\n xdr.send(data);\r\n }\r\n }\r\n function _initDefaults() {\r\n _syncFetchPayload = 0;\r\n _isInitialized = false;\r\n _enableSendPromise = false;\r\n _diagLog = null;\r\n _isOneDs = null;\r\n _onCompleteFuncs = null;\r\n _disableCredentials = null;\r\n _fetchCredentials = null;\r\n _fallbackInst = null;\r\n _disableXhr = false;\r\n _disableBeacon = false;\r\n _disableBeaconSync = false;\r\n _disableFetchKeepAlive = false;\r\n _addNoResponse = false;\r\n _timeoutWrapper = null;\r\n }\r\n });\r\n }\r\n// Removed Stub for SenderPostManager.prototype.initialize.\r\n// Removed Stub for SenderPostManager.prototype.getSyncFetchPayload.\r\n// Removed Stub for SenderPostManager.prototype.SetConfig.\r\n// Removed Stub for SenderPostManager.prototype.getSenderInst.\r\n// Removed Stub for SenderPostManager.prototype.getFallbackInst.\r\n// Removed Stub for SenderPostManager.prototype._doTeardown.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n SenderPostManager.__ieDyn=1;\n\n return SenderPostManager;\r\n}());\r\nexport { SenderPostManager };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrSlice, getLength } from \"@nevware21/ts-utils\";\r\nimport { _DYN_UNLOAD } from \"../__DynamicConstants\";\r\n/**\r\n * Run the unload function of the target object if it exists\r\n * @param target - The target object that contains the unload function\r\n * @param isAsync - The caller identifies whether it is expecting the operation to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @returns The result of the target function\r\n */\r\nexport function runTargetUnload(target, isAsync) {\r\n if (target && target[_DYN_UNLOAD /* @min:%2eunload */]) {\r\n return target[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n }\r\n}\r\n/**\r\n * Call the unload function on all targets handling any returned [IPromise](https://nevware21.github.io/ts-async/typedoc/interfaces/IPromise.html)\r\n * / Promise before calling the next targets unload\r\n * @param targets - An array of the targets to unload\r\n * @param isAsync - The caller identifies whether it is expecting the operations to complete synchronously or asynchronously. Even\r\n * if the caller is not waiting the operation may still be performed asynchronously depending on the component and the reverse is\r\n * also true.\r\n * @param done - Optional callback function to call once all of the unload functions have been called.\r\n */\r\nexport function doUnloadAll(targets, isAsync, done) {\r\n var result;\r\n if (!done) {\r\n result = createPromise(function (resolved) {\r\n done = resolved;\r\n });\r\n }\r\n if (targets && getLength(targets) > 0) {\r\n doAwaitResponse(runTargetUnload(targets[0], isAsync), function () {\r\n doUnloadAll(arrSlice(targets, 1), isAsync, done);\r\n });\r\n }\r\n else {\r\n done();\r\n }\r\n return result;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_NAME } from \"../__DynamicConstants\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getJSON } from \"./EnvUtils\";\r\n/**\r\n * Parses the response from the backend.\r\n * @param response - XMLHttpRequest or XDomainRequest response\r\n */\r\nexport function parseResponse(response, diagLog) {\r\n try {\r\n if (response && response !== \"\") {\r\n var result = getJSON().parse(response);\r\n if (result && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && result[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] >= result.itemsAccepted &&\r\n result.itemsReceived - result.itemsAccepted === result.errors[_DYN_LENGTH /* @min:%2elength */]) {\r\n return result;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 43 /* _eInternalMessageId.InvalidBackendResponse */, \"Cannot parse the response. \" + (e[_DYN_NAME /* @min:%2ename */] || dumpObj(e)), {\r\n response: response\r\n });\r\n }\r\n return null;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport { createClassFromInterface } from \"@microsoft/applicationinsights-core-js\";\r\nfunction _aiNameFunc(baseName) {\r\n var aiName = \"ai.\" + baseName + \".\";\r\n return function (name) {\r\n return aiName + name;\r\n };\r\n}\r\nvar _aiApplication = _aiNameFunc(\"application\");\r\nvar _aiDevice = _aiNameFunc(\"device\");\r\nvar _aiLocation = _aiNameFunc(\"location\");\r\nvar _aiOperation = _aiNameFunc(\"operation\");\r\nvar _aiSession = _aiNameFunc(\"session\");\r\nvar _aiUser = _aiNameFunc(\"user\");\r\nvar _aiCloud = _aiNameFunc(\"cloud\");\r\nvar _aiInternal = _aiNameFunc(\"internal\");\r\nvar ContextTagKeys = /** @class */ (function (_super) {\r\n __extends(ContextTagKeys, _super);\r\n function ContextTagKeys() {\r\n return _super.call(this) || this;\r\n }\r\n return ContextTagKeys;\r\n}(createClassFromInterface({\r\n applicationVersion: _aiApplication(\"ver\"),\r\n applicationBuild: _aiApplication(\"build\"),\r\n applicationTypeId: _aiApplication(\"typeId\"),\r\n applicationId: _aiApplication(\"applicationId\"),\r\n applicationLayer: _aiApplication(\"layer\"),\r\n deviceId: _aiDevice(\"id\"),\r\n deviceIp: _aiDevice(\"ip\"),\r\n deviceLanguage: _aiDevice(\"language\"),\r\n deviceLocale: _aiDevice(\"locale\"),\r\n deviceModel: _aiDevice(\"model\"),\r\n deviceFriendlyName: _aiDevice(\"friendlyName\"),\r\n deviceNetwork: _aiDevice(\"network\"),\r\n deviceNetworkName: _aiDevice(\"networkName\"),\r\n deviceOEMName: _aiDevice(\"oemName\"),\r\n deviceOS: _aiDevice(\"os\"),\r\n deviceOSVersion: _aiDevice(\"osVersion\"),\r\n deviceRoleInstance: _aiDevice(\"roleInstance\"),\r\n deviceRoleName: _aiDevice(\"roleName\"),\r\n deviceScreenResolution: _aiDevice(\"screenResolution\"),\r\n deviceType: _aiDevice(\"type\"),\r\n deviceMachineName: _aiDevice(\"machineName\"),\r\n deviceVMName: _aiDevice(\"vmName\"),\r\n deviceBrowser: _aiDevice(\"browser\"),\r\n deviceBrowserVersion: _aiDevice(\"browserVersion\"),\r\n locationIp: _aiLocation(\"ip\"),\r\n locationCountry: _aiLocation(\"country\"),\r\n locationProvince: _aiLocation(\"province\"),\r\n locationCity: _aiLocation(\"city\"),\r\n operationId: _aiOperation(\"id\"),\r\n operationName: _aiOperation(\"name\"),\r\n operationParentId: _aiOperation(\"parentId\"),\r\n operationRootId: _aiOperation(\"rootId\"),\r\n operationSyntheticSource: _aiOperation(\"syntheticSource\"),\r\n operationCorrelationVector: _aiOperation(\"correlationVector\"),\r\n sessionId: _aiSession(\"id\"),\r\n sessionIsFirst: _aiSession(\"isFirst\"),\r\n sessionIsNew: _aiSession(\"isNew\"),\r\n userAccountAcquisitionDate: _aiUser(\"accountAcquisitionDate\"),\r\n userAccountId: _aiUser(\"accountId\"),\r\n userAgent: _aiUser(\"userAgent\"),\r\n userId: _aiUser(\"id\"),\r\n userStoreRegion: _aiUser(\"storeRegion\"),\r\n userAuthUserId: _aiUser(\"authUserId\"),\r\n userAnonymousUserAcquisitionDate: _aiUser(\"anonUserAcquisitionDate\"),\r\n userAuthenticatedUserAcquisitionDate: _aiUser(\"authUserAcquisitionDate\"),\r\n cloudName: _aiCloud(\"name\"),\r\n cloudRole: _aiCloud(\"role\"),\r\n cloudRoleVer: _aiCloud(\"roleVer\"),\r\n cloudRoleInstance: _aiCloud(\"roleInstance\"),\r\n cloudEnvironment: _aiCloud(\"environment\"),\r\n cloudLocation: _aiCloud(\"location\"),\r\n cloudDeploymentUnit: _aiCloud(\"deploymentUnit\"),\r\n internalNodeName: _aiInternal(\"nodeName\"),\r\n internalSdkVersion: _aiInternal(\"sdkVersion\"),\r\n internalAgentVersion: _aiInternal(\"agentVersion\"),\r\n internalSnippet: _aiInternal(\"snippet\"),\r\n internalSdkSrc: _aiInternal(\"sdkSrc\")\r\n})));\r\nexport { ContextTagKeys };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { ContextTagKeys } from \"./Contracts/ContextTagKeys\";\r\nexport var Extensions = {\r\n UserExt: \"user\",\r\n DeviceExt: \"device\",\r\n TraceExt: \"trace\",\r\n WebExt: \"web\",\r\n AppExt: \"app\",\r\n OSExt: \"os\",\r\n SessionExt: \"ses\",\r\n SDKExt: \"sdk\"\r\n};\r\nexport var CtxTagKeys = new ContextTagKeys();\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { strNotSpecified } from \"../../Constants\";\r\nimport { _DYN_NAME } from \"../../__DynamicConstants\";\r\nimport { dataSanitizeString } from \"./DataSanitizer\";\r\nvar Envelope = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Envelope(logger, data, name) {\r\n var _this = this;\r\n var _self = this;\r\n _self.ver = 1;\r\n _self.sampleRate = 100.0;\r\n _self.tags = {};\r\n _self[_DYN_NAME /* @min:%2ename */] = dataSanitizeString(logger, name) || strNotSpecified;\r\n _self.data = data;\r\n _self.time = toISOString(new Date());\r\n _self.aiDataContract = {\r\n time: 1 /* FieldType.Required */,\r\n iKey: 1 /* FieldType.Required */,\r\n name: 1 /* FieldType.Required */,\r\n sampleRate: function () {\r\n return (_this.sampleRate === 100) ? 4 /* FieldType.Hidden */ : 1 /* FieldType.Required */;\r\n },\r\n tags: 1 /* FieldType.Required */,\r\n data: 1 /* FieldType.Required */\r\n };\r\n }\r\n return Envelope;\r\n}());\r\nexport { Envelope };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Data = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of telemetry data.\r\n */\r\n function Data(baseType, data) {\r\n /**\r\n * The data contract for serializing this object.\r\n */\r\n this.aiDataContract = {\r\n baseType: 1 /* FieldType.Required */,\r\n baseData: 1 /* FieldType.Required */\r\n };\r\n this.baseType = baseType;\r\n this.baseData = data;\r\n }\r\n return Data;\r\n}());\r\nexport { Data };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_TAGS = \"tags\"; // Count: 17\r\nexport var _DYN_DEVICE_TYPE = \"deviceType\"; // Count: 3\r\nexport var _DYN_DATA = \"data\"; // Count: 15\r\nexport var _DYN_NAME = \"name\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 38\r\nexport var _DYN_STRINGIFY = \"stringify\"; // Count: 5\r\nexport var _DYN_MEASUREMENTS = \"measurements\"; // Count: 7\r\nexport var _DYN_DATA_TYPE = \"dataType\"; // Count: 10\r\nexport var _DYN_ENVELOPE_TYPE = \"envelopeType\"; // Count: 7\r\nexport var _DYN_TO_STRING = \"toString\"; // Count: 7\r\nexport var _DYN__GET = \"_get\"; // Count: 5\r\nexport var _DYN_ENQUEUE = \"enqueue\"; // Count: 7\r\nexport var _DYN_COUNT = \"count\"; // Count: 7\r\nexport var _DYN_EVENTS_LIMIT_IN_MEM = \"eventsLimitInMem\"; // Count: 2\r\nexport var _DYN_PUSH = \"push\"; // Count: 9\r\nexport var _DYN_ITEM = \"item\"; // Count: 6\r\nexport var _DYN_EMIT_LINE_DELIMITED_0 = \"emitLineDelimitedJson\"; // Count: 3\r\nexport var _DYN_CLEAR = \"clear\"; // Count: 6\r\nexport var _DYN_CREATE_NEW = \"createNew\"; // Count: 3\r\nexport var _DYN_MARK_AS_SENT = \"markAsSent\"; // Count: 4\r\nexport var _DYN_CLEAR_SENT = \"clearSent\"; // Count: 5\r\nexport var _DYN_BUFFER_OVERRIDE = \"bufferOverride\"; // Count: 3\r\nexport var _DYN__BUFFER__KEY = \"BUFFER_KEY\"; // Count: 5\r\nexport var _DYN__SENT__BUFFER__KEY = \"SENT_BUFFER_KEY\"; // Count: 8\r\nexport var _DYN_CONCAT = \"concat\"; // Count: 6\r\nexport var _DYN__MAX__BUFFER__SIZE = \"MAX_BUFFER_SIZE\"; // Count: 5\r\nexport var _DYN_TRIGGER_SEND = \"triggerSend\"; // Count: 5\r\nexport var _DYN_DIAG_LOG = \"diagLog\"; // Count: 16\r\nexport var _DYN_INITIALIZE = \"initialize\"; // Count: 3\r\nexport var _DYN__SENDER = \"_sender\"; // Count: 5\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_CUSTOM_HEADERS = \"customHeaders\"; // Count: 3\r\nexport var _DYN_MAX_BATCH_SIZE_IN_BY1 = \"maxBatchSizeInBytes\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_DISABLE_BEA2 = \"onunloadDisableBeacon\"; // Count: 3\r\nexport var _DYN_IS_BEACON_API_DISABL3 = \"isBeaconApiDisabled\"; // Count: 3\r\nexport var _DYN_ALWAYS_USE_XHR_OVERR4 = \"alwaysUseXhrOverride\"; // Count: 2\r\nexport var _DYN_DISABLE_XHR = \"disableXhr\"; // Count: 3\r\nexport var _DYN_ENABLE_SESSION_STORA5 = \"enableSessionStorageBuffer\"; // Count: 2\r\nexport var _DYN__BUFFER = \"_buffer\"; // Count: 9\r\nexport var _DYN_ONUNLOAD_DISABLE_FET6 = \"onunloadDisableFetch\"; // Count: 2\r\nexport var _DYN_DISABLE_SEND_BEACON_7 = \"disableSendBeaconSplit\"; // Count: 2\r\nexport var _DYN_ENABLE_SEND_PROMISE = \"enableSendPromise\"; // Count: 2\r\nexport var _DYN_GET_SENDER_INST = \"getSenderInst\"; // Count: 4\r\nexport var _DYN_UNLOAD_TRANSPORTS = \"unloadTransports\"; // Count: 2\r\nexport var _DYN_CONVERT_UNDEFINED = \"convertUndefined\"; // Count: 2\r\nexport var _DYN_MAX_BATCH_INTERVAL = \"maxBatchInterval\"; // Count: 2\r\nexport var _DYN_SERIALIZE = \"serialize\"; // Count: 4\r\nexport var _DYN__ON_ERROR = \"_onError\"; // Count: 7\r\nexport var _DYN__ON_PARTIAL_SUCCESS = \"_onPartialSuccess\"; // Count: 3\r\nexport var _DYN__ON_SUCCESS = \"_onSuccess\"; // Count: 6\r\nexport var _DYN_ITEMS_RECEIVED = \"itemsReceived\"; // Count: 3\r\nexport var _DYN_ITEMS_ACCEPTED = \"itemsAccepted\"; // Count: 3\r\nexport var _DYN_ORI_PAYLOAD = \"oriPayload\"; // Count: 3\r\nexport var _DYN_BASE_TYPE = \"baseType\"; // Count: 4\r\nexport var _DYN_SAMPLE_RATE = \"sampleRate\"; // Count: 4\r\nexport var _DYN_EVENTS_SEND_REQUEST = \"eventsSendRequest\"; // Count: 2\r\nexport var _DYN_GET_SAMPLING_SCORE = \"getSamplingScore\"; // Count: 2\r\nexport var _DYN_GET_HASH_CODE_SCORE = \"getHashCodeScore\"; // Count: 4\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __assignFn as __assign } from \"@microsoft/applicationinsights-shims\";\r\nimport { CtxTagKeys, Data, Envelope, Event, Exception, HttpMethod, Metric, PageView, PageViewPerformance, RemoteDependencyData, SampleRate, Trace, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, _warnToConsole, getJSON, hasJSON, isNullOrUndefined, isNumber, isString, isTruthy, objForEachKey, optimizeObject, setValue, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION } from \"./InternalConstants\";\r\nimport { _DYN_DATA, _DYN_DATA_TYPE, _DYN_DEVICE_TYPE, _DYN_ENVELOPE_TYPE, _DYN_LENGTH, _DYN_MEASUREMENTS, _DYN_NAME, _DYN_STRINGIFY, _DYN_TAGS, _DYN_TO_STRING, _DYN_TRACE_ID } from \"./__DynamicConstants\";\r\n// these two constants are used to filter out properties not needed when trying to extract custom properties and measurements from the incoming payload\r\nvar strBaseType = \"baseType\";\r\nvar strBaseData = \"baseData\";\r\nvar strProperties = \"properties\";\r\nvar strTrue = \"true\";\r\nfunction _setValueIf(target, field, value) {\r\n return setValue(target, field, value, isTruthy);\r\n}\r\n/*\r\n * Maps Part A data from CS 4.0\r\n */\r\nfunction _extractPartAExtensions(logger, item, env) {\r\n // todo: switch to keys from common in this method\r\n var envTags = env[_DYN_TAGS /* @min:%2etags */] = env[_DYN_TAGS /* @min:%2etags */] || {};\r\n var itmExt = item.ext = item.ext || {};\r\n var itmTags = item[_DYN_TAGS /* @min:%2etags */] = item[_DYN_TAGS /* @min:%2etags */] || [];\r\n var extUser = itmExt.user;\r\n if (extUser) {\r\n _setValueIf(envTags, CtxTagKeys.userAuthUserId, extUser.authId);\r\n _setValueIf(envTags, CtxTagKeys.userId, extUser.id || extUser.localId);\r\n }\r\n var extApp = itmExt.app;\r\n if (extApp) {\r\n _setValueIf(envTags, CtxTagKeys.sessionId, extApp.sesId);\r\n }\r\n var extDevice = itmExt.device;\r\n if (extDevice) {\r\n _setValueIf(envTags, CtxTagKeys.deviceId, extDevice.id || extDevice.localId);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice.deviceClass);\r\n _setValueIf(envTags, CtxTagKeys.deviceIp, extDevice.ip);\r\n _setValueIf(envTags, CtxTagKeys.deviceModel, extDevice.model);\r\n _setValueIf(envTags, CtxTagKeys[_DYN_DEVICE_TYPE /* @min:%2edeviceType */], extDevice[_DYN_DEVICE_TYPE /* @min:%2edeviceType */]);\r\n }\r\n var web = item.ext.web;\r\n if (web) {\r\n _setValueIf(envTags, CtxTagKeys.deviceLanguage, web.browserLang);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowserVersion, web.browserVer);\r\n _setValueIf(envTags, CtxTagKeys.deviceBrowser, web.browser);\r\n var envData = env[_DYN_DATA /* @min:%2edata */] = env[_DYN_DATA /* @min:%2edata */] || {};\r\n var envBaseData = envData[strBaseData] = envData[strBaseData] || {};\r\n var envProps = envBaseData[strProperties] = envBaseData[strProperties] || {};\r\n _setValueIf(envProps, \"domain\", web.domain);\r\n _setValueIf(envProps, \"isManual\", web.isManual ? strTrue : null);\r\n _setValueIf(envProps, \"screenRes\", web.screenRes);\r\n _setValueIf(envProps, \"userConsent\", web.userConsent ? strTrue : null);\r\n }\r\n var extOs = itmExt.os;\r\n if (extOs) {\r\n _setValueIf(envTags, CtxTagKeys.deviceOS, extOs[_DYN_NAME /* @min:%2ename */]);\r\n _setValueIf(envTags, CtxTagKeys.deviceOSVersion, extOs.osVer);\r\n }\r\n // No support for mapping Trace.traceState to 2.0 as it is currently empty\r\n var extTrace = itmExt.trace;\r\n if (extTrace) {\r\n _setValueIf(envTags, CtxTagKeys.operationParentId, extTrace.parentID);\r\n _setValueIf(envTags, CtxTagKeys.operationName, dataSanitizeString(logger, extTrace[_DYN_NAME /* @min:%2ename */]));\r\n _setValueIf(envTags, CtxTagKeys.operationId, extTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n // Sample 4.0 schema\r\n // {\r\n // \"time\" : \"2018-09-05T22:51:22.4936Z\",\r\n // \"name\" : \"MetricWithNamespace\",\r\n // \"iKey\" : \"ABC-5a4cbd20-e601-4ef5-a3c6-5d6577e4398e\",\r\n // \"ext\": { \"cloud\": {\r\n // \"role\": \"WATSON3\",\r\n // \"roleInstance\": \"CO4AEAP00000260\"\r\n // },\r\n // \"device\": {}, \"correlation\": {} },\r\n // \"tags\": [\r\n // { \"amazon.region\" : \"east2\" },\r\n // { \"os.expid\" : \"wp:02df239\" }\r\n // ]\r\n // }\r\n var tgs = {};\r\n // deals with tags.push({object})\r\n for (var i = itmTags[_DYN_LENGTH /* @min:%2elength */] - 1; i >= 0; i--) {\r\n var tg = itmTags[i];\r\n objForEachKey(tg, function (key, value) {\r\n tgs[key] = value;\r\n });\r\n itmTags.splice(i, 1);\r\n }\r\n // deals with tags[key]=value (and handles hasOwnProperty)\r\n objForEachKey(itmTags, function (tg, value) {\r\n tgs[tg] = value;\r\n });\r\n var theTags = __assign(__assign({}, envTags), tgs);\r\n if (!theTags[CtxTagKeys.internalSdkVersion]) {\r\n // Append a version in case it is not already set\r\n theTags[CtxTagKeys.internalSdkVersion] = dataSanitizeString(logger, \"javascript:\".concat(EnvelopeCreator.Version), 64);\r\n }\r\n env[_DYN_TAGS /* @min:%2etags */] = optimizeObject(theTags);\r\n}\r\nfunction _extractPropsAndMeasurements(data, properties, measurements) {\r\n if (!isNullOrUndefined(data)) {\r\n objForEachKey(data, function (key, value) {\r\n if (isNumber(value)) {\r\n measurements[key] = value;\r\n }\r\n else if (isString(value)) {\r\n properties[key] = value;\r\n }\r\n else if (hasJSON()) {\r\n properties[key] = getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue) {\r\n if (!isNullOrUndefined(properties)) {\r\n objForEachKey(properties, function (key, value) {\r\n properties[key] = value || customUndefinedValue;\r\n });\r\n }\r\n}\r\n// TODO: Do we want this to take logger as arg or use this._logger as nonstatic?\r\nfunction _createEnvelope(logger, envelopeType, telemetryItem, data) {\r\n var envelope = new Envelope(logger, data, envelopeType);\r\n _setValueIf(envelope, \"sampleRate\", telemetryItem[SampleRate]);\r\n if ((telemetryItem[strBaseData] || {}).startTime) {\r\n // Starting from Version 3.0.3, the time property will be assigned by the startTime value,\r\n // which records the loadEvent time for the pageView event.\r\n envelope.time = toISOString(telemetryItem[strBaseData].startTime);\r\n }\r\n envelope.iKey = telemetryItem.iKey;\r\n var iKeyNoDashes = telemetryItem.iKey.replace(/-/g, \"\");\r\n envelope[_DYN_NAME /* @min:%2ename */] = envelope[_DYN_NAME /* @min:%2ename */].replace(\"{0}\", iKeyNoDashes);\r\n // extract all extensions from ctx\r\n _extractPartAExtensions(logger, telemetryItem, envelope);\r\n // loop through the envelope tags (extension of Part A) and pick out the ones that should go in outgoing envelope tags\r\n telemetryItem[_DYN_TAGS /* @min:%2etags */] = telemetryItem[_DYN_TAGS /* @min:%2etags */] || [];\r\n return optimizeObject(envelope);\r\n}\r\nfunction EnvelopeCreatorInit(logger, telemetryItem) {\r\n if (isNullOrUndefined(telemetryItem[strBaseData])) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 46 /* _eInternalMessageId.TelemetryEnvelopeInvalid */, \"telemetryItem.baseData cannot be null.\");\r\n }\r\n}\r\nexport var EnvelopeCreator = {\r\n Version: '3.3.4'\r\n};\r\nexport function DependencyEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n if (isNullOrUndefined(bd)) {\r\n _warnToConsole(logger, \"Invalid input for dependency data\");\r\n return null;\r\n }\r\n var method = bd[strProperties] && bd[strProperties][HttpMethod] ? bd[strProperties][HttpMethod] : \"GET\";\r\n var remoteDepData = new RemoteDependencyData(logger, bd.id, bd.target, bd[_DYN_NAME /* @min:%2ename */], bd[STR_DURATION /* @min:%2eduration */], bd.success, bd.responseCode, method, bd.type, bd.correlationContext, customProperties, customMeasurements);\r\n var data = new Data(RemoteDependencyData[_DYN_DATA_TYPE /* @min:%2edataType */], remoteDepData);\r\n return _createEnvelope(logger, RemoteDependencyData[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function EventEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var customProperties = {};\r\n var customMeasurements = {};\r\n if (telemetryItem[strBaseType] !== Event[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n customProperties[\"baseTypeSource\"] = telemetryItem[strBaseType]; // save the passed in base type as a property\r\n }\r\n if (telemetryItem[strBaseType] === Event[_DYN_DATA_TYPE /* @min:%2edataType */]) { // take collection\r\n customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n }\r\n else { // if its not a known type, convert to custom event\r\n if (telemetryItem[strBaseData]) {\r\n _extractPropsAndMeasurements(telemetryItem[strBaseData], customProperties, customMeasurements);\r\n }\r\n }\r\n // Extract root level properties from part C telemetryItem.data\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var eventName = telemetryItem[strBaseData][_DYN_NAME /* @min:%2ename */];\r\n var eventData = new Event(logger, eventName, customProperties, customMeasurements);\r\n var data = new Data(Event[_DYN_DATA_TYPE /* @min:%2edataType */], eventData);\r\n return _createEnvelope(logger, Event[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function ExceptionEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Extract root level properties from part C telemetryItem.data\r\n var customMeasurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n var customProperties = telemetryItem[strBaseData][strProperties] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], customProperties, customMeasurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(customProperties, customUndefinedValue);\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n var exData = Exception.CreateFromInterface(logger, bd, customProperties, customMeasurements);\r\n var data = new Data(Exception[_DYN_DATA_TYPE /* @min:%2edataType */], exData);\r\n return _createEnvelope(logger, Exception[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function MetricEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var baseData = telemetryItem[strBaseData];\r\n var props = baseData[strProperties] || {};\r\n var measurements = baseData[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseMetricData = new Metric(logger, baseData[_DYN_NAME /* @min:%2ename */], baseData.average, baseData.sampleCount, baseData.min, baseData.max, baseData.stdDev, props, measurements);\r\n var data = new Data(Metric[_DYN_DATA_TYPE /* @min:%2edataType */], baseMetricData);\r\n return _createEnvelope(logger, Metric[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n // Since duration is not part of the domain properties in Common Schema, extract it from part C\r\n var duration;\r\n var baseData = telemetryItem[strBaseData];\r\n if (!isNullOrUndefined(baseData) &&\r\n !isNullOrUndefined(baseData[strProperties]) &&\r\n !isNullOrUndefined(baseData[strProperties][STR_DURATION])) { // from part B properties\r\n duration = baseData[strProperties][STR_DURATION];\r\n delete baseData[strProperties][STR_DURATION];\r\n }\r\n else if (!isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */]) &&\r\n !isNullOrUndefined(telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION])) { // from custom properties\r\n duration = telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n delete telemetryItem[_DYN_DATA /* @min:%2edata */][STR_DURATION];\r\n }\r\n var bd = telemetryItem[strBaseData];\r\n // special case: pageview.id is grabbed from current operation id. Analytics plugin is decoupled from properties plugin, so this is done here instead. This can be made a default telemetry intializer instead if needed to be decoupled from channel\r\n var currentContextId;\r\n if (((telemetryItem.ext || {}).trace || {})[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n currentContextId = telemetryItem.ext.trace[_DYN_TRACE_ID /* @min:%2etraceID */];\r\n }\r\n var id = bd.id || currentContextId;\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n // refUri is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.refUri)) {\r\n properties[\"refUri\"] = bd.refUri;\r\n }\r\n // pageType is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.pageType)) {\r\n properties[\"pageType\"] = bd.pageType;\r\n }\r\n // isLoggedIn is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd.isLoggedIn)) {\r\n properties[\"isLoggedIn\"] = bd.isLoggedIn[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n // pageTags is a field that Breeze still does not recognize as part of Part B. For now, put it in Part C until it supports it as a domain property\r\n if (!isNullOrUndefined(bd[strProperties])) {\r\n var pageTags = bd[strProperties];\r\n objForEachKey(pageTags, function (key, value) {\r\n properties[key] = value;\r\n });\r\n }\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var pageViewData = new PageView(logger, name, url, duration, properties, measurements, id);\r\n var data = new Data(PageView[_DYN_DATA_TYPE /* @min:%2edataType */], pageViewData);\r\n return _createEnvelope(logger, PageView[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function PageViewPerformanceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var bd = telemetryItem[strBaseData];\r\n var name = bd[_DYN_NAME /* @min:%2ename */];\r\n var url = bd.uri || bd.url;\r\n var properties = bd[strProperties] || {};\r\n var measurements = bd[_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], properties, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(properties, customUndefinedValue);\r\n }\r\n var baseData = new PageViewPerformance(logger, name, url, undefined, properties, measurements, bd);\r\n var data = new Data(PageViewPerformance[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, PageViewPerformance[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\nexport function TraceEnvelopeCreator(logger, telemetryItem, customUndefinedValue) {\r\n EnvelopeCreatorInit(logger, telemetryItem);\r\n var message = telemetryItem[strBaseData].message;\r\n var severityLevel = telemetryItem[strBaseData].severityLevel;\r\n var props = telemetryItem[strBaseData][strProperties] || {};\r\n var measurements = telemetryItem[strBaseData][_DYN_MEASUREMENTS /* @min:%2emeasurements */] || {};\r\n _extractPropsAndMeasurements(telemetryItem[_DYN_DATA /* @min:%2edata */], props, measurements);\r\n if (!isNullOrUndefined(customUndefinedValue)) {\r\n _convertPropsUndefinedToCustomDefinedValue(props, customUndefinedValue);\r\n }\r\n var baseData = new Trace(logger, message, severityLevel, props, measurements);\r\n var data = new Data(Trace[_DYN_DATA_TYPE /* @min:%2edataType */], baseData);\r\n return _createEnvelope(logger, Trace[_DYN_ENVELOPE_TYPE /* @min:%2eenvelopeType */], telemetryItem, data);\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlGetSessionStorage, utlRemoveSessionStorage, utlSetSessionStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, arrForEach, arrIndexOf, dumpObj, getExceptionName, getJSON, isArray, isFunction, isNullOrUndefined, isString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONCAT, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_ITEM, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_PUSH, _DYN_STRINGIFY, _DYN__BUFFER__KEY, _DYN__GET, _DYN__MAX__BUFFER__SIZE, _DYN__SENT__BUFFER__KEY } from \"./__DynamicConstants\";\r\nvar BaseSendBuffer = /** @class */ (function () {\r\n function BaseSendBuffer(logger, config) {\r\n var _buffer = [];\r\n var _bufferFullMessageSent = false;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n this[_DYN__GET /* @min:%2e_get */] = function () {\r\n return _buffer;\r\n };\r\n this._set = function (buffer) {\r\n _buffer = buffer;\r\n return _buffer;\r\n };\r\n dynamicProto(BaseSendBuffer, this, function (_self) {\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= config[_DYN_EVENTS_LIMIT_IN_MEM /* @min:%2eeventsLimitInMem */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 105 /* _eInternalMessageId.InMemoryStorageBufferFull */, \"Maximum in-memory buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _buffer[_DYN_PUSH /* @min:%2epush */](payload);\r\n return;\r\n };\r\n _self[_DYN_COUNT /* @min:%2ecount */] = function () {\r\n return _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.size = function () {\r\n var size = _buffer[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < _buffer[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n size += (_buffer[lp].item)[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n if (!config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */]) {\r\n size += 2;\r\n }\r\n return size;\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _buffer = [];\r\n _bufferFullMessageSent = false;\r\n };\r\n _self.getItems = function () {\r\n return _buffer.slice(0);\r\n };\r\n _self.batchPayloads = function (payloads) {\r\n if (payloads && payloads[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var payloadStr_1 = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr_1[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n var batch = config[_DYN_EMIT_LINE_DELIMITED_0 /* @min:%2eemitLineDelimitedJson */] ?\r\n payloadStr_1.join(\"\\n\") :\r\n \"[\" + payloadStr_1.join(\",\") + \"]\";\r\n return batch;\r\n }\r\n return null;\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n var items = _buffer.slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n var newBuffer = !!canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(items, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n return newBuffer;\r\n };\r\n });\r\n }\r\n// Removed Stub for BaseSendBuffer.prototype.enqueue.\r\n// Removed Stub for BaseSendBuffer.prototype.count.\r\n// Removed Stub for BaseSendBuffer.prototype.size.\r\n// Removed Stub for BaseSendBuffer.prototype.clear.\r\n// Removed Stub for BaseSendBuffer.prototype.getItems.\r\n// Removed Stub for BaseSendBuffer.prototype.batchPayloads.\r\n// Removed Stub for BaseSendBuffer.prototype.createNew.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n BaseSendBuffer.__ieDyn=1;\n\n return BaseSendBuffer;\r\n}());\r\n/*\r\n * An array based send buffer.\r\n */\r\nvar ArraySendBuffer = /** @class */ (function (_super) {\r\n __extends(ArraySendBuffer, _super);\r\n function ArraySendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n dynamicProto(ArraySendBuffer, _this, function (_self, _base) {\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n // not supported\r\n };\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for ArraySendBuffer.prototype.markAsSent.\r\n// Removed Stub for ArraySendBuffer.prototype.clearSent.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ArraySendBuffer.__ieDyn=1;\n\n return ArraySendBuffer;\r\n}(BaseSendBuffer));\r\nexport { ArraySendBuffer };\r\nvar PREVIOUS_KEYS = [\"AI_buffer\", \"AI_sentBuffer\"];\r\n/*\r\n * Session storage buffer holds a copy of all unsent items in the browser session storage.\r\n */\r\nvar SessionStorageSendBuffer = /** @class */ (function (_super) {\r\n __extends(SessionStorageSendBuffer, _super);\r\n function SessionStorageSendBuffer(logger, config) {\r\n var _this = _super.call(this, logger, config) || this;\r\n var _bufferFullMessageSent = false;\r\n //Note: should not use config.namePrefix directly, because it will always refers to the latest namePrefix\r\n var _namePrefix = config === null || config === void 0 ? void 0 : config.namePrefix;\r\n // TODO: add remove buffer override as well\r\n var _b = config[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */] || { getItem: utlGetSessionStorage, setItem: utlSetSessionStorage }, getItem = _b.getItem, setItem = _b.setItem;\r\n var _maxRetryCnt = config.maxRetryCnt;\r\n dynamicProto(SessionStorageSendBuffer, _this, function (_self, _base) {\r\n var bufferItems = _getBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */]);\r\n var itemsInSentBuffer = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n var previousItems = _getPreviousEvents();\r\n var notDeliveredItems = itemsInSentBuffer[_DYN_CONCAT /* @min:%2econcat */](previousItems);\r\n var buffer = _self._set(bufferItems[_DYN_CONCAT /* @min:%2econcat */](notDeliveredItems));\r\n // If the buffer has too many items, drop items from the end.\r\n if (buffer[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n buffer[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], buffer);\r\n _self[_DYN_ENQUEUE /* @min:%2eenqueue */] = function (payload) {\r\n if (_self[_DYN_COUNT /* @min:%2ecount */]() >= SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // sent internal log only once per page view\r\n if (!_bufferFullMessageSent) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Maximum buffer size reached: \" + _self[_DYN_COUNT /* @min:%2ecount */](), true);\r\n _bufferFullMessageSent = true;\r\n }\r\n return;\r\n }\r\n payload.cnt = payload.cnt || 0;\r\n // max retry is defined, and max retry is reached, do not add the payload to buffer\r\n if (!isNullOrUndefined(_maxRetryCnt)) {\r\n if (payload.cnt > _maxRetryCnt) {\r\n // TODO: add log here on dropping payloads\r\n return;\r\n }\r\n }\r\n _base[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n };\r\n _self[_DYN_CLEAR /* @min:%2eclear */] = function () {\r\n _base[_DYN_CLEAR /* @min:%2eclear */]();\r\n _setBuffer(SessionStorageSendBuffer.BUFFER_KEY, _self[_DYN__GET /* @min:%2e_get */]());\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], []);\r\n _bufferFullMessageSent = false;\r\n };\r\n _self[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */] = function (payload) {\r\n _setBuffer(SessionStorageSendBuffer[_DYN__BUFFER__KEY /* @min:%2eBUFFER_KEY */], _self._set(_removePayloadsFromBuffer(payload, _self[_DYN__GET /* @min:%2e_get */]())));\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n if (sentElements instanceof Array && payload instanceof Array) {\r\n sentElements = sentElements[_DYN_CONCAT /* @min:%2econcat */](payload);\r\n if (sentElements[_DYN_LENGTH /* @min:%2elength */] > SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */]) {\r\n // We send telemetry normally. If the SENT_BUFFER is too big we don't add new elements\r\n // until we receive a response from the backend and the buffer has free space again (see clearSent method)\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 67 /* _eInternalMessageId.SessionStorageBufferFull */, \"Sent buffer reached its maximum size: \" + sentElements[_DYN_LENGTH /* @min:%2elength */], true);\r\n sentElements[_DYN_LENGTH /* @min:%2elength */] = SessionStorageSendBuffer[_DYN__MAX__BUFFER__SIZE /* @min:%2eMAX_BUFFER_SIZE */];\r\n }\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n }\r\n };\r\n _self[_DYN_CLEAR_SENT /* @min:%2eclearSent */] = function (payload) {\r\n var sentElements = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]);\r\n sentElements = _removePayloadsFromBuffer(payload, sentElements);\r\n _setBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */], sentElements);\r\n };\r\n _self[_DYN_CREATE_NEW /* @min:%2ecreateNew */] = function (newLogger, newConfig, canUseSessionStorage) {\r\n canUseSessionStorage = !!canUseSessionStorage;\r\n var unsentItems = _self[_DYN__GET /* @min:%2e_get */]().slice(0);\r\n var sentItems = _getBuffer(SessionStorageSendBuffer[_DYN__SENT__BUFFER__KEY /* @min:%2eSENT_BUFFER_KEY */]).slice(0);\r\n newLogger = newLogger || logger;\r\n newConfig = newConfig || {};\r\n // to make sure that we do not send duplicated payloads when it is switched back to previous one\r\n _self[_DYN_CLEAR /* @min:%2eclear */]();\r\n var newBuffer = canUseSessionStorage ? new SessionStorageSendBuffer(newLogger, newConfig) : new ArraySendBuffer(newLogger, newConfig);\r\n arrForEach(unsentItems, function (payload) {\r\n newBuffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payload);\r\n });\r\n if (canUseSessionStorage) {\r\n // arr buffer will clear all payloads if markAsSent() is called\r\n newBuffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](sentItems);\r\n }\r\n return newBuffer;\r\n };\r\n function _removePayloadsFromBuffer(payloads, buffer) {\r\n var remaining = [];\r\n var payloadStr = [];\r\n arrForEach(payloads, function (payload) {\r\n payloadStr[_DYN_PUSH /* @min:%2epush */](payload[_DYN_ITEM /* @min:%2eitem */]);\r\n });\r\n arrForEach(buffer, function (value) {\r\n if (!isFunction(value) && arrIndexOf(payloadStr, value[_DYN_ITEM /* @min:%2eitem */]) === -1) {\r\n remaining[_DYN_PUSH /* @min:%2epush */](value);\r\n }\r\n });\r\n return remaining;\r\n }\r\n function _getBuffer(key) {\r\n var prefixedKey = key;\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n return _getBufferBase(prefixedKey);\r\n }\r\n function _getBufferBase(key) {\r\n try {\r\n var bufferJson = getItem(logger, key);\r\n if (bufferJson) {\r\n var buffer_1 = getJSON().parse(bufferJson);\r\n if (isString(buffer_1)) {\r\n // When using some version prototype.js the stringify / parse cycle does not decode array's correctly\r\n buffer_1 = getJSON().parse(buffer_1);\r\n }\r\n if (buffer_1 && isArray(buffer_1)) {\r\n return buffer_1;\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 42 /* _eInternalMessageId.FailedToRestoreStorageBuffer */, \" storage key: \" + key + \", \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n function _setBuffer(key, buffer) {\r\n var prefixedKey = key;\r\n try {\r\n prefixedKey = _namePrefix ? _namePrefix + \"_\" + prefixedKey : prefixedKey;\r\n var bufferJson = JSON[_DYN_STRINGIFY /* @min:%2estringify */](buffer);\r\n setItem(logger, prefixedKey, bufferJson);\r\n }\r\n catch (e) {\r\n // if there was an error, clear the buffer\r\n // telemetry is stored in the _buffer array so we won't loose any items\r\n setItem(logger, prefixedKey, JSON[_DYN_STRINGIFY /* @min:%2estringify */]([]));\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \" storage key: \" + prefixedKey + \", \" + getExceptionName(e) + \". Buffer cleared\", { exception: dumpObj(e) });\r\n }\r\n }\r\n // this removes buffer with prefix+key\r\n function _getPreviousEvents() {\r\n var items = [];\r\n try {\r\n arrForEach(PREVIOUS_KEYS, function (key) {\r\n var events = _getItemsFromPreviousKey(key);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](events);\r\n // to make sure that we also transfer items from old prefixed + key buffer\r\n if (_namePrefix) {\r\n var prefixedKey = _namePrefix + \"_\" + key;\r\n var prefixEvents = _getItemsFromPreviousKey(prefixedKey);\r\n items = items[_DYN_CONCAT /* @min:%2econcat */](prefixEvents);\r\n }\r\n });\r\n return items;\r\n }\r\n catch (e) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 41 /* _eInternalMessageId.FailedToSetStorageBuffer */, \"Transfer events from previous buffers: \" + getExceptionName(e) + \". previous Buffer items can not be removed\", { exception: dumpObj(e) });\r\n }\r\n return [];\r\n }\r\n // transform string[] to IInternalStorageItem[]\r\n function _getItemsFromPreviousKey(key) {\r\n try {\r\n var items = _getBufferBase(key);\r\n var transFormedItems_1 = [];\r\n arrForEach(items, function (item) {\r\n var internalItem = {\r\n item: item,\r\n cnt: 0 // previous events will be default to 0 count\r\n };\r\n transFormedItems_1[_DYN_PUSH /* @min:%2epush */](internalItem);\r\n });\r\n // remove the session storage if we can add events back\r\n utlRemoveSessionStorage(logger, key);\r\n return transFormedItems_1;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return [];\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for SessionStorageSendBuffer.prototype.enqueue.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clear.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.markAsSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.clearSent.\r\n// Removed Stub for SessionStorageSendBuffer.prototype.createNew.\r\n var _a;\r\n _a = SessionStorageSendBuffer;\r\n SessionStorageSendBuffer.VERSION = \"_1\";\r\n SessionStorageSendBuffer.BUFFER_KEY = \"AI_buffer\" + _a.VERSION;\r\n SessionStorageSendBuffer.SENT_BUFFER_KEY = \"AI_sentBuffer\" + _a.VERSION;\r\n // Maximum number of payloads stored in the buffer. If the buffer is full, new elements will be dropped.\r\n SessionStorageSendBuffer.MAX_BUFFER_SIZE = 2000;\r\n return SessionStorageSendBuffer;\r\n}(BaseSendBuffer));\r\nexport { SessionStorageSendBuffer };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nvar _a, _b;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, DEFAULT_BREEZE_ENDPOINT, DEFAULT_BREEZE_PATH, Event, Exception, Metric, PageView, PageViewPerformance, ProcessLegacy, RemoteDependencyData, RequestHeaders, SampleRate, Trace, createOfflineListener, isInternalApplicationInsightsEndpoint, utlCanUseSessionStorage, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { ActiveStatus, BaseTelemetryPlugin, SenderPostManager, _throwInternal, _warnToConsole, arrForEach, cfgDfBoolean, cfgDfValidate, createProcessTelemetryContext, createUniqueNamespace, dateNow, dumpObj, formatErrorMessageXdr, formatErrorMessageXhr, getExceptionName, getIEVersion, isArray, isBeaconsSupported, isFetchSupported, isNullOrUndefined, mergeEvtNamespace, objExtend, onConfigChange, parseResponse, prependTransports, runTargetUnload } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isNumber, isPromiseLike, isString, isTruthy, objDeepFreeze, objDefine, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { DependencyEnvelopeCreator, EventEnvelopeCreator, ExceptionEnvelopeCreator, MetricEnvelopeCreator, PageViewEnvelopeCreator, PageViewPerformanceEnvelopeCreator, TraceEnvelopeCreator } from \"./EnvelopeCreator\";\r\nimport { ArraySendBuffer, SessionStorageSendBuffer } from \"./SendBuffer\";\r\nimport { Serializer } from \"./Serializer\";\r\nimport { Sample } from \"./TelemetryProcessors/Sample\";\r\nimport { _DYN_ALWAYS_USE_XHR_OVERR4, _DYN_BASE_TYPE, _DYN_BUFFER_OVERRIDE, _DYN_CLEAR, _DYN_CLEAR_SENT, _DYN_CONVERT_UNDEFINED, _DYN_COUNT, _DYN_CREATE_NEW, _DYN_CUSTOM_HEADERS, _DYN_DATA, _DYN_DIAG_LOG, _DYN_DISABLE_SEND_BEACON_7, _DYN_DISABLE_XHR, _DYN_EMIT_LINE_DELIMITED_0, _DYN_ENABLE_SEND_PROMISE, _DYN_ENABLE_SESSION_STORA5, _DYN_ENDPOINT_URL, _DYN_ENQUEUE, _DYN_EVENTS_LIMIT_IN_MEM, _DYN_EVENTS_SEND_REQUEST, _DYN_GET_SENDER_INST, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_BEACON_API_DISABL3, _DYN_ITEM, _DYN_ITEMS_ACCEPTED, _DYN_ITEMS_RECEIVED, _DYN_LENGTH, _DYN_MARK_AS_SENT, _DYN_MAX_BATCH_INTERVAL, _DYN_MAX_BATCH_SIZE_IN_BY1, _DYN_ONUNLOAD_DISABLE_BEA2, _DYN_ONUNLOAD_DISABLE_FET6, _DYN_ORI_PAYLOAD, _DYN_PUSH, _DYN_SAMPLE_RATE, _DYN_SERIALIZE, _DYN_TAGS, _DYN_TRIGGER_SEND, _DYN_UNLOAD_TRANSPORTS, _DYN__BUFFER, _DYN__ON_ERROR, _DYN__ON_PARTIAL_SUCCESS, _DYN__ON_SUCCESS, _DYN__SENDER } from \"./__DynamicConstants\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar EMPTY_STR = \"\";\r\nvar FetchSyncRequestSizeLimitBytes = 65000; // approx 64kb (the current Edge, Firefox and Chrome max limit)\r\nfunction _getResponseText(xhr) {\r\n try {\r\n return xhr.responseText;\r\n }\r\n catch (e) {\r\n // Best effort, as XHR may throw while XDR wont so just ignore\r\n }\r\n return null;\r\n}\r\nfunction isOverrideFn(httpXHROverride) {\r\n return httpXHROverride && httpXHROverride.sendPOST;\r\n}\r\nvar defaultAppInsightsChannelConfig = objDeepFreeze((_a = {\r\n // Use the default value (handles empty string in the configuration)\r\n endpointUrl: cfgDfValidate(isTruthy, DEFAULT_BREEZE_ENDPOINT + DEFAULT_BREEZE_PATH)\r\n },\r\n _a[_DYN_EMIT_LINE_DELIMITED_0 /* @min:emitLineDelimitedJson */] = cfgDfBoolean(),\r\n _a[_DYN_MAX_BATCH_INTERVAL /* @min:maxBatchInterval */] = 15000,\r\n _a[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:maxBatchSizeInBytes */] = 102400,\r\n _a.disableTelemetry = cfgDfBoolean(),\r\n _a[_DYN_ENABLE_SESSION_STORA5 /* @min:enableSessionStorageBuffer */] = cfgDfBoolean(true),\r\n _a.isRetryDisabled = cfgDfBoolean(),\r\n _a[_DYN_IS_BEACON_API_DISABL3 /* @min:isBeaconApiDisabled */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_SEND_BEACON_7 /* @min:disableSendBeaconSplit */] = cfgDfBoolean(true),\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:onunloadDisableFetch */] = cfgDfBoolean(),\r\n _a[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:onunloadDisableBeacon */] = cfgDfBoolean(),\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a.namePrefix = UNDEFINED_VALUE,\r\n _a.samplingPercentage = cfgDfValidate(_chkSampling, 100),\r\n _a[_DYN_CUSTOM_HEADERS /* @min:customHeaders */] = UNDEFINED_VALUE,\r\n _a[_DYN_CONVERT_UNDEFINED /* @min:convertUndefined */] = UNDEFINED_VALUE,\r\n _a[_DYN_EVENTS_LIMIT_IN_MEM /* @min:eventsLimitInMem */] = 10000,\r\n _a[_DYN_BUFFER_OVERRIDE /* @min:bufferOverride */] = false,\r\n _a.httpXHROverride = { isVal: isOverrideFn, v: UNDEFINED_VALUE },\r\n _a[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:alwaysUseXhrOverride */] = cfgDfBoolean(),\r\n _a.transports = UNDEFINED_VALUE,\r\n _a.retryCodes = UNDEFINED_VALUE,\r\n _a.maxRetryCnt = { isVal: isNumber, v: 10 },\r\n _a));\r\nfunction _chkSampling(value) {\r\n return !isNaN(value) && value > 0 && value <= 100;\r\n}\r\nvar EnvelopeTypeCreator = (_b = {},\r\n _b[Event.dataType] = EventEnvelopeCreator,\r\n _b[Trace.dataType] = TraceEnvelopeCreator,\r\n _b[PageView.dataType] = PageViewEnvelopeCreator,\r\n _b[PageViewPerformance.dataType] = PageViewPerformanceEnvelopeCreator,\r\n _b[Exception.dataType] = ExceptionEnvelopeCreator,\r\n _b[Metric.dataType] = MetricEnvelopeCreator,\r\n _b[RemoteDependencyData.dataType] = DependencyEnvelopeCreator,\r\n _b);\r\nvar Sender = /** @class */ (function (_super) {\r\n __extends(Sender, _super);\r\n function Sender() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 1001;\r\n _this.identifier = BreezeChannelIdentifier;\r\n // Don't set the defaults here, set them in the _initDefaults() as this is also called during unload\r\n var _consecutiveErrors; // How many times in a row a retryable error condition has occurred.\r\n var _retryAt; // The time to retry at in milliseconds from 1970/01/01 (this makes the timer calculation easy).\r\n var _lastSend; // The time of the last send operation.\r\n var _paused; // Flag indicating that the sending should be paused\r\n var _timeoutHandle; // Handle to the timer for delayed sending of batches of data.\r\n var _serializer;\r\n var _stamp_specific_redirects;\r\n var _headers;\r\n var _syncFetchPayload = 0; // Keep track of the outstanding sync fetch payload total (as sync fetch has limits)\r\n var _syncUnloadSender; // The identified sender to use for the synchronous unload stage\r\n var _offlineListener;\r\n var _evtNamespace;\r\n var _endpointUrl;\r\n var _orgEndpointUrl;\r\n var _maxBatchSizeInBytes;\r\n var _beaconSupported;\r\n var _beaconOnUnloadSupported;\r\n var _beaconNormalSupported;\r\n var _customHeaders;\r\n var _disableTelemetry;\r\n var _instrumentationKey;\r\n var _convertUndefined;\r\n var _isRetryDisabled;\r\n var _maxBatchInterval;\r\n var _sessionStorageUsed;\r\n var _bufferOverrideUsed;\r\n var _namePrefix;\r\n var _enableSendPromise;\r\n var _alwaysUseCustomSend;\r\n var _disableXhr;\r\n var _fetchKeepAlive;\r\n var _xhrSend;\r\n var _fallbackSend;\r\n var _disableBeaconSplit;\r\n var _sendPostMgr;\r\n var _retryCodes;\r\n dynamicProto(Sender, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.pause = function () {\r\n _clearScheduledTimer();\r\n _paused = true;\r\n };\r\n _self.resume = function () {\r\n if (_paused) {\r\n _paused = false;\r\n _retryAt = null;\r\n // flush if we have exceeded the max-size already\r\n _checkMaxSize();\r\n _setupTimer();\r\n }\r\n };\r\n _self.flush = function (isAsync, callBack, sendReason) {\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_paused) {\r\n // Clear the normal schedule timer as we are going to try and flush ASAP\r\n _clearScheduledTimer();\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](isAsync, null, sendReason || 1 /* SendRequestReason.ManualFlush */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 22 /* _eInternalMessageId.FlushFailed */, \"flush failed, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n };\r\n _self.onunloadFlush = function () {\r\n if (!_paused) {\r\n if (_beaconSupported || _alwaysUseCustomSend) {\r\n try {\r\n return _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, _doUnloadSend, 2 /* SendRequestReason.Unload */);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"failed to flush with beacon sender on page unload, telemetry will not be collected: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n else {\r\n _self.flush(false);\r\n }\r\n }\r\n };\r\n _self.addHeader = function (name, value) {\r\n _headers[name] = value;\r\n };\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, core, extensions, pluginChain) {\r\n if (_self.isInitialized()) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender is already initialized\");\r\n }\r\n _base[_DYN_INITIALIZE /* @min:%2einitialize */](config, core, extensions, pluginChain);\r\n var identifier = _self.identifier;\r\n _serializer = new Serializer(core.logger);\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = 0;\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _stamp_specific_redirects = 0;\r\n var diagLog = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"Sender\"), core.evtNamespace && core.evtNamespace());\r\n _offlineListener = createOfflineListener(_evtNamespace);\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n // getExtCfg only finds undefined values from core\r\n var senderConfig = ctx.getExtCfg(identifier, defaultAppInsightsChannelConfig);\r\n var curExtUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if it is not inital change (_endpointUrl has value)\r\n // if current sender endpoint url is not changed directly\r\n // means ExtCfg is not changed directly\r\n // then we need to monitor endpoint url changes from core\r\n if (_endpointUrl && curExtUrl === _endpointUrl) {\r\n var coreUrl = config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n // if core endpoint url is changed\r\n if (coreUrl && coreUrl !== curExtUrl) {\r\n // and endpoint promise changes is handled by this as well\r\n senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = coreUrl;\r\n }\r\n }\r\n if (isPromiseLike(senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */])) {\r\n // if it is promise, means the endpoint url is from core.endpointurl\r\n senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return senderConfig;\r\n }\r\n });\r\n // Only update the endpoint if the original config !== the current config\r\n // This is so any redirect endpointUrl is not overwritten\r\n if (_orgEndpointUrl !== senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */]) {\r\n if (_orgEndpointUrl) {\r\n // TODO: add doc to remind users to flush before changing endpoint, otherwise all unsent payload will be sent to new endpoint\r\n }\r\n _endpointUrl = _orgEndpointUrl = senderConfig[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }\r\n // or is not string\r\n if (core.activeStatus() === ActiveStatus.PENDING) {\r\n // waiting for core promises to be resolved\r\n // NOTE: if active status is set to pending, stop sending, clear timer here\r\n _self.pause();\r\n }\r\n else if (core.activeStatus() === ActiveStatus.ACTIVE) {\r\n // core status changed from pending to other status\r\n _self.resume();\r\n }\r\n if (_customHeaders && _customHeaders !== senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */]) {\r\n // Removing any previously defined custom headers as they have changed\r\n arrForEach(_customHeaders, function (customHeader) {\r\n delete _headers[customHeader.header];\r\n });\r\n }\r\n _maxBatchSizeInBytes = senderConfig[_DYN_MAX_BATCH_SIZE_IN_BY1 /* @min:%2emaxBatchSizeInBytes */];\r\n _beaconSupported = (senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false || senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false) && isBeaconsSupported();\r\n _beaconOnUnloadSupported = senderConfig[_DYN_ONUNLOAD_DISABLE_BEA2 /* @min:%2eonunloadDisableBeacon */] === false && isBeaconsSupported();\r\n _beaconNormalSupported = senderConfig[_DYN_IS_BEACON_API_DISABL3 /* @min:%2eisBeaconApiDisabled */] === false && isBeaconsSupported();\r\n _alwaysUseCustomSend = senderConfig[_DYN_ALWAYS_USE_XHR_OVERR4 /* @min:%2ealwaysUseXhrOverride */];\r\n _disableXhr = !!senderConfig[_DYN_DISABLE_XHR /* @min:%2edisableXhr */];\r\n _retryCodes = senderConfig.retryCodes;\r\n var bufferOverride = senderConfig[_DYN_BUFFER_OVERRIDE /* @min:%2ebufferOverride */];\r\n var canUseSessionStorage = !!senderConfig[_DYN_ENABLE_SESSION_STORA5 /* @min:%2eenableSessionStorageBuffer */] &&\r\n (!!bufferOverride || utlCanUseSessionStorage());\r\n var namePrefix = senderConfig.namePrefix;\r\n //Note: emitLineDelimitedJson and eventsLimitInMem is directly accessed via config in senderBuffer\r\n //Therefore, if canUseSessionStorage is not changed, we do not need to re initialize a new one\r\n var shouldUpdate = (canUseSessionStorage !== _sessionStorageUsed)\r\n || (canUseSessionStorage && (_namePrefix !== namePrefix)) // prefixName is only used in session storage\r\n || (canUseSessionStorage && (_bufferOverrideUsed !== bufferOverride));\r\n if (_self[_DYN__BUFFER /* @min:%2e_buffer */]) {\r\n // case1 (Pre and Now enableSessionStorageBuffer settings are same)\r\n // if namePrefix changes, transfer current buffer to new buffer\r\n // else no action needed\r\n //case2 (Pre and Now enableSessionStorageBuffer settings are changed)\r\n // transfer current buffer to new buffer\r\n if (shouldUpdate) {\r\n try {\r\n _self._buffer = _self._buffer[_DYN_CREATE_NEW /* @min:%2ecreateNew */](diagLog, senderConfig, canUseSessionStorage);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"failed to transfer telemetry to different buffer storage, telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n _checkMaxSize();\r\n }\r\n else {\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = canUseSessionStorage\r\n ? new SessionStorageSendBuffer(diagLog, senderConfig) : new ArraySendBuffer(diagLog, senderConfig);\r\n }\r\n _namePrefix = namePrefix;\r\n _sessionStorageUsed = canUseSessionStorage;\r\n _bufferOverrideUsed = bufferOverride;\r\n _fetchKeepAlive = !senderConfig[_DYN_ONUNLOAD_DISABLE_FET6 /* @min:%2eonunloadDisableFetch */] && isFetchSupported(true);\r\n _disableBeaconSplit = !!senderConfig[_DYN_DISABLE_SEND_BEACON_7 /* @min:%2edisableSendBeaconSplit */];\r\n _self._sample = new Sample(senderConfig.samplingPercentage, diagLog);\r\n _instrumentationKey = senderConfig[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n if (!isPromiseLike(_instrumentationKey) && !_validateInstrumentationKey(_instrumentationKey, config)) {\r\n _throwInternal(diagLog, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, \"Invalid Instrumentation key \" + _instrumentationKey);\r\n }\r\n _customHeaders = senderConfig[_DYN_CUSTOM_HEADERS /* @min:%2ecustomHeaders */];\r\n if (isString(_endpointUrl) && !isInternalApplicationInsightsEndpoint(_endpointUrl) && _customHeaders && _customHeaders[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(_customHeaders, function (customHeader) {\r\n _this.addHeader(customHeader.header, customHeader.value);\r\n });\r\n }\r\n else {\r\n _customHeaders = null;\r\n }\r\n _enableSendPromise = senderConfig[_DYN_ENABLE_SEND_PROMISE /* @min:%2eenableSendPromise */];\r\n var sendPostConfig = _getSendPostMgrConfig();\r\n // only init it once\r\n if (!_sendPostMgr) {\r\n _sendPostMgr = new SenderPostManager();\r\n _sendPostMgr[_DYN_INITIALIZE /* @min:%2einitialize */](sendPostConfig, diagLog);\r\n }\r\n else {\r\n _sendPostMgr.SetConfig(sendPostConfig);\r\n }\r\n var customInterface = senderConfig.httpXHROverride;\r\n var httpInterface = null;\r\n var syncInterface = null;\r\n // User requested transport(s) values > Beacon > Fetch > XHR\r\n // Beacon would be filtered out if user has set disableBeaconApi to true at _getSenderInterface\r\n var theTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */, 2 /* TransportType.Fetch */], senderConfig.transports);\r\n httpInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](theTransports, false);\r\n var xhrInterface = _sendPostMgr && _sendPostMgr.getFallbackInst();\r\n _xhrSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync);\r\n };\r\n _fallbackSend = function (payload, isAsync) {\r\n return _doSend(xhrInterface, payload, isAsync, false);\r\n };\r\n httpInterface = _alwaysUseCustomSend ? customInterface : (httpInterface || customInterface || xhrInterface);\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = function (payload, isAsync) {\r\n return _doSend(httpInterface, payload, isAsync);\r\n };\r\n if (_fetchKeepAlive) {\r\n // Try and use the fetch with keepalive\r\n _syncUnloadSender = _fetchKeepAliveSender;\r\n }\r\n var syncTransports = prependTransports([3 /* TransportType.Beacon */, 1 /* TransportType.Xhr */], senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */]);\r\n if (!_fetchKeepAlive) {\r\n // remove fetch from theTransports\r\n syncTransports = syncTransports.filter(function (transport) { return transport !== 2 /* TransportType.Fetch */; });\r\n }\r\n syncInterface = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */](syncTransports, true);\r\n syncInterface = _alwaysUseCustomSend ? customInterface : (syncInterface || customInterface);\r\n if ((_alwaysUseCustomSend || senderConfig[_DYN_UNLOAD_TRANSPORTS /* @min:%2eunloadTransports */] || !_syncUnloadSender) && syncInterface) {\r\n _syncUnloadSender = function (payload, isAsync) {\r\n return _doSend(syncInterface, payload, isAsync);\r\n };\r\n }\r\n if (!_syncUnloadSender) {\r\n _syncUnloadSender = _xhrSend;\r\n }\r\n _disableTelemetry = senderConfig.disableTelemetry;\r\n _convertUndefined = senderConfig[_DYN_CONVERT_UNDEFINED /* @min:%2econvertUndefined */] || UNDEFINED_VALUE;\r\n _isRetryDisabled = senderConfig.isRetryDisabled;\r\n _maxBatchInterval = senderConfig[_DYN_MAX_BATCH_INTERVAL /* @min:%2emaxBatchInterval */];\r\n }));\r\n };\r\n _self.processTelemetry = function (telemetryItem, itemCtx) {\r\n var _a;\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var diagLogger = itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var isValidate = _validate(telemetryItem, diagLogger);\r\n if (!isValidate) {\r\n return;\r\n }\r\n var aiEnvelope = _getEnvelope(telemetryItem, diagLogger);\r\n if (!aiEnvelope) {\r\n return;\r\n }\r\n // check if the incoming payload is too large, truncate if necessary\r\n var payload = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](aiEnvelope);\r\n // flush if we would exceed the max-size limit by adding this item\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n _checkMaxSize(payload);\r\n var payloadItem = (_a = {},\r\n _a[_DYN_ITEM /* @min:item */] = payload,\r\n _a.cnt = 0 // inital cnt will always be 0\r\n ,\r\n _a);\r\n // enqueue the payload\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](payloadItem);\r\n // ensure an invocation timeout is set\r\n _setupTimer();\r\n }\r\n catch (e) {\r\n _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 12 /* _eInternalMessageId.FailedAddingTelemetryToBuffer */, \"Failed adding telemetry to the sender's buffer, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n // hand off the telemetry item to the next plugin\r\n _self.processNext(telemetryItem, itemCtx);\r\n };\r\n _self.isCompletelyIdle = function () {\r\n return !_paused && _syncFetchPayload === 0 && _self._buffer[_DYN_COUNT /* @min:%2ecount */]() === 0;\r\n };\r\n _self.getOfflineListener = function () {\r\n return _offlineListener;\r\n };\r\n /**\r\n * xhr state changes\r\n */\r\n _self._xhrReadyStateChange = function (xhr, payload, countOfItemsInPayload) {\r\n // since version 3.2.0, this function is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(xhr, payload, countOfItemsInPayload);\r\n };\r\n /**\r\n * Immediately send buffered data\r\n * @param async - {boolean} - Indicates if the events should be sent asynchronously\r\n * @param forcedSender - {SenderFunction} - Indicates the forcedSender, undefined if not passed\r\n */\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */] = function (async, forcedSender, sendReason) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n if (!_paused) {\r\n try {\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n // Send data only if disableTelemetry is false\r\n if (!_disableTelemetry) {\r\n if (buffer[_DYN_COUNT /* @min:%2ecount */]() > 0) {\r\n var payload = buffer.getItems();\r\n _notifySendRequest(sendReason || 0 /* SendRequestReason.Undefined */, async);\r\n // invoke send\r\n if (forcedSender) {\r\n result = forcedSender.call(_self, payload, async);\r\n }\r\n else {\r\n result = _self[_DYN__SENDER /* @min:%2e_sender */](payload, async);\r\n }\r\n }\r\n // update lastSend time to enable throttling\r\n _lastSend = +new Date;\r\n }\r\n else {\r\n buffer[_DYN_CLEAR /* @min:%2eclear */]();\r\n }\r\n _clearScheduledTimer();\r\n }\r\n catch (e) {\r\n /* Ignore this error for IE under v10 */\r\n var ieVer = getIEVersion();\r\n if (!ieVer || ieVer > 9) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Telemetry transmission failed, some telemetry will be lost: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n return result;\r\n };\r\n _self.getOfflineSupport = function () {\r\n var _a;\r\n return _a = {\r\n getUrl: function () {\r\n return _endpointUrl;\r\n },\r\n createPayload: _createPayload\r\n },\r\n _a[_DYN_SERIALIZE /* @min:serialize */] = _serialize,\r\n _a.batch = _batch,\r\n _a.shouldProcess = function (evt) {\r\n return !!_validate(evt);\r\n },\r\n _a;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n _self.onunloadFlush();\r\n runTargetUnload(_offlineListener, false);\r\n _initDefaults();\r\n };\r\n /**\r\n * error handler\r\n */\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */] = function (payload, message, event) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onError(payload, message, event);\r\n };\r\n /**\r\n * partial success handler\r\n */\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */] = function (payload, results) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onPartialSuccess(payload, results);\r\n };\r\n /**\r\n * success handler\r\n */\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */] = function (payload, countOfItemsInPayload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _onSuccess(payload, countOfItemsInPayload);\r\n //_self._buffer && _self._buffer.clearSent(payload);\r\n };\r\n /**\r\n * xdr state changes\r\n */\r\n _self._xdrOnLoad = function (xdr, payload) {\r\n // since version 3.1.3, string[] is no-op\r\n if (_isStringArr(payload)) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, payload);\r\n };\r\n function _xdrOnLoad(xdr, payload) {\r\n var responseText = _getResponseText(xdr);\r\n if (xdr && (responseText + \"\" === \"200\" || responseText === \"\")) {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, 0);\r\n }\r\n else {\r\n var results = parseResponse(responseText);\r\n if (results && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] && results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] > results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]\r\n && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, results);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, formatErrorMessageXdr(xdr));\r\n }\r\n }\r\n }\r\n function _getSendPostMgrConfig() {\r\n var _a;\r\n try {\r\n var onCompleteFuncs = {\r\n xdrOnComplete: function (xdr, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xdrOnLoad(xdr, data);\r\n },\r\n fetchOnComplete: function (response, onComplete, resValue, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _checkResponsStatus(response.status, data, response.url, data[_DYN_LENGTH /* @min:%2elength */], response.statusText, resValue || \"\");\r\n },\r\n xhrOnComplete: function (request, oncomplete, payload) {\r\n var data = _getPayloadArr(payload);\r\n if (!data) {\r\n return;\r\n }\r\n return _xhrReadyStateChange(request, data, data[_DYN_LENGTH /* @min:%2elength */]);\r\n },\r\n beaconOnRetry: function (data, onComplete, canSend) {\r\n return _onBeaconRetry(data, onComplete, canSend);\r\n }\r\n };\r\n var config = (_a = {},\r\n _a[_DYN_ENABLE_SEND_PROMISE /* @min:enableSendPromise */] = _enableSendPromise,\r\n _a.isOneDs = false,\r\n _a.disableCredentials = false,\r\n _a[_DYN_DISABLE_XHR /* @min:disableXhr */] = _disableXhr,\r\n _a.disableBeacon = !_beaconNormalSupported,\r\n _a.disableBeaconSync = !_beaconOnUnloadSupported,\r\n _a.senderOnCompleteCallBack = onCompleteFuncs,\r\n _a);\r\n return config;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n /**\r\n * xhr state changes\r\n */\r\n function _xhrReadyStateChange(xhr, payload, countOfItemsInPayload) {\r\n if (xhr.readyState === 4) {\r\n _checkResponsStatus(xhr.status, payload, xhr.responseURL, countOfItemsInPayload, formatErrorMessageXhr(xhr), _getResponseText(xhr) || xhr.response);\r\n }\r\n }\r\n /**\r\n * error handler\r\n */\r\n function _onError(payload, message, event) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 26 /* _eInternalMessageId.OnError */, \"Failed to send telemetry.\", { message: message });\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n /**\r\n * partial success handler\r\n */\r\n function _onPartialSuccess(payload, results) {\r\n var failed = [];\r\n var retry = [];\r\n // Iterate through the reversed array of errors so that splicing doesn't have invalid indexes after the first item.\r\n var errors = results.errors.reverse();\r\n for (var _i = 0, errors_1 = errors; _i < errors_1.length; _i++) {\r\n var error = errors_1[_i];\r\n var extracted = payload.splice(error.index, 1)[0];\r\n if (_isRetriable(error.statusCode)) {\r\n retry[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n else {\r\n // All other errors, including: 402 (Monthly quota exceeded) and 439 (Too many requests and refresh cache).\r\n failed[_DYN_PUSH /* @min:%2epush */](extracted);\r\n }\r\n }\r\n if (payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */]);\r\n }\r\n if (failed[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](failed, formatErrorMessageXhr(null, [\"partial success\", results[_DYN_ITEMS_ACCEPTED /* @min:%2eitemsAccepted */], \"of\", results.itemsReceived].join(\" \")));\r\n }\r\n if (retry[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _resendPayload(retry);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \"Partial success. \" +\r\n \"Delivered: \" + payload[_DYN_LENGTH /* @min:%2elength */] + \", Failed: \" + failed[_DYN_LENGTH /* @min:%2elength */] +\r\n \". Will retry to send \" + retry[_DYN_LENGTH /* @min:%2elength */] + \" our of \" + results[_DYN_ITEMS_RECEIVED /* @min:%2eitemsReceived */] + \" items\");\r\n }\r\n }\r\n /**\r\n * success handler\r\n */\r\n function _onSuccess(payload, countOfItemsInPayload) {\r\n _self._buffer && _self._buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n }\r\n function _getPayloadArr(payload) {\r\n try {\r\n if (payload) {\r\n var internalPayload = payload;\r\n var arr = internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return arr;\r\n }\r\n return null;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _validate(telemetryItem, diagLogger) {\r\n if (_disableTelemetry) {\r\n // Do not send/save data\r\n return false;\r\n }\r\n // validate input\r\n if (!telemetryItem) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 7 /* _eInternalMessageId.CannotSendEmptyTelemetry */, \"Cannot send empty telemetry\");\r\n return false;\r\n }\r\n // validate event\r\n if (telemetryItem.baseData && !telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 70 /* _eInternalMessageId.InvalidEvent */, \"Cannot send telemetry without baseData and baseType\");\r\n return false;\r\n }\r\n if (!telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */]) {\r\n // Default\r\n telemetryItem[_DYN_BASE_TYPE /* @min:%2ebaseType */] = \"EventData\";\r\n }\r\n // ensure a sender was constructed\r\n if (!_self[_DYN__SENDER /* @min:%2e_sender */]) {\r\n diagLogger && _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"Sender was not initialized\");\r\n return false;\r\n }\r\n // check if this item should be sampled in, else add sampleRate tag\r\n if (!_isSampledIn(telemetryItem)) {\r\n // Item is sampled out, do not send it\r\n diagLogger && _throwInternal(diagLogger, 2 /* eLoggingSeverity.WARNING */, 33 /* _eInternalMessageId.TelemetrySampledAndNotSent */, \"Telemetry item was sampled out and not sent\", { SampleRate: _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] });\r\n return false;\r\n }\r\n else {\r\n telemetryItem[SampleRate] = _self._sample[_DYN_SAMPLE_RATE /* @min:%2esampleRate */];\r\n }\r\n return true;\r\n }\r\n function _getEnvelope(telemetryItem, diagLogger) {\r\n // construct an envelope that Application Insights endpoint can understand\r\n // if ikey of telemetry is provided and not empty, envelope will use this iKey instead of senderConfig iKey\r\n var defaultEnvelopeIkey = telemetryItem.iKey || _instrumentationKey;\r\n var aiEnvelope = Sender.constructEnvelope(telemetryItem, defaultEnvelopeIkey, diagLogger, _convertUndefined);\r\n if (!aiEnvelope) {\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 47 /* _eInternalMessageId.CreateEnvelopeError */, \"Unable to create an AppInsights envelope\");\r\n return;\r\n }\r\n var doNotSendItem = false;\r\n // this is for running in legacy mode, where customer may already have a custom initializer present\r\n if (telemetryItem[_DYN_TAGS /* @min:%2etags */] && telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy]) {\r\n arrForEach(telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy], function (callBack) {\r\n try {\r\n if (callBack && callBack(aiEnvelope) === false) {\r\n doNotSendItem = true;\r\n _warnToConsole(diagLogger, \"Telemetry processor check returns false\");\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(diagLogger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"One of telemetry initializers failed, telemetry item will not be sent: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n delete telemetryItem[_DYN_TAGS /* @min:%2etags */][ProcessLegacy];\r\n }\r\n if (doNotSendItem) {\r\n return; // do not send, no need to execute next plugin\r\n }\r\n return aiEnvelope;\r\n }\r\n function _serialize(item) {\r\n var rlt = EMPTY_STR;\r\n var diagLogger = _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]();\r\n try {\r\n var valid = _validate(item, diagLogger);\r\n var envelope = null;\r\n if (valid) {\r\n envelope = _getEnvelope(item, diagLogger);\r\n }\r\n if (envelope) {\r\n rlt = _serializer[_DYN_SERIALIZE /* @min:%2eserialize */](envelope);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return rlt;\r\n }\r\n function _batch(arr) {\r\n var rlt = EMPTY_STR;\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n rlt = \"[\" + arr.join(\",\") + \"]\";\r\n }\r\n return rlt;\r\n }\r\n function _createPayload(data) {\r\n var _a;\r\n var headers = _getHeaders();\r\n return _a = {\r\n urlString: _endpointUrl\r\n },\r\n _a[_DYN_DATA /* @min:data */] = data,\r\n _a.headers = headers,\r\n _a;\r\n }\r\n function _isSampledIn(envelope) {\r\n return _self._sample.isSampledIn(envelope);\r\n }\r\n function _getOnComplete(payload, status, headers, response) {\r\n // ***********************************************************************************************\r\n //TODO: handle other status codes\r\n if (status === 200 && payload) {\r\n _self._onSuccess(payload, payload[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n else {\r\n response && _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, response);\r\n }\r\n }\r\n function _doSend(sendInterface, payload, isAsync, markAsSent) {\r\n if (markAsSent === void 0) { markAsSent = true; }\r\n var onComplete = function (status, headers, response) {\r\n return _getOnComplete(payload, status, headers, response);\r\n };\r\n var payloadData = _getPayload(payload);\r\n var sendPostFunc = sendInterface && sendInterface.sendPOST;\r\n if (sendPostFunc && payloadData) {\r\n // ***********************************************************************************************\r\n // mark payload as sent at the beginning of calling each send function\r\n if (markAsSent) {\r\n _self._buffer[_DYN_MARK_AS_SENT /* @min:%2emarkAsSent */](payload);\r\n }\r\n return sendPostFunc(payloadData, onComplete, !isAsync);\r\n }\r\n return null;\r\n }\r\n function _getPayload(payload) {\r\n var _a;\r\n if (isArray(payload) && payload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var batch = _self[_DYN__BUFFER /* @min:%2e_buffer */].batchPayloads(payload);\r\n var headers = _getHeaders();\r\n var payloadData = (_a = {},\r\n _a[_DYN_DATA /* @min:data */] = batch,\r\n _a.urlString = _endpointUrl,\r\n _a.headers = headers,\r\n _a.disableXhrSync = _disableXhr,\r\n _a.disableFetchKeepAlive = !_fetchKeepAlive,\r\n _a[_DYN_ORI_PAYLOAD /* @min:oriPayload */] = payload,\r\n _a);\r\n return payloadData;\r\n }\r\n return null;\r\n }\r\n function _getHeaders() {\r\n try {\r\n var headers = _headers || {};\r\n if (isInternalApplicationInsightsEndpoint(_endpointUrl)) {\r\n headers[RequestHeaders[6 /* eRequestHeaders.sdkContextHeader */]] = RequestHeaders[7 /* eRequestHeaders.sdkContextHeaderAppIdRequest */];\r\n }\r\n return headers;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _checkMaxSize(incomingPayload) {\r\n var incomingSize = incomingPayload ? incomingPayload[_DYN_LENGTH /* @min:%2elength */] : 0;\r\n if ((_self[_DYN__BUFFER /* @min:%2e_buffer */].size() + incomingSize) > _maxBatchSizeInBytes) {\r\n if (!_offlineListener || _offlineListener.isOnline()) { // only trigger send when currently online\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 10 /* SendRequestReason.MaxBatchSize */);\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n function _checkResponsStatus(status, payload, responseUrl, countOfItemsInPayload, errorMessage, res) {\r\n var response = null;\r\n if (!_self._appId) {\r\n response = parseResponse(res);\r\n if (response && response.appId) {\r\n _self._appId = response.appId;\r\n }\r\n }\r\n if ((status < 200 || status >= 300) && status !== 0) {\r\n // Update End Point url if permanent redirect or moved permanently\r\n // Updates the end point url before retry\r\n if (status === 301 || status === 307 || status === 308) {\r\n if (!_checkAndUpdateEndPointUrl(responseUrl)) {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n return;\r\n }\r\n }\r\n if (_offlineListener && !_offlineListener.isOnline()) { // offline\r\n // Note: Don't check for status == 0, since adblock gives this code\r\n if (!_isRetryDisabled) {\r\n var offlineBackOffMultiplier = 10; // arbritrary number\r\n _resendPayload(payload, offlineBackOffMultiplier);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". Offline - Response Code: \".concat(status, \". Offline status: \").concat(!_offlineListener.isOnline(), \". Will retry to send \").concat(payload.length, \" items.\"));\r\n }\r\n return;\r\n }\r\n if (!_isRetryDisabled && _isRetriable(status)) {\r\n _resendPayload(payload);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" +\r\n \"Response code \" + status + \". Will retry to send \" + payload[_DYN_LENGTH /* @min:%2elength */] + \" items.\");\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n // check if the xhr's responseURL or fetch's response.url is same as endpoint url\r\n // TODO after 10 redirects force send telemetry with 'redirect=false' as query parameter.\r\n _checkAndUpdateEndPointUrl(responseUrl);\r\n if (status === 206) {\r\n if (!response) {\r\n response = parseResponse(res);\r\n }\r\n if (response && !_isRetryDisabled) {\r\n _self[_DYN__ON_PARTIAL_SUCCESS /* @min:%2e_onPartialSuccess */](payload, response);\r\n }\r\n else {\r\n _self[_DYN__ON_ERROR /* @min:%2e_onError */](payload, errorMessage);\r\n }\r\n }\r\n else {\r\n _consecutiveErrors = 0;\r\n _self[_DYN__ON_SUCCESS /* @min:%2e_onSuccess */](payload, countOfItemsInPayload);\r\n }\r\n }\r\n }\r\n function _checkAndUpdateEndPointUrl(responseUrl) {\r\n // Maximum stamp specific redirects allowed(uncomment this when breeze is ready with not allowing redirects feature)\r\n if (_stamp_specific_redirects >= 10) {\r\n // _self._senderConfig.endpointUrl = () => Sender._getDefaultAppInsightsChannelConfig().endpointUrl()+\"/?redirect=false\";\r\n // _stamp_specific_redirects = 0;\r\n return false;\r\n }\r\n if (!isNullOrUndefined(responseUrl) && responseUrl !== \"\") {\r\n if (responseUrl !== _endpointUrl) {\r\n _endpointUrl = responseUrl;\r\n ++_stamp_specific_redirects;\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n function _doUnloadSend(payload, isAsync) {\r\n if (_syncUnloadSender) {\r\n // We are unloading so always call the sender with sync set to false\r\n _syncUnloadSender(payload, false);\r\n }\r\n else {\r\n // Fallback to the previous beacon Sender (which causes a CORB warning on chrome now)\r\n var beaconInst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([3 /* TransportType.Beacon */], true);\r\n return _doSend(beaconInst, payload, isAsync);\r\n }\r\n }\r\n function _onBeaconRetry(payload, onComplete, canSend) {\r\n var internalPayload = payload;\r\n var data = internalPayload && internalPayload[_DYN_ORI_PAYLOAD /* @min:%2eoriPayload */];\r\n if (!_disableBeaconSplit) {\r\n // Failed to send entire payload so try and split data and try to send as much events as possible\r\n var droppedPayload = [];\r\n for (var lp = 0; lp < data[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n var thePayload = data[lp];\r\n var arr = [thePayload];\r\n var item = _getPayload(arr);\r\n if (!canSend(item, onComplete)) {\r\n // Can't send anymore, so split the batch and drop the rest\r\n droppedPayload[_DYN_PUSH /* @min:%2epush */](thePayload);\r\n }\r\n else {\r\n _self._onSuccess(arr, arr[_DYN_LENGTH /* @min:%2elength */]);\r\n }\r\n }\r\n if (droppedPayload[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _fallbackSend && _fallbackSend(droppedPayload, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n else {\r\n _fallbackSend && _fallbackSend(data, true);\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with normal sender.\");\r\n }\r\n }\r\n function _isStringArr(arr) {\r\n try {\r\n if (arr && arr[_DYN_LENGTH /* @min:%2elength */]) {\r\n return (isString(arr[0]));\r\n }\r\n }\r\n catch (e) {\r\n //TODO: log, sender use IInternalStorageItem instead of string since 3.1.3\r\n }\r\n return null;\r\n }\r\n function _fetchKeepAliveSender(payload, isAsync) {\r\n var transport = null;\r\n if (isArray(payload)) {\r\n var payloadSize = payload[_DYN_LENGTH /* @min:%2elength */];\r\n for (var lp = 0; lp < payload[_DYN_LENGTH /* @min:%2elength */]; lp++) {\r\n payloadSize += payload[lp].item[_DYN_LENGTH /* @min:%2elength */];\r\n }\r\n var syncFetchPayload = _sendPostMgr.getSyncFetchPayload();\r\n if ((syncFetchPayload + payloadSize) <= FetchSyncRequestSizeLimitBytes) {\r\n transport = 2 /* TransportType.Fetch */;\r\n }\r\n else if (isBeaconsSupported()) {\r\n // Fallback to beacon sender as we at least get told which events can't be scheduled\r\n transport = 3 /* TransportType.Beacon */;\r\n }\r\n else {\r\n // Payload is going to be too big so just try and send via XHR\r\n transport = 1 /* TransportType.Xhr */;\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 2 /* eLoggingSeverity.WARNING */, 40 /* _eInternalMessageId.TransmissionFailed */, \". \" + \"Failed to send telemetry with Beacon API, retried with xhrSender.\");\r\n }\r\n var inst = _sendPostMgr && _sendPostMgr[_DYN_GET_SENDER_INST /* @min:%2egetSenderInst */]([transport], true);\r\n return _doSend(inst, payload, isAsync);\r\n }\r\n return null;\r\n }\r\n /**\r\n * Resend payload. Adds payload back to the send buffer and setup a send timer (with exponential backoff).\r\n * @param payload\r\n */\r\n function _resendPayload(payload, linearFactor) {\r\n if (linearFactor === void 0) { linearFactor = 1; }\r\n if (!payload || payload[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n return;\r\n }\r\n var buffer = _self[_DYN__BUFFER /* @min:%2e_buffer */];\r\n buffer[_DYN_CLEAR_SENT /* @min:%2eclearSent */](payload);\r\n _consecutiveErrors++;\r\n for (var _i = 0, payload_1 = payload; _i < payload_1.length; _i++) {\r\n var item = payload_1[_i];\r\n item.cnt = item.cnt || 0; // to make sure we have cnt for each payload\r\n item.cnt++; // when resend, increase cnt\r\n buffer[_DYN_ENQUEUE /* @min:%2eenqueue */](item);\r\n }\r\n // setup timer\r\n _setRetryTime(linearFactor);\r\n _setupTimer();\r\n }\r\n /**\r\n * Calculates the time to wait before retrying in case of an error based on\r\n * http://en.wikipedia.org/wiki/Exponential_backoff\r\n */\r\n function _setRetryTime(linearFactor) {\r\n var SlotDelayInSeconds = 10;\r\n var delayInSeconds;\r\n if (_consecutiveErrors <= 1) {\r\n delayInSeconds = SlotDelayInSeconds;\r\n }\r\n else {\r\n var backOffSlot = (Math.pow(2, _consecutiveErrors) - 1) / 2;\r\n // tslint:disable-next-line:insecure-random\r\n var backOffDelay = Math.floor(Math.random() * backOffSlot * SlotDelayInSeconds) + 1;\r\n backOffDelay = linearFactor * backOffDelay;\r\n delayInSeconds = Math.max(Math.min(backOffDelay, 3600), SlotDelayInSeconds);\r\n }\r\n // TODO: Log the backoff time like the C# version does.\r\n var retryAfterTimeSpan = dateNow() + (delayInSeconds * 1000);\r\n // TODO: Log the retry at time like the C# version does.\r\n _retryAt = retryAfterTimeSpan;\r\n }\r\n /**\r\n * Sets up the timer which triggers actually sending the data.\r\n */\r\n function _setupTimer() {\r\n if (!_timeoutHandle && !_paused) {\r\n var retryInterval = _retryAt ? Math.max(0, _retryAt - dateNow()) : 0;\r\n var timerValue = Math.max(_maxBatchInterval, retryInterval);\r\n _timeoutHandle = scheduleTimeout(function () {\r\n _timeoutHandle = null;\r\n _self[_DYN_TRIGGER_SEND /* @min:%2etriggerSend */](true, null, 1 /* SendRequestReason.NormalSchedule */);\r\n }, timerValue);\r\n }\r\n }\r\n function _clearScheduledTimer() {\r\n _timeoutHandle && _timeoutHandle.cancel();\r\n _timeoutHandle = null;\r\n _retryAt = null;\r\n }\r\n /**\r\n * Checks if the SDK should resend the payload after receiving this status code from the backend.\r\n * @param statusCode\r\n */\r\n function _isRetriable(statusCode) {\r\n // retryCodes = [] means should not retry\r\n if (!isNullOrUndefined(_retryCodes)) {\r\n return _retryCodes[_DYN_LENGTH /* @min:%2elength */] && _retryCodes.indexOf(statusCode) > -1;\r\n }\r\n return statusCode === 401 // Unauthorized\r\n // Removing as private links can return a 403 which causes excessive retries and session storage usage\r\n // || statusCode === 403 // Forbidden\r\n || statusCode === 408 // Timeout\r\n || statusCode === 429 // Too many requests.\r\n || statusCode === 500 // Internal server error.\r\n || statusCode === 502 // Bad Gateway.\r\n || statusCode === 503 // Service unavailable.\r\n || statusCode === 504; // Gateway timeout.\r\n }\r\n // Using function lookups for backward compatibility as the getNotifyMgr() did not exist until after v2.5.6\r\n function _getNotifyMgr() {\r\n var func = \"getNotifyMgr\";\r\n if (_self.core[func]) {\r\n return _self.core[func]();\r\n }\r\n // using _self.core['_notificationManager'] for backward compatibility\r\n return _self.core[\"_notificationManager\"];\r\n }\r\n function _notifySendRequest(sendRequest, isAsync) {\r\n var manager = _getNotifyMgr();\r\n if (manager && manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */]) {\r\n try {\r\n manager[_DYN_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendRequest, isAsync);\r\n }\r\n catch (e) {\r\n _throwInternal(_self[_DYN_DIAG_LOG /* @min:%2ediagLog */](), 1 /* eLoggingSeverity.CRITICAL */, 74 /* _eInternalMessageId.NotificationException */, \"send request notification failed: \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n }\r\n /**\r\n * Validate UUID Format\r\n * Specs taken from https://tools.ietf.org/html/rfc4122 and breeze repo\r\n */\r\n function _validateInstrumentationKey(instrumentationKey, config) {\r\n var disableValidation = config.disableInstrumentationKeyValidation;\r\n var disableIKeyValidationFlag = isNullOrUndefined(disableValidation) ? false : disableValidation;\r\n if (disableIKeyValidationFlag) {\r\n return true;\r\n }\r\n var UUID_Regex = \"^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$\";\r\n var regexp = new RegExp(UUID_Regex);\r\n return regexp.test(instrumentationKey);\r\n }\r\n function _initDefaults() {\r\n _self[_DYN__SENDER /* @min:%2e_sender */] = null;\r\n _self[_DYN__BUFFER /* @min:%2e_buffer */] = null;\r\n _self._appId = null;\r\n _self._sample = null;\r\n _headers = {};\r\n _offlineListener = null;\r\n _consecutiveErrors = 0;\r\n _retryAt = null;\r\n _lastSend = null;\r\n _paused = false;\r\n _timeoutHandle = null;\r\n _serializer = null;\r\n _stamp_specific_redirects = 0;\r\n _syncFetchPayload = 0;\r\n _syncUnloadSender = null;\r\n _evtNamespace = null;\r\n _endpointUrl = null;\r\n _orgEndpointUrl = null;\r\n _maxBatchSizeInBytes = 0;\r\n _beaconSupported = false;\r\n _customHeaders = null;\r\n _disableTelemetry = false;\r\n _instrumentationKey = null;\r\n _convertUndefined = UNDEFINED_VALUE;\r\n _isRetryDisabled = false;\r\n _sessionStorageUsed = null;\r\n _namePrefix = UNDEFINED_VALUE;\r\n _disableXhr = false;\r\n _fetchKeepAlive = false;\r\n _disableBeaconSplit = false;\r\n _xhrSend = null;\r\n _fallbackSend = null;\r\n _sendPostMgr = null;\r\n objDefine(_self, \"_senderConfig\", {\r\n g: function () {\r\n return objExtend({}, defaultAppInsightsChannelConfig);\r\n }\r\n });\r\n }\r\n });\r\n return _this;\r\n }\r\n Sender.constructEnvelope = function (orig, iKey, logger, convertUndefined) {\r\n var envelope;\r\n if (iKey !== orig.iKey && !isNullOrUndefined(iKey)) {\r\n envelope = __assign(__assign({}, orig), { iKey: iKey });\r\n }\r\n else {\r\n envelope = orig;\r\n }\r\n var creator = EnvelopeTypeCreator[envelope.baseType] || EventEnvelopeCreator;\r\n return creator(logger, envelope, convertUndefined);\r\n };\r\n// Removed Stub for Sender.prototype.pause.\r\n// Removed Stub for Sender.prototype.resume.\r\n// Removed Stub for Sender.prototype.flush.\r\n// Removed Stub for Sender.prototype.onunloadFlush.\r\n// Removed Stub for Sender.prototype.initialize.\r\n// Removed Stub for Sender.prototype.processTelemetry.\r\n// Removed Stub for Sender.prototype._xhrReadyStateChange.\r\n// Removed Stub for Sender.prototype.triggerSend.\r\n// Removed Stub for Sender.prototype._onError.\r\n// Removed Stub for Sender.prototype._onPartialSuccess.\r\n// Removed Stub for Sender.prototype._onSuccess.\r\n// Removed Stub for Sender.prototype._xdrOnLoad.\r\n// Removed Stub for Sender.prototype.addHeader.\r\n// Removed Stub for Sender.prototype.isCompletelyIdle.\r\n// Removed Stub for Sender.prototype.getOfflineSupport.\r\n// Removed Stub for Sender.prototype.getOfflineListener.\r\n return Sender;\r\n}(BaseTelemetryPlugin));\r\nexport { Sender };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, getJSON, isArray, isFunction, isObject, objForEachKey } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_LENGTH, _DYN_PUSH, _DYN_SERIALIZE, _DYN_STRINGIFY, _DYN_TO_STRING } from \"./__DynamicConstants\";\r\nvar Serializer = /** @class */ (function () {\r\n function Serializer(logger) {\r\n dynamicProto(Serializer, this, function (_self) {\r\n /**\r\n * Serializes the current object to a JSON string.\r\n */\r\n _self[_DYN_SERIALIZE /* @min:%2eserialize */] = function (input) {\r\n var output = _serializeObject(input, \"root\");\r\n try {\r\n return getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](output);\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n };\r\n function _serializeObject(source, name) {\r\n var circularReferenceCheck = \"__aiCircularRefCheck\";\r\n var output = {};\r\n if (!source) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, \"cannot serialize object because it is null or undefined\", { name: name }, true);\r\n return output;\r\n }\r\n if (source[circularReferenceCheck]) {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 50 /* _eInternalMessageId.CircularReferenceDetected */, \"Circular reference detected while serializing object\", { name: name }, true);\r\n return output;\r\n }\r\n if (!source.aiDataContract) {\r\n // special case for measurements/properties/tags\r\n if (name === \"measurements\") {\r\n output = _serializeStringMap(source, \"number\", name);\r\n }\r\n else if (name === \"properties\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (name === \"tags\") {\r\n output = _serializeStringMap(source, \"string\", name);\r\n }\r\n else if (isArray(source)) {\r\n output = _serializeArray(source, name);\r\n }\r\n else {\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 49 /* _eInternalMessageId.CannotSerializeObjectNonSerializable */, \"Attempting to serialize an object which does not implement ISerializable\", { name: name }, true);\r\n try {\r\n // verify that the object can be stringified\r\n getJSON()[_DYN_STRINGIFY /* @min:%2estringify */](source);\r\n output = source;\r\n }\r\n catch (e) {\r\n // if serialization fails return an empty string\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 48 /* _eInternalMessageId.CannotSerializeObject */, (e && isFunction(e[_DYN_TO_STRING /* @min:%2etoString */])) ? e[_DYN_TO_STRING /* @min:%2etoString */]() : \"Error serializing object\", null, true);\r\n }\r\n }\r\n return output;\r\n }\r\n source[circularReferenceCheck] = true;\r\n objForEachKey(source.aiDataContract, function (field, contract) {\r\n var isRequired = (isFunction(contract)) ? (contract() & 1 /* FieldType.Required */) : (contract & 1 /* FieldType.Required */);\r\n var isHidden = (isFunction(contract)) ? (contract() & 4 /* FieldType.Hidden */) : (contract & 4 /* FieldType.Hidden */);\r\n var isArray = contract & 2 /* FieldType.Array */;\r\n var isPresent = source[field] !== undefined;\r\n var isObj = isObject(source[field]) && source[field] !== null;\r\n if (isRequired && !isPresent && !isArray) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 24 /* _eInternalMessageId.MissingRequiredFieldSpecification */, \"Missing required field specification. The field is required but not present on source\", { field: field, name: name });\r\n // If not in debug mode, continue and hope the error is permissible\r\n }\r\n else if (!isHidden) { // Don't serialize hidden fields\r\n var value = void 0;\r\n if (isObj) {\r\n if (isArray) {\r\n // special case; recurse on each object in the source array\r\n value = _serializeArray(source[field], field);\r\n }\r\n else {\r\n // recurse on the source object in this field\r\n value = _serializeObject(source[field], field);\r\n }\r\n }\r\n else {\r\n // assign the source field to the output even if undefined or required\r\n value = source[field];\r\n }\r\n // only emit this field if the value is defined\r\n if (value !== undefined) {\r\n output[field] = value;\r\n }\r\n }\r\n });\r\n delete source[circularReferenceCheck];\r\n return output;\r\n }\r\n function _serializeArray(sources, name) {\r\n var output;\r\n if (!!sources) {\r\n if (!isArray(sources)) {\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, 54 /* _eInternalMessageId.ItemNotInArray */, \"This field was specified as an array in the contract but the item is not an array.\\r\\n\", { name: name }, true);\r\n }\r\n else {\r\n output = [];\r\n for (var i = 0; i < sources[_DYN_LENGTH /* @min:%2elength */]; i++) {\r\n var source = sources[i];\r\n var item = _serializeObject(source, name + \"[\" + i + \"]\");\r\n output[_DYN_PUSH /* @min:%2epush */](item);\r\n }\r\n }\r\n }\r\n return output;\r\n }\r\n function _serializeStringMap(map, expectedType, name) {\r\n var output;\r\n if (map) {\r\n output = {};\r\n objForEachKey(map, function (field, value) {\r\n if (expectedType === \"string\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else if (!value[_DYN_TO_STRING /* @min:%2etoString */]) {\r\n output[field] = \"invalid field: toString() is not defined.\";\r\n }\r\n else {\r\n output[field] = value[_DYN_TO_STRING /* @min:%2etoString */]();\r\n }\r\n }\r\n else if (expectedType === \"number\") {\r\n if (value === undefined) {\r\n output[field] = \"undefined\";\r\n }\r\n else if (value === null) {\r\n output[field] = \"null\";\r\n }\r\n else {\r\n var num = parseFloat(value);\r\n output[field] = num;\r\n }\r\n }\r\n else {\r\n output[field] = \"invalid field: \" + name + \" is of unknown type.\";\r\n _throwInternal(logger, 1 /* eLoggingSeverity.CRITICAL */, output[field], null, true);\r\n }\r\n });\r\n }\r\n return output;\r\n }\r\n });\r\n }\r\n// Removed Stub for Serializer.prototype.serialize.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n Serializer.__ieDyn=1;\n\n return Serializer;\r\n}());\r\nexport { Serializer };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { _DYN_CONCAT, _DYN_LENGTH } from \"../../__DynamicConstants\";\r\n// (Magic number) DJB algorithm can't work on shorter strings (results in poor distribution\r\nvar MIN_INPUT_LENGTH = 8;\r\nvar HashCodeScoreGenerator = /** @class */ (function () {\r\n function HashCodeScoreGenerator() {\r\n }\r\n HashCodeScoreGenerator.prototype.getHashCodeScore = function (key) {\r\n var score = this.getHashCode(key) / HashCodeScoreGenerator.INT_MAX_VALUE;\r\n return score * 100;\r\n };\r\n HashCodeScoreGenerator.prototype.getHashCode = function (input) {\r\n if (input === \"\") {\r\n return 0;\r\n }\r\n while (input[_DYN_LENGTH /* @min:%2elength */] < MIN_INPUT_LENGTH) {\r\n input = input[_DYN_CONCAT /* @min:%2econcat */](input);\r\n }\r\n // 5381 is a magic number: http://stackoverflow.com/questions/10696223/reason-for-5381-number-in-djb-hash-function\r\n var hash = 5381;\r\n for (var i = 0; i < input[_DYN_LENGTH /* @min:%2elength */]; ++i) {\r\n hash = ((hash << 5) + hash) + input.charCodeAt(i);\r\n // 'hash' is of number type which means 53 bit integer (http://www.ecma-international.org/ecma-262/6.0/#sec-ecmascript-language-types-number-type)\r\n // 'hash & hash' will keep it 32 bit integer - just to make it clearer what the result is.\r\n hash = hash & hash;\r\n }\r\n return Math.abs(hash);\r\n };\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n HashCodeScoreGenerator.INT_MAX_VALUE = 2147483647;\r\n return HashCodeScoreGenerator;\r\n}());\r\nexport { HashCodeScoreGenerator };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { ContextTagKeys } from \"@microsoft/applicationinsights-common\";\r\nimport { _DYN_GET_HASH_CODE_SCORE, _DYN_GET_SAMPLING_SCORE, _DYN_TAGS, _DYN_TRACE_ID } from \"../../__DynamicConstants\";\r\nimport { HashCodeScoreGenerator } from \"./HashCodeScoreGenerator\";\r\nvar SamplingScoreGenerator = /** @class */ (function () {\r\n function SamplingScoreGenerator() {\r\n var _self = this;\r\n var hashCodeGenerator = new HashCodeScoreGenerator();\r\n var keys = new ContextTagKeys();\r\n _self[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */] = function (item) {\r\n var score = 0;\r\n if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.userId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.userId]);\r\n }\r\n else if (item.ext && item.ext.user && item.ext.user.id) {\r\n score = hashCodeGenerator[_DYN_GET_HASH_CODE_SCORE /* @min:%2egetHashCodeScore */](item.ext.user.id);\r\n }\r\n else if (item[_DYN_TAGS /* @min:%2etags */] && item[_DYN_TAGS /* @min:%2etags */][keys.operationId]) { // search in tags first, then ext\r\n score = hashCodeGenerator.getHashCodeScore(item[_DYN_TAGS /* @min:%2etags */][keys.operationId]);\r\n }\r\n else if (item.ext && item.ext.telemetryTrace && item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]) {\r\n score = hashCodeGenerator.getHashCodeScore(item.ext.telemetryTrace[_DYN_TRACE_ID /* @min:%2etraceID */]);\r\n }\r\n else {\r\n // tslint:disable-next-line:insecure-random\r\n score = (Math.random() * 100);\r\n }\r\n return score;\r\n };\r\n }\r\n return SamplingScoreGenerator;\r\n}());\r\nexport { SamplingScoreGenerator };\r\n","/*\n * Application Insights JavaScript SDK - Channel, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { Metric } from \"@microsoft/applicationinsights-common\";\r\nimport { safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_DATA_TYPE, _DYN_GET_SAMPLING_SCORE, _DYN_SAMPLE_RATE } from \"../__DynamicConstants\";\r\nimport { SamplingScoreGenerator } from \"./SamplingScoreGenerators/SamplingScoreGenerator\";\r\nvar Sample = /** @class */ (function () {\r\n function Sample(sampleRate, logger) {\r\n // We're using 32 bit math, hence max value is (2^31 - 1)\r\n this.INT_MAX_VALUE = 2147483647;\r\n var _logger = logger || safeGetLogger(null);\r\n if (sampleRate > 100 || sampleRate < 0) {\r\n _logger.throwInternal(2 /* eLoggingSeverity.WARNING */, 58 /* _eInternalMessageId.SampleRateOutOfRange */, \"Sampling rate is out of range (0..100). Sampling will be disabled, you may be sending too much data which may affect your AI service level.\", { samplingRate: sampleRate }, true);\r\n sampleRate = 100;\r\n }\r\n this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */] = sampleRate;\r\n this.samplingScoreGenerator = new SamplingScoreGenerator();\r\n }\r\n /**\r\n * Determines if an envelope is sampled in (i.e. will be sent) or not (i.e. will be dropped).\r\n */\r\n Sample.prototype.isSampledIn = function (envelope) {\r\n var samplingPercentage = this[_DYN_SAMPLE_RATE /* @min:%2esampleRate */]; // 0 - 100\r\n var isSampledIn = false;\r\n if (samplingPercentage === null || samplingPercentage === undefined || samplingPercentage >= 100) {\r\n return true;\r\n }\r\n else if (envelope.baseType === Metric[_DYN_DATA_TYPE /* @min:%2edataType */]) {\r\n // exclude MetricData telemetry from sampling\r\n return true;\r\n }\r\n isSampledIn = this.samplingScoreGenerator[_DYN_GET_SAMPLING_SCORE /* @min:%2egetSamplingScore */](envelope) < samplingPercentage;\r\n return isSampledIn;\r\n };\r\n return Sample;\r\n}());\r\nexport { Sample };\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { arrReduce, objKeys, strEndsWith } from \"@microsoft/applicationinsights-core-js\";\r\nimport { DEFAULT_BREEZE_ENDPOINT } from \"./Constants\";\r\nimport { _DYN_INGESTIONENDPOINT, _DYN_LENGTH, _DYN_SPLIT, _DYN_TO_LOWER_CASE } from \"./__DynamicConstants\";\r\nvar _FIELDS_SEPARATOR = \";\";\r\nvar _FIELD_KEY_VALUE_SEPARATOR = \"=\";\r\nexport function parseConnectionString(connectionString) {\r\n if (!connectionString) {\r\n return {};\r\n }\r\n var kvPairs = connectionString[_DYN_SPLIT /* @min:%2esplit */](_FIELDS_SEPARATOR);\r\n var result = arrReduce(kvPairs, function (fields, kv) {\r\n var kvParts = kv[_DYN_SPLIT /* @min:%2esplit */](_FIELD_KEY_VALUE_SEPARATOR);\r\n if (kvParts[_DYN_LENGTH /* @min:%2elength */] === 2) { // only save fields with valid formats\r\n var key = kvParts[0][_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n var value = kvParts[1];\r\n fields[key] = value;\r\n }\r\n return fields;\r\n }, {});\r\n if (objKeys(result)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n // this is a valid connection string, so parse the results\r\n if (result.endpointsuffix) {\r\n // apply the default endpoints\r\n var locationPrefix = result.location ? result.location + \".\" : \"\";\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || (\"https://\" + locationPrefix + \"dc.\" + result.endpointsuffix);\r\n }\r\n // apply user override endpoint or the default endpoints\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] || DEFAULT_BREEZE_ENDPOINT;\r\n if (strEndsWith(result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */], \"/\")) {\r\n result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */] = result[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */].slice(0, -1);\r\n }\r\n }\r\n return result;\r\n}\r\nexport var ConnectionStringParser = {\r\n parse: parseConnectionString\r\n};\r\n","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\nimport { _throwInternal, arrIndexOf, isNotNullOrUndefined, isNullOrUndefined, onConfigChange, randomValue, safeGetLogger, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { arrForEach, objForEachKey } from \"@nevware21/ts-utils\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"./StorageHelperFuncs\";\r\nimport { _DYN_COUNT, _DYN_DATE, _DYN_DAYS_OF_MONTH, _DYN_DISABLED, _DYN_GET_UTCDATE, _DYN_INTERVAL, _DYN_LENGTH, _DYN_MESSAGE, _DYN_PRE_TRIGGER_DATE, _DYN_PUSH, _DYN_STRINGIFY } from \"./__DynamicConstants\";\r\nvar THROTTLE_STORAGE_PREFIX = \"appInsightsThrottle\";\r\nvar ThrottleMgr = /** @class */ (function () {\r\n function ThrottleMgr(core, namePrefix) {\r\n var _self = this;\r\n var _canUseLocalStorage;\r\n var _logger;\r\n var _config;\r\n var _localStorageObj;\r\n var _isTriggered; //_isTriggered is to make sure that we only trigger throttle once a day\r\n var _namePrefix;\r\n var _queue;\r\n var _isReady = false;\r\n var _isSpecificDaysGiven = false;\r\n _initConfig();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_queue];\r\n };\r\n _self.getConfig = function () {\r\n return _config;\r\n };\r\n /**\r\n * Check if it is the correct day to send message.\r\n * If _isTriggered is true, even if canThrottle returns true, message will not be sent,\r\n * because we only allow triggering sendMessage() once a day.\r\n * @returns if the current date is the valid date to send message\r\n */\r\n _self.canThrottle = function (msgId) {\r\n var localObj = _getLocalStorageObjByKey(msgId);\r\n var cfg = _getCfgByKey(msgId);\r\n return _canThrottle(cfg, _canUseLocalStorage, localObj);\r\n };\r\n /**\r\n * Check if throttle is triggered on current day(UTC)\r\n * if canThrottle returns false, isTriggered will return false\r\n * @returns if throttle is triggered on current day(UTC)\r\n */\r\n _self.isTriggered = function (msgId) {\r\n return _isTrigger(msgId);\r\n };\r\n /**\r\n * Before isReady set to true, all message will be stored in queue.\r\n * Message will only be sent out after isReady set to true.\r\n * Initial and default value: false\r\n * @returns isReady state\r\n */\r\n _self.isReady = function () {\r\n return _isReady;\r\n };\r\n /**\r\n * Flush all message with given message key in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flush = function (msgId) {\r\n try {\r\n var queue = _getQueueByKey(msgId);\r\n if (queue && queue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var items = queue.slice(0);\r\n _queue[msgId] = [];\r\n arrForEach(items, function (item) {\r\n _flushMessage(item.msgID, item[_DYN_MESSAGE /* @min:%2emessage */], item.severity, false);\r\n });\r\n return true;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Flush all message in queue with isReady state set to true.\r\n * @returns if message queue is flushed\r\n */\r\n _self.flushAll = function () {\r\n try {\r\n if (_queue) {\r\n var result_1 = true;\r\n objForEachKey(_queue, function (key) {\r\n var isFlushed = _self.flush(parseInt(key));\r\n result_1 = result_1 && isFlushed;\r\n });\r\n return result_1;\r\n }\r\n }\r\n catch (err) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n };\r\n /**\r\n * Set isReady State\r\n * if isReady set to true, message queue will be flushed automatically.\r\n * @param isReady isReady State\r\n * @pa\r\n * @returns if message queue is flushed\r\n */\r\n _self.onReadyState = function (isReady, flushAll) {\r\n if (flushAll === void 0) { flushAll = true; }\r\n _isReady = isNullOrUndefined(isReady) ? true : isReady;\r\n if (_isReady && flushAll) {\r\n return _self.flushAll();\r\n }\r\n return null;\r\n };\r\n _self.sendMessage = function (msgID, message, severity) {\r\n return _flushMessage(msgID, message, severity, true);\r\n };\r\n function _flushMessage(msgID, message, severity, saveUnsentMsg) {\r\n if (_isReady) {\r\n var isSampledIn = _canSampledIn(msgID);\r\n if (!isSampledIn) {\r\n return;\r\n }\r\n var cfg = _getCfgByKey(msgID);\r\n var localStorageObj = _getLocalStorageObjByKey(msgID);\r\n var canThrottle = _canThrottle(cfg, _canUseLocalStorage, localStorageObj);\r\n var throttled = false;\r\n var number = 0;\r\n var isTriggered = _isTrigger(msgID);\r\n try {\r\n if (canThrottle && !isTriggered) {\r\n number = Math.min(cfg.limit.maxSendNumber, localStorageObj[_DYN_COUNT /* @min:%2ecount */] + 1);\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] = 0;\r\n throttled = true;\r\n _isTriggered[msgID] = true;\r\n localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */] = new Date();\r\n }\r\n else {\r\n _isTriggered[msgID] = canThrottle;\r\n localStorageObj[_DYN_COUNT /* @min:%2ecount */] += 1;\r\n }\r\n var localStorageName = _getLocalStorageName(msgID);\r\n _resetLocalStorage(_logger, localStorageName, localStorageObj);\r\n for (var i = 0; i < number; i++) {\r\n _sendMessage(msgID, _logger, message, severity);\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return {\r\n isThrottled: throttled,\r\n throttleNum: number\r\n };\r\n }\r\n else {\r\n if (!!saveUnsentMsg) {\r\n var queue = _getQueueByKey(msgID);\r\n queue[_DYN_PUSH /* @min:%2epush */]({\r\n msgID: msgID,\r\n message: message,\r\n severity: severity\r\n });\r\n }\r\n }\r\n return null;\r\n }\r\n function _initConfig() {\r\n _logger = safeGetLogger(core);\r\n _isTriggered = {};\r\n _localStorageObj = {};\r\n _queue = {};\r\n _config = {};\r\n _setCfgByKey(109 /* _eInternalMessageId.DefaultThrottleMsgKey */);\r\n _namePrefix = isNotNullOrUndefined(namePrefix) ? namePrefix : \"\";\r\n core.addUnloadHook(onConfigChange(core.config, function (details) {\r\n var coreConfig = details.cfg;\r\n _canUseLocalStorage = utlCanUseLocalStorage();\r\n var configMgr = coreConfig.throttleMgrCfg || {};\r\n objForEachKey(configMgr, function (key, cfg) {\r\n _setCfgByKey(parseInt(key), cfg);\r\n });\r\n }));\r\n }\r\n function _getCfgByKey(msgID) {\r\n return _config[msgID] || _config[109 /* _eInternalMessageId.DefaultThrottleMsgKey */];\r\n }\r\n function _setCfgByKey(msgID, config) {\r\n var _a, _b;\r\n try {\r\n var cfg = config || {};\r\n var curCfg = {};\r\n curCfg[_DYN_DISABLED /* @min:%2edisabled */] = !!cfg[_DYN_DISABLED /* @min:%2edisabled */];\r\n var configInterval = cfg[_DYN_INTERVAL /* @min:%2einterval */] || {};\r\n _isSpecificDaysGiven = (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth) && (configInterval === null || configInterval === void 0 ? void 0 : configInterval.daysOfMonth[_DYN_LENGTH /* @min:%2elength */]) > 0;\r\n curCfg[_DYN_INTERVAL /* @min:%2einterval */] = _getIntervalConfig(configInterval);\r\n var limit = {\r\n samplingRate: ((_a = cfg.limit) === null || _a === void 0 ? void 0 : _a.samplingRate) || 100,\r\n // dafault: every time sent only 1 event\r\n maxSendNumber: ((_b = cfg.limit) === null || _b === void 0 ? void 0 : _b.maxSendNumber) || 1\r\n };\r\n curCfg.limit = limit;\r\n _config[msgID] = curCfg;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n }\r\n function _getIntervalConfig(interval) {\r\n interval = interval || {};\r\n var monthInterval = interval === null || interval === void 0 ? void 0 : interval.monthInterval;\r\n var dayInterval = interval === null || interval === void 0 ? void 0 : interval.dayInterval;\r\n // default: send data every 3 month each year\r\n if (isNullOrUndefined(monthInterval) && isNullOrUndefined(dayInterval)) {\r\n interval.monthInterval = 3;\r\n if (!_isSpecificDaysGiven) {\r\n // default: send data on 28th\r\n interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */] = [28];\r\n _isSpecificDaysGiven = true;\r\n }\r\n }\r\n interval = {\r\n // dafault: sent every three months\r\n monthInterval: interval === null || interval === void 0 ? void 0 : interval.monthInterval,\r\n dayInterval: interval === null || interval === void 0 ? void 0 : interval.dayInterval,\r\n daysOfMonth: interval === null || interval === void 0 ? void 0 : interval.daysOfMonth\r\n };\r\n return interval;\r\n }\r\n function _canThrottle(config, canUseLocalStorage, localStorageObj) {\r\n if (config && !config[_DYN_DISABLED /* @min:%2edisabled */] && canUseLocalStorage && isNotNullOrUndefined(localStorageObj)) {\r\n var curDate = _getThrottleDate();\r\n var date = localStorageObj[_DYN_DATE /* @min:%2edate */];\r\n var interval = config[_DYN_INTERVAL /* @min:%2einterval */];\r\n var monthCheck = 1;\r\n if (interval === null || interval === void 0 ? void 0 : interval.monthInterval) {\r\n var monthExpand = (curDate.getUTCFullYear() - date.getUTCFullYear()) * 12 + curDate.getUTCMonth() - date.getUTCMonth();\r\n monthCheck = _checkInterval(interval.monthInterval, 0, monthExpand);\r\n }\r\n var dayCheck = 1;\r\n if (_isSpecificDaysGiven) {\r\n dayCheck = arrIndexOf(interval[_DYN_DAYS_OF_MONTH /* @min:%2edaysOfMonth */], curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]());\r\n }\r\n else if (interval === null || interval === void 0 ? void 0 : interval.dayInterval) {\r\n var daySpan = Math.floor((curDate.getTime() - date.getTime()) / 86400000);\r\n dayCheck = _checkInterval(interval.dayInterval, 0, daySpan);\r\n }\r\n return monthCheck >= 0 && dayCheck >= 0;\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageName(msgKey, prefix) {\r\n var fix = isNotNullOrUndefined(prefix) ? prefix : \"\";\r\n if (msgKey) {\r\n return THROTTLE_STORAGE_PREFIX + fix + \"-\" + msgKey;\r\n }\r\n return null;\r\n }\r\n // returns if throttle is triggered on current Date\r\n function _isTriggeredOnCurDate(preTriggerDate) {\r\n try {\r\n if (preTriggerDate) {\r\n var curDate = new Date();\r\n return preTriggerDate.getUTCFullYear() === curDate.getUTCFullYear() &&\r\n preTriggerDate.getUTCMonth() === curDate.getUTCMonth() &&\r\n preTriggerDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]() === curDate[_DYN_GET_UTCDATE /* @min:%2egetUTCDate */]();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n // transfer local storage string value to object that identifies start date, current count and preTriggerDate\r\n function _getLocalStorageObj(value, logger, storageName) {\r\n try {\r\n var storageObj = {\r\n date: _getThrottleDate(),\r\n count: 0\r\n };\r\n if (value) {\r\n var obj = JSON.parse(value);\r\n var curObj = {\r\n date: _getThrottleDate(obj[_DYN_DATE /* @min:%2edate */]) || storageObj[_DYN_DATE /* @min:%2edate */],\r\n count: obj[_DYN_COUNT /* @min:%2ecount */] || storageObj[_DYN_COUNT /* @min:%2ecount */],\r\n preTriggerDate: obj.preTriggerDate ? _getThrottleDate(obj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]) : undefined\r\n };\r\n return curObj;\r\n }\r\n else {\r\n _resetLocalStorage(logger, storageName, storageObj);\r\n return storageObj;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n // if datestr is not defined, current date will be returned\r\n function _getThrottleDate(dateStr) {\r\n // if new Date() can't be created through the provided dateStr, null will be returned.\r\n try {\r\n if (dateStr) {\r\n var date = new Date(dateStr);\r\n //make sure it is a valid Date Object\r\n if (!isNaN(date.getDate())) {\r\n return date;\r\n }\r\n }\r\n else {\r\n return new Date();\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _resetLocalStorage(logger, storageName, obj) {\r\n try {\r\n return utlSetLocalStorage(logger, storageName, strTrim(JSON[_DYN_STRINGIFY /* @min:%2estringify */](obj)));\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _checkInterval(interval, start, current) {\r\n if (interval <= 0) {\r\n return 1;\r\n }\r\n // count from start year\r\n return (current >= start) && (current - start) % interval == 0 ? Math.floor((current - start) / interval) + 1 : -1;\r\n }\r\n function _sendMessage(msgID, logger, message, severity) {\r\n _throwInternal(logger, severity || 1 /* eLoggingSeverity.CRITICAL */, msgID, message);\r\n }\r\n // NOTE: config.limit.samplingRate is set to 4 decimal places,\r\n // so config.limit.samplingRate = 1 means 0.0001%\r\n function _canSampledIn(msgID) {\r\n try {\r\n var cfg = _getCfgByKey(msgID);\r\n return randomValue(1000000) <= cfg.limit.samplingRate;\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return false;\r\n }\r\n function _getLocalStorageObjByKey(key) {\r\n try {\r\n var curObj = _localStorageObj[key];\r\n if (!curObj) {\r\n var localStorageName = _getLocalStorageName(key, _namePrefix);\r\n curObj = _getLocalStorageObj(utlGetLocalStorage(_logger, localStorageName), _logger, localStorageName);\r\n _localStorageObj[key] = curObj;\r\n }\r\n return _localStorageObj[key];\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return null;\r\n }\r\n function _isTrigger(key) {\r\n var isTrigger = _isTriggered[key];\r\n if (isNullOrUndefined(isTrigger)) {\r\n isTrigger = false;\r\n var localStorageObj = _getLocalStorageObjByKey(key);\r\n if (localStorageObj) {\r\n isTrigger = _isTriggeredOnCurDate(localStorageObj[_DYN_PRE_TRIGGER_DATE /* @min:%2epreTriggerDate */]);\r\n }\r\n _isTriggered[key] = isTrigger;\r\n }\r\n return _isTriggered[key];\r\n }\r\n function _getQueueByKey(key) {\r\n _queue = _queue || {};\r\n if (isNullOrUndefined(_queue[key])) {\r\n _queue[key] = [];\r\n }\r\n return _queue[key];\r\n }\r\n }\r\n return ThrottleMgr;\r\n}());\r\nexport { ThrottleMgr };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createAllPromise, createPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, objDefine, safe, scheduleTimeout } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig } from \"../Config/DynamicConfig\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_DATA, _DYN_IS_ASYNC, _DYN_IS_CHILD_EVT, _DYN_LENGTH, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SPLICE, _DYN_UNLOAD, _DYN_WATCH } from \"../__DynamicConstants\";\r\nimport { STR_EVENTS_DISCARDED, STR_EVENTS_SEND_REQUEST, STR_EVENTS_SENT, STR_OFFLINE_DROP, STR_OFFLINE_SENT, STR_OFFLINE_STORE, STR_PERF_EVENT } from \"./InternalConstants\";\r\nvar defaultValues = {\r\n perfEvtsSendAll: false\r\n};\r\nfunction _runScheduledListeners(asyncNotifications) {\r\n asyncNotifications.h = null;\r\n var callbacks = asyncNotifications.cb;\r\n asyncNotifications.cb = [];\r\n arrForEach(callbacks, function (cb) {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(cb.fn, [cb.arg]);\r\n });\r\n}\r\n// This function is used to combine the logic of running the listeners and handling the async notifications so that they don't\r\n// create multiple timers if there are multiple async listeners.\r\nfunction _runListeners(listeners, name, asyncNotifications, callback) {\r\n arrForEach(listeners, function (listener) {\r\n if (listener && listener[name]) {\r\n if (asyncNotifications) {\r\n // Schedule the callback to be called after the current call stack has cleared.\r\n asyncNotifications.cb[_DYN_PUSH /* @min:%2epush */]({\r\n fn: callback,\r\n arg: listener\r\n });\r\n asyncNotifications.h = asyncNotifications.h || scheduleTimeout(_runScheduledListeners, 0, asyncNotifications);\r\n }\r\n else {\r\n // Run the listener in a try-catch to ensure that a single listener failing doesn't prevent the others from running\r\n safe(callback, [listener]);\r\n }\r\n }\r\n });\r\n}\r\n/**\r\n * Class to manage sending notifications to all the listeners.\r\n */\r\nvar NotificationManager = /** @class */ (function () {\r\n function NotificationManager(config) {\r\n this.listeners = [];\r\n var perfEvtsSendAll;\r\n var unloadHandler;\r\n var _listeners = [];\r\n var _asyncNotifications = {\r\n h: null,\r\n cb: []\r\n };\r\n var cfgHandler = createDynamicConfig(config, defaultValues);\r\n unloadHandler = cfgHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n perfEvtsSendAll = !!details.cfg.perfEvtsSendAll;\r\n });\r\n dynamicProto(NotificationManager, this, function (_self) {\r\n objDefine(_self, \"listeners\", {\r\n g: function () { return _listeners; }\r\n });\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _listeners[_DYN_PUSH /* @min:%2epush */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - AWTNotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n var index = arrIndexOf(_listeners, listener);\r\n while (index > -1) {\r\n _listeners[_DYN_SPLICE /* @min:%2esplice */](index, 1);\r\n index = arrIndexOf(_listeners, listener);\r\n }\r\n };\r\n /**\r\n * Notification for events sent.\r\n * @param events - The array of events that have been sent.\r\n */\r\n _self[STR_EVENTS_SENT /* @min:%2eeventsSent */] = function (events) {\r\n _runListeners(_listeners, STR_EVENTS_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_SENT /* @min:%2eeventsSent */](events);\r\n });\r\n };\r\n /**\r\n * Notification for events being discarded.\r\n * @param events - The array of events that have been discarded by the SDK.\r\n * @param reason - The reason for which the SDK discarded the events. The EventsDiscardedReason\r\n * constant should be used to check the different values.\r\n */\r\n _self[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */] = function (events, reason) {\r\n _runListeners(_listeners, STR_EVENTS_DISCARDED, _asyncNotifications, function (listener) {\r\n listener[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */](events, reason);\r\n });\r\n };\r\n /**\r\n * [Optional] A function called when the events have been requested to be sent to the sever.\r\n * @param sendReason - The reason why the event batch is being sent.\r\n * @param isAsync - A flag which identifies whether the requests are being sent in an async or sync manner.\r\n */\r\n _self[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */] = function (sendReason, isAsync) {\r\n _runListeners(_listeners, STR_EVENTS_SEND_REQUEST, isAsync ? _asyncNotifications : null, function (listener) {\r\n listener[STR_EVENTS_SEND_REQUEST /* @min:%2eeventsSendRequest */](sendReason, isAsync);\r\n });\r\n };\r\n _self[STR_PERF_EVENT /* @min:%2eperfEvent */] = function (perfEvent) {\r\n if (perfEvent) {\r\n // Send all events or only parent events\r\n if (perfEvtsSendAll || !perfEvent[_DYN_IS_CHILD_EVT /* @min:%2eisChildEvt */]()) {\r\n _runListeners(_listeners, STR_PERF_EVENT, null, function (listener) {\r\n if (perfEvent[_DYN_IS_ASYNC /* @min:%2eisAsync */]) {\r\n scheduleTimeout(function () { return listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent); }, 0);\r\n }\r\n else {\r\n listener[STR_PERF_EVENT /* @min:%2eperfEvent */](perfEvent);\r\n }\r\n });\r\n }\r\n }\r\n };\r\n _self[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */] = function (events) {\r\n if (events && events[_DYN_LENGTH /* @min:%2elength */]) {\r\n _runListeners(_listeners, STR_OFFLINE_STORE, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_STORE /* @min:%2eofflineEventsStored */](events);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */] = function (batch) {\r\n if (batch && batch[_DYN_DATA /* @min:%2edata */]) {\r\n _runListeners(_listeners, STR_OFFLINE_SENT, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_SENT /* @min:%2eofflineBatchSent */](batch);\r\n });\r\n }\r\n };\r\n _self[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */] = function (cnt, reason) {\r\n if (cnt > 0) {\r\n var rn_1 = reason || 0; // default is unknown\r\n _runListeners(_listeners, STR_OFFLINE_DROP, _asyncNotifications, function (listener) {\r\n listener[STR_OFFLINE_DROP /* @min:%2eofflineBatchDrop */](cnt, rn_1);\r\n });\r\n }\r\n };\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync) {\r\n var _finishUnload = function () {\r\n unloadHandler && unloadHandler.rm();\r\n unloadHandler = null;\r\n _listeners = [];\r\n // Clear any async listener\r\n _asyncNotifications.h && _asyncNotifications.h[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _asyncNotifications.h = null;\r\n _asyncNotifications.cb = [];\r\n };\r\n var waiting;\r\n _runListeners(_listeners, \"unload\", null, function (listener) {\r\n var asyncUnload = listener[_DYN_UNLOAD /* @min:%2eunload */](isAsync);\r\n if (asyncUnload) {\r\n if (!waiting) {\r\n waiting = [];\r\n }\r\n waiting[_DYN_PUSH /* @min:%2epush */](asyncUnload);\r\n }\r\n });\r\n if (waiting) {\r\n return createPromise(function (resolve) {\r\n return doAwaitResponse(createAllPromise(waiting), function () {\r\n _finishUnload();\r\n resolve();\r\n });\r\n });\r\n }\r\n else {\r\n _finishUnload();\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for NotificationManager.prototype.addNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.removeNotificationListener.\r\n// Removed Stub for NotificationManager.prototype.eventsSent.\r\n// Removed Stub for NotificationManager.prototype.eventsDiscarded.\r\n// Removed Stub for NotificationManager.prototype.eventsSendRequest.\r\n// Removed Stub for NotificationManager.prototype.perfEvent.\r\n// Removed Stub for NotificationManager.prototype.unload.\r\n// Removed Stub for NotificationManager.prototype.offlineEventsStored.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchSent.\r\n// Removed Stub for NotificationManager.prototype.offlineBatchDrop.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n NotificationManager.__ieDyn=1;\n\n return NotificationManager;\r\n}());\r\nexport { NotificationManager };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a;\r\nimport { __spreadArrayFn as __spreadArray } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { createPromise, createSyncAllSettledPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrAppend, arrForEach, arrIndexOf, createTimeout, deepExtend, hasDocument, isFunction, isNullOrUndefined, isPlainObject, isPromiseLike, objDeepFreeze, objDefine, objForEachKey, objFreeze, objHasOwn, scheduleTimeout, throwError } from \"@nevware21/ts-utils\";\r\nimport { createDynamicConfig, onConfigChange } from \"../Config/DynamicConfig\";\r\nimport { ActiveStatus } from \"../JavaScriptSDK.Enums/InitActiveStatusEnum\";\r\nimport { _DYN_ADD_NOTIFICATION_LIS1, _DYN_CANCEL, _DYN_CREATE_NEW, _DYN_ENABLED, _DYN_GET_NOTIFY_MGR, _DYN_GET_PLUGIN, _DYN_GET_PROCESS_TEL_CONT2, _DYN_IDENTIFIER, _DYN_INITIALIZE, _DYN_INSTRUMENTATION_KEY, _DYN_IS_ASYNC, _DYN_IS_INITIALIZED, _DYN_I_KEY, _DYN_LENGTH, _DYN_LOGGER, _DYN_LOGGING_LEVEL_CONSOL4, _DYN_MESSAGE, _DYN_MESSAGE_ID, _DYN_NAME, _DYN_NOTIFY, _DYN_ON_COMPLETE, _DYN_POLL_INTERNAL_LOGS, _DYN_PROCESS_NEXT, _DYN_PUSH, _DYN_REMOVE_NOTIFICATION_0, _DYN_SET_DF, _DYN_SPLICE, _DYN_STOP_POLLING_INTERNA3, _DYN_TEARDOWN, _DYN_TIME, _DYN_UNLOAD, _DYN_VALUE, _DYN_VERSION, _DYN_WATCH, _DYN__INACTIVE } from \"../__DynamicConstants\";\r\nimport { doUnloadAll, runTargetUnload } from \"./AsyncUtils\";\r\nimport { ChannelControllerPriority } from \"./Constants\";\r\nimport { createCookieMgr } from \"./CookieMgr\";\r\nimport { createUniqueNamespace } from \"./DataCacheHelper\";\r\nimport { getDebugListener } from \"./DbgExtensionUtils\";\r\nimport { DiagnosticLogger, _InternalLogMessage, _throwInternal, _warnToConsole } from \"./DiagnosticLogger\";\r\nimport { getSetValue, isNotNullOrUndefined, proxyFunctionAs, proxyFunctions, toISOString } from \"./HelperFuncs\";\r\nimport { STR_CHANNELS, STR_CORE, STR_CREATE_PERF_MGR, STR_DISABLED, STR_EMPTY, STR_EVENTS_DISCARDED, STR_EXTENSIONS, STR_EXTENSION_CONFIG, STR_GET_PERF_MGR, STR_PRIORITY, UNDEFINED_VALUE } from \"./InternalConstants\";\r\nimport { NotificationManager } from \"./NotificationManager\";\r\nimport { PerfManager, doPerf, getGblPerfMgr } from \"./PerfManager\";\r\nimport { createProcessTelemetryContext, createProcessTelemetryUnloadContext, createProcessTelemetryUpdateContext, createTelemetryProxyChain } from \"./ProcessTelemetryContext\";\r\nimport { _getPluginState, createDistributedTraceContext, initializePlugins, sortPlugins } from \"./TelemetryHelpers\";\r\nimport { TelemetryInitializerPlugin } from \"./TelemetryInitializerPlugin\";\r\nimport { createUnloadHandlerContainer } from \"./UnloadHandlerContainer\";\r\nimport { createUnloadHookContainer } from \"./UnloadHookContainer\";\r\nvar strValidationError = \"Plugins must provide initialize method\";\r\nvar strNotificationManager = \"_notificationManager\";\r\nvar strSdkUnloadingError = \"SDK is still unloading...\";\r\nvar strSdkNotInitialized = \"SDK is not initialized\";\r\nvar maxInitQueueSize = 100;\r\nvar maxInitTimeout = 50000;\r\n// const strPluginUnloadFailed = \"Failed to unload plugin\";\r\n/**\r\n * The default settings for the config.\r\n * WE MUST include all defaults here to ensure that the config is created with all of the properties\r\n * defined as dynamic.\r\n */\r\nvar defaultConfig = objDeepFreeze((_a = {\r\n cookieCfg: {}\r\n },\r\n _a[STR_EXTENSIONS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_CHANNELS] = { rdOnly: true, ref: true, v: [] },\r\n _a[STR_EXTENSION_CONFIG] = { ref: true, v: {} },\r\n _a[STR_CREATE_PERF_MGR] = UNDEFINED_VALUE,\r\n _a.loggingLevelConsole = 0 /* eLoggingSeverity.DISABLED */,\r\n _a.diagnosticLogInterval = UNDEFINED_VALUE,\r\n _a));\r\n/**\r\n * Helper to create the default performance manager\r\n * @param core\r\n * @param notificationMgr\r\n */\r\nfunction _createPerfManager(core, notificationMgr) {\r\n return new PerfManager(notificationMgr);\r\n}\r\nfunction _validateExtensions(logger, channelPriority, allExtensions) {\r\n var _a;\r\n // Concat all available extensions\r\n var coreExtensions = [];\r\n var channels = [];\r\n // Check if any two extensions have the same priority, then warn to console\r\n // And extract the local extensions from the\r\n var extPriorities = {};\r\n // Extension validation\r\n arrForEach(allExtensions, function (ext) {\r\n // Check for ext.initialize\r\n if (isNullOrUndefined(ext) || isNullOrUndefined(ext[_DYN_INITIALIZE /* @min:%2einitialize */])) {\r\n throwError(strValidationError);\r\n }\r\n var extPriority = ext[STR_PRIORITY /* @min:%2epriority */];\r\n var identifier = ext[_DYN_IDENTIFIER /* @min:%2eidentifier */];\r\n if (ext && extPriority) {\r\n if (!isNullOrUndefined(extPriorities[extPriority])) {\r\n _warnToConsole(logger, \"Two extensions have same priority #\" + extPriority + \" - \" + extPriorities[extPriority] + \", \" + identifier);\r\n }\r\n else {\r\n // set a value\r\n extPriorities[extPriority] = identifier;\r\n }\r\n }\r\n // Split extensions to core and channels\r\n if (!extPriority || extPriority < channelPriority) {\r\n // Add to core extension that will be managed by AppInsightsCore\r\n coreExtensions[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n else {\r\n channels[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n return _a = {},\r\n _a[STR_CORE /* @min:core */] = coreExtensions,\r\n _a[STR_CHANNELS /* @min:channels */] = channels,\r\n _a;\r\n}\r\nfunction _isPluginPresent(thePlugin, plugins) {\r\n var exists = false;\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin === thePlugin) {\r\n exists = true;\r\n return -1;\r\n }\r\n });\r\n return exists;\r\n}\r\nfunction _deepMergeConfig(details, target, newValues, merge) {\r\n // Lets assign the new values to the existing config\r\n if (newValues) {\r\n objForEachKey(newValues, function (key, value) {\r\n if (merge) {\r\n if (isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n }\r\n if (merge && isPlainObject(value) && isPlainObject(target[key])) {\r\n // The target is an object and it has a value\r\n _deepMergeConfig(details, target[key], value, merge);\r\n }\r\n else {\r\n // Just Assign (replace) and/or make the property dynamic\r\n details.set(target, key, value);\r\n }\r\n });\r\n }\r\n}\r\nfunction _findWatcher(listeners, newWatcher) {\r\n var theListener = null;\r\n var idx = -1;\r\n arrForEach(listeners, function (listener, lp) {\r\n if (listener.w === newWatcher) {\r\n theListener = listener;\r\n idx = lp;\r\n return -1;\r\n }\r\n });\r\n return { i: idx, l: theListener };\r\n}\r\nfunction _addDelayedCfgListener(listeners, newWatcher) {\r\n var theListener = _findWatcher(listeners, newWatcher).l;\r\n if (!theListener) {\r\n theListener = {\r\n w: newWatcher,\r\n rm: function () {\r\n var fnd = _findWatcher(listeners, newWatcher);\r\n if (fnd.i !== -1) {\r\n listeners[_DYN_SPLICE /* @min:%2esplice */](fnd.i, 1);\r\n }\r\n }\r\n };\r\n listeners[_DYN_PUSH /* @min:%2epush */](theListener);\r\n }\r\n return theListener;\r\n}\r\nfunction _registerDelayedCfgListener(config, listeners, logger) {\r\n arrForEach(listeners, function (listener) {\r\n var unloadHdl = onConfigChange(config, listener.w, logger);\r\n delete listener.w; // Clear the listener reference so it will get garbage collected.\r\n // replace the remove function\r\n listener.rm = function () {\r\n unloadHdl.rm();\r\n };\r\n });\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _initDebugListener(configHandler, unloadContainer, notificationManager, debugListener) {\r\n // Will get recalled if any referenced config values are changed\r\n unloadContainer.add(configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var disableDbgExt = details.cfg.disableDbgExt;\r\n if (disableDbgExt === true && debugListener) {\r\n // Remove any previously loaded debug listener\r\n notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](debugListener);\r\n debugListener = null;\r\n }\r\n if (notificationManager && !debugListener && disableDbgExt !== true) {\r\n debugListener = getDebugListener(details.cfg);\r\n notificationManager[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](debugListener);\r\n }\r\n }));\r\n return debugListener;\r\n}\r\n// Moved this outside of the closure to reduce the retained memory footprint\r\nfunction _createUnloadHook(unloadHook) {\r\n return objDefine({\r\n rm: function () {\r\n unloadHook.rm();\r\n }\r\n }, \"toJSON\", { v: function () { return \"aicore::onCfgChange<\" + JSON.stringify(unloadHook) + \">\"; } });\r\n}\r\n/**\r\n * @group Classes\r\n * @group Entrypoint\r\n */\r\nvar AppInsightsCore = /** @class */ (function () {\r\n function AppInsightsCore() {\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _configHandler;\r\n var _isInitialized;\r\n var _logger;\r\n var _eventQueue;\r\n var _notificationManager;\r\n var _perfManager;\r\n var _cfgPerfManager;\r\n var _cookieManager;\r\n var _pluginChain;\r\n var _configExtensions;\r\n var _channelConfig;\r\n var _channels;\r\n var _isUnloading;\r\n var _telemetryInitializerPlugin;\r\n var _internalLogsEventName;\r\n var _evtNamespace;\r\n var _unloadHandlers;\r\n var _hookContainer;\r\n var _debugListener;\r\n var _traceCtx;\r\n var _instrumentationKey;\r\n var _cfgListeners;\r\n var _extensions;\r\n var _pluginVersionStringArr;\r\n var _pluginVersionString;\r\n var _activeStatus; // to indicate if ikey or endpoint url promised is resolved or not\r\n var _endpoint;\r\n var _initInMemoMaxSize; // max event count limit during wait for init promises to be resolved\r\n var _isStatusSet; // track if active status is set in case of init timeout and init promises setting the status twice\r\n var _initTimer;\r\n /**\r\n * Internal log poller\r\n */\r\n var _internalLogPoller;\r\n var _internalLogPollerListening;\r\n var _forceStopInternalLogPoller;\r\n dynamicProto(AppInsightsCore, this, function (_self) {\r\n // Set the default values (also called during teardown)\r\n _initDefaults();\r\n // Special internal method to allow the unit tests and DebugPlugin to hook embedded objects\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_extensions, _eventQueue];\r\n };\r\n _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */] = function () { return _isInitialized; };\r\n // since version 3.3.0\r\n _self.activeStatus = function () { return _activeStatus; };\r\n // since version 3.3.0\r\n // internal\r\n _self._setPendingStatus = function () {\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n };\r\n // Creating the self.initialize = ()\r\n _self[_DYN_INITIALIZE /* @min:%2einitialize */] = function (config, extensions, logger, notificationManager) {\r\n if (_isUnloading) {\r\n throwError(strSdkUnloadingError);\r\n }\r\n // Make sure core is only initialized once\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n throwError(\"Core cannot be initialized more than once\");\r\n }\r\n _configHandler = createDynamicConfig(config, defaultConfig, logger || _self[_DYN_LOGGER /* @min:%2elogger */], false);\r\n // Re-assigning the local config property so we don't have any references to the passed value and it can be garbage collected\r\n config = _configHandler.cfg;\r\n // This will be \"re-run\" if the referenced config properties are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var rootCfg = details.cfg;\r\n var isPending = _activeStatus === 3 /* eActiveStatus.PENDING */;\r\n if (isPending) {\r\n // means waiting for previous promises to be resolved, won't apply new changes\r\n return;\r\n }\r\n _initInMemoMaxSize = rootCfg.initInMemoMaxSize || maxInitQueueSize;\r\n // app Insights core only handle ikey and endpointurl, aisku will handle cs\r\n var ikey = rootCfg[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n var endpointUrl = rootCfg.endpointUrl; // do not need to validate endpoint url, if it is null, default one will be set by sender\r\n if (isNullOrUndefined(ikey)) {\r\n _instrumentationKey = null;\r\n // if new ikey is null, set status to be inactive, all new events will be saved in memory or dropped\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n var msg = \"Please provide instrumentation key\";\r\n if (!_isInitialized) {\r\n // only throw error during initialization\r\n throwError(msg);\r\n }\r\n else {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 100 /* _eInternalMessageId.InvalidInstrumentationKey */, msg);\r\n _releaseQueues();\r\n }\r\n return;\r\n }\r\n var promises = [];\r\n if (isPromiseLike(ikey)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](ikey);\r\n _instrumentationKey = null; // reset current local ikey variable (otherwise it will always be the previous ikeys if timeout is called before promise cb)\r\n }\r\n else {\r\n // string\r\n _instrumentationKey = ikey;\r\n }\r\n if (isPromiseLike(endpointUrl)) {\r\n promises[_DYN_PUSH /* @min:%2epush */](endpointUrl);\r\n _endpoint = null; // reset current local endpoint variable (otherwise it will always be the previous urls if timeout is called before promise cb)\r\n }\r\n else {\r\n // string or null\r\n _endpoint = endpointUrl;\r\n }\r\n // at least have one promise\r\n if (promises[_DYN_LENGTH /* @min:%2elength */]) {\r\n // reset to false for new dynamic changes\r\n _isStatusSet = false;\r\n _activeStatus = 3 /* eActiveStatus.PENDING */;\r\n var initTimeout = isNotNullOrUndefined(rootCfg.initTimeOut) ? rootCfg.initTimeOut : maxInitTimeout; // rootCfg.initTimeOut could be 0\r\n var allPromises = createSyncAllSettledPromise(promises);\r\n _initTimer = scheduleTimeout(function () {\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _initTimer = null;\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }, initTimeout);\r\n doAwaitResponse(allPromises, function (response) {\r\n try {\r\n if (_isStatusSet) {\r\n // promises take too long to resolve, ignore them\r\n // active status should be set by timeout already\r\n return;\r\n }\r\n if (!response.rejected) {\r\n var values = response[_DYN_VALUE /* @min:%2evalue */];\r\n if (values && values[_DYN_LENGTH /* @min:%2elength */]) {\r\n // ikey\r\n var ikeyRes = values[0];\r\n _instrumentationKey = ikeyRes && ikeyRes[_DYN_VALUE /* @min:%2evalue */];\r\n // endpoint\r\n if (values[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var endpointRes = values[1];\r\n _endpoint = endpointRes && endpointRes[_DYN_VALUE /* @min:%2evalue */];\r\n }\r\n }\r\n if (_instrumentationKey) {\r\n // if ikey is null, no need to trigger extra dynamic changes for extensions\r\n config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = _instrumentationKey; // set config.instrumentationKey for extensions to consume\r\n config.endpointUrl = _endpoint; // set config.endpointUrl for extensions to consume\r\n }\r\n }\r\n // set _isStatusSet to true\r\n // set active status\r\n // release queues\r\n _setStatus();\r\n }\r\n catch (e) {\r\n if (!_isStatusSet) {\r\n _setStatus();\r\n }\r\n }\r\n });\r\n }\r\n else {\r\n // means no promises\r\n _setStatus();\r\n }\r\n //_instrumentationKey = details.cfg.instrumentationKey;\r\n // Mark the extensionConfig and all first level keys as referenced\r\n // This is so that calls to getExtCfg() will always return the same object\r\n // Even when a user may \"re-assign\" the plugin properties (or it's unloaded/reloaded)\r\n var extCfg = details.ref(details.cfg, STR_EXTENSION_CONFIG);\r\n objForEachKey(extCfg, function (key) {\r\n details.ref(extCfg, key);\r\n });\r\n }));\r\n _notificationManager = notificationManager;\r\n // Initialize the debug listener outside of the closure to reduce the retained memory footprint\r\n _debugListener = _initDebugListener(_configHandler, _hookContainer, _notificationManager && _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */](), _debugListener);\r\n _initPerfManager();\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = logger;\r\n var cfgExtensions = config[STR_EXTENSIONS /* @min:%2eextensions */];\r\n // Extension validation\r\n _configExtensions = [];\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */].apply(_configExtensions, __spreadArray(__spreadArray([], extensions, false), cfgExtensions, false));\r\n _channelConfig = config[STR_CHANNELS /* @min:%2echannels */];\r\n _initPluginChain(null);\r\n if (!_channels || _channels[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n throwError(\"No \" + STR_CHANNELS + \" available\");\r\n }\r\n if (_channelConfig && _channelConfig[_DYN_LENGTH /* @min:%2elength */] > 1) {\r\n var teeController = _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */](\"TeeChannelController\");\r\n if (!teeController || !teeController.plugin) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 28 /* _eInternalMessageId.SenderNotInitialized */, \"TeeChannel required\");\r\n }\r\n }\r\n _registerDelayedCfgListener(config, _cfgListeners, _logger);\r\n _cfgListeners = null;\r\n _isInitialized = true;\r\n if (_activeStatus === ActiveStatus.ACTIVE) {\r\n _releaseQueues();\r\n }\r\n };\r\n _self.getChannels = function () {\r\n var controls = [];\r\n if (_channels) {\r\n arrForEach(_channels, function (channel) {\r\n controls[_DYN_PUSH /* @min:%2epush */](channel);\r\n });\r\n }\r\n return objFreeze(controls);\r\n };\r\n _self.track = function (telemetryItem) {\r\n doPerf(_self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */](), function () { return \"AppInsightsCore:track\"; }, function () {\r\n if (telemetryItem === null) {\r\n _notifyInvalidEvent(telemetryItem);\r\n // throw error\r\n throwError(\"Invalid telemetry item\");\r\n }\r\n // do basic validation before sending it through the pipeline\r\n if (!telemetryItem[_DYN_NAME /* @min:%2ename */] && isNullOrUndefined(telemetryItem[_DYN_NAME /* @min:%2ename */])) {\r\n _notifyInvalidEvent(telemetryItem);\r\n throwError(\"telemetry name required\");\r\n }\r\n // setup default iKey if not passed in\r\n telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] = telemetryItem[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n // add default timestamp if not passed in\r\n telemetryItem[_DYN_TIME /* @min:%2etime */] = telemetryItem[_DYN_TIME /* @min:%2etime */] || toISOString(new Date());\r\n // Common Schema 4.0\r\n telemetryItem.ver = telemetryItem.ver || \"4.0\";\r\n if (!_isUnloading && _self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]() && _activeStatus === ActiveStatus.ACTIVE) {\r\n // Process the telemetry plugin chain\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](telemetryItem);\r\n }\r\n else if (_activeStatus !== ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */]) {\r\n // Queue events until all extensions are initialized\r\n if (_eventQueue[_DYN_LENGTH /* @min:%2elength */] <= _initInMemoMaxSize) {\r\n // set limit, if full, stop adding new events\r\n _eventQueue[_DYN_PUSH /* @min:%2epush */](telemetryItem);\r\n }\r\n }\r\n }, function () { return ({ item: telemetryItem }); }, !(telemetryItem.sync));\r\n };\r\n _self[_DYN_GET_PROCESS_TEL_CONT2 /* @min:%2egetProcessTelContext */] = _createTelCtx;\r\n _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */] = function () {\r\n if (!_notificationManager) {\r\n _notificationManager = new NotificationManager(_configHandler.cfg);\r\n // For backward compatibility only\r\n _self[strNotificationManager] = _notificationManager;\r\n }\r\n return _notificationManager;\r\n };\r\n /**\r\n * Adds a notification listener. The SDK calls methods on the listener when an appropriate notification is raised.\r\n * The added plugins must raise notifications. If the plugins do not implement the notifications, then no methods will be\r\n * called.\r\n * @param listener - An INotificationListener object.\r\n */\r\n _self[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */] = function (listener) {\r\n _self.getNotifyMgr()[_DYN_ADD_NOTIFICATION_LIS1 /* @min:%2eaddNotificationListener */](listener);\r\n };\r\n /**\r\n * Removes all instances of the listener.\r\n * @param listener - INotificationListener to remove.\r\n */\r\n _self[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */] = function (listener) {\r\n if (_notificationManager) {\r\n _notificationManager[_DYN_REMOVE_NOTIFICATION_0 /* @min:%2eremoveNotificationListener */](listener);\r\n }\r\n };\r\n _self.getCookieMgr = function () {\r\n if (!_cookieManager) {\r\n _cookieManager = createCookieMgr(_configHandler.cfg, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _cookieManager;\r\n };\r\n _self.setCookieMgr = function (cookieMgr) {\r\n if (_cookieManager !== cookieMgr) {\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = cookieMgr;\r\n }\r\n };\r\n _self[STR_GET_PERF_MGR /* @min:%2egetPerfMgr */] = function () {\r\n return _perfManager || _cfgPerfManager || getGblPerfMgr();\r\n };\r\n _self.setPerfMgr = function (perfMgr) {\r\n _perfManager = perfMgr;\r\n };\r\n _self.eventCnt = function () {\r\n return _eventQueue[_DYN_LENGTH /* @min:%2elength */];\r\n };\r\n _self.releaseQueue = function () {\r\n if (_isInitialized && _eventQueue[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var eventQueue = _eventQueue;\r\n _eventQueue = [];\r\n if (_activeStatus === 2 /* eActiveStatus.ACTIVE */) {\r\n arrForEach(eventQueue, function (event) {\r\n event[_DYN_I_KEY /* @min:%2eiKey */] = event[_DYN_I_KEY /* @min:%2eiKey */] || _instrumentationKey;\r\n _createTelCtx()[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](event);\r\n });\r\n }\r\n else {\r\n // new one for msg ikey\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 20 /* _eInternalMessageId.FailedToSendQueuedTelemetry */, \"core init status is not active\");\r\n }\r\n }\r\n };\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */] = function (eventName) {\r\n _internalLogsEventName = eventName || null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n return _startLogPoller(true);\r\n };\r\n function _setStatus() {\r\n _isStatusSet = true;\r\n if (isNullOrUndefined(_instrumentationKey)) {\r\n _activeStatus = ActiveStatus[_DYN__INACTIVE /* @min:%2eINACTIVE */];\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 112 /* _eInternalMessageId.InitPromiseException */, \"ikey can't be resolved from promises\");\r\n }\r\n else {\r\n _activeStatus = ActiveStatus.ACTIVE;\r\n }\r\n _releaseQueues();\r\n }\r\n function _releaseQueues() {\r\n if (_isInitialized) {\r\n _self.releaseQueue();\r\n _self[_DYN_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n }\r\n }\r\n function _startLogPoller(alwaysStart) {\r\n if ((!_internalLogPoller || !_internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */]) && !_forceStopInternalLogPoller) {\r\n var shouldStart = alwaysStart || (_logger && _logger.queue[_DYN_LENGTH /* @min:%2elength */] > 0);\r\n if (shouldStart) {\r\n if (!_internalLogPollerListening) {\r\n _internalLogPollerListening = true;\r\n // listen for any configuration changes so that changes to the\r\n // interval will cause the timer to be re-initialized\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var interval = details.cfg.diagnosticLogInterval;\r\n if (!interval || !(interval > 0)) {\r\n interval = 10000;\r\n }\r\n var isRunning = false;\r\n if (_internalLogPoller) {\r\n // It was already created so remember it's running and cancel\r\n isRunning = _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */];\r\n _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n }\r\n // Create / reconfigure\r\n _internalLogPoller = createTimeout(_flushInternalLogs, interval);\r\n _internalLogPoller.unref();\r\n // Restart if previously running\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = isRunning;\r\n }));\r\n }\r\n _internalLogPoller[_DYN_ENABLED /* @min:%2eenabled */] = true;\r\n }\r\n }\r\n return _internalLogPoller;\r\n }\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */] = function () {\r\n _forceStopInternalLogPoller = true;\r\n _internalLogPoller && _internalLogPoller[_DYN_CANCEL /* @min:%2ecancel */]();\r\n _flushInternalLogs();\r\n };\r\n // Add addTelemetryInitializer\r\n proxyFunctions(_self, function () { return _telemetryInitializerPlugin; }, [\"addTelemetryInitializer\"]);\r\n _self[_DYN_UNLOAD /* @min:%2eunload */] = function (isAsync, unloadComplete, cbTimeout) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n if (!_isInitialized) {\r\n // The SDK is not initialized\r\n throwError(strSdkNotInitialized);\r\n }\r\n // Check if the SDK still unloading so throw\r\n if (_isUnloading) {\r\n // The SDK is already unloading\r\n throwError(strSdkUnloadingError);\r\n }\r\n var unloadState = (_a = {\r\n reason: 50 /* TelemetryUnloadReason.SdkUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a.flushComplete = false,\r\n _a);\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n var processUnloadCtx = createProcessTelemetryUnloadContext(_getPluginChain(), _self);\r\n processUnloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n _hookContainer.run(_self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Run any \"unload\" functions for the _cookieManager, _notificationManager and _logger\r\n doUnloadAll([_cookieManager, _notificationManager, _logger], isAsync, function () {\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n });\r\n }, _self);\r\n function _doUnload(flushComplete) {\r\n unloadState.flushComplete = flushComplete;\r\n _isUnloading = true;\r\n // Run all of the unload handlers first (before unloading the plugins)\r\n _unloadHandlers.run(processUnloadCtx, unloadState);\r\n // Stop polling the internal logs\r\n _self[_DYN_STOP_POLLING_INTERNA3 /* @min:%2estopPollingInternalLogs */]();\r\n // Start unloading the components, from this point onwards the SDK should be considered to be in an unstable state\r\n processUnloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n _flushInternalLogs();\r\n if (!_flushChannels(isAsync, _doUnload, 6 /* SendRequestReason.SdkUnload */, cbTimeout)) {\r\n _doUnload(false);\r\n }\r\n return result;\r\n };\r\n _self[_DYN_GET_PLUGIN /* @min:%2egetPlugin */] = _getPlugin;\r\n _self.addPlugin = function (plugin, replaceExisting, isAsync, addCb) {\r\n if (!plugin) {\r\n addCb && addCb(false);\r\n _logOrThrowError(strValidationError);\r\n return;\r\n }\r\n var existingPlugin = _getPlugin(plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */]);\r\n if (existingPlugin && !replaceExisting) {\r\n addCb && addCb(false);\r\n _logOrThrowError(\"Plugin [\" + plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"] is already loaded!\");\r\n return;\r\n }\r\n var updateState = {\r\n reason: 16 /* TelemetryUpdateReason.PluginAdded */\r\n };\r\n function _addPlugin(removed) {\r\n _configExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n updateState.added = [plugin];\r\n // Re-Initialize the plugin chain\r\n _initPluginChain(updateState);\r\n addCb && addCb(true);\r\n }\r\n if (existingPlugin) {\r\n var removedPlugins_1 = [existingPlugin.plugin];\r\n var unloadState = {\r\n reason: 2 /* TelemetryUnloadReason.PluginReplace */,\r\n isAsync: !!isAsync\r\n };\r\n _removePlugins(removedPlugins_1, unloadState, function (removed) {\r\n if (!removed) {\r\n // Previous plugin was successfully removed or was not installed\r\n addCb && addCb(false);\r\n }\r\n else {\r\n updateState.removed = removedPlugins_1;\r\n updateState.reason |= 32 /* TelemetryUpdateReason.PluginRemoved */;\r\n _addPlugin(true);\r\n }\r\n });\r\n }\r\n else {\r\n _addPlugin(false);\r\n }\r\n };\r\n _self.updateCfg = function (newConfig, mergeExisting) {\r\n if (mergeExisting === void 0) { mergeExisting = true; }\r\n var updateState;\r\n if (_self[_DYN_IS_INITIALIZED /* @min:%2eisInitialized */]()) {\r\n updateState = {\r\n reason: 1 /* TelemetryUpdateReason.ConfigurationChanged */,\r\n cfg: _configHandler.cfg,\r\n oldCfg: deepExtend({}, _configHandler.cfg),\r\n newConfig: deepExtend({}, newConfig),\r\n merge: mergeExisting\r\n };\r\n newConfig = updateState.newConfig;\r\n var cfg = _configHandler.cfg;\r\n // replace the immutable (if initialized) values\r\n // We don't currently allow updating the extensions and channels via the update config\r\n // So overwriting any user provided values to reuse the existing values\r\n newConfig[STR_EXTENSIONS /* @min:%2eextensions */] = cfg[STR_EXTENSIONS /* @min:%2eextensions */];\r\n newConfig[STR_CHANNELS /* @min:%2echannels */] = cfg[STR_CHANNELS /* @min:%2echannels */];\r\n }\r\n // Explicitly blocking any previous config watchers so that they don't get called because\r\n // of this bulk update (Probably not necessary)\r\n _configHandler._block(function (details) {\r\n // Lets assign the new values to the existing config either overwriting or re-assigning\r\n var theConfig = details.cfg;\r\n _deepMergeConfig(details, theConfig, newConfig, mergeExisting);\r\n if (!mergeExisting) {\r\n // Remove (unassign) the values \"missing\" from the newConfig and also not in the default config\r\n objForEachKey(theConfig, function (key) {\r\n if (!objHasOwn(newConfig, key)) {\r\n // Set the value to undefined\r\n details.set(theConfig, key, UNDEFINED_VALUE);\r\n }\r\n });\r\n }\r\n // Apply defaults to the new config\r\n details[_DYN_SET_DF /* @min:%2esetDf */](theConfig, defaultConfig);\r\n }, true);\r\n // Now execute all of the listeners (synchronously) so they update their values immediately\r\n _configHandler[_DYN_NOTIFY /* @min:%2enotify */]();\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n };\r\n _self.evtNamespace = function () {\r\n return _evtNamespace;\r\n };\r\n _self.flush = _flushChannels;\r\n _self.getTraceCtx = function (createNew) {\r\n if (!_traceCtx) {\r\n _traceCtx = createDistributedTraceContext();\r\n }\r\n return _traceCtx;\r\n };\r\n _self.setTraceCtx = function (traceCtx) {\r\n _traceCtx = traceCtx || null;\r\n };\r\n _self.addUnloadHook = _addUnloadHook;\r\n // Create the addUnloadCb\r\n proxyFunctionAs(_self, \"addUnloadCb\", function () { return _unloadHandlers; }, \"add\");\r\n _self.onCfgChange = function (handler) {\r\n var unloadHook;\r\n if (!_isInitialized) {\r\n unloadHook = _addDelayedCfgListener(_cfgListeners, handler);\r\n }\r\n else {\r\n unloadHook = onConfigChange(_configHandler.cfg, handler, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n }\r\n return _createUnloadHook(unloadHook);\r\n };\r\n _self.getWParam = function () {\r\n return (hasDocument() || !!_configHandler.cfg.enableWParam) ? 0 : -1;\r\n };\r\n function _setPluginVersions() {\r\n var thePlugins = {};\r\n _pluginVersionStringArr = [];\r\n var _addPluginVersions = function (plugins) {\r\n if (plugins) {\r\n arrForEach(plugins, function (plugin) {\r\n if (plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] && plugin[_DYN_VERSION /* @min:%2eversion */] && !thePlugins[plugin.identifier]) {\r\n var ver = plugin[_DYN_IDENTIFIER /* @min:%2eidentifier */] + \"=\" + plugin[_DYN_VERSION /* @min:%2eversion */];\r\n _pluginVersionStringArr[_DYN_PUSH /* @min:%2epush */](ver);\r\n thePlugins[plugin.identifier] = plugin;\r\n }\r\n });\r\n }\r\n };\r\n _addPluginVersions(_channels);\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (channels) {\r\n _addPluginVersions(channels);\r\n });\r\n }\r\n _addPluginVersions(_configExtensions);\r\n }\r\n function _initDefaults() {\r\n _isInitialized = false;\r\n // Use a default logger so initialization errors are not dropped on the floor with full logging\r\n _configHandler = createDynamicConfig({}, defaultConfig, _self[_DYN_LOGGER /* @min:%2elogger */]);\r\n // Set the logging level to critical so that any critical initialization failures are displayed on the console\r\n _configHandler.cfg[_DYN_LOGGING_LEVEL_CONSOL4 /* @min:%2eloggingLevelConsole */] = 1 /* eLoggingSeverity.CRITICAL */;\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return _configHandler.cfg; },\r\n s: function (newValue) {\r\n _self.updateCfg(newValue, false);\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionStringArr\", {\r\n g: function () {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n return _pluginVersionStringArr;\r\n }\r\n });\r\n objDefine(_self, \"pluginVersionString\", {\r\n g: function () {\r\n if (!_pluginVersionString) {\r\n if (!_pluginVersionStringArr) {\r\n _setPluginVersions();\r\n }\r\n _pluginVersionString = _pluginVersionStringArr.join(\";\");\r\n }\r\n return _pluginVersionString || STR_EMPTY;\r\n }\r\n });\r\n objDefine(_self, \"logger\", {\r\n g: function () {\r\n if (!_logger) {\r\n _logger = new DiagnosticLogger(_configHandler.cfg);\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = _logger;\r\n }\r\n return _logger;\r\n },\r\n s: function (newLogger) {\r\n _configHandler[_DYN_LOGGER /* @min:%2elogger */] = newLogger;\r\n if (_logger !== newLogger) {\r\n runTargetUnload(_logger, false);\r\n _logger = newLogger;\r\n }\r\n }\r\n });\r\n _self[_DYN_LOGGER /* @min:%2elogger */] = new DiagnosticLogger(_configHandler.cfg);\r\n _extensions = [];\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n _telemetryInitializerPlugin = new TelemetryInitializerPlugin();\r\n _eventQueue = [];\r\n runTargetUnload(_notificationManager, false);\r\n _notificationManager = null;\r\n _perfManager = null;\r\n _cfgPerfManager = null;\r\n runTargetUnload(_cookieManager, false);\r\n _cookieManager = null;\r\n _pluginChain = null;\r\n _configExtensions = [];\r\n _channelConfig = null;\r\n _channels = null;\r\n _isUnloading = false;\r\n _internalLogsEventName = null;\r\n _evtNamespace = createUniqueNamespace(\"AIBaseCore\", true);\r\n _unloadHandlers = createUnloadHandlerContainer();\r\n _traceCtx = null;\r\n _instrumentationKey = null;\r\n _hookContainer = createUnloadHookContainer();\r\n _cfgListeners = [];\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n _forceStopInternalLogPoller = false;\r\n _internalLogPoller = null;\r\n _internalLogPollerListening = false;\r\n _activeStatus = 0 /* eActiveStatus.NONE */; // default is None\r\n _endpoint = null;\r\n _initInMemoMaxSize = null;\r\n _isStatusSet = false;\r\n _initTimer = null;\r\n }\r\n function _createTelCtx() {\r\n var theCtx = createProcessTelemetryContext(_getPluginChain(), _configHandler.cfg, _self);\r\n theCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n return theCtx;\r\n }\r\n // Initialize or Re-initialize the plugins\r\n function _initPluginChain(updateState) {\r\n // Extension validation\r\n var theExtensions = _validateExtensions(_self[_DYN_LOGGER /* @min:%2elogger */], ChannelControllerPriority, _configExtensions);\r\n _pluginChain = null;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Get the primary channel queue and include as part of the normal extensions\r\n _channels = (_channelConfig || [])[0] || [];\r\n // Add any channels provided in the extensions and sort them\r\n _channels = sortPlugins(arrAppend(_channels, theExtensions[STR_CHANNELS /* @min:%2echannels */]));\r\n // Create an array of all extensions, including the _channels\r\n var allExtensions = arrAppend(sortPlugins(theExtensions[STR_CORE /* @min:%2ecore */]), _channels);\r\n // Required to allow plugins to call core.getPlugin() during their own initialization\r\n _extensions = objFreeze(allExtensions);\r\n // This has a side effect of adding the extensions passed during initialization\r\n // into the config.extensions, so you can see all of the extensions loaded.\r\n // This will also get updated by the addPlugin() and remove plugin code.\r\n var cfgExtensions = _self.config[STR_EXTENSIONS /* @min:%2eextensions */] || [];\r\n cfgExtensions.splice(0, cfgExtensions[_DYN_LENGTH /* @min:%2elength */]);\r\n arrAppend(cfgExtensions, _extensions);\r\n var rootCtx = _createTelCtx();\r\n // Initializing the channels first\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n initializePlugins(rootCtx[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels), allExtensions);\r\n }\r\n // Now initialize the normal extensions (explicitly not including the _channels as this can cause duplicate initialization)\r\n initializePlugins(rootCtx, allExtensions);\r\n if (updateState) {\r\n _doUpdate(updateState);\r\n }\r\n }\r\n function _getPlugin(pluginIdentifier) {\r\n var theExt = null;\r\n var thePlugin = null;\r\n var channelHosts = [];\r\n arrForEach(_extensions, function (ext) {\r\n if (ext[_DYN_IDENTIFIER /* @min:%2eidentifier */] === pluginIdentifier && ext !== _telemetryInitializerPlugin) {\r\n thePlugin = ext;\r\n return -1;\r\n }\r\n if (ext.getChannel) {\r\n channelHosts[_DYN_PUSH /* @min:%2epush */](ext);\r\n }\r\n });\r\n if (!thePlugin && channelHosts[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n arrForEach(channelHosts, function (host) {\r\n thePlugin = host.getChannel(pluginIdentifier);\r\n if (!thePlugin) {\r\n return -1;\r\n }\r\n });\r\n }\r\n if (thePlugin) {\r\n theExt = {\r\n plugin: thePlugin,\r\n setEnabled: function (enabled) {\r\n _getPluginState(thePlugin)[STR_DISABLED] = !enabled;\r\n },\r\n isEnabled: function () {\r\n var pluginState = _getPluginState(thePlugin);\r\n return !pluginState[_DYN_TEARDOWN /* @min:%2eteardown */] && !pluginState[STR_DISABLED];\r\n },\r\n remove: function (isAsync, removeCb) {\r\n var _a;\r\n if (isAsync === void 0) { isAsync = true; }\r\n var pluginsToRemove = [thePlugin];\r\n var unloadState = (_a = {\r\n reason: 1 /* TelemetryUnloadReason.PluginUnload */\r\n },\r\n _a[_DYN_IS_ASYNC /* @min:isAsync */] = isAsync,\r\n _a);\r\n _removePlugins(pluginsToRemove, unloadState, function (removed) {\r\n if (removed) {\r\n // Re-Initialize the plugin chain\r\n _initPluginChain({\r\n reason: 32 /* TelemetryUpdateReason.PluginRemoved */,\r\n removed: pluginsToRemove\r\n });\r\n }\r\n removeCb && removeCb(removed);\r\n });\r\n }\r\n };\r\n }\r\n return theExt;\r\n }\r\n function _getPluginChain() {\r\n if (!_pluginChain) {\r\n // copy the collection of extensions\r\n var extensions = (_extensions || []).slice();\r\n // During add / remove this may get called again, so don't read if already present\r\n if (arrIndexOf(extensions, _telemetryInitializerPlugin) === -1) {\r\n extensions[_DYN_PUSH /* @min:%2epush */](_telemetryInitializerPlugin);\r\n }\r\n _pluginChain = createTelemetryProxyChain(sortPlugins(extensions), _configHandler.cfg, _self);\r\n }\r\n return _pluginChain;\r\n }\r\n function _removePlugins(thePlugins, unloadState, removeComplete) {\r\n if (thePlugins && thePlugins[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var unloadChain = createTelemetryProxyChain(thePlugins, _configHandler.cfg, _self);\r\n var unloadCtx = createProcessTelemetryUnloadContext(unloadChain, _self);\r\n unloadCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](function () {\r\n var removed = false;\r\n // Remove the listed config extensions\r\n var newConfigExtensions = [];\r\n arrForEach(_configExtensions, function (plugin, idx) {\r\n if (!_isPluginPresent(plugin, thePlugins)) {\r\n newConfigExtensions[_DYN_PUSH /* @min:%2epush */](plugin);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n _configExtensions = newConfigExtensions;\r\n _pluginVersionString = null;\r\n _pluginVersionStringArr = null;\r\n // Re-Create the channel config\r\n var newChannelConfig = [];\r\n if (_channelConfig) {\r\n arrForEach(_channelConfig, function (queue, idx) {\r\n var newQueue = [];\r\n arrForEach(queue, function (channel) {\r\n if (!_isPluginPresent(channel, thePlugins)) {\r\n newQueue[_DYN_PUSH /* @min:%2epush */](channel);\r\n }\r\n else {\r\n removed = true;\r\n }\r\n });\r\n newChannelConfig[_DYN_PUSH /* @min:%2epush */](newQueue);\r\n });\r\n _channelConfig = newChannelConfig;\r\n }\r\n removeComplete && removeComplete(removed);\r\n _startLogPoller();\r\n });\r\n unloadCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](unloadState);\r\n }\r\n else {\r\n removeComplete(false);\r\n }\r\n }\r\n function _flushInternalLogs() {\r\n if (_logger && _logger.queue) {\r\n var queue = _logger.queue.slice(0);\r\n _logger.queue[_DYN_LENGTH /* @min:%2elength */] = 0;\r\n arrForEach(queue, function (logMessage) {\r\n var _a;\r\n var item = (_a = {},\r\n _a[_DYN_NAME /* @min:name */] = _internalLogsEventName ? _internalLogsEventName : \"InternalMessageId: \" + logMessage[_DYN_MESSAGE_ID /* @min:%2emessageId */],\r\n _a[_DYN_I_KEY /* @min:iKey */] = _instrumentationKey,\r\n _a[_DYN_TIME /* @min:time */] = toISOString(new Date()),\r\n _a.baseType = _InternalLogMessage.dataType,\r\n _a.baseData = { message: logMessage[_DYN_MESSAGE /* @min:%2emessage */] },\r\n _a);\r\n _self.track(item);\r\n });\r\n }\r\n }\r\n function _flushChannels(isAsync, callBack, sendReason, cbTimeout) {\r\n // Setting waiting to one so that we don't call the callBack until we finish iterating\r\n var waiting = 1;\r\n var doneIterating = false;\r\n var cbTimer = null;\r\n cbTimeout = cbTimeout || 5000;\r\n function doCallback() {\r\n waiting--;\r\n if (doneIterating && waiting === 0) {\r\n cbTimer && cbTimer[_DYN_CANCEL /* @min:%2ecancel */]();\r\n cbTimer = null;\r\n callBack && callBack(doneIterating);\r\n callBack = null;\r\n }\r\n }\r\n if (_channels && _channels[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n var flushCtx = _createTelCtx()[_DYN_CREATE_NEW /* @min:%2ecreateNew */](_channels);\r\n flushCtx.iterate(function (plugin) {\r\n if (plugin.flush) {\r\n waiting++;\r\n var handled_1 = false;\r\n // Not all channels will call this callback for every scenario\r\n if (!plugin.flush(isAsync, function () {\r\n handled_1 = true;\r\n doCallback();\r\n }, sendReason)) {\r\n if (!handled_1) {\r\n // If any channel doesn't return true and it didn't call the callback, then we should assume that the callback\r\n // will never be called, so use a timeout to allow the channel(s) some time to \"finish\" before triggering any\r\n // followup function (such as unloading)\r\n if (isAsync && cbTimer == null) {\r\n cbTimer = scheduleTimeout(function () {\r\n cbTimer = null;\r\n doCallback();\r\n }, cbTimeout);\r\n }\r\n else {\r\n doCallback();\r\n }\r\n }\r\n }\r\n }\r\n });\r\n }\r\n doneIterating = true;\r\n doCallback();\r\n return true;\r\n }\r\n function _initPerfManager() {\r\n // Save the previous config based performance manager creator to avoid creating new perf manager instances if unchanged\r\n var prevCfgPerfMgr;\r\n // Will get recalled if any referenced config values are changed\r\n _addUnloadHook(_configHandler[_DYN_WATCH /* @min:%2ewatch */](function (details) {\r\n var enablePerfMgr = details.cfg.enablePerfMgr;\r\n if (enablePerfMgr) {\r\n var createPerfMgr = details.cfg[STR_CREATE_PERF_MGR /* @min:%2ecreatePerfMgr */];\r\n // for preCfgPerfMgr = createPerfMgr = null\r\n // initial createPerfMgr function should be _createPerfManager\r\n if ((prevCfgPerfMgr !== createPerfMgr) || !prevCfgPerfMgr) {\r\n if (!createPerfMgr) {\r\n createPerfMgr = _createPerfManager;\r\n }\r\n // Set the performance manager creation function if not defined\r\n getSetValue(details.cfg, STR_CREATE_PERF_MGR, createPerfMgr);\r\n prevCfgPerfMgr = createPerfMgr;\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n }\r\n // Only create the performance manager if it's not already created or manually set\r\n if (!_perfManager && !_cfgPerfManager && isFunction(createPerfMgr)) {\r\n // Create a new config based performance manager\r\n _cfgPerfManager = createPerfMgr(_self, _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]());\r\n }\r\n }\r\n else {\r\n // Remove any existing config based performance manager\r\n _cfgPerfManager = null;\r\n // Clear the previous cached value so it can be GC'd\r\n prevCfgPerfMgr = null;\r\n }\r\n }));\r\n }\r\n function _doUpdate(updateState) {\r\n var updateCtx = createProcessTelemetryUpdateContext(_getPluginChain(), _self);\r\n updateCtx[_DYN_ON_COMPLETE /* @min:%2eonComplete */](_startLogPoller);\r\n if (!_self._updateHook || _self._updateHook(updateCtx, updateState) !== true) {\r\n updateCtx[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](updateState);\r\n }\r\n }\r\n function _logOrThrowError(message) {\r\n var logger = _self[_DYN_LOGGER /* @min:%2elogger */];\r\n if (logger) {\r\n // there should always be a logger\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 73 /* _eInternalMessageId.PluginException */, message);\r\n _startLogPoller();\r\n }\r\n else {\r\n throwError(message);\r\n }\r\n }\r\n function _notifyInvalidEvent(telemetryItem) {\r\n var manager = _self[_DYN_GET_NOTIFY_MGR /* @min:%2egetNotifyMgr */]();\r\n if (manager) {\r\n manager[STR_EVENTS_DISCARDED /* @min:%2eeventsDiscarded */]([telemetryItem], 2 /* eEventsDiscardedReason.InvalidEvent */);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _hookContainer.add(hooks);\r\n }\r\n });\r\n }\r\n// Removed Stub for AppInsightsCore.prototype.initialize.\r\n// Removed Stub for AppInsightsCore.prototype.getChannels.\r\n// Removed Stub for AppInsightsCore.prototype.track.\r\n// Removed Stub for AppInsightsCore.prototype.getProcessTelContext.\r\n// Removed Stub for AppInsightsCore.prototype.getNotifyMgr.\r\n// Removed Stub for AppInsightsCore.prototype.addNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.removeNotificationListener.\r\n// Removed Stub for AppInsightsCore.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setCookieMgr.\r\n// Removed Stub for AppInsightsCore.prototype.getPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.setPerfMgr.\r\n// Removed Stub for AppInsightsCore.prototype.eventCnt.\r\n// Removed Stub for AppInsightsCore.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsCore.prototype.addTelemetryInitializer.\r\n// Removed Stub for AppInsightsCore.prototype.unload.\r\n// Removed Stub for AppInsightsCore.prototype.getPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.addPlugin.\r\n// Removed Stub for AppInsightsCore.prototype.updateCfg.\r\n// Removed Stub for AppInsightsCore.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsCore.prototype.flush.\r\n// Removed Stub for AppInsightsCore.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.setTraceCtx.\r\n// Removed Stub for AppInsightsCore.prototype.addUnloadHook.\r\n// Removed Stub for AppInsightsCore.prototype.onCfgChange.\r\n// Removed Stub for AppInsightsCore.prototype.activeStatus.\r\n// Removed Stub for AppInsightsCore.prototype._setPendingStatus.\r\n// Removed Stub for AppInsightsCore.prototype.releaseQueue.\r\n// Removed Stub for AppInsightsCore.prototype._updateHook.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n AppInsightsCore.__ieDyn=1;\n\n return AppInsightsCore;\r\n}());\r\nexport { AppInsightsCore };\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n// \r\n// \r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { arrAppend, arrForEach, dumpObj } from \"@nevware21/ts-utils\";\r\nimport { _DYN_APPLY, _DYN_DIAG_LOG, _DYN_LENGTH, _DYN_PROCESS_NEXT, _DYN_SPLICE, _DYN__DO_TEARDOWN } from \"../__DynamicConstants\";\r\nimport { BaseTelemetryPlugin } from \"./BaseTelemetryPlugin\";\r\nimport { _throwInternal } from \"./DiagnosticLogger\";\r\nimport { getExceptionName } from \"./HelperFuncs\";\r\nimport { STR_PROCESS_TELEMETRY } from \"./InternalConstants\";\r\nfunction _addInitializer(_initializers, id, telemetryInitializer) {\r\n var theInitializer = {\r\n id: id,\r\n fn: telemetryInitializer\r\n };\r\n arrAppend(_initializers, theInitializer);\r\n var handler = {\r\n remove: function () {\r\n arrForEach(_initializers, function (initializer, idx) {\r\n if (initializer.id === theInitializer.id) {\r\n _initializers[_DYN_SPLICE /* @min:%2esplice */](idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n return handler;\r\n}\r\nfunction _runInitializers(_initializers, item, logger) {\r\n var doNotSendItem = false;\r\n var telemetryInitializersCount = _initializers[_DYN_LENGTH /* @min:%2elength */];\r\n for (var i = 0; i < telemetryInitializersCount; ++i) {\r\n var telemetryInitializer = _initializers[i];\r\n if (telemetryInitializer) {\r\n try {\r\n if (telemetryInitializer.fn[_DYN_APPLY /* @min:%2eapply */](null, [item]) === false) {\r\n doNotSendItem = true;\r\n break;\r\n }\r\n }\r\n catch (e) {\r\n // log error but dont stop executing rest of the telemetry initializers\r\n // doNotSendItem = true;\r\n _throwInternal(logger, 2 /* eLoggingSeverity.WARNING */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Telemetry initializer failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n }\r\n }\r\n return !doNotSendItem;\r\n}\r\nvar TelemetryInitializerPlugin = /** @class */ (function (_super) {\r\n __extends(TelemetryInitializerPlugin, _super);\r\n function TelemetryInitializerPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"TelemetryInitializerPlugin\";\r\n _this.priority = 199;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var _id;\r\n var _initializers;\r\n _initDefaults();\r\n dynamicProto(TelemetryInitializerPlugin, _this, function (_self, _base) {\r\n _self.addTelemetryInitializer = function (telemetryInitializer) {\r\n return _addInitializer(_initializers, _id++, telemetryInitializer);\r\n };\r\n _self[STR_PROCESS_TELEMETRY /* @min:%2eprocessTelemetry */] = function (item, itemCtx) {\r\n if (_runInitializers(_initializers, item, itemCtx ? itemCtx[_DYN_DIAG_LOG /* @min:%2ediagLog */]() : _self[_DYN_DIAG_LOG /* @min:%2ediagLog */]())) {\r\n _self[_DYN_PROCESS_NEXT /* @min:%2eprocessNext */](item, itemCtx);\r\n }\r\n };\r\n _self[_DYN__DO_TEARDOWN /* @min:%2e_doTeardown */] = function () {\r\n _initDefaults();\r\n };\r\n });\r\n function _initDefaults() {\r\n _id = 0;\r\n _initializers = [];\r\n }\r\n return _this;\r\n }\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.addTelemetryInitializer.\r\n// Removed Stub for TelemetryInitializerPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryInitializerPlugin.__ieDyn=1;\n\n return TelemetryInitializerPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { TelemetryInitializerPlugin };\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DURATION = \"duration\";\r\nexport var STR_PROPERTIES = \"properties\";\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_REQUEST_URL = \"requestUrl\"; // Count: 11\r\nexport var _DYN_INST = \"inst\"; // Count: 5\r\nexport var _DYN_LENGTH = \"length\"; // Count: 8\r\nexport var _DYN_TRACE_ID = \"traceID\"; // Count: 9\r\nexport var _DYN_SPAN_ID = \"spanID\"; // Count: 8\r\nexport var _DYN_TRACE_FLAGS = \"traceFlags\"; // Count: 13\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 7\r\nexport var _DYN_ABORTED = \"aborted\"; // Count: 7\r\nexport var _DYN_TRACE_ID0 = \"traceId\"; // Count: 5\r\nexport var _DYN_SPAN_ID1 = \"spanId\"; // Count: 5\r\nexport var _DYN__ADD_HOOK = \"_addHook\"; // Count: 4\r\nexport var _DYN_CORE = \"core\"; // Count: 8\r\nexport var _DYN_INCLUDE_CORRELATION_2 = \"includeCorrelationHeaders\"; // Count: 4\r\nexport var _DYN_GET_ABSOLUTE_URL = \"getAbsoluteUrl\"; // Count: 3\r\nexport var _DYN_HEADERS = \"headers\"; // Count: 6\r\nexport var _DYN_REQUEST_HEADERS = \"requestHeaders\"; // Count: 13\r\nexport var _DYN_SET_REQUEST_HEADER = \"setRequestHeader\"; // Count: 3\r\nexport var _DYN_TRACK_DEPENDENCY_DAT3 = \"trackDependencyDataInternal\"; // Count: 2\r\nexport var _DYN_START_TIME = \"startTime\"; // Count: 6\r\nexport var _DYN_TO_LOWER_CASE = \"toLowerCase\"; // Count: 6\r\nexport var _DYN_ENABLE_REQUEST_HEADE4 = \"enableRequestHeaderTracking\"; // Count: 3\r\nexport var _DYN_ENABLE_AJAX_ERROR_ST5 = \"enableAjaxErrorStatusText\"; // Count: 2\r\nexport var _DYN_ENABLE_AJAX_PERF_TRA6 = \"enableAjaxPerfTracking\"; // Count: 2\r\nexport var _DYN_MAX_AJAX_CALLS_PER_V7 = \"maxAjaxCallsPerView\"; // Count: 2\r\nexport var _DYN_EXCLUDE_REQUEST_FROM8 = \"excludeRequestFromAutoTrackingPatterns\"; // Count: 2\r\nexport var _DYN_ADD_REQUEST_CONTEXT = \"addRequestContext\"; // Count: 2\r\nexport var _DYN_DISABLE_AJAX_TRACKIN9 = \"disableAjaxTracking\"; // Count: 3\r\nexport var _DYN_AJAX_PERF_LOOKUP_DEL10 = \"ajaxPerfLookupDelay\"; // Count: 2\r\nexport var _DYN_DISABLE_FETCH_TRACKI11 = \"disableFetchTracking\"; // Count: 2\r\nexport var _DYN_ENABLE_RESPONSE_HEAD12 = \"enableResponseHeaderTracking\"; // Count: 2\r\nexport var _DYN_STATUS = \"status\"; // Count: 11\r\nexport var _DYN_STATUS_TEXT = \"statusText\"; // Count: 9\r\nexport var _DYN_HEADER_MAP = \"headerMap\"; // Count: 8\r\nexport var _DYN_OPEN_DONE = \"openDone\"; // Count: 3\r\nexport var _DYN_SEND_DONE = \"sendDone\"; // Count: 3\r\nexport var _DYN_REQUEST_SENT_TIME = \"requestSentTime\"; // Count: 9\r\nexport var _DYN_ABORT_DONE = \"abortDone\"; // Count: 3\r\nexport var _DYN_GET_TRACE_ID = \"getTraceId\"; // Count: 3\r\nexport var _DYN_GET_TRACE_FLAGS = \"getTraceFlags\"; // Count: 3\r\nexport var _DYN_METHOD = \"method\"; // Count: 8\r\nexport var _DYN_ERROR_STATUS_TEXT = \"errorStatusText\"; // Count: 3\r\nexport var _DYN_STATE_CHANGE_ATTACHE13 = \"stateChangeAttached\"; // Count: 2\r\nexport var _DYN_RESPONSE_TEXT = \"responseText\"; // Count: 6\r\nexport var _DYN_RESPONSE_FINISHED_TI14 = \"responseFinishedTime\"; // Count: 7\r\nexport var _DYN__CREATE_TRACK_ITEM = \"CreateTrackItem\"; // Count: 3\r\nexport var _DYN_RESPONSE = \"response\"; // Count: 4\r\nexport var _DYN_GET_ALL_RESPONSE_HEA15 = \"getAllResponseHeaders\"; // Count: 2\r\nexport var _DYN_GET_PART_APROPS = \"getPartAProps\"; // Count: 3\r\nexport var _DYN_PERF_MARK = \"perfMark\"; // Count: 4\r\nexport var _DYN_NAME = \"name\"; // Count: 6\r\nexport var _DYN_PERF_TIMING = \"perfTiming\"; // Count: 3\r\nexport var _DYN_EXCEPTION = \"exception\"; // Count: 5\r\nexport var _DYN_AJAX_DIAGNOSTICS_MES16 = \"ajaxDiagnosticsMessage\"; // Count: 3\r\nexport var _DYN_CORRELATION_CONTEXT = \"correlationContext\"; // Count: 3\r\nexport var _DYN_AJAX_TOTAL_DURATION = \"ajaxTotalDuration\"; // Count: 3\r\nexport var _DYN_EVENT_TRACE_CTX = \"eventTraceCtx\"; // Count: 3\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { Extensions, dataSanitizeUrl, dateTimeUtilsDuration, msToTimeSpan, urlGetAbsoluteUrl, urlGetCompleteUrl } from \"@microsoft/applicationinsights-common\";\r\nimport { arrForEach, isNullOrUndefined, isNumber, isString, normalizeJsName, objForEachKey, objKeys } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_DURATION, STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_AJAX_TOTAL_DURATION, _DYN_CORRELATION_CONTEXT, _DYN_ERROR_STATUS_TEXT, _DYN_EVENT_TRACE_CTX, _DYN_GET_ABSOLUTE_URL, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADER_MAP, _DYN_LENGTH, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_SEND_DONE, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\n/** @ignore */\r\nfunction _calcPerfDuration(resourceEntry, start, end) {\r\n var result = 0;\r\n var from = resourceEntry[start];\r\n var to = resourceEntry[end];\r\n if (from && to) {\r\n result = dateTimeUtilsDuration(from, to);\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfDuration(props, name, resourceEntry, start, end) {\r\n var result = 0;\r\n var value = _calcPerfDuration(resourceEntry, start, end);\r\n if (value) {\r\n result = _setPerfValue(props, name, msToTimeSpan(value));\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _setPerfValue(props, name, value) {\r\n var strPerf = \"ajaxPerf\";\r\n var result = 0;\r\n if (props && name && value) {\r\n var perfData = props[strPerf] = (props[strPerf] || {});\r\n perfData[name] = value;\r\n result = 1;\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _populatePerfData(ajaxData, dependency) {\r\n /*\r\n * https://developer.mozilla.org/en-US/docs/Web/API/Resource_Timing_API/Using_the_Resource_Timing_API\r\n * | -startTime\r\n * | -redirectStart\r\n * | | -redirectEnd\r\n * | | | -fetchStart\r\n * | | | | -domainLookupStart\r\n * | | | | |- domainLookupEnd\r\n * | | | | | | -connectStart\r\n * | | | | | | | -secureConnectionStart\r\n * | | | | | | | | -connectEnd\r\n * | | | | | | | | | -requestStart\r\n * | | | | | | | | | | | -responseStart\r\n * | | | | | | | | | | | | | -responseEnd\r\n * +------------+-+---+----------------+-+--+--------+-+-----------+-+------------+-+\r\n * |--redirect--| |---|--domainLookup--| |--connect--| |--request--| |--response--| |\r\n * |-------------------networkConnect----------------|\r\n * | |---------sentRequest--------|\r\n * |------------------------------------perfTotal-----------------------------------|\r\n */\r\n var resourceEntry = ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */];\r\n var props = dependency[STR_PROPERTIES /* @min:%2eproperties */] || {};\r\n var propsSet = 0;\r\n var strName = \"name\";\r\n var strStart = \"Start\";\r\n var strEnd = \"End\";\r\n var strDomainLookup = \"domainLookup\";\r\n var strConnect = \"connect\";\r\n var strRedirect = \"redirect\";\r\n var strRequest = \"request\";\r\n var strResponse = \"response\";\r\n var strStartTime = \"startTime\";\r\n var strDomainLookupStart = strDomainLookup + strStart;\r\n var strDomainLookupEnd = strDomainLookup + strEnd;\r\n var strConnectStart = strConnect + strStart;\r\n var strConnectEnd = strConnect + strEnd;\r\n var strRequestStart = strRequest + strStart;\r\n var strRequestEnd = strRequest + strEnd;\r\n var strResponseStart = strResponse + strStart;\r\n var strResponseEnd = strResponse + strEnd;\r\n var strRedirectStart = strRedirect + strStart;\r\n var strRedirectEnd = strRedirect = strEnd;\r\n var strTransferSize = \"transferSize\";\r\n var strEncodedBodySize = \"encodedBodySize\";\r\n var strDecodedBodySize = \"decodedBodySize\";\r\n var strServerTiming = \"serverTiming\";\r\n if (resourceEntry) {\r\n // redirect\r\n propsSet |= _setPerfDuration(props, strRedirect, resourceEntry, strRedirectStart, strRedirectEnd);\r\n // domainLookup\r\n propsSet |= _setPerfDuration(props, strDomainLookup, resourceEntry, strDomainLookupStart, strDomainLookupEnd);\r\n // connect\r\n propsSet |= _setPerfDuration(props, strConnect, resourceEntry, strConnectStart, strConnectEnd);\r\n // request\r\n propsSet |= _setPerfDuration(props, strRequest, resourceEntry, strRequestStart, strRequestEnd);\r\n // response\r\n propsSet |= _setPerfDuration(props, strResponse, resourceEntry, strResponseStart, strResponseEnd);\r\n // Network connection time\r\n propsSet |= _setPerfDuration(props, \"networkConnect\", resourceEntry, strStartTime, strConnectEnd);\r\n // Sent Request\r\n propsSet |= _setPerfDuration(props, \"sentRequest\", resourceEntry, strRequestStart, strResponseEnd);\r\n // PerfTotal / Duration\r\n var duration = resourceEntry[STR_DURATION /* @min:%2eduration */];\r\n if (!duration) {\r\n duration = _calcPerfDuration(resourceEntry, strStartTime, strResponseEnd) || 0;\r\n }\r\n propsSet |= _setPerfValue(props, STR_DURATION, duration);\r\n propsSet |= _setPerfValue(props, \"perfTotal\", duration);\r\n var serverTiming = resourceEntry[strServerTiming];\r\n if (serverTiming) {\r\n var server_1 = {};\r\n arrForEach(serverTiming, function (value, idx) {\r\n var name = normalizeJsName(value[strName] || \"\" + idx);\r\n var newValue = server_1[name] || {};\r\n objForEachKey(value, function (key, val) {\r\n if (key !== strName && isString(val) || isNumber(val)) {\r\n if (newValue[key]) {\r\n val = newValue[key] + \";\" + val;\r\n }\r\n if (val || !isString(val)) {\r\n // Only set the value if it has a value and it's not an empty string\r\n newValue[key] = val;\r\n }\r\n }\r\n });\r\n server_1[name] = newValue;\r\n });\r\n propsSet |= _setPerfValue(props, strServerTiming, server_1);\r\n }\r\n propsSet |= _setPerfValue(props, strTransferSize, resourceEntry[strTransferSize]);\r\n propsSet |= _setPerfValue(props, strEncodedBodySize, resourceEntry[strEncodedBodySize]);\r\n propsSet |= _setPerfValue(props, strDecodedBodySize, resourceEntry[strDecodedBodySize]);\r\n }\r\n else {\r\n if (ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */]) {\r\n propsSet |= _setPerfValue(props, \"missing\", ajaxData.perfAttempts);\r\n }\r\n }\r\n if (propsSet) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = props;\r\n }\r\n}\r\nvar XHRMonitoringState = /** @class */ (function () {\r\n function XHRMonitoringState() {\r\n var self = this;\r\n self[_DYN_OPEN_DONE /* @min:%2eopenDone */] = false;\r\n self.setRequestHeaderDone = false;\r\n self[_DYN_SEND_DONE /* @min:%2esendDone */] = false;\r\n self[_DYN_ABORT_DONE /* @min:%2eabortDone */] = false;\r\n // True, if onreadyStateChangeCallback function attached to xhr, otherwise false\r\n self[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = false;\r\n }\r\n return XHRMonitoringState;\r\n}());\r\nexport { XHRMonitoringState };\r\nvar ajaxRecord = /** @class */ (function () {\r\n function ajaxRecord(traceId, spanId, logger, traceCtx) {\r\n var _a;\r\n var self = this;\r\n var _logger = logger;\r\n var strResponseText = \"responseText\";\r\n // Assigning the initial/default values within the constructor to avoid typescript from creating a bunch of\r\n // this.XXXX = null\r\n self[_DYN_PERF_MARK /* @min:%2eperfMark */] = null;\r\n self.completed = false;\r\n self.requestHeadersSize = null;\r\n self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = null;\r\n self.responseReceivingDuration = null;\r\n self.callbackDuration = null;\r\n self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] = null;\r\n self[_DYN_ABORTED /* @min:%2eaborted */] = 0;\r\n self.pageUrl = null;\r\n self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = null;\r\n self.requestSize = 0;\r\n self[_DYN_METHOD /* @min:%2emethod */] = null;\r\n self[_DYN_STATUS /* @min:%2estatus */] = null;\r\n self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = null;\r\n self.responseStartedTime = null;\r\n self[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = null;\r\n self.callbackFinishedTime = null;\r\n self.endTime = null;\r\n self.xhrMonitoringState = new XHRMonitoringState();\r\n self.clientFailure = 0;\r\n self[_DYN_TRACE_ID /* @min:%2etraceID */] = traceId;\r\n self[_DYN_SPAN_ID /* @min:%2espanID */] = spanId;\r\n self[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx === null || traceCtx === void 0 ? void 0 : traceCtx.getTraceFlags();\r\n if (traceCtx) {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = (_a = {},\r\n _a[_DYN_TRACE_ID0 /* @min:traceId */] = traceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */](),\r\n _a[_DYN_SPAN_ID1 /* @min:spanId */] = traceCtx.getSpanId(),\r\n _a[_DYN_TRACE_FLAGS /* @min:traceFlags */] = traceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */](),\r\n _a);\r\n }\r\n else {\r\n self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */] = null;\r\n }\r\n dynamicProto(ajaxRecord, self, function (self) {\r\n self.getAbsoluteUrl = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? urlGetAbsoluteUrl(self[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) : null;\r\n };\r\n self.getPathName = function () {\r\n return self[_DYN_REQUEST_URL /* @min:%2erequestUrl */] ? dataSanitizeUrl(_logger, urlGetCompleteUrl(self[_DYN_METHOD /* @min:%2emethod */], self[_DYN_REQUEST_URL /* @min:%2erequestUrl */])) : null;\r\n };\r\n self[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */] = function (ajaxType, enableRequestHeaderTracking, getResponse) {\r\n var _a;\r\n // round to 3 decimal points\r\n self.ajaxTotalDuration = Math.round(dateTimeUtilsDuration(self.requestSentTime, self.responseFinishedTime) * 1000) / 1000;\r\n if (self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */] < 0) {\r\n return null;\r\n }\r\n var dependency = (_a = {\r\n id: \"|\" + self[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + self[_DYN_SPAN_ID /* @min:%2espanID */],\r\n target: self[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */]()\r\n },\r\n _a[_DYN_NAME /* @min:name */] = self.getPathName(),\r\n _a.type = ajaxType,\r\n _a[_DYN_START_TIME /* @min:startTime */] = null,\r\n _a.duration = self[_DYN_AJAX_TOTAL_DURATION /* @min:%2eajaxTotalDuration */],\r\n _a.success = (+(self[_DYN_STATUS /* @min:%2estatus */])) >= 200 && (+(self[_DYN_STATUS /* @min:%2estatus */])) < 400,\r\n _a.responseCode = (+(self[_DYN_STATUS /* @min:%2estatus */])),\r\n _a[STR_PROPERTIES] = { HttpMethod: self[_DYN_METHOD /* @min:%2emethod */] },\r\n _a);\r\n var props = dependency[STR_PROPERTIES];\r\n if (self[_DYN_ABORTED /* @min:%2eaborted */]) {\r\n props[_DYN_ABORTED /* @min:%2eaborted */] = true;\r\n }\r\n if (self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]) {\r\n // Set the correct dependency start time\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */].setTime(self[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */]);\r\n }\r\n // Add Ajax perf details if available\r\n _populatePerfData(self, dependency);\r\n if (enableRequestHeaderTracking) {\r\n if (objKeys(self.requestHeaders)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = self[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */];\r\n }\r\n }\r\n if (getResponse) {\r\n var response = getResponse();\r\n if (response) {\r\n // enrich dependency target with correlation context from the server\r\n var correlationContext = response[_DYN_CORRELATION_CONTEXT /* @min:%2ecorrelationContext */];\r\n if (correlationContext) {\r\n dependency.correlationContext = /* dependency.target + \" | \" + */ correlationContext;\r\n }\r\n if (response[_DYN_HEADER_MAP /* @min:%2eheaderMap */]) {\r\n if (objKeys(response.headerMap)[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n props.responseHeaders = response[_DYN_HEADER_MAP /* @min:%2eheaderMap */];\r\n }\r\n }\r\n if (self[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */]) {\r\n if (self[_DYN_STATUS /* @min:%2estatus */] >= 400) {\r\n var responseType = response.type;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n props.responseText = response.responseText ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + response[strResponseText] : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n if (responseType === \"json\") {\r\n props.responseText = response.response ? response[_DYN_STATUS_TEXT /* @min:%2estatusText */] + \" - \" + JSON.stringify(response[_DYN_RESPONSE /* @min:%2eresponse */]) : response[_DYN_STATUS_TEXT /* @min:%2estatusText */];\r\n }\r\n }\r\n else if (self[_DYN_STATUS /* @min:%2estatus */] === 0) {\r\n props.responseText = response[_DYN_STATUS_TEXT /* @min:%2estatusText */] || \"\";\r\n }\r\n }\r\n }\r\n }\r\n return dependency;\r\n };\r\n self[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */] = function () {\r\n var _a;\r\n var partA = null;\r\n var traceCtx = self[_DYN_EVENT_TRACE_CTX /* @min:%2eeventTraceCtx */];\r\n if (traceCtx && (traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */] || traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */])) {\r\n partA = {};\r\n var traceExt = partA[Extensions.TraceExt] = (_a = {},\r\n _a[_DYN_TRACE_ID /* @min:traceID */] = traceCtx[_DYN_TRACE_ID0 /* @min:%2etraceId */],\r\n _a.parentID = traceCtx[_DYN_SPAN_ID1 /* @min:%2espanId */],\r\n _a);\r\n if (!isNullOrUndefined(traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */])) {\r\n traceExt[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = traceCtx[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n }\r\n }\r\n return partA;\r\n };\r\n });\r\n }\r\n// Removed Stub for ajaxRecord.prototype.getAbsoluteUrl.\r\n// Removed Stub for ajaxRecord.prototype.getPathName.\r\n// Removed Stub for ajaxRecord.prototype.CreateTrackItem.\r\n// Removed Stub for ajaxRecord.prototype.getPartAProps.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n ajaxRecord.__ieDyn=1;\n\n return ajaxRecord;\r\n}());\r\nexport { ajaxRecord };\r\n","/*\n * Application Insights JavaScript SDK - Dependencies Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar _a;\r\nimport { __assignFn as __assign, __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { DisabledPropertyName, PropertiesPluginIdentifier, RemoteDependencyData, RequestHeaders, correlationIdCanIncludeCorrelationHeader, correlationIdGetCorrelationContext, createDistributedTraceContextFromTrace, createTelemetryItem, createTraceParent, dateTimeUtilsNow, formatTraceParent, isInternalApplicationInsightsEndpoint } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, InstrumentFunc, InstrumentProto, _throwInternal, arrForEach, createProcessTelemetryContext, createUniqueNamespace, dumpObj, eventOn, generateW3CId, getExceptionName, getGlobal, getIEVersion, getLocation, getPerformance, isFunction, isNullOrUndefined, isString, isXhrSupported, mergeEvtNamespace, onConfigChange, strPrototype, strTrim } from \"@microsoft/applicationinsights-core-js\";\r\nimport { isWebWorker, objFreeze, scheduleTimeout, strIndexOf, strSplit, strSubstr } from \"@nevware21/ts-utils\";\r\nimport { STR_PROPERTIES } from \"./InternalConstants\";\r\nimport { _DYN_ABORTED, _DYN_ABORT_DONE, _DYN_ADD_REQUEST_CONTEXT, _DYN_AJAX_DIAGNOSTICS_MES16, _DYN_AJAX_PERF_LOOKUP_DEL10, _DYN_CONTEXT, _DYN_CORE, _DYN_CORRELATION_CONTEXT, _DYN_DISABLE_AJAX_TRACKIN9, _DYN_DISABLE_FETCH_TRACKI11, _DYN_ENABLE_AJAX_ERROR_ST5, _DYN_ENABLE_AJAX_PERF_TRA6, _DYN_ENABLE_REQUEST_HEADE4, _DYN_ENABLE_RESPONSE_HEAD12, _DYN_ERROR_STATUS_TEXT, _DYN_EXCEPTION, _DYN_EXCLUDE_REQUEST_FROM8, _DYN_GET_ABSOLUTE_URL, _DYN_GET_ALL_RESPONSE_HEA15, _DYN_GET_PART_APROPS, _DYN_GET_TRACE_FLAGS, _DYN_GET_TRACE_ID, _DYN_HEADERS, _DYN_HEADER_MAP, _DYN_INCLUDE_CORRELATION_2, _DYN_INST, _DYN_LENGTH, _DYN_MAX_AJAX_CALLS_PER_V7, _DYN_METHOD, _DYN_NAME, _DYN_OPEN_DONE, _DYN_PERF_MARK, _DYN_PERF_TIMING, _DYN_REQUEST_HEADERS, _DYN_REQUEST_SENT_TIME, _DYN_REQUEST_URL, _DYN_RESPONSE, _DYN_RESPONSE_FINISHED_TI14, _DYN_RESPONSE_TEXT, _DYN_SEND_DONE, _DYN_SET_REQUEST_HEADER, _DYN_SPAN_ID, _DYN_SPAN_ID1, _DYN_START_TIME, _DYN_STATE_CHANGE_ATTACHE13, _DYN_STATUS, _DYN_STATUS_TEXT, _DYN_TO_LOWER_CASE, _DYN_TRACE_FLAGS, _DYN_TRACE_ID, _DYN_TRACE_ID0, _DYN_TRACK_DEPENDENCY_DAT3, _DYN__ADD_HOOK, _DYN__CREATE_TRACK_ITEM } from \"./__DynamicConstants\";\r\nimport { ajaxRecord } from \"./ajaxRecord\";\r\nvar AJAX_MONITOR_PREFIX = \"ai.ajxmn.\";\r\nvar strDiagLog = \"diagLog\";\r\nvar AJAX_DATA_CONTAINER = \"_ajaxData\";\r\nvar STR_FETCH = \"fetch\";\r\nvar ERROR_HEADER = \"Failed to monitor XMLHttpRequest\";\r\nvar ERROR_PREFIX = \", monitoring data for this ajax call \";\r\nvar ERROR_POSTFIX = ERROR_PREFIX + \"may be incorrect.\";\r\nvar ERROR_NOT_SENT = ERROR_PREFIX + \"won't be sent.\";\r\nvar CORRELATION_HEADER_ERROR = \"Failed to get Request-Context correlation header as it may be not included in the response or not accessible.\";\r\nvar CUSTOM_REQUEST_CONTEXT_ERROR = \"Failed to add custom defined request context as configured call back may missing a null check.\";\r\nvar FAILED_TO_CALCULATE_DURATION_ERROR = \"Failed to calculate the duration of the \";\r\n// Using a global value so that to handle same iKey with multiple app insights instances (mostly for testing)\r\nvar _markCount = 0;\r\n/** @Ignore */\r\nfunction _supportsFetch() {\r\n var _global = getGlobal();\r\n if (!_global ||\r\n isNullOrUndefined(_global.Request) ||\r\n isNullOrUndefined(_global.Request[strPrototype]) ||\r\n isNullOrUndefined(_global[STR_FETCH])) {\r\n return null;\r\n }\r\n return _global[STR_FETCH];\r\n}\r\n/**\r\n * Determines whether ajax monitoring can be enabled on this document\r\n * @returns True if Ajax monitoring is supported on this page, otherwise false\r\n * @ignore\r\n */\r\nfunction _supportsAjaxMonitoring(ajaxMonitorInstance, ajaxDataId) {\r\n var _a, _b;\r\n var result = false;\r\n if (isXhrSupported()) {\r\n var proto = XMLHttpRequest[strPrototype];\r\n result = !isNullOrUndefined(proto) &&\r\n !isNullOrUndefined(proto.open) && // eslint-disable-line security/detect-non-literal-fs-filename -- false positive\r\n !isNullOrUndefined(proto.send) &&\r\n !isNullOrUndefined(proto.abort);\r\n }\r\n var ieVer = getIEVersion();\r\n if (ieVer && ieVer < 9) {\r\n result = false;\r\n }\r\n if (result) {\r\n // Disable if the XmlHttpRequest can't be extended or hooked\r\n try {\r\n var xhr = new XMLHttpRequest();\r\n var xhrData = {\r\n xh: [],\r\n i: (_a = {},\r\n _a[ajaxDataId] = {},\r\n _a)\r\n };\r\n xhr[AJAX_DATA_CONTAINER] = xhrData;\r\n // Check that we can update the prototype\r\n var theOpen = XMLHttpRequest[strPrototype].open;\r\n XMLHttpRequest[strPrototype].open = theOpen;\r\n }\r\n catch (e) {\r\n // We can't decorate the xhr object so disable monitoring\r\n result = false;\r\n _throwInternalCritical(ajaxMonitorInstance, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to enable XMLHttpRequest monitoring, extension is not supported\", (_b = {},\r\n _b[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _b));\r\n }\r\n }\r\n return result;\r\n}\r\n/**\r\n * Internal helper to fetch the SDK instance tracking data for this XHR request\r\n * @param xhr\r\n * @param ajaxDataId\r\n * @returns\r\n */\r\nvar _getAjaxData = function (xhr, ajaxDataId) {\r\n if (xhr && ajaxDataId && xhr[AJAX_DATA_CONTAINER]) {\r\n return (xhr[AJAX_DATA_CONTAINER].i || {})[ajaxDataId];\r\n }\r\n return null;\r\n};\r\n/**\r\n * @ignore\r\n * Internal helper to track the singleton shared tracking headers, so we can attempt to not create headers\r\n * that might cause an issue if multiple values are populated.\r\n * @param xhr - The instrumented XHR instance\r\n */\r\nvar _addSharedXhrHeaders = function (xhr, name, value) {\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n headers.push({\r\n n: name,\r\n v: value\r\n });\r\n }\r\n }\r\n};\r\nvar _isHeaderSet = function (xhr, name) {\r\n var isPresent = false;\r\n if (xhr) {\r\n var headers = (xhr[AJAX_DATA_CONTAINER] || {}).xh;\r\n if (headers) {\r\n arrForEach(headers, function (header) {\r\n if (header.n === name) {\r\n isPresent = true;\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n return isPresent;\r\n};\r\n/** @Ignore */\r\nfunction _getFailedAjaxDiagnosticsMessage(xhr, ajaxDataId) {\r\n var result = \"\";\r\n try {\r\n var ajaxData = _getAjaxData(xhr, ajaxDataId);\r\n if (ajaxData && ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */]) {\r\n result += \"(url: '\" + ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] + \"')\";\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n return result;\r\n}\r\n/** @ignore */\r\nfunction _throwInternalCritical(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 1 /* eLoggingSeverity.CRITICAL */, msgId, message, properties, isUserAct);\r\n}\r\n/** @ignore */\r\nfunction _throwInternalWarning(ajaxMonitorInstance, msgId, message, properties, isUserAct) {\r\n _throwInternal(ajaxMonitorInstance[strDiagLog](), 2 /* eLoggingSeverity.WARNING */, msgId, message, properties, isUserAct);\r\n}\r\n/** @Ignore */\r\nfunction _createErrorCallbackFunc(ajaxMonitorInstance, internalMessage, message) {\r\n // tslint:disable-next-line\r\n return function (callDetails) {\r\n var _a;\r\n _throwInternalCritical(ajaxMonitorInstance, internalMessage, message, (_a = {\r\n ajaxDiagnosticsMessage: _getFailedAjaxDiagnosticsMessage(callDetails[_DYN_INST /* @min:%2einst */], ajaxMonitorInstance._ajaxDataId)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(callDetails.err),\r\n _a));\r\n };\r\n}\r\nfunction _indexOf(value, match) {\r\n if (value && match) {\r\n return strIndexOf(value, match);\r\n }\r\n return -1;\r\n}\r\nfunction _addHandler(container, id, theFunc) {\r\n var theHandler = {\r\n id: id,\r\n fn: theFunc\r\n };\r\n container.push(theHandler);\r\n return {\r\n remove: function () {\r\n arrForEach(container, function (initializer, idx) {\r\n if (initializer.id === theHandler.id) {\r\n container.splice(idx, 1);\r\n return -1;\r\n }\r\n });\r\n }\r\n };\r\n}\r\nfunction _processDependencyContainer(core, container, details, message) {\r\n var result = true;\r\n arrForEach(container, function (theFunc, idx) {\r\n try {\r\n if (theFunc.fn.call(null, details) === false) {\r\n result = false;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(core && core.logger, 1 /* eLoggingSeverity.CRITICAL */, 64 /* _eInternalMessageId.TelemetryInitializerFailed */, \"Dependency \" + message + \" [#\" + idx + \"] failed: \" + getExceptionName(e), { exception: dumpObj(e) }, true);\r\n }\r\n });\r\n return result;\r\n}\r\nfunction _processDependencyListeners(listeners, core, ajaxData, xhr, input, init) {\r\n var _a;\r\n var initializersCount = listeners[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {},\r\n _a[_DYN_CORE /* @min:core */] = core,\r\n _a.xhr = xhr,\r\n _a.input = input,\r\n _a.init = init,\r\n _a.traceId = ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */],\r\n _a.spanId = ajaxData[_DYN_SPAN_ID /* @min:%2espanID */],\r\n _a.traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */],\r\n _a.context = ajaxData[_DYN_CONTEXT /* @min:%2econtext */] || {},\r\n _a.aborted = !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */],\r\n _a);\r\n _processDependencyContainer(core, listeners, details, \"listener\");\r\n ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] = details[_DYN_TRACE_ID0 /* @min:%2etraceId */];\r\n ajaxData[_DYN_SPAN_ID /* @min:%2espanID */] = details[_DYN_SPAN_ID1 /* @min:%2espanId */];\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = details[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n ajaxData[_DYN_CONTEXT /* @min:%2econtext */] = details[_DYN_CONTEXT /* @min:%2econtext */];\r\n }\r\n}\r\nvar BLOB_CORE = \"*.blob.core.\";\r\nexport var DfltAjaxCorrelationHeaderExDomains = objFreeze([\r\n BLOB_CORE + \"windows.net\",\r\n BLOB_CORE + \"chinacloudapi.cn\",\r\n BLOB_CORE + \"cloudapi.de\",\r\n BLOB_CORE + \"usgovcloudapi.net\"\r\n]);\r\nvar _internalExcludeEndpoints = [\r\n /https:\\/\\/[^\\/]*(\\.pipe\\.aria|aria\\.pipe|events\\.data|collector\\.azure)\\.[^\\/]+\\/(OneCollector\\/1|Collector\\/3)\\.0/i\r\n];\r\nvar _defaultConfig = objFreeze((_a = {},\r\n _a[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:maxAjaxCallsPerView */] = 500,\r\n _a[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:disableAjaxTracking */] = false,\r\n _a[_DYN_DISABLE_FETCH_TRACKI11 /* @min:disableFetchTracking */] = false,\r\n _a[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:excludeRequestFromAutoTrackingPatterns */] = undefined,\r\n _a.disableCorrelationHeaders = false,\r\n _a.distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */,\r\n _a.correlationHeaderExcludedDomains = DfltAjaxCorrelationHeaderExDomains,\r\n _a.correlationHeaderDomains = undefined,\r\n _a.correlationHeaderExcludePatterns = undefined,\r\n _a.appId = undefined,\r\n _a.enableCorsCorrelation = false,\r\n _a[_DYN_ENABLE_REQUEST_HEADE4 /* @min:enableRequestHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:enableResponseHeaderTracking */] = false,\r\n _a[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:enableAjaxErrorStatusText */] = false,\r\n _a[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:enableAjaxPerfTracking */] = false,\r\n _a.maxAjaxPerfLookupAttempts = 3,\r\n _a[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:ajaxPerfLookupDelay */] = 25,\r\n _a.ignoreHeaders = [\r\n \"Authorization\",\r\n \"X-API-Key\",\r\n \"WWW-Authenticate\"\r\n ],\r\n _a[_DYN_ADD_REQUEST_CONTEXT /* @min:addRequestContext */] = undefined,\r\n _a.addIntEndpoints = true,\r\n _a));\r\nvar AjaxMonitor = /** @class */ (function (_super) {\r\n __extends(AjaxMonitor, _super);\r\n function AjaxMonitor() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = AjaxMonitor.identifier;\r\n _this.priority = 120;\r\n var _fetchInitialized; // fetch monitoring initialized\r\n var _xhrInitialized; // XHR monitoring initialized\r\n var _currentWindowHost;\r\n var _extensionConfig;\r\n var _enableRequestHeaderTracking;\r\n var _enableAjaxErrorStatusText;\r\n var _trackAjaxAttempts;\r\n var _context;\r\n var _isUsingW3CHeaders;\r\n var _isUsingAIHeaders;\r\n var _markPrefix;\r\n var _enableAjaxPerfTracking;\r\n var _maxAjaxCallsPerView;\r\n var _enableResponseHeaderTracking;\r\n var _disabledUrls;\r\n var _disableAjaxTracking;\r\n var _disableFetchTracking;\r\n var _excludeRequestFromAutoTrackingPatterns;\r\n var _addRequestContext;\r\n var _evtNamespace;\r\n var _ajaxDataId;\r\n var _dependencyHandlerId;\r\n var _dependencyListeners;\r\n var _dependencyInitializers;\r\n var _ignoreHeaders;\r\n var _maxAjaxPerfLookupAttempts;\r\n var _ajaxPerfLookupDelay;\r\n var _distributedTracingMode;\r\n var _appId;\r\n var _polyfillInitialized;\r\n dynamicProto(AjaxMonitor, _this, function (_self, _base) {\r\n var _addHook = _base[_DYN__ADD_HOOK /* @min:%2e_addHook */];\r\n _initDefaults();\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n if (!_self.isInitialized()) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _evtNamespace = mergeEvtNamespace(createUniqueNamespace(\"ajax\"), core && core.evtNamespace && core.evtNamespace());\r\n _populateDefaults(config);\r\n _instrumentXhr();\r\n _instrumentFetch();\r\n _populateContext();\r\n }\r\n };\r\n _self._doTeardown = function () {\r\n _initDefaults();\r\n };\r\n _self.trackDependencyData = function (dependency, properties) {\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], null, dependency, properties);\r\n };\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */] = function (ajaxData, input, init, xhr) {\r\n // Test Hook to allow the overriding of the location host\r\n var currentWindowHost = _self[\"_currentWindowHost\"] || _currentWindowHost;\r\n _processDependencyListeners(_dependencyListeners, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, xhr, input, init);\r\n if (input || input === \"\") { // Fetch\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (!init) {\r\n init = {};\r\n }\r\n // init headers override original request headers\r\n // so, if they exist use only them, otherwise use request's because they should have been applied in the first place\r\n // not using original request headers will result in them being lost\r\n var headers = new Headers(init[_DYN_HEADERS /* @min:%2eheaders */] || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n if (_isUsingAIHeaders) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n headers.set(RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n headers.set(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n headers.set(RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n init[_DYN_HEADERS /* @min:%2eheaders */] = headers;\r\n }\r\n return init;\r\n }\r\n else if (xhr) { // XHR\r\n if (correlationIdCanIncludeCorrelationHeader(_extensionConfig, ajaxData[_DYN_GET_ABSOLUTE_URL /* @min:%2egetAbsoluteUrl */](), currentWindowHost)) {\r\n if (_isUsingAIHeaders) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[3 /* eRequestHeaders.requestIdHeader */])) {\r\n var id = \"|\" + ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */] + \".\" + ajaxData[_DYN_SPAN_ID /* @min:%2espanID */];\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[3 /* eRequestHeaders.requestIdHeader */], id);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[3 /* eRequestHeaders.requestIdHeader */]] = id;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[3 /* eRequestHeaders.requestIdHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n var appId = _appId || (_context && _context.appId());\r\n if (appId) {\r\n if (!_isHeaderSet(xhr, RequestHeaders[0 /* eRequestHeaders.requestContextHeader */])) {\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[0 /* eRequestHeaders.requestContextHeader */], RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]] = RequestHeaders[2 /* eRequestHeaders.requestContextAppIdFormat */] + appId;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[0 /* eRequestHeaders.requestContextHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n if (_isUsingW3CHeaders) {\r\n var traceFlags = ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */];\r\n if (isNullOrUndefined(traceFlags)) {\r\n traceFlags = 0x01;\r\n }\r\n if (!_isHeaderSet(xhr, RequestHeaders[4 /* eRequestHeaders.traceParentHeader */])) {\r\n var traceParent = formatTraceParent(createTraceParent(ajaxData[_DYN_TRACE_ID /* @min:%2etraceID */], ajaxData[_DYN_SPAN_ID /* @min:%2espanID */], traceFlags));\r\n xhr[_DYN_SET_REQUEST_HEADER /* @min:%2esetRequestHeader */](RequestHeaders[4 /* eRequestHeaders.traceParentHeader */], traceParent);\r\n if (_enableRequestHeaderTracking) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][RequestHeaders[4 /* eRequestHeaders.traceParentHeader */]] = traceParent;\r\n }\r\n }\r\n else {\r\n _throwInternalWarning(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, \"Unable to set [\" + RequestHeaders[4 /* eRequestHeaders.traceParentHeader */] + \"] as it has already been set by another instance\");\r\n }\r\n }\r\n }\r\n return xhr;\r\n }\r\n return undefined;\r\n };\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */] = function (dependency, properties, systemProperties) {\r\n if (_maxAjaxCallsPerView === -1 || _trackAjaxAttempts < _maxAjaxCallsPerView) {\r\n // Hack since expected format in w3c mode is |abc.def.\r\n // Non-w3c format is |abc.def\r\n // @todo Remove if better solution is available, e.g. handle in portal\r\n if ((_distributedTracingMode === 2 /* eDistributedTracingModes.W3C */\r\n || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */)\r\n && typeof dependency.id === \"string\" && dependency.id[dependency.id[_DYN_LENGTH /* @min:%2elength */] - 1] !== \".\") {\r\n dependency.id += \".\";\r\n }\r\n if (isNullOrUndefined(dependency[_DYN_START_TIME /* @min:%2estartTime */])) {\r\n dependency[_DYN_START_TIME /* @min:%2estartTime */] = new Date();\r\n }\r\n var item = createTelemetryItem(dependency, RemoteDependencyData.dataType, RemoteDependencyData.envelopeType, _self[strDiagLog](), properties, systemProperties);\r\n _self[_DYN_CORE /* @min:%2ecore */].track(item);\r\n }\r\n else if (_trackAjaxAttempts === _maxAjaxCallsPerView) {\r\n _throwInternalCritical(_self, 55 /* _eInternalMessageId.MaxAjaxPerPVExceeded */, \"Maximum ajax per page view limit reached, ajax monitoring is paused until the next trackPageView(). In order to increase the limit set the maxAjaxCallsPerView configuration parameter.\", true);\r\n }\r\n ++_trackAjaxAttempts;\r\n };\r\n _self.addDependencyListener = function (dependencyListener) {\r\n return _addHandler(_dependencyListeners, _dependencyHandlerId++, dependencyListener);\r\n };\r\n _self.addDependencyInitializer = function (dependencyInitializer) {\r\n return _addHandler(_dependencyInitializers, _dependencyHandlerId++, dependencyInitializer);\r\n };\r\n function _initDefaults() {\r\n var location = getLocation();\r\n _fetchInitialized = false; // fetch monitoring initialized\r\n _xhrInitialized = false; // XHR monitoring initialized\r\n _polyfillInitialized = false; // polyfill monitoring initialized\r\n _currentWindowHost = location && location.host && location.host[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n _extensionConfig = null;\r\n _enableRequestHeaderTracking = false;\r\n _enableAjaxErrorStatusText = false;\r\n _trackAjaxAttempts = 0;\r\n _context = null;\r\n _isUsingW3CHeaders = false;\r\n _isUsingAIHeaders = false;\r\n _markPrefix = null;\r\n _enableAjaxPerfTracking = false;\r\n _maxAjaxCallsPerView = 0;\r\n _enableResponseHeaderTracking = false;\r\n _disabledUrls = {};\r\n _disableAjaxTracking = false;\r\n _disableFetchTracking = false;\r\n _excludeRequestFromAutoTrackingPatterns = null;\r\n _addRequestContext = null;\r\n _evtNamespace = null;\r\n _dependencyHandlerId = 0;\r\n _dependencyListeners = [];\r\n _dependencyInitializers = [];\r\n _ajaxDataId = createUniqueNamespace(\"ajaxData\");\r\n _self._ajaxDataId = _ajaxDataId;\r\n _ignoreHeaders = null;\r\n _maxAjaxPerfLookupAttempts = 1;\r\n _ajaxPerfLookupDelay = 1;\r\n _distributedTracingMode = 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _appId = null;\r\n }\r\n function _populateDefaults(config) {\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(config, function (details) {\r\n var config = details.cfg;\r\n var ctx = createProcessTelemetryContext(null, config, _self[_DYN_CORE /* @min:%2ecore */]);\r\n _extensionConfig = ctx.getExtCfg(AjaxMonitor.identifier, _defaultConfig);\r\n _distributedTracingMode = _extensionConfig.distributedTracingMode;\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n _enableAjaxErrorStatusText = _extensionConfig[_DYN_ENABLE_AJAX_ERROR_ST5 /* @min:%2eenableAjaxErrorStatusText */];\r\n _enableAjaxPerfTracking = _extensionConfig[_DYN_ENABLE_AJAX_PERF_TRA6 /* @min:%2eenableAjaxPerfTracking */];\r\n _maxAjaxCallsPerView = _extensionConfig[_DYN_MAX_AJAX_CALLS_PER_V7 /* @min:%2emaxAjaxCallsPerView */];\r\n _excludeRequestFromAutoTrackingPatterns = [].concat(_extensionConfig[_DYN_EXCLUDE_REQUEST_FROM8 /* @min:%2eexcludeRequestFromAutoTrackingPatterns */] || [], _extensionConfig.addIntEndpoints !== false ? _internalExcludeEndpoints : []);\r\n _addRequestContext = _extensionConfig[_DYN_ADD_REQUEST_CONTEXT /* @min:%2eaddRequestContext */];\r\n _isUsingAIHeaders = _distributedTracingMode === 0 /* eDistributedTracingModes.AI */ || _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */;\r\n _isUsingW3CHeaders = _distributedTracingMode === 1 /* eDistributedTracingModes.AI_AND_W3C */ || _distributedTracingMode === 2 /* eDistributedTracingModes.W3C */;\r\n if (_enableAjaxPerfTracking) {\r\n _markPrefix = _ajaxDataId;\r\n }\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _maxAjaxPerfLookupAttempts = _extensionConfig.maxAjaxPerfLookupAttempts;\r\n _ajaxPerfLookupDelay = _extensionConfig[_DYN_AJAX_PERF_LOOKUP_DEL10 /* @min:%2eajaxPerfLookupDelay */];\r\n _ignoreHeaders = _extensionConfig.ignoreHeaders;\r\n _appId = _extensionConfig.appId;\r\n }));\r\n }\r\n function _populateContext() {\r\n var propExt = _self[_DYN_CORE /* @min:%2ecore */].getPlugin(PropertiesPluginIdentifier);\r\n if (propExt) {\r\n _context = propExt.plugin[_DYN_CONTEXT /* @min:%2econtext */]; // we could move IPropertiesPlugin to common as well\r\n }\r\n }\r\n // discard the header if it's defined as ignoreHeaders in ICorrelationConfig\r\n function _canIncludeHeaders(header) {\r\n var rlt = true;\r\n if (header || _ignoreHeaders) {\r\n arrForEach(_ignoreHeaders, (function (key) {\r\n if (key[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]() === header[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]()) {\r\n rlt = false;\r\n return -1;\r\n }\r\n }));\r\n }\r\n return rlt;\r\n }\r\n // Fetch Stuff\r\n function _instrumentFetch() {\r\n var fetch = _supportsFetch();\r\n if (!fetch) {\r\n return;\r\n }\r\n var global = getGlobal();\r\n var isPolyfill = fetch.polyfill;\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableFetchTracking = !!_extensionConfig[_DYN_DISABLE_FETCH_TRACKI11 /* @min:%2edisableFetchTracking */];\r\n _enableResponseHeaderTracking = _extensionConfig[_DYN_ENABLE_RESPONSE_HEAD12 /* @min:%2eenableResponseHeaderTracking */];\r\n if (!_disableFetchTracking && !_fetchInitialized) {\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n // Add request hook\r\n req: function (callDetails, input, init) {\r\n var fetchData;\r\n if (!_disableFetchTracking && _fetchInitialized &&\r\n !_isDisabledRequest(null, input, init) &&\r\n // If we have a polyfil and XHR instrumented then let XHR report otherwise we get duplicates\r\n !(isPolyfill && _xhrInitialized)) {\r\n var ctx = callDetails.ctx();\r\n fetchData = _createFetchRecord(input, init);\r\n var newInit = _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](fetchData, input, init);\r\n if (newInit !== init) {\r\n callDetails.set(1, newInit);\r\n }\r\n ctx.data = fetchData;\r\n }\r\n },\r\n rsp: function (callDetails, input) {\r\n if (!_disableFetchTracking) {\r\n var fetchData_1 = callDetails.ctx().data;\r\n if (fetchData_1) {\r\n // Replace the result with the new promise from this code\r\n callDetails.rslt = callDetails.rslt.then(function (response) {\r\n _reportFetchMetrics(callDetails, (response || {})[_DYN_STATUS /* @min:%2estatus */], input, response, fetchData_1, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: (response || {})[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getFetchCorrelationContext(response),\r\n _a);\r\n if (_enableResponseHeaderTracking && response) {\r\n var responseHeaderMap_1 = {};\r\n response.headers.forEach(function (value, name) {\r\n if (_canIncludeHeaders(name)) {\r\n responseHeaderMap_1[name] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_1;\r\n }\r\n return ajaxResponse;\r\n });\r\n return response;\r\n })\r\n .catch(function (reason) {\r\n _reportFetchMetrics(callDetails, 0, input, null, fetchData_1, null, { error: reason.message || dumpObj(reason) });\r\n throw reason;\r\n });\r\n }\r\n }\r\n },\r\n // Create an error callback to report any hook errors\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to monitor Window.fetch\" + ERROR_POSTFIX)\r\n }, true, isWebWorker()));\r\n _fetchInitialized = true;\r\n }\r\n else if (isPolyfill && !_polyfillInitialized) {\r\n // If fetch is a polyfill we need to capture the request to ensure that we correctly track\r\n // disabled request URLS (i.e. internal urls) to ensure we don't end up in a constant loop\r\n // of reporting ourselves, for example React Native uses a polyfill for fetch\r\n // Note: Polyfill implementations that don't support the \"polyfill\" tag are not supported\r\n // the workaround is to add a polyfill property to your fetch implementation before initializing\r\n // App Insights\r\n _addHook(InstrumentFunc(global, STR_FETCH, {\r\n ns: _evtNamespace,\r\n req: function (callDetails, input, init) {\r\n // Just call so that we record any disabled URL\r\n _isDisabledRequest(null, input, init);\r\n }\r\n }));\r\n _polyfillInitialized = true;\r\n }\r\n }));\r\n if (isPolyfill) {\r\n // retag the instrumented fetch with the same polyfill settings this is mostly for testing\r\n // But also supports multiple App Insights usages\r\n global[STR_FETCH].polyfill = isPolyfill;\r\n }\r\n }\r\n function _hookProto(target, funcName, callbacks) {\r\n _addHook(InstrumentProto(target, funcName, callbacks));\r\n }\r\n function _instrumentXhr() {\r\n if (!_supportsAjaxMonitoring(_self, _ajaxDataId)) {\r\n return;\r\n }\r\n _self[_DYN__ADD_HOOK /* @min:%2e_addHook */](onConfigChange(_extensionConfig, function () {\r\n _disableAjaxTracking = !!_extensionConfig[_DYN_DISABLE_AJAX_TRACKIN9 /* @min:%2edisableAjaxTracking */];\r\n _enableRequestHeaderTracking = _extensionConfig[_DYN_ENABLE_REQUEST_HEADE4 /* @min:%2eenableRequestHeaderTracking */];\r\n if (!_disableAjaxTracking && !_xhrInitialized) {\r\n // Instrument open\r\n _hookProto(XMLHttpRequest, \"open\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, method, url, async) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (!_isDisabledRequest(xhr, url) && _isMonitoredXhrInstance(xhr, ajaxData, true)) {\r\n if (!ajaxData || !ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */]) {\r\n // Only create a single ajaxData (even when multiple AI instances are running)\r\n ajaxData = _openHandler(xhr, method, url, async);\r\n }\r\n // always attach to the on ready state change (required for handling multiple instances)\r\n _attachToOnReadyStateChange(xhr, ajaxData);\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, ERROR_HEADER + \".open\" + ERROR_POSTFIX)\r\n });\r\n // Instrument send\r\n _hookProto(XMLHttpRequest, \"send\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, context) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */]) {\r\n _createMarkId(\"xhr\", ajaxData);\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n _self[_DYN_INCLUDE_CORRELATION_2 /* @min:%2eincludeCorrelationHeaders */](ajaxData, undefined, undefined, xhr);\r\n ajaxData.xhrMonitoringState[_DYN_SEND_DONE /* @min:%2esendDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 17 /* _eInternalMessageId.FailedMonitorAjaxSend */, ERROR_HEADER + ERROR_POSTFIX)\r\n });\r\n // Instrument abort\r\n _hookProto(XMLHttpRequest, \"abort\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (_isMonitoredXhrInstance(xhr, ajaxData) && !ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */]) {\r\n ajaxData[_DYN_ABORTED /* @min:%2eaborted */] = 1;\r\n ajaxData.xhrMonitoringState[_DYN_ABORT_DONE /* @min:%2eabortDone */] = true;\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 13 /* _eInternalMessageId.FailedMonitorAjaxAbort */, ERROR_HEADER + \".abort\" + ERROR_POSTFIX)\r\n });\r\n // Instrument setRequestHeader\r\n _hookProto(XMLHttpRequest, \"setRequestHeader\", {\r\n ns: _evtNamespace,\r\n req: function (callDetails, header, value) {\r\n if (!_disableAjaxTracking) {\r\n var xhr = callDetails[_DYN_INST /* @min:%2einst */];\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n if (ajaxData && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _addSharedXhrHeaders(xhr, header, value);\r\n if (_enableRequestHeaderTracking && _canIncludeHeaders(header)) {\r\n if (ajaxData) {\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */][header] = value;\r\n }\r\n }\r\n }\r\n }\r\n },\r\n hkErr: _createErrorCallbackFunc(_self, 71 /* _eInternalMessageId.FailedMonitorAjaxSetRequestHeader */, ERROR_HEADER + \".setRequestHeader\" + ERROR_POSTFIX)\r\n });\r\n _xhrInitialized = true;\r\n }\r\n }));\r\n }\r\n function _isDisabledRequest(xhr, request, init) {\r\n var isDisabled = false;\r\n var theUrl = ((!isString(request) ? (request || {}).url || \"\" : request) || \"\")[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */]();\r\n // check excludeRequestFromAutoTrackingPatterns before stripping off any query string\r\n arrForEach(_excludeRequestFromAutoTrackingPatterns, function (regex) {\r\n var theRegex = regex;\r\n if (isString(regex)) {\r\n theRegex = new RegExp(regex);\r\n }\r\n if (!isDisabled) {\r\n isDisabled = theRegex.test(theUrl);\r\n }\r\n });\r\n // if request url matches with exclude regex pattern, return true and no need to check for headers\r\n if (isDisabled) {\r\n return isDisabled;\r\n }\r\n var idx = _indexOf(theUrl, \"?\");\r\n var idx2 = _indexOf(theUrl, \"#\");\r\n if (idx === -1 || (idx2 !== -1 && idx2 < idx)) {\r\n idx = idx2;\r\n }\r\n if (idx !== -1) {\r\n // Strip off any Query string\r\n theUrl = theUrl.substring(0, idx);\r\n }\r\n // check that this instance is not not used by ajax call performed inside client side monitoring to send data to collector\r\n if (!isNullOrUndefined(xhr)) {\r\n // Look on the XMLHttpRequest of the URL string value\r\n isDisabled = xhr[DisabledPropertyName] === true || theUrl[DisabledPropertyName] === true;\r\n }\r\n else if (!isNullOrUndefined(request)) { // fetch\r\n // Look for DisabledPropertyName in either Request or RequestInit\r\n isDisabled = (typeof request === \"object\" ? request[DisabledPropertyName] === true : false) ||\r\n (init ? init[DisabledPropertyName] === true : false);\r\n }\r\n // Also add extra check just in case the XHR or fetch objects where not decorated with the DisableProperty due to sealing or freezing\r\n if (!isDisabled && theUrl && isInternalApplicationInsightsEndpoint(theUrl)) {\r\n isDisabled = true;\r\n }\r\n if (isDisabled) {\r\n // Add the disabled url if not present\r\n if (!_disabledUrls[theUrl]) {\r\n _disabledUrls[theUrl] = 1;\r\n }\r\n }\r\n else {\r\n // Check to see if the url is listed as disabled\r\n if (_disabledUrls[theUrl]) {\r\n isDisabled = true;\r\n }\r\n }\r\n return isDisabled;\r\n }\r\n /// Verifies that particular instance of XMLHttpRequest needs to be monitored\r\n /// Optional parameter. True if ajaxData must be excluded from verification\r\n /// True if instance needs to be monitored, otherwise false\r\n function _isMonitoredXhrInstance(xhr, ajaxData, excludeAjaxDataValidation) {\r\n var ajaxValidation = true;\r\n var initialized = _xhrInitialized;\r\n if (!isNullOrUndefined(xhr)) {\r\n ajaxValidation = excludeAjaxDataValidation === true || !isNullOrUndefined(ajaxData);\r\n }\r\n // checking to see that all interested functions on xhr were instrumented\r\n return initialized\r\n // checking on ajaxData to see that it was not removed in user code\r\n && ajaxValidation;\r\n }\r\n function _getDistributedTraceCtx() {\r\n var distributedTraceCtx = null;\r\n if (_self[_DYN_CORE /* @min:%2ecore */] && _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx) {\r\n distributedTraceCtx = _self[_DYN_CORE /* @min:%2ecore */].getTraceCtx(false);\r\n }\r\n // Fall back\r\n if (!distributedTraceCtx && _context && _context.telemetryTrace) {\r\n distributedTraceCtx = createDistributedTraceContextFromTrace(_context.telemetryTrace);\r\n }\r\n return distributedTraceCtx;\r\n }\r\n function _openHandler(xhr, method, url, async) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var xhrRequestData = xhr[AJAX_DATA_CONTAINER] = (xhr[AJAX_DATA_CONTAINER] || { xh: [], i: {} });\r\n var ajaxDataCntr = xhrRequestData.i = (xhrRequestData.i || {});\r\n var ajaxData = ajaxDataCntr[_ajaxDataId] = (ajaxDataCntr[_ajaxDataId] || new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx()));\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = url;\r\n ajaxData.xhrMonitoringState[_DYN_OPEN_DONE /* @min:%2eopenDone */] = true;\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = {};\r\n ajaxData.async = async;\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n return ajaxData;\r\n }\r\n function _attachToOnReadyStateChange(xhr, ajaxData) {\r\n ajaxData.xhrMonitoringState[_DYN_STATE_CHANGE_ATTACHE13 /* @min:%2estateChangeAttached */] = eventOn(xhr, \"readystatechange\", function () {\r\n var _a;\r\n try {\r\n if (xhr && xhr.readyState === 4 && _isMonitoredXhrInstance(xhr, ajaxData)) {\r\n _onAjaxComplete(xhr);\r\n }\r\n }\r\n catch (e) {\r\n var exceptionText = dumpObj(e);\r\n // ignore messages with c00c023f, as this a known IE9 XHR abort issue\r\n if (!exceptionText || _indexOf(exceptionText[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), \"c00c023f\") === -1) {\r\n _throwInternalCritical(_self, 16 /* _eInternalMessageId.FailedMonitorAjaxRSC */, ERROR_HEADER + \" 'readystatechange' event handler\" + ERROR_POSTFIX, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = exceptionText,\r\n _a));\r\n }\r\n }\r\n }, _evtNamespace);\r\n }\r\n function _getResponseText(xhr) {\r\n try {\r\n var responseType = xhr.responseType;\r\n if (responseType === \"\" || responseType === \"text\") {\r\n // As per the specification responseText is only valid if the type is an empty string or \"text\"\r\n return xhr[_DYN_RESPONSE_TEXT /* @min:%2eresponseText */];\r\n }\r\n }\r\n catch (e) {\r\n // This shouldn't happen because of the above check -- but just in case, so just ignore\r\n }\r\n return null;\r\n }\r\n function _onAjaxComplete(xhr) {\r\n var ajaxData = _getAjaxData(xhr, _ajaxDataId);\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = xhr[_DYN_STATUS /* @min:%2estatus */];\r\n function _reportXhrError(e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"ajaxDiagnosticsMessage\"] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, 14 /* _eInternalMessageId.FailedMonitorAjaxDur */, FAILED_TO_CALCULATE_DURATION_ERROR + \"ajax call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n _findPerfResourceEntry(\"xmlhttprequest\", ajaxData, function () {\r\n try {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Ajax\", _enableRequestHeaderTracking, function () {\r\n var _a;\r\n var ajaxResponse = (_a = {\r\n statusText: xhr[_DYN_STATUS_TEXT /* @min:%2estatusText */]\r\n },\r\n _a[_DYN_HEADER_MAP /* @min:headerMap */] = null,\r\n _a[_DYN_CORRELATION_CONTEXT /* @min:correlationContext */] = _getAjaxCorrelationContext(xhr),\r\n _a.type = xhr.responseType,\r\n _a[_DYN_RESPONSE_TEXT /* @min:responseText */] = _getResponseText(xhr),\r\n _a.response = xhr[_DYN_RESPONSE /* @min:%2eresponse */],\r\n _a);\r\n if (_enableResponseHeaderTracking) {\r\n var headers = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (headers) {\r\n // xhr.getAllResponseHeaders() method returns all the response headers, separated by CRLF, as a string or null\r\n // the regex converts the header string into an array of individual headers\r\n var arr = strTrim(headers).split(/[\\r\\n]+/);\r\n var responseHeaderMap_2 = {};\r\n arrForEach(arr, function (line) {\r\n var parts = line.split(\": \");\r\n var header = parts.shift();\r\n var value = parts.join(\": \");\r\n if (_canIncludeHeaders(header)) {\r\n responseHeaderMap_2[header] = value;\r\n }\r\n });\r\n ajaxResponse[_DYN_HEADER_MAP /* @min:%2eheaderMap */] = responseHeaderMap_2;\r\n }\r\n }\r\n return ajaxResponse;\r\n });\r\n var properties = void 0;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: xhr[_DYN_STATUS /* @min:%2estatus */], xhr: xhr });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportXhrError(null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }\r\n finally {\r\n // cleanup telemetry data\r\n try {\r\n var xhrRequestData = (xhr[AJAX_DATA_CONTAINER] || { i: {} });\r\n var ajaxDataCntr = (xhrRequestData.i || {});\r\n if (ajaxDataCntr[_ajaxDataId]) {\r\n ajaxDataCntr[_ajaxDataId] = null;\r\n }\r\n }\r\n catch (e) {\r\n // May throw in environments that prevent extension or freeze xhr\r\n }\r\n }\r\n }, function (e) {\r\n _reportXhrError(e, null);\r\n });\r\n }\r\n function _getAjaxCorrelationContext(xhr) {\r\n var _a;\r\n try {\r\n var responseHeadersString = xhr[_DYN_GET_ALL_RESPONSE_HEA15 /* @min:%2egetAllResponseHeaders */]();\r\n if (responseHeadersString !== null) {\r\n var index = _indexOf(responseHeadersString[_DYN_TO_LOWER_CASE /* @min:%2etoLowerCase */](), RequestHeaders[8 /* eRequestHeaders.requestContextHeaderLowerCase */]);\r\n if (index !== -1) {\r\n var responseHeader = xhr.getResponseHeader(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {},\r\n _a[_DYN_AJAX_DIAGNOSTICS_MES16 /* @min:ajaxDiagnosticsMessage */] = _getFailedAjaxDiagnosticsMessage(xhr, _ajaxDataId),\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n function _createMarkId(type, ajaxData) {\r\n if (ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] && _markPrefix && _enableAjaxPerfTracking) {\r\n var performance_1 = getPerformance();\r\n if (performance_1 && isFunction(performance_1.mark)) {\r\n _markCount++;\r\n var markId = _markPrefix + type + \"#\" + _markCount;\r\n performance_1.mark(markId);\r\n var entries = performance_1.getEntriesByName(markId);\r\n if (entries && entries[_DYN_LENGTH /* @min:%2elength */] === 1) {\r\n ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */] = entries[0];\r\n }\r\n }\r\n }\r\n }\r\n function _findPerfResourceEntry(initiatorType, ajaxData, trackCallback, reportError) {\r\n var perfMark = ajaxData[_DYN_PERF_MARK /* @min:%2eperfMark */];\r\n var performance = getPerformance();\r\n var maxAttempts = _maxAjaxPerfLookupAttempts;\r\n var retryDelay = _ajaxPerfLookupDelay;\r\n var requestUrl = ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */];\r\n var attempt = 0;\r\n (function locateResourceTiming() {\r\n try {\r\n if (performance && perfMark) {\r\n attempt++;\r\n var perfTiming = null;\r\n var entries = performance.getEntries();\r\n for (var lp = entries[_DYN_LENGTH /* @min:%2elength */] - 1; lp >= 0; lp--) {\r\n var entry = entries[lp];\r\n if (entry) {\r\n if (entry.entryType === \"resource\") {\r\n if (entry.initiatorType === initiatorType &&\r\n (_indexOf(entry[_DYN_NAME /* @min:%2ename */], requestUrl) !== -1 || _indexOf(requestUrl, entry[_DYN_NAME /* @min:%2ename */]) !== -1)) {\r\n perfTiming = entry;\r\n }\r\n }\r\n else if (entry.entryType === \"mark\" && entry[_DYN_NAME /* @min:%2ename */] === perfMark[_DYN_NAME /* @min:%2ename */]) {\r\n // We hit the start event\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] = perfTiming;\r\n break;\r\n }\r\n if (entry[_DYN_START_TIME /* @min:%2estartTime */] < perfMark[_DYN_START_TIME /* @min:%2estartTime */] - 1000) {\r\n // Fallback to try and reduce the time spent looking for the perf entry\r\n break;\r\n }\r\n }\r\n }\r\n }\r\n if (!perfMark || // - we don't have a perfMark or\r\n ajaxData[_DYN_PERF_TIMING /* @min:%2eperfTiming */] || // - we have not found the perf entry or\r\n attempt >= maxAttempts || // - we have tried too many attempts or\r\n ajaxData.async === false) { // - this is a sync request\r\n if (perfMark && isFunction(performance.clearMarks)) {\r\n // Remove the mark so we don't fill up the performance resources too much\r\n performance.clearMarks(perfMark[_DYN_NAME /* @min:%2ename */]);\r\n }\r\n ajaxData.perfAttempts = attempt;\r\n // just continue and report the track event\r\n trackCallback();\r\n }\r\n else {\r\n // We need to wait for the browser to populate the window.performance entry\r\n // This needs to be at least 1ms as waiting <= 1 (on firefox) is not enough time for fetch or xhr,\r\n // this is a scheduling issue for the browser implementation\r\n scheduleTimeout(locateResourceTiming, retryDelay);\r\n }\r\n }\r\n catch (e) {\r\n reportError(e);\r\n }\r\n })();\r\n }\r\n function _createFetchRecord(input, init) {\r\n var _a;\r\n var distributedTraceCtx = _getDistributedTraceCtx();\r\n var traceID = (distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_ID /* @min:%2egetTraceId */]()) || generateW3CId();\r\n var spanID = strSubstr(generateW3CId(), 0, 16);\r\n var ajaxData = new ajaxRecord(traceID, spanID, _self[strDiagLog](), (_a = _self.core) === null || _a === void 0 ? void 0 : _a.getTraceCtx());\r\n ajaxData[_DYN_TRACE_FLAGS /* @min:%2etraceFlags */] = distributedTraceCtx && distributedTraceCtx[_DYN_GET_TRACE_FLAGS /* @min:%2egetTraceFlags */]();\r\n ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_ERROR_STATUS_TEXT /* @min:%2eerrorStatusText */] = _enableAjaxErrorStatusText;\r\n var requestUrl;\r\n if (input instanceof Request) {\r\n requestUrl = (input || {}).url || \"\";\r\n }\r\n else {\r\n requestUrl = input;\r\n }\r\n if (requestUrl === \"\") {\r\n var location_1 = getLocation();\r\n if (location_1 && location_1.href) {\r\n requestUrl = strSplit(location_1.href, \"#\")[0];\r\n }\r\n }\r\n ajaxData[_DYN_REQUEST_URL /* @min:%2erequestUrl */] = requestUrl;\r\n var method = \"GET\";\r\n if (init && init[_DYN_METHOD /* @min:%2emethod */]) {\r\n method = init[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n else if (input && input instanceof Request) {\r\n method = input[_DYN_METHOD /* @min:%2emethod */];\r\n }\r\n ajaxData[_DYN_METHOD /* @min:%2emethod */] = method;\r\n var requestHeaders = {};\r\n if (_enableRequestHeaderTracking) {\r\n var headers = new Headers((init ? init[_DYN_HEADERS /* @min:%2eheaders */] : 0) || (input instanceof Request ? (input[_DYN_HEADERS /* @min:%2eheaders */] || {}) : {}));\r\n headers.forEach(function (value, key) {\r\n if (_canIncludeHeaders(key)) {\r\n requestHeaders[key] = value;\r\n }\r\n });\r\n }\r\n ajaxData[_DYN_REQUEST_HEADERS /* @min:%2erequestHeaders */] = requestHeaders;\r\n _createMarkId(STR_FETCH, ajaxData);\r\n return ajaxData;\r\n }\r\n function _getFailedFetchDiagnosticsMessage(input) {\r\n var result = \"\";\r\n try {\r\n if (!isNullOrUndefined(input)) {\r\n if (typeof (input) === \"string\") {\r\n result += \"(url: '\".concat(input, \"')\");\r\n }\r\n else {\r\n result += \"(url: '\".concat(input.url, \"')\");\r\n }\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalCritical(_self, 15 /* _eInternalMessageId.FailedMonitorAjaxOpen */, \"Failed to grab failed fetch diagnostics message\", { exception: dumpObj(e) });\r\n }\r\n return result;\r\n }\r\n function _reportFetchMetrics(callDetails, status, input, response, ajaxData, getResponse, properties) {\r\n if (!ajaxData) {\r\n return;\r\n }\r\n function _reportFetchError(msgId, e, failedProps) {\r\n var errorProps = failedProps || {};\r\n errorProps[\"fetchDiagnosticsMessage\"] = _getFailedFetchDiagnosticsMessage(input);\r\n if (e) {\r\n errorProps[\"exception\"] = dumpObj(e);\r\n }\r\n _throwInternalWarning(_self, msgId, FAILED_TO_CALCULATE_DURATION_ERROR + \"fetch call\" + ERROR_NOT_SENT, errorProps);\r\n }\r\n ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */] = dateTimeUtilsNow();\r\n ajaxData[_DYN_STATUS /* @min:%2estatus */] = status;\r\n _findPerfResourceEntry(STR_FETCH, ajaxData, function () {\r\n var dependency = ajaxData[_DYN__CREATE_TRACK_ITEM /* @min:%2eCreateTrackItem */](\"Fetch\", _enableRequestHeaderTracking, getResponse);\r\n var properties;\r\n try {\r\n if (!!_addRequestContext) {\r\n properties = _addRequestContext({ status: status, request: input, response: response });\r\n }\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 104 /* _eInternalMessageId.FailedAddingCustomDefinedRequestContext */, CUSTOM_REQUEST_CONTEXT_ERROR);\r\n }\r\n if (dependency) {\r\n if (properties !== undefined) {\r\n dependency[STR_PROPERTIES /* @min:%2eproperties */] = __assign(__assign({}, dependency.properties), properties);\r\n }\r\n var sysProperties = ajaxData[_DYN_GET_PART_APROPS /* @min:%2egetPartAProps */]();\r\n _reportDependencyInternal(_dependencyInitializers, _self[_DYN_CORE /* @min:%2ecore */], ajaxData, dependency, null, sysProperties);\r\n }\r\n else {\r\n _reportFetchError(14 /* _eInternalMessageId.FailedMonitorAjaxDur */, null, {\r\n requestSentTime: ajaxData[_DYN_REQUEST_SENT_TIME /* @min:%2erequestSentTime */],\r\n responseFinishedTime: ajaxData[_DYN_RESPONSE_FINISHED_TI14 /* @min:%2eresponseFinishedTime */]\r\n });\r\n }\r\n }, function (e) {\r\n _reportFetchError(18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, e, null);\r\n });\r\n }\r\n function _getFetchCorrelationContext(response) {\r\n var _a;\r\n if (response && response[_DYN_HEADERS /* @min:%2eheaders */]) {\r\n try {\r\n var responseHeader = response[_DYN_HEADERS /* @min:%2eheaders */].get(RequestHeaders[0 /* eRequestHeaders.requestContextHeader */]);\r\n return correlationIdGetCorrelationContext(responseHeader);\r\n }\r\n catch (e) {\r\n _throwInternalWarning(_self, 18 /* _eInternalMessageId.FailedMonitorAjaxGetCorrelationHeader */, CORRELATION_HEADER_ERROR, (_a = {\r\n fetchDiagnosticsMessage: _getFailedFetchDiagnosticsMessage(response)\r\n },\r\n _a[_DYN_EXCEPTION /* @min:exception */] = dumpObj(e),\r\n _a));\r\n }\r\n }\r\n }\r\n function _reportDependencyInternal(initializers, core, ajaxData, dependency, properties, systemProperties) {\r\n var _a;\r\n var result = true;\r\n var initializersCount = initializers[_DYN_LENGTH /* @min:%2elength */];\r\n if (initializersCount > 0) {\r\n var details = (_a = {\r\n item: dependency\r\n },\r\n _a[STR_PROPERTIES /* @min:properties */] = properties,\r\n _a.sysProperties = systemProperties,\r\n _a.context = ajaxData ? ajaxData[_DYN_CONTEXT /* @min:%2econtext */] : null,\r\n _a.aborted = ajaxData ? !!ajaxData[_DYN_ABORTED /* @min:%2eaborted */] : false,\r\n _a);\r\n result = _processDependencyContainer(core, initializers, details, \"initializer\");\r\n }\r\n if (result) {\r\n _self[_DYN_TRACK_DEPENDENCY_DAT3 /* @min:%2etrackDependencyDataInternal */](dependency, properties, systemProperties);\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for AjaxMonitor.prototype.initialize.\r\n AjaxMonitor.prototype.processTelemetry = function (item, itemCtx) {\r\n this.processNext(item, itemCtx);\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyData.\r\n// Removed Stub for AjaxMonitor.prototype.includeCorrelationHeaders.\r\n// Removed Stub for AjaxMonitor.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AjaxMonitor.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AjaxMonitor.prototype.trackDependencyDataInternal.\r\n AjaxMonitor.identifier = \"AjaxDependencyPlugin\";\r\n return AjaxMonitor;\r\n}(BaseTelemetryPlugin));\r\nexport { AjaxMonitor };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Application = /** @class */ (function () {\r\n function Application() {\r\n }\r\n return Application;\r\n}());\r\nexport { Application };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Device = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the Device class\r\n */\r\n function Device() {\r\n // don't attempt to fingerprint browsers\r\n this.id = \"browser\";\r\n // Device type is a dimension in our data platform\r\n // Setting it to 'Browser' allows to separate client and server dependencies/exceptions\r\n this.deviceClass = \"Browser\";\r\n }\r\n return Device;\r\n}());\r\nexport { Device };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nvar Version = '3.3.4';\r\nvar Internal = /** @class */ (function () {\r\n /**\r\n * Constructs a new instance of the internal telemetry data class.\r\n */\r\n function Internal(config, unloadHookContainer) {\r\n var _this = this;\r\n var unloadHook = onConfigChange((config), function () {\r\n var prefix = config.sdkExtension;\r\n _this.sdkVersion = (prefix ? prefix + \"_\" : \"\") + \"javascript:\" + Version;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n }\r\n return Internal;\r\n}());\r\nexport { Internal };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nvar Location = /** @class */ (function () {\r\n function Location() {\r\n }\r\n return Location;\r\n}());\r\nexport { Location };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_SESSION_MANAGER = \"sessionManager\"; // Count: 3\r\nexport var _DYN_UPDATE = \"update\"; // Count: 4\r\nexport var _DYN_IS_USER_COOKIE_SET = \"isUserCookieSet\"; // Count: 4\r\nexport var _DYN_IS_NEW_USER = \"isNewUser\"; // Count: 4\r\nexport var _DYN_GET_TRACE_CTX = \"getTraceCtx\"; // Count: 3\r\nexport var _DYN_TELEMETRY_TRACE = \"telemetryTrace\"; // Count: 3\r\nexport var _DYN_APPLY_SESSION_CONTEX0 = \"applySessionContext\"; // Count: 2\r\nexport var _DYN_APPLY_APPLICATION_CO1 = \"applyApplicationContext\"; // Count: 2\r\nexport var _DYN_APPLY_DEVICE_CONTEXT = \"applyDeviceContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATION_CONT2 = \"applyOperationContext\"; // Count: 2\r\nexport var _DYN_APPLY_USER_CONTEXT = \"applyUserContext\"; // Count: 2\r\nexport var _DYN_APPLY_OPERATING_SYST3 = \"applyOperatingSystemContxt\"; // Count: 2\r\nexport var _DYN_APPLY_LOCATION_CONTE4 = \"applyLocationContext\"; // Count: 2\r\nexport var _DYN_APPLY_INTERNAL_CONTE5 = \"applyInternalContext\"; // Count: 2\r\nexport var _DYN_ACCOUNT_ID = \"accountId\"; // Count: 7\r\nexport var _DYN_GET_SESSION_ID = \"getSessionId\"; // Count: 4\r\nexport var _DYN_NAME_PREFIX = \"namePrefix\"; // Count: 3\r\nexport var _DYN_SESSION_COOKIE_POSTF6 = \"sessionCookiePostfix\"; // Count: 2\r\nexport var _DYN_USER_COOKIE_POSTFIX = \"userCookiePostfix\"; // Count: 2\r\nexport var _DYN_ID_LENGTH = \"idLength\"; // Count: 4\r\nexport var _DYN_GET_NEW_ID = \"getNewId\"; // Count: 3\r\nexport var _DYN_LENGTH = \"length\"; // Count: 4\r\nexport var _DYN_AUTOMATIC_SESSION = \"automaticSession\"; // Count: 5\r\nexport var _DYN_AUTHENTICATED_ID = \"authenticatedId\"; // Count: 6\r\nexport var _DYN_ACQUISITION_DATE = \"acquisitionDate\"; // Count: 5\r\nexport var _DYN_RENEWAL_DATE = \"renewalDate\"; // Count: 4\r\nexport var _DYN_JOIN = \"join\"; // Count: 5\r\nexport var _DYN_COOKIE_SEPARATOR = \"cookieSeparator\"; // Count: 5\r\nexport var _DYN_AUTH_USER_COOKIE_NAM7 = \"authUserCookieName\"; // Count: 3\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlCanUseLocalStorage, utlGetLocalStorage, utlSetLocalStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, dateNow, dumpObj, getExceptionName, isFunction, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/applicationinsights-core-js\";\r\nimport { _DYN_ACQUISITION_DATE, _DYN_AUTOMATIC_SESSION, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_RENEWAL_DATE, _DYN_UPDATE } from \"../__DynamicConstants\";\r\nvar SESSION_COOKIE_NAME = \"ai_session\";\r\nvar ACQUISITION_SPAN = 86400000; // 24 hours in ms\r\nvar RENEWAL_SPAN = 1800000; // 30 minutes in ms\r\nvar COOKIE_UPDATE_INTERVAL = 60000; // 1 minute in ms\r\nvar Session = /** @class */ (function () {\r\n function Session() {\r\n }\r\n return Session;\r\n}());\r\nexport { Session };\r\nvar _SessionManager = /** @class */ (function () {\r\n function _SessionManager(config, core, unloadHookContainer) {\r\n var self = this;\r\n var _storageNamePrefix;\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _sessionExpirationMs;\r\n var _sessionRenewalMs;\r\n dynamicProto(_SessionManager, self, function (_self) {\r\n if (!config) {\r\n config = {};\r\n }\r\n var unloadHook = onConfigChange(config, function (details) {\r\n _sessionExpirationMs = config.sessionExpirationMs || ACQUISITION_SPAN;\r\n _sessionRenewalMs = config.sessionRenewalMs || RENEWAL_SPAN;\r\n // sessionCookiePostfix takes the preference if it is configured, otherwise takes namePrefix if configured.\r\n var sessionCookiePostfix = config.sessionCookiePostfix || config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\";\r\n _storageNamePrefix = SESSION_COOKIE_NAME + sessionCookiePostfix;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */] = new Session();\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function () {\r\n // Always using Date getTime() as there is a bug in older IE instances that causes the performance timings to have the hi-bit set eg 0x800000000 causing\r\n // the number to be incorrect.\r\n var nowMs = dateNow();\r\n var isExpired = false;\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n if (!session.id) {\r\n isExpired = !_initializeAutomaticSession(session, nowMs);\r\n }\r\n if (!isExpired && _sessionExpirationMs > 0) {\r\n var timeSinceAcqMs = nowMs - session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n var timeSinceRenewalMs = nowMs - session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */];\r\n isExpired = timeSinceAcqMs < 0 || timeSinceRenewalMs < 0; // expired if the acquisition or last renewal are in the future\r\n isExpired = isExpired || timeSinceAcqMs > _sessionExpirationMs; // expired if the time since acquisition is more than session Expiration\r\n isExpired = isExpired || timeSinceRenewalMs > _sessionRenewalMs; // expired if the time since last renewal is more than renewal period\r\n }\r\n // renew if acquisitionSpan or renewalSpan has elapsed\r\n if (isExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew(nowMs);\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n if (!_cookieUpdatedTimestamp || nowMs - _cookieUpdatedTimestamp > COOKIE_UPDATE_INTERVAL) {\r\n _setCookie(session, nowMs);\r\n }\r\n }\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n _self.backup = function () {\r\n var session = _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n _setStorage(session.id, session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */], session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */]);\r\n };\r\n /**\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSession(session, now) {\r\n var isValid = false;\r\n var cookieValue = _cookieManager.get(_storageNamePrefix);\r\n if (cookieValue && isFunction(cookieValue.split)) {\r\n isValid = _initializeAutomaticSessionWithData(session, cookieValue);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storageValue = utlGetLocalStorage(_logger, _storageNamePrefix);\r\n if (storageValue) {\r\n isValid = _initializeAutomaticSessionWithData(session, storageValue);\r\n }\r\n }\r\n return isValid || !!session.id;\r\n }\r\n /**\r\n * Extract id, acquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n * @returns true if values set otherwise false\r\n */\r\n function _initializeAutomaticSessionWithData(session, sessionData) {\r\n var isValid = false;\r\n var sessionReset = \", session will be reset\";\r\n var tokens = sessionData.split(\"|\");\r\n if (tokens[_DYN_LENGTH /* @min:%2elength */] >= 2) {\r\n try {\r\n var acqMs = +tokens[1] || 0;\r\n var renewalMs = +tokens[2] || 0;\r\n if (isNaN(acqMs) || acqMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session acquisition date is 0\" + sessionReset);\r\n }\r\n else if (isNaN(renewalMs) || renewalMs <= 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 27 /* _eInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0\" + sessionReset);\r\n }\r\n else if (tokens[0]) {\r\n // Everything looks valid so set the values\r\n session.id = tokens[0];\r\n session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = acqMs;\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = renewalMs;\r\n isValid = true;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 9 /* _eInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session value [\" + (sessionData || \"\") + \"]\" + sessionReset + \" - \" + getExceptionName(e), { exception: dumpObj(e) });\r\n }\r\n }\r\n return isValid;\r\n }\r\n function _renew(nowMs) {\r\n var getNewId = config[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n _self.automaticSession.id = getNewId(config[_DYN_ID_LENGTH /* @min:%2eidLength */] || 22);\r\n _self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */][_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */] = nowMs;\r\n _setCookie(_self[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */], nowMs);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!utlCanUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 0 /* _eInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(session, nowMs) {\r\n var acq = session[_DYN_ACQUISITION_DATE /* @min:%2eacquisitionDate */];\r\n session[_DYN_RENEWAL_DATE /* @min:%2erenewalDate */] = nowMs;\r\n var renewalPeriodMs = _sessionRenewalMs;\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acqTimeLeftMs = (acq + _sessionExpirationMs) - nowMs;\r\n var cookie = [session.id, acq, nowMs];\r\n var maxAgeSec = 0;\r\n if (acqTimeLeftMs < renewalPeriodMs) {\r\n maxAgeSec = acqTimeLeftMs / 1000;\r\n }\r\n else {\r\n maxAgeSec = renewalPeriodMs / 1000;\r\n }\r\n var cookieDomain = config.cookieDomain || null;\r\n // if sessionExpirationMs is set to 0, it means the expiry is set to 0 for this session cookie\r\n // A cookie with 0 expiry in the session cookie will never expire for that browser session. If the browser is closed the cookie expires.\r\n // Depending on the browser, another instance does not inherit this cookie, however, another tab will\r\n _cookieManager.set(_storageNamePrefix, cookie[_DYN_JOIN /* @min:%2ejoin */](\"|\"), _sessionExpirationMs > 0 ? maxAgeSec : null, cookieDomain);\r\n _cookieUpdatedTimestamp = nowMs;\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n utlSetLocalStorage(_logger, _storageNamePrefix, [guid, acq, renewal][_DYN_JOIN /* @min:%2ejoin */](\"|\"));\r\n }\r\n });\r\n }\r\n// Removed Stub for _SessionManager.prototype.update.\r\n// Removed Stub for _SessionManager.prototype.backup.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n _SessionManager.__ieDyn=1;\n\n return _SessionManager;\r\n}());\r\nexport { _SessionManager };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { generateW3CId, getLocation } from \"@microsoft/applicationinsights-core-js\";\r\nvar TelemetryTrace = /** @class */ (function () {\r\n function TelemetryTrace(id, parentId, name, logger) {\r\n var _self = this;\r\n _self.traceID = id || generateW3CId();\r\n _self.parentID = parentId;\r\n var location = getLocation();\r\n if (!name && location && location.pathname) {\r\n name = location.pathname;\r\n }\r\n _self.name = dataSanitizeString(logger, name);\r\n }\r\n return TelemetryTrace;\r\n}());\r\nexport { TelemetryTrace };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { utlRemoveStorage } from \"@microsoft/applicationinsights-common\";\r\nimport { _throwInternal, newId, onConfigChange, safeGetCookieMgr, safeGetLogger, toISOString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDefine } from \"@nevware21/ts-utils\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_AUTHENTICATED_ID, _DYN_AUTH_USER_COOKIE_NAM7, _DYN_COOKIE_SEPARATOR, _DYN_GET_NEW_ID, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_JOIN, _DYN_LENGTH, _DYN_NAME_PREFIX, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"../__DynamicConstants\";\r\nfunction _validateUserInput(id) {\r\n // Validate:\r\n // 1. Id is a non-empty string.\r\n // 2. It does not contain special characters for cookies.\r\n if (typeof id !== \"string\" ||\r\n !id ||\r\n id.match(/,|;|=| |\\|/)) {\r\n return false;\r\n }\r\n return true;\r\n}\r\nvar User = /** @class */ (function () {\r\n function User(config, core, unloadHookContainer) {\r\n /**\r\n * A flag indicating whether this represents a new user\r\n */\r\n this.isNewUser = false;\r\n /**\r\n * A flag indicating whether the user cookie has been set\r\n */\r\n this.isUserCookieSet = false;\r\n var _logger = safeGetLogger(core);\r\n var _cookieManager = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n dynamicProto(User, this, function (_self) {\r\n // Define _self.config\r\n objDefine(_self, \"config\", {\r\n g: function () { return config; }\r\n });\r\n var unloadHook = onConfigChange(config, function () {\r\n var userCookiePostfix = config[_DYN_USER_COOKIE_POSTFIX /* @min:%2euserCookiePostfix */] || \"\";\r\n _storageNamePrefix = User.userCookieName + userCookiePostfix;\r\n // get userId or create new one if none exists\r\n var cookie = _cookieManager.get(_storageNamePrefix);\r\n if (cookie) {\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n var params = cookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (params[_DYN_LENGTH /* @min:%2elength */] > 0) {\r\n _self.id = params[0];\r\n // we already have a cookie\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = !!_self.id;\r\n }\r\n }\r\n if (!_self.id) {\r\n _self.id = _generateNewId();\r\n var newCookie = _generateNewCookie(_self.id);\r\n _setUserCookie(newCookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n // If we have an config.namePrefix() + ai_session in local storage this means the user actively removed our cookies.\r\n // We should respect their wishes and clear ourselves from local storage\r\n var name_1 = (config[_DYN_NAME_PREFIX /* @min:%2enamePrefix */] || \"\") + \"ai_session\";\r\n utlRemoveStorage(_logger, name_1);\r\n }\r\n // We still take the account id from the ctor param for backward compatibility.\r\n // But if the the customer set the accountId through the newer setAuthenticatedUserContext API, we will override it.\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = config[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] || undefined;\r\n // Get the auth user id and account id from the cookie if exists\r\n // Cookie is in the pattern: |\r\n var authCookie = _cookieManager.get(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n if (authCookie) {\r\n authCookie = decodeURI(authCookie);\r\n var authCookieString = authCookie.split(User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n if (authCookieString[0]) {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authCookieString[0];\r\n }\r\n if (authCookieString[_DYN_LENGTH /* @min:%2elength */] > 1 && authCookieString[1]) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = authCookieString[1];\r\n }\r\n }\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n function _generateNewId() {\r\n var theConfig = (config || {});\r\n var getNewId = theConfig[_DYN_GET_NEW_ID /* @min:%2egetNewId */] || newId;\r\n var id = getNewId(theConfig[_DYN_ID_LENGTH /* @min:%2eidLength */] ? config[_DYN_ID_LENGTH /* @min:%2eidLength */] : 22);\r\n return id;\r\n }\r\n function _generateNewCookie(userId) {\r\n var acqStr = toISOString(new Date());\r\n _self.accountAcquisitionDate = acqStr;\r\n _self[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = true;\r\n var newCookie = [userId, acqStr];\r\n return newCookie;\r\n }\r\n function _setUserCookie(cookie) {\r\n // without expiration, cookies expire at the end of the session\r\n // set it to 365 days from now\r\n // 365 * 24 * 60 * 60 = 31536000\r\n var oneYear = 31536000;\r\n _self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */] = _cookieManager.set(_storageNamePrefix, cookie, oneYear);\r\n }\r\n _self.setAuthenticatedUserContext = function (authenticatedUserId, accountId, storeInCookie) {\r\n if (storeInCookie === void 0) { storeInCookie = false; }\r\n // Validate inputs to ensure no cookie control characters.\r\n var isInvalidInput = !_validateUserInput(authenticatedUserId) || (accountId && !_validateUserInput(accountId));\r\n if (isInvalidInput) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 60 /* _eInternalMessageId.SetAuthContextFailedAccountName */, \"Setting auth user context failed. \" +\r\n \"User auth/account id should be of type string, and not contain commas, semi-colons, equal signs, spaces, or vertical-bars.\", true);\r\n return;\r\n }\r\n // Create cookie string.\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = authenticatedUserId;\r\n var authCookie = _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */];\r\n if (accountId) {\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = accountId;\r\n authCookie = [_self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], _self.accountId][_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]);\r\n }\r\n if (storeInCookie) {\r\n // Set the cookie. No expiration date because this is a session cookie (expires when browser closed).\r\n // Encoding the cookie to handle unexpected unicode characters.\r\n _cookieManager.set(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */], encodeURI(authCookie));\r\n }\r\n };\r\n /**\r\n * Clears the authenticated user id and the account id from the user context.\r\n * @returns {}\r\n */\r\n _self.clearAuthenticatedUserContext = function () {\r\n _self[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */] = null;\r\n _self[_DYN_ACCOUNT_ID /* @min:%2eaccountId */] = null;\r\n _cookieManager.del(User[_DYN_AUTH_USER_COOKIE_NAM7 /* @min:%2eauthUserCookieName */]);\r\n };\r\n _self[_DYN_UPDATE /* @min:%2eupdate */] = function (userId) {\r\n // Optimizations to avoid setting and processing the cookie when not needed\r\n if (_self.id !== userId || !_self[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n var user_id = userId ? userId : _generateNewId();\r\n var user_cookie = _generateNewCookie(user_id);\r\n _setUserCookie(user_cookie[_DYN_JOIN /* @min:%2ejoin */](User[_DYN_COOKIE_SEPARATOR /* @min:%2ecookieSeparator */]));\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for User.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.clearAuthenticatedUserContext.\r\n// Removed Stub for User.prototype.update.\r\n User.cookieSeparator = \"|\";\r\n User.userCookieName = \"ai_user\";\r\n User.authUserCookieName = \"ai_authUser\";\r\n return User;\r\n}());\r\nexport { User };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* TelemetryContext.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { CtxTagKeys, Extensions, PageView, dataSanitizeString } from \"@microsoft/applicationinsights-common\";\r\nimport { _InternalLogMessage, getSetValue, hasWindow, isNullOrUndefined, isString, objKeys, setValue } from \"@microsoft/applicationinsights-core-js\";\r\nimport { Application } from \"./Context/Application\";\r\nimport { Device } from \"./Context/Device\";\r\nimport { Internal } from \"./Context/Internal\";\r\nimport { Location } from \"./Context/Location\";\r\nimport { Session, _SessionManager } from \"./Context/Session\";\r\nimport { TelemetryTrace } from \"./Context/TelemetryTrace\";\r\nimport { User } from \"./Context/User\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_AUTHENTICATED_ID, _DYN_AUTOMATIC_SESSION, _DYN_GET_SESSION_ID, _DYN_LENGTH, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE } from \"./__DynamicConstants\";\r\nvar strExt = \"ext\";\r\nvar strTags = \"tags\";\r\nfunction _removeEmpty(target, name) {\r\n if (target && target[name] && objKeys(target[name])[_DYN_LENGTH /* @min:%2elength */] === 0) {\r\n delete target[name];\r\n }\r\n}\r\nfunction _nullResult() {\r\n return null;\r\n}\r\nvar TelemetryContext = /** @class */ (function () {\r\n function TelemetryContext(core, defaultConfig, previousTraceCtx, unloadHookContainer) {\r\n var _this = this;\r\n var logger = core.logger;\r\n dynamicProto(TelemetryContext, this, function (_self) {\r\n _self.appId = _nullResult;\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = _nullResult;\r\n _self.application = new Application();\r\n _self.internal = new Internal(defaultConfig, unloadHookContainer);\r\n if (hasWindow()) {\r\n _self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] = new _SessionManager(defaultConfig, core, unloadHookContainer);\r\n _self.device = new Device();\r\n _self.location = new Location();\r\n _self.user = new User(defaultConfig, core, unloadHookContainer);\r\n var traceId = void 0;\r\n var parentId = void 0;\r\n var name_1;\r\n if (previousTraceCtx) {\r\n traceId = previousTraceCtx.getTraceId();\r\n parentId = previousTraceCtx.getSpanId();\r\n name_1 = previousTraceCtx.getName();\r\n }\r\n _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */] = new TelemetryTrace(traceId, parentId, name_1, logger);\r\n _self.session = new Session();\r\n }\r\n _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */] = function () {\r\n var session = _self.session;\r\n var sesId = null;\r\n // If customer set session info, apply their context; otherwise apply context automatically generated\r\n if (session && isString(session.id)) {\r\n sesId = session.id;\r\n }\r\n else {\r\n // Gets the automatic session if it exists or an empty object\r\n var autoSession = (_self[_DYN_SESSION_MANAGER /* @min:%2esessionManager */] || {})[_DYN_AUTOMATIC_SESSION /* @min:%2eautomaticSession */];\r\n sesId = autoSession && isString(autoSession.id) ? autoSession.id : null;\r\n }\r\n return sesId;\r\n };\r\n _self[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */] = function (evt, itemCtx) {\r\n setValue(getSetValue(evt.ext, Extensions.AppExt), \"sesId\", _self[_DYN_GET_SESSION_ID /* @min:%2egetSessionId */](), isString);\r\n };\r\n _self[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */] = function (evt, itemCtx) {\r\n setValue(evt.ext, Extensions.OSExt, _self.os);\r\n };\r\n _self[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */] = function (evt, itemCtx) {\r\n var application = _self.application;\r\n if (application) {\r\n // evt.ext.app\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.applicationVersion, application.ver, isString);\r\n setValue(tags, CtxTagKeys.applicationBuild, application.build, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */] = function (evt, itemCtx) {\r\n var device = _self.device;\r\n if (device) {\r\n // evt.ext.device\r\n var extDevice = getSetValue(getSetValue(evt, strExt), Extensions.DeviceExt);\r\n setValue(extDevice, \"localId\", device.id, isString);\r\n setValue(extDevice, \"ip\", device.ip, isString);\r\n setValue(extDevice, \"model\", device.model, isString);\r\n setValue(extDevice, \"deviceClass\", device.deviceClass, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */] = function (evt, itemCtx) {\r\n var internal = _self.internal;\r\n if (internal) {\r\n var tags = getSetValue(evt, strTags);\r\n setValue(tags, CtxTagKeys.internalAgentVersion, internal.agentVersion, isString); // not mapped in CS 4.0\r\n setValue(tags, CtxTagKeys.internalSdkVersion, dataSanitizeString(logger, internal.sdkVersion, 64), isString);\r\n if (evt.baseType === _InternalLogMessage.dataType || evt.baseType === PageView.dataType) {\r\n setValue(tags, CtxTagKeys.internalSnippet, internal.snippetVer, isString);\r\n setValue(tags, CtxTagKeys.internalSdkSrc, internal.sdkSrc, isString);\r\n }\r\n }\r\n };\r\n _self[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */] = function (evt, itemCtx) {\r\n var location = _this.location;\r\n if (location) {\r\n setValue(getSetValue(evt, strTags, []), CtxTagKeys.locationIp, location.ip, isString);\r\n }\r\n };\r\n _self[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */] = function (evt, itemCtx) {\r\n var telemetryTrace = _self[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */];\r\n if (telemetryTrace) {\r\n var extTrace = getSetValue(getSetValue(evt, strExt), Extensions.TraceExt, { traceID: undefined, parentID: undefined });\r\n setValue(extTrace, \"traceID\", telemetryTrace.traceID, isString, isNullOrUndefined);\r\n setValue(extTrace, \"name\", telemetryTrace.name, isString, isNullOrUndefined);\r\n setValue(extTrace, \"parentID\", telemetryTrace.parentID, isString, isNullOrUndefined);\r\n }\r\n };\r\n _self.applyWebContext = function (evt, itemCtx) {\r\n var web = _this.web;\r\n if (web) {\r\n setValue(getSetValue(evt, strExt), Extensions.WebExt, web);\r\n }\r\n };\r\n _self[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */] = function (evt, itemCtx) {\r\n var user = _self.user;\r\n if (user) {\r\n var tags = getSetValue(evt, strTags, []);\r\n // stays in tags\r\n setValue(tags, CtxTagKeys.userAccountId, user[_DYN_ACCOUNT_ID /* @min:%2eaccountId */], isString);\r\n // CS 4.0\r\n var extUser = getSetValue(getSetValue(evt, strExt), Extensions.UserExt);\r\n setValue(extUser, \"id\", user.id, isString);\r\n setValue(extUser, \"authId\", user[_DYN_AUTHENTICATED_ID /* @min:%2eauthenticatedId */], isString);\r\n }\r\n };\r\n _self.cleanUp = function (evt, itemCtx) {\r\n var ext = evt.ext;\r\n if (ext) {\r\n _removeEmpty(ext, Extensions.DeviceExt);\r\n _removeEmpty(ext, Extensions.UserExt);\r\n _removeEmpty(ext, Extensions.WebExt);\r\n _removeEmpty(ext, Extensions.OSExt);\r\n _removeEmpty(ext, Extensions.AppExt);\r\n _removeEmpty(ext, Extensions.TraceExt);\r\n }\r\n };\r\n });\r\n }\r\n// Removed Stub for TelemetryContext.prototype.applySessionContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperatingSystemContxt.\r\n// Removed Stub for TelemetryContext.prototype.applyApplicationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyDeviceContext.\r\n// Removed Stub for TelemetryContext.prototype.applyInternalContext.\r\n// Removed Stub for TelemetryContext.prototype.applyLocationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyOperationContext.\r\n// Removed Stub for TelemetryContext.prototype.applyWebContext.\r\n// Removed Stub for TelemetryContext.prototype.applyUserContext.\r\n// Removed Stub for TelemetryContext.prototype.cleanUp.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n TelemetryContext.__ieDyn=1;\n\n return TelemetryContext;\r\n}());\r\nexport { TelemetryContext };\r\n","/*\n * Application Insights JavaScript SDK - Properties Plugin, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n/**\r\n* PropertiesPlugin.ts\r\n* @copyright Microsoft 2018\r\n*/\r\nvar _a;\r\nimport { __extendsFn as __extends } from \"@microsoft/applicationinsights-shims\";\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BreezeChannelIdentifier, PageView, PropertiesPluginIdentifier, createDistributedTraceContextFromTrace, utlSetStoragePrefix } from \"@microsoft/applicationinsights-common\";\r\nimport { BaseTelemetryPlugin, _InternalLogMessage, _logInternalMessage, createProcessTelemetryContext, getNavigator, getSetValue, isNullOrUndefined, onConfigChange } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze, objDefine } from \"@nevware21/ts-utils\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { _DYN_ACCOUNT_ID, _DYN_APPLY_APPLICATION_CO1, _DYN_APPLY_DEVICE_CONTEXT, _DYN_APPLY_INTERNAL_CONTE5, _DYN_APPLY_LOCATION_CONTE4, _DYN_APPLY_OPERATING_SYST3, _DYN_APPLY_OPERATION_CONT2, _DYN_APPLY_SESSION_CONTEX0, _DYN_APPLY_USER_CONTEXT, _DYN_GET_NEW_ID, _DYN_GET_SESSION_ID, _DYN_GET_TRACE_CTX, _DYN_ID_LENGTH, _DYN_IS_NEW_USER, _DYN_IS_USER_COOKIE_SET, _DYN_NAME_PREFIX, _DYN_SESSION_COOKIE_POSTF6, _DYN_SESSION_MANAGER, _DYN_TELEMETRY_TRACE, _DYN_UPDATE, _DYN_USER_COOKIE_POSTFIX } from \"./__DynamicConstants\";\r\nvar undefString;\r\nvar nullValue = null;\r\nvar _defaultConfig = objDeepFreeze((_a = {},\r\n _a[_DYN_ACCOUNT_ID /* @min:accountId */] = nullValue,\r\n _a.sessionRenewalMs = 30 * 60 * 1000,\r\n _a.samplingPercentage = 100,\r\n _a.sessionExpirationMs = 24 * 60 * 60 * 1000,\r\n _a.cookieDomain = nullValue,\r\n _a.sdkExtension = nullValue,\r\n _a.isBrowserLinkTrackingEnabled = false,\r\n _a.appId = nullValue,\r\n _a[_DYN_GET_SESSION_ID /* @min:getSessionId */] = nullValue,\r\n _a[_DYN_NAME_PREFIX /* @min:namePrefix */] = undefString,\r\n _a[_DYN_SESSION_COOKIE_POSTF6 /* @min:sessionCookiePostfix */] = undefString,\r\n _a[_DYN_USER_COOKIE_POSTFIX /* @min:userCookiePostfix */] = undefString,\r\n _a[_DYN_ID_LENGTH /* @min:idLength */] = 22,\r\n _a[_DYN_GET_NEW_ID /* @min:getNewId */] = nullValue,\r\n _a));\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.priority = 110;\r\n _this.identifier = PropertiesPluginIdentifier;\r\n var _extensionConfig;\r\n var _distributedTraceCtx;\r\n var _previousTraceCtx;\r\n var _context;\r\n var _disableUserInitMessage;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n objDefine(_self, \"context\", {\r\n g: function () {\r\n return _context;\r\n }\r\n });\r\n _self.initialize = function (config, core, extensions, pluginChain) {\r\n _base.initialize(config, core, extensions, pluginChain);\r\n _populateDefaults(config);\r\n };\r\n /**\r\n * Add Part A fields to the event\r\n * @param event - The event that needs to be processed\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n if (!isNullOrUndefined(event)) {\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n // If the envelope is PageView, reset the internal message count so that we can send internal telemetry for the new page.\r\n if (event.name === PageView.envelopeType) {\r\n itemCtx.diagLog().resetInternalMessageCount();\r\n }\r\n var theContext = (_context || {});\r\n if (theContext.session) {\r\n // If customer did not provide custom session id update the session manager\r\n if (typeof _context.session.id !== \"string\" && theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */]) {\r\n theContext[_DYN_SESSION_MANAGER /* @min:%2esessionManager */][_DYN_UPDATE /* @min:%2eupdate */]();\r\n }\r\n }\r\n var userCtx = theContext.user;\r\n if (userCtx && !userCtx[_DYN_IS_USER_COOKIE_SET /* @min:%2eisUserCookieSet */]) {\r\n userCtx[_DYN_UPDATE /* @min:%2eupdate */](theContext.user.id);\r\n }\r\n _processTelemetryInternal(event, itemCtx);\r\n if (userCtx && userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */]) {\r\n userCtx[_DYN_IS_NEW_USER /* @min:%2eisNewUser */] = false;\r\n if (!_disableUserInitMessage) {\r\n var message = new _InternalLogMessage(72 /* _eInternalMessageId.SendBrowserInfoOnUserInit */, ((getNavigator() || {}).userAgent || \"\"));\r\n _logInternalMessage(itemCtx.diagLog(), 1 /* eLoggingSeverity.CRITICAL */, message);\r\n }\r\n }\r\n _self.processNext(event, itemCtx);\r\n }\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */]) {\r\n var traceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n if (traceCtx === _distributedTraceCtx) {\r\n core.setTraceCtx(_previousTraceCtx);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n function _initDefaults() {\r\n _extensionConfig = null;\r\n _distributedTraceCtx = null;\r\n _previousTraceCtx = null;\r\n _context = null;\r\n _disableUserInitMessage = true;\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n if (config.storagePrefix) {\r\n utlSetStoragePrefix(config.storagePrefix);\r\n }\r\n _disableUserInitMessage = config.disableUserInitMessage === false ? false : true;\r\n _extensionConfig = ctx.getExtCfg(identifier, _defaultConfig);\r\n // Test hook to allow accessing the internal values -- explicitly not defined as an available property on the class\r\n _self[\"_extConfig\"] = _extensionConfig;\r\n }));\r\n // This is outside of the onConfigChange as we don't want to update (replace) these values whenever a referenced config item changes\r\n _previousTraceCtx = core[_DYN_GET_TRACE_CTX /* @min:%2egetTraceCtx */](false);\r\n _context = new TelemetryContext(core, _extensionConfig, _previousTraceCtx, _self._unloadHooks);\r\n _distributedTraceCtx = createDistributedTraceContextFromTrace(_self.context[_DYN_TELEMETRY_TRACE /* @min:%2etelemetryTrace */], _previousTraceCtx);\r\n core.setTraceCtx(_distributedTraceCtx);\r\n _self.context.appId = function () {\r\n var breezeChannel = core.getPlugin(BreezeChannelIdentifier);\r\n return breezeChannel ? breezeChannel.plugin[\"_appId\"] : null;\r\n };\r\n }\r\n function _processTelemetryInternal(evt, itemCtx) {\r\n // Set Part A fields\r\n getSetValue(evt, \"tags\", []);\r\n getSetValue(evt, \"ext\", {});\r\n var ctx = _self.context;\r\n ctx[_DYN_APPLY_SESSION_CONTEX0 /* @min:%2eapplySessionContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_APPLICATION_CO1 /* @min:%2eapplyApplicationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_DEVICE_CONTEXT /* @min:%2eapplyDeviceContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATION_CONT2 /* @min:%2eapplyOperationContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_USER_CONTEXT /* @min:%2eapplyUserContext */](evt, itemCtx);\r\n ctx[_DYN_APPLY_OPERATING_SYST3 /* @min:%2eapplyOperatingSystemContxt */](evt, itemCtx);\r\n ctx.applyWebContext(evt, itemCtx);\r\n ctx[_DYN_APPLY_LOCATION_CONTE4 /* @min:%2eapplyLocationContext */](evt, itemCtx); // legacy tags\r\n ctx[_DYN_APPLY_INTERNAL_CONTE5 /* @min:%2eapplyInternalContext */](evt, itemCtx); // legacy tags\r\n ctx.cleanUp(evt, itemCtx);\r\n }\r\n });\r\n return _this;\r\n }\r\n// Removed Stub for PropertiesPlugin.prototype.initialize.\r\n// Removed Stub for PropertiesPlugin.prototype.processTelemetry.\r\n // This is a workaround for an IE bug when using dynamicProto() with classes that don't have any\n // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.\n PropertiesPlugin.__ieDyn=1;\n\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport default PropertiesPlugin;\r\n","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// ###################################################################################################################################################\r\n// Note: DON'T Export these const from the package as we are still targeting IE/ES5 this will export a mutable variables that someone could change ###\r\n// ###################################################################################################################################################\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nvar _AUTHENTICATED_USER_CONTEXT = \"AuthenticatedUserContext\";\r\nvar _TRACK = \"track\";\r\nexport var STR_EMPTY = \"\";\r\nexport var STR_SNIPPET = \"snippet\";\r\nexport var STR_GET_COOKIE_MGR = \"getCookieMgr\";\r\nexport var STR_START_TRACK_PAGE = \"startTrackPage\";\r\nexport var STR_STOP_TRACK_PAGE = \"stopTrackPage\";\r\nexport var STR_FLUSH = \"flush\";\r\nexport var STR_START_TRACK_EVENT = \"startTrackEvent\";\r\nexport var STR_STOP_TRACK_EVENT = \"stopTrackEvent\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZER = \"addTelemetryInitializer\";\r\nexport var STR_ADD_TELEMETRY_INITIALIZERS = STR_ADD_TELEMETRY_INITIALIZER + \"s\";\r\nexport var STR_POLL_INTERNAL_LOGS = \"pollInternalLogs\";\r\nexport var STR_GET_PLUGIN = \"getPlugin\";\r\nexport var STR_EVT_NAMESPACE = \"evtNamespace\";\r\nexport var STR_TRACK_EVENT = _TRACK + \"Event\";\r\nexport var STR_TRACK_TRACE = _TRACK + \"Trace\";\r\nexport var STR_TRACK_METRIC = _TRACK + \"Metric\";\r\nexport var STR_TRACK_PAGE_VIEW = _TRACK + \"PageView\";\r\nexport var STR_TRACK_EXCEPTION = _TRACK + \"Exception\";\r\nexport var STR_TRACK_DEPENDENCY_DATA = _TRACK + \"DependencyData\";\r\nexport var STR_SET_AUTHENTICATED_USER_CONTEXT = \"set\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var STR_CLEAR_AUTHENTICATED_USER_CONTEXT = \"clear\" + _AUTHENTICATED_USER_CONTEXT;\r\nexport var CONFIG_ENDPOINT_URL = \"https://js.monitor.azure.com/scripts/b/ai.config.1.cfg.json\";\r\n","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n\"use strict\";\r\nvar _a, _b, _c, _d;\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { AnalyticsPlugin } from \"@microsoft/applicationinsights-analytics-js\";\r\nimport { CfgSyncPlugin } from \"@microsoft/applicationinsights-cfgsync-js\";\r\nimport { Sender } from \"@microsoft/applicationinsights-channel-js\";\r\nimport { AnalyticsPluginIdentifier, DEFAULT_BREEZE_PATH, PropertiesPluginIdentifier, ThrottleMgr, parseConnectionString } from \"@microsoft/applicationinsights-common\";\r\nimport { AppInsightsCore, _throwInternal, addPageHideEventListener, addPageUnloadEventListener, cfgDfMerge, cfgDfValidate, createDynamicConfig, createProcessTelemetryContext, createUniqueNamespace, doPerf, hasDocument, hasWindow, isArray, isFeatureEnabled, isFunction, isNullOrUndefined, isReactNative, isString, mergeEvtNamespace, onConfigChange, proxyAssign, proxyFunctions, removePageHideEventListener, removePageUnloadEventListener } from \"@microsoft/applicationinsights-core-js\";\r\nimport { AjaxPlugin as DependenciesPlugin } from \"@microsoft/applicationinsights-dependencies-js\";\r\nimport { PropertiesPlugin } from \"@microsoft/applicationinsights-properties-js\";\r\nimport { createPromise, createSyncPromise, doAwaitResponse } from \"@nevware21/ts-async\";\r\nimport { arrForEach, arrIndexOf, isPromiseLike, objDefine, objForEachKey, strIndexOf, throwUnsupported } from \"@nevware21/ts-utils\";\r\nimport { CONFIG_ENDPOINT_URL, STR_ADD_TELEMETRY_INITIALIZER, STR_CLEAR_AUTHENTICATED_USER_CONTEXT, STR_EVT_NAMESPACE, STR_FLUSH, STR_GET_COOKIE_MGR, STR_GET_PLUGIN, STR_POLL_INTERNAL_LOGS, STR_SET_AUTHENTICATED_USER_CONTEXT, STR_SNIPPET, STR_START_TRACK_EVENT, STR_START_TRACK_PAGE, STR_STOP_TRACK_EVENT, STR_STOP_TRACK_PAGE, STR_TRACK_DEPENDENCY_DATA, STR_TRACK_EVENT, STR_TRACK_EXCEPTION, STR_TRACK_METRIC, STR_TRACK_PAGE_VIEW, STR_TRACK_TRACE } from \"./InternalConstants\";\r\nimport { _DYN_ADD_HOUSEKEEPING_BEF2, _DYN_CONNECTION_STRING, _DYN_CONTEXT, _DYN_ENDPOINT_URL, _DYN_INGESTIONENDPOINT, _DYN_INSTRUMENTATIONKEY0, _DYN_INSTRUMENTATION_KEY, _DYN_ONUNLOAD_FLUSH, _DYN_QUEUE, _DYN_SEND_MESSAGE, _DYN_UPDATE_SNIPPET_DEFIN3, _DYN_USER_OVERRIDE_ENDPOI1, _DYN_VERSION } from \"./__DynamicConstants\";\r\nvar _internalSdkSrc;\r\n// This is an exclude list of properties that should not be updated during initialization\r\n// They include a combination of private and internal property names\r\nvar _ignoreUpdateSnippetProperties = [\r\n STR_SNIPPET, \"dependencies\", \"properties\", \"_snippetVersion\", \"appInsightsNew\", \"getSKUDefaults\"\r\n];\r\nvar IKEY_USAGE = \"iKeyUsage\";\r\nvar CDN_USAGE = \"CdnUsage\";\r\nvar SDK_LOADER_VER = \"SdkLoaderVer\";\r\nvar UNDEFINED_VALUE = undefined;\r\nvar default_limit = {\r\n samplingRate: 100,\r\n maxSendNumber: 1\r\n};\r\nvar default_interval = {\r\n monthInterval: 3,\r\n daysOfMonth: [28]\r\n};\r\nvar default_throttle_config = {\r\n disabled: true,\r\n limit: cfgDfMerge(default_limit),\r\n interval: cfgDfMerge(default_interval)\r\n};\r\n// We need to include all properties that we only reference that we want to be dynamically updatable here\r\n// So they are converted even when not specified in the passed configuration\r\nvar defaultConfigValues = (_a = {},\r\n _a[_DYN_CONNECTION_STRING /* @min:connectionString */] = UNDEFINED_VALUE,\r\n _a[_DYN_ENDPOINT_URL /* @min:endpointUrl */] = UNDEFINED_VALUE,\r\n _a[_DYN_INSTRUMENTATION_KEY /* @min:instrumentationKey */] = UNDEFINED_VALUE,\r\n _a[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:userOverrideEndpointUrl */] = UNDEFINED_VALUE,\r\n _a.diagnosticLogInterval = cfgDfValidate(_chkDiagLevel, 10000),\r\n _a.featureOptIn = (_b = {},\r\n _b[IKEY_USAGE] = { mode: 3 /* FeatureOptInMode.enable */ },\r\n _b[CDN_USAGE] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b[SDK_LOADER_VER] = { mode: 2 /* FeatureOptInMode.disable */ },\r\n _b),\r\n _a.throttleMgrCfg = cfgDfMerge((_c = {},\r\n _c[109 /* _eInternalMessageId.DefaultThrottleMsgKey */] = cfgDfMerge(default_throttle_config),\r\n _c[106 /* _eInternalMessageId.InstrumentationKeyDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c[111 /* _eInternalMessageId.SdkLdrUpdate */] = cfgDfMerge(default_throttle_config),\r\n _c[110 /* _eInternalMessageId.CdnDeprecation */] = cfgDfMerge(default_throttle_config),\r\n _c)),\r\n _a.extensionConfig = cfgDfMerge((_d = {},\r\n _d[\"AppInsightsCfgSyncPlugin\"] = cfgDfMerge({\r\n cfgUrl: CONFIG_ENDPOINT_URL,\r\n syncMode: 2 /* ICfgSyncMode.Receive */\r\n }),\r\n _d)),\r\n _a);\r\nfunction _chkDiagLevel(value) {\r\n // Make sure we have a value > 0\r\n return value && value > 0;\r\n}\r\n/**\r\n * Application Insights API\r\n * @group Entrypoint\r\n * @group Classes\r\n * @class Initialization\r\n * @implements {IApplicationInsights}\r\n */\r\nvar AppInsightsSku = /** @class */ (function () {\r\n function AppInsightsSku(snippet) {\r\n var _this = this;\r\n // NOTE!: DON'T set default values here, instead set them in the _initDefaults() function as it is also called during teardown()\r\n var dependencies;\r\n var properties;\r\n var _sender;\r\n var _snippetVersion;\r\n var _evtNamespace;\r\n var _houseKeepingNamespace;\r\n var _core;\r\n var _config;\r\n var _analyticsPlugin;\r\n var _cfgSyncPlugin;\r\n var _throttleMgr;\r\n var _iKeySentMessage;\r\n var _cdnSentMessage;\r\n var _sdkVerSentMessage;\r\n dynamicProto(AppInsightsSku, this, function (_self) {\r\n _initDefaults();\r\n objDefine(_self, \"config\", {\r\n g: function () {\r\n return _config;\r\n }\r\n });\r\n arrForEach([\"pluginVersionStringArr\", \"pluginVersionString\"], function (key) {\r\n objDefine(_self, key, {\r\n g: function () {\r\n if (_core) {\r\n return _core[key];\r\n }\r\n return null;\r\n }\r\n });\r\n });\r\n // initialize the queue and config in case they are undefined\r\n _snippetVersion = \"\" + (snippet.sv || snippet[_DYN_VERSION /* @min:%2eversion */] || \"\");\r\n snippet[_DYN_QUEUE /* @min:%2equeue */] = snippet[_DYN_QUEUE /* @min:%2equeue */] || [];\r\n snippet[_DYN_VERSION /* @min:%2eversion */] = snippet[_DYN_VERSION /* @min:%2eversion */] || 2.0; // Default to new version\r\n var cfgHandler = createDynamicConfig(snippet.config || {}, defaultConfigValues);\r\n _config = cfgHandler.cfg;\r\n _analyticsPlugin = new AnalyticsPlugin();\r\n objDefine(_self, \"appInsights\", {\r\n g: function () {\r\n return _analyticsPlugin;\r\n }\r\n });\r\n properties = new PropertiesPlugin();\r\n dependencies = new DependenciesPlugin();\r\n _sender = new Sender();\r\n _core = new AppInsightsCore();\r\n objDefine(_self, \"core\", {\r\n g: function () {\r\n return _core;\r\n }\r\n });\r\n // Will get recalled if any referenced values are changed\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var configCs = _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */];\r\n function _parseCs() {\r\n return createSyncPromise(function (resolve, reject) {\r\n doAwaitResponse(configCs, function (res) {\r\n var curCs = res && res.value;\r\n var parsedCs = null;\r\n if (!res.rejected && curCs) {\r\n // replace cs with resolved values in case of circular promises\r\n _config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] = curCs;\r\n parsedCs = parseConnectionString(curCs);\r\n }\r\n // if can't resolve cs promise, null will be returned\r\n resolve(parsedCs);\r\n });\r\n });\r\n }\r\n if (isPromiseLike(configCs)) {\r\n var ikeyPromise = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var ikey = _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n ikey = cs && cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || ikey;\r\n resolve(ikey);\r\n }).catch(function (e) {\r\n // parseCs will always resolve(unless timeout)\r\n // return null in case any error happens\r\n resolve(null);\r\n });\r\n });\r\n var url = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */];\r\n if (isNullOrUndefined(url)) {\r\n url = createSyncPromise(function (resolve, reject) {\r\n _parseCs().then(function (cs) {\r\n var url = _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n var ingest = cs && cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n url = ingest ? ingest + DEFAULT_BREEZE_PATH : url;\r\n resolve(url);\r\n }).catch(function (e) {\r\n // parseCs will always resolve(unless timeout)\r\n // return null in case any error happens\r\n resolve(null);\r\n });\r\n });\r\n }\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = ikeyPromise;\r\n _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */] = url;\r\n }\r\n if (isString(configCs) && configCs) {\r\n // confirm if promiselike function present\r\n // handle cs promise here\r\n // add cases to oneNote\r\n var cs = parseConnectionString(configCs);\r\n var ingest = cs[_DYN_INGESTIONENDPOINT /* @min:%2eingestionendpoint */];\r\n _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : ingest + DEFAULT_BREEZE_PATH; // add /v2/track\r\n _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */] = cs[_DYN_INSTRUMENTATIONKEY0 /* @min:%2einstrumentationkey */] || _config[_DYN_INSTRUMENTATION_KEY /* @min:%2einstrumentationKey */];\r\n }\r\n // userOverrideEndpointUrl have the highest priority\r\n _config.endpointUrl = _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] ? _config[_DYN_USER_OVERRIDE_ENDPOI1 /* @min:%2euserOverrideEndpointUrl */] : _config[_DYN_ENDPOINT_URL /* @min:%2eendpointUrl */];\r\n }));\r\n _self[STR_SNIPPET /* @min:%2esnippet */] = snippet;\r\n _self[STR_FLUSH /* @min:%2eflush */] = function (async, callBack) {\r\n if (async === void 0) { async = true; }\r\n var result;\r\n doPerf(_core, function () { return \"AISKU.flush\"; }, function () {\r\n if (async && !callBack) {\r\n result = createPromise(function (resolve) {\r\n callBack = resolve;\r\n });\r\n }\r\n var waiting = 1;\r\n var flushDone = function () {\r\n waiting--;\r\n if (waiting === 0) {\r\n callBack();\r\n }\r\n };\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel) {\r\n waiting++;\r\n channel[STR_FLUSH /* @min:%2eflush */](async, flushDone);\r\n }\r\n });\r\n // decrement the initial \"waiting\"\r\n flushDone();\r\n }, null, async);\r\n return result;\r\n };\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */] = function (async) {\r\n if (async === void 0) { async = true; }\r\n arrForEach(_core.getChannels(), function (channel) {\r\n if (channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]) {\r\n channel[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */]();\r\n }\r\n else {\r\n channel[STR_FLUSH /* @min:%2eflush */](async);\r\n }\r\n });\r\n };\r\n _self.loadAppInsights = function (legacyMode, logger, notificationManager) {\r\n if (legacyMode === void 0) { legacyMode = false; }\r\n if (legacyMode) {\r\n throwUnsupported(\"Legacy Mode is no longer supported\");\r\n }\r\n function _updateSnippetProperties(snippet) {\r\n if (snippet) {\r\n var snippetVer = \"\";\r\n if (!isNullOrUndefined(_snippetVersion)) {\r\n snippetVer += _snippetVersion;\r\n }\r\n if (_self[_DYN_CONTEXT /* @min:%2econtext */] && _self[_DYN_CONTEXT /* @min:%2econtext */].internal) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.snippetVer = snippetVer || \"-\";\r\n }\r\n // apply updated properties to the global instance (snippet)\r\n objForEachKey(_self, function (field, value) {\r\n if (isString(field) &&\r\n !isFunction(value) &&\r\n field && field[0] !== \"_\" && // Don't copy \"internal\" values\r\n arrIndexOf(_ignoreUpdateSnippetProperties, field) === -1) {\r\n if (snippet[field] !== value) {\r\n snippet[field] = value;\r\n }\r\n }\r\n });\r\n }\r\n }\r\n doPerf(_self.core, function () { return \"AISKU.loadAppInsights\"; }, function () {\r\n // initialize core\r\n _core.initialize(_config, [_sender, properties, dependencies, _analyticsPlugin, _cfgSyncPlugin], logger, notificationManager);\r\n objDefine(_self, \"context\", {\r\n g: function () { return properties[_DYN_CONTEXT /* @min:%2econtext */]; }\r\n });\r\n if (!_throttleMgr) {\r\n _throttleMgr = new ThrottleMgr(_core);\r\n }\r\n var sdkSrc = _findSdkSourceFile();\r\n if (sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */]) {\r\n _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc = sdkSrc;\r\n }\r\n _updateSnippetProperties(_self[STR_SNIPPET /* @min:%2esnippet */]);\r\n // Empty queue of all api calls logged prior to sdk download\r\n _self.emptyQueue();\r\n _self[STR_POLL_INTERNAL_LOGS /* @min:%2epollInternalLogs */]();\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF2 /* @min:%2eaddHousekeepingBeforeUnload */](_self);\r\n _addUnloadHook(onConfigChange(cfgHandler, function () {\r\n var defaultEnable = false;\r\n if (_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */]) {\r\n defaultEnable = !_config.throttleMgrCfg[109 /* _eInternalMessageId.DefaultThrottleMsgKey */].disabled;\r\n }\r\n if (!_throttleMgr.isReady() && _config.extensionConfig && _config.extensionConfig[_cfgSyncPlugin.identifier] && defaultEnable) {\r\n // set ready state to true will automatically trigger flush()\r\n _throttleMgr.onReadyState(true);\r\n }\r\n var result;\r\n if (!_iKeySentMessage && !_config[_DYN_CONNECTION_STRING /* @min:%2econnectionString */] && isFeatureEnabled(IKEY_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](106 /* _eInternalMessageId.InstrumentationKeyDeprecation */, \"See Instrumentation key support at aka.ms/IkeyMigrate\");\r\n _iKeySentMessage = true;\r\n }\r\n if (!_cdnSentMessage && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc && _self[_DYN_CONTEXT /* @min:%2econtext */].internal.sdkSrc.indexOf(\"az416426\") != -1 && isFeatureEnabled(CDN_USAGE, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](110 /* _eInternalMessageId.CdnDeprecation */, \"See Cdn support notice at aka.ms/JsActiveCdn\");\r\n _cdnSentMessage = true;\r\n }\r\n if (!_sdkVerSentMessage && parseInt(_snippetVersion) < 6 && isFeatureEnabled(SDK_LOADER_VER, _config)) {\r\n result = _throttleMgr[_DYN_SEND_MESSAGE /* @min:%2esendMessage */](111 /* _eInternalMessageId.SdkLdrUpdate */, \"An updated Sdk Loader is available, see aka.ms/SnippetVer\");\r\n _sdkVerSentMessage = true;\r\n }\r\n }));\r\n });\r\n return _self;\r\n };\r\n _self[_DYN_UPDATE_SNIPPET_DEFIN3 /* @min:%2eupdateSnippetDefinitions */] = function (snippet) {\r\n // apply full appInsights to the global instance\r\n // Note: This must be called before loadAppInsights is called\r\n proxyAssign(snippet, _self, function (name) {\r\n // Not excluding names prefixed with \"_\" as we need to proxy some functions like _onError\r\n return name && arrIndexOf(_ignoreUpdateSnippetProperties, name) === -1;\r\n });\r\n };\r\n _self.emptyQueue = function () {\r\n // call functions that were queued before the main script was loaded\r\n try {\r\n if (isArray(_self.snippet[_DYN_QUEUE /* @min:%2equeue */])) {\r\n // note: do not check length in the for-loop conditional in case something goes wrong and the stub methods are not overridden.\r\n var length_1 = _self.snippet[_DYN_QUEUE /* @min:%2equeue */].length;\r\n for (var i = 0; i < length_1; i++) {\r\n var call = _self.snippet[_DYN_QUEUE /* @min:%2equeue */][i];\r\n call();\r\n }\r\n _self.snippet[_DYN_QUEUE /* @min:%2equeue */] = undefined;\r\n delete _self.snippet[_DYN_QUEUE /* @min:%2equeue */];\r\n }\r\n }\r\n catch (exception) {\r\n var properties_1 = {};\r\n if (exception && isFunction(exception.toString)) {\r\n properties_1.exception = exception.toString();\r\n }\r\n // need from core\r\n // Microsoft.ApplicationInsights._InternalLogging.throwInternal(\r\n // eLoggingSeverity.WARNING,\r\n // _eInternalMessageId.FailedToSendQueuedTelemetry,\r\n // \"Failed to send queued telemetry\",\r\n // properties);\r\n }\r\n };\r\n _self[_DYN_ADD_HOUSEKEEPING_BEF2 /* @min:%2eaddHousekeepingBeforeUnload */] = function (appInsightsInstance) {\r\n // Add callback to push events when the user navigates away\r\n if (hasWindow() || hasDocument()) {\r\n var performHousekeeping_1 = function () {\r\n // Adds the ability to flush all data before the page unloads.\r\n // Note: This approach tries to push a sync request with all the pending events onbeforeunload.\r\n // Firefox does not respect this.Other browsers DO push out the call with < 100% hit rate.\r\n // Telemetry here will help us analyze how effective this approach is.\r\n // Another approach would be to make this call sync with a acceptable timeout to reduce the\r\n // impact on user experience.\r\n // appInsightsInstance.context._sender.triggerSend();\r\n appInsightsInstance[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](false);\r\n // Back up the current session to local storage\r\n // This lets us close expired sessions after the cookies themselves expire\r\n if (isFunction(_self.core[STR_GET_PLUGIN /* @min:%2egetPlugin */])) {\r\n var loadedPlugin = _this.core[STR_GET_PLUGIN /* @min:%2egetPlugin */](PropertiesPluginIdentifier);\r\n if (loadedPlugin) {\r\n var propertiesPlugin = loadedPlugin.plugin;\r\n if (propertiesPlugin && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */] && propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager) {\r\n propertiesPlugin[_DYN_CONTEXT /* @min:%2econtext */]._sessionManager.backup();\r\n }\r\n }\r\n }\r\n };\r\n var added_1 = false;\r\n if (!_houseKeepingNamespace) {\r\n _houseKeepingNamespace = mergeEvtNamespace(_evtNamespace, _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */] && _core[STR_EVT_NAMESPACE /* @min:%2eevtNamespace */]());\r\n }\r\n // Will be recalled if any referenced config properties change\r\n _addUnloadHook(onConfigChange(_config, function (details) {\r\n var coreConfig = details.cfg;\r\n var analyticsPlugin = appInsightsInstance.appInsights;\r\n var ctx = createProcessTelemetryContext(null, coreConfig, analyticsPlugin.core);\r\n var extConfig = ctx.getExtCfg(analyticsPlugin.identifier || AnalyticsPluginIdentifier);\r\n // As we could get recalled, remove any previously registered event handlers first\r\n _removePageEventHandlers();\r\n var excludePageUnloadEvents = coreConfig.disablePageUnloadEvents;\r\n if (!extConfig.disableFlushOnBeforeUnload) {\r\n // Hook the unload event for the document, window and body to ensure that the client events are flushed to the server\r\n // As just hooking the window does not always fire (on chrome) for page navigation's.\r\n if (addPageUnloadEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // We also need to hook the pagehide and visibilitychange events as not all versions of Safari support load/unload events.\r\n if (addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace)) {\r\n added_1 = true;\r\n }\r\n // A reactNative app may not have a window and therefore the beforeunload/pagehide events -- so don't\r\n // log the failure in this case\r\n if (!added_1 && !isReactNative()) {\r\n _throwInternal(_core.logger, 1 /* eLoggingSeverity.CRITICAL */, 19 /* _eInternalMessageId.FailedToAddHandlerForOnBeforeUnload */, \"Could not add handler for beforeunload and pagehide\");\r\n }\r\n }\r\n if (!added_1 && !extConfig.disableFlushOnUnload) {\r\n // If we didn't add the normal set then attempt to add the pagehide and visibilitychange only\r\n addPageHideEventListener(performHousekeeping_1, excludePageUnloadEvents, _houseKeepingNamespace);\r\n }\r\n }));\r\n }\r\n };\r\n _self.getSender = function () {\r\n return _sender;\r\n };\r\n _self.unload = function (isAsync, unloadComplete, cbTimeout) {\r\n var unloadDone = false;\r\n var result;\r\n if (isAsync && !unloadComplete) {\r\n result = createPromise(function (resolve) {\r\n // Set the callback to the promise resolve callback\r\n unloadComplete = resolve;\r\n });\r\n }\r\n function _unloadCallback(unloadState) {\r\n if (!unloadDone) {\r\n unloadDone = true;\r\n _initDefaults();\r\n unloadComplete && unloadComplete(unloadState);\r\n }\r\n }\r\n _self[_DYN_ONUNLOAD_FLUSH /* @min:%2eonunloadFlush */](isAsync);\r\n _removePageEventHandlers();\r\n _core.unload && _core.unload(isAsync, _unloadCallback, cbTimeout);\r\n return result;\r\n };\r\n proxyFunctions(_self, _analyticsPlugin, [\r\n STR_GET_COOKIE_MGR,\r\n STR_TRACK_EVENT,\r\n STR_TRACK_PAGE_VIEW,\r\n \"trackPageViewPerformance\",\r\n STR_TRACK_EXCEPTION,\r\n \"_onerror\",\r\n STR_TRACK_TRACE,\r\n STR_TRACK_METRIC,\r\n STR_START_TRACK_PAGE,\r\n STR_STOP_TRACK_PAGE,\r\n STR_START_TRACK_EVENT,\r\n STR_STOP_TRACK_EVENT\r\n ]);\r\n proxyFunctions(_self, _getCurrentDependencies, [\r\n STR_TRACK_DEPENDENCY_DATA,\r\n \"addDependencyListener\",\r\n \"addDependencyInitializer\"\r\n ]);\r\n proxyFunctions(_self, _core, [\r\n STR_ADD_TELEMETRY_INITIALIZER,\r\n STR_POLL_INTERNAL_LOGS,\r\n \"stopPollingInternalLogs\",\r\n STR_GET_PLUGIN,\r\n \"addPlugin\",\r\n STR_EVT_NAMESPACE,\r\n \"addUnloadCb\",\r\n \"getTraceCtx\",\r\n \"updateCfg\",\r\n \"onCfgChange\"\r\n ]);\r\n proxyFunctions(_self, function () {\r\n var context = properties[_DYN_CONTEXT /* @min:%2econtext */];\r\n return context ? context.user : null;\r\n }, [\r\n STR_SET_AUTHENTICATED_USER_CONTEXT,\r\n STR_CLEAR_AUTHENTICATED_USER_CONTEXT\r\n ]);\r\n // Using a function to support the dynamic adding / removal of plugins, so this will always return the current value\r\n function _getCurrentDependencies() {\r\n return dependencies;\r\n }\r\n function _initDefaults() {\r\n _evtNamespace = createUniqueNamespace(\"AISKU\");\r\n _houseKeepingNamespace = null;\r\n dependencies = null;\r\n properties = null;\r\n _sender = null;\r\n _snippetVersion = null;\r\n _throttleMgr = null;\r\n _iKeySentMessage = false;\r\n _cdnSentMessage = false;\r\n _sdkVerSentMessage = false;\r\n _cfgSyncPlugin = new CfgSyncPlugin();\r\n }\r\n function _removePageEventHandlers() {\r\n // Remove any registered event handlers\r\n if (_houseKeepingNamespace) {\r\n removePageUnloadEventListener(null, _houseKeepingNamespace);\r\n removePageHideEventListener(null, _houseKeepingNamespace);\r\n }\r\n }\r\n function _addUnloadHook(hooks) {\r\n _core.addUnloadHook(hooks);\r\n }\r\n });\r\n }\r\n // Analytics Plugin\r\n// Removed Stub for AppInsightsSku.prototype.getCookieMgr.\r\n// Removed Stub for AppInsightsSku.prototype.trackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageView.\r\n// Removed Stub for AppInsightsSku.prototype.trackPageViewPerformance.\r\n// Removed Stub for AppInsightsSku.prototype.trackException.\r\n// Removed Stub for AppInsightsSku.prototype._onerror.\r\n// Removed Stub for AppInsightsSku.prototype.trackTrace.\r\n// Removed Stub for AppInsightsSku.prototype.trackMetric.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackPage.\r\n// Removed Stub for AppInsightsSku.prototype.startTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.stopTrackEvent.\r\n// Removed Stub for AppInsightsSku.prototype.addTelemetryInitializer.\r\n // Properties Plugin\r\n// Removed Stub for AppInsightsSku.prototype.setAuthenticatedUserContext.\r\n// Removed Stub for AppInsightsSku.prototype.clearAuthenticatedUserContext.\r\n // Dependencies Plugin\r\n// Removed Stub for AppInsightsSku.prototype.trackDependencyData.\r\n // Misc\r\n// Removed Stub for AppInsightsSku.prototype.flush.\r\n// Removed Stub for AppInsightsSku.prototype.onunloadFlush.\r\n// Removed Stub for AppInsightsSku.prototype.loadAppInsights.\r\n// Removed Stub for AppInsightsSku.prototype.updateSnippetDefinitions.\r\n// Removed Stub for AppInsightsSku.prototype.emptyQueue.\r\n// Removed Stub for AppInsightsSku.prototype.pollInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.stopPollingInternalLogs.\r\n// Removed Stub for AppInsightsSku.prototype.addHousekeepingBeforeUnload.\r\n// Removed Stub for AppInsightsSku.prototype.getSender.\r\n// Removed Stub for AppInsightsSku.prototype.unload.\r\n// Removed Stub for AppInsightsSku.prototype.getPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.addPlugin.\r\n// Removed Stub for AppInsightsSku.prototype.updateCfg.\r\n// Removed Stub for AppInsightsSku.prototype.evtNamespace.\r\n// Removed Stub for AppInsightsSku.prototype.addUnloadCb.\r\n// Removed Stub for AppInsightsSku.prototype.addDependencyListener.\r\n /**\r\n * Add an dependency telemetry initializer callback function to allow populating additional properties or drop the request.\r\n * It is called after the dependency call has completed and any available performance details are available. A dependency\r\n * initializer is similar to the TelemetryInitializer function but it allows you to block the reporting of the dependency\r\n * request so that it doesn't count against the `maxAjaxCallsPerView`.\r\n * @param dependencyInitializer - The Dependency Telemetry Initializer function\r\n * @returns - A IDependencyInitializerHandler to enable the initializer to be removed\r\n */\r\n AppInsightsSku.prototype.addDependencyInitializer = function (dependencyInitializer) {\r\n return null;\r\n };\r\n// Removed Stub for AppInsightsSku.prototype.getTraceCtx.\r\n// Removed Stub for AppInsightsSku.prototype.onCfgChange.\r\n return AppInsightsSku;\r\n}());\r\nexport { AppInsightsSku };\r\n// tslint:disable-next-line\r\nexport function _findSdkSourceFile() {\r\n if (_internalSdkSrc) {\r\n // Use the cached value\r\n return _internalSdkSrc;\r\n }\r\n var sdkSrc = null;\r\n var isModule = false;\r\n var cdns = [\r\n \"://js.monitor.azure.com/\",\r\n \"://az416426.vo.msecnd.net/\"\r\n ];\r\n try {\r\n // Try and determine whether the sdk is being loaded from the CDN\r\n // currentScript is only valid during initial processing\r\n var scrpt = (document || {}).currentScript;\r\n if (scrpt) {\r\n sdkSrc = scrpt.src;\r\n // } else {\r\n // // We need to update to at least typescript 2.9 for this to work :-(\r\n // // Leaving as a stub for now so after we upgrade this breadcrumb is available\r\n // let meta = import.meta;\r\n // sdkSrc = (meta || {}).url;\r\n // isModule = true;\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n if (sdkSrc) {\r\n try {\r\n var url_1 = sdkSrc.toLowerCase();\r\n if (url_1) {\r\n var src_1 = \"\";\r\n arrForEach(cdns, function (value, idx) {\r\n if (strIndexOf(url_1, value) !== -1) {\r\n src_1 = \"cdn\" + (idx + 1);\r\n if (strIndexOf(url_1, \"/scripts/\") === -1) {\r\n if (strIndexOf(url_1, \"/next/\") !== -1) {\r\n src_1 += \"-next\";\r\n }\r\n else if (strIndexOf(url_1, \"/beta/\") !== -1) {\r\n src_1 += \"-beta\";\r\n }\r\n }\r\n _internalSdkSrc = src_1 + (isModule ? \".mod\" : \"\");\r\n return -1;\r\n }\r\n });\r\n }\r\n }\r\n catch (e) {\r\n // eslint-disable-next-line no-empty\r\n }\r\n // Cache the found value so we don't have to look it up again\r\n _internalSdkSrc = sdkSrc;\r\n }\r\n return _internalSdkSrc;\r\n}\r\n","/*\n * Application Insights JavaScript SDK - Web, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\n// @skip-file-minify\r\n// ##############################################################\r\n// AUTO GENERATED FILE: This file is Auto Generated during build.\r\n// ##############################################################\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\nexport var _DYN_VERSION = \"version\"; // Count: 6\r\nexport var _DYN_QUEUE = \"queue\"; // Count: 6\r\nexport var _DYN_CONNECTION_STRING = \"connectionString\"; // Count: 4\r\nexport var _DYN_INSTRUMENTATION_KEY = \"instrumentationKey\"; // Count: 5\r\nexport var _DYN_INSTRUMENTATIONKEY0 = \"instrumentationkey\"; // Count: 2\r\nexport var _DYN_USER_OVERRIDE_ENDPOI1 = \"userOverrideEndpointUrl\"; // Count: 6\r\nexport var _DYN_ENDPOINT_URL = \"endpointUrl\"; // Count: 6\r\nexport var _DYN_INGESTIONENDPOINT = \"ingestionendpoint\"; // Count: 2\r\nexport var _DYN_ONUNLOAD_FLUSH = \"onunloadFlush\"; // Count: 6\r\nexport var _DYN_CONTEXT = \"context\"; // Count: 5\r\nexport var _DYN_ADD_HOUSEKEEPING_BEF2 = \"addHousekeepingBeforeUnload\"; // Count: 2\r\nexport var _DYN_SEND_MESSAGE = \"sendMessage\"; // Count: 3\r\nexport var _DYN_UPDATE_SNIPPET_DEFIN3 = \"updateSnippetDefinitions\"; // Count: 2\r\n","import { Injectable } from \"@angular/core\";\r\nimport { ApplicationInsights, SeverityLevel } from \"@microsoft/applicationinsights-web\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Injectable()\r\nexport class LoggingService {\r\n\r\n appInsights: ApplicationInsights = null;\r\n\r\n constructor() {\r\n\r\n if (environment.applicationInsights) {\r\n this.appInsights = new ApplicationInsights({\r\n config: {\r\n connectionString: environment.applicationInsights,\r\n enableAutoRouteTracking: true // option to log all route changes\r\n }\r\n });\r\n \r\n this.appInsights.loadAppInsights();\r\n }\r\n }\r\n\r\n logPageView(name?: string, url?: string) { // option to call manually\r\n this.appInsights?.trackPageView({\r\n name: name,\r\n uri: url\r\n });\r\n }\r\n\r\n logEvent(name: string, properties?: { [key: string]: any }) {\r\n this.writeOutput(console.info, name, properties);\r\n this.appInsights?.trackEvent({ name: name }, properties);\r\n }\r\n\r\n logMetric(name: string, average: number, properties?: { [key: string]: any }) {\r\n this.appInsights?.trackMetric({ name: name, average: average }, properties);\r\n }\r\n\r\n logException(exception: Error,\r\n severityLevel: SeverityLevel|number = SeverityLevel.Error,\r\n data?: { [key: string]: any }) {\r\n \r\n this.writeOutput(console.error, exception, data);\r\n this.appInsights?.trackException({ exception: exception, severityLevel: severityLevel });\r\n }\r\n\r\n logWarn(message: string, properties?: { [key: string]: any }) {\r\n this.writeOutput(console.warn, message, properties);\r\n this.appInsights.trackTrace({ message: message, severityLevel: SeverityLevel.Warning }, properties)\r\n }\r\n\r\n logInfo(message: string, properties?: { [key: string]: any }) {\r\n this.writeOutput(console.info, message, properties);\r\n this.appInsights?.trackTrace({ message: message, severityLevel: SeverityLevel.Information }, properties);\r\n }\r\n\r\n logVerbose(message: string, properties?: { [key: string]: any }) {\r\n this.writeOutput(console.log, message, properties);\r\n this.appInsights.trackTrace({ message: message, severityLevel: SeverityLevel.Verbose }, properties)\r\n }\r\n\r\n private writeOutput(func: Function, message: string | Error, properties?: { [key: string]: any })\r\n {\r\n if (properties) {\r\n func(message, properties);\r\n } else {\r\n func(message);\r\n }\r\n }\r\n}","import { Injectable } from '@angular/core';\r\n\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nimport _ from 'lodash';\r\n\r\nimport { Activity } from \"@Core/CodeGen/Models/area.models\";\r\nimport { DataStore } from \"@Core/Lib/Contexts/data-store\";\r\nimport { Notification } from '@Core/CodeGen/Models/configuration.models';\r\n\r\n@Injectable()\r\nexport class NotificationService {\r\n\r\n private activityStore: DataStore;\r\n\r\n public values: BehaviorSubject = new BehaviorSubject([]);\r\n public last: BehaviorSubject = new BehaviorSubject(null) ;\r\n \r\n private notifications: Map = new Map();\r\n\r\n public add(notification: Notification) : boolean\r\n {\r\n if (!this.notifications.has(notification.Id)) {\r\n this.notifications.set(notification.Id, notification);\r\n this.addMessage(notification);\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n private addMessage(notification: Notification): void {\r\n this.values.getValue().unshift(notification);\r\n\r\n let activitiesDeleted = false;\r\n\r\n this.last.next(notification);\r\n\r\n this.values.next(this.values.getValue());\r\n\r\n if (activitiesDeleted)\r\n this.activityStore.broadcast(); // broadcast the deletes\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\nimport { BehaviorSubject, Observable } from 'rxjs';\r\n\r\nimport { GlobalMessages, AppMessage } from '@Services/global-messages';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\n\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PollingService\r\n extends BaseService {\r\n\r\n private trackersById: Map> = new Map>();\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n /**\r\n * Kick off (or start listening to) an observable that recursively polls to the location\r\n * specified in the header of the given response.\r\n * Polling ends when the response code no longer indicates a redirect.\r\n * * id: the ID of the resource of type T\r\n * * response: the starting point for polling. If respsonse code is not 202 or 302, no polling will occur.\r\n * * finalMessage: a message to be broadcast (anywhere in the SPA) when the polling completes.\r\n * * finalAction: an action to be executed (anywhere in the SPA) when the polling completes.\r\n **/\r\n public startPolling(id: string, initialRequestFactory: () => Observable>,\r\n finalMessage: string = null, finalAction: (finalResponse: T) => void = null): Observable {\r\n const tracker: PollingTracker = this.trackersById.get(id);\r\n if (tracker) {\r\n // Overwrite these properties; last requester wins\r\n if (finalMessage) {\r\n tracker.finalMessage = finalMessage;\r\n }\r\n if (finalAction) {\r\n tracker.finalAction = finalAction;\r\n }\r\n\r\n // We assume that the initialRequestFactory is a duplicate of the source we are currently polling.\r\n\r\n return tracker.observable;\r\n }\r\n else {\r\n // start a new tracker\r\n return this.addNewTracker(id, initialRequestFactory, finalMessage, finalAction);\r\n }\r\n }\r\n\r\n private addNewTracker(id: string, initialRequestFactory: () => Observable>,\r\n finalMessage: string, finalAction: (finalResponse: T) => void): Observable {\r\n let tracker = new PollingTracker(id, null, finalMessage, finalAction);\r\n this.trackersById.set(id, tracker);\r\n\r\n // ping the initial request\r\n let self = this;\r\n initialRequestFactory().subscribe(\r\n response => self.processSuccessResponse(tracker, response));\r\n\r\n return tracker.observable;\r\n }\r\n\r\n private processSuccessResponse(tracker: PollingTracker, response: HttpResponse): void {\r\n tracker.observable.next(response.body as T);\r\n if (this.shouldKeepPolling(response, tracker)) {\r\n this.pollNext(tracker, response);\r\n }\r\n else {\r\n this.finalizeTracker(tracker);\r\n }\r\n }\r\n\r\n private pollNext(tracker: PollingTracker, lastResponse: HttpResponse): void {\r\n var self = this;\r\n\r\n var requestOptions = _.extend({\r\n observe: 'response' as 'body' // we want the full response, not just the body\r\n });\r\n\r\n let url = this.getRedirectLocation(lastResponse);\r\n let delaySeconds = Math.max(this.getRetryDelay(lastResponse), 1);\r\n setTimeout(() => {\r\n self.http.get>(url, requestOptions).subscribe({\r\n next: response => self.processSuccessResponse(tracker, response),\r\n error: errorResponse => self.handleError(errorResponse)\r\n });\r\n }, delaySeconds * 1000);\r\n }\r\n\r\n private finalizeTracker(tracker: PollingTracker): void {\r\n if (this.trackersById.delete(tracker.id)) {\r\n const finalValue: T = tracker.observable.getValue();\r\n tracker.observable.complete();\r\n\r\n if (tracker.finalMessage)\r\n this.globalMessages.Add(new AppMessage(tracker.finalMessage, 'info', 5000));\r\n\r\n if (tracker.finalAction)\r\n tracker.finalAction(finalValue);\r\n }\r\n }\r\n\r\n private shouldKeepPolling(response: HttpResponse, tracker: PollingTracker): boolean {\r\n // keep polling if the last response is a temporary redirect\r\n let locHeader: string = this.getRedirectLocation(response);\r\n let decision = (response.status === 202 || response.status === 302) // 202 (Accepted) or 302 (Found)\r\n && locHeader != null;\r\n\r\n if (environment.env !== 'production')\r\n console.log(\"PollingService.shouldKeepPolling\", { decision: decision, trackingId: tracker.id, response: response });\r\n\r\n return decision;\r\n }\r\n\r\n /** The client checks the body as well as the HTTP header\r\n * because the web browser may strip off the header values in certain\r\n * cases where automatic redirects are involved. */\r\n private getRedirectLocation(response: HttpResponse): string {\r\n let url: string = response.headers.get(HttpHeaderNames.Location)\r\n || (response.body && response.body.Content && response.body.Content['@PollingLocation']);\r\n\r\n if (url && !url.startsWith('http')) {\r\n url = BaseService.baseUrl + url; // convert a relative URL into a non-relative URL\r\n }\r\n\r\n return url;\r\n }\r\n\r\n /** The client checks the body as well as the HTTP header\r\n * because the web browser may strip off the header values in certain\r\n * cases where automatic redirects are involved. */\r\n private getRetryDelay(response: HttpResponse): number {\r\n return parseInt(response.headers.get(HttpHeaderNames.RetryAfter))\r\n || (response.body && response.body.Content && response.body.Content['@PollingRetryAfter'])\r\n || 7;\r\n }\r\n}\r\n\r\nclass PollingTracker {\r\n public constructor(id: string, initialValue: T, finalMessage: string, \r\n finalAction: (finalResponse: T) => void) {\r\n this.id = id;\r\n this.observable = new BehaviorSubject(initialValue);\r\n this.finalMessage = finalMessage;\r\n this.finalAction = finalAction;\r\n }\r\n\r\n public id: string;\r\n public readonly observable: BehaviorSubject;\r\n public finalMessage: string;\r\n public finalAction: (finalResponse: T) => void;\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Router } from '@angular/router';\r\n\r\nimport _ from 'lodash';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { ProgramProgramsService } from '@Services/program-programs-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { ProgramContext } from '@Core/Lib/Contexts/program-context';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\nimport { DataStore, DataGroup, DataPoint } from '@Core/CodeGen/Models/configuration.models';\r\nimport { AuthService } from './auth-service';\r\n\r\n\r\nclass Response extends HttpResponse {}\r\n\r\n@Injectable()\r\nexport class ProgramProgramsDataStoresService extends ProgramProgramsService {\r\n\r\n public constructor(protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected router: Router,\r\n protected tenantContext: TenantContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService,\r\n protected authService: AuthService\r\n ) {\r\n super(authService, http, globalMessages, router, tenantContext, loggingService, loadingService);\r\n }\r\n\r\n public loadDataStores(programId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseGetAll(programId, \"DataStores\");\r\n let request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(DataStore, request, context);\r\n return request;\r\n }\r\n\r\n public addDataStore(changeId: string, newDataStore: DataStore, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"DataStores\", changeId);\r\n let request = this.http.post(url, newDataStore.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DataStore, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public modifyDataStore(changeId: string, dataStore: DataStore, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"DataStores\", changeId);\r\n let request = this.http.put(url, dataStore.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DataStore, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public loadDataStore(dataStoreId: string, context: ProgramContext): Observable> {\r\n let request = this.http.get(this.serviceUrls.baseGetOne(context.programId, \"DataStores\", dataStoreId)).pipe(share());\r\n this.handleNormalGetRequest(DataStore, request, context);\r\n return request;\r\n }\r\n\r\n public loadDataGroups(programId: string, dataStoreId: string, context: ProgramContext): Observable> {\r\n let params = new HttpParams().set(\"dataStoreId\", dataStoreId);\r\n let request = this.http.get(this.serviceUrls.baseGetAll(programId, \"DataGroups\"), { params }).pipe(share());\r\n this.handleNormalGetRequest(DataGroup, request, context);\r\n return request;\r\n }\r\n\r\n public loadProgramDataGroups(programId: string, context: ProgramContext): Observable> {\r\n let request = this.http.get(this.serviceUrls.baseGetAll(programId, \"DataGroups\")).pipe(share());\r\n this.handleNormalGetRequest(DataGroup, request, context);\r\n return request;\r\n }\r\n\r\n public loadDataPoints(programId: string, dataStoreId: string, context: ProgramContext): Observable {\r\n let params = new HttpParams().set(\"dataStoreId\", dataStoreId);\r\n let request = this.http.get(this.serviceUrls.baseGetAll(programId, \"DataPoints\"), { params }).pipe(share());\r\n this.handleNormalGetRequest(DataPoint, request, context);\r\n return request;\r\n }\r\n\r\n public addDataGroup(change: string, dataGroup: DataGroup, dataStoreId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"DataGroups\", change, \"DataStores\", dataStoreId);\r\n let request = this.http.post(url, dataGroup.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DataGroup, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public addDataPoint(change: string, dataPoint: DataPoint, dataStoreId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"DataPoints\", change, \"DataStores\", dataStoreId);\r\n let request = this.http.post(url, dataPoint.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DataPoint, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public modifyDataGroup(change: string, dataGroup: DataGroup, context: ProgramContext): Observable {\r\n // Note that no ID is required for this route because it accepts multiple DataGroup models.\r\n var url = this.serviceUrls.basePost(context.programId, \"DataGroups\", change);\r\n let request = this.http.put(url, dataGroup.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DataGroup, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public modifyDataPoint(change: string, dataPoint: DataPoint, context: ProgramContext): Observable {\r\n // Note that no ID is required for this route because it accepts multiple DataGroup models.\r\n var url = this.serviceUrls.basePost(context.programId, \"DataPoints\", change);\r\n let request = this.http.put(url, dataPoint.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DataPoint, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteDataGroup(dataGroup: DataGroup, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.basePutAndDelete(context.programId, \"DataGroups\", dataGroup.Id, context.changeId);\r\n let request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(DataGroup, request, dataGroup, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteDataPoint(dataPoint: DataPoint, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.basePutAndDelete(context.programId, \"DataPoints\", dataPoint.Id, context.changeId);\r\n let request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(DataPoint, request, dataPoint, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n } \r\n}","import { Injectable } from '@angular/core';\r\nimport { Router } from \"@angular/router\";\r\nimport { HttpClient, HttpHeaders, HttpParams, HttpResponse } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\nimport { BehaviorSubject, Subject, Observable, of, throwError } from 'rxjs';\r\nimport { share, map, takeUntil, first, catchError } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { ProgramContext } from '@Core/Lib/Contexts/program-context';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { IStaticElementType, ITypedServiceResponse, IServiceResponse, IValidationCode } from \"@Core/Lib/model\";\r\nimport {\r\n Program, ProgramChange, ProgramRevision, WorkflowSet, Workflow,\r\n Phase, Task, WorkGroup, RuleSet,\r\n ProgramValidationMessage, TenantUser,\r\n AccountRole, ProgramObligatesAccountRole, ProgramEmploysTenantUser,\r\n Application, Element, Section, Rule, ProgramUsesWorkGroup,\r\n Producer, AssetGroup, Asset\r\n} from '@Core/CodeGen/Models/configuration.models';\r\nimport { ProgramTeam } from '@Core/Models/ProgramTeam';\r\nimport { EditableStateEnum } from '@Core/Lib/Enums/editable-state-enum';\r\nimport { AuthService } from './auth-service';\r\nimport { AreaStandbyWorkflowCountDTO } from '@Admin/Tenants/tenants-edit/manage-standbys-modal/manage-standbys-modal.component';\r\n\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\n/** Service for the Program context that accesses the Programs domain. */\r\nexport class ProgramProgramsService extends BaseService {\r\n\r\n protected serviceUrls = class ServiceUrls {\r\n\r\n protected static replaceValues(url: string, programId: string,\r\n itemName: string = null, itemId: string = null, changeId: string = null,\r\n componentName: string = null, componentId: string = null): string {\r\n return url\r\n .replace(\"{programId}\", programId)\r\n .replace(\"{itemName}\", itemName)\r\n .replace(\"{itemId}\", itemId) // The item being acted on\r\n .replace(\"{changeId}\", changeId)\r\n .replace(\"{componentName}\", componentName)\r\n .replace(\"{componentId}\", componentId);\r\n }\r\n\r\n public static baseProgramsUrl: string = BaseService.baseUrl + '/Programs/';\r\n public static programsUrl: string = ServiceUrls.baseProgramsUrl + '{programId}/'\r\n\r\n protected static baseGetAllUnsubstitued = ServiceUrls.programsUrl + '{itemName}';\r\n public static baseGetAll(programId: string, itemName: string) {\r\n return this.replaceValues(ServiceUrls.baseGetAllUnsubstitued, programId, itemName);\r\n }\r\n\r\n protected static baseGetOneUnsubstitued = ServiceUrls.programsUrl + '{itemName}/{itemId}';\r\n public static baseGetOne(programId: string, itemName: string, itemId: string) {\r\n return this.replaceValues(ServiceUrls.baseGetOneUnsubstitued, programId, itemName, itemId);\r\n }\r\n\r\n public static basePost(programId: string, itemName: string, changeId: string = null,\r\n componentName: string = null, componentId: string = null) {\r\n var url = ServiceUrls.programsUrl;\r\n if (componentName && componentId) // If the object is Revisionable, it needs to add the RevisionedComponent information\r\n url = url + '{componentName}/{componentId}/';\r\n url = url + '{itemName}'\r\n if (changeId) // If the API requires a change, add it\r\n url = url + '?changeId={changeId}'\r\n return this.replaceValues(url, programId, itemName, null, changeId, componentName, componentId);\r\n }\r\n\r\n public static basePutAndDelete(programId: string, itemName: string, itemId: string, changeId: string = null,\r\n workflowId: string = null) {\r\n var url = ServiceUrls.programsUrl + '{itemName}/{itemId}';\r\n if (changeId)\r\n url = url + '?changeId={changeId}'\r\n return this.replaceValues(url, programId, itemName, itemId, changeId, null, null);\r\n }\r\n\r\n //#region Programs\r\n public static specificProgram(programId: string): string {\r\n return (this.replaceValues(ServiceUrls.programsUrl, programId));\r\n }\r\n\r\n public static importProgram: string = `${ServiceUrls.baseProgramsUrl}Import`;\r\n\r\n //#endregion Programs\r\n\r\n //#region Program Changes\r\n\r\n public static changes: string = `${ServiceUrls.baseProgramsUrl}Changes`;\r\n public static change(changeId: string): string {\r\n return `${ServiceUrls.changes}/${changeId}`;\r\n }\r\n\r\n //#endregion Program Changes\r\n\r\n //#region Program Committing\r\n\r\n public static commitProgramChanges: string = ServiceUrls.baseProgramsUrl + 'Commit';\r\n public static uncommitProgramChanges: string = ServiceUrls.baseProgramsUrl + 'Uncommit';\r\n public static revertProgramChange(changeId: string): string {\r\n return this.change(changeId) + `/Revert`;\r\n }\r\n\r\n //#endregion Program Committing\r\n\r\n //#region Program Revisions\r\n\r\n private static programRevisions: string = ServiceUrls.baseProgramsUrl + 'Revisions';\r\n private static programRevisionUnsubstituted: string = ServiceUrls.programRevisions + '/{revisionId}';\r\n\r\n public static exportProgramRevision(revisionId: string): string {\r\n return `${ServiceUrls.programRevision(revisionId)}/Export`.replace(\"{revisionId}\", revisionId);\r\n }\r\n\r\n public static undeployProgramRevision(revisionId: string): string {\r\n return `${ServiceUrls.programRevision(revisionId)}/Undeploy`;\r\n }\r\n\r\n public static setStandbyWorkflows(revisionId: string): string {\r\n return `${ServiceUrls.programRevision(revisionId)}/SetStandbyWorkflows`;\r\n }\r\n\r\n private static programRevision(revisionId: string): string {\r\n return ServiceUrls.programRevisionUnsubstituted.replace(\"{revisionId}\", revisionId);\r\n }\r\n\r\n //#endregion Program Revisions\r\n\r\n //#region Enums\r\n public static PolicyRatedStatuses: string = ServiceUrls.baseProgramsUrl + 'PolicyRatedStatuses';\r\n //#endregion Enums\r\n }\r\n\r\n private loadingPrograms: boolean;\r\n\r\n public constructor(protected authService: AuthService,\r\n protected http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected router: Router,\r\n protected tenantContext: TenantContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n //#region Programs\r\n\r\n public loadProgramByKey(ProgramId: string, context: DataContext = this.tenantContext): Observable {\r\n this.loadingPrograms = true;\r\n var url = this.serviceUrls.specificProgram(ProgramId);\r\n var self = this; // scope of \"this\" is lost within the following anonymous function\r\n const request = this.http.get(url).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(Program, response);\r\n self.loadingPrograms = false;\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n self.loadingPrograms = false;\r\n },\r\n });\r\n return request;\r\n }\r\n\r\n /**\r\n * Get an observable that will resolve to a Program with the given program key.\r\n */\r\n public getProgram(programId: string, context: DataContext = this.tenantContext): Observable {\r\n var dummyProgram = new Program();\r\n var programDomainId = ModelUtils.createDomainId(dummyProgram, programId); // build a domainId from the Key\r\n\r\n var findProgram = function (): Program {\r\n return context.get(programDomainId) as Program;\r\n }\r\n\r\n if (this.loadingPrograms) {\r\n let source = new Subject();\r\n let unsubscribe = new Subject();\r\n\r\n context.getStore(new Program()).values.pipe(takeUntil(unsubscribe))\r\n .subscribe(\r\n roles => {\r\n var p = findProgram();\r\n if (p) {\r\n source.next(p);\r\n unsubscribe.next('');\r\n unsubscribe.complete();\r\n }\r\n }\r\n );\r\n\r\n return source;\r\n }\r\n\r\n let program = findProgram();\r\n if (program) {\r\n return new BehaviorSubject(program);\r\n }\r\n else {\r\n return new BehaviorSubject(null);\r\n }\r\n }\r\n\r\n /** Retrieve a single program with the full HttpResponse. */\r\npublic retrieveProgramWithResponseHandleError(programId: string, context: DataContext = this.tenantContext)\r\n : Observable>> {\r\n\r\n var requestOptions = _.extend({\r\n observe: 'response' as 'body'\r\n });\r\n\r\n const request = this.http.get>(this.serviceUrls.specificProgram(programId),\r\n requestOptions).pipe(share());\r\n this.handleNormalGetRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public retrieveProgramWithResponseThrowOnError(programId: string, context: DataContext = this.tenantContext)\r\n : Observable>> {\r\n var self = this;\r\n\r\n var requestOptions = _.extend({\r\n observe: 'response' as 'body'\r\n });\r\n\r\n const request = this.http\r\n .get>(this.serviceUrls.specificProgram(programId), requestOptions)\r\n .pipe(\r\n share(),\r\n catchError((error: any) => {\r\n return throwError(() => error);\r\n })\r\n );\r\n\r\n request.subscribe((response: HttpResponse) => {\r\n self.tenantContext.loadApiResponseModels(Program, response);\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public addProgram(newProgram: Program): Observable {\r\n var self = this;\r\n let request = this.http.post(this.serviceUrls.baseProgramsUrl, newProgram.serialize()).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n self.tenantContext.loadApiResponseModels(Program, response);\r\n },\r\n error: error => {\r\n let excludedPaths = [\"Program.Name\", \"Program.Message\", \"Program.Description\"];\r\n self.handleError(error, excludedPaths);\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public updateProgram(updatedProgram: Program, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.baseProgramsUrl + updatedProgram.Id;\r\n if (context.changeId)\r\n url = url + \"?changeId=\" + context.changeId;\r\n\r\n let request = this.http.put(url, updatedProgram.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public importProgram(programZipFile: File, programName: string, programDescription: string)\r\n : Observable>> {\r\n const headers: HttpHeaders = new HttpHeaders().set(HttpHeaderNames.ContentType, \"octet-stream\");\r\n const params = { programName: programName, description: programDescription };\r\n const requestOptions = _.extend({\r\n headers: headers,\r\n observe: 'response' as 'body',\r\n params: params\r\n });\r\n\r\n const request = this.http.post>>(this.serviceUrls.importProgram,\r\n programZipFile, requestOptions).pipe(share());\r\n this.handleNormalGetRequest(Program, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public validateProgramChange(changeId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePost(context.programId, \"Validate\") + \"?changeId=\" + changeId;\r\n let request = this.http.put(url, null).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public getProgramValidationStatus(context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(context.programId, \"Validate/Status\");\r\n var requestOptions = _.extend({\r\n observe: 'response' as 'body'\r\n });\r\n let request = this.http.get(url, requestOptions).pipe(share());\r\n this.handleNormalGetRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public stopProgramValidation(context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePost(context.programId, \"Validate/Stop\");\r\n let request = this.http.put(url, null).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public testTransform(testScriptDTO: TestScriptDTO, programId: string): Observable {\r\n const url = this.serviceUrls.baseGetAll(programId, \"TestScript\");\r\n const request = this.http.post(url, testScriptDTO).pipe(share());\r\n return request;\r\n }\r\n\r\n //#endregion Programs\r\n\r\n //#region Asset Groups\r\n\r\n public loadAssetGroups(programId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(programId, \"AssetGroups\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(AssetGroup, request, context);\r\n return request;\r\n }\r\n\r\n public loadAssetGroup(assetGroupId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetOne(context.programId, \"AssetGroups\", assetGroupId);\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(AssetGroup, request, context);\r\n return request;\r\n }\r\n\r\n public addAssetGroup(changeId: string, assetGroup: AssetGroup, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePost(context.programId, \"AssetGroups\", changeId);\r\n const request = this.http.post(url, assetGroup.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(AssetGroup, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public updateAssetGroup(changeId: string, assetGroup: AssetGroup, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"AssetGroups\", assetGroup.Id, changeId);\r\n const request = this.http.put(url, assetGroup.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(AssetGroup, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n //#endregion Asset Groups\r\n\r\n //#region Assets\r\n\r\n public loadAssets(ProgramId: string, assetGroupId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(ProgramId, \"Assets\");\r\n const requestUrl = assetGroupId !== null ? url + \"?assetGroupId=\" + assetGroupId : url;\r\n const request = this.http.get(requestUrl).pipe(share());\r\n this.handleNormalGetRequest(Asset, request, context);\r\n return request;\r\n }\r\n\r\n public loadAsset(assetId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetOne(context.programId, \"Assets\", assetId);\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Asset, request, context);\r\n return request;\r\n }\r\n\r\n public addAsset(asset: Asset, file: File, context: ProgramContext, assetGroupId: string): Observable {\r\n const url = this.serviceUrls.basePost(context.programId, \"Assets\", context.changeId, \"AssetGroup\", assetGroupId);\r\n const request = this.http.post(url, asset.serialize()).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n var asset = new Asset().deserialize(response.Content, context);\r\n var uploadUrl = this.convertAssetUploadUrl(asset.data[\"UploadUrl\"]);\r\n\r\n const uploadRequest = this.http.post(uploadUrl, file, {\r\n headers: new HttpHeaders().set(HttpHeaderNames.ContentType, \"octet-stream\"),\r\n }).pipe(share());\r\n uploadRequest.subscribe({\r\n next: response => {\r\n new Asset().deserialize(response.Content, context);\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n // Converts the upload url to one that our API will accept coming from the application.\r\n // This is needed because our backend passes this url to us, but it is in the form of someone directly accessing the API.\r\n public convertAssetUploadUrl(uploadUrl: string): string {\r\n var positionOfAssets = uploadUrl.indexOf(\"Programs/\");\r\n return this.serviceUrls.baseProgramsUrl + uploadUrl.substring(positionOfAssets + \"Programs/\".length);\r\n }\r\n\r\n public updateAsset(asset: Asset, file: File, context: ProgramContext, assetGroupId: string, changeId: string): Observable {\r\n let url = this.serviceUrls.specificProgram(context.programId)\r\n + 'AssetGroup/' + assetGroupId + '/Assets/' + asset.Id + '?changeId=' + changeId;\r\n\r\n if (file.size > 0) url = url + '&replace=true'\r\n\r\n const request = this.http.put(url, asset.serialize()).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n var asset = new Asset().deserialize(response.Content, context);\r\n var uploadUrl = this.convertAssetUploadUrl(asset.data[\"UploadUrl\"]);\r\n\r\n if (file.size > 0) {\r\n const uploadRequest = this.http.post(uploadUrl, file, {\r\n headers: new HttpHeaders().set(HttpHeaderNames.ContentType, \"octet-stream\"),\r\n }).pipe(share());\r\n uploadRequest.subscribe({\r\n next: response => {\r\n new Asset().deserialize(response.Content, context);\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n }\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n public downloadAsset(context: ProgramContext, assetId: string, revisionId: string) {\r\n const self = this;\r\n const url = this.serviceUrls.baseGetOne(context.programId, \"Assets\", assetId) + \"/Content\";\r\n\r\n // Add the query parameters that aren't null\r\n let params = new HttpParams();\r\n params = params.set('revisionId', revisionId);\r\n \r\n const options = {\r\n params,\r\n responseType: 'Blob' as 'json', // the body will be binary\r\n observe: 'response' as 'body' // we want the full response, not just the body\r\n };\r\n\r\n this.http.get>(url, options)\r\n .subscribe({\r\n next: response => {\r\n self.saveToFileSystem(response);\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n //#endregion Assets\r\n\r\n //#region Teams\r\n\r\n public loadProgramWorkGroups(context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(context.programId, \"WorkGroups\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(WorkGroup, request, context);\r\n return request;\r\n }\r\n\r\n public addWorkGroupsToProgram(workGroupIds: string[], authLevel: number, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"ProgramUsesWorkGroup\");\r\n var fakeEdge = new ProgramUsesWorkGroup();\r\n var body = _.map(workGroupIds, wgId => {\r\n return {\r\n ['@Type']: fakeEdge.Type,\r\n IsUsedById: context.programId,\r\n UsesId: wgId,\r\n AuthorityLevel: authLevel\r\n }\r\n });\r\n var request = this.http.post(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public updateProgramUsesWorkGroup(edge: ProgramUsesWorkGroup, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"ProgramUsesWorkGroup\", edge.Id);\r\n const body = {\r\n ['@Type']: edge.Type,\r\n Id: edge.Id,\r\n IsUsedById: context.programId,\r\n UsesId: ModelUtils.getIdFromDomainId(edge._Uses),\r\n AuthorityLevel: edge.AuthorityLevel\r\n }\r\n var request = this.http.put(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public loadProgramTeamMembers(context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(context.programId, \"TenantUsers\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(TenantUser, request, context);\r\n return request;\r\n }\r\n\r\n public addTenantUsersToProgram(userIds: string[], managers: string[], context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"ProgramEmploysTenantUser\");\r\n var fakeEdge = new ProgramEmploysTenantUser();\r\n var body = _.map(userIds, uId => {\r\n return {\r\n ['@Type']: fakeEdge.Type,\r\n IsEmployedById: context.programId,\r\n EmploysId: uId,\r\n IsManager: _.includes(managers, uId)\r\n }\r\n });\r\n var request = this.http.post(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public modifyTenantUserInProgram(edgeId: string, isManager: boolean, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"ProgramEmploysTenantUser\", edgeId);\r\n var fakeEdge = new ProgramEmploysTenantUser();\r\n var body = {\r\n ['@Type']: fakeEdge.Type,\r\n Id: edgeId,\r\n IsManager: isManager\r\n };\r\n var request = this.http.put(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public loadProgramAccountRoles(context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(context.programId, \"AccountRoles\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(AccountRole, request, context);\r\n return request;\r\n }\r\n\r\n public addAccountRoleToProgram(roleId: string, authLevel: number,\r\n userIds: string[], initialId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"ProgramObligatesAccountRoles\");\r\n const body = {\r\n ['@Type']: new ProgramObligatesAccountRole().Type,\r\n IsObligatedById: context.programId,\r\n ObligatesId: roleId,\r\n AuthorityLevel: authLevel,\r\n UserIds: userIds,\r\n InitiallyFilled: initialId\r\n };\r\n\r\n var request = this.http.post(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public updateProgramObligatesAccountRole(edge: ProgramObligatesAccountRole, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"ProgramObligatesAccountRoles\", edge.Id);\r\n const body = {\r\n ['@Type']: edge.Type,\r\n Id: edge.Id,\r\n IsObligatedById: context.programId,\r\n ObligatesId: ModelUtils.getIdFromDomainId(edge._Obligates),\r\n AuthorityLevel: edge.AuthorityLevel,\r\n UserIds: edge.UserIds,\r\n InitiallyFilled: edge.InitiallyFilled\r\n };\r\n var request = this.http.put(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public deleteProgramAccountRole(accountRoleEdge: ProgramObligatesAccountRole, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"ProgramObligatesAccountRoles\", accountRoleEdge.Id);\r\n let request = this.http.delete(url).pipe(share());\r\n request.subscribe(() => {\r\n context.remove(accountRoleEdge.Obligates());\r\n });\r\n return request;\r\n }\r\n\r\n public removeTeamMember(employsUserEdge: ProgramEmploysTenantUser, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"ProgramEmploysTenantUser\", employsUserEdge.Id);\r\n let request = this.http.delete(url).pipe(share());\r\n request.subscribe(\r\n response => {\r\n context.remove(employsUserEdge);\r\n // Update ProgramObligatesAccountRole edges\r\n context.loadApiResponseModels(Program, response);\r\n }\r\n );\r\n return request;\r\n }\r\n\r\n public deployProgramTeam(context: ProgramContext): Observable {\r\n var url = this.serviceUrls.specificProgram(context.programId) + \"Team/Deploy\";\r\n const body = null;\r\n var request = this.http.put(url, body).pipe(share());\r\n this.handleNormalPostPutRequest(Program, request, context);\r\n return request;\r\n }\r\n\r\n public loadPublishedProgramTeam(context: ProgramContext): Observable> {\r\n const url = this.serviceUrls.specificProgram(context.programId) + \"Team\";\r\n const request = this.http.get>(url)\r\n .pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n context.programTeam.next(response.Content);\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n //#endregion Teams\r\n\r\n //#region Program Changes\r\n\r\n /** Get an observable that will resolve to a ProgramChange with the given changeId, where changeId looks like \"ProgramChange:\". */\r\n public getChange(changeId: string, context: ProgramContext, ignoreContext: boolean = false): Observable {\r\n var programChangeDomainId = ModelUtils.createDomainId(new ProgramChange(), changeId); // build a domainId from the Key\r\n\r\n var findProgramChange = function (): ProgramChange {\r\n return context.get(programChangeDomainId) as ProgramChange;\r\n }\r\n let programChange = findProgramChange();\r\n\r\n if (!ignoreContext && programChange) {\r\n return new BehaviorSubject(programChange);\r\n }\r\n else {\r\n this.loadProgramChangeById(changeId, context);\r\n\r\n let source = new Subject();\r\n context.getStore(new ProgramChange()).values.subscribe(\r\n response => {\r\n var p = findProgramChange();\r\n if (p) {\r\n source.next(p);\r\n }\r\n }\r\n );\r\n\r\n return source;\r\n }\r\n }\r\n\r\n public addNewChangeToRevision: boolean = false;\r\n\r\n /**\r\n * This requires that the edge to the Program is included in the model\r\n */\r\n public addChange(newChange: ProgramChange, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.changes;\r\n let request = this.http.post(url, newChange.serialize()).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n // add the new change to the data context\r\n context.loadApiResponseModels(ProgramChange, response);\r\n\r\n if (self.addNewChangeToRevision) {\r\n context.getStore(new ProgramRevision()).values.pipe(first()).subscribe(\r\n revisions => {\r\n var revision = _.maxBy(revisions as ProgramRevision[], r => r.RevisionNo);\r\n self.addChangesToRevision(revision.Id, [response.Content.Id], context);\r\n }\r\n )\r\n self.addNewChangeToRevision = false;\r\n }\r\n\r\n },\r\n error: error => {\r\n let excludedPaths = [\"ProgramChange.Comments\"];\r\n self.handleError(error, excludedPaths);\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public loadProgramChanges(programId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.changes;\r\n const params = new HttpParams().set('programId', programId)\r\n .set('includeReleased', 'true')\r\n let request = this.http.get(url, { params }).pipe(share())\r\n this.handleNormalGetRequest(ProgramChange, request, context);\r\n return request;\r\n }\r\n\r\n\r\n /**\r\n * Retrieve a specific ProgramChange from the service.\r\n * @param changeId The Id (a.k.a. Key) of the ProgramChange to be returned.\r\n * @param context If null, the response will not be deserialized.\r\n */\r\n private loadProgramChangeById(changeId: string, context: ProgramContext = null): Observable {\r\n var url = this.serviceUrls.change(changeId);\r\n let request = this.http.get(url).pipe(share());\r\n if (context)\r\n this.handleNormalGetRequest(ProgramChange, request, context);\r\n return request;\r\n }\r\n\r\n private editableState: BehaviorSubject = new BehaviorSubject({ EditableState: EditableStateEnum.None });\r\n\r\n public setEditableState(newEditabledState: EditableStateVM): void {\r\n this.editableState.next(newEditabledState);\r\n }\r\n\r\n public getEditableState(): Observable {\r\n return this.editableState;\r\n }\r\n\r\n public lockProgramChange(programChange: ProgramChange, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.change(programChange.Id) + '/Lock';\r\n let request = this.http.put(url, programChange.serialize(programChange)).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n // update the change in the data context\r\n context.loadApiResponseModels(ProgramChange, response);\r\n // if the user has the change Locked, load the Change in Edit mode\r\n this.setEditableState({ ChangeId: programChange.Id, EditableState: EditableStateEnum.Edit });\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public unlockProgramChange(programChange: ProgramChange, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.change(programChange.Id) + '/Unlock';\r\n let request = this.http.put(url, programChange.serialize()).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(ProgramChange, response);\r\n this.setEditableState({ EditableState: EditableStateEnum.None });\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public completeProgramChange(programChange: ProgramChange, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.change(programChange.Id) + '/Complete';\r\n let request = this.http.put(url, programChange.serialize(programChange)).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n //Update change content\r\n context.loadApiResponseModels(ProgramChange, response);\r\n this.setEditableState({ EditableState: EditableStateEnum.None });\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public stealLockOnProgramChange(programChange: ProgramChange, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.change(programChange.Id) + '/Steal';\r\n let request = this.http.put(url, programChange.serialize(programChange)).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n // update the change in the data context\r\n context.loadApiResponseModels(ProgramChange, response);\r\n this.setEditableState({ ChangeId: programChange.Id, EditableState: EditableStateEnum.Edit });\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n commitProgramChanges(programId: string, changes: string[], context: ProgramContext): Observable {\r\n var url = this.serviceUrls.commitProgramChanges;\r\n\r\n var self = this;\r\n let request = this.http.put(url, changes).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n self.loadProgramChanges(programId, context);\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n uncommitProgramChanges(programId: string, changes: string[], context: ProgramContext): Observable {\r\n var url = this.serviceUrls.uncommitProgramChanges;\r\n\r\n var self = this;\r\n let request = this.http.put(url, changes).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n self.loadProgramChanges(programId, context);\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n revertProgramChange(programId: string, changeId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.revertProgramChange(changeId);\r\n\r\n var self = this;\r\n let request = this.http.put(url, changeId).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n self.loadProgramChanges(programId, context);\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n //#endregion Program Changes\r\n\r\n //#region Program Revisions\r\n\r\n public loadProgramRevisions(programId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseProgramsUrl + \"Revisions?programId=\" + programId;\r\n let request = this.http.get(url).pipe(share())\r\n this.handleNormalGetRequest(ProgramRevision, request, context);\r\n return request;\r\n }\r\n\r\n public retrieveProgramConfiguration(programId: string, revision: string, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.baseProgramsUrl + programId + \"/Configuration\";\r\n url = revision != null && revision !== \"\" ? url + \"?revision=\" + revision : url;\r\n let request = this.http.get(url).pipe(share())\r\n\r\n request.subscribe({\r\n next: response => {\r\n context.loadResponseModels(response);\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public loadProgramRevision(programId: string, revisionId: string, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.baseProgramsUrl + programId + \"/Load?revisionIdOrNumber=\" + revisionId;\r\n let request = this.http.get(url).pipe(share())\r\n\r\n request.subscribe({\r\n next: response => {\r\n context.loadResponseModels(response);\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public startProgramRevision(programId: string, revision: ProgramRevision, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseProgramsUrl + programId + \"/Revisions\";\r\n var request = this.http.post(url, revision.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(ProgramRevision, request, context);\r\n return request;\r\n }\r\n\r\n public modifyProgramRevision(programId: string, revision: ProgramRevision, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseProgramsUrl + programId + \"/Revisions/\" + revision.Id;\r\n var request = this.http.put(url, revision.serialize()).pipe(share());\r\n\r\n this.handleNormalPostPutRequest(ProgramRevision, request, context);\r\n\r\n return request;\r\n }\r\n\r\n public addChangesToRevision(revisionId: string, changeIds: string[], context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseProgramsUrl + \"Revisions/\" + revisionId + \"/AddChanges\";\r\n var request = this.http.put(url, changeIds).pipe(share());\r\n this.handleNormalPostPutRequest(ProgramRevision, request, context);\r\n return request;\r\n }\r\n\r\n public removeChangesFromRevision(revisionId: string, changeIds: string[], context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseProgramsUrl + \"Revisions/\" + revisionId + \"/RemoveChanges\";\r\n var request = this.http.put(url, changeIds).pipe(share());\r\n this.handleNormalPostPutRequest(ProgramRevision, request, context);\r\n return request;\r\n }\r\n\r\n public deployToArea(revisionId: string, revision: ProgramRevision,\r\n area: string, programContext: ProgramContext): Observable>> {\r\n const url = this.serviceUrls.baseProgramsUrl + \"Revisions/\" + revisionId + \"/Deploy?areaKey=\" + area;\r\n const requestOptions = _.extend({\r\n observe: 'response' as 'body',\r\n });\r\n\r\n const request = this.http.put>>(url,\r\n revision.serialize(),\r\n requestOptions).pipe(share());\r\n this.handleNormalPostPutRequest(ProgramRevision, request, programContext);\r\n\r\n return request;\r\n }\r\n\r\n public getDeploymentStatus(revisionId: string, programContext?: ProgramContext):\r\n Observable>> {\r\n let dataContext: DataContext = programContext ? programContext : this.tenantContext;\r\n\r\n var url = this.serviceUrls.baseProgramsUrl + \"Revisions/\" + revisionId + \"/DeploymentStatus\";\r\n\r\n const requestOptions = _.extend({\r\n observe: 'response' as 'body',\r\n });\r\n\r\n const request = this.http.get>>(url,\r\n requestOptions).pipe(share());\r\n\r\n this.handleNormalGetRequest(ProgramRevision, request, dataContext);\r\n\r\n return request;\r\n }\r\n\r\n public exportProgramRevisions(revisionId: string): void {\r\n var url = this.serviceUrls.exportProgramRevision(revisionId);\r\n\r\n var self = this;\r\n const options = {\r\n responseType: 'Blob' as 'json', // the body will be binary\r\n observe: 'response' as 'body' // we want the full response, not just the body\r\n };\r\n this.http.get>(url, options)\r\n .subscribe({\r\n next: response => {\r\n self.saveToFileSystem(response);\r\n },\r\n error: error => {\r\n self.handleError(error);\r\n }\r\n });\r\n }\r\n\r\n public undeployProgramRevision(revisionId: string, programContext: ProgramContext):\r\n Observable>> {\r\n\r\n var url = this.serviceUrls.undeployProgramRevision(revisionId);\r\n const requestOptions = _.extend({\r\n observe: 'response' as 'body',\r\n });\r\n\r\n const request = this.http.put>>(url,\r\n null,\r\n requestOptions).pipe(share());\r\n\r\n this.handleNormalPostPutRequest(ProgramRevision, request, programContext);\r\n\r\n return request;\r\n }\r\n\r\n public ListProgramsUsingAdminToken(userContext: DataContext, tenantKey: string, areaKey?: string) {\r\n this.authService.getAdminTenantAreaToken({ tenantKey, areaKey }).subscribe((response: any) => {\r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.Authorization, `Bearer ${response.Content.token}`);\r\n\r\n const options: Object = {\r\n headers: headers,\r\n withCredentials: true\r\n }\r\n\r\n var url = this.serviceUrls.baseProgramsUrl;\r\n\r\n // Make the request\r\n let request = this.http.get(url, options).pipe(share());\r\n\r\n // Update the userContext (used in the manage standbys modal)\r\n this.handleNormalGetRequest(Program, request, userContext);\r\n });\r\n }\r\n\r\n public ListProgramRevisionsUsingAdminToken(userContext: DataContext, tenantKey: string, programId: string, areaKey?: string) {\r\n this.authService.getAdminTenantAreaToken({ tenantKey, areaKey }).subscribe((response: any) => {\r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.Authorization, `Bearer ${response.Content.token}`);\r\n\r\n const options: Object = {\r\n headers: headers,\r\n withCredentials: true\r\n }\r\n\r\n var url = this.serviceUrls.baseProgramsUrl + \"Revisions?programId=\" + programId;\r\n\r\n // Make the request\r\n let request = this.http.get(url, options).pipe(share());\r\n\r\n // Update the userContext (used in the manage standbys modal)\r\n this.handleNormalGetRequest(ProgramRevision, request, userContext);\r\n });\r\n }\r\n\r\n public ListWorkflowsUsingAdminToken(userContext: DataContext, tenantKey: string, programId: string, revisionId: string, areaKey?: string) {\r\n this.authService.getAdminTenantAreaToken({ tenantKey, areaKey }).subscribe((response: any) => {\r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.Authorization, `Bearer ${response.Content.token}`);\r\n\r\n let params = new HttpParams();\r\n params = params.set('revisionId', revisionId);\r\n\r\n const options: Object = {\r\n headers: headers,\r\n withCredentials: true,\r\n params\r\n };\r\n\r\n let url = this.serviceUrls.baseGetAll(programId, \"Workflows\");\r\n\r\n // Make the request\r\n let request = this.http.get(url, options).pipe(share());\r\n\r\n // Update the userContext (used in the manage standbys modal)\r\n this.handleNormalGetRequest(Workflow, request, userContext);\r\n });\r\n }\r\n\r\n public SetStandbyWorkflows(tenantKey: string, revisionID: string,\r\n areaStandbyWorkflowCountDTO: AreaStandbyWorkflowCountDTO[],\r\n areaKey?: string) {\r\n this.authService.getAdminTenantAreaToken({ tenantKey, areaKey }).subscribe((response: any) => {\r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.Authorization, `Bearer ${response.Content.token}`);\r\n\r\n const options: Object = {\r\n headers: headers,\r\n withCredentials: true\r\n }\r\n\r\n // Build the url\r\n var url = this.serviceUrls.setStandbyWorkflows(revisionID);\r\n\r\n // Make the request\r\n let request = this.http.put(url, areaStandbyWorkflowCountDTO, options).pipe(share()).subscribe(response => { });\r\n\r\n return request;\r\n });\r\n }\r\n\r\n //#endregion Program Revisions\r\n\r\n //#region Validation Messages\r\n public getProgramValidationMessages(context: ProgramContext): Observable {\r\n // Clear the old store before loading the new Messages as the old items may have been deleted\r\n context.clearStore(new ProgramValidationMessage(), true);\r\n\r\n var url = this.serviceUrls.baseGetAll(context.programId, \"ValidationMessages\");\r\n let request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(ProgramValidationMessage, request, context);\r\n return request;\r\n }\r\n\r\n public getValidationCodes(): Observable {\r\n var url = this.serviceUrls.baseProgramsUrl + \"ValidationCodes\";\r\n\r\n let request = this.http.get(url);\r\n var obs = request.pipe(map((response: any) => {\r\n return response.Content;\r\n }));\r\n return obs;\r\n }\r\n //#endregion Validation Messages\r\n\r\n //#region Applications\r\n\r\n public addApplication(changeId: string, newApplication: Application, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"Applications\", changeId);\r\n let request = this.http.post(url, newApplication.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Application, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public addElement(changeId: string, newElement: Element, applicationId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(context.programId, \"Elements\", changeId, \"Applications\", applicationId);\r\n let request = this.http.post(url, newElement.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Element, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public updateElement(changeId: string, element: Element, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"Elements\", element.Id, changeId);\r\n let request = this.http.put(url, element.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Element, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public moveElement(changeId: string, elementId: string, beforeId: string, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.basePutAndDelete(context.programId, \"Elements\", elementId) + '/MoveElement?changeId=' + changeId;\r\n if (beforeId)\r\n url = url + \"&before=\" + beforeId;\r\n let request = this.http.put(url, {}).pipe(share());\r\n this.handleNormalPostPutRequest(Element, request, context);\r\n return request;\r\n }\r\n\r\n public deleteElement(element: Element, changeId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"Elements\", element.Id, changeId);\r\n let request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(Element, request, element, context);\r\n\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public updateApplication(changeId: string, application: Application, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"Applications\", application.Id, changeId);\r\n let request = this.http.put(url, application.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Application, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteApplication(changeId: string, application: Application, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePutAndDelete(context.programId, \"Applications\", application.Id, changeId);\r\n let request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(Application, request, application, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public loadApplications(programId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseGetAll(programId, \"Applications\");\r\n var request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Application, request, context);\r\n return request;\r\n }\r\n\r\n public loadApplication(programId: string, applicationId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.baseGetOne(programId, \"Applications\", applicationId);\r\n var request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Application, request, context);\r\n return request;\r\n }\r\n\r\n public loadApplicationSectionsWithElements(context: ProgramContext, applicationId: string = null): Observable {\r\n let params = new HttpParams();\r\n if (applicationId)\r\n params.append('ApplicationId', applicationId)\r\n\r\n var url = this.serviceUrls.baseGetAll(context.programId, \"Sections\");\r\n let request = this.http.get(url, { params }).pipe(share());\r\n this.handleNormalGetRequest(Section, request, context);\r\n return request;\r\n }\r\n\r\n public getStaticElementTypes(): Observable {\r\n var self = this;\r\n var url = self.serviceUrls.baseProgramsUrl + \"StaticElementTypes\";\r\n let request = self.http.get(url);\r\n var obs = request.pipe(map((response: any) => {\r\n return response.Content;\r\n }));\r\n return obs;\r\n }\r\n //#endregion Applications\r\n\r\n //#region Rules Domain\r\n\r\n //#region RuleSets\r\n\r\n public loadRuleSets(programId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(programId, \"RuleSets\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(RuleSet, request, context);\r\n return request;\r\n }\r\n\r\n public loadRuleSet(ruleSetId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetOne(context.programId, \"RuleSets\", ruleSetId);\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(RuleSet, request, context);\r\n return request;\r\n }\r\n\r\n public addRuleSet(changeId: string, ruleSet: RuleSet, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePost(context.programId, \"RuleSets\", changeId);\r\n const request = this.http.post(url, ruleSet.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(RuleSet, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public updateRuleSet(changeId: string, ruleSet: RuleSet, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"RuleSets\", ruleSet.Id, changeId);\r\n const request = this.http.put(url, ruleSet.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(RuleSet, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteRuleSet(ruleSet: RuleSet, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"RuleSets\", ruleSet.Id, context.changeId);\r\n const request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(RuleSet, request, ruleSet, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n //#endregion RuleSets\r\n\r\n //#region Rules\r\n\r\n public loadRules(ProgramId: string, ruleSetId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(ProgramId, \"Rules\");\r\n const requestUrl = ruleSetId !== null ? url + \"?ruleSetId=\" + ruleSetId : url;\r\n const request = this.http.get(requestUrl).pipe(share());\r\n this.handleNormalGetRequest(Rule, request, context);\r\n return request;\r\n }\r\n\r\n public addRule(changeId: string, rule: Rule, ruleSetId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePost(context.programId, \"Rules\", changeId, \"RuleSets\", ruleSetId);\r\n const request = this.http.post(url, rule.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Rule, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public updateRule(changeId: string, rule: Rule, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Rules\", rule.Id, changeId);\r\n const request = this.http.put(url, rule.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Rule, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteRule(changeId: string, rule: Rule, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Rules\", rule.Id, changeId);\r\n const request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(Rule, request, rule, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n //#endregion Rules\r\n\r\n //#endregion Rules Domain\r\n\r\n //#region Workflows Domains\r\n\r\n //#region Workflow Sets\r\n public loadWorkflowSets(programKey: string, context: ProgramContext): Observable {\r\n var self = this;\r\n var url = this.serviceUrls.baseGetAll(programKey, \"WorkflowSets\");\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n context.loadApiResponseModels(WorkflowSet, response);\r\n },\r\n error: error => {\r\n let excludedPaths = [\"WorkflowSet.Name\", \"WorkflowSet.Description\"];\r\n self.handleError(error, excludedPaths);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n public addWorkflowSet(programKey: string, workflowSet: WorkflowSet, changeId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(programKey, \"WorkflowSets\", changeId);\r\n let request = this.http.post(url, workflowSet.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(WorkflowSet, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public updateWorkflowSet(programKey: string, workflowSet: WorkflowSet, changeId: string, context: ProgramContext): Observable {\r\n var url = this.serviceUrls.basePost(programKey, \"WorkflowSets\", changeId);\r\n let request = this.http.put(url, workflowSet.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(WorkflowSet, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteWorkflowSet(workflowSet: WorkflowSet, changeId: string, context: ProgramContext): Observable> {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"WorkflowSets\", workflowSet.Id, changeId);\r\n const request = this.http.delete>(url).pipe(share());\r\n this.handleNormalDeleteRequest(WorkflowSet, request, workflowSet, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n //#endregion Workflow Sets\r\n\r\n //#region Worfklows\r\n public saveWorkflow(workflow: Workflow, changeId: string, context: ProgramContext): Observable> {\r\n let request: Observable>;\r\n\r\n if (workflow.Id) {\r\n //Update\r\n var putUrl = this.serviceUrls.basePutAndDelete(context.programId, \"Workflows\", workflow.Id, changeId);\r\n request = this.http.put>(putUrl, workflow.serialize()).pipe(share());\r\n }\r\n else {\r\n //Add\r\n var postUrl = this.serviceUrls.basePost(context.programId, \"Workflows\", changeId);\r\n request = this.http.post>(postUrl, workflow.serialize()).pipe(share());\r\n }\r\n\r\n this.handleNormalPostPutRequest(Workflow, request, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteWorkflow(workflow: Workflow, changeId: string, context: ProgramContext): Observable> {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Workflows\", workflow.Id, changeId);\r\n const request = this.http.delete>(url).pipe(share());\r\n this.handleNormalDeleteRequest(Workflow, request, workflow, context);\r\n this.postRevisionedEdit(request, context);\r\n return request;\r\n }\r\n\r\n public loadWorkflows(programKey: string, context: DataContext): Observable {\r\n let url = this.serviceUrls.baseGetAll(programKey, \"Workflows\");\r\n let request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Workflow, request, context);\r\n return request;\r\n }\r\n\r\n public loadWorkflow(workflowDefId: string, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.baseGetOne(context.programId, \"Workflows\", workflowDefId);\r\n let request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Workflow, request, context);\r\n return request;\r\n }\r\n\r\n //#endregion Workflows\r\n\r\n //#region Phases\r\n\r\n public loadPhases(programId: string, workflowId: string, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.baseGetAll(programId, \"Phases\");\r\n let params;\r\n if (workflowId !== null) {\r\n params = new HttpParams().set(\"workflowId\", workflowId);\r\n }\r\n let request = this.http.get(url, {\r\n params: params\r\n }).pipe(share());\r\n\r\n this.handleNormalGetRequest(Phase, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public addPhase(phaseModel: Phase, changeId: string, workflowId: string, before = null, context: ProgramContext) {\r\n let url = this.serviceUrls.basePost(context.programId, \"Phases\", changeId, \"Workflows\", workflowId);\r\n if (before) url = url + \"&before=\" + before;\r\n const request = this.http.post(url, phaseModel.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Phase, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public modifyPhase(phaseModel: Phase, changeId: string, context: ProgramContext) {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Phases\", phaseModel.Id, changeId);\r\n const request = this.http.put(url, phaseModel.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Phase, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deletePhase(phaseModel: Phase, changeId: string, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Phases\", phaseModel.Id, changeId);\r\n let request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(Phase, request, phaseModel, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public movePhase(changeId: string, phaseId: string, beforeId: string, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.basePutAndDelete(context.programId, \"Phases\", phaseId) + '/MovePhase?changeId=' + changeId;\r\n if (beforeId)\r\n url = url + \"&before=\" + beforeId;\r\n let request = this.http.put(url, {}).pipe(share());\r\n this.handleNormalPostPutRequest(Workflow, request, context);\r\n return request;\r\n }\r\n //#endregion Phases\r\n\r\n //#region Tasks\r\n public loadTasks(programId: string, workflowId: string, context: ProgramContext): Observable {\r\n let params;\r\n if (workflowId !== null) {\r\n params = new HttpParams().set(\"workflowId\", workflowId);\r\n }\r\n let url = this.serviceUrls.baseGetAll(programId, \"Tasks\");\r\n let request = this.http.get(url, {\r\n params: params\r\n }).pipe(share());\r\n\r\n this.handleNormalGetRequest(Task, request, context);\r\n return request;\r\n }\r\n\r\n public loadTasksByWorkflowSet(programId: string, workflowSetId: string, context: ProgramContext): Observable {\r\n let params = new HttpParams().set(\"workflowSetId\", workflowSetId);\r\n let url = this.serviceUrls.baseGetAll(programId, \"Tasks\");\r\n let request = this.http.get(url, {\r\n params: params\r\n }).pipe(share());\r\n\r\n this.handleNormalGetRequest(Task, request, context);\r\n return request;\r\n }\r\n\r\n public addTask(changeId: string, taskDef: Task, workflowId: string, context: ProgramContext) {\r\n const url = this.serviceUrls.basePost(context.programId, \"Tasks\", changeId, \"Workflows\", workflowId);\r\n const request = this.http.post(url, taskDef.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public modifyTask(taskDef: Task, workflowId: string, context: ProgramContext, changeId: string = null) {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Tasks\", taskDef.Id, changeId, workflowId);\r\n const request = this.http.put(url, taskDef.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Task, request, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public deleteTask(changeId: string, taskDef: Task, context: ProgramContext): Observable {\r\n const url = this.serviceUrls.basePutAndDelete(context.programId, \"Tasks\", taskDef.Id, changeId);\r\n let request = this.http.delete(url).pipe(share());\r\n this.handleNormalDeleteRequest(Task, request, taskDef, context);\r\n this.postRevisionableEdit(request, context);\r\n return request;\r\n }\r\n\r\n public moveTask(changeId: string, taskId: string, beforeId: string, context: ProgramContext): Observable {\r\n let url = this.serviceUrls.basePutAndDelete(context.programId, \"Tasks\", taskId) + '/MoveTask?changeId=' + changeId;\r\n if (beforeId)\r\n url = url + \"&before=\" + beforeId;\r\n let request = this.http.put(url, {}).pipe(share());\r\n this.handleNormalPostPutRequest(Phase, request, context);\r\n return request;\r\n }\r\n //#endregion Tasks\r\n //#endregion Workflows Domain\r\n\r\n //#region Producers\r\n\r\n public loadProducers(context: ProgramContext): Observable {\r\n const url = this.serviceUrls.baseGetAll(context.programId, \"Producers\");\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(Producer, request, context);\r\n return request;\r\n }\r\n\r\n //#endregion Producers\r\n\r\n //#region Enums\r\n public loadPolicyRatedStatuses(): Observable {\r\n var url = this.serviceUrls.PolicyRatedStatuses;\r\n\r\n let request = this.http.get(url).pipe(share());\r\n this.handleRequestWithoutResponse(request);\r\n return request;\r\n }\r\n //#endregion Enums\r\n\r\n //#region Private Helpers\r\n protected postRevisionableEdit(request: Observable, context: ProgramContext) {\r\n const self = this;\r\n\r\n // After a revisionable has been edited, we need to reload the ValidationMessages as well as the ProgramChange\r\n request.subscribe(\r\n response => {\r\n self.getProgramValidationMessages(context);\r\n\r\n // The Change will invalidate, so if its not already invalid, we need to reload it.\r\n if (context.changeId) {\r\n var change = context.get(ModelUtils.createDomainId(new ProgramChange(), context.changeId)) as ProgramChange;\r\n if (change?.ValidationStatus != \"Invalid\") {\r\n self.loadProgramChangeById(context.changeId, context);\r\n }\r\n }\r\n }\r\n )\r\n }\r\n\r\n protected postRevisionedEdit(request: Observable>, context: ProgramContext) {\r\n const self = this;\r\n\r\n // After a revisioned has been edited, we need to reload the ValidationMessages as well as the ProgramChange\r\n request.subscribe(\r\n response => {\r\n self.getProgramValidationMessages(context);\r\n\r\n // All changes will invalidate, so we will need to reload them.\r\n self.loadProgramChanges(context.programId, context);\r\n }\r\n )\r\n }\r\n //#endregion Private Helpers\r\n}\r\n\r\nexport interface EditableStateVM {\r\n ChangeId?: string;\r\n RevisionId?: string;\r\n EditableState: EditableStateEnum\r\n}\r\n\r\nexport interface TestScriptDTO {\r\n ScriptFunction: string;\r\n Conditions: ConditionalLineDTO[];\r\n Parameters: TestScriptParametersDTO[];\r\n SetDateTo: string,\r\n ReturnValue?: string;\r\n}\r\n\r\nexport interface TestScriptParametersDTO {\r\n Name: string;\r\n Id: string;\r\n Value: any;\r\n IsList?: boolean;\r\n}\r\n\r\nexport interface ConditionalLineDTO {\r\n Condition: string;\r\n ResultIfTrue: string;\r\n}","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { ProgramRevisionContext } from '@Core/Lib/Contexts/program-revision-context';\r\n\r\n\r\n@Injectable()\r\nexport class ProgramRevisionWorkflowService extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n public static baseUrl: string = BaseService.baseUrl + '/Workflows/';\r\n }\r\n\r\n constructor(\r\n private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n loadProgramRevision(context: ProgramRevisionContext) {\r\n const url = this.serviceUrls.baseUrl + \"Programs/Revisions/\" + context.revisionId;\r\n const request = this.http.get(url);\r\n return request;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\n\r\nimport { HttpHeaderNames } from '@Core/Lib/Enums/http-header-names';\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { TenantService } from '@Core/CodeGen/Services/tenant.service';\r\nimport { Observable, catchError, combineLatest, map, of, switchMap, take, } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class ReportsService {\r\n private config: ReportsConfigValuesDTO;\r\n private authToken: string;\r\n \r\n constructor(private http: HttpClient,\r\n private authService: AuthService,\r\n private tenantService: TenantService\r\n ) { }\r\n\r\n public openReports() {\r\n this.authenticateReports().subscribe(() => window.open(this.config.appUrl));\r\n }\r\n\r\n public authenticateReports(): Observable {\r\n return combineLatest([\r\n this.getInsurityBIToken(), \r\n this.getReportsConfigValues()\r\n ]).pipe(\r\n take(1),\r\n switchMap(([token, config]: [string, ReportsConfigValuesDTO]) => {\r\n if (!token || !config) {\r\n return;\r\n }\r\n \r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.Authorization, `Bearer ${this.authToken}`);\r\n \r\n const options: any = {\r\n headers: headers,\r\n responseType: 'text',\r\n withCredentials: true\r\n };\r\n \r\n return this.http.get(config.authUrl, options).pipe(\r\n switchMap(response => {\r\n const isSuccess = response != null;\r\n return of(isSuccess);\r\n }),\r\n catchError(error => {\r\n return of(false)\r\n })\r\n );\r\n })\r\n );\r\n }\r\n\r\n public logoutReports(logoutUri: string) {\r\n const headers: HttpHeaders = new HttpHeaders()\r\n .set(HttpHeaderNames.Authorization, `Bearer ${this.authToken}`);\r\n\r\n const options: Object = {\r\n headers: headers,\r\n responseType: 'text',\r\n withCredentials: true\r\n };\r\n\r\n return this.http.delete(logoutUri, options);\r\n }\r\n\r\n public getReportsConfigValues(): Observable {\r\n if (this.config) {\r\n return of(this.config);\r\n }\r\n\r\n return this.tenantService.RetrieveReportConfigValues().pipe(\r\n map((response: any) => {\r\n this.config = response.Content as ReportsConfigValuesDTO;\r\n return this.config;\r\n })\r\n );\r\n }\r\n\r\n public getInsurityBIToken(): Observable {\r\n if (this.authToken) {\r\n return of(this.authToken);\r\n }\r\n\r\n return this.authService.insurityBIToken().pipe(\r\n map((response: any) => {\r\n this.authToken = response.Content as string;\r\n return this.authToken;\r\n })\r\n );\r\n }\r\n}\r\n\r\nexport interface ReportsConfigValuesDTO {\r\n appId: string;\r\n sheetId: string;\r\n authUrl: string;\r\n appUrl: string;\r\n wssUrl: string;\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { HubConnectionState } from \"@microsoft/signalr\";\r\nimport { SyncStatus } from \"@Shared/Components/sm-sync-status/sm-sync-status.component\";\r\nimport _ from \"lodash\";\r\nimport { BehaviorSubject, Observable } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class SyncHubStatusService {\r\n\r\n private _states: Map = \r\n new Map();\r\n\r\n private _hubs: BehaviorSubject> = \r\n new BehaviorSubject>(new Map());\r\n\r\n private _status: BehaviorSubject = new BehaviorSubject(null);\r\n\r\n constructor(){}\r\n\r\n public get states() : Observable> { \r\n return this._hubs;\r\n }\r\n\r\n public get status() : Observable {\r\n return this._status;\r\n }\r\n\r\n public setHubState(hubName: string, state: HubConnectionState) {\r\n this._states.set(hubName, state);\r\n this.update();\r\n }\r\n\r\n public removeHub(hubName: string)\r\n {\r\n this._states.delete(hubName);\r\n this.update();\r\n }\r\n\r\n private update(): void {\r\n // If there are no states, then we are not using any hubs\r\n if (!this._states.size) {\r\n this.pushChanges(null);\r\n return;\r\n }\r\n\r\n // If any hub is reconnecting, show reconnecting\r\n if (_.some([...this._states.values()], (state) => {\r\n return state === HubConnectionState.Reconnecting;\r\n })) {\r\n this.pushChanges(SyncStatus.Reconnecting);\r\n } \r\n // else if all hub are connected, show connected\r\n else if (_.every([...this._states.values()], (state: string) => {\r\n return state === HubConnectionState.Connected\r\n })) {\r\n this.pushChanges(SyncStatus.Connected);\r\n }\r\n // otherwise we must be disconnected \r\n else {\r\n this.pushChanges(SyncStatus.Disconnected);\r\n }\r\n\r\n this._hubs.next(new Map(this._states));\r\n }\r\n\r\n private pushChanges(newStatus: SyncStatus): void {\r\n this._hubs.next(new Map(this._states));\r\n if (this._status.value !== newStatus) {\r\n this._status.next(newStatus);\r\n }\r\n }\r\n\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\nimport { Observable, of } from 'rxjs';\r\nimport { share, map, shareReplay, catchError } from 'rxjs/operators';\r\n\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\n\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { TenantUser, Types as TenantTypes, ITenantUser, SMIdentity, App } from '@Core/CodeGen/Models/configuration.models';\r\n\r\nimport { SmAssignableBadgeVM } from \"@Shared/Components/sm-assignable-badge/sm-assignable-badge.viewmodel\";\r\n\r\n\r\n@Injectable()\r\nexport class TenantAssignableService\r\n extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n private static baseUrl: string = BaseService.baseUrl + '/';\r\n public static Assignables: string = ServiceUrls.baseUrl + 'Tenant/Identities';\r\n }\r\n\r\n private CachedAssignablesRequests: Map | Observable> = new Map();\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n private tenantContext: TenantContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n public GetAssignable(identityKey: string): Observable {\r\n if (!identityKey) {\r\n const user: TenantUser = new TenantUser();\r\n user.DisplayName = \"Unknown\";\r\n user.Initials = \"?\";\r\n return of(user);\r\n }\r\n // First check if we have the data in the context\r\n const smIdentity = this.tenantContext.get(ModelUtils.createDomainId(new SMIdentity(), identityKey)) as SMIdentity;\r\n\r\n if (smIdentity) {\r\n // If we do then return an observable \"of\" smIdentity \r\n return of(smIdentity);\r\n }\r\n\r\n // If we dont have it in context then check if there is already an http request\r\n const cachedRequest = this.CachedAssignablesRequests.get(identityKey) as Observable & Observable;\r\n if (cachedRequest) {\r\n // Return cached request\r\n return cachedRequest\r\n .pipe(\r\n map((smIden: SMIdentity | SMIdentity[]) => {\r\n // Here we check if its an array because it could be that the cached request was made to get multiple Assignables\r\n if (_.isArray(smIden)) {\r\n const smIdens = smIden as SMIdentity[];\r\n for (const i of smIdens) {\r\n if (i.Id === identityKey) {\r\n return i;\r\n }\r\n }\r\n } else {\r\n return smIden;\r\n }\r\n })\r\n );\r\n }\r\n\r\n const request = this.http.get(`${this.serviceUrls.Assignables}`, {\r\n params: {\r\n ids: identityKey\r\n }\r\n }).pipe(\r\n // We use the map pipe to transform our data and return SmIdentity\r\n map(\r\n response => {\r\n this.tenantContext.loadApiResponseModels(TenantTypes[response['Content'][0][\"@Type\"]], response);\r\n const smIdent = this.tenantContext.get(ModelUtils.createDomainId(new SMIdentity(), identityKey)) as SMIdentity;\r\n \r\n // We have now loaded the model into the context \r\n this.CachedAssignablesRequests.delete(identityKey);\r\n return smIdent;\r\n }),\r\n catchError(this.handleHttpError),\r\n shareReplay(1));\r\n\r\n const r = this.CachedAssignablesRequests.set(identityKey, request);\r\n // Return the request observable\r\n return r.get(identityKey) as Observable;\r\n }\r\n\r\n public getAssignableAsBadge(identityId): Observable {\r\n if (!identityId) \r\n return null;\r\n return this.GetAssignable(identityId).pipe(\r\n map(t => {\r\n if (t) {\r\n return { \r\n Type: t instanceof App ? \"App\" : \"User\", \r\n Name: t.DisplayName, \r\n Id: t.Id, \r\n Initials: t instanceof App ? null : (t as TenantUser).Initials, \r\n Title: t instanceof App ? null : (t as TenantUser).Title, \r\n Email: t instanceof App ? null : (t as TenantUser).Email,\r\n Disabled: _.isNil(t?.Active) ? false : !t?.Active\r\n } as SmAssignableBadgeVM;\r\n }\r\n else\r\n return null;\r\n }));\r\n }\r\n\r\n public loadUsersByIdentity(identityKeys: string[]): Observable {\r\n if (!identityKeys?.length)\r\n return of([]);\r\n \r\n \r\n var identityKeysToLoad = _.clone(identityKeys); \r\n const existingTenantUsers: TenantUser[] = [];\r\n let i = identityKeysToLoad.length\r\n while (i--) {\r\n // If we have it in the context or if there is an existing request for this Assignable then remove from the url list\r\n const tenantUser = this.tenantContext.get(ModelUtils.createDomainId(new TenantUser(), identityKeysToLoad[i])) as TenantUser;\r\n if (tenantUser) {\r\n identityKeysToLoad.splice(i, 1);\r\n existingTenantUsers.push(tenantUser);\r\n }\r\n }\r\n if (identityKeysToLoad.length === 0) {\r\n return of(existingTenantUsers);\r\n }\r\n const query = `ids=${identityKeysToLoad.join('&ids=')}`;\r\n const request = this.http.get(`${this.serviceUrls.Assignables}?${query}`)\r\n .pipe(\r\n map(x => x.Content),\r\n map(\r\n (response: ITenantUser[]) => {\r\n const results = response.map(tenantResponse => {\r\n this.tenantContext.loadApiResponseModels(TenantTypes[tenantResponse[\"@Type\"]], tenantResponse);\r\n this.CachedAssignablesRequests.delete(tenantResponse.Id);\r\n return this.tenantContext.get(ModelUtils.createDomainId(new TenantUser(), tenantResponse.Id)) as TenantUser;\r\n });\r\n return results.concat(existingTenantUsers);\r\n }),\r\n catchError(this.handleHttpError),\r\n share());\r\n\r\n identityKeysToLoad.forEach(key => {\r\n this.CachedAssignablesRequests.set(key, request);\r\n });\r\n\r\n return this.CachedAssignablesRequests.get(identityKeysToLoad[0]) as Observable;\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { HttpClient } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/internal/operators/share';\r\n\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\n\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\n\r\n\r\n@Injectable()\r\nexport class TenantDataService extends BaseService {\r\n\r\n public serviceUrls = class ServiceUrls {\r\n public static baseDataUrl: string = BaseService.baseUrl + '/Data/';\r\n private static baseProgramsUrl: string = BaseService.baseUrl + '/Programs/';\r\n public static dataPointDefinitionTypesUrl: string = ServiceUrls.baseProgramsUrl + 'DataPointTypes/';\r\n }\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n protected loggingService: LoggingService,\r\n private tenantContext: TenantContext,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n public getDataPointTypes(): Observable {\r\n const self = this;\r\n const request = this.http.get(this.serviceUrls.dataPointDefinitionTypesUrl).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n self.tenantContext.DataPointTypes.next(response.Content);\r\n },\r\n error: error => {\r\n self.tenantContext.DataPointTypes.next(null);\r\n self.handleError(error)\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n}\r\n","import { HttpClient, HttpParams, HttpResponse } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\n\r\nimport _ from 'lodash';\r\nimport { BehaviorSubject, Observable, Subject, of, AsyncSubject } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\n\r\nimport { Document } from '@Core/CodeGen/Models/area.models';\r\nimport { AccountRole, Area, Company, CustomTable, CustomTableRow, DocumentCategory, EmailTemplate,\r\n IProducer, Producer, Product, Program, ProgramRevision, SecurityRole, SMIdentity, TenantUser,\r\n TransactionType, WorkGroup, Webhook } from '@Core/CodeGen/Models/configuration.models';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\n\r\nimport { FeatureFacetViewModel } from '@Shared/Components/sm-feature-facets/feature-facet.model';\r\n\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class TenantTenantService\r\n extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n private static replaceValues(url: string, baseId: string = null): string {\r\n return url\r\n .replace(\"{BaseId}\", baseId);\r\n }\r\n private static baseUrl: string = BaseService.baseUrl + '/';\r\n public static Tenant: string = ServiceUrls.baseUrl + 'Tenant/';\r\n\r\n public static ProgramsBase: string = ServiceUrls.baseUrl + \"Programs/\"\r\n public static Programs: string = ServiceUrls.Tenant + 'Programs/';\r\n public static SecurityRoles: string = ServiceUrls.Tenant + 'SecurityRoles';\r\n public static FeatureFacets: string = ServiceUrls.Tenant + 'FeatureFacets';\r\n public static Users: string = ServiceUrls.Tenant + 'Users';\r\n public static Identities: string = ServiceUrls.Tenant + 'Identities';\r\n public static Companies: string = ServiceUrls.Tenant + 'Companies';\r\n public static Producers: string = ServiceUrls.Tenant + 'Producers';\r\n public static CompanyProducts: string = 'Products';\r\n public static Products: string = ServiceUrls.Tenant + 'Products';\r\n public static TransactionTypes: string = ServiceUrls.Tenant + 'Transactions';\r\n public static TransactionInsPolicyConfigs: string = ServiceUrls.Tenant + 'TransactionInsPolicyConfigs';\r\n public static DocumentCategories: string = ServiceUrls.Tenant + 'DocumentCategories';\r\n public static Documents: string = ServiceUrls.Tenant + 'Documents';\r\n public static Areas: string = ServiceUrls.Tenant + 'Areas';\r\n public static ProgramRevisions: string = ServiceUrls.Tenant + \"Revisions\";\r\n public static CustomTables: string = ServiceUrls.Tenant + \"Tables\";\r\n public static CustomTableRows: string = ServiceUrls.Tenant + \"Rows\";\r\n public static Data: string = ServiceUrls.baseUrl + 'Data';\r\n public static Workgroups: string = ServiceUrls.baseUrl + 'Tenant/Workgroups';\r\n public static EmailTemplates: string = ServiceUrls.Tenant + \"EmailTemplates\";\r\n public static ResendUserInvites: string = ServiceUrls.Users + '/ResendInvite';\r\n public static ProducerSearchTemplate: string = ServiceUrls.Producers + '/Search';\r\n\r\n public static accountRoles: string = ServiceUrls.Tenant + 'AccountRoles';\r\n\r\n public static CompaniesUnsubstituted: string = ServiceUrls.Companies + '/{BaseId}/';\r\n public static CompaniesPost(companyId: string): string {\r\n return (this.replaceValues(ServiceUrls.CompaniesUnsubstituted, companyId));\r\n }\r\n\r\n public static ProductsUnsubstituted: string = ServiceUrls.CompanyProducts + '/{BaseId}/';\r\n public static ProductsPost(productId: string): string {\r\n return (this.replaceValues(ServiceUrls.ProductsUnsubstituted, productId));\r\n }\r\n\r\n public static RemoveUserFromTenantUnsubstituted: string = ServiceUrls.Users + '/{BaseId}/Remove';\r\n public static RemoveUserFromTenant(userId: string): string {\r\n return (this.replaceValues(ServiceUrls.RemoveUserFromTenantUnsubstituted, userId));\r\n }\r\n\r\n public static EnableUserForTenantUnsubstituted: string = ServiceUrls.Users + '/{BaseId}/Enable';\r\n public static EnableUserForTenant(userId: string): string {\r\n return (this.replaceValues(ServiceUrls.EnableUserForTenantUnsubstituted, userId));\r\n }\r\n\r\n public static customTableRow(rowId): string {\r\n return ServiceUrls.CustomTableRows + \"/\" + rowId;\r\n }\r\n\r\n public static customTableRowByTable(tableId: string): string {\r\n return ServiceUrls.CustomTables + \"/\" + tableId + \"/Rows\";\r\n\r\n }\r\n\r\n private static baseWebhooksUrl: string = BaseService.baseUrl + '/Tenant/Webhooks'\r\n\r\n public static Webhooks(): string {\r\n return ServiceUrls.baseWebhooksUrl;\r\n }\r\n\r\n public static WebhooksById(webhookId: string): string {\r\n return `${ServiceUrls.baseWebhooksUrl}/${webhookId}`;\r\n }\r\n }\r\n\r\n private loadingSecurityRoles: boolean;\r\n private loadingUsers: boolean;\r\n public companiesLoaded: boolean;\r\n public producersLoaded: boolean;\r\n public docCategoriesLoaded: boolean;\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n private tenantContext: TenantContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n public loadPrograms(): Observable {\r\n const request = this.http.get(this.serviceUrls.Programs).pipe(share());\r\n this.handleNormalGetRequest(Program, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public loadProgramRevisions(): Observable {\r\n const request = this.http.get(this.serviceUrls.ProgramRevisions).pipe(share());\r\n this.handleNormalGetRequest(ProgramRevision, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public loadProgramValidationMessages(programId: string): Observable {\r\n const request = this.http.get(this.serviceUrls.ProgramsBase + programId + \"/ValidationMessages\").pipe(share());\r\n return request;\r\n }\r\n\r\n public loadProducers(): Observable {\r\n var self = this;\r\n const request = this.http.get(this.serviceUrls.Producers).pipe(share());\r\n this.handleNormalGetRequest(Producer, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public loadProducer(producerIdOrCode: string): Observable {\r\n var self = this;\r\n const request = this.http.get(`${this.serviceUrls.Producers}/${producerIdOrCode}`).pipe(share());\r\n this.handleNormalGetRequest(Producer, request, this.tenantContext); \r\n return request;\r\n }\r\n\r\n public loadCompanies(): Observable {\r\n const request = this.http.get(this.serviceUrls.Companies).pipe(share());\r\n this.handleNormalGetRequest(Company, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public loadProducts(): Observable> {\r\n const request = this.http.get(this.serviceUrls.Products).pipe(share());\r\n this.handleNormalGetRequest(Product, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n private hasProduct(productId: string): boolean {\r\n return this.tenantContext.has(productId);\r\n }\r\n\r\n public getProduct(productId: string): Observable {\r\n const productDomainId = ModelUtils.createDomainId(new Product(), productId);\r\n\r\n if (this.hasProduct(productDomainId)) {\r\n return of(this.tenantContext.get(productDomainId) as Product);\r\n }\r\n else {\r\n const request = this.http.get(this.serviceUrls.Products + '/' + productId).pipe(share());\r\n this.handleNormalGetRequest(Product, request, this.tenantContext);\r\n return request;\r\n };\r\n }\r\n\r\n // #region Transactions\r\n public loadTransactionTypes(): Observable {\r\n const request = this.http.get(this.serviceUrls.TransactionTypes).pipe(share());\r\n this.handleNormalGetRequest(TransactionType, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public loadTransactionType(id: string): Observable {\r\n const url = this.serviceUrls.TransactionTypes + \"/\" + id;\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(TransactionType, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n // #endregion Transactions\r\n\r\n public loadUsers(): Observable {\r\n this.loadingUsers = true;\r\n var self = this;\r\n\r\n let request = this.http.get(this.serviceUrls.Users).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n self.tenantContext.loadApiResponseModels(SMIdentity, response);\r\n self.loadingUsers = false;\r\n },\r\n error: error => {\r\n self.handleError(error)\r\n self.loadingUsers = false;\r\n }\r\n });\r\n\r\n return request;\r\n }\r\n\r\n public getFeatureFacets(): Observable {\r\n var observable : Subject = new AsyncSubject();\r\n\r\n this.http.get(this.serviceUrls.FeatureFacets).subscribe({\r\n next: response => {\r\n observable.next(response.Content);\r\n observable.complete();\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n observable.error(error);\r\n }\r\n });\r\n\r\n return observable;\r\n }\r\n\r\n public loadSecurityRoles(): void {\r\n this.loadingSecurityRoles = true;\r\n this.http.get(this.serviceUrls.SecurityRoles).subscribe({\r\n next: response => {\r\n this.tenantContext.loadApiResponseModels(SecurityRole, response);\r\n this.loadingSecurityRoles = false;\r\n },\r\n error: error => {\r\n this.handleError(error)\r\n this.loadingSecurityRoles = false;\r\n }\r\n });\r\n }\r\n\r\n public getSecurityRole(id: string): Observable {\r\n var self = this;\r\n var findRole = function (): SecurityRole {\r\n return _.find(self.tenantContext.getStore(new SecurityRole()).values.getValue(), { Id: id }) as SecurityRole;\r\n }\r\n\r\n // Are we still loading?\r\n if (this.loadingSecurityRoles) {\r\n let source = new Subject();\r\n\r\n this.tenantContext.getStore(new SecurityRole()).values.subscribe(\r\n () => {\r\n var r = findRole();\r\n if (r) {\r\n source.next(r);\r\n }\r\n //TODO: Clean up the subscription\r\n }\r\n );\r\n\r\n return source;\r\n }\r\n\r\n let role = findRole();\r\n\r\n // is the role in our store?\r\n if (role) {\r\n return new BehaviorSubject(role);\r\n }\r\n // id is invalid, so return null\r\n else {\r\n return new BehaviorSubject(null);\r\n }\r\n }\r\n\r\n public getUser(id: string): Observable {\r\n let self = this;\r\n\r\n // Are we still loading?\r\n if (this.loadingUsers) {\r\n let source = new Subject();\r\n\r\n this.tenantContext.getStore(new TenantUser()).values.subscribe(\r\n () => {\r\n let r = self.findUser(id);\r\n if (r) {\r\n source.next(r);\r\n }\r\n //TODO: Clean up the subscription\r\n }\r\n );\r\n\r\n return source;\r\n }\r\n\r\n let user = this.findUser(id);\r\n\r\n // is the role in our store?\r\n if (user) {\r\n return new BehaviorSubject(user);\r\n }\r\n // id is invalid, so return null\r\n else {\r\n return new BehaviorSubject(null);\r\n }\r\n }\r\n\r\n public findUser(id: string): TenantUser {\r\n return _.find(this.tenantContext.getStore(new TenantUser()).values.getValue(), { Id: id }) as TenantUser;\r\n }\r\n\r\n // POST\r\n public createSecurityRole(securityRole: SecurityRole, handleErrors: boolean = true): Observable {\r\n\r\n let request = this.http.post(this.serviceUrls.SecurityRoles, securityRole.serialize()).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n new SecurityRole().deserialize(response.Content, this.tenantContext);\r\n },\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n\r\n return request;\r\n }\r\n\r\n // PUT\r\n public updateSecurityRole(securityRole: SecurityRole, handleErrors: boolean = true): Observable {\r\n\r\n let savableRole = securityRole.serialize();\r\n\r\n let request = this.http.put(this.serviceUrls.SecurityRoles + '/' + securityRole.Id, savableRole).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => new SecurityRole().deserialize(response.Content, this.tenantContext),\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n\r\n return request;\r\n }\r\n\r\n // PUT\r\n public updateUser(user: TenantUser, handleErrors: boolean = true): Observable {\r\n\r\n let userForSave = user.serialize();\r\n\r\n let request = this.http.put(this.serviceUrls.Users + '/' + user.Id, userForSave).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => this.tenantContext.loadApiResponseModels(TenantUser, response),\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n\r\n return request;\r\n }\r\n\r\n // PUT\r\n public updateProduct(product: Product, handleErrors: boolean = true): Observable {\r\n\r\n let productForSave = product.serialize();\r\n\r\n let request = this.http.put(this.serviceUrls.Products + '/' + productForSave.Id, productForSave).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => this.tenantContext.loadApiResponseModels(Product, response),\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n\r\n return request;\r\n }\r\n\r\n // PUT\r\n public updateCompany = (company: Company, handleErrors: boolean = true): Observable => {\r\n\r\n let companyForSave = company.serialize();\r\n\r\n let request = this.http.put(this.serviceUrls.Companies + '/' + companyForSave.Id, companyForSave).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => this.tenantContext.loadApiResponseModels(Company, response),\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n\r\n return request;\r\n }\r\n\r\n // PUT\r\n public updateProducer(producer: Producer, handleErrors: boolean = true): Observable {\r\n\r\n let producerForSave = producer.serialize();\r\n\r\n let request = this.http.put(this.serviceUrls.Producers + '/' + producerForSave.Id, producerForSave).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => this.tenantContext.loadApiResponseModels(Producer, response),\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n\r\n return request;\r\n }\r\n\r\n convertUserToSavableUser(user: TenantUser) {\r\n var savableUser = {\r\n Key: user.Id,\r\n Email: user.Email,\r\n FirstName: user.FirstName,\r\n MiddleName: user.MiddleName,\r\n LastName: user.LastName,\r\n NameSuffix: user.NameSuffix,\r\n Phone: user.Phone,\r\n Title: user.Title,\r\n Honorific: user.Honorific,\r\n FillsSecurityRole: user.FillsSecurityRole().map(secRole => secRole.Id),\r\n };\r\n\r\n return savableUser;\r\n }\r\n\r\n\r\n //#region Users\r\n public inviteUsers(users: TenantUser[])\r\n : Observable> {\r\n var serializedUsers = _.map(users, e => e.serialize());\r\n let request = this.http.post(this.serviceUrls.Users, serializedUsers).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n this.tenantContext.loadApiResponseModels(TenantUser, response);\r\n },\r\n error: error => null // without this line of code, InviteUsers.Component.inviteUsers' error\r\n // channel won't be triggered, and error reponse will not be displayed.\r\n });\r\n return request;\r\n }\r\n\r\n public resendUserInvite(users: { Email: string, FillsSecurityRole: any[] }[]): Observable {\r\n let request = this.http.post(this.serviceUrls.ResendUserInvites, users).pipe(share());\r\n this.handleRequestWithoutResponse(request);\r\n return request;\r\n }\r\n\r\n public removeUserFromTenant(userId: string): Observable {\r\n let request = this.http.put(this.serviceUrls.RemoveUserFromTenant(userId), null).pipe(share());\r\n this.handleNormalPostPutRequest(TenantUser, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public enableUserForTenant(userId: string): Observable {\r\n let request = this.http.put(this.serviceUrls.EnableUserForTenant(userId), null).pipe(share());\r\n this.handleNormalPostPutRequest(TenantUser, request, this.tenantContext);\r\n return request;\r\n }\r\n //#endregion Users\r\n\r\n // POST\r\n public addCompany = (company: Company): Observable => {\r\n let request = this.http.post(this.serviceUrls.Companies, company.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Company, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n // POST\r\n public addProducer(producer: Producer): Observable {\r\n let request = this.http.post(this.serviceUrls.Producers, producer.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Producer, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public getProducer(producerIdOrCode: string, handleErrors: boolean = true): Observable> {\r\n let request = this.http.get>(`${this.serviceUrls.Producers}/${producerIdOrCode}`).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => { },\r\n error: error => handleErrors ? this.handleError(error) : null\r\n });\r\n return request;\r\n }\r\n\r\n public searchProducers(searchString: string, tenantContext: TenantContext): Observable {\r\n var url = this.serviceUrls.ProducerSearchTemplate;\r\n let request = this.http.get(url + \"?searchTerms=\" + encodeURIComponent(searchString)).pipe(share());\r\n this.handleRequestWithoutResponse(request);\r\n return request;\r\n }\r\n\r\n // POST\r\n public addProduct(product: Product): Observable {\r\n const url = this.serviceUrls.Products;\r\n let request = this.http.post(url, product.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Product, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n /**\r\n * @param newDocumentCategory\r\n * @returns {Observable}\r\n */\r\n public addDocumentCategory(docCategory: DocumentCategory): Observable {\r\n const request = this.http.post(this.serviceUrls.DocumentCategories, docCategory.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DocumentCategory, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n /**\r\n * @param docCategory\r\n * @param context\r\n */\r\n public updateDocumentCategory(docCategory: DocumentCategory, context: DataContext = this.tenantContext): Observable {\r\n const request = this.http.put(`${this.serviceUrls.DocumentCategories}/${docCategory.Id}`, docCategory.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(DocumentCategory, request, context);\r\n return request;\r\n }\r\n\r\n /**\r\n * @param docCategory\r\n * @param context\r\n */\r\n public deleteDocumentCategory(docCategory: DocumentCategory, context: DataContext = this.tenantContext): Observable {\r\n const request = this.http.delete(this.serviceUrls.DocumentCategories).pipe(share());\r\n this.handleNormalDeleteRequest(DocumentCategory, request, docCategory, context);\r\n return request;\r\n }\r\n\r\n // #region Account Roles\r\n\r\n public loadAccountRoles(context: DataContext = this.tenantContext): Observable {\r\n var url = this.serviceUrls.accountRoles;\r\n var request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(AccountRole, request, context);\r\n return request;\r\n }\r\n\r\n public addAccountRole(accountRole: AccountRole, context: TenantContext): Observable {\r\n const url = this.serviceUrls.accountRoles;\r\n const request = this.http.post(url, accountRole.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(AccountRole, request, context);\r\n return request;\r\n }\r\n\r\n public editAccountRole(accountRole: AccountRole, context: TenantContext): Observable {\r\n const url = this.serviceUrls.accountRoles + '/' + accountRole.Id;\r\n const request = this.http.put(url, accountRole.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(AccountRole, request, context);\r\n return request;\r\n }\r\n\r\n // #endregion Account Roles\r\n\r\n // #region Work Groups\r\n\r\n public loadWorkGroups(context: DataContext = this.tenantContext): Observable {\r\n const url = this.serviceUrls.Workgroups;\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(WorkGroup, request, context);\r\n return request;\r\n }\r\n\r\n public loadWorkGroup(id: string, context: DataContext = this.tenantContext): Observable {\r\n const url = this.serviceUrls.Workgroups + \"/\" + id;\r\n const request = this.http.get(url).pipe(share());\r\n this.handleNormalGetRequest(WorkGroup, request, context);\r\n return request;\r\n }\r\n\r\n public addWorkGroup(workGroup: WorkGroup, context: TenantContext): Observable {\r\n const url = this.serviceUrls.Workgroups;\r\n const request = this.http.post(url, workGroup.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(WorkGroup, request, context);\r\n return request;\r\n }\r\n\r\n public updateWorkGroup(workGroup: WorkGroup, context: TenantContext): Observable {\r\n const url = this.serviceUrls.Workgroups + '/' + workGroup.Id;\r\n const request = this.http.put(url, workGroup.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(WorkGroup, request, context);\r\n return request;\r\n }\r\n\r\n // #endregion Work Groups\r\n\r\n //#region Areas\r\n\r\n public loadAreas(context: DataContext = this.tenantContext): Observable {\r\n const request = this.http.get(this.serviceUrls.Areas).pipe(share());\r\n this.handleNormalGetRequest(Area, request, context);\r\n return request;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region Settings\r\n public loadCustomTables(context: DataContext = this.tenantContext): Observable {\r\n const request = this.http.get(this.serviceUrls.CustomTables).pipe(share());\r\n this.handleNormalGetRequest(CustomTable, request, context);\r\n return request;\r\n }\r\n\r\n public loadCustomTableRows(context: DataContext = this.tenantContext): Observable {\r\n const request = this.http.get(this.serviceUrls.CustomTableRows).pipe(share());\r\n this.handleNormalGetRequest(CustomTableRow, request, context);\r\n return request;\r\n }\r\n\r\n public loadCustomTableRowsForTable(tableId: string, context: DataContext = this.tenantContext): Observable {\r\n const request = this.http.get(this.serviceUrls.customTableRowByTable(tableId)).pipe(share());\r\n this.handleNormalGetRequest(CustomTableRow, request, context);\r\n return request;\r\n }\r\n\r\n //#endregion\r\n\r\n //#region EmailTemplates\r\n public loadEmailTemplates(): Observable {\r\n const request = this.http.get(this.serviceUrls.EmailTemplates);\r\n this.handleNormalGetRequest(EmailTemplate, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public addEmailTemplate(emailTemplate: EmailTemplate): Observable {\r\n const request = this.http.post(this.serviceUrls.EmailTemplates, emailTemplate.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(EmailTemplate, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public updateEmailTemplate(emailTemplate: EmailTemplate): Observable {\r\n var url = this.serviceUrls.EmailTemplates + '/' + emailTemplate.Id;\r\n const request = this.http.put(url, emailTemplate.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(EmailTemplate, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n\r\n //#endregion EmailTemplates\r\n\r\n //#region Webhooks\r\n\r\n public loadWebhooks(): Observable {\r\n const request = this.http.get(this.serviceUrls.Webhooks()).pipe(share());\r\n this.handleNormalGetRequest(Webhook, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public createWebhook(webhook: Webhook): Observable {\r\n const request = this.http.post(this.serviceUrls.Webhooks(), webhook.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Webhook, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public regenerateWebhookSigningKey(webhook: Webhook): Observable {\r\n var url = this.serviceUrls.WebhooksById(webhook.Id) + \"/RegenerateSigningKey\";\r\n const request = this.http.put(url, null).pipe(share());\r\n this.handleNormalPostPutRequest(Webhook, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public editWebhook(webhook: Webhook): Observable {\r\n const request = this.http.put(this.serviceUrls.WebhooksById(webhook.Id), webhook.serialize()).pipe(share());\r\n this.handleNormalPostPutRequest(Webhook, request, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public deleteWebhook(webhook: Webhook): Observable {\r\n const request = this.http.delete(this.serviceUrls.WebhooksById(webhook.Id)).pipe(share());\r\n this.handleNormalDeleteRequest(Webhook, request, webhook, this.tenantContext);\r\n return request;\r\n }\r\n\r\n public updateWebhookActivity(updateDTO: UpdateWebhookActivityDTO): Observable {\r\n const request = this.http.put(`${this.serviceUrls.Webhooks()}/UpdateActivity`, updateDTO).pipe(share());\r\n return request;\r\n }\r\n\r\n public loadWebhookLogs(handleErrors: boolean = true, \r\n eventDateFilter: string = \"Today\",\r\n numActivitiesString: string = \"50\",\r\n webhookName: string = null,\r\n eventName: string = null,\r\n action: string = null,\r\n status: string = null,\r\n area: string = null,\r\n accountNum: string = null,\r\n sentDateFilter: string = null,\r\n completedDateFilter: string = null,\r\n webhookId: string = null,\r\n accountId: string = null,\r\n workflowId: string = null): Observable {\r\n var url = this.serviceUrls.Webhooks() + \"/Activities\";\r\n let params = new HttpParams();\r\n\r\n if (eventDateFilter != null) {\r\n params = params.set(\"eventDateFilter\", eventDateFilter);\r\n }\r\n\r\n if (numActivitiesString != null) {\r\n params = params.set(\"numActivities\", numActivitiesString.replace(/,/g, ''));\r\n } \r\n\r\n if (webhookName != null) {\r\n params = params.set(\"webhookName\", webhookName);\r\n }\r\n if (eventName != null) {\r\n params = params.set(\"eventName\", eventName);\r\n }\r\n if (action != null) {\r\n params = params.set(\"action\", action);\r\n }\r\n if (status != null) {\r\n params = params.set(\"status\", status);\r\n }\r\n if (area != null) {\r\n params = params.set(\"area\", area);\r\n }\r\n if (accountNum != null) {\r\n params = params.set(\"accountNum\", accountNum);\r\n }\r\n if (sentDateFilter != null) {\r\n params = params.set(\"sentDateFilter\", sentDateFilter);\r\n } \r\n if (completedDateFilter != null) {\r\n params = params.set(\"completedDateFilter\", completedDateFilter);\r\n }\r\n if (webhookId != null) {\r\n params = params.set(\"webhookId\", webhookId);\r\n }\r\n if (accountId != null) {\r\n params = params.set(\"accountId\", accountId);\r\n }\r\n if (workflowId != null) {\r\n params = params.set(\"workflowId\", workflowId);\r\n }\r\n\r\n const request = this.http.get(url, { params }).pipe(share());\r\n\r\n return request;\r\n } \r\n\r\n //#endregion Webhooks\r\n}\r\n\r\nexport interface IApiManagementInfo {\r\n apiDocumentationUrl: string,\r\n apiServiceUrl: string\r\n}\r\n\r\nexport interface UpdateWebhookActivityDTO {\r\n EventId: string;\r\n Status: string;\r\n AcknowledgeActivity: boolean;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { ITypedServiceResponse } from '@Core/Lib/model';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { Activity, Account } from '@Core/CodeGen/Models/area.models';\r\nimport { DataContext } from '@Core/Lib/Contexts/data-context';\r\nimport { CreateAccountDTO } from '@Work/Shared/new-business-button/new-business-button.component';\r\n\r\n\r\nclass Response extends HttpResponse {}\r\n\r\n@Injectable()\r\nexport class UserAccountsService extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n public static baseUrl: string = BaseService.baseUrl + '/Accounts/';\r\n\r\n public static Activities: string = ServiceUrls.baseUrl + 'Activities';\r\n public static Accounts: string = ServiceUrls.baseUrl + 'Accounts';\r\n\r\n public static filterAccountsUnsubstituted: string = ServiceUrls.baseUrl + 'Filter?activeAccounts={{activeAccounts}}';\r\n public static filterAccounts(activeAccounts: boolean): string {\r\n return this.filterAccountsUnsubstituted.replace('{{activeAccounts}}', activeAccounts.toString());\r\n }\r\n\r\n public static bulkReassignAccountRoles: string = ServiceUrls.baseUrl + 'BulkReassign';\r\n\r\n }\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n private userContext: UserContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n createAccount(createAccountDTO: CreateAccountDTO, extraContext?: DataContext): Observable {\r\n let cntxt = this.userContext;\r\n let request = this.http.post(`${this.serviceUrls.baseUrl}`, createAccountDTO)\r\n .pipe(share());\r\n request.subscribe(\r\n response => {\r\n cntxt.loading = true;\r\n let obj = _.cloneDeep(response.Content);\r\n cntxt.loadApiResponseModels(Account, obj);\r\n if (extraContext) {\r\n extraContext.loading = true;\r\n extraContext.loadApiResponseModels(Account, response);\r\n extraContext.loading = false;\r\n }\r\n cntxt.loading = false;\r\n }\r\n );\r\n return request;\r\n }\r\n\r\n loadAccounts(): Observable {\r\n const request = this.http.get(this.serviceUrls.Accounts).pipe(share());\r\n this.handleNormalGetRequest(Account, request, this.userContext);\r\n return request;\r\n }\r\n\r\n loadUserActivity(): Observable {\r\n const request = this.http.get(this.serviceUrls.Activities).pipe(share());\r\n this.handleNormalGetRequest(Activity, request, this.userContext);\r\n return request;\r\n }\r\n\r\n loadAccountById(accountId: string): Observable {\r\n const request = this.http.get(`${this.serviceUrls.baseUrl}${accountId}`).pipe(share());\r\n this.handleNormalGetRequest(Account, request, this.userContext);\r\n return request;\r\n }\r\n\r\n public filterAccounts(filterDTO: AccountFilterDTO, activeAccounts: boolean): Observable {\r\n let request = this.http.post(this.serviceUrls.filterAccounts(activeAccounts), filterDTO).pipe(share());\r\n\r\n return request;\r\n }\r\n\r\n public bulkReassign(bulkReassignDto: BulkReassignRoleInputDTO): Observable {\r\n let request = this.http.post(this.serviceUrls.bulkReassignAccountRoles, bulkReassignDto).pipe(share());\r\n\r\n return request;\r\n }\r\n\r\n public bulkReassignStatus(operationId: string): Observable>> {\r\n const requestOptions = _.extend({\r\n observe: 'response' as 'body',\r\n });\r\n\r\n const request = this.http.get>>(\r\n this.serviceUrls.bulkReassignAccountRoles + \"/\" + operationId,\r\n requestOptions\r\n ).pipe(share());\r\n\r\n\r\n return request;\r\n }\r\n\r\n}\r\n\r\nexport interface AccountFilterDTO {\r\n ProgramId: string;\r\n AccountRoleId: string;\r\n FilledBy: string;\r\n WorkflowIds: string[];\r\n ProductIds: string[];\r\n States: string[];\r\n ProducerIds: string[];\r\n}\r\n\r\nexport interface BulkReassignRoleInputDTO {\r\n AccountRolesToReassign: string[];\r\n UserToAssign: string;\r\n}\r\n\r\nexport interface BulkReassignRoleOutputDTO {\r\n AccountRolesToReassign: string[];\r\n TotalNumberOfOriginalItems: number;\r\n}","import { Injectable } from \"@angular/core\";\r\n\r\nimport { Observable, Subject, of, ReplaySubject } from \"rxjs\";\r\nimport { NgxPermissionsService } from \"ngx-permissions\";\r\nimport { share, mergeMap } from \"rxjs/operators\";\r\nimport { HttpClient, HttpResponse } from \"@angular/common/http\";\r\nimport { TenantUser } from '@Core/CodeGen/Models/configuration.models';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { PermissionsShared } from \"@Shared/Directives/sm-permissions-shared.class\";\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { UserContext } from \"@Core/Lib/Contexts/user-context\";\r\nimport { AdminUser } from \"@Core/CodeGen/Models/admin.models\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\nclass Response extends HttpResponse{ }\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class UserService {\r\n private serviceUrls = class ServiceUrls {\r\n public static baseServiceUrl: string = '/';\r\n\r\n public static CurrentUser: string = ServiceUrls.baseServiceUrl + 'Tenant/CurrentUserInfo';\r\n public static ChangePassword: string = ServiceUrls.baseServiceUrl + 'Tenant/Users/ChangePassword';\r\n public static CurrentAdminUser: string = ServiceUrls.baseServiceUrl + 'Admin/CurrentAdminUserInfo';\r\n }\r\n\r\n private _user$: Subject;\r\n private _adminUser$: Subject;\r\n private _permissions: Subject;\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private permissionsService: NgxPermissionsService,\r\n private tenantContext: TenantContext,\r\n private authService: AuthService,\r\n private userContext: UserContext\r\n ) {\r\n if (!environment.requireAPIM) {\r\n this.serviceUrls.CurrentAdminUser = this.serviceUrls.baseServiceUrl + 'Admin/CurrentAdminUserInfo';\r\n }\r\n }\r\n\r\n private getUser() {\r\n let baseUrl = this.getBaseUrl();\r\n let url = baseUrl + this.serviceUrls.CurrentUser;\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n let user = new TenantUser().deserialize(response.Content, this.tenantContext);\r\n const permissions: string[] = response.Content['@Permissions'];\r\n if (!this._permissions) {\r\n this._permissions = new ReplaySubject();\r\n } \r\n this._permissions.next(permissions);\r\n this.permissionsService.loadPermissions(permissions);\r\n if (!this._user$) {\r\n this._user$ = new ReplaySubject();\r\n }\r\n this._user$.next(user);\r\n return user;\r\n }, \r\n error: (error) => {\r\n this.handleError(error)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n // Only for tenant user (Don't use in Admin)\r\n get User$(): Observable {\r\n if (!this._user$) {\r\n this._user$ = new ReplaySubject(1);\r\n if (this.authService.getSubscriptionKey()) {\r\n this.getUser();\r\n } else {\r\n // wait 2 seconds to get the user, so that\r\n // the authService can get the subscriptionKey first\r\n setTimeout(() => {\r\n this.getUser();\r\n }, 2000);\r\n }\r\n }\r\n\r\n return this._user$;\r\n }\r\n\r\n private getAdminUser() {\r\n let baseUrl = this.getBaseUrl();\r\n let url = baseUrl + this.serviceUrls.CurrentAdminUser;\r\n let request = this.http.get(url).pipe(share());\r\n\r\n request.subscribe({ \r\n next: response => {\r\n let user = new AdminUser().deserialize(response.Content, this.userContext);\r\n const permissions: string[] = response.Content['@Permissions'];\r\n if (!this._permissions) {\r\n this._permissions = new ReplaySubject();\r\n } \r\n this._permissions.next(permissions);\r\n this.permissionsService.loadPermissions(permissions);\r\n if (!this._adminUser$) {\r\n this._adminUser$ = new ReplaySubject();\r\n }\r\n this._adminUser$.next(user);\r\n return user;\r\n }, \r\n error: (error) => {\r\n this.handleError(error)\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n // For use in admin\r\n get AdminUser$(): Observable {\r\n if (!this._adminUser$) {\r\n this._adminUser$ = new ReplaySubject(1);\r\n if (this.authService.getSubscriptionKey()) {\r\n this.getAdminUser();\r\n } else {\r\n // wait 2 seconds to get the user, so that\r\n // the authService can get the subscriptionKey first\r\n setTimeout(() => {\r\n this.getAdminUser();\r\n }, 2000);\r\n }\r\n }\r\n\r\n return this._adminUser$;\r\n }\r\n\r\n get Permissions(): Observable {\r\n if (!this._permissions) {\r\n this._permissions = new ReplaySubject(1);\r\n this.getUser();\r\n }\r\n return this._permissions;\r\n }\r\n\r\n public Has(permission: string): Observable { \r\n return this.Permissions.pipe(mergeMap(permissions => of(PermissionsShared.Has(permissions, permission))));\r\n } \r\n\r\n public HasAny(permissions: string[]): Observable {\r\n return this.Permissions.pipe(mergeMap(grantedPermisssions => of(PermissionsShared.HasAny(grantedPermisssions, permissions))));\r\n }\r\n\r\n public HasAll(permissions: string[]): Observable {\r\n return this.Permissions.pipe(mergeMap(grantedPermisssions => of(PermissionsShared.HasAll(grantedPermisssions, permissions))));\r\n }\r\n\r\n private handleError(error: any): Promise {\r\n console.log('An error occurred', error); // for demo purposes only\r\n return Promise.reject(error.Message || error);\r\n }\r\n\r\n // wrapper for unit testing, since window is not a writable property and cannot be spied upon\r\n private windowAssign(url: string): void {\r\n window.location.assign(url);\r\n }\r\n\r\n private getBaseUrl(): string {\r\n return environment.applicationEndpoint;\r\n }\r\n\r\n public reset() {\r\n this._user$ = null;\r\n this._permissions = null;\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpResponse, HttpParams } from '@angular/common/http';\r\n\r\nimport _ from 'lodash';\r\nimport { Observable } from 'rxjs';\r\nimport { share } from 'rxjs/operators';\r\n\r\nimport { BaseService } from '@Services/base-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { GlobalMessages, } from '@Services/global-messages';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport {\r\n Program, SMIdentity, \r\n Account, Task, ReservationSet, WorkGroup, SMIdentityWorksAccount \r\n} from '@Core/CodeGen/Models/area.models';\r\n\r\nclass Response extends HttpResponse { }\r\n\r\n@Injectable()\r\nexport class UserWorkflowsService extends BaseService {\r\n\r\n private serviceUrls = class ServiceUrls {\r\n public static baseUrl: string = BaseService.baseUrl + '/Workflows/';\r\n\r\n public static Programs: string = ServiceUrls.baseUrl + 'Programs';\r\n public static TenantUsers: string = ServiceUrls.baseUrl + 'TenantUsers';\r\n public static Accounts: string = BaseService.baseUrl + '/Accounts';\r\n public static AccountById(accountId: string) {\r\n return this.Accounts + `/${accountId}`;\r\n }\r\n\r\n public static Phases: string = ServiceUrls.baseUrl + 'Phases';\r\n public static ReservationSets: string = ServiceUrls.baseUrl + 'ReservationSets';\r\n public static WorkGroups: string = ServiceUrls.baseUrl + 'WorkGroups';\r\n }\r\n\r\n constructor(private http: HttpClient,\r\n protected globalMessages: GlobalMessages,\r\n private userContext: UserContext,\r\n protected loggingService: LoggingService,\r\n protected loadingService: LoadingService\r\n ) {\r\n super(globalMessages, loggingService, loadingService);\r\n }\r\n\r\n loadPrograms(): Observable {\r\n const request = this.http.get(this.serviceUrls.Programs).pipe(share());\r\n this.handleNormalGetRequest(Program, request, this.userContext);\r\n return request;\r\n }\r\n\r\n loadUsers(): Observable {\r\n const request = this.http.get(this.serviceUrls.TenantUsers).pipe(share());\r\n this.handleNormalGetRequest(SMIdentity, request, this.userContext);\r\n return request;\r\n }\r\n\r\n loadAccounts(): Observable {\r\n const cntxt = this.userContext;\r\n const params = new HttpParams()\r\n .set(\"includeTasks\", 'true');\r\n const request = this.http.get(this.serviceUrls.Accounts, { params }).pipe(share());\r\n\r\n request.subscribe({\r\n next: response => {\r\n const accountResponse = { Content: response.Content.accounts };\r\n const tasksReponse = { Content: response.Content.tasks };\r\n cntxt.loadApiResponseModels(Account, accountResponse);\r\n cntxt.loadApiResponseModels(Task, tasksReponse);\r\n },\r\n error: error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n loadWorkGroups(): Observable {\r\n const request = this.http.get(this.serviceUrls.WorkGroups).pipe(share());\r\n this.handleNormalGetRequest(WorkGroup, request, this.userContext);\r\n return request;\r\n }\r\n\r\n //#region Work Group Reservations\r\n\r\n loadReservationSets(): Observable {\r\n const request = this.http.get(this.serviceUrls.ReservationSets).pipe(share());\r\n this.handleNormalGetRequest(ReservationSet, request, this.userContext);\r\n return request;\r\n }\r\n\r\n startWorkingWorkGroup(workGroupId: string): Observable {\r\n const request = this.http.post(this.serviceUrls.ReservationSets, JSON.stringify(workGroupId)).pipe(share());\r\n this.handleNormalGetRequest(ReservationSet, request, this.userContext);\r\n return request;\r\n }\r\n\r\n stopWorkingWorkGroup(reservationSet: ReservationSet): Observable {\r\n const request = this.http.delete(this.serviceUrls.ReservationSets + \"/\" + reservationSet.Id).pipe(share());\r\n this.handleNormalDeleteRequest(ReservationSet, request, reservationSet, this.userContext);\r\n return request;\r\n }\r\n\r\n reserveAccount(reservationSet: ReservationSet): Observable {\r\n const request = this.http.post(this.serviceUrls.ReservationSets + \"/\" + reservationSet.Id + \"/Reserve\", null).pipe(share());\r\n request.subscribe({\r\n next: response => {\r\n const accountResponse = { Content: response.Content.account };\r\n const tasksReponse = { Content: response.Content.tasks };\r\n this.userContext.loadApiResponseModels(Account, accountResponse);\r\n this.userContext.loadApiResponseModels(Task, tasksReponse);\r\n },\r\n error:error => {\r\n this.handleError(error);\r\n }\r\n });\r\n return request;\r\n }\r\n\r\n getWorkGroup(workGroupId: string): Observable {\r\n const params = new HttpParams()\r\n .set(\"updateNumUnreservedAccounts\", 'true');\r\n const request = this.http.get(this.serviceUrls.WorkGroups + \"/\" + workGroupId, { params }).pipe(share());\r\n this.handleNormalGetRequest(WorkGroup, request, this.userContext);\r\n return request;\r\n }\r\n\r\n //#endregion Work Group Reservations\r\n \r\n}","
\r\n
{{getCurrencySymbolForHtml()}}
\r\n \r\n \r\n \r\n \r\n
\r\n\r\n \r\n {{ getFormattedMoney() }}\r\n \r\n","import { getCurrencySymbol } from \"@angular/common\";\r\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { NgxMaskService } from \"ngx-mask\";\r\nimport { FormatUtils } from \"@Core/Lib/Utils/format-utils\";\r\n\r\n@Component({\r\n selector: 'sm-input-money',\r\n templateUrl: './sm-input-money.component.html',\r\n styleUrls: ['./sm-input-money.component.scss']\r\n})\r\nexport class SmInputMoneyComponent {\r\n @Input() public id: string;\r\n @Input() public editModeClasses: string[];\r\n @Input() public value: string;\r\n @Input() public disabled: boolean;\r\n @Input() public readOnly: boolean;\r\n\r\n @Input() public displayAsWholeNumber: boolean;\r\n @Input() public currency: string = \"USD\";\r\n @Input() public displayNegativesInRed: boolean;\r\n\r\n @Output() public focusin: EventEmitter = new EventEmitter();\r\n @Output() public focusout: EventEmitter = new EventEmitter();\r\n @Output() public onChange: EventEmitter = new EventEmitter();\r\n\r\n constructor(public maskService: NgxMaskService) {}\r\n\r\n public inputValue: string;\r\n public componentMask: string;\r\n public thousandSeparator: string;\r\n public decimalMarker: \",\" | \".\";\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n ngOnChanges() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.thousandSeparator = FormatUtils.getThousandSeparator();\r\n this.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n\r\n this.maskService.thousandSeparator = this.thousandSeparator;\r\n this.maskService.decimalMarker = this.decimalMarker;\r\n\r\n // NOTE: displayAsWhole and displayNegativesInRed only apply to readOnly mode\r\n this.inputValue = SmInputMoneyComponent.convertMoneyBeforeMask(this.value, this.readOnly ? this.displayAsWholeNumber : false, this.readOnly);\r\n this.componentMask = SmInputMoneyComponent.getComponentMask(false);\r\n }\r\n\r\n public getFormattedMoney(): string {\r\n return SmInputMoneyComponent.formatMoney(this.value, this.maskService, this.displayAsWholeNumber, this.currency);\r\n }\r\n \r\n public static convertMoneyBeforeMask(value: any, displayAsWholeNumber: boolean, readOnly: boolean): string {\r\n // Note: The value passed in to this component should ALWAYS be in the en-US culture, \r\n // using a comma as a thousand separator and a period as the decimal (because that is how it will be stored in our DB)\r\n // This component should translate from that into the correct expected culture (removing any thousand separators).\r\n // For example, if we get 1,234.56 as the input, but are in the german culture, it should output '1234,56'. \r\n\r\n if (_.isNil(value) || value === '')\r\n return null;\r\n\r\n // Cut off the first character if its a currency symbol. We can't convert it to a number with it.\r\n if (_.isString(value) && _.isNaN(Number(value[0])) && value[0] != \"-\")\r\n value = value.substring(1);\r\n\r\n var decimalMarker = FormatUtils.getDecimalMarker();\r\n\r\n let convertedDecimal = displayAsWholeNumber ? \r\n _.round(parseFloat(value)).toString():\r\n value.toString();\r\n\r\n // Remove the , as it should be the thousand separator\r\n convertedDecimal = convertedDecimal.split(',').join('');\r\n\r\n // ONLY for readonly mode, replace the '.' with the current decimal marker (which may still be a '.')\r\n // I don't fully understand why we have to do this, but the input control doesn't work well when\r\n // updating the value when we do this\r\n if (readOnly) {\r\n convertedDecimal = convertedDecimal.replace('.', decimalMarker);\r\n }\r\n \r\n return convertedDecimal;\r\n }\r\n\r\n public static formatMoney(value: any, maskService: NgxMaskService, displayAsWholeNumber: boolean,\r\n currency: string): string {\r\n if (_.isNil(value) || value === '')\r\n return '';\r\n\r\n maskService.thousandSeparator = FormatUtils.getThousandSeparator();\r\n maskService.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n\r\n var convertedDecimal = SmInputMoneyComponent.convertMoneyBeforeMask(value, displayAsWholeNumber, true);\r\n \r\n let formattedMoney = maskService.applyMask(convertedDecimal.toString(), \r\n SmInputMoneyComponent.getComponentMask(displayAsWholeNumber));\r\n\r\n let output = formattedMoney;\r\n if (formattedMoney[0] == '-') {\r\n output = \"(\" + formattedMoney.substring(1) + \")\";\r\n }\r\n\r\n return SmInputMoneyComponent.getCurrencySymbol(currency) + output;\r\n }\r\n\r\n valueChange(value) {\r\n // Our formatting can trigger a valueChange event. If the field is disabled or readonly, \r\n // don't send the event.\r\n if (this.disabled || this.readOnly)\r\n return;\r\n\r\n if (_.isNil(value) || value === '')\r\n this.onChange.emit(null);\r\n else if (_.isFinite(value)) {\r\n this.onChange.emit(value);\r\n }\r\n }\r\n\r\n applyclasses() {\r\n return this.editModeClasses;\r\n }\r\n\r\n public isNegative() {\r\n return parseFloat(this.inputValue) < 0;\r\n }\r\n\r\n public static getComponentMask(displayAsWholeNumber: boolean): string {\r\n var numberOfDecimals = displayAsWholeNumber ? 0 : 2;\r\n return 'separator.' + numberOfDecimals;\r\n }\r\n\r\n public getCurrencySymbolForHtml() {\r\n return SmInputMoneyComponent.getCurrencySymbol(this.currency);\r\n }\r\n\r\n public static getCurrencySymbol(currency: string) {\r\n return getCurrencySymbol(currency, 'narrow');\r\n }\r\n};","\r\n \r\n\r\n\r\n \r\n {{ inputValue | mask:componentMask:{thousandSeparator: thousandSeparator, decimalMarker: decimalMarker} }}%\r\n \r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { NgxMaskService } from \"ngx-mask\";\r\nimport { FormatUtils } from \"@Core/Lib/Utils/format-utils\";\r\n\r\n@Component({\r\n selector: 'sm-input-number',\r\n templateUrl: './sm-input-number.component.html'\r\n})\r\nexport class SmInputNumberComponent {\r\n @Input() public id: string;\r\n @Input() public editModeClasses: string[];\r\n @Input() public value: string;\r\n @Input() public disabled: boolean;\r\n @Input() public numberOfDecimals: number;\r\n @Input() public readOnly: boolean;\r\n @Input() public displayAsPercentage: boolean;\r\n @Input() public displayNegativesInRed: boolean;\r\n\r\n @Output() public focusin: EventEmitter = new EventEmitter();\r\n @Output() public focusout: EventEmitter = new EventEmitter();\r\n @Output() public onChange: EventEmitter = new EventEmitter();\r\n\r\n constructor(public maskService: NgxMaskService) {}\r\n\r\n public inputValue: string;\r\n public componentMask: string;\r\n public thousandSeparator: string;\r\n public decimalMarker: \",\" | \".\";\r\n\r\n ngOnInit() {\r\n this.initialize();\r\n }\r\n\r\n ngOnChanges() {\r\n this.initialize();\r\n }\r\n\r\n initialize() {\r\n this.thousandSeparator = FormatUtils.getThousandSeparator();\r\n this.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n\r\n this.maskService.thousandSeparator = this.thousandSeparator;\r\n this.maskService.decimalMarker = this.decimalMarker;\r\n\r\n this.inputValue = SmInputNumberComponent.convertNumberBeforeMask(this.value, this.numberOfDecimals, this.displayAsPercentage, this.readOnly);\r\n\r\n var numberOfDecimals = this.numberOfDecimals;\r\n \r\n if (_.isNil(numberOfDecimals))\r\n numberOfDecimals = 3; \r\n else if (this.displayAsPercentage) {\r\n numberOfDecimals = numberOfDecimals - 2;\r\n if (numberOfDecimals < 0)\r\n numberOfDecimals = 0;\r\n }\r\n\r\n this.componentMask = SmInputNumberComponent.getComponentMask(numberOfDecimals);\r\n }\r\n\r\n public static formatNumber(value: any, maskService: NgxMaskService, numDecimalPlaces: number, \r\n displayAsPercentage: boolean): string {\r\n\r\n maskService.thousandSeparator = FormatUtils.getThousandSeparator();\r\n maskService.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n\r\n if (_.isNil(value) || value === '')\r\n return '';\r\n\r\n if (_.isNil(numDecimalPlaces))\r\n numDecimalPlaces = 3;\r\n\r\n var convertedDecimal = SmInputNumberComponent.convertNumberBeforeMask(value, numDecimalPlaces, displayAsPercentage, true);\r\n \r\n const formattedDecimal = maskService.applyMask(convertedDecimal, SmInputNumberComponent.getComponentMask(numDecimalPlaces));\r\n return displayAsPercentage ? formattedDecimal + '%' : formattedDecimal;\r\n }\r\n\r\n public static convertNumberBeforeMask(value: any, numDecimalPlaces: number, displayAsPercentage: boolean, \r\n readOnly: boolean): string {\r\n \r\n // Note: The value passed in to this component should ALWAYS be in the en-US culture, \r\n // using a comma as a thousand separator and a period as the decimal (because that is how it will be stored in our DB)\r\n // This component should translate from that into the correct expected culture (removing any thousand separators).\r\n // For example, if we get 1,234.56 as the input, but are in the german culture, it should output '1234,56'. \r\n\r\n var decimalMarker = FormatUtils.getDecimalMarker();\r\n\r\n if (_.isNil(value) || value === '')\r\n return null;\r\n\r\n let convertedDecimal = displayAsPercentage ? \r\n parseFloat((parseFloat(value) * 100).toFixed(numDecimalPlaces)).toString() :\r\n value.toString();\r\n\r\n // Remove the , as it should be the thousand separator\r\n convertedDecimal = convertedDecimal.trimEnd(\"0\").split(',').join('')\r\n\r\n // ONLY for readonly mode, replace the '.' with the current decimal marker (which may still be a '.')\r\n // I don't fully understand why we have to do this, but the input control doesn't work well when\r\n // updating the value when we do this\r\n if (readOnly) {\r\n convertedDecimal = convertedDecimal.replace('.', decimalMarker);\r\n }\r\n\r\n return convertedDecimal;\r\n }\r\n\r\n valueChange(value) {\r\n // Our formatting can trigger a valueChange event. If the field is disabled or readonly, \r\n // don't send the event.\r\n if (this.disabled || this.readOnly)\r\n return;\r\n\r\n if (_.isNil(value) || value === '')\r\n this.onChange.emit(null);\r\n else if (_.isFinite(value)) {\r\n this.onChange.emit(this.displayAsPercentage ? \r\n parseFloat((value/100).toFixed(this.numberOfDecimals)) : \r\n value);\r\n }\r\n }\r\n\r\n applyclasses() {\r\n return this.editModeClasses;\r\n }\r\n\r\n formatNegatives() {\r\n return this.displayNegativesInRed && parseFloat(this.inputValue) < 0;\r\n }\r\n\r\n public static getComponentMask(numberOfDecimals: number): string {\r\n return 'separator.' + numberOfDecimals;\r\n }\r\n};","\r\n \r\n\r\n\r\n \r\n {{ value | mask: componentMask }}\r\n \r\n","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { NgxMaskService } from \"ngx-mask\";\r\n\r\n@Component({\r\n selector: 'sm-input-zipcode',\r\n templateUrl: './sm-input-zipcode.component.html'\r\n})\r\nexport class SmInputZipcodeComponent {\r\n @Input() public id: string;\r\n @Input() public editModeClasses: string[];\r\n @Input() public value: string;\r\n @Input() public disabled: boolean;\r\n @Input() public readOnly: boolean;\r\n\r\n @Output() public focusin: EventEmitter = new EventEmitter();\r\n @Output() public focusout: EventEmitter = new EventEmitter();\r\n @Output() public onChange: EventEmitter = new EventEmitter();\r\n\r\n constructor(public maskService: NgxMaskService) {}\r\n\r\n public componentMask: string = SmInputZipcodeComponent.getComponentMask();\r\n\r\n public static formatZipcode(value: any, maskService: NgxMaskService): string { \r\n const formattedZipcode = maskService.applyMask(value, SmInputZipcodeComponent.getComponentMask());\r\n return formattedZipcode;\r\n }\r\n\r\n valueChange(value) {\r\n // Our formatting can trigger a valueChange event. If the field is disabled or readonly, \r\n // don't send the event.\r\n if (this.disabled || this.readOnly)\r\n return;\r\n \r\n this.onChange.emit(value);\r\n }\r\n\r\n getClasses() {\r\n return this.editModeClasses;\r\n }\r\n\r\n public static getComponentMask(): string {\r\n return 'AAAAA-AAAA';\r\n }\r\n};","
\r\n {{LeftText}} \r\n {{Date | smDate:Format}}\r\n by\r\n \r\n {{User.Name}}\r\n
","import { Component, Input } from '@angular/core';\r\nimport { SmAssignableBadgeVM } from \"@Shared/Components/sm-assignable-badge/sm-assignable-badge.viewmodel\";\r\nimport { SmDateFormats } from '@Shared/Pipes/sm-date.pipe';\r\n\r\n@Component({\r\n selector: 'sm-date-by',\r\n templateUrl: './sm-date-by.component.html',\r\n styleUrls: ['./sm-date-by.component.scss']\r\n})\r\nexport class SmDateByComponent {\r\n @Input() LeftText: String = null;\r\n @Input() ShowDate: Boolean = true;\r\n @Input() Date: Date = new Date();\r\n @Input() Format: SmDateFormats | string = SmDateFormats.Short; // available pre-defined formats in sm-date.pipe.ts\r\n @Input() ShowUserBadge: Boolean = true;\r\n @Input() ShowUserName: Boolean = false;\r\n @Input() User: SmAssignableBadgeVM;\r\n}\r\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { FormValueChangeEvent, SmFormFieldVM, SmFormRowVM, SmFormState, SmFormTypes } from \"../sm-form.model\";\r\n\r\n\r\n@Component({\r\n selector: 'sm-form-currency-block',\r\n templateUrl: './sm-form-currency-block.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormCurrencyBlockComponent {\r\n // This is a special type of 'Field'. Its really two fields (select + money) that \r\n // operate together. The selection in the select field is the currency used for display\r\n // in the money field. \r\n\r\n @Input() model: SmFormRowVM;\r\n @Input() readOnly: boolean;\r\n @Input() formState: SmFormState;\r\n\r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n @Output() onDetectChanges: EventEmitter = new EventEmitter();\r\n\r\n public formStateCopy: SmFormState;\r\n public moneyField: SmFormFieldVM;\r\n public currencyField: SmFormFieldVM;\r\n\r\n\r\n ngOnInit() {\r\n this.init();\r\n }\r\n\r\n ngOnChanges() {\r\n this.init();\r\n }\r\n\r\n private init() {\r\n if (this.model.Fields?.length) {\r\n this.currencyField = _.find(this.model.Fields, f => f.FieldType == SmFormTypes.Select);\r\n this.moneyField = _.find(this.model.Fields, f => f.FieldType == SmFormTypes.Money);\r\n \r\n this.updateCurrencyOnField();\r\n }\r\n }\r\n\r\n public onCurrencyFieldChange(e: any) {\r\n this.updateCurrencyOnField();\r\n\r\n this.onValueChanged.emit(e);\r\n }\r\n \r\n private updateCurrencyOnField() {\r\n if (!this.moneyField?.Options)\r\n this.moneyField.Options = {};\r\n\r\n this.moneyField.Options.Currency = this.currencyField.Value;\r\n\r\n // Trigger changes for the children by creating a copy of the form state\r\n // We can't create a copy of the field as that messes with references.\r\n // This isn't an ideal approach, but it works. \r\n this.formState = {...this.formState};\r\n }\r\n}","
\r\n \r\n \r\n\r\n \r\n \r\n
","\r\n \r\n \r\n\r\n\r\n
\r\n \r\n [model]=\"field\" \r\n [readOnly]=\"readOnly\"\r\n [formState]=\"formState\"\r\n (onValueChanged)=\"onValueChanged.emit($event)\"\r\n (onDetectChanges)=\"onDetectChanges.emit($event)\"> \r\n \r\n
\r\n
\r\n","import { Component, ChangeDetectionStrategy, Input, Output, EventEmitter } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { SmFormRowVM, SmFormState, FormValueChangeEvent } from \"../sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-row',\r\n templateUrl: './sm-form-row.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormRowComponent {\r\n // This is an element that displays its fields inline. \r\n\r\n @Input() model: SmFormRowVM;\r\n @Input() readOnly: boolean;\r\n @Input() formState: SmFormState;\r\n\r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n @Output() onDetectChanges: EventEmitter = new EventEmitter();\r\n}","import { EventEmitter, Component, Input, Output, ElementRef } from \"@angular/core\";\r\nimport { FormValueChangeEvent, SmFormFieldVM, SmFormState, SmFormTypes} from \"@Shared/Components/sm-form/sm-form.model\";\r\nimport { InfoStackRow, InfoLine, InfoLineState } from \"@Shared/Components/sm-info-stack/sm-info-stack.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport { Subscription } from \"rxjs\";\r\nimport _ from \"lodash\";\r\n\r\n@Component({\r\n template: ''\r\n})\r\nexport class SmFormFieldBase {\r\n\r\n @Input() model: SmFormFieldVM;\r\n @Input() readOnly: boolean = true;\r\n @Input() formState: SmFormState;\r\n\r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n @Output() onFocusChanged: EventEmitter = new EventEmitter();\r\n\r\n public infoStackState: InfoLineState = 'Normal';\r\n private elementFocused$: Subscription;\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) { }\r\n\r\n ngOnInit() {\r\n this.elementFocused$ = this.service.getElementFocused().subscribe(e => {\r\n if (e.Id == this.model.Id ) {\r\n this.putFocusIntoInput();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.elementFocused$?.unsubscribe();\r\n }\r\n\r\n public valueChange(e: any, type?: 'input' | 'change') {\r\n var vm: FormValueChangeEvent = {\r\n FieldVM: this.model,\r\n NewValue: this.model.Value,\r\n Type: type\r\n }\r\n this.onValueChanged.emit(vm);\r\n }\r\n\r\n public getInputIdOrName() {\r\n return \"Field:\" + this.model.Id;\r\n }\r\n\r\n public getInputCssClass() {\r\n let classes: string[] = [];\r\n\r\n if (!this.readOnly) {\r\n\r\n // Field width\r\n let formWidth: string;\r\n if (this.model.FormWidth) {\r\n formWidth = this.model.FormWidth.split(' ').join('').toLowerCase();\r\n } else {\r\n // Default to extra large if none was passed in\r\n formWidth = \"extralarge\";\r\n }\r\n classes.push(\"field--inputWidth-\" + formWidth);\r\n\r\n // invalid\r\n if (this.model.Errors?.length) {\r\n classes.push('is-invalid');\r\n }\r\n }\r\n\r\n return classes;\r\n }\r\n\r\n public onRevertToPreviousValue() {\r\n this.model.Value = this.model.PreviousValue;\r\n this.valueChange(null);\r\n }\r\n\r\n public fieldHasPreviousValue() {\r\n return this.service.fieldHasPreviousValue(this.model, this.formState);\r\n }\r\n\r\n public getPreviousValue() {\r\n return this.formatFieldValue(this.model.PreviousValue);\r\n }\r\n\r\n // The ViewModel for the Info Stack when the field is in readOnly mode\r\n // Override this in the field-specific component if a different info stack model is needed\r\n public getInfoStack(): InfoStackRow[] {\r\n var classes = [];\r\n if (this.model.Options?.DisplayNegativesInRed && Number(this.model.Value) < 0)\r\n classes.push('text-danger');\r\n\r\n var infoLines: InfoLine[] = [\r\n {\r\n State: this.infoStackState,\r\n MainText: this.formatFieldValue(this.model.Value),\r\n Classes: classes,\r\n InternalValue: this.model.FieldType == SmFormTypes.Url ? this.model.Value : null\r\n }\r\n ];\r\n\r\n if (this.fieldHasPreviousValue()) {\r\n // Clone classes so we don't change the the classes for the main text.\r\n var prevValueClasses = _.clone(classes);\r\n prevValueClasses.push('previous_value');\r\n infoLines.push({\r\n State: 'Italic',\r\n MainText: 'Previous: ' + this.formatFieldValue(this.model.PreviousValue),\r\n Classes: prevValueClasses,\r\n InternalValue: this.model.FieldType == SmFormTypes.Url ? this.model.PreviousValue : null\r\n });\r\n }\r\n\r\n return [\r\n {\r\n 'Label': this.model.Label,\r\n 'ForForm': true,\r\n 'InfoLines': infoLines\r\n }\r\n ];\r\n }\r\n\r\n protected putFocusIntoInput() {\r\n this.element.nativeElement.querySelector('input').focus()\r\n }\r\n\r\n protected formatFieldValue(value) {\r\n return this.service.formatFieldValue(value,\r\n this.model.FieldType,\r\n this.model.Options,\r\n this.formState,\r\n this.model.Prefix,\r\n this.model.Suffix);\r\n }\r\n}","","import { Component, Input } from \"@angular/core\";\r\nimport { SmFormFieldVM } from \"@Shared/Components/sm-form/sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-label',\r\n templateUrl: './sm-form-field-label.component.html',\r\n styleUrls: ['./sm-form-field-label.component.scss']\r\n})\r\nexport class SmFormFieldLabelComponent {\r\n @Input() model: SmFormFieldVM;\r\n}","import { Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport { SmFormService } from \"../../sm-form-service\";\r\nimport { SmFormFieldVM, SmFormState } from \"../../sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-previous-value',\r\n templateUrl: './sm-form-previous-value.component.html',\r\n styleUrls: ['./sm-form-previous-value.component.scss']\r\n})\r\nexport class SmFormPreviousValueComponent {\r\n\r\n constructor(private service: SmFormService) { }\r\n\r\n @Input() model: SmFormFieldVM;\r\n @Input() formState: SmFormState;\r\n\r\n @Output() revertToPreviousValue: EventEmitter = new EventEmitter();\r\n\r\n public getPreviousValue() {\r\n return this.service.formatFieldValue(this.model.PreviousValue, this.model.FieldType, this.model.Options, this.formState);\r\n }\r\n\r\n public fieldHasPreviousValue() {\r\n return this.service.fieldHasPreviousValue(this.model, this.formState);\r\n }\r\n}","
\r\n Previous: {{ getPreviousValue() }}\r\n \r\n
","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n\r\n \r\n \r\n\r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-string',\r\n templateUrl: './sm-form-field-string.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldStringComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n protected override putFocusIntoInput(): void {\r\n if (this.model.Options?.MultiLineEntry) {\r\n this.element.nativeElement.querySelector('textarea').focus()\r\n } else {\r\n super.putFocusIntoInput();\r\n }\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { SmFormTypes } from \"../sm-form.model\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-multi-select',\r\n templateUrl: './sm-form-field-multi-select.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// Drop down multi-select, edit mode not supported at the moment\r\nexport class SmFormFieldMultiSelectComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n ngOnInit() {\r\n this.model.Value = this.formatValue(this.model.Value);\r\n super.ngOnInit();\r\n }\r\n\r\n public ngOnChanges() {\r\n this.model.Value = this.formatValue(this.model.Value);\r\n }\r\n\r\n getOptions(): string[] {\r\n return this.model.Options?.Options;\r\n }\r\n\r\n // Convert the model into something the kendo-multi-select expects\r\n formatValue(value: any): string[] {\r\n if (_.isNil(this.model.Value) || !this.model.Value?.length || this.model.Value == \"\")\r\n return [];\r\n else if (_.isArray(value)) {\r\n return value;\r\n } else {\r\n return [value];\r\n }\r\n }\r\n\r\n // Read-only view\r\n getFormattedValue() {\r\n return this.service.formatFieldValue(this.model.Value, SmFormTypes.MultiSelect, this.model.Options, this.formState);\r\n }\r\n\r\n valueChange(value: string[]) {\r\n var options = this.getOptions();\r\n if (!options?.length && !this.model.Options?.AllowSpaces) {\r\n const newValue: string[] = [];\r\n \r\n value.forEach(item => {\r\n const splitItems = item.split(\" \").filter(Boolean);\r\n \r\n newValue.push(...splitItems);\r\n });\r\n \r\n value = newValue;\r\n }\r\n \r\n var uniqValues = _.uniq(value);\r\n\r\n this.model.Value = uniqValues;\r\n super.valueChange(uniqValues); \r\n }\r\n\r\n protected override putFocusIntoInput(): void {\r\n this.element.nativeElement.querySelector('kendo-multiselect').focus()\r\n \r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport { InfoLineState } from \"@Shared/Components/sm-info-stack/sm-info-stack.component\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-email',\r\n templateUrl: './sm-form-field-email.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldEmailComponent extends SmFormFieldBase {\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public infoStackState: InfoLineState = 'Email';\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport { InfoLineState } from \"@Shared/Components/sm-info-stack/sm-info-stack.component\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-phone',\r\n templateUrl: './sm-form-field-phone.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldPhoneComponent extends SmFormFieldBase {\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public infoStackState: InfoLineState = 'Phone';\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-year',\r\n templateUrl: './sm-form-field-year.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldYearComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-zip',\r\n templateUrl: './sm-form-field-zip.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldZipComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public valueChange(e: any) {\r\n this.model.Value = e;\r\n super.valueChange(e, 'input');\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-integer',\r\n templateUrl: './sm-form-field-integer.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldIntegerComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public valueChange(e: any) {\r\n this.model.Value = e;\r\n super.valueChange(e, 'input');\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-decimal',\r\n templateUrl: './sm-form-field-decimal.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldDecimalComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public valueChange(e: any) {\r\n this.model.Value = e;\r\n super.valueChange(e, 'input');\r\n }\r\n}","\r\n\r\n\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport _ from \"lodash\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-date',\r\n templateUrl: './sm-form-field-date.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// The Value should be a ContractDate\r\nexport class SmFormFieldDateComponent extends SmFormFieldBase {\r\n public valueAsDate: Date;\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public ngOnInit() {\r\n this.setValueAsDate();\r\n super.ngOnInit();\r\n }\r\n\r\n public ngOnChanges() {\r\n this.setValueAsDate();\r\n }\r\n\r\n private setValueAsDate() {\r\n if (!this.model.Value)\r\n this.valueAsDate = null;\r\n else\r\n this.valueAsDate = new Date(this.model.Value);\r\n }\r\n\r\n change(newValue: string) {\r\n this.model.Value = newValue;\r\n super.valueChange(this.model.Value, \"input\");\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-money',\r\n templateUrl: './sm-form-field-money.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldMoneyComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public valueChange(e: any) {\r\n this.model.Value = e;\r\n super.valueChange(e, 'input');\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport { InfoLineState } from \"@Shared/Components/sm-info-stack/sm-info-stack.component\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-url',\r\n templateUrl: './sm-form-field-url.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldUrlComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public infoStackState: InfoLineState = 'ExternalLink';\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n
{{formatFieldValue(this.model.Value)}}
\r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-timestamp',\r\n templateUrl: './sm-form-field-timestamp.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmFormFieldTimestampComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n}","\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-boolean',\r\n templateUrl: './sm-form-field-boolean.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged']\r\n})\r\n// Checkbox (Not fully implemented)\r\nexport class SmFormFieldBooleanComponent extends SmFormFieldBase {\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n
\r\n
\r\n \r\n \r\n {{ option }}\r\n \r\n
\r\n
\r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-radio-options',\r\n templateUrl: './sm-form-field-radio-options.component.html',\r\n styleUrls: ['./sm-form-field-radio-options.component.scss'],\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// Used for YesNo Fields\r\nexport class SmFormFieldRadioOptionsComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n public getOptions(): string[] {\r\n return this.model.Options.Options;\r\n }\r\n\r\n public onDblClick(): void {\r\n this.model.Value = null;\r\n super.valueChange(null);\r\n }\r\n\r\n public trackOptions = (_: number, option: string) => {\r\n return option;\r\n }\r\n\r\n public valueChange(e) {\r\n this.model.Value = e.target.value;\r\n super.valueChange(e);\r\n }\r\n\r\n public checkButtonAlignment() {\r\n if (this.model.Options?.ButtonAlignment === 'Vertical') {\r\n return 'flex-column';\r\n }\r\n }\r\n}","\r\n \r\n \r\n
\r\n
{{model.Prefix}}
\r\n \r\n
{{model.Suffix}}
\r\n
\r\n \r\n \r\n
\r\n\r\n \r\n \r\n","import { ChangeDetectionStrategy, Component, ElementRef } from \"@angular/core\";\r\nimport { SmFormFieldBase } from \"./sm-form-field-base.component\";\r\nimport { SmFormService } from \"../sm-form-service\";\r\n\r\n@Component({\r\n selector: 'sm-form-field-select',\r\n templateUrl: './sm-form-field-select.component.html',\r\n outputs: ['onValueChanged', 'onFocusChanged'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\n// Drop down selection\r\nexport class SmFormFieldSelectComponent extends SmFormFieldBase {\r\n\r\n constructor(protected service: SmFormService, protected element: ElementRef) {\r\n super(service, element);\r\n }\r\n\r\n getOptions(): string[] {\r\n return this.model.Options.Options;\r\n }\r\n\r\n protected override putFocusIntoInput(): void {\r\n this.element.nativeElement.querySelector('select').focus()\r\n }\r\n}","
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{err}}\r\n
\r\n
\r\n
","import { ChangeDetectorRef, Component, EventEmitter, Input, Output } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SmFormService } from \"./sm-form-service\";\r\nimport { SmFormFieldVM, SmFormState, FormValueChangeEvent, SmFormTypes, SmElementChangedEvent } from \"./sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-field',\r\n templateUrl: './sm-form-field.component.html',\r\n styleUrls: ['./sm-form-field.component.scss']\r\n})\r\nexport class SmFormFieldComponent {\r\n\r\n @Input() model: SmFormFieldVM;\r\n @Input() readOnly: boolean;\r\n @Input() formState: SmFormState;\r\n\r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n // Propagate whenever a change happens that merits parent components to recheck statuses.\r\n @Output() onDetectChanges: EventEmitter = new EventEmitter();\r\n\r\n public SM_FORM_TYPES = SmFormTypes;\r\n\r\n public inputHasFocus: boolean = false;\r\n\r\n public incomingSyncTimeout: any;\r\n public outgoingInputTimeout: any;\r\n\r\n private elementChanged$: Subscription;\r\n\r\n constructor(public service: SmFormService,\r\n public cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.elementChanged$ = this.service.getElementChanged().subscribe(e => {\r\n if (e.ElementId == this.model.Id ) {\r\n this.clearIncoming();\r\n\r\n if (this.inputHasFocus) { \r\n this.incomingSyncTimeout = setTimeout(() => {\r\n this.updateModel(e);\r\n this.incomingSyncTimeout = null;\r\n }, 1000);\r\n } else {\r\n this.updateModel(e);\r\n } \r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.elementChanged$?.unsubscribe();\r\n }\r\n\r\n // When a value is changed by an 'input' event,\r\n // the user will still have focus on the field, so debounce\r\n // the call so we don't send an API call for every letter typed. \r\n public valueChanged(e: FormValueChangeEvent) {\r\n // If the field is readonly or disabled, don't send any event. \r\n if (this.model.Disabled)\r\n return;\r\n\r\n // Cancel the existing outgoing API call\r\n this.clearOutgoing();\r\n\r\n // If we have an sync message that came in while the user is still typing,\r\n // ignore that event as the user is overriding it.\r\n this.clearIncoming();\r\n\r\n if (e.Type == 'input') {\r\n // This is called when the value is updated on the 'input' event\r\n // The user has not left the field, so we don't want to send \r\n // the change event immediately. \r\n this.outgoingInputTimeout = setTimeout(() => {\r\n this.clearIncoming();\r\n\r\n this.onValueChanged.emit(e);\r\n this.outgoingInputTimeout = null;\r\n }, 1000); \r\n } else {\r\n this.onValueChanged.emit(e); \r\n } \r\n }\r\n\r\n private clearIncoming() {\r\n if (this.incomingSyncTimeout) {\r\n clearTimeout(this.incomingSyncTimeout);\r\n this.incomingSyncTimeout = null;\r\n } \r\n }\r\n\r\n private clearOutgoing() {\r\n if (this.outgoingInputTimeout) {\r\n clearTimeout(this.outgoingInputTimeout);\r\n this.outgoingInputTimeout = null;\r\n } \r\n }\r\n\r\n public updateModel(e: SmElementChangedEvent) {\r\n this.model = e.ElementVM as SmFormFieldVM;\r\n this.cdRef.detectChanges();\r\n this.onDetectChanges.emit();\r\n }\r\n\r\n public focusChanged(hasFocus: boolean) {\r\n this.inputHasFocus = hasFocus;\r\n }\r\n}","import _ from \"lodash\";\r\nimport { Field } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { FormWidths, SmFormFieldVM, SmFormTypes } from \"./sm-form.model\";\r\n\r\nexport class SmFormHelper {\r\n\r\n public static GetRecommendedWidth(field: Field): FormWidths {\r\n switch (field.Type) {\r\n case \"DecimalField\":\r\n case \"YearField\":\r\n return FormWidths.Small;\r\n case \"DateField\":\r\n case \"IntegerField\":\r\n case \"MoneyField\":\r\n case \"PhoneField\":\r\n case \"ZipcodeField\":\r\n return FormWidths.Medium;\r\n case \"EmailField\":\r\n return FormWidths.Large;\r\n case \"StringField\":\r\n case \"ListOfStringsField\":\r\n case \"TimestampField\":\r\n case \"UrlField\":\r\n case \"YesNoField\":\r\n return FormWidths.ExtraLarge;\r\n default:\r\n return FormWidths.ExtraLarge;\r\n }\r\n }\r\n\r\n // Return the real value for a field\r\n // I.e. we want a number for a Integer, Decimal, Year, or Money field\r\n public static GetActualValue(field: SmFormFieldVM): any {\r\n switch (field.FieldType) {\r\n case SmFormTypes.Decimal:\r\n case SmFormTypes.Year:\r\n case SmFormTypes.Integer:\r\n case SmFormTypes.Money:\r\n if (!field.Value)\r\n return 0;\r\n\r\n var value = field.Value;\r\n // Cut off the first character if its a currency symbol. We can't convert it to a number with it.\r\n if (_.isString(value) && _.isNaN(Number(value[0])) && value[0] != \"-\")\r\n value = value.substring(1);\r\n \r\n var num = Number(value);\r\n \r\n if (_.isNaN(num))\r\n return 0;\r\n return num; \r\n case SmFormTypes.ContractDate:\r\n if (!field.Value)\r\n return \"\";\r\n\r\n var date = new Date(field.Value);\r\n return date.getFullYear() + \"-\" + String(date.getMonth() + 1).padStart(2, '0') + \"-\" + String(date.getDate())\r\n .padStart(2, '0'); \r\n default:\r\n return field.Value;\r\n }\r\n }\r\n}\r\n","
\r\n

Edit {{getTitle()}}

\r\n \r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, Input, Output, SimpleChanges } from \"@angular/core\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport _ from \"lodash\";\r\nimport { SmFormService } from \"./sm-form-service\";\r\nimport { } from \"./rows/sm-form-row.component\";\r\nimport { SmFormSectionInstanceVM, SmFormState, SmFormFieldVM, SmFormRowVM } from \"./sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-section-modal',\r\n templateUrl: './sm-form-section-modal.component.html',\r\n})\r\nexport class SmFormSectionModalComponent {\r\n\r\n @Input() model: SmFormSectionInstanceVM;\r\n @Input() elementToFocus: string;\r\n @Input() formState: SmFormState;\r\n\r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n // Propagate whenever a change happens that merits parent components to recheck statuses.\r\n @Output() onDetectChanges: EventEmitter = new EventEmitter();\r\n \r\n public elements: (SmFormFieldVM | SmFormRowVM)[] = [];\r\n\r\n constructor(public activeModal: NgbActiveModal,\r\n private formService: SmFormService) { }\r\n\r\n ngOnInit() {\r\n this.elements = this.model.Items.filter(i => {\r\n return i.ElementType == 'Field' || i.ElementType == 'Row';\r\n }) as (SmFormFieldVM | SmFormRowVM)[]; \r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.elementToFocus) {\r\n this.formService.sendElementFocused(this.elementToFocus, 'Field');\r\n } \r\n }\r\n \r\n public getTitle() {\r\n var firstElement = this.elements[0];\r\n if (firstElement && firstElement.ElementType == \"Field\") {\r\n return (firstElement as SmFormFieldVM).Value;\r\n }\r\n }\r\n}","\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n {{ getValueOfItemWithLabel(visibleLabel) }}\r\n
\r\n
\r\n Previous: {{ getPreviousValueOfItemWithLabel(visibleLabel) }}\r\n
\r\n
\r\n \r\n {{ getPreviousValueOfItemWithLabel(visibleLabel) }}\r\n \r\n \r\n \r\n {{ getValueOfItemWithLabel(visibleLabel) }}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n Deleting this will also delete all associated data, which may not be visible in the current application. Are you sure?\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { SmDateFormats } from \"@Shared/Pipes/sm-date.pipe\";\r\nimport _ from \"lodash\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SmFormSectionModalComponent } from \"./sm-form-section-modal.component\";\r\nimport { SmFormService } from \"./sm-form-service\";\r\nimport { \r\n SmFormSectionInstanceVM, SmFormState, FormValueChangeEvent, SmFormSectionVM, \r\n SectionDeletedEvent, SmElementFocusedEvent, SmFormFieldVM, SmFormRowVM, SmFormTypes \r\n} from \"./sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-section-instance',\r\n templateUrl: './sm-form-section-instance.component.html',\r\n})\r\nexport class SmFormSectionInstanceComponent {\r\n\r\n @Input() model: SmFormSectionInstanceVM;\r\n @Input() parentId: string;\r\n @Input() labels: string[] = [];\r\n @Input() readOnly: boolean;\r\n @Input() formState: SmFormState;\r\n\r\n @ViewChild('instance') instanceElementRef: ElementRef;\r\n\r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n @Output() onSectionAdded: EventEmitter = new EventEmitter();\r\n @Output() onSectionDeleted: EventEmitter = new EventEmitter();\r\n // Propagate whenever a change happens that merits parent components to recheck statuses.\r\n @Output() onDetectChanges: EventEmitter = new EventEmitter();\r\n\r\n public hasError = false;\r\n\r\n public elementChanged$: Subscription;\r\n public openSectionInstance$: Subscription;\r\n public sectionDeleted$: Subscription;\r\n public elementFocused$: Subscription;\r\n\r\n constructor(private modalService: NgbModal,\r\n private service: SmFormService,\r\n private cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.elementChanged$ = this.service.getElementChanged().subscribe(e => {\r\n if (e.ElementId === this.model.Id) {\r\n this.model = e.ElementVM;\r\n this.cdRef.detectChanges();\r\n this.updateStatuses();\r\n }\r\n });\r\n\r\n this.sectionDeleted$ = this.service.getSectionDeleted().subscribe(e => {\r\n if (e.InstanceId === this.model.Id)\r\n this.updateStatuses();\r\n });\r\n\r\n this.openSectionInstance$ = this.service.getOpenSectionInstance().subscribe(e => {\r\n if (e.InstanceId === this.model.Id) {\r\n this.openSectionInstance();\r\n }\r\n });\r\n\r\n this.elementFocused$ = this.service.getElementFocused().subscribe(e => {\r\n this.handleElementFocused(e);\r\n });\r\n\r\n this.updateStatuses(false);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.elementChanged$?.unsubscribe();\r\n this.openSectionInstance$?.unsubscribe();\r\n this.elementFocused$?.unsubscribe();\r\n }\r\n\r\n private handleElementFocused(e: SmElementFocusedEvent) {\r\n if (e.Type == 'Field') {\r\n if (e.Id == this.model.Id || _.some(this.getFieldsAndRowFields(), i => i.Id == e.Id)) {\r\n this.instanceElementRef.nativeElement.scrollIntoViewIfNeeded(true);\r\n\r\n // We need to wait until the scroll is completed.\r\n // There is not a good way to do this, but most browsers\r\n // (other than Chrome) max out at 500ms.\r\n setTimeout(() => this.openSectionInstance(e.Id), 500);\r\n }\r\n\r\n\r\n } else {\r\n if (e.Id == this.model.Id) {\r\n this.model.ToggledToHide = false;\r\n this.cdRef.detectChanges();\r\n\r\n if (e.Type == 'ParentSection') {\r\n // If we got here because of a 'ParentSection' issue, then we know its a min or max issue.\r\n // However, we got directed to the parent. Find the first child with a min or max issue.\r\n // If we can find it, redirect this message to it.\r\n var childRepeatableSectionWithMinOrMaxError = _.find(this.model.Items, i => {\r\n return i.ElementType == 'Section'\r\n && (i as SmFormSectionVM).Repeatable\r\n && (\r\n this.service.repeatableSectionHasMaxError(i as SmFormSectionVM)\r\n || this.service.repeatableSectionHasMinError(i as SmFormSectionVM)\r\n );\r\n }) as SmFormSectionVM;\r\n\r\n if (childRepeatableSectionWithMinOrMaxError) {\r\n // We found a child with the min/max error, show and set focus to it.\r\n childRepeatableSectionWithMinOrMaxError.ToggledToHide = false;\r\n this.cdRef.detectChanges();\r\n this.service.sendElementFocused(childRepeatableSectionWithMinOrMaxError.Id, 'Section');\r\n } else {\r\n // We couldn't find it, just scroll to the parent (this)\r\n this.instanceElementRef.nativeElement.scrollIntoViewIfNeeded(true);\r\n }\r\n } else if (e.Type == 'Section') {\r\n // This scenario does not currently have a use case in our application, but we still handle it.\r\n\r\n // We want focus on this section, so scroll to it.\r\n this.instanceElementRef.nativeElement.scrollIntoViewIfNeeded(true);\r\n }\r\n }\r\n }\r\n }\r\n\r\n hasPreviousValue(label: string) {\r\n return this.getValueOfItemWithLabel(label) != this.getPreviousValueOfItemWithLabel(label);\r\n }\r\n\r\n getValueOfItemWithLabel(label: string) {\r\n var field = this.findFieldAndUpdateOptions(label);\r\n if (!field)\r\n return \"\";\r\n return this.service.formatFieldValue(field?.Value, field.FieldType, field.Options, this.formState, field.Prefix, field.Suffix);\r\n }\r\n\r\n getPreviousValueOfItemWithLabel(label: string) {\r\n var field = this.findFieldAndUpdateOptions(label);\r\n if (!field)\r\n return \"\";\r\n return this.service.formatFieldValue(field?.PreviousValue, field.FieldType, field.Options, this.formState, field.Prefix, field.Suffix);\r\n }\r\n\r\n private findFieldAndUpdateOptions(label: string): SmFormFieldVM {\r\n var field = _.find(this.model.Items, i => i.ElementType == 'Field' && (i as SmFormFieldVM).Label == label) as SmFormFieldVM;\r\n if (!field) {\r\n var rows = _.filter(this.model.Items, i => i.ElementType == 'Row') as SmFormRowVM[];\r\n if (rows?.length) {\r\n var fieldsUnderRows = _.flatten(_.map(rows, r => r.Fields)) as SmFormFieldVM[];\r\n field = _.find(fieldsUnderRows, f => (f as SmFormFieldVM).Label == label) as SmFormFieldVM;\r\n\r\n if (field?.SpecialType == 'Currency' && field.FieldType == SmFormTypes.Money) {\r\n var currencyField = _.find(fieldsUnderRows, f => f.SpecialType == 'Currency' && f.FieldType == SmFormTypes.Select);\r\n if (!field?.Options)\r\n field.Options = {};\r\n field.Options = {\r\n ...field.Options,\r\n Currency: currencyField?.Value\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (!field)\r\n return null;\r\n\r\n // Since we are in a 'grid', update the date format\r\n if (!field?.Options)\r\n field.Options = {};\r\n field.Options = {\r\n ...field.Options,\r\n DateFormat: SmDateFormats.ShortGrid\r\n };\r\n\r\n return field;\r\n\r\n }\r\n\r\n openSectionInstance(elementToFocus: string = null) {\r\n if (this.modalService.hasOpenModals())\r\n return;\r\n\r\n const modal = this.modalService.open(SmFormSectionModalComponent, { backdrop: 'static', centered: true });\r\n const modalInstanceComponent = modal.componentInstance as SmFormSectionModalComponent;\r\n modalInstanceComponent.model = this.model;\r\n modalInstanceComponent.elementToFocus = elementToFocus;\r\n modalInstanceComponent.formState = this.formState;\r\n\r\n modal.componentInstance.onValueChanged.subscribe(e => {\r\n this.onValueChanged.emit(e);\r\n });\r\n\r\n modal.componentInstance.onDetectChanges.subscribe(e => {\r\n this.updateStatuses();\r\n });\r\n }\r\n\r\n getChildrenSections() {\r\n return _.filter(this.model.Items, i => (i as SmFormFieldVM)?.ElementType === 'Section');\r\n }\r\n\r\n onDeleteSelf() {\r\n this.onSectionDeleted.emit({ InstanceId: this.model.Id, InstancePartitionKey: this.model.PartitionKey, ContainingSectionId: this.parentId });\r\n }\r\n\r\n private updateStatuses(sendOutput: boolean = true) {\r\n if (this.model.ParticipationStatus === \"Deleted\") {\r\n this.hasError = false;\r\n } else {\r\n this.hasError = this.service.childrenHaveAtLeastOneError(this.model.Items);\r\n }\r\n\r\n if (!this.model.ParticipationStatus && this.service.itemsHavePreviousValue(this.model.Items, this.formState)) {\r\n this.model.ParticipationStatus = 'Changed';\r\n } else if (this.model.ParticipationStatus == 'Changed' && !this.service.itemsHavePreviousValue(this.model.Items, this.formState)) {\r\n this.model.ParticipationStatus = null;\r\n }\r\n\r\n this.cdRef.detectChanges();\r\n if (sendOutput)\r\n this.onDetectChanges.emit();\r\n }\r\n\r\n public getFieldsAndRows(): (SmFormFieldVM | SmFormRowVM)[] {\r\n return this.model.Items.filter(i => i.ElementType == 'Field' || i.ElementType == 'Row') as (SmFormFieldVM | SmFormRowVM)[];\r\n }\r\n\r\n public getFieldsAndRowFields(): SmFormFieldVM[] {\r\n var fieldsAndRows = this.getFieldsAndRows();\r\n var fields = _.map(fieldsAndRows, e => {\r\n if (e.ElementType == 'Field')\r\n return e as SmFormFieldVM;\r\n else if (e.ElementType == 'Row')\r\n return (e as SmFormRowVM).Fields;\r\n return null;\r\n });\r\n return _.flatten(fields);\r\n }\r\n\r\n public formatNegatives(label): boolean {\r\n var field = _.find(this.model.Items, i => (i as SmFormFieldVM).Label == label) as SmFormFieldVM;\r\n if (!field)\r\n return false;\r\n\r\n return field.Options?.DisplayNegativesInRed && Number(field.Value) < 0;\r\n }\r\n}","\r\n

\r\n {{model.Text}}\r\n

","import { Component, Input } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { SmFormService } from \"./sm-form-service\";\r\nimport { SmFormStaticElementVM } from \"./sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-static-element',\r\n templateUrl: './sm-form-static-element.component.html',\r\n})\r\nexport class SmFormStaticElementComponent {\r\n\r\n @Input() model: SmFormStaticElementVM;\r\n\r\n constructor(public service: SmFormService) { }\r\n\r\n ngOnInit() {\r\n this.service.getElementChanged().subscribe(e => {\r\n if (e.ElementId === this.model.Id) {\r\n this.model = _.clone(e.ElementVM as SmFormStaticElementVM);\r\n }\r\n });\r\n }\r\n}","
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n

\r\n {{model.Label}} \r\n \r\n ({{ repeatableInstanceCount }})\r\n \r\n \r\n

\r\n \r\n \r\n
\r\n
\r\n minimum of {{model.MinRepeatableInstances}} required\r\n maximum of {{model.MaxRepeatableInstances}} allowed\r\n
\r\n

{{ model.Description }}

\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {{visibleLabel}}\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
No {{model.Label}} records
\r\n
\r\n
\r\n
\r\n
","import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { SmFormHelper } from \"./sm-form-helper\";\r\nimport { SmFormService } from \"./sm-form-service\";\r\nimport { SmFormSectionVM, SmFormState, FormValueChangeEvent, SectionDeletedEvent, SmElementFocusedEvent, SmFormFieldVM } from \"./sm-form.model\";\r\n\r\n@Component({\r\n selector: 'sm-form-section',\r\n templateUrl: './sm-form-section.component.html',\r\n styleUrls: ['./sm-form-section.component.scss']\r\n})\r\nexport class SmFormSectionComponent {\r\n\r\n @Input() model: SmFormSectionVM;\r\n @Input() readOnly: boolean;\r\n @Input() hideSingleSectionArrow: boolean;\r\n @Input() formState: SmFormState;\r\n\r\n @ViewChild('section') sectionElementRef: ElementRef;\r\n \r\n @Output() onValueChanged: EventEmitter = new EventEmitter();\r\n @Output() onSectionAdded: EventEmitter = new EventEmitter();\r\n @Output() onSectionDeleted: EventEmitter = new EventEmitter();\r\n // Propagate whenever a change happens that merits parent components to recheck statuses.\r\n @Output() onDetectChanges: EventEmitter = new EventEmitter();\r\n\r\n public repeatableInstanceCount = 0;\r\n public allInstancesToggledToHide = false;\r\n\r\n public instancesHasChildSection = false;\r\n public minInstanceError = false;\r\n public maxInstanceError = false;\r\n public hasError = false;\r\n\r\n public hideSingleSubSectionArrow: boolean;\r\n public currentSortLabel: string = \"\";\r\n public currentSortOrder: 'asc' | 'desc' = 'asc';\r\n\r\n public elementChanged$: Subscription;\r\n public sectionAdded$: Subscription;\r\n public sectionDeleted$: Subscription;\r\n public elementFocused$: Subscription;\r\n\r\n constructor(public service: SmFormService,\r\n public cdRef: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n this.elementChanged$ = this.service.getElementChanged().subscribe(e => {\r\n if (e.ElementId === this.model.Id) {\r\n\r\n // The only properties that should be updated via this sync\r\n // are Hidden and Errors. Instances are updated below.\r\n this.model = {\r\n ...this.model,\r\n Hidden: e.ElementVM.Hidden,\r\n Errors: e.ElementVM.Errors\r\n };\r\n this.updateStatuses();\r\n }\r\n });\r\n\r\n if (this.model.Repeatable) {\r\n this.sectionAdded$ = this.service.getSectionAdded().subscribe(e => {\r\n if (e.SectionVM.Id === this.model.Id) {\r\n this.model = {\r\n ...this.model,\r\n Instances: e.SectionVM.Instances\r\n };\r\n\r\n this.updateStatuses(); \r\n }\r\n });\r\n \r\n this.sectionDeleted$ = this.service.getSectionDeleted().subscribe(e => {\r\n if (e.SectionVM.Id === this.model.Id) {\r\n this.model = {\r\n ...this.model,\r\n Instances: e.SectionVM.Instances\r\n };\r\n this.updateStatuses();\r\n } else if (e.SectionVM.Id == this.model.ParentId \r\n || e.SectionVM.Instances.find(i => i.Id == this.model.ParentId)) {\r\n this.model = {\r\n ...this.model,\r\n ParentIsDeleted: true\r\n };\r\n this.cdRef.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n this.elementFocused$ = this.service.getElementFocused().subscribe(e => {\r\n this.handleElementFocused(e);\r\n });\r\n\r\n // Initial Sort\r\n if (this.model.Repeatable) {\r\n this.currentSortLabel = this.model.RepeatableVisibleLabels[0];\r\n this.currentSortOrder = 'asc';\r\n } \r\n \r\n this.hideSingleSubSectionArrow = !this.hideSingleSectionArrow && this.model.Items.length > 1 ? false : true;\r\n this.updateStatuses(false);\r\n \r\n this.allInstancesToggledToHide = _.some(this.model.Instances, i => i.ToggledToHide);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.elementChanged$?.unsubscribe();\r\n this.sectionAdded$?.unsubscribe();\r\n this.sectionDeleted$?.unsubscribe();\r\n this.elementFocused$?.unsubscribe();\r\n }\r\n\r\n private handleElementFocused(e: SmElementFocusedEvent) {\r\n if (e.Id == this.model.Id) {\r\n this.model.ToggledToHide = false;\r\n this.cdRef.detectChanges();\r\n\r\n if (e.Type == 'ParentSection') {\r\n // If we got here because of a 'ParentSection' issue, then we know its a min or max issue.\r\n // However, we got directed to the parent. Find the first child with a min or max issue.\r\n // If we can find it, redirect this message to it.\r\n var childRepeatableSectionWithMinOrMaxError = _.find(this.model.Items, i => {\r\n return i.ElementType == 'Section'\r\n && (i as SmFormSectionVM).Repeatable\r\n && (\r\n this.service.repeatableSectionHasMaxError(i as SmFormSectionVM)\r\n || this.service.repeatableSectionHasMinError(i as SmFormSectionVM)\r\n );\r\n }) as SmFormSectionVM;\r\n\r\n if (childRepeatableSectionWithMinOrMaxError) {\r\n // We found a child with the min/max error, show and set focus to it.\r\n childRepeatableSectionWithMinOrMaxError.ToggledToHide = false;\r\n this.cdRef.detectChanges();\r\n this.service.sendElementFocused(childRepeatableSectionWithMinOrMaxError.Id, 'Section');\r\n } else {\r\n // We couldn't find it, just scroll to the parent (this)\r\n this.sectionElementRef.nativeElement.scrollIntoViewIfNeeded(true); \r\n }\r\n } else if (e.Type == 'Section') {\r\n // We want focus on this section, so scroll to it.\r\n this.sectionElementRef.nativeElement.scrollIntoViewIfNeeded(true); \r\n\r\n if (this.minInstanceError) {\r\n // We need to wait until the scroll is completed. \r\n // There is not a good way to do this, but most browsers\r\n // (other than Chrome) max out at 500ms. \r\n setTimeout(() => this.onSectionAdded.emit(this.model), 500);\r\n }\r\n \r\n }\r\n }\r\n }\r\n\r\n toggleAllInstances(hide: boolean) {\r\n this.allInstancesToggledToHide = hide;\r\n this.model.Instances = _.map(this.model.Instances, i => { \r\n return {\r\n ...i, \r\n ToggledToHide: hide\r\n }; \r\n });\r\n }\r\n\r\n public onChangeSort(label: string) {\r\n if (label == this.currentSortLabel) {\r\n if (this.currentSortOrder == 'asc')\r\n this.currentSortOrder = 'desc';\r\n else if (this.currentSortOrder == 'desc')\r\n this.currentSortOrder = 'asc';\r\n } else {\r\n this.currentSortLabel = label;\r\n this.currentSortOrder = 'asc';\r\n }\r\n this.sort();\r\n }\r\n\r\n public sort() {\r\n if (!this.model.Repeatable)\r\n return;\r\n\r\n if (this.currentSortLabel) {\r\n this.model.Instances = _.orderBy(this.model.Instances, i => {\r\n var field = _.find(i.Items, i => (i as SmFormFieldVM).Label == this.currentSortLabel) as SmFormFieldVM;\r\n return SmFormHelper.GetActualValue(field);\r\n }, this.currentSortOrder);\r\n } \r\n }\r\n\r\n private updateStatuses(sendOutput: boolean = true) {\r\n this.updateInstancesHasChildSection();\r\n\r\n if (this.model.Repeatable) {\r\n this.minInstanceError = this.service.repeatableSectionHasMinError(this.model);\r\n this.maxInstanceError = this.service.repeatableSectionHasMaxError(this.model);\r\n\r\n this.repeatableInstanceCount = _.filter(this.model.Instances, i => i.ParticipationStatus != 'Deleted').length;\r\n }\r\n\r\n this.hasError = this.service.sectionHasError(this.model); \r\n\r\n this.cdRef.detectChanges();\r\n if (sendOutput)\r\n this.onDetectChanges.emit();\r\n this.sort();\r\n }\r\n\r\n private updateInstancesHasChildSection() {\r\n var instanceItems = _.flatMap(this.model.Instances, i => i.Items);\r\n this.instancesHasChildSection = _.some(instanceItems, i => i.ElementType == 'Section');\r\n }\r\n}","import { Injectable } from '@angular/core';\r\nimport { Section } from '@Core/CodeGen/Models/area.models';\r\n\r\nimport _ from 'lodash';\r\nimport { NgxMaskService } from 'ngx-mask';\r\nimport { Observable, Subject } from 'rxjs';\r\nimport { SmInputZipcodeComponent } from '../inputs/sm-input-zipcode/sm-input-zipcode.component';\r\nimport { SmInputNumberComponent } from '../inputs/sm-input-number/sm-input-number.component';\r\nimport { SmDateFormats, SmDatePipe } from '@Shared/Pipes/sm-date.pipe';\r\nimport { FormatUtils } from \"@Core/Lib/Utils/format-utils\";\r\nimport { SmInputMoneyComponent } from '../inputs/sm-input-money/sm-input-money.component';\r\nimport { \r\n SmElementChangedEvent, SmSectionAddedEvent, SmOpenSectionInstanceEvent, SmSectionDeletedEvent, \r\n SmElementFocusedEvent, SmFormElementVM, SmFormState, SmFormVM, SmFormSectionVM, \r\n SmFormFieldOptionsVM, SmFormFieldVM, SmFormSectionInstanceVM, SmFormTypes \r\n} from './sm-form.model';\r\n\r\n/// Used to alert fields/sections that they have been changed.\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class SmFormService{\r\n\r\n constructor(private maskService: NgxMaskService) { }\r\n \r\n // #region Events\r\n\r\n // #region Element Changed\r\n\r\n private _elementChanged$ = new Subject();\r\n\r\n public getElementChanged(): Observable {\r\n return this._elementChanged$;\r\n }\r\n\r\n public sendElementChanged(elementVM: SmFormElementVM) {\r\n this._elementChanged$.next({ ElementId: elementVM.Id, ElementVM: elementVM });\r\n }\r\n\r\n // #endregion Element Changed\r\n\r\n // #region Section Added\r\n\r\n private _sectionAdded$ = new Subject();\r\n\r\n public getSectionAdded(): Observable {\r\n return this._sectionAdded$;\r\n }\r\n\r\n public sendSectionAdded(sectionVM: SmFormSectionVM) {\r\n this._sectionAdded$.next({ SectionVM: sectionVM}); \r\n }\r\n\r\n private _openSectionInstance$ = new Subject();\r\n\r\n public getOpenSectionInstance(): Observable {\r\n return this._openSectionInstance$;\r\n }\r\n\r\n public sendOpenSectionInstance(instanceId: string) {\r\n this._openSectionInstance$.next({ InstanceId: instanceId });\r\n }\r\n\r\n // #endregion Section Added\r\n\r\n // #region Section Deleted\r\n\r\n private _sectionDeleted$ = new Subject();\r\n\r\n public getSectionDeleted(): Observable {\r\n return this._sectionDeleted$;\r\n }\r\n\r\n public sendSectionDeleted(sectionVM: SmFormSectionVM, instanceId: string) {\r\n this._sectionDeleted$.next({SectionVM: sectionVM, InstanceId: instanceId });\r\n }\r\n\r\n // #endregion Section Deleted\r\n\r\n // #region Element Focused\r\n\r\n private _elementFocused$ = new Subject();\r\n\r\n public getElementFocused(): Observable {\r\n return this._elementFocused$;\r\n }\r\n\r\n public sendElementFocused(elementId: string, type: 'Section' | 'Field' | 'ParentSection') {\r\n this._elementFocused$.next({ Id: elementId, Type: type });\r\n }\r\n \r\n // #endregion Element Focused\r\n\r\n // #endregion Events\r\n\r\n // #region Formatting Fields\r\n \r\n public formatFieldValue(value: any, \r\n type: SmFormTypes, \r\n options: SmFormFieldOptionsVM,\r\n state: SmFormState,\r\n prefix: string = null, \r\n suffix: any = null) {\r\n\r\n switch (type) {\r\n // No formatting\r\n case SmFormTypes.Boolean:\r\n case SmFormTypes.Email:\r\n case SmFormTypes.String:\r\n case SmFormTypes.Select:\r\n case SmFormTypes.Phone:\r\n case SmFormTypes.Phone:\r\n case SmFormTypes.Year:\r\n case SmFormTypes.RadioOptions:\r\n return this.applyPrefixAndSuffixToFieldValue(value, prefix, suffix);\r\n case SmFormTypes.Url:\r\n var display = options?.ShowUrlInViewOnly === false && value ? \"Link\" : value;\r\n return this.applyPrefixAndSuffixToFieldValue(display, prefix, suffix);\r\n\r\n case SmFormTypes.ContractDate:\r\n var format = options?.DateFormat ?? SmDateFormats.Long;\r\n let datePipe = new SmDatePipe();\r\n return this.applyPrefixAndSuffixToFieldValue(datePipe.transform(value, format), prefix, suffix);\r\n\r\n case SmFormTypes.Decimal: \r\n this.maskService.thousandSeparator = FormatUtils.getThousandSeparator();\r\n this.maskService.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n var convertedDecimal = SmInputNumberComponent.formatNumber(value,\r\n this.maskService,\r\n options?.NumberOfDecimals ?? 3,\r\n options?.DisplayAsPercentage ?? false);\r\n\r\n return this.applyPrefixAndSuffixToFieldValue(convertedDecimal, prefix, suffix)\r\n case SmFormTypes.Integer:\r\n if (_.isNil(value) || value === '')\r\n return this.applyPrefixAndSuffixToFieldValue('', prefix, suffix);\r\n \r\n this.maskService.thousandSeparator = FormatUtils.getThousandSeparator();\r\n this.maskService.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n var convertedInteger = SmInputNumberComponent.formatNumber(value,\r\n this.maskService,\r\n 0, \r\n false);\r\n return this.applyPrefixAndSuffixToFieldValue(convertedInteger, prefix, suffix);\r\n\r\n case SmFormTypes.Money:\r\n this.maskService.thousandSeparator = FormatUtils.getThousandSeparator();\r\n this.maskService.decimalMarker = FormatUtils.getDecimalMarker() as \",\" | \".\";\r\n\r\n var convertedMoney = SmInputMoneyComponent.formatMoney(value,\r\n this.maskService,\r\n options?.DisplayAsWholeNumber ?? false,\r\n options?.Currency ?? state?.Currency ?? 'USD');\r\n\r\n return this.applyPrefixAndSuffixToFieldValue(convertedMoney, prefix, suffix);\r\n case SmFormTypes.MultiSelect:\r\n if (_.isNil(value) || value == \"\") {\r\n return this.applyPrefixAndSuffixToFieldValue('', prefix, suffix);\r\n } else if (_.isArray(value)) {\r\n return this.applyPrefixAndSuffixToFieldValue(value.join(\", \"), prefix, suffix);\r\n } else {\r\n return this.applyPrefixAndSuffixToFieldValue(value, prefix, suffix);\r\n }\r\n\r\n case SmFormTypes.Timestamp: \r\n let datePipeForTimestamp = new SmDatePipe();\r\n var dateString = datePipeForTimestamp.transform(value, SmDateFormats.Timestamp);\r\n return this.applyPrefixAndSuffixToFieldValue(dateString, prefix, suffix);\r\n case SmFormTypes.Zip:\r\n var convertedZipcode = SmInputZipcodeComponent.formatZipcode(value,\r\n this.maskService);\r\n\r\n return this.applyPrefixAndSuffixToFieldValue(convertedZipcode, prefix, suffix)\r\n default:\r\n console.error(\"Unsupported type in formatFieldValue().\");\r\n\r\n }\r\n }\r\n\r\n // #endregion Formatting Fields\r\n\r\n // #region Participation Status\r\n\r\n public getSectionParticipationStatus(section: Section, \r\n childrenVMs: SmFormElementVM[],\r\n formState: SmFormState): 'Added' | 'Changed' | 'Deleted' {\r\n var participationStatus;\r\n\r\n if (section.ParticipationStatus == \"Added\" || section.ParticipationStatus == \"Reinstated\") {\r\n participationStatus = 'Added';\r\n } else if (section.ParticipationStatus == \"Deleted\") {\r\n participationStatus = 'Deleted';\r\n } else if (section.ParticipationStatus == \"PreviouslyAdded\" && this.itemsHavePreviousValue(childrenVMs, formState)) {\r\n participationStatus = 'Changed';\r\n }\r\n\r\n return participationStatus;\r\n }\r\n\r\n public fieldHasPreviousValue(fieldVM: SmFormFieldVM, formState: SmFormState) {\r\n if ((formState == null || formState.IsStartingOrCopy) ||\r\n (_.isNil(fieldVM.PreviousValue) && !fieldVM.Value))\r\n return false;\r\n \r\n var formattedValue = this.formatFieldValue(fieldVM.Value, fieldVM.FieldType, fieldVM.Options, formState);\r\n var formattedPrevValue = this.formatFieldValue(fieldVM.PreviousValue, fieldVM.FieldType, fieldVM.Options, formState);\r\n \r\n return formattedValue !== formattedPrevValue;\r\n }\r\n\r\n public itemsHavePreviousValue(items: SmFormElementVM[], formState: SmFormState) {\r\n var fields = _.filter(items, i => i.ElementType == 'Field') as SmFormFieldVM[];\r\n var sections = _.filter(items, i => i.ElementType == 'Section') as SmFormSectionVM[];\r\n\r\n var hasPrevValue = false;\r\n\r\n hasPrevValue = _.some(fields, f => this.fieldHasPreviousValue(f, formState));\r\n\r\n if (hasPrevValue)\r\n return true;\r\n\r\n hasPrevValue = _.some(sections, s => this.sectionHasChildWithPreviousValue(s, formState));\r\n return hasPrevValue;\r\n }\r\n\r\n public sectionHasChildWithPreviousValue(section: SmFormSectionVM, formState: SmFormState): boolean {\r\n\r\n if (section.Repeatable) {\r\n return _.some(section.Instances, i => {\r\n return i.ParticipationStatus == 'Added' || i.ParticipationStatus == 'Deleted' \r\n || this.itemsHavePreviousValue(i.Items, formState)\r\n });\r\n } else {\r\n return this.itemsHavePreviousValue(section.Items, formState);\r\n }\r\n }\r\n\r\n // #endregion Participation Status\r\n\r\n // #region Errors\r\n\r\n public childrenHaveAtLeastOneError(children: SmFormElementVM[]): boolean {\r\n if (!children?.length)\r\n return false;\r\n\r\n var childFields = _.filter(children, i => i.ElementType == 'Field') as SmFormFieldVM[];\r\n var childSections = _.filter(children, i => i.ElementType == 'Section') as SmFormSectionVM[];\r\n var hasError = _.some(childFields, cf => this.fieldHasError(cf));\r\n hasError = hasError || _.some(childSections, cs => this.sectionHasError(cs));\r\n\r\n return hasError;\r\n }\r\n\r\n public instancesHaveAtLeastOneError(instances: SmFormSectionInstanceVM[]) {\r\n return _.some(instances, i => this.childrenHaveAtLeastOneError(i.Items));\r\n }\r\n\r\n public sectionHasError(section: SmFormSectionVM) { \r\n if (section.Hidden || section.ParentIsDeleted)\r\n return false;\r\n\r\n if (section.Repeatable) {\r\n if (this.repeatableSectionHasMinError(section) || this.repeatableSectionHasMaxError(section))\r\n return true;\r\n\r\n return this.instancesHaveAtLeastOneError(section.Instances); \r\n } else {\r\n return this.childrenHaveAtLeastOneError(section.Items); \r\n }\r\n }\r\n\r\n public fieldHasError(field: SmFormFieldVM) {\r\n return !field.Hidden && field.Errors && field.Errors.length > 0;\r\n }\r\n\r\n public repeatableSectionHasMinError(section: SmFormSectionVM): boolean {\r\n if (section.Hidden || !section.Repeatable || section.ParentIsDeleted || _.isNil(section.MinRepeatableInstances))\r\n return false;\r\n \r\n var instanceCount = _.filter(section.Instances, i => i.ParticipationStatus != 'Deleted').length;\r\n return instanceCount < section.MinRepeatableInstances;\r\n }\r\n\r\n public repeatableSectionHasMaxError(section: SmFormSectionVM): boolean {\r\n if (section.Hidden || !section.Repeatable || section.ParentIsDeleted || _.isNil(section.MaxRepeatableInstances))\r\n return false;\r\n\r\n var instanceCount = _.filter(section.Instances, i => i.ParticipationStatus != 'Deleted').length;\r\n return instanceCount > section.MaxRepeatableInstances;\r\n }\r\n\r\n // #endregion Errors\r\n\r\n // #region Expansion\r\n\r\n public expandAllAncestorsOfElement(form: SmFormVM, id: string) {\r\n var sections = form.Sections;\r\n\r\n _.forEach(sections, section => {\r\n this.sectionIsAncestorOfElement(section, id, true);\r\n });\r\n }\r\n\r\n // #endregion\r\n\r\n // #region Traversal\r\n\r\n public sectionIsAncestorOfElement(section: SmFormSectionVM, id: string, expandIfTrue: boolean = false): boolean { \r\n var found = false;\r\n\r\n if (section.Repeatable) {\r\n if (_.some(section.Instances, instance => instance.Id == id || this.instanceIsAncestorOfElement(instance, id, expandIfTrue))) \r\n found = true;\r\n } else {\r\n if (_.some(section.Items, i => i.Id == id)) {\r\n found = true;\r\n } else {\r\n var childSections = _.filter(section.Items, i => i.ElementType == 'Section') as SmFormSectionVM[];\r\n if (_.some(childSections, childSection => this.sectionIsAncestorOfElement(childSection, id, expandIfTrue))) \r\n found = true;\r\n } \r\n }\r\n\r\n if (found && expandIfTrue)\r\n section.ToggledToHide = false;\r\n return found;\r\n }\r\n\r\n public instanceIsAncestorOfElement(instance: SmFormSectionInstanceVM, id: string, expandIfTrue: boolean = false): boolean {\r\n var found = false;\r\n\r\n if (_.some(instance.Items, i => i.Id == id)) {\r\n found = true;\r\n } else {\r\n var childSections = _.filter(instance.Items, i => i.ElementType == 'Section') as SmFormSectionVM[];\r\n if (_.some(childSections, childSection => this.sectionIsAncestorOfElement(childSection, id, expandIfTrue)))\r\n found = true;\r\n }\r\n \r\n if (found && expandIfTrue)\r\n instance.ToggledToHide = false;\r\n return found;\r\n }\r\n\r\n // #endregion Traversal\r\n\r\n public applyPrefixAndSuffixToFieldValue(value: string, \r\n prefix: string = null, \r\n suffix: string = null): any {\r\n\r\n let formattedValue: string = value;\r\n\r\n if (prefix && prefix.trim() !== \"\") {\r\n formattedValue = prefix + formattedValue;\r\n }\r\n\r\n if ((suffix && suffix.trim() !== \"\")) {\r\n formattedValue = formattedValue + suffix;\r\n }\r\n\r\n return formattedValue;\r\n } \r\n}","import { PartitionKeyIdPair } from \"@Core/Lib/model\";\r\nimport { SmDateFormats } from \"@Shared/Pipes/sm-date.pipe\";\r\n\r\nexport interface SmFormVM {\r\n Id: string; // The Id of the App\r\n Sections: SmFormSectionVM[];\r\n}\r\n\r\nexport interface SmFormElementVM {\r\n Id: string;\r\n Label: string;\r\n PartitionKey: string;\r\n ElementType: 'Section' | 'Field' | 'StaticText' | 'Row'; // Note: Row is not actually an 'Element' yet, \r\n // so some of these properties won't apply to a Row. \r\n CreatedFromId: string;\r\n Description?: string;\r\n Hidden?: boolean; // Used for conditionally hiding elements. \r\n Errors?: string[];\r\n}\r\n\r\nexport interface SmFormSectionVM extends SmFormElementVM {\r\n Items: SmFormElementVM[];\r\n ParentId: string; // The id of its parent\r\n ParentPartitionKeyIdPair: PartitionKeyIdPair;\r\n ToggledToHide?: boolean;\r\n \r\n Repeatable: boolean;\r\n MinRepeatableInstances?: number;\r\n MaxRepeatableInstances?: number;\r\n Instances?: SmFormSectionInstanceVM[];\r\n RepeatableVisibleLabels?: string[];\r\n ParentIsDeleted?: boolean; // If this section is a nested repeatable and its parent is deleted\r\n Access?: string; // 'Normal' | 'PreventAddAndDelete' \r\n}\r\n\r\n// An instance of a repeatable section\r\nexport interface SmFormSectionInstanceVM {\r\n Id: string;\r\n PartitionKey: string;\r\n CreatedFromId: string;\r\n ParticipationStatus?: 'Added' | 'Changed' | 'Deleted'; // Null means unchanged\r\n Items?: SmFormElementVM[];\r\n ToggledToHide?: boolean;\r\n Errors?: string[];\r\n Access?: string; // 'Normal' | 'PreventAddAndDelete' \r\n}\r\n\r\nexport interface SmFormFieldVM extends SmFormElementVM {\r\n Required: boolean;\r\n Value: any;\r\n PreviousValue?: any;\r\n FieldType: SmFormTypes; // string, date, etc.\r\n HelpText?: string;\r\n Disabled?: boolean; // In edit mode, whether or not the input is disabled.\r\n IncludeInRepeatable?: boolean;\r\n Options?: SmFormFieldOptionsVM;\r\n Errors?: string[];\r\n FormWidth?: FormWidths;\r\n Prefix?: string;\r\n Suffix?: string;\r\n SpecialType?: 'Currency' | null\r\n}\r\n\r\nexport interface SmFormFieldOptionsVM {\r\n ShowCommas?: boolean; // Integer, whether to use 1,000,123 or 10001233\r\n\r\n NumberOfDecimals?: number; // Decimal\r\n DisplayAsPercentage?: boolean; // Decimal\r\n DisplayNegativesInRed?: boolean; // Decimal & Money\r\n Separator?: string; // Decimal\r\n\r\n Currency?: string; // Money (ONLY use if overriding the default currency for the program)\r\n DisplayAsWholeNumber?: boolean; // Money\r\n\r\n Options?: string[]; // MultiSelect (null for not allowing custom), Select or RadioOptions\r\n AllowSpaces?: boolean; // MultiSelect\r\n\r\n DateFormat?: SmDateFormats; // Date\r\n\r\n MultiLineEntry?: boolean; // String\r\n MinLength?: number; // String\r\n MaxLength?: number; // String\r\n ButtonAlignment?: string; // Radio\r\n\r\n ShowUrlInViewOnly?: boolean; // URL\r\n}\r\n\r\n\r\nexport interface SmFormStaticElementVM extends SmFormElementVM {\r\n Text: string;\r\n}\r\n\r\nexport interface SmFormRowVM extends SmFormElementVM {\r\n // Note: A Row is not a real Element of an Application, so some of the\r\n // base properties will not be applicable\r\n\r\n Fields: SmFormFieldVM[]; \r\n SpecialType: 'Currency' | null; // Some rows have specific behavior beyond just the display\r\n}\r\n\r\nexport interface SmFormState {\r\n Edition: number;\r\n Currency: string;\r\n IsStartingOrCopy: boolean;\r\n}\r\n\r\nexport enum SmFormTypes {\r\n Boolean = \"boolean\",\r\n ContractDate = \"contractDate\",\r\n Decimal = \"decimal\",\r\n Email = \"email\",\r\n Integer = \"integer\",\r\n MultiSelect =\"multi-select\",\r\n Money = \"money\",\r\n Phone = \"phone\",\r\n RadioOptions = \"radio-options\",\r\n Select = \"select\",\r\n String = \"string\",\r\n Timestamp = \"timestamp\",\r\n Url = \"url\",\r\n Year = \"year\",\r\n Zip = \"zip\"\r\n}\r\n\r\nexport enum FormWidths {\r\n Small = \"Small\",\r\n Medium = \"Medium\",\r\n Large = \"Large\",\r\n ExtraLarge = \"Extra Large\"\r\n}\r\n\r\n// #region Events\r\n\r\nexport interface FormValueChangeEvent {\r\n FieldVM: SmFormFieldVM;\r\n NewValue: any;\r\n Type?: 'input' | 'change';\r\n}\r\n\r\nexport interface SectionDeletedEvent {\r\n InstanceId: string;\r\n InstancePartitionKey: string;\r\n ContainingSectionId: string;\r\n}\r\n\r\nexport interface SectionAddedEvent {\r\n InstanceId: string;\r\n ContainingSectionId: string;\r\n}\r\n\r\n\r\nexport interface SmElementChangedEvent {\r\n ElementId: string;\r\n ElementVM: SmFormElementVM;\r\n}\r\n\r\nexport interface SmSectionAddedEvent {\r\n SectionVM: SmFormSectionVM;\r\n}\r\n\r\nexport interface SmOpenSectionInstanceEvent {\r\n InstanceId: string;\r\n}\r\n\r\nexport interface SmSectionDeletedEvent {\r\n SectionVM: SmFormSectionVM;\r\n InstanceId: string;\r\n}\r\n\r\nexport interface SmElementFocusedEvent {\r\n Id: string;\r\n // Field: an invalid/required field\r\n // Section: a max/min error on the FE representation of the repeatable section grouping. \r\n // ParentSection: This is the parent of the min/max issue (this is the Id the backend stores)\r\n Type: 'Section' | 'Field' | 'ParentSection'; \r\n}\r\n\r\n// #endregion Events","\r\n \r\n\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: 'sm-help-tooltip',\r\n templateUrl: './sm-help-tooltip.component.html',\r\n styleUrls: ['./sm-help-tooltip.component.scss']\r\n})\r\nexport class SmHelpTooltipComponent {\r\n @Input() title?: string;\r\n @Input() placement?: Placements = Placements.Auto;\r\n @Input() icon?: Icon = Icon.Help;\r\n @Input() color?: Color = Color.Black;\r\n @Input() trigger?: Triggers = Triggers.Click;\r\n\r\n @Input() bgColor?: Color = null;\r\n};\r\n\r\nexport enum Icon {\r\n Help = 'help',\r\n Info = 'information',\r\n Warning = 'warning',\r\n Error = 'error'\r\n}\r\n\r\nexport enum Color {\r\n Black = 'black',\r\n White = 'white',\r\n}\r\n\r\nexport enum Placements {\r\n Auto = 'auto',\r\n Top = 'top',\r\n TopLeft = 'top-left',\r\n TopRight = 'top-right',\r\n Bottom = 'bottom',\r\n BottomLeft = 'bottom-left',\r\n BottomRight = 'bottom-right',\r\n Left = 'left',\r\n LeftTop = 'left-top',\r\n LeftBottom = 'left-bottom',\r\n Right = 'right',\r\n RightTop = 'right-top',\r\n RightBottom = 'right-bottom',\r\n}\r\n\r\nexport enum Triggers {\r\n Click = 'click',\r\n Hover = 'hover',\r\n Focus = 'focus',\r\n Manual = 'manual',\r\n}\r\n","\r\n \r\n
\r\n
\r\n \r\n {{ nameLine.MainText }}\r\n \r\n \r\n {{ nameLine.MainText | guidReplacer | async }}\r\n \r\n \r\n \r\n {{ nameLine.MainText }}\r\n {{ nameLine.MainText }}\r\n {{ nameLine.MainText }}\r\n\r\n \r\n \r\n \r\n {{ nameLine.RightText }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n {{row.AdditionalColumnText}}\r\n
\r\n
\r\n","import { Component, Input, Output, EventEmitter, HostBinding } from \"@angular/core\";\r\nimport _ from \"lodash\";\r\nimport { Observable } from \"rxjs\";\r\nimport { SmAssignableBadgeVM } from \"../sm-assignable-badge/sm-assignable-badge.viewmodel\";\r\n\r\n@Component({\r\n selector: 'sm-info-stack',\r\n templateUrl: './sm-info-stack.component.html',\r\n styleUrls: ['./sm-info-stack.component.scss']\r\n})\r\nexport class SmInfoStackComponent {\r\n\r\n @Input() public model: InfoStackRow[] = [];\r\n\r\n @Output() public linkClicked: EventEmitter = new EventEmitter();\r\n @Output() public buttonClicked: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.additional_column') @Input() additionalColumn: boolean = false;\r\n\r\n public onLinkClick(row: InfoStackRow, line: InfoLine): void {\r\n this.linkClicked.emit({ Label: row.Label, Id: line.Id });\r\n }\r\n\r\n public onButtonClick(row: InfoStackRow, line: InfoLine): void {\r\n this.buttonClicked.emit({ Label: row.Label, Id: line.Id });\r\n }\r\n\r\n public getLineClasses(line: InfoLine): string[] {\r\n var classes: string[] = [];\r\n\r\n if (line.Classes?.length) {\r\n classes = line.Classes;\r\n }\r\n\r\n if (line.State == 'Bold')\r\n classes.push('label_name_grid--name-bold');\r\n\r\n if (line.State == 'Italic')\r\n classes.push('label_name_grid--name-italic');\r\n\r\n return classes;\r\n }\r\n};\r\n\r\nexport interface InfoStackRow {\r\n Label: string;\r\n InfoLines: InfoLine[];\r\n ForForm?: boolean;\r\n // Use to have different info stacks on the same page to have the same width;\r\n LabelSize?: 'sm' | 'md' | 'lg' | 'xl'; \r\n AdditionalColumnText?: string;\r\n}\r\n\r\nexport type InfoLineState = 'Normal' | 'Italic' | 'Bold' | 'Link' | 'Button' | 'GuidReplacement' | 'DateBy' | 'Phone' | 'ExternalLink' | 'Email';\r\n\r\nexport interface InfoLine {\r\n Id?: string; // Used when the button or link is clicked\r\n MainText: string;\r\n State: InfoLineState;\r\n Disabled?: boolean;\r\n RightText?: string;\r\n RightIcon?: string;\r\n RightIconTooltip?: string;\r\n DeployedBy?: Observable;\r\n DeployedOn?: Date;\r\n Classes?: string[];\r\n InternalValue?: string; // Used in ExternalLink to distinguish between display text and the link to go to\r\n}","
\r\n
\r\n
\r\n \r\n \r\n {{searchMessage}}\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, HostBinding, Input, Output, QueryList, ViewChild, ViewChildren } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { Guid } from '@Core/Lib/guid';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { TenantTenantService } from '@Services/tenant-tenant-service';\r\nimport { SearchResult, SearchDataType, SmQuickSearchCard } from '@Shared/Components/sm-quick-search-card/sm-quick-search-card.component';\r\nimport { Subscription } from 'rxjs';\r\n\r\n\r\n@Component({\r\n selector: 'sm-producer-search',\r\n templateUrl: './sm-producer-search.component.html',\r\n styleUrls: ['./sm-producer-search.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SmProducerSearchComponent {\r\n\r\n @HostBinding('class') @Input() resultsDirection: 'up' | 'down' = 'up';\r\n @Input() disabled: boolean = false;\r\n @Input() placeholderLabel: string = \"Producer\";\r\n\r\n @Output() producerSelectedEvent: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('search') search: ElementRef;\r\n @ViewChild('results') results: ElementRef;\r\n \r\n public searchFocus: boolean = false;\r\n public searching: boolean = false;\r\n public searchHasValue: boolean = false;\r\n public searchValue: string = \"\";\r\n public searchMessage: string = \"\";\r\n public searchDirty: boolean = true;\r\n\r\n public foundProducers: SearchResult[] = new Array();\r\n\r\n private tenantContext: TenantContext;\r\n public searchType: SearchDataType = SearchDataType.Producer;\r\n public searchSubscription$: Subscription;\r\n public searchDebounceTimeout: any;\r\n\r\n constructor(\r\n private tenantService: TenantTenantService,\r\n private changeDetection: ChangeDetectorRef\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.tenantContext = new TenantContext(); \r\n const self = this;\r\n\r\n this.setDefaultSearchMessage();\r\n }\r\n\r\n public onSearchFocus(event: Event): void {\r\n const searchValue = (event.target).value;\r\n this.searchFocus = true;\r\n\r\n if (this.searchHasValue && searchValue != this.searchValue) {\r\n this.performSearch(searchValue);\r\n }\r\n }\r\n\r\n public onSearchBlur(): void {\r\n this.searchFocus = false;\r\n if (this.searchDirty) this.resetSearch();\r\n }\r\n\r\n public onSearchKeyup(event: KeyboardEvent): void {\r\n this.clearSearchTimeout();\r\n\r\n const searchValue = (event.target).value;\r\n this.searchValue = searchValue;\r\n \r\n if (searchValue?.length > 0) {\r\n this.searchHasValue = true;\r\n this.searchMessage = \"Minimum 3 characters to search\";\r\n } else {\r\n this.searchHasValue = false;\r\n this.foundProducers = [];\r\n this.setDefaultSearchMessage();\r\n }\r\n\r\n if (searchValue.length > 2) {\r\n this.performSearch(searchValue);\r\n } else {\r\n this.searching = false;\r\n }\r\n }\r\n\r\n private setDefaultSearchMessage() {\r\n this.searchMessage = \"Start typing to search\";\r\n }\r\n\r\n private performSearch(searchValue: string): void {\r\n var self = this;\r\n this.searching = true;\r\n this.searchMessage = \"Searching...\";\r\n\r\n if (this.searchHasValue) {\r\n this.tenantContext = new TenantContext();\r\n\r\n this.searchDebounceTimeout = setTimeout(() => {\r\n if (this.searchSubscription$)\r\n this.searchSubscription$.unsubscribe();\r\n\r\n this.searchSubscription$ = this.tenantService.searchProducers(searchValue, this.tenantContext)\r\n .subscribe((response: any) => {\r\n // Do this here and not at the beginning of the function to prevent some weird UI where the search \r\n // list disappears temporarily\r\n this.foundProducers = []; \r\n var responseContent = response.Content; // This should be an array of objects. \r\n\r\n _.forEach(responseContent, obj => {\r\n // We are going to deserialize this to our Search Result object.\r\n var searchResult = new SearchResult();\r\n searchResult.score = obj[\"@search.score\"];\r\n searchResult.highlights = obj[\"@search.highlights\"];\r\n searchResult.data = obj.document; // Not an actual Producer object. \r\n self.foundProducers.push(searchResult);\r\n });\r\n\r\n this.searching = false;\r\n this.searchMessage = `Showing ${self.foundProducers.length} results`;\r\n this.changeDetection.detectChanges();\r\n this.results?.nativeElement?.focus();\r\n });\r\n\r\n this.searchDebounceTimeout = null\r\n }, 1000); \r\n }\r\n else {\r\n this.foundProducers = [];\r\n this.searching = false;\r\n this.searchMessage = \"No results\";\r\n }\r\n }\r\n\r\n public resetSearch(): void {\r\n this.searchHasValue = false;\r\n this.searchValue = \"\";\r\n this.searching = false;\r\n this.searchDirty = true;\r\n this.foundProducers = [];\r\n this.setDefaultSearchMessage();\r\n }\r\n\r\n public clearSearchInput(): void {\r\n this.resetSearch();\r\n var ev: ProducerSelectedEvent = {\r\n Id: null,\r\n Name: null,\r\n Code: null\r\n }\r\n this.producerSelectedEvent.emit(ev);\r\n this.search.nativeElement.disabled = false;\r\n this.search.nativeElement.focus();\r\n }\r\n\r\n private clearSearchTimeout() {\r\n clearTimeout(this.searchDebounceTimeout);\r\n this.searchDebounceTimeout = null;\r\n }\r\n\r\n public onProducerSelected(producerData: any): void {\r\n this.searchValue = producerData.name + \" (\" + producerData.code + \")\";\r\n this.searching = false;\r\n this.searchDirty = false;\r\n\r\n var event: ProducerSelectedEvent = {\r\n Id: producerData.id,\r\n Name: producerData.name,\r\n Code: producerData.code\r\n }\r\n this.producerSelectedEvent.emit(event);\r\n this.search.nativeElement.disabled = true;\r\n\r\n this.searchFocus = false;\r\n }\r\n}\r\n\r\nexport interface ProducerSelectedEvent {\r\n Id: Guid,\r\n Name: string,\r\n Code: string\r\n}","
\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n

{{policyInfo.ProgramName}}

\r\n

\r\n {{policyInfo?.ProgramName ?? acctProgram.data.Name}}\r\n

\r\n
{{policyInfo.EffectiveDate}} - {{policyInfo.ExpirationDate}}
\r\n \r\n
1\" id=\"MorePrograms\" class=\"ms-auto fw-bold\">\r\n {{MatchedItem.data.programIds.length - 1}} more\r\n
\r\n
\r\n
\r\n\r\n
\r\n
{{policyInfo.ProductId | guidReplacer | async}} - {{policyInfo.Status}}
\r\n
{{policyInfo.Number}}
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { Program } from '@Core/CodeGen/Models/area.models';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { FeatureFacetService } from '@Services/feature-facet.service';\r\nimport { Component, OnInit, Input, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sm-quick-search-card',\r\n templateUrl: './sm-quick-search-card.component.html',\r\n styleUrls: ['./sm-quick-search-card.component.scss']\r\n})\r\nexport class SmQuickSearchCard implements OnInit {\r\n constructor(private facetService: FeatureFacetService,\r\n private authService: AuthService,\r\n private userContext: UserContext) \r\n {}\r\n\r\n @Input() MatchedItem: SearchResult;\r\n @Input() SearchType: SearchDataType;\r\n SearchDataTypes = SearchDataType;\r\n\r\n @HostBinding('attr.role') role = 'button';\r\n\r\n public resultName: string;\r\n public resultCode: string;\r\n public TENANT_PERMISSIONS = TenantPermissions;\r\n\r\n public accountDba: string;\r\n public accountTags: string[];\r\n public policyQuoteNumber: string;\r\n public policyInfo: PolicyInfo = null;\r\n public explctPrgmAccess: boolean = false;\r\n public acctProgram: Program = new Program();\r\n\r\n ngOnInit(): void {\r\n this.checkExplctPrgmAccess();\r\n\r\n switch(this.SearchType) {\r\n case SearchDataType.Account :\r\n this.BuildAccountSearchResults();\r\n break;\r\n\r\n case SearchDataType.Producer :\r\n this.BuildProducerSearchResults();\r\n break;\r\n };\r\n }\r\n\r\n private checkExplctPrgmAccess() {\r\n this.facetService.getAllFacets().subscribe(allFacets => {\r\n if (FeatureFacetService.checkIfFacetExists(this.TENANT_PERMISSIONS.Flag_Work_Accounts_ExplicitProgramAccess, \r\n allFacets, this.authService.spaName, this.authService.getAreaKey())) {\r\n this.explctPrgmAccess = true;\r\n this.acctProgram = this.userContext.get(ModelUtils.createDomainId(new Program(), this.MatchedItem.data.programIds[0])) as Program;\r\n }\r\n }); \r\n }\r\n\r\n private BuildAccountSearchResults() : void {\r\n this.resultName = this.MatchedItem.data.name;\r\n this.resultCode = this.MatchedItem.data.code;\r\n this.accountDba = this.MatchedItem.data.dba;\r\n this.accountTags = this.MatchedItem.data.tags;\r\n\r\n if (this.MatchedItem.highlights) {\r\n const keys = Object.keys(this.MatchedItem.highlights);\r\n keys.forEach(key => {\r\n\r\n if (key === \"Name\") {\r\n this.resultName = this.MatchedItem.highlights[key];\r\n }\r\n if (key === \"Code\") {\r\n this.resultCode = this.MatchedItem.highlights[key];\r\n }\r\n if (key === \"Dba\") {\r\n this.accountDba = this.MatchedItem.highlights[key];\r\n }\r\n if (key === \"PolicyNumbers\") {\r\n this.policyInfo = this.MatchedItem.data.policyInfo;\r\n }\r\n if (key === \"QuoteNumbers\") {\r\n this.policyInfo = this.MatchedItem.data.policyInfo;\r\n }\r\n if (key === \"Tags\") {\r\n this.accountTags = this.MatchedItem.highlights[key];\r\n }\r\n });\r\n }\r\n }\r\n\r\n private BuildProducerSearchResults() : void {\r\n this.resultName = this.MatchedItem.data.name;\r\n this.resultCode = this.MatchedItem.data.code;\r\n this.accountDba =\r\n `${this.MatchedItem.data.address1} ${this.MatchedItem.data.city} ${this.MatchedItem.data.state} ${this.MatchedItem.data.zip}`;\r\n\r\n if (this.MatchedItem.highlights) {\r\n const keys = Object.keys(this.MatchedItem.highlights);\r\n keys.forEach(key => {\r\n\r\n if (key === \"Name\") {\r\n this.resultName = this.MatchedItem.highlights[key];\r\n }\r\n if (key === \"Code\") {\r\n this.resultCode = this.MatchedItem.highlights[key];\r\n }\r\n });\r\n }\r\n }\r\n}\r\n\r\nexport enum SearchDataType {\r\n Account,\r\n Producer\r\n}\r\n\r\nexport class SearchResult {\r\n score: number;\r\n highlights: any;\r\n data: any;\r\n}\r\n\r\nexport class PolicyInfo {\r\n ProgramName: string;\r\n ProgramId: string;\r\n PolicySetRange: string;\r\n Product: string;\r\n Number: string;\r\n EffectiveDate?: string;\r\n ExpirationDate?: string;\r\n}","
\r\n

Choose an Area

\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n","import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Area } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { TenantPermissions } from \"@Core/CodeGen/tenant-permissions.enum\";\r\nimport { TenantContext } from \"@Core/Lib/Contexts/tenant-context\";\r\nimport { UserContext } from \"@Core/Lib/Contexts/user-context\";\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { TenantTenantService } from \"@Services/tenant-tenant-service\";\r\nimport { UserService } from \"@Services/user-service\";\r\nimport { PermissionsShared } from \"@Shared/Directives/sm-permissions-shared.class\";\r\nimport _ from \"lodash\";\r\nimport { combineLatest, Subject } from \"rxjs\";\r\nimport { takeUntil } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: 'sm-select-area',\r\n templateUrl: './sm-select-area.component.html',\r\n styleUrls: ['./sm-select-area.component.scss']\r\n})\r\nexport class SmSelectAreaComponent implements OnInit, OnDestroy {\r\n // We can display this component in a modal. If so, we will have our own button to select an area\r\n @Input() isModal: boolean;\r\n @Input() selectedAreaAliasOrName: string;\r\n @Input() areas: Area[] = [];\r\n\r\n @Output() onCancel: EventEmitter = new EventEmitter();\r\n\r\n private ngUnsubscribe: Subject = new Subject();\r\n\r\n public TENANT_PERMISSIONS = TenantPermissions;\r\n public filteredAreas: Area[] = [];\r\n public selectedArea: Area;\r\n public areaHasBeenSelected = false;\r\n\r\n public allPermissions: string[] = [\r\n this.TENANT_PERMISSIONS.SystemAccess,\r\n this.TENANT_PERMISSIONS.Tenant,\r\n this.TENANT_PERMISSIONS.Programs\r\n ];\r\n public canAccessConfig: boolean = false;\r\n\r\n constructor(\r\n public router: Router,\r\n private route: ActivatedRoute,\r\n private authService: AuthService,\r\n private tenantTenantService: TenantTenantService,\r\n private userContext: UserContext,\r\n private tenantContext: TenantContext,\r\n private userService: UserService) {\r\n }\r\n\r\n ngOnInit() {\r\n if (!this.areas?.length) {\r\n this.tenantTenantService.loadAreas(this.tenantContext);\r\n }\r\n\r\n combineLatest([\r\n this.authService.authContext$,\r\n this.userService.Permissions,\r\n this.tenantContext.getStore(new Area()).values\r\n ]).pipe(takeUntil(this.ngUnsubscribe)).subscribe(([authContext, grantedPermissions, allAreas]) => {\r\n var areasUserHasAccessTo = this.authService.getAvailableAreasForCurrentTenant();\r\n if (PermissionsShared.HasAll(grantedPermissions, this.allPermissions)) {\r\n this.canAccessConfig = true;\r\n }\r\n\r\n if (!this.areas?.length)\r\n this.areas = _.sortBy(allAreas, a => a.Order);\r\n\r\n this.autoSelectArea(areasUserHasAccessTo);\r\n });\r\n }\r\n\r\n public goToConfig() {\r\n this.router.navigate([\"Conf\"]);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next(true);\r\n this.ngUnsubscribe.complete();\r\n }\r\n\r\n areaSelect() {\r\n this.areaSelected();\r\n \r\n this.authService.selectArea(this.selectedArea.Name).subscribe(() => {\r\n if (this.isModal) {\r\n this.userService.reset();\r\n this.userContext.clearAll(true);\r\n\r\n var view = this.router.url.split('/');\r\n this.router.navigate([view[1]]).then(() => {\r\n window.location.reload(); \r\n });\r\n } else {\r\n this.router.navigate(['..'], { relativeTo: this.route });\r\n }\r\n \r\n this.userContext.quickDataLoaded = false;\r\n this.userContext.accountsLoaded = false;\r\n });\r\n }\r\n\r\n areaSelected() {\r\n // Mark that the area has been selected by the user, so don't auto select\r\n this.areaHasBeenSelected = true;\r\n }\r\n\r\n private autoSelectArea(areasUserHasAccessTo: string[]) {\r\n // Don't auto select if the area has already been picked by the user\r\n if (!this.areas?.length || this.areaHasBeenSelected)\r\n return;\r\n\r\n // Only show areas User has access to\r\n this.filteredAreas = _.map(areasUserHasAccessTo, aKey => _.find(this.areas, a => a.Name == aKey));\r\n this.filteredAreas = _.sortBy(this.filteredAreas, a => a.Order);\r\n\r\n if (!this.filteredAreas?.length || this.areaHasBeenSelected)\r\n return;\r\n else if (this.filteredAreas?.length === 1 && !this.canAccessConfig) {\r\n this.selectedArea = this.filteredAreas[0];\r\n this.areaSelect();\r\n }\r\n else {\r\n if (!this.selectedAreaAliasOrName) {\r\n let lastArea = this.filteredAreas[this.filteredAreas.length - 1];\r\n this.selectedAreaAliasOrName = lastArea.Alias ?? lastArea.Name;\r\n }\r\n\r\n this.selectedArea = _.find(this.filteredAreas, a => a.Alias == this.selectedAreaAliasOrName\r\n || a.Name == this.selectedAreaAliasOrName);\r\n }\r\n }\r\n};","\r\n
\r\n

{{options.title}}

\r\n \r\n
\r\n
\r\n {{options.message}}\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n
No DialogOptionsSet
","import { Component, Input } from '@angular/core';\r\n\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'sm-simple-dialog',\r\n templateUrl: './sm-simple-dialog.component.html',\r\n})\r\nexport class SmSimpleDialog {\r\n @Input() options: SimpleDialogOptions\r\n\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n performAction(button: DialogButtonOptions): void {\r\n if (!button || !button.action)\r\n return;\r\n\r\n button.action(this.activeModal);\r\n }\r\n}\r\n\r\nexport interface SimpleDialogOptions {\r\n title?: string;\r\n dismissButton?: boolean;\r\n message: string;\r\n buttons: DialogButtonCollection;\r\n}\r\n\r\nexport interface DialogButtonCollection {\r\n leftButton?: DialogButtonOptions\r\n centerButton?: DialogButtonOptions\r\n rightButton?: DialogButtonOptions\r\n}\r\n\r\nexport interface DialogButtonOptions {\r\n label: string;\r\n class?: string | string[];\r\n\r\n // This function is called with the first argument being a reference to the active modal.\r\n action: Function; \r\n}","\r\n \r\n \r\n\r\n\r\n
\r\n
Live Updates: {{status}}
\r\n
\r\n You may still continue work as normal, but the experience may be diminished while the sync service is restored.\r\n
\r\n
\r\n
","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'sm-sync-status',\r\n templateUrl: './sm-sync-status.component.html',\r\n styleUrls: ['./sm-sync-status.component.scss']\r\n})\r\nexport class SmSyncStatusComponent {\r\n \r\n @Input() status: SyncStatus;\r\n @Input() placement: string = \"left\";\r\n public syncClass: string;\r\n\r\n ngOnChanges() {\r\n this.syncClass = this.status.toLowerCase();\r\n }\r\n}\r\n\r\nexport enum SyncStatus {\r\n Connected = \"Connected\",\r\n Disconnected = \"Disconnected\",\r\n Reconnecting = \"Reconnecting\"\r\n}\r\n","import { Component, Input, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport { interval, Subject, Subscription } from 'rxjs';\r\nimport { switchMap, tap } from 'rxjs/operators';\r\n\r\nimport { TimeInStrPipe, TimeMaxUnitEnum } from '@Shared/Pipes/time.pipe';\r\n\r\n@Component({\r\n selector: 'sm-time-since',\r\n templateUrl: './sm-time-since.component.html',\r\n})\r\nexport class SmTimeSinceComponent {\r\n @Input() start: Date;\r\n @Input() displayTimeUntil: boolean = false; // Use time until instead\r\n\r\n public text: string;\r\n private timerSubscription: Subscription;\r\n \r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n ngOnInit() {\r\n if (!this.timerSubscription) {\r\n this.resetTimer();\r\n }\r\n }\r\n\r\n ngOnChanges() {\r\n if (this.timerSubscription) {\r\n this.resetTimer();\r\n }\r\n }\r\n \r\n public resetTimer() {\r\n const self = this;\r\n\r\n if (!this.start)\r\n return;\r\n\r\n // Interval will run every minute or the time assigned is >= onehour then it will run every hour.\r\n const oneHour = 3600000;\r\n let _interval = 60000;\r\n\r\n this.setTimeStr();\r\n\r\n const assignedTime = new Date().getTime() - this.start.getTime();\r\n if (assignedTime >= oneHour) {\r\n _interval = oneHour;\r\n }\r\n\r\n if (this.start) {\r\n let subject = new Subject();\r\n this.timerSubscription = subject.pipe(\r\n switchMap(int => interval(int)),\r\n tap(() => {\r\n const assignedTime = new Date().getTime() - self.start.getTime();\r\n if (assignedTime >= oneHour) {\r\n // Update interval to one hour\r\n subject.next(oneHour);\r\n }\r\n this.setTimeStr();\r\n self.cdr.detectChanges();\r\n })\r\n ).subscribe();\r\n\r\n //Start the interval\r\n subject.next(_interval);\r\n }\r\n }\r\n\r\n private setTimeStr() {\r\n let pipe = new TimeInStrPipe();\r\n var now = (new Date()).getTime();\r\n\r\n var time = this.displayTimeUntil ? (this.start.getTime() - now) : (now - this.start.getTime());\r\n\r\n this.text = pipe.transform(time, true, false, TimeMaxUnitEnum.Week); \r\n }\r\n}","{{ text }}\r\n","
\r\n \r\n \r\n {{model?.Initials}}\r\n \r\n
\r\n\r\n
\r\n

{{model?.Name}} (disabled)

\r\n
{{model?.Title}}
\r\n \r\n
\r\n
\r\n","import { Component, Input } from '@angular/core';\r\nimport { SmAssignableBadgeVM } from \"../sm-assignable-badge/sm-assignable-badge.viewmodel\";\r\n\r\n@Component({\r\n selector: 'unity-avatar',\r\n templateUrl: './unity-avatar.component.html',\r\n styleUrls: ['./unity-avatar.component.scss']\r\n})\r\nexport class UnityAvatarComponent {\r\n @Input() model: SmAssignableBadgeVM;\r\n @Input() color: AvatarColor = AvatarColor.Magenta;\r\n @Input() image: String;\r\n @Input() state: 'enabled' | 'disabled' | 'pending' = 'enabled';\r\n}\r\n\r\nexport enum AvatarColor {\r\n Magenta = \"magenta\",\r\n Blue = \"blue\",\r\n Cyan = \"cyan\",\r\n Purple = \"purple\",\r\n Ultramarine = \"ultramarine\",\r\n Pink = \"pink\",\r\n};","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'unity-badge',\r\n templateUrl: './unity-badge.component.html',\r\n styleUrls: ['./unity-badge.component.scss']\r\n})\r\nexport class UnityBadgeComponent {\r\n\r\n @Input() type: UnityBadgeType = 'text';\r\n @Input() color: UnityBadgeColor = 'default';\r\n @Input() prominence: UnityBadgeProminence = 'high';\r\n\r\n // Note: This property only applies when type=notification\r\n @Input() size: UnityBadgeSize = '';\r\n\r\n}\r\n\r\ntype UnityBadgeType = \"text\" | \"count\" | \"notification\" | \"beacon\";\r\ntype UnityBadgeColor = \"default\" | \"info\" | \"success\" | \"warning\" | \"error\" | \"purple\" | \"cyan\" | \"ultramarine\" | \"pink\";\r\ntype UnityBadgeProminence = \"low\" | \"high\";\r\ntype UnityBadgeSize = \"\" | \"small\" | \"mini\";","\r\n \r\n "," 0\" \r\n type=\"notification\" \r\n size=\"mini\" \r\n class=\"notification badge-count\">\r\n {{ badgeCount }}\r\n\r\n","import { ChangeDetectionStrategy, Component, Input, Output, EventEmitter, HostListener, HostBinding } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[unity-button]',\r\n templateUrl: './unity-button.component.html',\r\n styleUrls: ['./unity-button.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class UnityButtonComponent {\r\n\r\n @HostBinding('attr.role') @Input() role = 'button';\r\n @HostBinding('attr.type') @Input() type = 'button';\r\n @Input() class : string = '';\r\n @Input() disabled : boolean = false;\r\n @Input() active : boolean = false;\r\n @Input() disableOnClick : boolean = false;\r\n @Input() badgeCount: number = 0;\r\n\r\n @HostBinding(\"attr.disabled\") get isDisabled(){\r\n if ( this.disabled === true ) {\r\n return \"disabled\";\r\n }\r\n return null;\r\n };\r\n @HostBinding(\"class\") get computedClasses(){\r\n let classesString = this.class;\r\n if (this.active && this.class.includes('icon-only')) classesString += \" on\";\r\n return classesString;\r\n };\r\n @HostListener('click', ['$event.target']) click() {\r\n if (this.disabled !== true) {\r\n this.disabled = this.disableOnClick;\r\n this.onClick.emit();\r\n }\r\n };\r\n\r\n @Output() onClick = new EventEmitter();\r\n};","\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
{{hintText}}
","import { Component, EventEmitter, Input, forwardRef, HostBinding, ElementRef, Renderer2, Output } from '@angular/core';\r\n\r\nimport { DateUtils } from '@Core/Lib/Utils/date-utils';\r\n\r\n@Component({\r\n selector: 'unity-control-date',\r\n templateUrl: './unity-control-date.component.html',\r\n styleUrls: ['../unity-form-controls.scss']\r\n})\r\nexport class UnityFormControlDateComponent {\r\n @Input() label: string;\r\n @Input() id: string;\r\n @Input() name: string;\r\n @Input() value: Date;\r\n @Input() minDate: Date;\r\n @Input() maxDate: Date;\r\n \r\n @Input() required: boolean = false;\r\n @HostBinding('class') @Input() state: 'disabled' | 'readonly' | 'invalid' | 'warning' | 'success';\r\n @Input() infoText: string = \"\";\r\n @Input() hintText: string = \"\";\r\n @Input() disabled: boolean;\r\n\r\n @Output() onChange: EventEmitter = new EventEmitter();\r\n\r\n public _minDate: string;\r\n public _maxDate: string;\r\n public _value: string\r\n\r\n // The queue value that is changed\r\n private waitingChangeValue: string;\r\n private hasWaitingChange: boolean;\r\n private outgoingChangeTimeout: any;\r\n\r\n constructor(\r\n private renderer:Renderer2,\r\n private elementRef:ElementRef\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.renderer.listen(this.elementRef.nativeElement, 'paste', (e) => {\r\n const pastedValue = e.clipboardData.getData('text');\r\n if (!Number.isNaN(new Date(pastedValue).getTime())) {\r\n e.target.value = new Date(pastedValue).toISOString().split(\"T\")[0];\r\n }\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n this._minDate = DateUtils.ConvertForDateInput(this.minDate);\r\n this._maxDate = DateUtils.ConvertForDateInput(this.maxDate);\r\n this._value = DateUtils.ConvertForDateInput(this.value);\r\n }\r\n\r\n public change(e) {\r\n this.clearTimeout();\r\n this.hasWaitingChange = true;\r\n this.waitingChangeValue = e.target.value;\r\n\r\n this.outgoingChangeTimeout = setTimeout(() => {\r\n this.sendChange();\r\n this.outgoingChangeTimeout = null;\r\n }, 1000); \r\n\r\n }\r\n\r\n public blur() {\r\n if (this.hasWaitingChange) {\r\n this.sendChange();\r\n }\r\n }\r\n\r\n private clearTimeout() { \r\n if (this.outgoingChangeTimeout) {\r\n clearTimeout(this.outgoingChangeTimeout);\r\n this.outgoingChangeTimeout = null;\r\n } \r\n }\r\n\r\n private sendChange() {\r\n this.clearTimeout();\r\n\r\n if (this.hasWaitingChange) {\r\n this.hasWaitingChange = false;\r\n this._value = this.waitingChangeValue;\r\n this.value = DateUtils.ConvertInputStringToDate(this._value);\r\n this.onChange.emit(this.value);\r\n } \r\n\r\n this.waitingChangeValue = null;\r\n }\r\n};","import { Component, Input } from \"@angular/core\";\r\nimport { Area } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\n@Component({\r\n selector: 'sm-select-area-modal',\r\n templateUrl: './sm-select-area-modal.component.html',\r\n})\r\nexport class SmSelectAreaModalComponent {\r\n @Input() selectedAreaAliasOrName: string;\r\n @Input() areas: Area[] = [];\r\n\r\n constructor(public activeModal: NgbActiveModal) { }\r\n\r\n onCancel(): void {\r\n this.activeModal.dismiss();\r\n }\r\n};","\r\n","@if (showAvatar()) {\r\n \r\n} @else {\r\n \r\n}\r\n\r\n

{{ vm?.Message }}

\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n\r\n\r\n\r\n
\r\n {{ subtitle?.DisplayEntityType ?? subtitle?.EntityType }}: \r\n \r\n {{subtitle?.EntityText}}\r\n
\r\n
\r\n\r\n
\r\n {{vm?.Description}}\r\n
\r\n","import { Component, ElementRef, EventEmitter, HostBinding, HostListener, Input, Output, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { NotificationType } from '@Core/CodeGen/Eums/library.enums';\r\nimport { SmAssignableBadgeVM } from '@Shared/Components/sm-assignable-badge/sm-assignable-badge.viewmodel';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'sm-global-notifications-card',\r\n templateUrl: './sm-global-notifications-card.component.html',\r\n styleUrls: ['./sm-global-notifications-card.component.scss']\r\n})\r\n\r\nexport class SmGlobalNotificationsCardComponent {\r\n @Input() vm: NotificationCardVM;\r\n\r\n @Output() onClose: EventEmitter = new EventEmitter();\r\n @Output() onClickLink: EventEmitter = new EventEmitter();\r\n\r\n @HostBinding('class.read') get readClass() { return this.vm.IsRead; }\r\n @HostBinding('class.deleted') get deletedClass() { return this.vm.IsMarkedForDelete; }\r\n \r\n public isCollapsed: boolean = true;\r\n public needsShowMoreShowLess: boolean = true;\r\n\r\n constructor(private router: Router) {}\r\n\r\n ngOnInit() {\r\n this.needsShowMoreShowLess = this.vm.Description?.length > 60;\r\n this.isCollapsed = this.vm.IsRead;\r\n }\r\n\r\n onDeleteNotification(): void {\r\n this.vm.IsMarkedForDelete = true;\r\n }\r\n\r\n onUndoDelete(): void {\r\n this.vm.IsMarkedForDelete = false;\r\n }\r\n\r\n markAsRead(): void {\r\n this.vm.IsRead = true;\r\n }\r\n\r\n toggleDescription(): void {\r\n this.isCollapsed = !this.isCollapsed;\r\n }\r\n\r\n handleRedirect(entityRoute: string): void {\r\n if (this.vm.IsRead) {\r\n this.onClose.emit();\r\n this.router.navigate([entityRoute]);\r\n\r\n return;\r\n }\r\n\r\n this.markAsRead();\r\n this.onClose.emit(this.vm);\r\n this.router.navigate([entityRoute])\r\n }\r\n\r\n showAvatar(): boolean {\r\n var iconAvatars = [NotificationType.EMAIL];\r\n\r\n if(iconAvatars.includes(this.vm.NotificationType))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n getAvatarIcon(): string {\r\n switch (this.vm.NotificationType) {\r\n case NotificationType.EMAIL:\r\n return 'envelope-closed';\r\n }\r\n }\r\n}\r\n\r\nexport interface NotificationSubtitleVM {\r\n EntityType: string,\r\n DisplayEntityType?: string,\r\n EntityText: string,\r\n IsLink: boolean\r\n}\r\n\r\nexport enum NotificationDomain {\r\n Account = 'Account',\r\n Tenant = 'Tenant'\r\n}\r\n\r\nexport interface NotificationCardVM {\r\n Id: string,\r\n Domain: NotificationDomain,\r\n NotificationType: NotificationType,\r\n Message: string,\r\n Description: string,\r\n Subtitles: NotificationSubtitleVM[],\r\n OriginatorBadge: Observable,\r\n CreatedOnDate: Date,\r\n ContextIds: { [key: string]: string},\r\n IsRead: boolean,\r\n IsMarkedForDelete: boolean \r\n}\r\n","\r\n\r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n

Notification Types

\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n\r\n
\r\n\r\n\r\n","import { Component, Input } from \"@angular/core\";\r\nimport { NgbActiveModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { UserNotificationCenter } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { TenantService } from \"@Core/CodeGen/Services/tenant.service\";\r\nimport { TenantContext } from \"@Core/Lib/Contexts/tenant-context\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { NotificationType } from \"@Core/CodeGen/Eums/library.enums\";\r\nimport { TenantPermissions } from \"@Core/CodeGen/tenant-permissions.enum\";\r\n\r\n@Component({\r\n selector: 'sm-notification-settings',\r\n templateUrl: './sm-notification-settings.component.html',\r\n styleUrls: ['./sm-notification-settings.component.scss']\r\n})\r\nexport class SmNotificationSettingsComponent {\r\n\r\n public model: UserNotificationCenterVM;\r\n\r\n public expirationOptions = [\r\n { value: 7, label: '7 days' },\r\n { value: 14, label: '14 days' },\r\n { value: 30, label: '30 days' }\r\n ];\r\n\r\n public TENANT_PERMISSIONS = TenantPermissions;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n public tenantService: TenantService,\r\n public tenantContext: TenantContext,\r\n public authService: AuthService\r\n ) {\r\n var userNotificationCenters: BehaviorSubject =\r\n this.tenantContext.getStore(new UserNotificationCenter()).values;\r\n\r\n userNotificationCenters.subscribe(values => {\r\n var unc = values.find(un => un.IdentityKey == authService.getIdentityKey());\r\n if (unc) {\r\n\r\n this.model = {\r\n Id: unc.Id,\r\n IdentityKey: unc.IdentityKey,\r\n EnableInAppNotificationPopups: unc.EnableInAppNotificationPopups,\r\n ExpirationDurationOfReadNotificationsInDays: unc.ExpirationDurationOfReadNotificationsInDays,\r\n CommentNotifications: true,\r\n TaskDelegationNotifications: false,\r\n ProgramRevisionNotifications: true,\r\n JournalEntryNotifications: true,\r\n EmailNotifications: true\r\n };\r\n\r\n if (unc.NotificationTypeSettings) {\r\n this.model.CommentNotifications = unc.NotificationTypeSettings[NotificationType.COMMENT] !== false;\r\n this.model.TaskDelegationNotifications = unc.NotificationTypeSettings[NotificationType.TASK_DELEGATION] !== false;\r\n this.model.ProgramRevisionNotifications = unc.NotificationTypeSettings[NotificationType.PROGRAM_REVISION] !== false;\r\n this.model.JournalEntryNotifications = unc.NotificationTypeSettings[NotificationType.JOURNAL_ENTRY] !== false;\r\n this.model.EmailNotifications = unc.NotificationTypeSettings[NotificationType.EMAIL] !== false;\r\n }\r\n }\r\n });\r\n }\r\n\r\n toggleInAppNotificationPopups() {\r\n this.model.EnableInAppNotificationPopups = !this.model.EnableInAppNotificationPopups;\r\n }\r\n\r\n save() {\r\n var userNotificationCenterToSave = new UserNotificationCenter();\r\n userNotificationCenterToSave.IdentityKey = this.model.IdentityKey;\r\n userNotificationCenterToSave.Id = this.model.Id;\r\n userNotificationCenterToSave.EnableInAppNotificationPopups = this.model.EnableInAppNotificationPopups;\r\n userNotificationCenterToSave.ExpirationDurationOfReadNotificationsInDays =\r\n parseInt(this.model.ExpirationDurationOfReadNotificationsInDays.toString());\r\n userNotificationCenterToSave.NotificationTypeSettings = {\r\n \"ProgramRevision\" : this.model.ProgramRevisionNotifications,\r\n \"Comment\" : this.model.CommentNotifications,\r\n \"TaskDelegation\" : this.model.TaskDelegationNotifications,\r\n \"JournalEntry\" : this.model.JournalEntryNotifications,\r\n \"Email\": this.model.EmailNotifications\r\n }\r\n\r\n this.tenantService.UpdateUserNotificationSettings(userNotificationCenterToSave.serialize(), this.tenantContext);\r\n this.activeModal.close();\r\n }\r\n\r\n cancel() {\r\n this.activeModal.dismiss();\r\n }\r\n}\r\n\r\nexport interface UserNotificationCenterVM {\r\n Id: string;\r\n IdentityKey: string;\r\n EnableInAppNotificationPopups: boolean;\r\n JournalEntryNotifications: boolean;\r\n CommentNotifications: boolean;\r\n TaskDelegationNotifications: boolean;\r\n ProgramRevisionNotifications: boolean;\r\n EmailNotifications: boolean;\r\n ExpirationDurationOfReadNotificationsInDays: number;\r\n}\r\n","
\r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport _ from 'lodash';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { NotificationCardVM } from './sm-global-notifications-card/sm-global-notifications-card.component';\r\nimport { SmNotificationSettingsComponent } from '../sm-notification-settings/sm-notification-settings.component';\r\nimport { UserNotificationCenter } from '@Core/CodeGen/Models/configuration.models';\r\n\r\n@Component({\r\n selector: 'sm-global-notifications',\r\n templateUrl: './sm-global-notifications.component.html',\r\n styleUrls: ['./sm-global-notifications.component.scss']\r\n})\r\nexport class SmGlobalNotificationsComponent {\r\n @Input() settings: UserNotificationCenter;\r\n @Input() notificationCards: NotificationCardVM[] = [];\r\n \r\n @Output() onClose: EventEmitter = new EventEmitter();\r\n @Output() onClickLink: EventEmitter = new EventEmitter();\r\n\r\n public sortedAndFilteredNotifications: NotificationCardVM[] = [];\r\n public activeTab: string = \"Notifications\";\r\n\r\n constructor(private modalService: NgbModal) { }\r\n \r\n ngOnInit() {\r\n this.sortNotifications();\r\n }\r\n\r\n ngOnChange() {\r\n this.sortNotifications();\r\n }\r\n\r\n public sortNotifications() {\r\n this.sortedAndFilteredNotifications = _.orderBy(this.notificationCards, n => n.CreatedOnDate, 'desc');\r\n }\r\n\r\n public showSettings() {\r\n const modalRef = this.modalService.open(SmNotificationSettingsComponent, { backdrop: 'static', centered: true, size: 'md' });\r\n\r\n return modalRef;\r\n }\r\n\r\n onTabClick(tab: string): void {\r\n this.activeTab = tab;\r\n }\r\n\r\n getUnreadNotificationsCount(): number {\r\n if (!this.notificationCards) \r\n return 0;\r\n\r\n return this.notificationCards.filter(notification => notification.IsRead === false).length;\r\n }\r\n}\r\n","\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n","import { Component, Input, OnInit } from \"@angular/core\";\r\nimport { Router } from '@angular/router';\r\nimport _ from 'lodash';\r\n\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { ReportsService } from \"@Services/reports-service\";\r\nimport { environment } from 'src/environments/environment';\r\nimport { NgxPermissionsService } from \"ngx-permissions\";\r\n\r\n@Component({\r\n selector: 'sm-main-menu',\r\n templateUrl: './sm-main-menu.component.html',\r\n styleUrls: ['./sm-main-menu.component.scss']\r\n})\r\nexport class SmMainMenuComponent implements OnInit {\r\n @Input() view: string;\r\n\r\n public menuItems: MainMenuItemVM[];\r\n \r\n constructor(\r\n public router: Router,\r\n private permissionsService: NgxPermissionsService,\r\n private authService: AuthService,\r\n private reportsService: ReportsService) \r\n { }\r\n \r\n ngOnInit() {\r\n this.menuItems = [];\r\n\r\n if (this.view != 'Admin') {\r\n this.addMenuItem({\r\n Label: \"Work\",\r\n RouteUrl: \"Work\",\r\n Order: 0,\r\n IsExternal: false\r\n });\r\n }\r\n\r\n this.permissionsService.getPermissions();\r\n let configureMenu = this.permissionsService.hasPermission([\r\n TenantPermissions.SystemAccess,\r\n TenantPermissions.Tenant,\r\n TenantPermissions.Programs,\r\n ]);\r\n\r\n let manageMenu = this.permissionsService.hasPermission([\r\n TenantPermissions.Manage\r\n ]);\r\n\r\n manageMenu.then(result => {\r\n if (result) {\r\n this.addMenuItem({\r\n Label: \"Manage\",\r\n RouteUrl: \"Mgmt\",\r\n Order: 1,\r\n IsExternal: false,\r\n Disabled: !this.authService.isProgramManager(),\r\n Title: this.authService.isProgramManager() ? null : 'You currently are not listed as a manager for any programs.'\r\n });\r\n }\r\n })\r\n \r\n\r\n configureMenu.then(result => {\r\n if (result) {\r\n this.addMenuItem({\r\n Label: \"Configure\",\r\n RouteUrl: \"Conf\",\r\n Order: 2,\r\n IsExternal: false\r\n });\r\n }\r\n });\r\n\r\n if (this.authService.spaName === 'work') \r\n {\r\n let reportsPermissions = this.permissionsService.hasPermission([\r\n TenantPermissions.Work_Reports,\r\n ]);\r\n \r\n reportsPermissions.then(result => {\r\n if (result) {\r\n this.addMenuItem({\r\n Label: \"Reports\",\r\n RouteUrl: \"reports\",\r\n Order: 3,\r\n IsExternal: true\r\n });\r\n }\r\n });\r\n }\r\n\r\n this.addMenuItem({\r\n Label: \"Documentation\",\r\n RouteUrl: \"documentation\",\r\n Order: 4,\r\n IsExternal: true,\r\n Title: \"This will direct you to the Insurity Knowledge Center where you will be prompted to log in or create an account.\"\r\n });\r\n }\r\n\r\n addMenuItem(menuItem: MainMenuItemVM) {\r\n this.menuItems.push(menuItem);\r\n this.menuItems = _.sortBy(this.menuItems, m => m.Order);\r\n }\r\n\r\n isActive(menuItem: MainMenuItemVM): boolean {\r\n return this.view == menuItem.RouteUrl;\r\n }\r\n\r\n itemClick(menuItem: MainMenuItemVM) {\r\n if (menuItem.RouteUrl == \"reports\"){\r\n this.reportsService.openReports();\r\n return;\r\n }\r\n\r\n if (menuItem.RouteUrl == 'documentation') {\r\n window.open(environment.ikcDocumentationUrl);\r\n return;\r\n }\r\n\r\n const url = environment.baseUrl + menuItem.RouteUrl;\r\n this.router.navigate([menuItem.RouteUrl]);\r\n }\r\n};\r\n\r\ninterface MainMenuItemVM {\r\n Label: string;\r\n RouteUrl: string;\r\n Order: number;\r\n IsExternal: boolean;\r\n Title?: string;\r\n Disabled?: boolean;\r\n}","\r\n","import { Component, DestroyRef } from '@angular/core';\r\nimport { Task, Workflow } from '@Core/CodeGen/Models/area.models';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { combineLatest, Subject, takeUntil } from 'rxjs';\r\nimport _ from \"lodash\";\r\nimport { TaskTimer, TaskUtils } from '@Core/Lib/Utils/task-utils';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { Router } from '@angular/router';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'user-task-timer',\r\n templateUrl: './user-task-timer.component.html'\r\n})\r\nexport class UserTaskTimerComponent {\r\n private ngUnsubscribe: Subject = new Subject();\r\n\r\n public userTaskTimer: TaskTimer = null;\r\n public workflow: Workflow = null;\r\n\r\n constructor(\r\n private userContext: UserContext,\r\n private router: Router,\r\n private destroyRef: DestroyRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n combineLatest([\r\n this.userContext.getStore(new Task()).values,\r\n this.userContext.getStore(new Workflow()).values\r\n ])\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(([tasks, workflows]) => {\r\n const filteredTasks = this.filterTasks(tasks);\r\n\r\n this.userTaskTimer = TaskUtils.getMostImminentTimerInTaskList(filteredTasks);\r\n this.workflow = _.find(workflows, (workflow) => workflow.Id == this.userTaskTimer?.WorkflowId);\r\n });\r\n }\r\n\r\n filterTasks(tasks: Task[] = []): any {\r\n const currDate = new Date();\r\n\r\n let filteredTasks = _.filter(tasks, (task) => {\r\n if (\r\n task.ObligationStatus == \"Required\" \r\n && task.CompletionStatus == \"Incomplete\" \r\n && task.StartDate <= currDate \r\n && (task.AvailabilityStatus == \"Available\" || task.AvailabilityStatus == \"Locked\")\r\n ) {\r\n return task;\r\n } \r\n });\r\n\r\n return filteredTasks;\r\n }\r\n \r\n onTaskTimerClick(): void {\r\n if (this.workflow && this.workflow.IsRunningFor().length) {\r\n const accountId = ModelUtils.getIdFromDomainId(this.workflow.IsRunningFor()[0].Out);\r\n this.router.navigate(['Work', 'Account', accountId, 'Workflow', this.workflow.Id]);\r\n }\r\n }\r\n};","import { Component, Input } from '@angular/core';\r\n\r\nimport _ from 'lodash';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { TenantUser } from '@Core/CodeGen/Models/configuration.models';\r\n\r\nimport { TenantTenantService } from '@Services/tenant-tenant-service';\r\n\r\n@Component({\r\n selector: 'sm-user-info',\r\n templateUrl: './sm-user-info.component.html',\r\n})\r\nexport class SmUserInfoComponent {\r\n @Input() user: TenantUser;\r\n\r\n constructor(public activeModal: NgbActiveModal,\r\n public tenantService: TenantTenantService)\r\n {}\r\n\r\n updateUserInfo(): void {\r\n var userClone = this.user.clone();\r\n this.tenantService.updateUser(userClone, true);\r\n this.activeModal.dismiss();\r\n }\r\n\r\n close(): void {\r\n this.activeModal.dismiss();\r\n }\r\n};\r\n","
\r\n

Edit User

\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
","
\r\n \r\n
\r\n
{{userVM?.DisplayName || (userVM?.FirstName + \" \" + userVM?.LastName)}}
\r\n
{{userVM?.Title}}
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
    \r\n
  • \r\n \r\n
  • \r\n
\r\n\r\n
\r\n
\r\n Version: {{productVersion}}
\r\n Deployed on {{lastDeployedDate}}\r\n
\r\n \r\n
\r\n\r\n
\r\n","import { Component, Input, OnDestroy, OnInit } from \"@angular/core\";\r\n\r\nimport { Subscription } from 'rxjs';\r\nimport { NgbActiveModal, NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\n\r\nimport { AdminUser } from \"@Core/CodeGen/Models/admin.models\";\r\nimport { TenantUser } from \"@Core/CodeGen/Models/configuration.models\";\r\nimport { TenantContext } from \"@Core/Lib/Contexts/tenant-context\";\r\n\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { TenantTenantService } from \"@Services/tenant-tenant-service\";\r\nimport { UserService } from \"@Services/user-service\";\r\n\r\nimport { SmUserInfoComponent } from \"@Shared/Components/sm-user-info/sm-user-info.component\";\r\n\r\nimport { SmSimpleDialog, SimpleDialogOptions } from \"@Shared/Components/sm-simple-dialog/sm-simple-dialog.component\";\r\nimport { SmNotificationSettingsComponent } from \"../sm-notification-settings/sm-notification-settings.component\";\r\nimport { TenantPermissions } from \"@Core/CodeGen/tenant-permissions.enum\";\r\nimport { PermissionsShared } from \"@Shared/Directives/sm-permissions-shared.class\";\r\nimport { AllFeatureFacetsVM, FeatureFacetService } from \"@Services/feature-facet.service\";\r\n\r\n@Component({\r\n selector: 'unity-user-menu',\r\n templateUrl: './unity-user-menu.component.html',\r\n styleUrls: ['./unity-user-menu.component.scss']\r\n})\r\nexport class UnityUserMenuComponent implements OnDestroy, OnInit {\r\n @Input() adminUser: AdminUser;\r\n public userSubscription: Subscription;\r\n public userNotificationSubscription: Subscription;\r\n public user: TenantUser;\r\n public userVM: UnityUserVM;\r\n\r\n public MenuItems: any[] = [];\r\n\r\n constructor(\r\n public userService: UserService,\r\n public authService: AuthService,\r\n public tenantContext: TenantContext,\r\n private modalService: NgbModal,\r\n public tenantService: TenantTenantService, \r\n public featureFacetsService: FeatureFacetService) { }\r\n\r\n ngOnInit() {\r\n this.buildUserVm();\r\n if (!this.adminUser) {\r\n this.featureFacetsService.getAllFacets().subscribe(facets => {\r\n this.populateMenu(facets);\r\n })\r\n } else {\r\n // there are no feature facets when you're using this menu in Admin mode. \r\n this.populateMenu(null);\r\n }\r\n \r\n }\r\n\r\n private buildUserVm() {\r\n const self = this;\r\n\r\n if (!this.adminUser) {\r\n // Load the user \r\n this.userSubscription = this.userService.User$.subscribe(_user => {\r\n self.user = _user;\r\n this.userVM = {\r\n FirstName: self.user.FirstName,\r\n LastName: self.user.LastName,\r\n DisplayName: self.user.DisplayName,\r\n Initials: self.user.Initials,\r\n Title: self.user.Title\r\n }\r\n });\r\n }\r\n else {\r\n this.userVM = {\r\n FirstName: \"\",\r\n LastName: \"\",\r\n DisplayName: self.adminUser.DisplayName,\r\n Initials: self.adminUser.DisplayName.charAt(0).toUpperCase(),\r\n Title: \"\"\r\n }\r\n }\r\n }\r\n\r\n private populateMenu(featureFacets: AllFeatureFacetsVM) {\r\n if (!this.adminUser) {\r\n this.MenuItems.push({\r\n Label: \"Profile\",\r\n Icon: \"user\",\r\n Service: this,\r\n Action: function (service: UnityUserMenuComponent) {\r\n service.userSettings();\r\n }\r\n });\r\n\r\n this.MenuItems.push({\r\n Label: \"Notification Settings\",\r\n Service: this,\r\n Action: function (service: UnityUserMenuComponent) {\r\n service.notificationSettings();\r\n }\r\n });\r\n };\r\n\r\n this.MenuItems.push({\r\n Label: \"Reset Password\",\r\n Icon: \"refresh\",\r\n Service: this,\r\n Action: function (service: UnityUserMenuComponent) {\r\n this.resetTriggered = true;\r\n service.resetPassword();\r\n }\r\n });\r\n\r\n this.MenuItems.push({\r\n Label: \"Log Off\",\r\n Icon: \"out\",\r\n Service: this.authService,\r\n Action: (service: AuthService) => {\r\n service.logout();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.userSubscription?.unsubscribe();\r\n }\r\n\r\n public userSettings() {\r\n const modalRef = this.modalService.open(SmUserInfoComponent, { backdrop: 'static', centered: true });\r\n modalRef.componentInstance.user = this.user;\r\n\r\n return modalRef;\r\n }\r\n\r\n public notificationSettings() {\r\n const modalRef = this.modalService.open(SmNotificationSettingsComponent, { backdrop: 'static', centered: true, size: 'md' });\r\n\r\n return modalRef;\r\n }\r\n\r\n private resetPassword() {\r\n var self = this;\r\n const dialogOptions: SimpleDialogOptions = {\r\n message: \"Do you want to send an email to reset your password?\",\r\n title: 'Reset Password',\r\n buttons: {\r\n leftButton: {\r\n label: 'Send Reset Password Email',\r\n action: function (activeModal: NgbActiveModal) {\r\n self.resetUsersPassword(activeModal);\r\n }\r\n },\r\n rightButton: {\r\n label: 'Cancel',\r\n action: function (activeModal: NgbActiveModal) {\r\n activeModal.dismiss('cancel');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const dialog = this.modalService.open(SmSimpleDialog, { backdrop: 'static', centered: true });\r\n dialog.componentInstance.options = dialogOptions;\r\n }\r\n\r\n private resetUsersPassword(passwordModal: NgbActiveModal) {\r\n this.authService.recoverPassword(this.user.Email).subscribe({\r\n next: response => {\r\n passwordModal.close('complete');\r\n this.passwordResetFinished(true);\r\n }, \r\n error: (error) => {\r\n this.passwordResetFinished(false);\r\n }\r\n });\r\n }\r\n\r\n private passwordResetFinished(wasSuccessful: boolean) {\r\n const dialogOptions: SimpleDialogOptions = {\r\n message: wasSuccessful ? 'Password reset email sent' : 'An error occurred',\r\n title: wasSuccessful ? 'Success' : 'Error',\r\n buttons: {\r\n leftButton: {\r\n label: 'Ok',\r\n action: function (activeModal: NgbActiveModal) {\r\n activeModal.close('complete');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const dialog = this.modalService.open(SmSimpleDialog, { backdrop: 'static', centered: true });\r\n dialog.componentInstance.options = dialogOptions;\r\n }\r\n};\r\n\r\nexport interface UnityUserVM {\r\n FirstName: string,\r\n LastName: string,\r\n DisplayName: string,\r\n Initials: string,\r\n Title: string\r\n}","
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n

Sure Underwriting Workbench

\r\n
\r\n \r\n {{currentTenant}}\r\n
\r\n
\r\n \r\n \r\n {{currentAreaOrConfig}}\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n","import { ChangeDetectorRef, Component, DestroyRef, Input, OnInit, ViewChild, inject } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { Router } from '@angular/router';\r\nimport { AdminUser } from '@Core/CodeGen/Models/admin.models';\r\nimport { Area, TenantUser, UserNotificationCenter as TenantUserNotificationCenter, Notification as TenantNotification, UserNotificationCenter } from '@Core/CodeGen/Models/configuration.models';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { NgbActiveModal, NgbModal, NgbPopover } from '@ng-bootstrap/ng-bootstrap';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { SyncHubStatusService } from '@Services/sync-hub-status-service';\r\nimport { UserService } from '@Services/user-service';\r\nimport { SmAssignableBadgeVM } from \"@Shared/Components/sm-assignable-badge/sm-assignable-badge.viewmodel\";\r\nimport _ from 'lodash';\r\nimport { combineLatest } from 'rxjs';\r\nimport { SmSelectAreaModalComponent } from '../sm-select-area/sm-select-area-modal.component';\r\nimport { SmSimpleDialog, SimpleDialogOptions } from '../sm-simple-dialog/sm-simple-dialog.component';\r\nimport { SyncStatus } from '../sm-sync-status/sm-sync-status.component';\r\nimport { AccountsService } from '@Core/CodeGen/Services/accounts.service';\r\nimport { TenantService } from '@Core/CodeGen/Services/tenant.service';\r\nimport { UserNotificationCenter as AccountUserNotificationCenter, Notification as AccountNotification } from '@Core/CodeGen/Models/area.models';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { NotificationCardVM, NotificationDomain, NotificationSubtitleVM } from '../sm-global-notifications/sm-global-notifications-card/sm-global-notifications-card.component';\r\nimport { TenantAssignableService } from '@Services/tenant-assignable-service';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\nimport { RouteEntryItem, RouteUtils } from '@Core/Lib/Utils/route-utils';\r\nimport { NotificationType } from '@Core/CodeGen/Eums/library.enums';\r\nimport { SmNomenclaturePipe } from '@Shared/Pipes/sm-nomenclature.pipe';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { GuidReplacerPipe } from '@Work/Pipes/guid-replacer.pipe';\r\nimport { TenantTenantService } from '@Services/tenant-tenant-service';\r\nimport { NgxPermissionsService } from 'ngx-permissions';\r\n\r\n@Component({\r\n selector: 'unity-header',\r\n templateUrl: './unity-header.component.html',\r\n styleUrls: ['./unity-header.component.scss']\r\n})\r\nexport class UnityHeaderComponent implements OnInit {\r\n @Input() view: string;\r\n\r\n private destroyRef = inject(DestroyRef);\r\n\r\n private hasLoadedAccountNotifications: boolean = false;\r\n private hasLoadedTenantNotifications: boolean = false;\r\n\r\n public syncStatus: SyncStatus = null;\r\n public user: TenantUser;\r\n public adminUser: AdminUser;\r\n public badge: SmAssignableBadgeVM;\r\n public areas: Area[] = [];\r\n public filteredAreas: Area[] = [];\r\n public areaKey: string;\r\n public smNomenclaturePipe: SmNomenclaturePipe;\r\n public asyncPipe: AsyncPipe;\r\n private guidReplacerPipe: GuidReplacerPipe;\r\n private hasAccessToConfigure: boolean = false;\r\n\r\n private notifications: (TenantNotification | AccountNotification)[] = [];\r\n public notificationCenter: UserNotificationCenter;\r\n public notificationCardVMs: NotificationCardVM[] = [];\r\n public TENANT_PERMISSIONS = TenantPermissions;\r\n\r\n @ViewChild('notifyPopover') public notifyPopover: NgbPopover;\r\n\r\n constructor(\r\n private router: Router,\r\n private userService: UserService,\r\n private syncStatusService: SyncHubStatusService,\r\n private authService: AuthService,\r\n private modalService: NgbModal,\r\n private tenantContext: TenantContext,\r\n private tenantService: TenantService,\r\n private accountService: AccountsService,\r\n private userContext: UserContext,\r\n private tenantAssignableService: TenantAssignableService,\r\n private cdRef: ChangeDetectorRef, \r\n private tenantTenantService: TenantTenantService,\r\n private permissionsService: NgxPermissionsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getUserAndBadge(); \r\n this.smNomenclaturePipe = new SmNomenclaturePipe(this.tenantContext);\r\n this.asyncPipe = new AsyncPipe(this.cdRef);\r\n this.guidReplacerPipe = new GuidReplacerPipe(this.tenantContext, this.tenantAssignableService, this.tenantTenantService);\r\n\r\n this.permissionsService.hasPermission([\r\n TenantPermissions.SystemAccess,\r\n TenantPermissions.Tenant,\r\n TenantPermissions.Programs,\r\n ]).then((result) => {\r\n this.hasAccessToConfigure = result;\r\n this.buildNotificationCardVMs();\r\n });\r\n\r\n if (this.view != 'Admin') {\r\n combineLatest([\r\n this.authService.authContext$,\r\n this.tenantContext.getStore(new Area()).values\r\n ])\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(([authContext, areas]) => {\r\n if (!authContext || !areas?.length) {\r\n return;\r\n }\r\n\r\n this.getUserAreas(areas);\r\n\r\n if (this.user)\r\n this.getTenantUserNotifications();\r\n });\r\n }\r\n\r\n this.syncStatusService.status\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((status: string) => {\r\n this.syncStatus = status;\r\n });\r\n\r\n combineLatest([\r\n this.userContext.getStore(new TenantUserNotificationCenter()).values,\r\n this.userContext.getStore(new AccountUserNotificationCenter()).values\r\n ])\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(([tenantCenters, accountCenters]) => {\r\n this.notifications = [];\r\n\r\n _.forEach(tenantCenters[0]?.IsAlertedBy() || [], (edge) => this.notifications.push(edge.IsAlertedBy()));\r\n _.forEach(accountCenters[0]?.IsAlertedBy() || [], (edge) => this.notifications.push(edge.IsAlertedBy()));\r\n\r\n this.notificationCardVMs = this.buildNotificationCardVMs();\r\n this.notificationCenter = tenantCenters[0];\r\n });\r\n }\r\n\r\n private getUserAreas(areas: Area[]): void {\r\n var areasUserHasAccessTo = this.authService.getAvailableAreasForCurrentTenant();\r\n // Get the areas and sort based on order\r\n this.areas = _.sortBy(areas, a => a.Order);\r\n // Clear filtered Areas\r\n this.filteredAreas = [];\r\n\r\n _.each(areasUserHasAccessTo, area => {\r\n var foundArea = _.find(this.areas, a => a.Name == area)\r\n if (foundArea)\r\n this.filteredAreas.push(foundArea);\r\n });\r\n\r\n this.filteredAreas = _.sortBy(this.filteredAreas, a => a.Order);\r\n }\r\n\r\n private getUserAndBadge(): void {\r\n if (this.view == 'Admin') {\r\n this.userService.AdminUser$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(adminUser => {\r\n if (!adminUser) return;\r\n\r\n this.adminUser = adminUser;\r\n this.buildUserBadge();\r\n });\r\n } else {\r\n this.userService.User$\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(tenantUser => {\r\n if (!tenantUser) return;\r\n\r\n this.user = tenantUser;\r\n this.buildUserBadge();\r\n });\r\n }\r\n }\r\n\r\n private buildNotificationCardVMs(): NotificationCardVM[] {\r\n const vms: NotificationCardVM[] = this.notifications.map(notification => {\r\n\r\n var domain = notification instanceof TenantNotification ? NotificationDomain.Tenant : NotificationDomain.Account;\r\n\r\n var programId = notification?.ContextIds ? notification?.ContextIds[\"Program\"] : null;\r\n\r\n var lastSubtitleNum = _.max(_.map(notification.Subtitles, s => s.OrderNum));\r\n const subtitles: NotificationSubtitleVM[] = notification.Subtitles.map((subtitle: NotificationSubtitle) => {\r\n var noConfigLink = domain == NotificationDomain.Tenant && !this.hasAccessToConfigure;\r\n\r\n return {\r\n EntityType: subtitle.EntityType,\r\n DisplayEntityType: this.asyncPipe.transform(this.smNomenclaturePipe.transform(subtitle.EntityType, programId)),\r\n EntityText: subtitle.EntityText,\r\n IsLink: !noConfigLink && subtitle.OrderNum === lastSubtitleNum\r\n };\r\n });\r\n\r\n return {\r\n Id: notification.Id,\r\n NotificationType: notification.NotificationType,\r\n Domain: domain,\r\n Message: this.asyncPipe.transform(this.guidReplacerPipe.transform(notification.Message)),\r\n Subtitles: subtitles,\r\n Description: notification.Description,\r\n ContextIds: notification.ContextIds,\r\n OriginatorBadge: this.tenantAssignableService.getAssignableAsBadge(notification.IdentityKey),\r\n CreatedOnDate: new Date(notification?.data?.CreatedTimeUTC),\r\n IsRead: notification.Alerts()[0].Read,\r\n IsMarkedForDelete: null\r\n };\r\n })\r\n\r\n return vms;\r\n }\r\n\r\n public onClickLink(vm: NotificationCardVM) {\r\n this.handleReadNotifications(vm);\r\n\r\n var subtitle = _.find(vm.Subtitles, s => { return s.IsLink; });\r\n var entries: RouteEntryItem[] = _.map(Object.getOwnPropertyNames(vm.ContextIds), entityType => {\r\n var entityId = vm.ContextIds[entityType];\r\n var entry: RouteEntryItem = {\r\n Type: entityType,\r\n Id: entityId\r\n };\r\n return entry;\r\n });\r\n\r\n var url = RouteUtils.BuildEntityRoute(subtitle.EntityType, entries)\r\n this.router.navigate([url]);\r\n }\r\n\r\n private getTenantUserNotifications(): void {\r\n if (!this.hasLoadedTenantNotifications) {\r\n this.tenantService.ListUserNotificationCenters(this.userContext);\r\n this.hasLoadedTenantNotifications = true;\r\n }\r\n\r\n if (this.authService.getAreaKey() && !this.hasLoadedAccountNotifications) {\r\n this.accountService.ListUserNotificationCenters(this.userContext);\r\n this.hasLoadedAccountNotifications = true;\r\n }\r\n }\r\n\r\n private buildUserBadge() {\r\n if (!(this.view == 'Admin')) {\r\n this.badge = {\r\n Type: \"User\",\r\n Id: this.user.Id,\r\n Name: this.user.DisplayName,\r\n Initials: this.user.Initials,\r\n Title: this.user.Title,\r\n Email: this.user.Email,\r\n Disabled: !this.user.Active\r\n };\r\n }\r\n else {\r\n this.badge = {\r\n Type: \"User\",\r\n Id: this.adminUser.Id,\r\n Name: this.adminUser.DisplayName,\r\n Initials: this.adminUser.DisplayName.charAt(0).toUpperCase(),\r\n Title: \"\",\r\n Email: this.adminUser.Logon,\r\n Disabled: !this.adminUser.IsActive\r\n }\r\n }\r\n }\r\n\r\n public get currentTenant(): string {\r\n if (this.authService.spaName == 'admin') {\r\n return \"Admin\";\r\n } else {\r\n return this.authService.getTenantKey();\r\n }\r\n }\r\n\r\n public get availableTenants(): string[] {\r\n if (this.authService.spaName == 'work'\r\n || this.authService.spaName == 'mgmt'\r\n || this.authService.spaName == 'conf') {\r\n return this.authService.getAvailableTenants();\r\n } else {\r\n return [];\r\n }\r\n }\r\n\r\n public onTenantClick(): void {\r\n\r\n const dialogOptions: SimpleDialogOptions = {\r\n\r\n message: \"Are you sure you want to switch tenants?\",\r\n title: 'Switch Tenants',\r\n buttons: {\r\n leftButton: {\r\n label: 'Confirm',\r\n action: function (activeModal: NgbActiveModal) {\r\n activeModal.close('cancel');\r\n }\r\n },\r\n rightButton: {\r\n label: 'Cancel',\r\n action: function (activeModal: NgbActiveModal) {\r\n activeModal.dismiss('cancel button');\r\n }\r\n }\r\n }\r\n };\r\n\r\n const modalRef = this.modalService.open(SmSimpleDialog, { backdrop: 'static', centered: true });\r\n modalRef.componentInstance.options = dialogOptions;\r\n\r\n modalRef.result.then(() => {\r\n this.router.navigateByUrl(\"\");\r\n }, () => { });\r\n }\r\n\r\n public get currentAreaOrConfig(): string {\r\n if (this.authService.spaName == 'work' || this.authService.spaName == 'mgmt') {\r\n var areaKey = this.authService.getAreaKey();\r\n var area = this.filteredAreas.find(a => a.Name == areaKey);\r\n if (area) {\r\n var areaAliasOrName = area.Alias ?? area.Name;\r\n return areaAliasOrName;\r\n }\r\n } else if (this.authService.spaName == 'conf') {\r\n return 'Config';\r\n }\r\n return null;\r\n }\r\n\r\n public get availableAreas(): Area[] {\r\n if (this.authService.spaName == 'work' || this.authService.spaName == 'mgmt') {\r\n return this.filteredAreas;\r\n } else if (this.authService.spaName == 'conf') {\r\n return [];\r\n } else if (this.authService.spaName == 'admin') {\r\n return [];\r\n }\r\n return [];\r\n }\r\n\r\n public get hideMenu(): boolean {\r\n if (this.authService.spaName == 'work' || this.authService.spaName == 'mgmt')\r\n return !this.authService.getAreaKey();\r\n return (this.view == 'Admin');\r\n }\r\n\r\n public onAreaClick(): void {\r\n const modalRef = this.modalService.open(SmSelectAreaModalComponent, {\r\n ariaLabelledBy: 'modal-basic-title',\r\n backdrop: \"static\",\r\n windowClass: \"no-bg\"\r\n });\r\n const modalComponent = modalRef.componentInstance as SmSelectAreaModalComponent;\r\n\r\n var area = this.currentAreaOrConfig;\r\n modalComponent.selectedAreaAliasOrName = area;\r\n modalComponent.areas = this.filteredAreas;\r\n\r\n // The modal will handle the logic.\r\n modalRef.result.then(() => { })\r\n .catch(() => { });\r\n }\r\n\r\n public onLogoClick(): void {\r\n this.router.navigate([this.view]);\r\n }\r\n\r\n public closeNotifications() {\r\n if (this.notifyPopover?.isOpen()) {\r\n this.notifyPopover.close();\r\n }\r\n }\r\n\r\n public handleDeletedNotifications(): void {\r\n let deletedAccountAlerts: string[] = [];\r\n let deletedTenantAlerts: string[] = [];\r\n this.notificationCardVMs.forEach(notificationCardVM => {\r\n if (notificationCardVM.IsMarkedForDelete) {\r\n if (notificationCardVM.Domain == NotificationDomain.Account) {\r\n deletedAccountAlerts.push(notificationCardVM.Id);\r\n } else if (notificationCardVM.Domain == NotificationDomain.Tenant) {\r\n deletedTenantAlerts.push(notificationCardVM.Id);\r\n }\r\n }\r\n });\r\n\r\n if (deletedAccountAlerts.length > 0) {\r\n this.accountService.RemoveNotificationsForUser(deletedAccountAlerts, this.userContext);\r\n } \r\n if (deletedTenantAlerts.length > 0) {\r\n this.tenantService.RemoveNotificationsForUser(deletedTenantAlerts, this.userContext);\r\n }\r\n\r\n this.closeNotifications();\r\n }\r\n\r\n public handleReadNotifications(notificationVM: NotificationCardVM = null): void { \r\n if (notificationVM) {\r\n if (notificationVM.Domain == NotificationDomain.Account)\r\n this.accountService.MarkNotificationsAsRead([notificationVM.Id], this.userContext);\r\n if (notificationVM.Domain == NotificationDomain.Tenant)\r\n this.tenantService.MarkNotificationsAsRead([notificationVM.Id], this.userContext);\r\n }\r\n else {\r\n this.markAllNotificationsAsRead();\r\n }\r\n\r\n this.closeNotifications();\r\n }\r\n\r\n public markAllNotificationsAsRead(): void {\r\n const accountReadNotifications: string[] = [];\r\n const tenantReadNotifications: string[] = [];\r\n\r\n this.notificationCardVMs.forEach(notification => {\r\n if (notification.IsRead)\r\n return;\r\n\r\n notification.IsRead = true;\r\n\r\n if (notification.Domain == NotificationDomain.Account)\r\n accountReadNotifications.push(notification.Id);\r\n if (notification.Domain == NotificationDomain.Tenant)\r\n tenantReadNotifications.push(notification.Id);\r\n });\r\n\r\n if (accountReadNotifications.length > 0)\r\n this.accountService.MarkNotificationsAsRead(accountReadNotifications, this.userContext);\r\n if (tenantReadNotifications.length > 0)\r\n this.tenantService.MarkNotificationsAsRead(tenantReadNotifications, this.userContext);\r\n }\r\n\r\n public getUnreadNotificationsCount(): number {\r\n if (!this.notificationCardVMs) \r\n return 0;\r\n\r\n return this.notificationCardVMs.filter(notification => notification.IsRead === false).length;\r\n };\r\n};\r\n\r\nexport interface NotificationSubtitle {\r\n EntityType: string,\r\n EntityText: string,\r\n OrderNum: number\r\n}","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'unity-icon',\r\n templateUrl: './unity-icon.component.html',\r\n styleUrls: ['./unity-icon.component.scss']\r\n})\r\nexport class UnityIconComponent {\r\n @Input() icon: string;\r\n @Input() size: 'small' | 'medium' | 'large' | 'xlarge' = 'medium'; // 12px, 16px, 20px, 24px\r\n // inherit = apply no color so parent components can override\r\n @Input() color: 'primary' | 'secondary' | 'tertiary' | 'disabled' | 'inherit' = 'primary'; \r\n};","\r\n \r\n","import { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'unity-loading-indicator',\r\n templateUrl: './unity-loading-indicator.component.html',\r\n styleUrls: ['./unity-loading-indicator.component.scss']\r\n})\r\nexport class UnityLoadingIndicatorComponent {\r\n @Input() type: string = \"circular\";\r\n @Input() size: UnityLoadingIndicatorSize = UnityLoadingIndicatorSize.Large;\r\n @Input() color: UnityLoadingIndicatorColor = UnityLoadingIndicatorColor.UnityGradient;\r\n @Input() display: UnityLoadingIndicatorDisplay = UnityLoadingIndicatorDisplay.Contained;\r\n};\r\n\r\nexport enum UnityLoadingIndicatorColor {\r\n UnityGradient = '',\r\n White = 'white',\r\n Black = 'black',\r\n Gray = 'gray',\r\n Magenta = 'magenta',\r\n}\r\n\r\nexport enum UnityLoadingIndicatorSize {\r\n Large = '',\r\n Small = 'small'\r\n}\r\n\r\nexport enum UnityLoadingIndicatorDisplay {\r\n Contained = 'contained',\r\n Overlay = 'overlay',\r\n FullScreen = 'full-screen'\r\n}","\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n","
\r\n

{{title}}

\r\n \r\n
\r\n
\r\n \r\n
\r\n","import { Component, EventEmitter, Input, Output, ViewChild, ElementRef } from '@angular/core';\r\n\r\n\r\n@Component({\r\n selector: 'unity-modal',\r\n templateUrl: './unity-modal.component.html',\r\n styleUrls: ['./unity-modal.component.scss']\r\n})\r\nexport class UnityModalComponent {\r\n @Input() title: string;\r\n @Input() primaryAction: string;\r\n @Input() primaryActionEnabled: boolean = true;\r\n @Input() secondaryAction?: string;\r\n @Input() backAction?: string;\r\n\r\n @Output() public onPrimaryAction: EventEmitter = new EventEmitter();\r\n @Output() public onSecondaryAction: EventEmitter = new EventEmitter();\r\n @Output() public onBackAction: EventEmitter = new EventEmitter();\r\n @Output() public onClose: EventEmitter = new EventEmitter();\r\n\r\n primaryActionClicked() {\r\n this.onPrimaryAction.emit()\r\n } \r\n};","import { Attribute, Component, HostBinding, Input, Optional } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[unity-nav]',\r\n template: ``,\r\n styleUrls: ['./unity-nav.component.scss'],\r\n})\r\nexport class UnityNavComponent {};","
\r\n \r\n \r\n \r\n

{{ toast?.Message }}

\r\n
\r\n
\r\n {{ subtitle.DisplayType ?? subtitle.Type }}: {{ subtitle.Text }}\r\n
\r\n
\r\n
{{ toast?.Description }}
\r\n \r\n \r\n
","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'unity-toast',\r\n templateUrl: './unity-toast.component.html',\r\n styleUrls: ['./unity-toast.component.scss'],\r\n})\r\n\r\nexport class UnityToastComponent {\r\n @Input() toast: UnityToast;\r\n @Input() standalone: boolean = false;\r\n\r\n @Output() onClickLink: EventEmitter = new EventEmitter();\r\n @Output() dismiss: EventEmitter = new EventEmitter();\r\n}\r\n\r\nexport class UnityToast {\r\n public Id: string;\r\n public Type: UnityToastType = UnityToastType.Info;\r\n public Icon: string;\r\n public Message: string = \"\";\r\n public Subtitles: UnityToastSubtitle[] = [];\r\n public Description: string = \"\";\r\n public Links: UnityToastSubtitle[] = [];\r\n\r\n constructor(id: string, type: UnityToastType, message: string, subtitlesAndLinks: UnityToastSubtitle[], description: string) {\r\n this.Id = id;\r\n this.Type = type;\r\n this.Message = message;\r\n this.Description = description;\r\n\r\n this.Subtitles = _.filter(subtitlesAndLinks, s => !s.IsLink);\r\n this.Links = _.filter(subtitlesAndLinks, s => s.IsLink);\r\n\r\n switch (this.Type) {\r\n case 'error':\r\n this.Icon = 'error-fill';\r\n break;\r\n case 'warning':\r\n this.Icon = 'warning-fill';\r\n break;\r\n case 'success':\r\n this.Icon = 'checkmark-circle-fill';\r\n break;\r\n case 'announcement':\r\n this.Icon = 'megaphone-fill';\r\n break;\r\n default:\r\n this.Icon = 'information-fill';\r\n }\r\n }\r\n}\r\n\r\nexport interface UnityToastSubtitle {\r\n Type: string;\r\n DisplayType?: string;\r\n Text: string;\r\n IsLink?: boolean;\r\n LinkIds?: { [key: string]: string };\r\n}\r\n\r\nexport enum UnityToastType {\r\n Info = 'info',\r\n Announcement = 'announcement',\r\n Error = 'error',\r\n Warning = 'warning',\r\n Success = 'success'\r\n}\r\n\r\nexport interface UnityToastClickLinkEvent {\r\n Id: string; // Toast Id\r\n Subtitle: UnityToastSubtitle;\r\n}","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'unity-toggle',\r\n templateUrl: './unity-toggle.component.html',\r\n styleUrls: ['./unity-toggle.component.scss'],\r\n})\r\nexport class UnityToggleComponent{\r\n @Input() disabled: boolean;\r\n @Input() controlName: string;\r\n @Input() toggledOn: boolean;\r\n\r\n @Output() onToggle: EventEmitter = new EventEmitter();\r\n};\r\n","\r\n\r\n","import { Directive } from \"@angular/core\";\r\n\r\n@Directive({\r\n selector: '[click]:not([disabled]):not(:disabled):not(.workflow_workspace--task):not([unity-button])',\r\n host: {\r\n 'style': 'cursor: pointer'\r\n }\r\n})\r\nexport class ClickCursorDirective {}","import {\r\n ElementRef,\r\n Directive, Input, TemplateRef,\r\n Renderer2,\r\n OnInit,\r\n OnDestroy,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { NgbTooltip } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Directive({\r\n selector: '[ngbTooltipSticky]',\r\n exportAs: 'ngbTooltipSticky'\r\n})\r\nexport class NgbTooltipStickyDirective extends NgbTooltip implements OnInit, OnDestroy {\r\n @Input() ngbTooltipSticky: TemplateRef;\r\n \r\n tooltipTitle: string;\r\n ngpTooltip: TemplateRef;\r\n canCloseTooltip: boolean;\r\n\r\n toggle(): void {\r\n super.toggle();\r\n }\r\n \r\n isOpen(): boolean {\r\n return super.isOpen();\r\n }\r\n \r\n constructor(\r\n private _elRef: ElementRef,\r\n private _render: Renderer2,\r\n private changeRef: ChangeDetectorRef\r\n ){\r\n super();\r\n this.triggers = 'manual';\r\n this.container = 'body';\r\n this.openDelay = 500;\r\n }\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n this.ngbTooltip = this.ngbTooltipSticky;\r\n var delay;\r\n \r\n this._render.listen(this._elRef.nativeElement, 'mouseenter', () => {\r\n delay = setTimeout(() => {\r\n this.canCloseTooltip = true;\r\n this.open();\r\n this.changeRef.detectChanges();\r\n }, this.openDelay);\r\n });\r\n \r\n this._render.listen(this._elRef.nativeElement, 'mouseleave', (event: Event) => {\r\n clearTimeout(delay);\r\n setTimeout(() => {\r\n if (this.canCloseTooltip) {\r\n this.canCloseTooltip = false;\r\n this.close();\r\n this.changeRef.detectChanges();\r\n }\r\n }, 100);\r\n });\r\n \r\n this._render.listen(this._elRef.nativeElement, 'click', () => {\r\n this.close();\r\n });\r\n }\r\n \r\n ngOnDestroy(): void {\r\n super.ngOnDestroy();\r\n }\r\n \r\n public open() {\r\n super.open();\r\n setTimeout(() => {\r\n let tooltip;\r\n const listPop = window.document.querySelectorAll('.tooltip');\r\n\r\n if (listPop.length > 1) {\r\n tooltip = listPop[listPop.length - 1];\r\n } else {\r\n tooltip = listPop[0];\r\n }\r\n \r\n if (tooltip) {\r\n this._render.listen(tooltip, 'mouseenter', () => {\r\n this.canCloseTooltip = false;\r\n });\r\n \r\n this._render.listen(tooltip, 'mouseleave', () => {\r\n this.canCloseTooltip = true;\r\n setTimeout(() => {\r\n if (this.canCloseTooltip) {\r\n this.close();\r\n }\r\n }, 0);\r\n });\r\n }\r\n }, 0);\r\n }\r\n \r\n close() {\r\n super.close();\r\n }\r\n}","import _ from \"lodash\";\r\n\r\nexport class PermissionsShared {\r\n\r\n public static Has(grantedPermissions: string[], permission: string): boolean {\r\n return _.includes(grantedPermissions, permission);\r\n }\r\n\r\n public static HasAll(grantedPermissions: string[], permissions: string[]): boolean {\r\n return _.intersection(grantedPermissions, permissions).length === permissions.length;\r\n }\r\n\r\n public static HasAny(grantedPermissions: string[], permissions: string[]): boolean {\r\n return _.intersection(grantedPermissions, permissions).length > 0;\r\n }\r\n}\r\n","import { Directive, TemplateRef, ViewContainerRef, Input, ChangeDetectorRef, DestroyRef } from \"@angular/core\";\r\nimport { UserService } from \"@Services/user-service\";\r\nimport { PermissionsShared } from './sm-permissions-shared.class';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\n\r\n@Directive({\r\n selector: '[sm-has-permission]',\r\n})\r\nexport class HasPermissionDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private userService: UserService,\r\n private cdRef: ChangeDetectorRef,\r\n private destroyRef: DestroyRef) { }\r\n \r\n @Input('sm-has-permission') set hasPermission(permission: string) {\r\n this.userService.Permissions \r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(grantedPermissions => {\r\n this.viewContainer.clear();\r\n if (PermissionsShared.Has(grantedPermissions, permission)) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n // This directive may be in an OnPush component. Force change detection\r\n this.cdRef.detectChanges();\r\n }); \r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[sm-has-all-permission]',\r\n})\r\nexport class HasAllPermissionDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private userService: UserService,\r\n private cdRef: ChangeDetectorRef,\r\n private destroyRef: DestroyRef) { }\r\n\r\n @Input('sm-has-all-permission') set hasAllPermission(permissions: string[]) {\r\n this.userService.Permissions\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(grantedPermissions => {\r\n this.viewContainer.clear();\r\n if (PermissionsShared.HasAll(grantedPermissions, permissions)) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n // This directive may be in an OnPush component. Force change detection\r\n this.cdRef.detectChanges();\r\n });\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[sm-has-any-permission]',\r\n})\r\nexport class HasAnyPermissionDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private userService: UserService,\r\n private destroyRef: DestroyRef) { }\r\n\r\n @Input('sm-has-any-permission') set hasAnyPermission(permissions: string[]) {\r\n this.userService.Permissions\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(grantedPermissions => {\r\n this.viewContainer.clear();\r\n if (PermissionsShared.HasAny(grantedPermissions, permissions)) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n });\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[sm-has-not-permission]',\r\n})\r\nexport class HasNotPermissionDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private userService: UserService,\r\n private destroyRef: DestroyRef) { }\r\n\r\n @Input('sm-has-not-permission') set hasNotPermission(permission: string) {\r\n this.userService.Permissions\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(grantedPermissions => {\r\n this.viewContainer.clear();\r\n if (!PermissionsShared.Has(grantedPermissions, permission)) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n }); \r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[sm-has-not-all-permission]',\r\n})\r\nexport class HasNotAllPermissionDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private userService: UserService,\r\n private destroyRef: DestroyRef) { }\r\n\r\n @Input('sm-has-not-all-permission') set hasAllPermission(permissions: string[]) {\r\n this.userService.Permissions\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(grantedPermissions => {\r\n this.viewContainer.clear();\r\n if (!PermissionsShared.HasAll(grantedPermissions, permissions)) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n });\r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[sm-has-not-any-permission]',\r\n})\r\nexport class HasNotAnyPermissionDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private userService: UserService,\r\n private destroyRef: DestroyRef) { }\r\n\r\n @Input('sm-has-not-any-permission') set hasAnyPermission(permissions: string[]) {\r\n this.userService.Permissions\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(grantedPermissions => {\r\n this.viewContainer.clear();\r\n if (!PermissionsShared.HasAny(grantedPermissions, permissions)) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n });\r\n }\r\n}\r\n\r\n","import { Directive, TemplateRef, ViewContainerRef, Input, ChangeDetectorRef, DestroyRef } from \"@angular/core\";\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { AuthService } from \"@Services/auth-service\";\r\nimport { FeatureFacetService } from \"@Services/feature-facet.service\";\r\nimport _ from \"lodash\";\r\n\r\n// This is used for tenant or area-level access. Do not use these for\r\n// any user-level permissions (use sm-permissions for that). \r\n@Directive({\r\n selector: '[sm-tenant-has-facet]',\r\n})\r\nexport class TenantHasFacetDirective {\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private authService: AuthService,\r\n private facetService: FeatureFacetService,\r\n private cdRef: ChangeDetectorRef,\r\n private destroyRef: DestroyRef) \r\n {}\r\n\r\n @Input('sm-tenant-has-facet') set hasPermission(facetId: string) {\r\n this.facetService.getAllFacets()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(allFacets => {\r\n this.viewContainer.clear();\r\n if (FeatureFacetService.checkIfFacetExists(facetId, allFacets, this.authService.spaName, this.authService.getAreaKey())){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n // This directive may be in an OnPush component. Force change detection\r\n this.cdRef.detectChanges();\r\n }); \r\n }\r\n}\r\n\r\n@Directive({\r\n selector: '[sm-tenant-has-not-facet]',\r\n})\r\nexport class TenantHasNotFacetDirective {\r\n\r\n constructor(private templateRef: TemplateRef,\r\n private viewContainer: ViewContainerRef,\r\n private authService: AuthService,\r\n private facetService: FeatureFacetService,\r\n private cdRef: ChangeDetectorRef,\r\n private destroyRef: DestroyRef) \r\n {}\r\n\r\n @Input('sm-tenant-has-not-facet') set hasPermission(facetId: string) {\r\n this.facetService.getAllFacets()\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(allFacets => {\r\n this.viewContainer.clear();\r\n\r\n if (!FeatureFacetService.checkIfFacetExists(facetId, allFacets, this.authService.spaName, this.authService.getAreaKey())){\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n }\r\n // This directive may be in an OnPush component. Force change detection\r\n this.cdRef.detectChanges();\r\n }); \r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport _ from 'lodash';\r\n\r\n@Pipe({\r\n name: 'smDate'\r\n})\r\nexport class SmDatePipe implements PipeTransform {\r\n // Short: 1/7/2023\r\n // ShortGrid: 01/07/2023\r\n // Medium: Jan 7, 2023\r\n // Long: January 7, 2023\r\n // Full: Saturday, January 7, 2023\r\n // Timestamp\r\n transform(date: any, format: SmDateFormats) : string {\r\n\r\n if (_.isNil(date) || date == \"\")\r\n return null;\r\n\r\n if (_.isString(date) || _.isNumber(date))\r\n date = new Date(date);\r\n\r\n switch (format) {\r\n case SmDateFormats.Short:\r\n case SmDateFormats[SmDateFormats.Short]:\r\n return new Intl.DateTimeFormat(navigator.language, {\r\n month: \"numeric\",\r\n day: \"numeric\",\r\n year: \"numeric\",\r\n }).format(date);\r\n\r\n case SmDateFormats.ShortGrid:\r\n case SmDateFormats[SmDateFormats.ShortGrid]:\r\n return new Intl.DateTimeFormat(navigator.language, {\r\n month: \"2-digit\",\r\n day: \"2-digit\",\r\n year: \"numeric\",\r\n }).format(date);\r\n \r\n case SmDateFormats.Medium:\r\n case SmDateFormats[SmDateFormats.Medium]:\r\n return new Intl.DateTimeFormat(navigator.language, {dateStyle: \"medium\"}).format(date);\r\n\r\n case SmDateFormats.Long:\r\n case SmDateFormats[SmDateFormats.Long]:\r\n return new Intl.DateTimeFormat(navigator.language, {dateStyle: \"long\"}).format(date);\r\n\r\n case SmDateFormats.Full: \r\n case SmDateFormats[SmDateFormats.Full]:\r\n return new Intl.DateTimeFormat(navigator.language, {dateStyle: \"full\"}).format(date);\r\n\r\n case SmDateFormats.Timestamp:\r\n case SmDateFormats[SmDateFormats.Timestamp]:\r\n return new Intl.DateTimeFormat(navigator.language, { dateStyle: \"medium\", timeStyle: \"medium\" }).format(date);\r\n\r\n case SmDateFormats.ShortTime:\r\n case SmDateFormats[SmDateFormats.ShortTime]:\r\n return new Intl.DateTimeFormat(navigator.language, { timeStyle: \"short\", hour12: true }).format(date);\r\n\r\n case SmDateFormats.ShortDayOfWeek:\r\n case SmDateFormats[SmDateFormats.ShortDayOfWeek]:\r\n return new Intl.DateTimeFormat(navigator.language, { weekday: 'short' }).format(date);\r\n \r\n case SmDateFormats.DayOfWeek:\r\n case SmDateFormats[SmDateFormats.DayOfWeek]:\r\n return new Intl.DateTimeFormat(navigator.language, { weekday: 'long' }).format(date);\r\n }\r\n }\r\n}\r\n\r\nexport enum SmDateFormats {\r\n Short = \"Short\",\r\n ShortGrid = \"ShortGrid\",\r\n Medium = \"Medium\",\r\n Long = \"Long\",\r\n Full = \"Full\",\r\n Timestamp = \"Timestamp\",\r\n ShortTime = \"ShortTime\",\r\n ShortDayOfWeek = \"ShortDayOfWeek\",\r\n DayOfWeek = \"DayOfWeek\"\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport _ from 'lodash';\r\n\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { Program, Region } from '@Core/CodeGen/Models/configuration.models';\r\nimport { RegionUtils } from '@Core/Lib/Utils/region-utils';\r\n\r\n@Pipe({\r\n name: 'smNomenclatureByRegion'\r\n})\r\nexport class SmNomenclaturePipe implements PipeTransform {\r\n// Show a value as Currency using the correct currency symbol based on the Region\r\n constructor(public tenantContext: TenantContext) { }\r\n\r\n transform(value: string, programId: string) : Observable {\r\n return this.getAlias(value, programId);\r\n }\r\n\r\n private getAlias(value: string, programId: string): Observable {\r\n return this.tenantContext.getStore(new Region()).values.pipe(map(regions => {\r\n var region: Region = null;\r\n if (programId) {\r\n region = RegionUtils.getProgramRegion(regions, programId);\r\n } else {\r\n region = _.find(regions, r => r.IsProgramDefault);\r\n }\r\n \r\n if (!region)\r\n return value;\r\n\r\n if (_.has(region.Aliases, value))\r\n return region.Aliases[value];\r\n\r\n return value;\r\n })); \r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'textToControlId'\r\n})\r\n\r\n/**\r\n * Accepts two string values, removes all non-alpha characters (whitespaces included) \r\n * and returns a value suitable for an html id\r\n * @param idPrefix the 'left' side of the id prop, usually the Base Type of the class \r\n * being displayed in the element. eg. TaskApproval, ApplicationField, ProgramWorkgroupCard\r\n * @param idSuffix the 'right' side of the id prop, usually the GUID of the item when many\r\n * instances of the same element type are displayed on the screen+\r\n * @returns a colon-separated concatenation of the supplied params\r\n */\r\nexport class TextToControlIdPipe implements PipeTransform {\r\n transform(idPrefix: string, idSuffix: string) : string { \r\n var prefix = idPrefix.replace(/[^a-zA-Z\\\\s$]/gi, '');\r\n var suffix = idSuffix.replace(/[^a-zA-Z\\\\s$]/gi, '');\r\n\r\n return prefix + ':' + suffix;\r\n }\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'timeInStr',\r\n pure: false\r\n})\r\nexport class TimeInStrPipe implements PipeTransform {\r\n // convert milliseconds and return a string in year, month, week, day or hour and minute\r\n transform(time: number, shortHand: boolean = true, countdown: boolean = false, maxUnit: TimeMaxUnitEnum = TimeMaxUnitEnum.Year): string {\r\n if (!time) {\r\n return \"\";\r\n } else {\r\n // in milliseconds\r\n const oneSecond = 1000;\r\n const oneMinute = oneSecond * 60;\r\n const oneHour = oneMinute * 60;\r\n const oneDay = oneHour * 24;\r\n const oneWeek = oneDay * 7;\r\n const oneYear = oneDay * 365;\r\n const oneMonth = oneYear / 12;\r\n\r\n let absTime = Math.abs(time); \r\n let sign = (time > 0 ? \"\" : \"-\");\r\n\r\n if (absTime >= oneYear && maxUnit === TimeMaxUnitEnum.Year) {\r\n return (sign + Math.floor(absTime / oneYear)) + (shortHand ? 'y' : ' year(s)');\r\n }\r\n if (absTime >= oneMonth && maxUnit >= TimeMaxUnitEnum.Month) {\r\n return (sign + Math.floor(absTime / oneMonth)) + (shortHand ? 'mo' : ' month(s)');\r\n }\r\n if (absTime > oneMonth && maxUnit >= TimeMaxUnitEnum.Week) {\r\n return (sign + Math.floor(absTime / oneWeek)) + (shortHand ? 'w' : ' week(s)');\r\n }\r\n if ((absTime > oneWeek && absTime < oneMonth) && maxUnit >= TimeMaxUnitEnum.Week) {\r\n return (sign + Math.floor(absTime / oneDay)) + (shortHand ? 'd' : ' day(s)');\r\n }\r\n if (absTime >= oneDay && maxUnit >= TimeMaxUnitEnum.Day) {\r\n return (sign + Math.floor(absTime / oneDay)) + (shortHand ? 'd' : ' day(s)');\r\n }\r\n if (countdown) {\r\n let hours, minutes;\r\n\r\n hours = Math.floor(absTime / oneHour);\r\n absTime -= hours * oneHour;\r\n minutes = Math.floor(absTime / oneMinute);\r\n absTime -= minutes * oneMinute;\r\n\r\n return shortHand ? (sign + hours + \":\" + minutes) : (hours > 0) ? (sign + hours + \" hour(s)\") : (sign + minutes + \" min(s)\");\r\n }\r\n else {\r\n\r\n if (absTime >= oneHour) {\r\n return (sign + Math.floor(absTime / oneHour)) + (shortHand ? 'h' : ' hour(s)');\r\n }\r\n\r\n return (sign + Math.floor(absTime / oneMinute)) + (shortHand ? 'm' : ' minute(s)');\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport enum TimeMaxUnitEnum {\r\n Year = 4,\r\n Month = 3,\r\n Week = 2,\r\n Day = 1,\r\n Hour = 0\r\n}","// Angular\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { RouterModule } from '@angular/router';\r\nimport { ClipboardModule } from '@angular/cdk/clipboard';\r\n\r\nimport { FormatUtils } from \"@Core/Lib/Utils/format-utils\";\r\n\r\n// 3rd-party\r\nimport { FileUploadModule } from 'ng2-file-upload';\r\nimport { NgxMaskDirective, NgxMaskPipe, NgxMaskService, provideNgxMask } from 'ngx-mask';\r\nimport { QuillModule } from 'ngx-quill';\r\n\r\n// Bootstrap\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n// Kendo\r\nimport { DropDownListModule, DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { ButtonsModule } from '@progress/kendo-angular-buttons';\r\nimport { GridModule } from '@progress/kendo-angular-grid';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { PopupModule } from '@progress/kendo-angular-popup';\r\n\r\n// Qlik\r\nimport { QlikChartComponent } from '@Shared/Components/charts/qlik-chart/qlik-chart.component';\r\n// Pipes\r\nimport { FileSizePipe } from '@Shared/Pipes/file-size.pipe';\r\nimport { ControlNameSpacerPipe } from '@Shared/Pipes/control-name-spacer.pipe';\r\nimport { SmCurrencyRegionPipe } from '@Shared/Pipes/sm-currency-region.pipe';\r\nimport { DomainlessIdPipe } from '@Shared/Pipes/domainless-id.pipe';\r\nimport { TextToControlIdPipe } from '@Shared/Pipes/text-to-control-id.pipe';\r\nimport { GuidReplacerPipe } from '@Work/Pipes/guid-replacer.pipe';\r\nimport { FeatureParentPipe, IsPermissionPipe } from '@Shared/Components/sm-feature-facets/feature-facet.pipe';\r\nimport { TimeInStrPipe } from '@Shared/Pipes/time.pipe';\r\nimport { SmDatePipe } from '@Shared/Pipes/sm-date.pipe';\r\nimport { SmNomenclaturePipe } from './Pipes/sm-nomenclature.pipe';\r\nimport { SmNumberPipe } from './Pipes/sm-number.pipe';\r\n\r\n// Components\r\nimport { AccountRoleAssignmentBadge } from '@Work/Shared/account-role-assignment-badge/account-role-assignment-badge.component';\r\nimport { SmAccordionMenuComponent } from '@Shared/Components/sm-accordion-menu/sm-accordion-menu.component';\r\nimport { SmFileUploadComponent } from '@Shared/Components/sm-file-upload/sm-file-upload.component';\r\nimport { SmFilterFieldComponent } from '@Shared/Components/sm-filter-field/sm-filter-field.component';\r\nimport { SmHorizontalMenuComponent } from '@Shared/Components/sm-horizontal-menu/sm-horizontal-menu.component';\r\nimport { SmSelectionModal } from \"@Shared/Components/sm-selection-modal/sm-selection-modal.component\";\r\nimport { SmSimpleDialog } from '@Shared/Components/sm-simple-dialog/sm-simple-dialog.component';\r\nimport { SmSyncAPIDialog } from '@Shared/Components/sm-synchronous-api-dialog/sm-synchronous-api-dialog.component';\r\nimport { SmGlobalAlertsComponent } from '@Shared/Components/sm-global-alerts/sm-global-alerts.component';\r\nimport { SmGlobalNotificationsComponent } from '@Shared/Components/sm-global-notifications/sm-global-notifications.component';\r\nimport { SmGlobalNotificationsCardComponent } from '@Shared/Components/sm-global-notifications/sm-global-notifications-card/sm-global-notifications-card.component';\r\nimport { SmExtraActionsComponent } from '@Shared/Components/sm-extra-actions/sm-extra-actions.component';\r\nimport { SmHelpTooltipComponent } from '@Shared/Components/sm-help-tooltip/sm-help-tooltip.component';\r\nimport { SmWarningMessageComponent } from '@Shared/Components/sm-warning-message/sm-warning-message.component';\r\nimport { SmTagsComponent } from '@Shared/Components/sm-tags/sm-tags.component';\r\nimport { SmMainMenuComponent } from '@Shared/Components/sm-main-menu/sm-main-menu.component';\r\nimport { SmToastListComponent } from '@Shared/Components/sm-toast-list/sm-toast-list.component';\r\nimport { SmUserInfoComponent } from '@Shared/Components/sm-user-info/sm-user-info.component';\r\nimport { SmNotificationSettingsComponent } from '@Shared/Components/sm-notification-settings/sm-notification-settings.component';\r\nimport { SmAccountRoleBadgeComponent } from '@Shared/Components/sm-account-role-badge/sm-account-role-badge.component';\r\nimport { SmWorkGroupBadgeComponent } from '@Shared/Components/sm-work-group-badge/sm-work-group-badge.component';\r\nimport { SmCommentBadgeComponent } from '@Shared/Components/sm-comment-badge/sm-comment-badge.component';\r\nimport { SmSearchComponent } from '@Shared/Components/sm-search/sm-search.component';\r\nimport { SmDateByComponent } from '@Shared/Components/sm-date-by/sm-date-by.component';\r\nimport { SmNumberRadioSelectComponent } from '@Shared/Components/sm-number-radio-select/sm-number-radio-select.component';\r\nimport { SmAssignableBadgeComponent } from '@Shared/Components/sm-assignable-badge/sm-assignable-badge.component';\r\nimport { SmAuthorityLevelBadge } from '@Shared/Components/sm-authority-level-badge/sm-authority-level-badge.component';\r\nimport { SmAssignmentPicker } from '@Shared/Components/sm-assignable-picker/sm-assignment-picker.component';\r\nimport { SmDeleteConfDialog } from '@Shared/Components/sm-delete-conf-dialog/sm-delete-conf-dialog.component';\r\nimport { SmQuickSearchCard } from '@Shared/Components/sm-quick-search-card/sm-quick-search-card.component';\r\nimport { SmNavigationTitleBarComponent } from '@Shared/Components/sm-navigation-title-bar/sm-navigation-title-bar.component';\r\nimport { SmDonutComponent } from '@Shared/Components/sm-donut/sm-donut.component';\r\nimport { SmEditableTextComponent } from '@Shared/Components/sm-editable-text/sm-editable-text.component';\r\nimport { SmCopyClipboardComponent } from '@Shared/Components/sm-copy-clipboard/sm-copy-clipboard.component';\r\nimport { SmInfoStackComponent } from '@Shared/Components/sm-info-stack/sm-info-stack.component';\r\nimport { SmFeatureFacetsComponent } from '@Shared/Components/sm-feature-facets/sm-feature-facets.component';\r\nimport { SmSyncStatusComponent } from '@Shared/Components/sm-sync-status/sm-sync-status.component';\r\nimport { SmTimeSinceComponent } from '@Shared/Components/sm-time-since/sm-time-since.component';\r\nimport { SmFormComponent } from '@Shared/Components/sm-form/sm-form.component';\r\nimport { SmFormFieldBooleanComponent } from '@Shared/Components/sm-form/fields/sm-form-field-boolean.component';\r\nimport { SmFormFieldComponent } from '@Shared/Components/sm-form/sm-form-field.component';\r\nimport { SmFormFieldDateComponent } from '@Shared/Components/sm-form/fields/sm-form-field-date.component';\r\nimport { SmFormFieldDecimalComponent } from '@Shared/Components/sm-form/fields/sm-form-field-decimal.component';\r\nimport { SmFormFieldEmailComponent } from '@Shared/Components/sm-form/fields/sm-form-field-email.component';\r\nimport { SmFormFieldIntegerComponent } from '@Shared/Components/sm-form/fields/sm-form-field-integer.component';\r\nimport { SmFormFieldLabelComponent } from '@Shared/Components/sm-form/fields/label/sm-form-field-label.component';\r\nimport { SmFormFieldMoneyComponent } from '@Shared/Components/sm-form/fields/sm-form-field-money.component';\r\nimport { SmFormFieldMultiSelectComponent } from '@Shared/Components/sm-form/fields/sm-form-field-multi-select.component';\r\nimport { SmFormFieldPhoneComponent } from '@Shared/Components/sm-form/fields/sm-form-field-phone.component';\r\nimport { SmFormFieldRadioOptionsComponent } from '@Shared/Components/sm-form/fields/sm-form-field-radio-options.component';\r\nimport { SmFormFieldSelectComponent } from '@Shared/Components/sm-form/fields/sm-form-field-select.component';\r\nimport { SmFormFieldStringComponent } from '@Shared/Components/sm-form/fields/sm-form-field-string.component';\r\nimport { SmFormFieldTimestampComponent } from '@Shared/Components/sm-form/fields/sm-form-field-timestamp.component';\r\nimport { SmFormFieldUrlComponent } from '@Shared/Components/sm-form/fields/sm-form-field-url.component';\r\nimport { SmFormFieldYearComponent } from '@Shared/Components/sm-form/fields/sm-form-field-year.component';\r\nimport { SmFormFieldZipComponent } from '@Shared/Components/sm-form/fields/sm-form-field-zip.component';\r\nimport { SmFormPreviousValueComponent } from '@Shared/Components/sm-form/fields/previous-value/sm-form-previous-value.component';\r\nimport { SmFormSectionComponent } from '@Shared/Components/sm-form/sm-form-section.component';\r\nimport { SmFormSectionInstanceComponent } from '@Shared/Components/sm-form/sm-form-section-instance.component';\r\nimport { SmFormSectionModalComponent } from '@Shared/Components/sm-form/sm-form-section-modal.component';\r\nimport { SmFormStaticElementComponent } from '@Shared/Components/sm-form/sm-form-static-element.component';\r\nimport { SmFormRowComponent } from '@Shared/Components/sm-form/rows/sm-form-row.component';\r\nimport { SmFormCurrencyBlockComponent } from '@Shared/Components/sm-form/rows/sm-form-currency-block.component';\r\nimport { SmSelectAreaModalComponent } from '@Shared/Components/sm-select-area/sm-select-area-modal.component';\r\nimport { SmSelectAreaComponent } from '@Shared/Components/sm-select-area/sm-select-area.component';\r\nimport { SmSelectTenantComponent } from '@Shared/Components/sm-select-tenant/sm-select-tenant.component';\r\nimport { SmMultiOptionsButtonComponent } from '@Shared/Components/sm-multi-options-button/sm-multi-options-button.component';\r\nimport { SmRatingComponent } from '@Work/Accounts/Rating/sm-rating.component';\r\nimport { SmCollapsibleComponent } from '@Work/Shared/sm-collapsible/sm-collapsible.component';\r\nimport { SmInputNumberComponent } from './Components/inputs/sm-input-number/sm-input-number.component';\r\nimport { SmWorkflowBadgeComponent } from './Components/sm-workflow-badge/sm-workflow-badge.component';\r\nimport { SmProducerSearchComponent } from './Components/sm-producer-search/sm-producer-search.component';\r\nimport { SmIntegrationBadgeComponent } from './Components/sm-integration-badge/sm-integration-badge.component';\r\n\r\nimport { UnityAvatarComponent } from '@Shared/Components/unity-avatar/unity-avatar.component';\r\nimport { UnityBadgeComponent } from '@Shared/Components/unity-badge/unity-badge.component';\r\nimport { UnityBannerComponent } from './Components/unity-banner/unity-banner.component';\r\nimport { UnityButtonComponent } from '@Shared/Components/unity-button/unity-button.component';\r\nimport { UnityCardBasicComponent } from './Components/unity-card/unity-card-basic/unity-card-basic.component';\r\nimport { UnityCardMetricComponent } from './Components/unity-card/unity-card-metric/unity-card-metric.component';\r\nimport { UnityUserMenuComponent } from '@Shared/Components/unity-user-menu/unity-user-menu.component';\r\nimport { UnityHeaderComponent } from '@Shared/Components/unity-header/unity-header.component';\r\nimport { UnityToggleComponent } from '@Shared/Components/unity-toggle/unity-toggle.component';\r\nimport { UnityModalComponent } from '@Shared/Components/unity-modal/unity-modal.component';\r\nimport { UnityToastComponent } from '@Shared/Components/unity-toasts/unity-toast.component';\r\nimport { UnityToastsComponent } from '@Shared/Components/unity-toasts/unity-toasts.component';\r\nimport { UnityNavComponent } from '@Shared/Components/unity-nav/unity-nav.component';\r\nimport { UnityFormControlTextSingleComponent } from '@Shared/Components/unity-form/unity-control-text-single/unity-control-text-single.component';\r\nimport { UnityFormControlTextMultiComponent } from '@Shared/Components/unity-form/unity-control-text-multi/unity-control-text-multi.component';\r\nimport { UnityFormControlEmailComponent } from '@Shared/Components/unity-form/unity-control-email/unity-control-email.component';\r\nimport { UnityFormControlPasswordComponent } from '@Shared/Components/unity-form/unity-control-password/unity-control-password.component';\r\nimport { UnityFormControlDateComponent } from '@Shared/Components/unity-form/unity-control-date/unity-control-date.component';\r\nimport { UnityFormControlPhoneComponent } from '@Shared/Components/unity-form/unity-control-phone/unity-control-phone.component';\r\nimport { UnityFormControlDropdownComponent } from '@Shared/Components/unity-form/unity-control-dropdown/unity-control-dropdown.component';\r\nimport { UnityFormControlComboboxComponent } from '@Shared/Components/unity-form/unity-control-combobox/unity-control-combobox.component';\r\nimport { UnityFormControlCheckboxComponent } from '@Shared/Components/unity-form/unity-control-checkbox/unity-control-checkbox.component';\r\nimport { UnityFormControlCheckboxGroupComponent } from '@Shared/Components/unity-form/unity-control-checkbox-group/unity-control-checkbox-group.component';\r\nimport { UnityFormControlRadioComponent } from '@Shared/Components/unity-form/unity-control-radio/unity-control-radio.component';\r\nimport { UnityFormControlToggleSwitchComponent } from '@Shared/Components/unity-form/unity-control-toggle-switch/unity-control-toggle-switch.component';\r\nimport { UnityFormControlDualListboxComponent } from '@Shared/Components/unity-form/unity-control-dual-listbox/unity-control-dual-listbox.component';\r\nimport { UnityFormControlFileUploadComponent } from '@Shared/Components/unity-form/unity-control-file-upload/unity-control-file-upload.component';\r\nimport { UnityFormControlDropZoneComponent } from '@Shared/Components/unity-form/unity-control-drop-zone/unity-control-drop-zone.component';\r\nimport { UnityMenuContextualComponent } from '@Shared/Components/unity-menu/unity-menu-contextual.component';\r\nimport { UnitySideNavigationComponent } from './Components/unity-side-navigation/unity-side-navigation.component';\r\nimport { UnityListItemComponent } from './Components/unity-list/unity-list-item.component';\r\nimport { UnityIconComponent } from './Components/unity-icon/unity-icon.component';\r\n\r\n\r\n// Directives\r\nimport { UniqueValueDirective } from '@Shared/Directives/unique-value.directive';\r\nimport { ClickCursorDirective } from '@Shared/Directives/click-cursor.directive';\r\nimport { NgbTooltipStickyDirective } from '@Shared/Directives/ngbtooltip-sticky.directive';\r\nimport { HasPermissionDirective, HasAnyPermissionDirective, HasAllPermissionDirective, HasNotPermissionDirective, HasNotAllPermissionDirective, HasNotAnyPermissionDirective } from '@Shared/Directives/sm-permissions.directive';\r\nimport { TenantHasFacetDirective, TenantHasNotFacetDirective } from '@Shared/Directives/sm-tenant-facets.directive';\r\n\r\n// Services\r\nimport { SmFormService } from '@Shared/Components/sm-form/sm-form-service';\r\nimport { SmInputZipcodeComponent } from './Components/inputs/sm-input-zipcode/sm-input-zipcode.component';\r\nimport { SmInputMoneyComponent } from './Components/inputs/sm-input-money/sm-input-money.component';\r\nimport { SmNotFoundComponent } from './Components/sm-not-found/sm-not-found.component';\r\nimport { SmClientErrorComponent } from './Components/sm-client-error/sm-client-error.component';\r\nimport { GaugeChartComponent } from './Components/charts/gauge-chart/gauge-chart.component';\r\nimport { ArcGaugeModule, GaugesModule } from '@progress/kendo-angular-gauges';\r\nimport { ChartsModule } from '@progress/kendo-angular-charts';\r\nimport { UserTaskTimerComponent } from '@Work/Shared/user-task-timer/user-task-timer.component';\r\nimport { UnityStepperComponent } from './Components/unity-stepper/unity-stepper.component';\r\nimport { UnityLoadingIndicatorComponent } from './Components/unity-loading-indicator/unity-loading-indicator.component';\r\nimport { UnityListComponent } from './Components/unity-list/unity-list.component';\r\nimport { TaskTimerComponent } from '@Work/Shared/task-timer/task-timer.component';\r\nimport { SmExpandableTextComponent } from './Components/sm-expandable-text/sm-expandable-text.component';\r\nimport { UnityChipComponent } from './Components/unity-chip/unity-chip.component';\r\nimport { SmPolicyTableComponent } from './Components/sm-policy-table/sm-policy-table.component';\r\n\r\n@NgModule({\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n HttpClientModule,\r\n ClipboardModule,\r\n FileUploadModule,\r\n DropDownsModule,\r\n PopupModule,\r\n GridModule,\r\n InputsModule,\r\n ButtonsModule,\r\n DropDownListModule,\r\n NgbModule,\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n GaugesModule,\r\n ChartsModule,\r\n ArcGaugeModule,\r\n QuillModule\r\n ],\r\n declarations: [\r\n AccountRoleAssignmentBadge,\r\n SmIntegrationBadgeComponent,\r\n SmGlobalAlertsComponent,\r\n SmGlobalNotificationsComponent,\r\n SmGlobalNotificationsCardComponent,\r\n SmToastListComponent,\r\n SmMainMenuComponent,\r\n SmQuickSearchCard,\r\n SmUserInfoComponent,\r\n SmNotificationSettingsComponent,\r\n ControlNameSpacerPipe,\r\n SmCurrencyRegionPipe,\r\n FileSizePipe,\r\n GuidReplacerPipe,\r\n DomainlessIdPipe,\r\n TextToControlIdPipe,\r\n TimeInStrPipe,\r\n SmDatePipe,\r\n SmNomenclaturePipe,\r\n SmNumberPipe,\r\n\r\n SmRatingComponent,\r\n SmCollapsibleComponent,\r\n SmMultiOptionsButtonComponent,\r\n SmAccordionMenuComponent,\r\n SmFileUploadComponent,\r\n SmFilterFieldComponent,\r\n SmHorizontalMenuComponent,\r\n SmTagsComponent,\r\n SmSimpleDialog,\r\n SmSyncAPIDialog,\r\n SmSyncStatusComponent,\r\n SmSelectionModal,\r\n UniqueValueDirective,\r\n ClickCursorDirective,\r\n NgbTooltipStickyDirective,\r\n HasPermissionDirective,\r\n HasAnyPermissionDirective,\r\n HasAllPermissionDirective,\r\n HasNotPermissionDirective,\r\n HasNotAnyPermissionDirective,\r\n HasNotAllPermissionDirective,\r\n TenantHasFacetDirective,\r\n TenantHasNotFacetDirective,\r\n SmExtraActionsComponent,\r\n SmHelpTooltipComponent,\r\n SmWarningMessageComponent,\r\n SmAssignableBadgeComponent,\r\n SmAccountRoleBadgeComponent,\r\n SmWorkGroupBadgeComponent,\r\n SmAuthorityLevelBadge,\r\n SmCommentBadgeComponent,\r\n SmSearchComponent,\r\n SmDateByComponent,\r\n SmNumberRadioSelectComponent,\r\n SmAssignmentPicker,\r\n SmDeleteConfDialog,\r\n SmNavigationTitleBarComponent,\r\n SmDonutComponent,\r\n SmEditableTextComponent,\r\n SmCopyClipboardComponent,\r\n SmInfoStackComponent,\r\n SmFeatureFacetsComponent,\r\n FeatureParentPipe,\r\n IsPermissionPipe,\r\n SmTimeSinceComponent,\r\n SmSelectAreaComponent,\r\n SmSelectAreaModalComponent,\r\n SmSelectTenantComponent,\r\n SmWorkflowBadgeComponent,\r\n SmClientErrorComponent,\r\n SmNotFoundComponent,\r\n SmProducerSearchComponent,\r\n UserTaskTimerComponent,\r\n TaskTimerComponent,\r\n SmPolicyTableComponent, \r\n\r\n SmFormComponent,\r\n SmFormSectionComponent,\r\n SmFormSectionInstanceComponent,\r\n SmFormSectionModalComponent,\r\n SmFormFieldComponent,\r\n SmFormFieldLabelComponent,\r\n SmFormPreviousValueComponent,\r\n SmFormFieldStringComponent,\r\n SmFormFieldMultiSelectComponent,\r\n SmFormFieldEmailComponent,\r\n SmFormFieldPhoneComponent,\r\n SmFormFieldYearComponent,\r\n SmFormFieldZipComponent,\r\n SmFormFieldIntegerComponent,\r\n SmFormFieldDecimalComponent,\r\n SmFormFieldDateComponent,\r\n SmFormFieldMoneyComponent,\r\n SmFormFieldUrlComponent,\r\n SmFormFieldTimestampComponent,\r\n SmFormFieldBooleanComponent,\r\n SmFormFieldRadioOptionsComponent,\r\n SmFormFieldSelectComponent,\r\n SmFormStaticElementComponent,\r\n SmFormRowComponent,\r\n SmFormCurrencyBlockComponent,\r\n SmExpandableTextComponent,\r\n\r\n SmInputNumberComponent,\r\n SmInputMoneyComponent,\r\n SmInputZipcodeComponent,\r\n\r\n UnityAvatarComponent,\r\n UnityBadgeComponent,\r\n UnityBannerComponent,\r\n UnityButtonComponent,\r\n UnityCardBasicComponent,\r\n UnityCardMetricComponent,\r\n UnityChipComponent,\r\n UnityUserMenuComponent,\r\n UnityHeaderComponent,\r\n UnityToggleComponent,\r\n UnityToastComponent,\r\n UnityToastsComponent,\r\n UnityModalComponent,\r\n UnityNavComponent,\r\n UnityFormControlTextSingleComponent,\r\n UnityFormControlTextMultiComponent,\r\n UnityFormControlEmailComponent,\r\n UnityFormControlPasswordComponent,\r\n UnityFormControlDateComponent,\r\n UnityFormControlPhoneComponent,\r\n UnityFormControlDropdownComponent,\r\n UnityFormControlComboboxComponent,\r\n UnityFormControlCheckboxComponent,\r\n UnityFormControlCheckboxGroupComponent,\r\n UnityFormControlRadioComponent,\r\n UnityFormControlToggleSwitchComponent,\r\n UnityFormControlDualListboxComponent,\r\n UnityFormControlFileUploadComponent,\r\n UnityFormControlDropZoneComponent,\r\n UnityMenuContextualComponent,\r\n UnityStepperComponent,\r\n UnityLoadingIndicatorComponent,\r\n UnityListComponent,\r\n UnitySideNavigationComponent,\r\n UnityListItemComponent,\r\n UnityIconComponent,\r\n\r\n GaugeChartComponent,\r\n QlikChartComponent\r\n ],\r\n exports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n RouterModule,\r\n HttpClientModule,\r\n ClipboardModule,\r\n FileUploadModule,\r\n GridModule,\r\n DropDownsModule,\r\n PopupModule,\r\n InputsModule,\r\n ButtonsModule,\r\n DropDownListModule,\r\n NgbModule,\r\n NgxMaskDirective,\r\n NgxMaskPipe,\r\n QuillModule,\r\n\r\n AccountRoleAssignmentBadge,\r\n SmTagsComponent,\r\n SmGlobalAlertsComponent,\r\n SmGlobalNotificationsComponent,\r\n SmGlobalNotificationsCardComponent,\r\n SmToastListComponent,\r\n SmMainMenuComponent,\r\n SmUserInfoComponent,\r\n SmNotificationSettingsComponent,\r\n SmQuickSearchCard,\r\n ControlNameSpacerPipe,\r\n SmCurrencyRegionPipe,\r\n FileSizePipe,\r\n GuidReplacerPipe,\r\n DomainlessIdPipe,\r\n TextToControlIdPipe,\r\n TimeInStrPipe,\r\n SmDatePipe,\r\n SmNomenclaturePipe,\r\n SmNumberPipe,\r\n\r\n SmRatingComponent,\r\n SmCollapsibleComponent,\r\n SmMultiOptionsButtonComponent,\r\n SmAccordionMenuComponent,\r\n SmFileUploadComponent,\r\n SmFilterFieldComponent,\r\n SmHorizontalMenuComponent,\r\n SmSimpleDialog,\r\n SmSyncAPIDialog,\r\n SmSelectionModal,\r\n UniqueValueDirective,\r\n ClickCursorDirective,\r\n NgbTooltipStickyDirective,\r\n HasPermissionDirective,\r\n HasAnyPermissionDirective,\r\n HasAllPermissionDirective,\r\n HasNotPermissionDirective,\r\n HasNotAnyPermissionDirective,\r\n HasNotAllPermissionDirective,\r\n TenantHasFacetDirective,\r\n TenantHasNotFacetDirective,\r\n SmExtraActionsComponent,\r\n SmHelpTooltipComponent,\r\n SmWarningMessageComponent,\r\n SmAssignableBadgeComponent,\r\n SmAccountRoleBadgeComponent,\r\n SmWorkGroupBadgeComponent,\r\n SmAuthorityLevelBadge,\r\n SmCommentBadgeComponent,\r\n SmSearchComponent,\r\n SmDateByComponent,\r\n SmNumberRadioSelectComponent,\r\n SmAssignmentPicker,\r\n SmDeleteConfDialog,\r\n SmNavigationTitleBarComponent,\r\n SmDonutComponent,\r\n SmEditableTextComponent,\r\n SmCopyClipboardComponent,\r\n SmInfoStackComponent,\r\n SmFeatureFacetsComponent,\r\n SmTimeSinceComponent,\r\n SmSelectAreaComponent,\r\n SmSelectAreaModalComponent,\r\n SmSelectTenantComponent,\r\n SmWorkflowBadgeComponent,\r\n SmClientErrorComponent,\r\n SmNotFoundComponent,\r\n SmProducerSearchComponent,\r\n UserTaskTimerComponent,\r\n TaskTimerComponent,\r\n SmPolicyTableComponent, \r\n\r\n SmFormComponent,\r\n SmFormSectionComponent,\r\n SmFormSectionInstanceComponent,\r\n SmFormSectionModalComponent,\r\n SmFormFieldComponent,\r\n SmFormFieldLabelComponent,\r\n SmFormPreviousValueComponent,\r\n SmFormFieldStringComponent,\r\n SmFormFieldMultiSelectComponent,\r\n SmFormFieldEmailComponent,\r\n SmFormFieldPhoneComponent,\r\n SmFormFieldYearComponent,\r\n SmFormFieldZipComponent,\r\n SmFormFieldIntegerComponent,\r\n SmFormFieldDecimalComponent,\r\n SmFormFieldDateComponent,\r\n SmFormFieldMoneyComponent,\r\n SmFormFieldUrlComponent,\r\n SmFormFieldTimestampComponent,\r\n SmFormFieldBooleanComponent,\r\n SmFormFieldRadioOptionsComponent,\r\n SmFormFieldSelectComponent,\r\n SmFormStaticElementComponent,\r\n SmFormRowComponent,\r\n SmFormCurrencyBlockComponent,\r\n SmExpandableTextComponent,\r\n\r\n SmInputNumberComponent,\r\n SmInputMoneyComponent,\r\n SmInputZipcodeComponent,\r\n\r\n UnityAvatarComponent,\r\n UnityBadgeComponent,\r\n UnityBannerComponent,\r\n UnityButtonComponent,\r\n UnityCardBasicComponent,\r\n UnityCardMetricComponent,\r\n UnityChipComponent,\r\n UnityUserMenuComponent,\r\n UnityHeaderComponent,\r\n UnityToggleComponent,\r\n UnityToastComponent,\r\n UnityToastsComponent,\r\n UnityModalComponent,\r\n UnityNavComponent,\r\n UnityFormControlTextSingleComponent,\r\n UnityFormControlTextMultiComponent,\r\n UnityFormControlEmailComponent,\r\n UnityFormControlPasswordComponent,\r\n UnityFormControlDateComponent,\r\n UnityFormControlPhoneComponent,\r\n UnityFormControlDropdownComponent,\r\n UnityFormControlComboboxComponent,\r\n UnityFormControlCheckboxComponent,\r\n UnityFormControlCheckboxGroupComponent,\r\n UnityFormControlRadioComponent,\r\n UnityFormControlToggleSwitchComponent,\r\n UnityFormControlDualListboxComponent,\r\n UnityFormControlFileUploadComponent,\r\n UnityFormControlDropZoneComponent,\r\n UnityMenuContextualComponent,\r\n UnityStepperComponent,\r\n UnityLoadingIndicatorComponent,\r\n UnityListComponent,\r\n UnitySideNavigationComponent,\r\n UnityListItemComponent,\r\n UnityIconComponent,\r\n\r\n GaugeChartComponent,\r\n QlikChartComponent\r\n ],\r\n providers: [\r\n SmFormService,\r\n NgxMaskService,\r\n provideNgxMask({\r\n allowNegativeNumbers: true,\r\n thousandSeparator: FormatUtils.getThousandSeparator(),\r\n decimalMarker: FormatUtils.getDecimalMarker() as \".\" | \",\"\r\n })\r\n ]\r\n})\r\nexport class SharedModule {\r\n static forRoot(): ModuleWithProviders {\r\n return {\r\n ngModule: SharedModule,\r\n }\r\n }\r\n}\r\n","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport const NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject, interval, NEVER, Observable } from 'rxjs';\r\nimport { switchMap } from 'rxjs/operators';\r\n\r\n@Injectable()\r\nexport class AdminPollingService {\r\n\r\n public static readonly noRefreshValue: number = 0;\r\n public $refreshTimer: Observable;\r\n private $refreshRate: BehaviorSubject = new BehaviorSubject(15);\r\n\r\n constructor() {\r\n this.$refreshTimer = this.$refreshRate.pipe(switchMap((newRate) => {\r\n if (newRate === 0) {\r\n return NEVER;\r\n }\r\n return interval(newRate * 1000);\r\n }))\r\n }\r\n\r\n public updateRefreshRate(refreshRate: number) {\r\n window.localStorage.setItem('refreshRate', refreshRate.toString())\r\n this.$refreshRate.next(refreshRate);\r\n }\r\n}","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { AdminPollingService as AdminPollingService } from './admin-polling-service';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AdminComponent implements OnInit {\r\n public environmentName: string = environment.env;\r\n public refreshRate = 60;\r\n public minRefreshRateSeconds = 15;\r\n public maxRefreshRateSeconds = 300;\r\n public refreshRateSliderIncrement = 15;\r\n\r\n private sliderValueForNoRefresh = this.maxRefreshRateSeconds + this.refreshRateSliderIncrement;\r\n\r\n public Math: Math = Math; // make this available to the template\r\n\r\n constructor(private authService: AuthService, private pollingService: AdminPollingService) {\r\n this.authService.spaName = 'admin';\r\n\r\n const storedValue: string = window.localStorage.getItem('refreshRate');\r\n if (storedValue) {\r\n const storedRefreshRate = parseInt(storedValue);\r\n if (this.minRefreshRateSeconds <= storedRefreshRate && storedRefreshRate <= this.maxRefreshRateSeconds) {\r\n this.refreshRate = storedRefreshRate;\r\n }\r\n else {\r\n this.refreshRate = this.sliderValueForNoRefresh;\r\n }\r\n }\r\n this.authService.spaName = 'admin';\r\n }\r\n\r\n public ngOnInit(): void {\r\n this.updateRefreshRate(this.refreshRate);\r\n }\r\n\r\n public updateRefreshRate(newRefreshRate: number) {\r\n let effectiveRefreshRate: number;\r\n if (this.minRefreshRateSeconds <= newRefreshRate && newRefreshRate <= this.maxRefreshRateSeconds) {\r\n effectiveRefreshRate = newRefreshRate;\r\n }\r\n else {\r\n effectiveRefreshRate = AdminPollingService.noRefreshValue;\r\n }\r\n this.pollingService.updateRefreshRate(effectiveRefreshRate);\r\n }\r\n};","\r\n\t
\r\n\t\tENV : {{environmentName}}\r\n\t\tREFRESH RATE\r\n\t\t{{refreshRate > 300 ? 'OFF' : (refreshRate >= 60 ? Math.floor(refreshRate / 60) + 'm ' : '') + refreshRate % 60 + 's' }}\r\n\t\t\r\n\t
\r\n
\r\n\r\n
\r\n\t\r\n
","import { Component, ElementRef } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { DragDropService } from '@Services/drag-drop-service';\r\nimport { AlertsHub } from '@Services/Hubs/AlertsHub';\r\n\r\n@Component({\r\n selector: 'conf',\r\n templateUrl: './conf.component.html',\r\n styleUrls: ['./conf.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class ConfComponent {\r\n constructor(public authService: AuthService,\r\n private elementRef: ElementRef,\r\n private dragDropService: DragDropService,\r\n private alertsHub: AlertsHub) {\r\n this.authService.spaName = 'conf';\r\n }\r\n\r\n ngOnInit() {\r\n this.alertsHub.startConnection();\r\n }\r\n\r\n onDragOver(event: DragEvent): void {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.dragDropService.setDragging(true);\r\n }\r\n\r\n onDragLeave(event: DragEvent): void {\r\n if (!event.relatedTarget || !this.elementRef.nativeElement.contains(event.relatedTarget)) {\r\n this.dragDropService.setDragging(false);\r\n }\r\n }\r\n};\r\n","\r\n\r\n
\r\n \r\n
\r\n","\r\n\r\n
\r\n \r\n
\r\n
","import { Component, ViewEncapsulation } from '@angular/core';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { Router, Event, NavigationStart, NavigationEnd, NavigationCancel, NavigationError } from '@angular/router';\r\n\r\n@Component({\r\n selector: 'mgmt',\r\n templateUrl: './mgmt.component.html',\r\n styleUrls: ['./mgmt.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class MgmtComponent {\r\n public loading = false;\r\n\r\n constructor(private authService: AuthService, private router: Router) {\r\n const self = this;\r\n\r\n this.authService.spaName = 'mgmt';\r\n this.router.events.subscribe((event: Event) => {\r\n switch (true) {\r\n case event instanceof NavigationStart: {\r\n setTimeout(() => self.loading = true);\r\n break;\r\n }\r\n\r\n case event instanceof NavigationEnd:\r\n case event instanceof NavigationCancel:\r\n case event instanceof NavigationError: {\r\n setTimeout(() => self.loading = false);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n });\r\n \r\n }\r\n};\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { Observable, forkJoin, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { TenantAssignableService } from '@Services/tenant-assignable-service';\r\nimport { TenantTenantService } from '@Services/tenant-tenant-service';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { DocumentCategory } from '@Core/CodeGen/Models/configuration.models';\r\n\r\n\r\n@Pipe({\r\n name: 'guidReplacer',\r\n pure: true\r\n})\r\nexport class GuidReplacerPipe implements PipeTransform {\r\n constructor(\r\n private tenantContext: TenantContext,\r\n private assignableService: TenantAssignableService,\r\n private tenantService: TenantTenantService\r\n ) { }\r\n\r\n /**\r\n * Replaces GUID with its associated name \r\n * EX: \"Document with Category {{ DocumentCategoryId|f5fba77d-72f8-4efa-9db8-631b3a878294 }} received\"\r\n * = Document with Category Proposals received \r\n */\r\n transform(data: string) {\r\n if (!data) {\r\n return of('');\r\n }\r\n\r\n const regex = new RegExp(/(?<=\\{\\{)(.*?)(?=\\}\\})/, 'g');\r\n const tokens = data.match(regex);\r\n if (!tokens) {\r\n return of(data);\r\n }\r\n const observables: Observable[] = [];\r\n \r\n for (let token of tokens) {\r\n let [property, guid] = token.trim().split(\"|\");\r\n if (property && guid) {\r\n switch (property) {\r\n case 'ProductId':{\r\n observables.push(this.tenantService.getProduct(guid).pipe(\r\n map(t => {\r\n return t.Name\r\n })\r\n ));\r\n break;\r\n }\r\n case 'DocumentCategoryId': {\r\n const docCategory = this.tenantContext.get(ModelUtils.createDomainId(new DocumentCategory(), guid)) as DocumentCategory;\r\n if (docCategory) {\r\n observables.push(of(docCategory.Category));\r\n } else {\r\n observables.push(of(''));\r\n }\r\n break;\r\n }\r\n case 'SMIdentity': {\r\n observables.push(this.assignableService.GetAssignable(guid).pipe(\r\n map(t => {\r\n return t.DisplayName;\r\n })));\r\n break;\r\n }\r\n default:\r\n break;\r\n }\r\n }\r\n };\r\n\r\n if (observables.length > 0) {\r\n return forkJoin(observables).pipe(\r\n map((substitutes: string[]) => {\r\n let index = 0;\r\n return data.replace(regex, () => {\r\n return substitutes[index++];\r\n }).replace('{{', '').replace('}}', '');\r\n }));\r\n }\r\n return of(data);\r\n }\r\n}","@if (state == 'badge') {\r\n \r\n} @else if (state == 'bar') {\r\n \r\n \r\n} @else {\r\n \r\n}","import { TimerType } from '@Core/Lib/Enums/timer-type-enum';\r\nimport { Component, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'task-timer',\r\n templateUrl: './task-timer.component.html',\r\n styleUrls: ['./task-timer.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class TaskTimerComponent {\r\n @Input() dueOn: Date;\r\n @Input() background: 'dark' | 'light';\r\n @Input() timerType: TimerType;\r\n @Input() taskName: string = null;\r\n @Input() state: 'bar' | 'badge' | 'standalone' = 'standalone';\r\n @Input() includeTimeInfo: boolean = true;\r\n\r\n @Output() timerClicked: EventEmitter = new EventEmitter();\r\n\r\n public timerStyle: string;\r\n\r\n public timerState: 'pending' | 'imminent' | 'late';\r\n\r\n constructor(private cdr: ChangeDetectorRef) { }\r\n\r\n public ngOnInit(): void {\r\n this.isDueSoonOrPastDueSetup();\r\n }\r\n\r\n public ngOnChanges(changes: SimpleChanges) {\r\n if (changes.dueOn?.currentValue != changes.dueOn?.previousValue) {\r\n this.isDueSoonOrPastDueSetup();\r\n }\r\n }\r\n\r\n public resetTimer() {\r\n // Set the time information the first time\r\n this.isDueSoonOrPastDueSetup();\r\n }\r\n\r\n isDueSoonOrPastDueSetup() { \r\n if (!this.dueOn)\r\n return;\r\n\r\n const remainingTime = new Date(this.dueOn).getTime() - new Date().getTime();\r\n const oneDay = 1000 * 60 * 60 * 24;\r\n const deadlineImminent = oneDay * 5; // 5 days \r\n const serviceLevelImminent = oneDay * 2; // 1 day\r\n\r\n if (remainingTime < 0) {\r\n this.timerState = 'late';\r\n } else {\r\n if ((this.timerType == TimerType.Deadline && remainingTime < deadlineImminent)\r\n || (this.timerType == TimerType.SLA && remainingTime < serviceLevelImminent)\r\n || (!this.timerType && remainingTime < serviceLevelImminent)) {\r\n this.timerState = 'imminent';\r\n } else {\r\n this.timerState = 'pending';\r\n }\r\n } \r\n\r\n this.cdr.detectChanges();\r\n }\r\n}","\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n {{searchMessage}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewChild } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\nimport { AccountsService } from '@Services/account-accounts-service';\r\nimport { SearchResult, SearchDataType } from '@Shared/Components/sm-quick-search-card/sm-quick-search-card.component';\r\nimport _ from 'lodash';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'account-search',\r\n templateUrl: './account-search.component.html',\r\n styleUrls: ['./account-search.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class AccountSearchComponent {\r\n\r\n @ViewChild('search') search: ElementRef;\r\n \r\n public searchFocus: boolean = false;\r\n public searching: boolean = false;\r\n public searchHasValue: boolean = false;\r\n public searchValue: string = \"\";\r\n public searchMessage: string = \"\";\r\n public overSearch: boolean = false;\r\n public foundAccounts: SearchResult[] = new Array();\r\n\r\n public searchDebounceTimeout: any;\r\n public searchSubscription$: Subscription;\r\n\r\n public searchType: SearchDataType = SearchDataType.Account;\r\n\r\n public TENANT_PERMISSIONS = TenantPermissions;\r\n\r\n constructor(\r\n private accountService: AccountsService,\r\n private router: Router,\r\n private changeDetection: ChangeDetectorRef\r\n ) { }\r\n\r\n public ngOnInit(): void {\r\n this.setDefaultSearchMessage();\r\n }\r\n\r\n public onSearchFocus(): void {\r\n this.searchFocus = true;\r\n }\r\n\r\n public onSearchBlur(): void {\r\n this.searchFocus = false;\r\n }\r\n\r\n public onSearchOver(): void {\r\n this.overSearch = true;\r\n }\r\n\r\n public onSearchOut(): void {\r\n this.overSearch = false;\r\n }\r\n\r\n public onSearchKeyup(event: KeyboardEvent): void {\r\n this.clearSearchTimeout();\r\n\r\n const searchValue = (event.target).value;\r\n this.searchValue = searchValue;\r\n\r\n if (searchValue.length > 0) {\r\n this.searchHasValue = true;\r\n this.searchMessage = \"Minimum 3 characters to search\";\r\n }\r\n else {\r\n this.searchHasValue = false;\r\n this.foundAccounts = [];\r\n this.setDefaultSearchMessage();\r\n }\r\n if (searchValue.length > 2) {\r\n this.performSearch(searchValue);\r\n } else {\r\n this.searching = false;\r\n }\r\n }\r\n\r\n private clearSearchTimeout() {\r\n clearTimeout(this.searchDebounceTimeout);\r\n this.searchDebounceTimeout = null;\r\n }\r\n\r\n private setDefaultSearchMessage() {\r\n this.searchMessage = \"Start typing to search\";\r\n }\r\n\r\n private performSearch(searchValue: string): void {\r\n var self = this;\r\n this.searching = true;\r\n this.searchMessage = \"Searching...\";\r\n\r\n if (this.searchHasValue) { \r\n this.searchDebounceTimeout = setTimeout(() => {\r\n // If there is currently a search in progress, ignore the result. \r\n if (this.searchSubscription$)\r\n this.searchSubscription$.unsubscribe();\r\n\r\n this.searchSubscription$ = this.accountService.searchAccounts(searchValue).subscribe(\r\n (response: any) => {\r\n // Do this here and not at the beginning of the function to prevent some weird UI where the search list disappears temporarily\r\n this.foundAccounts = []; \r\n var responseContent = response.Content; // This should be an array of objects. \r\n _.forEach(responseContent, obj => {\r\n\r\n // We are going to deserialize this to our Search Account object.\r\n var searchAccount = new SearchResult();\r\n searchAccount.score = obj[\"@search.score\"];\r\n searchAccount.highlights = obj[\"@search.highlights\"];\r\n searchAccount.data = obj.document; // Not an actual Account object. \r\n self.foundAccounts.push(searchAccount);\r\n });\r\n this.searching = false;\r\n this.searchMessage = `Showing ${self.foundAccounts.length} results`;\r\n this.changeDetection.detectChanges();\r\n },\r\n );\r\n this.searchDebounceTimeout = null;\r\n }, 1000); \r\n }\r\n else {\r\n this.foundAccounts = [];\r\n this.searching = false;\r\n this.searchMessage = \"No results\";\r\n }\r\n }\r\n\r\n public onSearchAccountAdded(foundAccount: any): void {\r\n this.router.navigate(['Work', 'Account', foundAccount.id]);\r\n this.clearSearchInput();\r\n }\r\n\r\n public clearSearchInput(): void {\r\n this.searchHasValue = false;\r\n this.searchValue = \"\";\r\n this.search.nativeElement.focus();\r\n this.foundAccounts = [];\r\n this.searching = false;\r\n this.setDefaultSearchMessage();\r\n }\r\n}","
    \r\n
  1. \r\n
    \r\n \r\n \r\n \r\n
    \r\n
    \r\n
    {{step.Name}}
    \r\n
    {{step.Description}}
    \r\n
    \r\n
  2. \r\n
","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'unity-stepper',\r\n templateUrl: './unity-stepper.component.html',\r\n styleUrls: ['./unity-stepper.component.scss']\r\n})\r\nexport class UnityStepperComponent {\r\n @Input() currentStep: number; // 0-based index of the current step\r\n @Input() steps: UnityStepVM[];\r\n @Input() layoutDirection: 'vertical' | 'horizontal' = 'vertical';\r\n @Input() style: 'circles' | 'panels' | 'bullets' = 'circles';\r\n @Input() backwardsCapability: 'none' | 'single' | 'all' = 'all'; // Ability to go back steps by clicking the completed step\r\n\r\n @Output() goToStep: EventEmitter = new EventEmitter();\r\n\r\n public canClickStep(i: number): boolean {\r\n if (this.backwardsCapability == 'none')\r\n return false;\r\n\r\n if (this.backwardsCapability == 'single' && i == this.currentStep -1)\r\n return true;\r\n\r\n if (this.backwardsCapability == 'all' && i < this.currentStep)\r\n return true;\r\n\r\n return false;\r\n }\r\n};\r\n\r\nexport interface UnityStepVM {\r\n Name?: string;\r\n Description?: string;\r\n}","
\r\n

New {{ \"Account\" | smNomenclatureByRegion | async }}

\r\n \r\n
\r\n\r\n\r\n\r\n\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n\r\n
\r\n {{errorMessage}}\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n
","import { ChangeDetectorRef, Component, Input, Output, OnInit, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport _ from 'lodash';\r\n\r\nimport { AvailableProgramsViewModel } from '@Work/Shared/new-business-button/new-business-button.component';\r\nimport { PopupSettings } from '@progress/kendo-angular-popup';\r\nimport { ProducerSelectedEvent } from '@Shared/Components/sm-producer-search/sm-producer-search.component';\r\nimport { Guid } from '@Core/Lib/guid';\r\nimport { CAN_Province_Territories, US_States, LocationVM } from '@Core/Lib/Enums/locations';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\nimport { Region } from '@Core/CodeGen/Models/configuration.models';\r\nimport { UnityStepVM } from '@Shared/Components/unity-stepper/unity-stepper.component';\r\nimport { Program } from '@Core/CodeGen/Models/area.models';\r\n\r\n@Component({\r\n selector: 'account-creation-modal',\r\n templateUrl: './account-creation-modal.component.html',\r\n styleUrls: ['./account-creation-modal.component.scss'],\r\n})\r\nexport class AccountCreationModalComponent implements OnInit {\r\n @Input() programs: AvailableProgramsViewModel[] = [];\r\n @Input() errorMessage: string;\r\n @Input() regions: Region[];\r\n @Input() programRequired: boolean;\r\n\r\n @Output() onCreateAccount: EventEmitter = new EventEmitter();\r\n\r\n @ViewChild('nameInput') nameInput: any;\r\n @ViewChild('countryInput') countryInput: ElementRef;\r\n\r\n public TENANT_PERMISSIONS = TenantPermissions;\r\n\r\n public accountName: string;\r\n public accountCode: string;\r\n public shellAccount: boolean;\r\n\r\n public dba: string;\r\n public phone: string;\r\n public country: string;\r\n public address1: string;\r\n public address2: string;\r\n public address3: string;\r\n public city: string;\r\n public state: string;\r\n public zip: string;\r\n public producerName: string;\r\n public program?: Program;\r\n\r\n public us_states: LocationVM[] = US_States.getStates();\r\n public can_provinces: LocationVM[] = CAN_Province_Territories.getProvincesAndTerritories();\r\n\r\n public producerId: Guid;\r\n\r\n public popupSettings : PopupSettings;\r\n\r\n public accountCreationSteps: UnityStepVM[] = [\r\n { Name: \"General Information\"}, { Name: \"Contact Information\" }\r\n ];\r\n public accountCreationCurrentStep = 0;\r\n\r\n constructor(\r\n public activeModal: NgbActiveModal,\r\n public cdRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.shellAccount = false;\r\n\r\n if (this.regions?.length) {\r\n var defaultRegion = _.find(this.regions, r => r.IsProgramDefault);\r\n this.country = defaultRegion?.Country;\r\n } \r\n if (!this.country)\r\n this.country = 'USA'; \r\n }\r\n\r\n createAccount(startWorkflow: boolean) {\r\n if (this.disableCreateAccount())\r\n return;\r\n\r\n const result: AccountCreationModalResult = {\r\n accountName: this.accountName,\r\n accountCode: this.accountCode,\r\n producerId: this.producerId?.toString(),\r\n dba: this.dba,\r\n phone : this.phone,\r\n country: this.country,\r\n address1: this.address1,\r\n address2: this.address2,\r\n address3: this.address3,\r\n city: this.city,\r\n state: this.state,\r\n zip: this.zip,\r\n startWorkflow : startWorkflow,\r\n programId: this.program ? this.program.Id : null\r\n };\r\n this.onCreateAccount.emit(result);\r\n }\r\n\r\n public setProducer(event: ProducerSelectedEvent): void {\r\n this.producerId = event.Id;\r\n this.producerName = `${event.Name} (${event.Code})`;\r\n }\r\n\r\n public disableNext() {\r\n return !this.accountName || (this.programRequired && !this.program);\r\n }\r\n\r\n public disableCreateAccount() {\r\n return !this.address1 || !this.phone || !this.city || (!this.state && this.country != 'GBR') || !this.zip;\r\n }\r\n\r\n public next(e: any) {\r\n if (this.disableNext())\r\n return;\r\n\r\n this.accountCreationCurrentStep = 1;\r\n this.cdRef.detectChanges();\r\n this.countryInput.nativeElement.focus();\r\n\r\n e?.stopPropagation();\r\n }\r\n\r\n public changeStep(step: number) {\r\n // We should only be changing from 1 => 0\r\n if (step == 0)\r\n this.back();\r\n }\r\n\r\n public back() {\r\n this.accountCreationCurrentStep = 0;\r\n this.cdRef.detectChanges();\r\n this.nameInput.nativeElement.focus();\r\n }\r\n}\r\n\r\nexport interface AccountCreationModalResult {\r\n accountName: string,\r\n accountCode: string,\r\n producerId: string,\r\n dba: string;\r\n phone: string;\r\n country: string;\r\n address1: string;\r\n address2: string;\r\n address3: string;\r\n city: string;\r\n state: string;\r\n zip: string;\r\n startWorkflow: boolean;\r\n programId: string;\r\n}","","import { Component, OnInit, OnDestroy } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { Program, Account, IAccount, ProgramWritesAccount } from '@Core/CodeGen/Models/area.models';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { ContractDate } from '@Core/Lib/contract-date';\r\n\r\nimport { UserAccountsService } from '@Services/user-accounts-service';\r\nimport { LoadingService } from '@Services/loading-service';\r\n\r\nimport { AccountCreationModalComponent, AccountCreationModalResult } from '@Work/Shared/account-creation-modal/account-creation-modal.component';\r\nimport { BaseService } from '@Services/base-service';\r\nimport { Region } from '@Core/CodeGen/Models/configuration.models';\r\nimport { ModelUtils } from '@Core/Lib/Utils/model-utils';\r\nimport { FeatureFacetService } from '@Services/feature-facet.service';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\nimport { AuthService } from '@Services/auth-service';\r\n\r\n@Component({\r\n selector: 'new-business-button',\r\n templateUrl: './new-business-button.component.html',\r\n styleUrls: ['./new-business-button.component.scss']\r\n})\r\n\r\nexport class NewBusinessButtonComponent implements OnInit, OnDestroy {\r\n public loading: boolean = false;\r\n public programList: AvailableProgramsViewModel[] = [];\r\n public regions: Region[] = [];\r\n public programRequired: boolean;\r\n\r\n private ngUnsubscribe: Subject = new Subject();\r\n\r\n constructor(\r\n private tenantContext: TenantContext,\r\n private userContext: UserContext,\r\n private service: UserAccountsService,\r\n private router: Router,\r\n private modalService: NgbModal,\r\n private loadingService: LoadingService,\r\n private facetService: FeatureFacetService,\r\n private authService: AuthService\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this.loading = true;\r\n this.userContext.getStore(new Program()).values\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(data => {\r\n this.programList = [];\r\n data.forEach(program => {\r\n this.programList.push(\r\n {\r\n Id: program.Id,\r\n Name: program.Name,\r\n });\r\n });\r\n this.loading = false;\r\n });\r\n\r\n this.tenantContext.getStore(new Region()).values\r\n .pipe(takeUntil(this.ngUnsubscribe))\r\n .subscribe(data => {\r\n this.regions = data;\r\n });\r\n\r\n this.facetService.getAllFacets().subscribe(allFacets => {\r\n\r\n if (FeatureFacetService.checkIfFacetExists(TenantPermissions.Flag_Work_Accounts_ExplicitProgramAccess,\r\n allFacets, 'work', this.authService.getAreaKey())) {\r\n this.programRequired = true;\r\n }\r\n });\r\n }\r\n\r\n createNewAccount(): void {\r\n if (this.loading) {\r\n return;\r\n }\r\n const modalRef = this.modalService.open(AccountCreationModalComponent, {\r\n ariaLabelledBy: 'modal-basic-title',\r\n backdrop: \"static\",\r\n size: 'lg'\r\n });\r\n const modalComponent = modalRef.componentInstance as AccountCreationModalComponent;\r\n const self = this;\r\n\r\n modalComponent.programs = this.programList;\r\n modalComponent.regions = this.regions;\r\n modalComponent.programRequired = this.programRequired\r\n\r\n modalRef.componentInstance.onCreateAccount.subscribe((result: AccountCreationModalResult) => {\r\n if (!result) {\r\n return;\r\n }\r\n self.loading = true;\r\n\r\n const account = new Account();\r\n account.Name = result.accountName;\r\n account.Code = result.accountCode;\r\n account.Dba = result.dba;\r\n account.Phone = result.phone;\r\n account.Country = result.country;\r\n account.Address1 = result.address1;\r\n account.Address2 = result.address2;\r\n account.Address3 = result.address3;\r\n account.City = result.city;\r\n account.State = result.state;\r\n account.Zip = result.zip;\r\n\r\n if (result.programId != null) {\r\n const programEdge = new ProgramWritesAccount();\r\n const program = this.userContext.get(ModelUtils.createDomainId(new Program(), result.programId)) as Program;\r\n programEdge.setIsWrittenFor(program);\r\n account.setIsWrittenFor([programEdge]);\r\n }\r\n\r\n const createAccountDTO: CreateAccountDTO = {\r\n Account: account.serialize(),\r\n ProducerId: result.producerId,\r\n };\r\n\r\n this.loadingService.loading.next(true);\r\n this.service.createAccount(createAccountDTO).subscribe({\r\n next: (response: any) => {\r\n modalRef.close();\r\n self.loadingService.loading.next(false);\r\n self.loading = false;\r\n\r\n const responseData = response.Content;\r\n const accountId = responseData[\"Id\"];\r\n\r\n if (!responseData[\"Runs\"]) {\r\n self.router.navigate(['Work', 'Account', accountId], { queryParams: { startworkflow: result.startWorkflow ? true : null } });\r\n } else {\r\n const workflowId = responseData[\"Runs\"][0][\"@Relationship\"].Id;\r\n self.router.navigate(['Work', 'Account', accountId, 'Workflow', workflowId]);\r\n }\r\n },\r\n error: (error) => {\r\n modalRef.componentInstance.errorMessage = BaseService.convertCommonErrors(error?.error?.Errors[0]);\r\n\r\n //Error occurred - set loading to false\r\n this.loadingService.loading.next(false);\r\n this.loading = false;\r\n }\r\n });\r\n }, (reason) => {\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.ngUnsubscribe.next(true);\r\n this.ngUnsubscribe.complete();\r\n }\r\n};\r\n\r\nexport interface AvailableProgramsViewModel {\r\n Id: string;\r\n Name: string;\r\n}\r\n\r\nexport interface AvailableProducersViewModel {\r\n Id: string;\r\n Name: string;\r\n Address1: string;\r\n Address2: string;\r\n Address3: string;\r\n City: string;\r\n State: string;\r\n Zip: string;\r\n Code: string;\r\n NameCodeCombo: string;\r\n}\r\n\r\nexport interface CreateAccountDTO {\r\n Account: IAccount;\r\n ProducerId?: string;\r\n AgentId?: string;\r\n Program?: ProgramDTO;\r\n Workflow?: WorkflowDTO;\r\n}\r\n\r\ninterface WorkflowDTO {\r\n ProgramId: string;\r\n WorkflowCreatedFromId: string;\r\n ProposedEffectiveDate: ContractDate;\r\n Notes: string;\r\n}\r\ninterface ProgramDTO {\r\n ProgramId: string;\r\n ProposedEffectiveDate: ContractDate;\r\n}","\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n","import { Component, DestroyRef, ElementRef } from '@angular/core';\r\nimport { ViewEncapsulation } from '@angular/core';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { Router, Event, NavigationStart, NavigationEnd, NavigationCancel, NavigationError, Navigation, NavigationExtras } from '@angular/router';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { DragDropService } from '@Services/drag-drop-service';\r\nimport { AlertsHub } from '@Services/Hubs/AlertsHub';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\n\r\n@Component({\r\n selector: 'work',\r\n templateUrl: './work.component.html',\r\n styleUrls: ['./work.component.scss'],\r\n encapsulation: ViewEncapsulation.None\r\n})\r\n\r\nexport class WorkComponent {\r\n public loading = false;\r\n\r\n constructor(public authService: AuthService,\r\n private router: Router,\r\n private loadingService: LoadingService,\r\n private elementRef: ElementRef,\r\n private dragDropService: DragDropService,\r\n private alertsHub: AlertsHub,\r\n private destroyRef: DestroyRef) {\r\n this.authService.spaName = 'work';\r\n this.loadingService.loading\r\n .pipe(takeUntilDestroyed(destroyRef))\r\n .subscribe(l => {\r\n this.loading = l;\r\n });\r\n\r\n this.router.events\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe((event: Event) => {\r\n\r\n const extras: NavigationExtras = this.router.getCurrentNavigation()?.extras;\r\n const shouldSkipLoading = extras?.info?.[\"skipLoading\"] ?? false;\r\n\r\n if (shouldSkipLoading)\r\n return;\r\n\r\n switch (true) {\r\n case event instanceof NavigationStart: {\r\n this.loadingService.loading.next(true);\r\n break;\r\n }\r\n\r\n case event instanceof NavigationEnd:\r\n case event instanceof NavigationCancel:\r\n case event instanceof NavigationError: {\r\n this.loadingService.loading.next(false);\r\n break;\r\n }\r\n default: {\r\n break;\r\n }\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.alertsHub.startConnection();\r\n }\r\n\r\n onDragOver(event: DragEvent): void {\r\n event.stopPropagation();\r\n event.preventDefault();\r\n this.dragDropService.setDragging(true);\r\n }\r\n\r\n onDragLeave(event: DragEvent): void {\r\n if (!event.relatedTarget || !this.elementRef.nativeElement.contains(event.relatedTarget)) {\r\n this.dragDropService.setDragging(false);\r\n }\r\n }\r\n};\r\n","export const environment = {\r\n production: true,\r\n \"env\": \"production\",\r\n \"baseUrl\": \"https://instec-underwriting.com\",\r\n \"applicationEndpoint\": \"https://api.instec-underwriting.com\",\r\n \"syncHost\": \"https://sync.instec-underwriting.com\",\r\n \"documentationUrl\": \"https://api-portal.instec-underwriting.com\",\r\n \"access_token\":\"access_token\",\r\n \"applicationInsights\": \"InstrumentationKey=92e7a367-880b-46ed-b250-d78cfcc27354;IngestionEndpoint=https://eastus-2.in.applicationinsights.azure.com/;LiveEndpoint=https://eastus.livediagnostics.monitor.azure.com/\",\r\n \"auth\": {\r\n \"domain\": \"instec.auth0.com\",\r\n \"clientId\": \"ZLXIcYv2sG94vFkrmn8bmY4Dv7wCpFqD\",\r\n },\r\n \"qlik\": {\r\n \"authUrl\": \"https://prod1.insuritybi.insurity.com/sure-uw/hub/\",\r\n \"reportsUrl\": \"https://prod1.insuritybi.insurity.com/sure-uw/sense/app/d9320213-20e5-45e9-8ea5-6ffe486ce75b/sheet/681cc4bf-2fea-402e-af05-3e49d7b19ca6\"\r\n },\r\n \"ikcDocumentationUrl\": \"https://docs.insurity.com/category/sureunderwriting\",\r\n \"ikcIntegrationDocumentationUrl\": \"https://docs.insurity.com/bundle/SureUnderwritingUserHelp/page/webhooks.html\",\r\n \"requireAPIM\": true\r\n};","
\r\n

Please choose a tenant to proceed:

\r\n
\r\n \r\n
\r\n Please select a Tenant\r\n
\r\n
\r\n \r\n \r\n
\r\n\r\n

\r\n You do not have access to any tenants. Please contact an administrator to add you to a tenant.\r\n

\r\n Back to login\r\n
","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\nimport { AuthService } from '@Services/auth-service';\r\n\r\n@Component({\r\n selector: 'sm-select-tenant',\r\n templateUrl: './sm-select-tenant.component.html',\r\n})\r\nexport class SmSelectTenantComponent {\r\n @Input() selectedTenant: string;\r\n\r\n @Output() onTenantSelect: EventEmitter = new EventEmitter();\r\n @Output() onChangeUser: EventEmitter = new EventEmitter();\r\n\r\n constructor(private authService: AuthService) { }\r\n\r\n public get tenants(): string[] {\r\n return this.authService.getAvailableTenants();\r\n }\r\n};","
\r\n
\r\n
\r\n
\r\n Sure Underwriting Workbench\r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n
Login failed: {{ errorMessage }}
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n Sure Underwriting Workbench is a product of \r\n \"Insurity,\r\n \r\n
\r\n \r\n
\r\n
\r\n
","import { Component, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent {\r\n\r\n @Input() selectTenants = false;\r\n @Input() selectedTenant: string;\r\n @Input() tenants: string[] = [];\r\n @Input() loading: boolean;\r\n @Input() errorMessage: string;\r\n\r\n @Output() onLoginClick: EventEmitter = new EventEmitter();\r\n @Output() onTenantSelect: EventEmitter = new EventEmitter();\r\n @Output() onChangeUser: EventEmitter = new EventEmitter();\r\n\r\n public changeForm(form_name: string) {\r\n this.loading = false;\r\n }\r\n\r\n public changeUser() {\r\n this.onChangeUser.emit();\r\n }\r\n\r\n public tenantSelect(tenantKey: string) {\r\n this.loading = true;\r\n this.onTenantSelect.emit(tenantKey);\r\n }\r\n}","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { AdminComponent } from '@Admin/admin.component';\r\nimport { ConfComponent } from '@Conf/conf.component';\r\nimport { MgmtComponent } from './Views/Mgmt/mgmt.component';\r\nimport { WorkComponent } from '@Work/work.component';\r\nimport { LoginContainerComponent } from '@Mktg/Login/login-container.component';\r\nimport { RegisterComponent } from '@Mktg/Register/register.component';\r\n\r\nconst routes: Routes = [\r\n { \r\n // Default to the Mktg (Login) view\r\n path: '', \r\n component: LoginContainerComponent,\r\n },\r\n {\r\n path: 'Login', \r\n redirectTo: '', \r\n pathMatch: 'full' \r\n },\r\n {\r\n path: 'Register', \r\n component: RegisterComponent\r\n },\r\n {\r\n path: 'Work',\r\n component: WorkComponent,\r\n loadChildren: () => import('./Views/Work/work.module').then(m => m.WorkModule) \r\n },\r\n {\r\n path: 'Conf',\r\n component: ConfComponent,\r\n loadChildren: () => import('./Views/Conf/conf.module').then(m => m.ConfModule) \r\n },\r\n {\r\n path: 'Admin',\r\n component: AdminComponent,\r\n loadChildren: () => import('./Views/Admin/admin.module').then(m => m.AdminModule) \r\n },\r\n {\r\n path: 'Mgmt',\r\n component: MgmtComponent,\r\n loadChildren: () => import('./Views/Mgmt/mgmt.module').then(m => m.MgmtModule) \r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { paramsInheritanceStrategy: 'always' })],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport _ from 'lodash';\r\nimport { IServiceResponse } from '@Core/Lib/model';\r\nimport { environment } from 'src/environments/environment';\r\n\r\n@Component({\r\n selector: 'login-container',\r\n templateUrl: './login-container.component.html',\r\n})\r\nexport class LoginContainerComponent implements OnInit {\r\n\r\n tenantClaim = 'http://instec-underwriting.com/identity/claims/tenant';\r\n selectTenants = false;\r\n selectedTenant: string;\r\n tenants: string[] = [];\r\n\r\n recover_password_invalid: boolean;\r\n public errorMessage: string;\r\n\r\n public isAuthenticated: boolean;\r\n\r\n loading: boolean;\r\n\r\n constructor(private auth: AuthService) { }\r\n\r\n ngOnInit(): void {\r\n this.recover_password_invalid = false;\r\n this.loading = false;\r\n\r\n this.auth.idTokenClaims$.subscribe((bearerToken) => {\r\n if (bearerToken) {\r\n this.generateClaims(bearerToken.__raw);\r\n this.isAuthenticated = true;\r\n } else {\r\n this.isAuthenticated = false;\r\n }\r\n });\r\n\r\n this.auth.error$.subscribe(err => {\r\n this.errorMessage = err.message;\r\n })\r\n }\r\n\r\n changeUser() {\r\n // Clear cookies so they can change credentials.\r\n this.auth.logout(true);\r\n }\r\n\r\n generateClaims(bearerToken: string) {\r\n this.loading = true;\r\n this.errorMessage = null;\r\n\r\n this.auth.generateClaims(bearerToken)\r\n .subscribe({\r\n next: response => {\r\n this.checkTenants(response);\r\n }, \r\n error: (error: HttpErrorResponse) => {\r\n this.loading = false;\r\n let body = error.error as IServiceResponse;\r\n if (error.status === 429) { // too many requests\r\n this.errorMessage = \"The system is currently busy\";\r\n }\r\n else if (error.status === 403) {\r\n this.errorMessage = \"You no longer have access. Contact your administrator.\";\r\n\r\n } else {\r\n this.errorMessage = \"Unknown Error\";\r\n }\r\n }\r\n });\r\n }\r\n\r\n checkTenants(response: any) {\r\n if (response.Content['admin']) {\r\n window.location.replace(environment.baseUrl + \"/Admin\");\r\n return;\r\n }\r\n else if (response.Content['tenantKey']) {\r\n window.location.replace(environment.baseUrl + \"/Work\");\r\n return;\r\n }\r\n else if (response.Content['tenants']) {\r\n this.tenants = response.Content['tenants'];\r\n if (this.tenants.length === 1) {\r\n this.tenantSelect(this.tenants[0])\r\n return;\r\n }\r\n this.selectedTenant = null;\r\n this.selectTenants = true;\r\n this.loading = false;\r\n return;\r\n }\r\n }\r\n\r\n tenantSelect(tenantKey: string) {\r\n this.loading = true;\r\n this.auth.selectTenant(tenantKey).subscribe({\r\n next: () => {\r\n window.location.replace(environment.baseUrl + \"/Work\");\r\n }, \r\n error: () => {\r\n this.loading = false;\r\n }\r\n });\r\n }\r\n\r\n onLoginClick() {\r\n this.auth.login();\r\n }\r\n};","\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport _ from 'lodash';\r\n\r\n@Component({\r\n selector: 'register',\r\n templateUrl: './register.component.html'\r\n})\r\nexport class RegisterComponent implements OnInit {\r\n constructor(\r\n public auth: AuthService,\r\n public router: Router\r\n\r\n ) { }\r\n\r\n // The purpose of this page is purely a place to send users who have received an invite link\r\n // We will automatically redirect to the Auth0 Login page\r\n\r\n ngOnInit() {\r\n this.auth.login();\r\n }\r\n}","
\r\n
\r\n Redirecting you to the Auth0 page for Sign Up...\r\n
\r\n
","\r\n \r\n \r\n
{{ alert.message }}
\r\n \r\n
\r\n
","import { Component, DestroyRef, OnInit } from '@angular/core';\r\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\r\nimport { GlobalMessages, AppMessage } from '@Services/global-messages';\r\n\r\n@Component({\r\n selector: 'sm-global-alerts',\r\n templateUrl: './sm-global-alerts.component.html',\r\n styleUrls: ['./sm-global-alerts.component.scss']\r\n})\r\nexport class SmGlobalAlertsComponent implements OnInit {\r\n\r\n messages: AppMessage[];\r\n alerts: AppMessage[] = [];\r\n\r\n constructor(private service: GlobalMessages,\r\n private destroyRef: DestroyRef) { }\r\n\r\n ngOnInit() {\r\n this.service.values\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(\r\n messages => this.messages = messages\r\n );\r\n \r\n this.service.last\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(\r\n last => {\r\n if (last)\r\n this.addMessage(last)\r\n }\r\n );\r\n }\r\n\r\n addMessage(message: AppMessage) {\r\n var self = this;\r\n this.alerts.push(message);\r\n if (message.alertDuration) {\r\n setTimeout(() => {\r\n self.closeAlert(message);\r\n }, message.alertDuration);\r\n }\r\n }\r\n\r\n closeAlert(alert: AppMessage) {\r\n const index: number = this.alerts?.indexOf(alert);\r\n this.alerts?.splice(index, 1);\r\n }\r\n\r\n performAction(alert: AppMessage) {\r\n alert?.action?.action();\r\n this.closeAlert(alert);\r\n }\r\n\r\n}\r\n","\r\n\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const slideOut = trigger('slideOut', [\r\n state('*', style({\r\n transform: 'translateX(0) scale(1)',\r\n opacity: 1,\r\n })),\r\n state('void', style({\r\n transform: 'translateX(100%) scale(.1)',\r\n opacity: 0,\r\n })),\r\n transition('* => void', animate('.2s ease')),\r\n ]);","\r\n\r\nimport { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const slideUp = trigger('slideUp', [\r\n state('*', style({\r\n transform: 'translateY(0) scale(1) rotateY(0)',\r\n opacity: 1,\r\n filter: 'blur(0) saturate(100%)'\r\n })),\r\n state('void', style({\r\n transform: 'translateY(50px) scale(1) rotateY(0)',\r\n opacity: 0,\r\n filter: 'blur(2px) saturate(50%)'\r\n })),\r\n transition('void => *', animate('.4s ease-in-out')),\r\n]);","import { animate, animateChild, query, transition, trigger } from '@angular/animations';\r\n\r\nexport const triggerChildAnimation = trigger('triggerChildAnimation', [\r\n transition(':enter, :leave', [animate('0s'), query('*', [animateChild()])]),\r\n]);","import { animate, state, style, transition, trigger } from '@angular/animations';\r\n\r\nexport const verticalCollapseAnimation = trigger('verticalCollapse', [\r\n state('*', style({\r\n height: '*',\r\n })),\r\n state('void', style({\r\n height: '0',\r\n })),\r\n transition('* => void', animate('.3s .3s ease')),\r\n]);","
\r\n
\r\n \r\n \r\n
\r\n
\r\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { UnityToast, UnityToastClickLinkEvent } from './unity-toast.component';\r\nimport { slideOut } from '@Shared/Animations/slide-out.animation';\r\nimport { slideUp } from '@Shared/Animations/slide-up.animation';\r\nimport { triggerChildAnimation } from '@Shared/Animations/trigger-child.animation';\r\nimport { verticalCollapseAnimation } from '@Shared/Animations/vertical-collapse.animation';\r\n\r\n@Component({\r\n selector: 'unity-toasts',\r\n templateUrl: './unity-toasts.component.html',\r\n styleUrls: ['./unity-toasts.component.scss'],\r\n animations: [verticalCollapseAnimation, triggerChildAnimation, slideUp, slideOut]\r\n})\r\n\r\nexport class UnityToastsComponent {\r\n @Input() toasts: UnityToast[] = [];\r\n\r\n @Output() onClickLink: EventEmitter = new EventEmitter();\r\n \r\n dismiss(e: Event) {\r\n const target = e.target as HTMLElement;\r\n if (target) {\r\n const unitySnack = target.closest('.unity-toast');\r\n if (unitySnack) {\r\n unitySnack.classList.add('fadeout');\r\n Promise.all(unitySnack.getAnimations().map((animation) => animation.finished)).then(\r\n () => unitySnack.remove()\r\n );\r\n }\r\n }\r\n }\r\n}","\r\n \r\n","import { ChangeDetectorRef, Component, DestroyRef, OnInit } from '@angular/core';\r\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\r\nimport { NotificationService } from '@Services/notification-service';\r\nimport { UnityToast, UnityToastClickLinkEvent, UnityToastSubtitle, UnityToastType } from '../unity-toasts/unity-toast.component';\r\nimport { Notification, UserNotificationCenter } from '@Core/CodeGen/Models/configuration.models';\r\nimport { UserContext } from '@Core/Lib/Contexts/user-context';\r\nimport { RouteEntryItem, RouteUtils } from '@Core/Lib/Utils/route-utils';\r\nimport _ from 'lodash';\r\nimport { Router } from '@angular/router';\r\nimport { GuidReplacerPipe } from '@Work/Pipes/guid-replacer.pipe';\r\nimport { TenantAssignableService } from '@Services/tenant-assignable-service';\r\nimport { TenantTenantService } from '@Services/tenant-tenant-service';\r\nimport { AsyncPipe } from '@angular/common';\r\nimport { SmNomenclaturePipe } from '@Shared/Pipes/sm-nomenclature.pipe';\r\nimport { TenantContext } from '@Core/Lib/Contexts/tenant-context';\r\nimport { TenantService } from '@Core/CodeGen/Services/tenant.service';\r\nimport { AccountsService } from '@Core/CodeGen/Services/accounts.service';\r\nimport { NgxPermissionsService } from 'ngx-permissions';\r\nimport { TenantPermissions } from '@Core/CodeGen/tenant-permissions.enum';\r\n\r\n@Component({\r\n selector: 'sm-toast-list',\r\n templateUrl: './sm-toast-list.component.html',\r\n styleUrls: ['./sm-toast-list.component.scss']\r\n})\r\nexport class SmToastListComponent implements OnInit {\r\n public notifications: UnityToast[] = [];\r\n public showNotifications: boolean = false;\r\n private hasAccessToConfigure: boolean = false;\r\n\r\n private nomenclaturePipe: SmNomenclaturePipe;\r\n private guidReplacerPipe: GuidReplacerPipe;\r\n private asyncPipe: AsyncPipe;\r\n\r\n constructor(\r\n private service: NotificationService, \r\n private userContext: UserContext,\r\n private router: Router,\r\n private cdRef: ChangeDetectorRef,\r\n private assignableService: TenantAssignableService,\r\n private tenantTenantService: TenantTenantService,\r\n private tenantContext: TenantContext,\r\n private tenantService: TenantService,\r\n private accountsService: AccountsService,\r\n private permissionsService: NgxPermissionsService,\r\n private destroyRef: DestroyRef) \r\n { }\r\n\r\n ngOnInit() {\r\n this.asyncPipe = new AsyncPipe(this.cdRef);\r\n this.guidReplacerPipe = new GuidReplacerPipe(this.tenantContext, this.assignableService, this.tenantTenantService);\r\n this.nomenclaturePipe = new SmNomenclaturePipe(this.tenantContext);\r\n\r\n this.permissionsService.hasPermission([\r\n TenantPermissions.SystemAccess,\r\n TenantPermissions.Tenant,\r\n TenantPermissions.Programs,\r\n ]).then((result) => {\r\n this.hasAccessToConfigure = result;\r\n })\r\n\r\n this.userContext.getStore(new UserNotificationCenter()).values\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(data => {\r\n if (!data?.length)\r\n return;\r\n\r\n var userNotificationCenter = data[0] as UserNotificationCenter;\r\n // Only show if we want to enable notifications.\r\n // Also, check if we are already showing notifications so we don't duplicate\r\n if (userNotificationCenter.EnableInAppNotificationPopups && !this.showNotifications)\r\n this.init();\r\n });\r\n }\r\n\r\n init() {\r\n this.showNotifications = true;\r\n\r\n this.service.last\r\n .pipe(takeUntilDestroyed(this.destroyRef))\r\n .subscribe(\r\n last => {\r\n if (last)\r\n this.addNotification(last)\r\n }\r\n );\r\n }\r\n\r\n addNotification(notification: Notification) {\r\n var self = this;\r\n\r\n var toast = this.convertNotificationToUnityToast(notification)\r\n\r\n this.notifications.push(toast);\r\n this.cdRef.detectChanges();\r\n setTimeout(() => {\r\n self.closeAlert(toast);\r\n }, 5000);\r\n }\r\n\r\n onClickLink(e: UnityToastClickLinkEvent) {\r\n if (!e.Subtitle.IsLink)\r\n return;\r\n\r\n var notification = _.find(this.service.values.value, n => n.Id == e.Id);\r\n if (notification?.Domain == 'Area')\r\n this.accountsService.MarkNotificationsAsRead([e.Id], this.userContext);\r\n else if (notification?.Domain == 'Configuration')\r\n this.tenantService.MarkNotificationsAsRead([e.Id], this.userContext);\r\n\r\n var entries: RouteEntryItem[] = _.map(Object.getOwnPropertyNames(e.Subtitle.LinkIds), entityType => {\r\n var entityId = e.Subtitle.LinkIds[entityType];\r\n var entry: RouteEntryItem = {\r\n Type: entityType,\r\n Id: entityId\r\n };\r\n return entry;\r\n });\r\n var url = RouteUtils.BuildEntityRoute(e.Subtitle.Type, entries)\r\n this.router.navigate([url]);\r\n }\r\n\r\n closeAlert(notification: UnityToast) {\r\n const index: number = this.notifications.indexOf(notification);\r\n if (index != -1)\r\n this.notifications.splice(index, 1);\r\n }\r\n\r\n performAction(notification: UnityToast) {\r\n this.closeAlert(notification);\r\n }\r\n\r\n private convertNotificationToUnityToast(notification: Notification) {\r\n var lastSubtitleNum = _.max(_.map(notification.Subtitles, s => s.OrderNum));\r\n\r\n var programId = notification.ContextIds ? notification.ContextIds[\"Program\"] : null;\r\n\r\n var subtitles = _.map(notification.Subtitles, s => {\r\n var noLink = notification.Domain == 'Configuration' && !this.hasAccessToConfigure;\r\n\r\n var subtitle: UnityToastSubtitle = {\r\n Type: s.EntityType,\r\n DisplayType: this.asyncPipe.transform(this.nomenclaturePipe.transform(s.EntityType, programId)),\r\n Text: s.EntityText,\r\n IsLink: !noLink && lastSubtitleNum == s.OrderNum\r\n };\r\n\r\n if (subtitle.IsLink)\r\n subtitle.LinkIds = notification.ContextIds;\r\n \r\n return subtitle;\r\n });\r\n\r\n return new UnityToast(\r\n notification.Id,\r\n UnityToastType.Announcement, \r\n this.asyncPipe.transform(this.guidReplacerPipe.transform(notification.Message)),\r\n subtitles,\r\n notification.Description\r\n );\r\n }\r\n}","import { Component } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { NgbTooltipConfig } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss'],\r\n providers: [NgbTooltipConfig]\r\n})\r\nexport class AppComponent {\r\n public loading = false;\r\n\r\n constructor(public authService: AuthService,\r\n private router: Router,\r\n private tooltipConfig: NgbTooltipConfig) {\r\n tooltipConfig.openDelay = 1000;\r\n tooltipConfig.container = 'body';\r\n }\r\n}\r\n","\r\n\r\n\r\n","import { ErrorHandler, Injectable } from \"@angular/core\";\r\nimport { LoggingService } from \"./logging-service\";\r\n\r\n@Injectable()\r\nexport class ErrorHandlerService extends ErrorHandler {\r\n\r\n constructor(private loggingService: LoggingService) {\r\n super();\r\n }\r\n\r\n handleError(error: Error) {\r\n this.loggingService.logException(error); // Manually log exception\r\n }\r\n}","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport { ɵAnimationGroupPlayer, NoopAnimationPlayer, AUTO_STYLE, ɵPRE_STYLE, sequence, AnimationMetadataType, style } from '@angular/animations';\nimport * as i0 from '@angular/core';\nimport { ɵRuntimeError, Injectable } from '@angular/core';\n\nconst LINE_START = '\\n - ';\nfunction invalidTimingValue(exp) {\n return new ɵRuntimeError(3000 /* RuntimeErrorCode.INVALID_TIMING_VALUE */, ngDevMode && `The provided timing value \"${exp}\" is invalid.`);\n}\nfunction negativeStepValue() {\n return new ɵRuntimeError(3100 /* RuntimeErrorCode.NEGATIVE_STEP_VALUE */, ngDevMode && 'Duration values below 0 are not allowed for this animation step.');\n}\nfunction negativeDelayValue() {\n return new ɵRuntimeError(3101 /* RuntimeErrorCode.NEGATIVE_DELAY_VALUE */, ngDevMode && 'Delay values below 0 are not allowed for this animation step.');\n}\nfunction invalidStyleParams(varName) {\n return new ɵRuntimeError(3001 /* RuntimeErrorCode.INVALID_STYLE_PARAMS */, ngDevMode &&\n `Unable to resolve the local animation param ${varName} in the given list of values`);\n}\nfunction invalidParamValue(varName) {\n return new ɵRuntimeError(3003 /* RuntimeErrorCode.INVALID_PARAM_VALUE */, ngDevMode && `Please provide a value for the animation param ${varName}`);\n}\nfunction invalidNodeType(nodeType) {\n return new ɵRuntimeError(3004 /* RuntimeErrorCode.INVALID_NODE_TYPE */, ngDevMode && `Unable to resolve animation metadata node #${nodeType}`);\n}\nfunction invalidCssUnitValue(userProvidedProperty, value) {\n return new ɵRuntimeError(3005 /* RuntimeErrorCode.INVALID_CSS_UNIT_VALUE */, ngDevMode && `Please provide a CSS unit value for ${userProvidedProperty}:${value}`);\n}\nfunction invalidTrigger() {\n return new ɵRuntimeError(3006 /* RuntimeErrorCode.INVALID_TRIGGER */, ngDevMode &&\n \"animation triggers cannot be prefixed with an `@` sign (e.g. trigger('@foo', [...]))\");\n}\nfunction invalidDefinition() {\n return new ɵRuntimeError(3007 /* RuntimeErrorCode.INVALID_DEFINITION */, ngDevMode && 'only state() and transition() definitions can sit inside of a trigger()');\n}\nfunction invalidState(metadataName, missingSubs) {\n return new ɵRuntimeError(3008 /* RuntimeErrorCode.INVALID_STATE */, ngDevMode &&\n `state(\"${metadataName}\", ...) must define default values for all the following style substitutions: ${missingSubs.join(', ')}`);\n}\nfunction invalidStyleValue(value) {\n return new ɵRuntimeError(3002 /* RuntimeErrorCode.INVALID_STYLE_VALUE */, ngDevMode && `The provided style string value ${value} is not allowed.`);\n}\nfunction invalidProperty(prop) {\n return new ɵRuntimeError(3009 /* RuntimeErrorCode.INVALID_PROPERTY */, ngDevMode &&\n `The provided animation property \"${prop}\" is not a supported CSS property for animations`);\n}\nfunction invalidParallelAnimation(prop, firstStart, firstEnd, secondStart, secondEnd) {\n return new ɵRuntimeError(3010 /* RuntimeErrorCode.INVALID_PARALLEL_ANIMATION */, ngDevMode &&\n `The CSS property \"${prop}\" that exists between the times of \"${firstStart}ms\" and \"${firstEnd}ms\" is also being animated in a parallel animation between the times of \"${secondStart}ms\" and \"${secondEnd}ms\"`);\n}\nfunction invalidKeyframes() {\n return new ɵRuntimeError(3011 /* RuntimeErrorCode.INVALID_KEYFRAMES */, ngDevMode && `keyframes() must be placed inside of a call to animate()`);\n}\nfunction invalidOffset() {\n return new ɵRuntimeError(3012 /* RuntimeErrorCode.INVALID_OFFSET */, ngDevMode && `Please ensure that all keyframe offsets are between 0 and 1`);\n}\nfunction keyframeOffsetsOutOfOrder() {\n return new ɵRuntimeError(3200 /* RuntimeErrorCode.KEYFRAME_OFFSETS_OUT_OF_ORDER */, ngDevMode && `Please ensure that all keyframe offsets are in order`);\n}\nfunction keyframesMissingOffsets() {\n return new ɵRuntimeError(3202 /* RuntimeErrorCode.KEYFRAMES_MISSING_OFFSETS */, ngDevMode && `Not all style() steps within the declared keyframes() contain offsets`);\n}\nfunction invalidStagger() {\n return new ɵRuntimeError(3013 /* RuntimeErrorCode.INVALID_STAGGER */, ngDevMode && `stagger() can only be used inside of query()`);\n}\nfunction invalidQuery(selector) {\n return new ɵRuntimeError(3014 /* RuntimeErrorCode.INVALID_QUERY */, ngDevMode &&\n `\\`query(\"${selector}\")\\` returned zero elements. (Use \\`query(\"${selector}\", { optional: true })\\` if you wish to allow this.)`);\n}\nfunction invalidExpression(expr) {\n return new ɵRuntimeError(3015 /* RuntimeErrorCode.INVALID_EXPRESSION */, ngDevMode && `The provided transition expression \"${expr}\" is not supported`);\n}\nfunction invalidTransitionAlias(alias) {\n return new ɵRuntimeError(3016 /* RuntimeErrorCode.INVALID_TRANSITION_ALIAS */, ngDevMode && `The transition alias value \"${alias}\" is not supported`);\n}\nfunction validationFailed(errors) {\n return new ɵRuntimeError(3500 /* RuntimeErrorCode.VALIDATION_FAILED */, ngDevMode && `animation validation failed:\\n${errors.map((err) => err.message).join('\\n')}`);\n}\nfunction buildingFailed(errors) {\n return new ɵRuntimeError(3501 /* RuntimeErrorCode.BUILDING_FAILED */, ngDevMode && `animation building failed:\\n${errors.map((err) => err.message).join('\\n')}`);\n}\nfunction triggerBuildFailed(name, errors) {\n return new ɵRuntimeError(3404 /* RuntimeErrorCode.TRIGGER_BUILD_FAILED */, ngDevMode &&\n `The animation trigger \"${name}\" has failed to build due to the following errors:\\n - ${errors\n .map((err) => err.message)\n .join('\\n - ')}`);\n}\nfunction animationFailed(errors) {\n return new ɵRuntimeError(3502 /* RuntimeErrorCode.ANIMATION_FAILED */, ngDevMode &&\n `Unable to animate due to the following errors:${LINE_START}${errors\n .map((err) => err.message)\n .join(LINE_START)}`);\n}\nfunction registerFailed(errors) {\n return new ɵRuntimeError(3503 /* RuntimeErrorCode.REGISTRATION_FAILED */, ngDevMode &&\n `Unable to build the animation due to the following errors: ${errors\n .map((err) => err.message)\n .join('\\n')}`);\n}\nfunction missingOrDestroyedAnimation() {\n return new ɵRuntimeError(3300 /* RuntimeErrorCode.MISSING_OR_DESTROYED_ANIMATION */, ngDevMode && \"The requested animation doesn't exist or has already been destroyed\");\n}\nfunction createAnimationFailed(errors) {\n return new ɵRuntimeError(3504 /* RuntimeErrorCode.CREATE_ANIMATION_FAILED */, ngDevMode &&\n `Unable to create the animation due to the following errors:${errors\n .map((err) => err.message)\n .join('\\n')}`);\n}\nfunction missingPlayer(id) {\n return new ɵRuntimeError(3301 /* RuntimeErrorCode.MISSING_PLAYER */, ngDevMode && `Unable to find the timeline player referenced by ${id}`);\n}\nfunction missingTrigger(phase, name) {\n return new ɵRuntimeError(3302 /* RuntimeErrorCode.MISSING_TRIGGER */, ngDevMode &&\n `Unable to listen on the animation trigger event \"${phase}\" because the animation trigger \"${name}\" doesn\\'t exist!`);\n}\nfunction missingEvent(name) {\n return new ɵRuntimeError(3303 /* RuntimeErrorCode.MISSING_EVENT */, ngDevMode &&\n `Unable to listen on the animation trigger \"${name}\" because the provided event is undefined!`);\n}\nfunction unsupportedTriggerEvent(phase, name) {\n return new ɵRuntimeError(3400 /* RuntimeErrorCode.UNSUPPORTED_TRIGGER_EVENT */, ngDevMode &&\n `The provided animation trigger event \"${phase}\" for the animation trigger \"${name}\" is not supported!`);\n}\nfunction unregisteredTrigger(name) {\n return new ɵRuntimeError(3401 /* RuntimeErrorCode.UNREGISTERED_TRIGGER */, ngDevMode && `The provided animation trigger \"${name}\" has not been registered!`);\n}\nfunction triggerTransitionsFailed(errors) {\n return new ɵRuntimeError(3402 /* RuntimeErrorCode.TRIGGER_TRANSITIONS_FAILED */, ngDevMode &&\n `Unable to process animations due to the following failed trigger transitions\\n ${errors\n .map((err) => err.message)\n .join('\\n')}`);\n}\nfunction triggerParsingFailed(name, errors) {\n return new ɵRuntimeError(3403 /* RuntimeErrorCode.TRIGGER_PARSING_FAILED */, ngDevMode &&\n `Animation parsing for the ${name} trigger have failed:${LINE_START}${errors\n .map((err) => err.message)\n .join(LINE_START)}`);\n}\nfunction transitionFailed(name, errors) {\n return new ɵRuntimeError(3505 /* RuntimeErrorCode.TRANSITION_FAILED */, ngDevMode && `@${name} has failed due to:\\n ${errors.map((err) => err.message).join('\\n- ')}`);\n}\n\n/**\n * Set of all animatable CSS properties\n *\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties\n */\nconst ANIMATABLE_PROP_SET = new Set([\n '-moz-outline-radius',\n '-moz-outline-radius-bottomleft',\n '-moz-outline-radius-bottomright',\n '-moz-outline-radius-topleft',\n '-moz-outline-radius-topright',\n '-ms-grid-columns',\n '-ms-grid-rows',\n '-webkit-line-clamp',\n '-webkit-text-fill-color',\n '-webkit-text-stroke',\n '-webkit-text-stroke-color',\n 'accent-color',\n 'all',\n 'backdrop-filter',\n 'background',\n 'background-color',\n 'background-position',\n 'background-size',\n 'block-size',\n 'border',\n 'border-block-end',\n 'border-block-end-color',\n 'border-block-end-width',\n 'border-block-start',\n 'border-block-start-color',\n 'border-block-start-width',\n 'border-bottom',\n 'border-bottom-color',\n 'border-bottom-left-radius',\n 'border-bottom-right-radius',\n 'border-bottom-width',\n 'border-color',\n 'border-end-end-radius',\n 'border-end-start-radius',\n 'border-image-outset',\n 'border-image-slice',\n 'border-image-width',\n 'border-inline-end',\n 'border-inline-end-color',\n 'border-inline-end-width',\n 'border-inline-start',\n 'border-inline-start-color',\n 'border-inline-start-width',\n 'border-left',\n 'border-left-color',\n 'border-left-width',\n 'border-radius',\n 'border-right',\n 'border-right-color',\n 'border-right-width',\n 'border-start-end-radius',\n 'border-start-start-radius',\n 'border-top',\n 'border-top-color',\n 'border-top-left-radius',\n 'border-top-right-radius',\n 'border-top-width',\n 'border-width',\n 'bottom',\n 'box-shadow',\n 'caret-color',\n 'clip',\n 'clip-path',\n 'color',\n 'column-count',\n 'column-gap',\n 'column-rule',\n 'column-rule-color',\n 'column-rule-width',\n 'column-width',\n 'columns',\n 'filter',\n 'flex',\n 'flex-basis',\n 'flex-grow',\n 'flex-shrink',\n 'font',\n 'font-size',\n 'font-size-adjust',\n 'font-stretch',\n 'font-variation-settings',\n 'font-weight',\n 'gap',\n 'grid-column-gap',\n 'grid-gap',\n 'grid-row-gap',\n 'grid-template-columns',\n 'grid-template-rows',\n 'height',\n 'inline-size',\n 'input-security',\n 'inset',\n 'inset-block',\n 'inset-block-end',\n 'inset-block-start',\n 'inset-inline',\n 'inset-inline-end',\n 'inset-inline-start',\n 'left',\n 'letter-spacing',\n 'line-clamp',\n 'line-height',\n 'margin',\n 'margin-block-end',\n 'margin-block-start',\n 'margin-bottom',\n 'margin-inline-end',\n 'margin-inline-start',\n 'margin-left',\n 'margin-right',\n 'margin-top',\n 'mask',\n 'mask-border',\n 'mask-position',\n 'mask-size',\n 'max-block-size',\n 'max-height',\n 'max-inline-size',\n 'max-lines',\n 'max-width',\n 'min-block-size',\n 'min-height',\n 'min-inline-size',\n 'min-width',\n 'object-position',\n 'offset',\n 'offset-anchor',\n 'offset-distance',\n 'offset-path',\n 'offset-position',\n 'offset-rotate',\n 'opacity',\n 'order',\n 'outline',\n 'outline-color',\n 'outline-offset',\n 'outline-width',\n 'padding',\n 'padding-block-end',\n 'padding-block-start',\n 'padding-bottom',\n 'padding-inline-end',\n 'padding-inline-start',\n 'padding-left',\n 'padding-right',\n 'padding-top',\n 'perspective',\n 'perspective-origin',\n 'right',\n 'rotate',\n 'row-gap',\n 'scale',\n 'scroll-margin',\n 'scroll-margin-block',\n 'scroll-margin-block-end',\n 'scroll-margin-block-start',\n 'scroll-margin-bottom',\n 'scroll-margin-inline',\n 'scroll-margin-inline-end',\n 'scroll-margin-inline-start',\n 'scroll-margin-left',\n 'scroll-margin-right',\n 'scroll-margin-top',\n 'scroll-padding',\n 'scroll-padding-block',\n 'scroll-padding-block-end',\n 'scroll-padding-block-start',\n 'scroll-padding-bottom',\n 'scroll-padding-inline',\n 'scroll-padding-inline-end',\n 'scroll-padding-inline-start',\n 'scroll-padding-left',\n 'scroll-padding-right',\n 'scroll-padding-top',\n 'scroll-snap-coordinate',\n 'scroll-snap-destination',\n 'scrollbar-color',\n 'shape-image-threshold',\n 'shape-margin',\n 'shape-outside',\n 'tab-size',\n 'text-decoration',\n 'text-decoration-color',\n 'text-decoration-thickness',\n 'text-emphasis',\n 'text-emphasis-color',\n 'text-indent',\n 'text-shadow',\n 'text-underline-offset',\n 'top',\n 'transform',\n 'transform-origin',\n 'translate',\n 'vertical-align',\n 'visibility',\n 'width',\n 'word-spacing',\n 'z-index',\n 'zoom',\n]);\n\nfunction optimizeGroupPlayer(players) {\n switch (players.length) {\n case 0:\n return new NoopAnimationPlayer();\n case 1:\n return players[0];\n default:\n return new ɵAnimationGroupPlayer(players);\n }\n}\nfunction normalizeKeyframes$1(normalizer, keyframes, preStyles = new Map(), postStyles = new Map()) {\n const errors = [];\n const normalizedKeyframes = [];\n let previousOffset = -1;\n let previousKeyframe = null;\n keyframes.forEach((kf) => {\n const offset = kf.get('offset');\n const isSameOffset = offset == previousOffset;\n const normalizedKeyframe = (isSameOffset && previousKeyframe) || new Map();\n kf.forEach((val, prop) => {\n let normalizedProp = prop;\n let normalizedValue = val;\n if (prop !== 'offset') {\n normalizedProp = normalizer.normalizePropertyName(normalizedProp, errors);\n switch (normalizedValue) {\n case ɵPRE_STYLE:\n normalizedValue = preStyles.get(prop);\n break;\n case AUTO_STYLE:\n normalizedValue = postStyles.get(prop);\n break;\n default:\n normalizedValue = normalizer.normalizeStyleValue(prop, normalizedProp, normalizedValue, errors);\n break;\n }\n }\n normalizedKeyframe.set(normalizedProp, normalizedValue);\n });\n if (!isSameOffset) {\n normalizedKeyframes.push(normalizedKeyframe);\n }\n previousKeyframe = normalizedKeyframe;\n previousOffset = offset;\n });\n if (errors.length) {\n throw animationFailed(errors);\n }\n return normalizedKeyframes;\n}\nfunction listenOnPlayer(player, eventName, event, callback) {\n switch (eventName) {\n case 'start':\n player.onStart(() => callback(event && copyAnimationEvent(event, 'start', player)));\n break;\n case 'done':\n player.onDone(() => callback(event && copyAnimationEvent(event, 'done', player)));\n break;\n case 'destroy':\n player.onDestroy(() => callback(event && copyAnimationEvent(event, 'destroy', player)));\n break;\n }\n}\nfunction copyAnimationEvent(e, phaseName, player) {\n const totalTime = player.totalTime;\n const disabled = player.disabled ? true : false;\n const event = makeAnimationEvent(e.element, e.triggerName, e.fromState, e.toState, phaseName || e.phaseName, totalTime == undefined ? e.totalTime : totalTime, disabled);\n const data = e['_data'];\n if (data != null) {\n event['_data'] = data;\n }\n return event;\n}\nfunction makeAnimationEvent(element, triggerName, fromState, toState, phaseName = '', totalTime = 0, disabled) {\n return { element, triggerName, fromState, toState, phaseName, totalTime, disabled: !!disabled };\n}\nfunction getOrSetDefaultValue(map, key, defaultValue) {\n let value = map.get(key);\n if (!value) {\n map.set(key, (value = defaultValue));\n }\n return value;\n}\nfunction parseTimelineCommand(command) {\n const separatorPos = command.indexOf(':');\n const id = command.substring(1, separatorPos);\n const action = command.slice(separatorPos + 1);\n return [id, action];\n}\nconst documentElement = /* @__PURE__ */ (() => typeof document === 'undefined' ? null : document.documentElement)();\nfunction getParentElement(element) {\n const parent = element.parentNode || element.host || null; // consider host to support shadow DOM\n if (parent === documentElement) {\n return null;\n }\n return parent;\n}\nfunction containsVendorPrefix(prop) {\n // Webkit is the only real popular vendor prefix nowadays\n // cc: http://shouldiprefix.com/\n return prop.substring(1, 6) == 'ebkit'; // webkit or Webkit\n}\nlet _CACHED_BODY = null;\nlet _IS_WEBKIT = false;\nfunction validateStyleProperty(prop) {\n if (!_CACHED_BODY) {\n _CACHED_BODY = getBodyNode() || {};\n _IS_WEBKIT = _CACHED_BODY.style ? 'WebkitAppearance' in _CACHED_BODY.style : false;\n }\n let result = true;\n if (_CACHED_BODY.style && !containsVendorPrefix(prop)) {\n result = prop in _CACHED_BODY.style;\n if (!result && _IS_WEBKIT) {\n const camelProp = 'Webkit' + prop.charAt(0).toUpperCase() + prop.slice(1);\n result = camelProp in _CACHED_BODY.style;\n }\n }\n return result;\n}\nfunction validateWebAnimatableStyleProperty(prop) {\n return ANIMATABLE_PROP_SET.has(prop);\n}\nfunction getBodyNode() {\n if (typeof document != 'undefined') {\n return document.body;\n }\n return null;\n}\nfunction containsElement(elm1, elm2) {\n while (elm2) {\n if (elm2 === elm1) {\n return true;\n }\n elm2 = getParentElement(elm2);\n }\n return false;\n}\nfunction invokeQuery(element, selector, multi) {\n if (multi) {\n return Array.from(element.querySelectorAll(selector));\n }\n const elem = element.querySelector(selector);\n return elem ? [elem] : [];\n}\nfunction hypenatePropsKeys(original) {\n const newMap = new Map();\n original.forEach((val, prop) => {\n const newProp = prop.replace(/([a-z])([A-Z])/g, '$1-$2');\n newMap.set(newProp, val);\n });\n return newMap;\n}\n\n/**\n * @publicApi\n *\n * `AnimationDriver` implentation for Noop animations\n */\nclass NoopAnimationDriver {\n /**\n * @returns Whether `prop` is a valid CSS property\n */\n validateStyleProperty(prop) {\n return validateStyleProperty(prop);\n }\n /**\n *\n * @returns Whether elm1 contains elm2.\n */\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n /**\n * @returns Rhe parent of the given element or `null` if the element is the `document`\n */\n getParentElement(element) {\n return getParentElement(element);\n }\n /**\n * @returns The result of the query selector on the element. The array will contain up to 1 item\n * if `multi` is `false`.\n */\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n /**\n * @returns The `defaultValue` or empty string\n */\n computeStyle(element, prop, defaultValue) {\n return defaultValue || '';\n }\n /**\n * @returns An `NoopAnimationPlayer`\n */\n animate(element, keyframes, duration, delay, easing, previousPlayers = [], scrubberAccessRequested) {\n return new NoopAnimationPlayer(duration, delay);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationDriver, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationDriver }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationDriver, decorators: [{\n type: Injectable\n }] });\n/**\n * @publicApi\n */\nclass AnimationDriver {\n /**\n * @deprecated Use the NoopAnimationDriver class.\n */\n static { this.NOOP = new NoopAnimationDriver(); }\n}\n\nclass AnimationStyleNormalizer {\n}\nclass NoopAnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return propertyName;\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n return value;\n }\n}\n\nconst ONE_SECOND = 1000;\nconst SUBSTITUTION_EXPR_START = '{{';\nconst SUBSTITUTION_EXPR_END = '}}';\nconst ENTER_CLASSNAME = 'ng-enter';\nconst LEAVE_CLASSNAME = 'ng-leave';\nconst NG_TRIGGER_CLASSNAME = 'ng-trigger';\nconst NG_TRIGGER_SELECTOR = '.ng-trigger';\nconst NG_ANIMATING_CLASSNAME = 'ng-animating';\nconst NG_ANIMATING_SELECTOR = '.ng-animating';\nfunction resolveTimingValue(value) {\n if (typeof value == 'number')\n return value;\n const matches = value.match(/^(-?[\\.\\d]+)(m?s)/);\n if (!matches || matches.length < 2)\n return 0;\n return _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n}\nfunction _convertTimeValueToMS(value, unit) {\n switch (unit) {\n case 's':\n return value * ONE_SECOND;\n default: // ms or something else\n return value;\n }\n}\nfunction resolveTiming(timings, errors, allowNegativeValues) {\n return timings.hasOwnProperty('duration')\n ? timings\n : parseTimeExpression(timings, errors, allowNegativeValues);\n}\nfunction parseTimeExpression(exp, errors, allowNegativeValues) {\n const regex = /^(-?[\\.\\d]+)(m?s)(?:\\s+(-?[\\.\\d]+)(m?s))?(?:\\s+([-a-z]+(?:\\(.+?\\))?))?$/i;\n let duration;\n let delay = 0;\n let easing = '';\n if (typeof exp === 'string') {\n const matches = exp.match(regex);\n if (matches === null) {\n errors.push(invalidTimingValue(exp));\n return { duration: 0, delay: 0, easing: '' };\n }\n duration = _convertTimeValueToMS(parseFloat(matches[1]), matches[2]);\n const delayMatch = matches[3];\n if (delayMatch != null) {\n delay = _convertTimeValueToMS(parseFloat(delayMatch), matches[4]);\n }\n const easingVal = matches[5];\n if (easingVal) {\n easing = easingVal;\n }\n }\n else {\n duration = exp;\n }\n if (!allowNegativeValues) {\n let containsErrors = false;\n let startIndex = errors.length;\n if (duration < 0) {\n errors.push(negativeStepValue());\n containsErrors = true;\n }\n if (delay < 0) {\n errors.push(negativeDelayValue());\n containsErrors = true;\n }\n if (containsErrors) {\n errors.splice(startIndex, 0, invalidTimingValue(exp));\n }\n }\n return { duration, delay, easing };\n}\nfunction normalizeKeyframes(keyframes) {\n if (!keyframes.length) {\n return [];\n }\n if (keyframes[0] instanceof Map) {\n return keyframes;\n }\n return keyframes.map((kf) => new Map(Object.entries(kf)));\n}\nfunction normalizeStyles(styles) {\n return Array.isArray(styles) ? new Map(...styles) : new Map(styles);\n}\nfunction setStyles(element, styles, formerStyles) {\n styles.forEach((val, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n if (formerStyles && !formerStyles.has(prop)) {\n formerStyles.set(prop, element.style[camelProp]);\n }\n element.style[camelProp] = val;\n });\n}\nfunction eraseStyles(element, styles) {\n styles.forEach((_, prop) => {\n const camelProp = dashCaseToCamelCase(prop);\n element.style[camelProp] = '';\n });\n}\nfunction normalizeAnimationEntry(steps) {\n if (Array.isArray(steps)) {\n if (steps.length == 1)\n return steps[0];\n return sequence(steps);\n }\n return steps;\n}\nfunction validateStyleParams(value, options, errors) {\n const params = options.params || {};\n const matches = extractStyleParams(value);\n if (matches.length) {\n matches.forEach((varName) => {\n if (!params.hasOwnProperty(varName)) {\n errors.push(invalidStyleParams(varName));\n }\n });\n }\n}\nconst PARAM_REGEX = new RegExp(`${SUBSTITUTION_EXPR_START}\\\\s*(.+?)\\\\s*${SUBSTITUTION_EXPR_END}`, 'g');\nfunction extractStyleParams(value) {\n let params = [];\n if (typeof value === 'string') {\n let match;\n while ((match = PARAM_REGEX.exec(value))) {\n params.push(match[1]);\n }\n PARAM_REGEX.lastIndex = 0;\n }\n return params;\n}\nfunction interpolateParams(value, params, errors) {\n const original = `${value}`;\n const str = original.replace(PARAM_REGEX, (_, varName) => {\n let localVal = params[varName];\n // this means that the value was never overridden by the data passed in by the user\n if (localVal == null) {\n errors.push(invalidParamValue(varName));\n localVal = '';\n }\n return localVal.toString();\n });\n // we do this to assert that numeric values stay as they are\n return str == original ? value : str;\n}\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nfunction dashCaseToCamelCase(input) {\n return input.replace(DASH_CASE_REGEXP, (...m) => m[1].toUpperCase());\n}\nfunction camelCaseToDashCase(input) {\n return input.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n}\nfunction allowPreviousPlayerStylesMerge(duration, delay) {\n return duration === 0 || delay === 0;\n}\nfunction balancePreviousStylesIntoKeyframes(element, keyframes, previousStyles) {\n if (previousStyles.size && keyframes.length) {\n let startingKeyframe = keyframes[0];\n let missingStyleProps = [];\n previousStyles.forEach((val, prop) => {\n if (!startingKeyframe.has(prop)) {\n missingStyleProps.push(prop);\n }\n startingKeyframe.set(prop, val);\n });\n if (missingStyleProps.length) {\n for (let i = 1; i < keyframes.length; i++) {\n let kf = keyframes[i];\n missingStyleProps.forEach((prop) => kf.set(prop, computeStyle(element, prop)));\n }\n }\n }\n return keyframes;\n}\nfunction visitDslNode(visitor, node, context) {\n switch (node.type) {\n case AnimationMetadataType.Trigger:\n return visitor.visitTrigger(node, context);\n case AnimationMetadataType.State:\n return visitor.visitState(node, context);\n case AnimationMetadataType.Transition:\n return visitor.visitTransition(node, context);\n case AnimationMetadataType.Sequence:\n return visitor.visitSequence(node, context);\n case AnimationMetadataType.Group:\n return visitor.visitGroup(node, context);\n case AnimationMetadataType.Animate:\n return visitor.visitAnimate(node, context);\n case AnimationMetadataType.Keyframes:\n return visitor.visitKeyframes(node, context);\n case AnimationMetadataType.Style:\n return visitor.visitStyle(node, context);\n case AnimationMetadataType.Reference:\n return visitor.visitReference(node, context);\n case AnimationMetadataType.AnimateChild:\n return visitor.visitAnimateChild(node, context);\n case AnimationMetadataType.AnimateRef:\n return visitor.visitAnimateRef(node, context);\n case AnimationMetadataType.Query:\n return visitor.visitQuery(node, context);\n case AnimationMetadataType.Stagger:\n return visitor.visitStagger(node, context);\n default:\n throw invalidNodeType(node.type);\n }\n}\nfunction computeStyle(element, prop) {\n return window.getComputedStyle(element)[prop];\n}\n\nconst DIMENSIONAL_PROP_SET = new Set([\n 'width',\n 'height',\n 'minWidth',\n 'minHeight',\n 'maxWidth',\n 'maxHeight',\n 'left',\n 'top',\n 'bottom',\n 'right',\n 'fontSize',\n 'outlineWidth',\n 'outlineOffset',\n 'paddingTop',\n 'paddingLeft',\n 'paddingBottom',\n 'paddingRight',\n 'marginTop',\n 'marginLeft',\n 'marginBottom',\n 'marginRight',\n 'borderRadius',\n 'borderWidth',\n 'borderTopWidth',\n 'borderLeftWidth',\n 'borderRightWidth',\n 'borderBottomWidth',\n 'textIndent',\n 'perspective',\n]);\nclass WebAnimationsStyleNormalizer extends AnimationStyleNormalizer {\n normalizePropertyName(propertyName, errors) {\n return dashCaseToCamelCase(propertyName);\n }\n normalizeStyleValue(userProvidedProperty, normalizedProperty, value, errors) {\n let unit = '';\n const strVal = value.toString().trim();\n if (DIMENSIONAL_PROP_SET.has(normalizedProperty) && value !== 0 && value !== '0') {\n if (typeof value === 'number') {\n unit = 'px';\n }\n else {\n const valAndSuffixMatch = value.match(/^[+-]?[\\d\\.]+([a-z]*)$/);\n if (valAndSuffixMatch && valAndSuffixMatch[1].length == 0) {\n errors.push(invalidCssUnitValue(userProvidedProperty, value));\n }\n }\n }\n return strVal + unit;\n }\n}\n\nfunction createListOfWarnings(warnings) {\n const LINE_START = '\\n - ';\n return `${LINE_START}${warnings\n .filter(Boolean)\n .map((warning) => warning)\n .join(LINE_START)}`;\n}\nfunction warnValidation(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`animation validation warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnTriggerBuild(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`The animation trigger \"${name}\" has built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction warnRegister(warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation built with the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction triggerParsingWarnings(name, warnings) {\n (typeof ngDevMode === 'undefined' || ngDevMode) &&\n console.warn(`Animation parsing for the ${name} trigger presents the following warnings:${createListOfWarnings(warnings)}`);\n}\nfunction pushUnrecognizedPropertiesWarning(warnings, props) {\n if (props.length) {\n warnings.push(`The following provided properties are not recognized: ${props.join(', ')}`);\n }\n}\n\nconst ANY_STATE = '*';\nfunction parseTransitionExpr(transitionValue, errors) {\n const expressions = [];\n if (typeof transitionValue == 'string') {\n transitionValue\n .split(/\\s*,\\s*/)\n .forEach((str) => parseInnerTransitionStr(str, expressions, errors));\n }\n else {\n expressions.push(transitionValue);\n }\n return expressions;\n}\nfunction parseInnerTransitionStr(eventStr, expressions, errors) {\n if (eventStr[0] == ':') {\n const result = parseAnimationAlias(eventStr, errors);\n if (typeof result == 'function') {\n expressions.push(result);\n return;\n }\n eventStr = result;\n }\n const match = eventStr.match(/^(\\*|[-\\w]+)\\s*()\\s*(\\*|[-\\w]+)$/);\n if (match == null || match.length < 4) {\n errors.push(invalidExpression(eventStr));\n return expressions;\n }\n const fromState = match[1];\n const separator = match[2];\n const toState = match[3];\n expressions.push(makeLambdaFromStates(fromState, toState));\n const isFullAnyStateExpr = fromState == ANY_STATE && toState == ANY_STATE;\n if (separator[0] == '<' && !isFullAnyStateExpr) {\n expressions.push(makeLambdaFromStates(toState, fromState));\n }\n return;\n}\nfunction parseAnimationAlias(alias, errors) {\n switch (alias) {\n case ':enter':\n return 'void => *';\n case ':leave':\n return '* => void';\n case ':increment':\n return (fromState, toState) => parseFloat(toState) > parseFloat(fromState);\n case ':decrement':\n return (fromState, toState) => parseFloat(toState) < parseFloat(fromState);\n default:\n errors.push(invalidTransitionAlias(alias));\n return '* => *';\n }\n}\n// DO NOT REFACTOR ... keep the follow set instantiations\n// with the values intact (closure compiler for some reason\n// removes follow-up lines that add the values outside of\n// the constructor...\nconst TRUE_BOOLEAN_VALUES = new Set(['true', '1']);\nconst FALSE_BOOLEAN_VALUES = new Set(['false', '0']);\nfunction makeLambdaFromStates(lhs, rhs) {\n const LHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(lhs) || FALSE_BOOLEAN_VALUES.has(lhs);\n const RHS_MATCH_BOOLEAN = TRUE_BOOLEAN_VALUES.has(rhs) || FALSE_BOOLEAN_VALUES.has(rhs);\n return (fromState, toState) => {\n let lhsMatch = lhs == ANY_STATE || lhs == fromState;\n let rhsMatch = rhs == ANY_STATE || rhs == toState;\n if (!lhsMatch && LHS_MATCH_BOOLEAN && typeof fromState === 'boolean') {\n lhsMatch = fromState ? TRUE_BOOLEAN_VALUES.has(lhs) : FALSE_BOOLEAN_VALUES.has(lhs);\n }\n if (!rhsMatch && RHS_MATCH_BOOLEAN && typeof toState === 'boolean') {\n rhsMatch = toState ? TRUE_BOOLEAN_VALUES.has(rhs) : FALSE_BOOLEAN_VALUES.has(rhs);\n }\n return lhsMatch && rhsMatch;\n };\n}\n\nconst SELF_TOKEN = ':self';\nconst SELF_TOKEN_REGEX = new RegExp(`s*${SELF_TOKEN}s*,?`, 'g');\n/*\n * [Validation]\n * The visitor code below will traverse the animation AST generated by the animation verb functions\n * (the output is a tree of objects) and attempt to perform a series of validations on the data. The\n * following corner-cases will be validated:\n *\n * 1. Overlap of animations\n * Given that a CSS property cannot be animated in more than one place at the same time, it's\n * important that this behavior is detected and validated. The way in which this occurs is that\n * each time a style property is examined, a string-map containing the property will be updated with\n * the start and end times for when the property is used within an animation step.\n *\n * If there are two or more parallel animations that are currently running (these are invoked by the\n * group()) on the same element then the validator will throw an error. Since the start/end timing\n * values are collected for each property then if the current animation step is animating the same\n * property and its timing values fall anywhere into the window of time that the property is\n * currently being animated within then this is what causes an error.\n *\n * 2. Timing values\n * The validator will validate to see if a timing value of `duration delay easing` or\n * `durationNumber` is valid or not.\n *\n * (note that upon validation the code below will replace the timing data with an object containing\n * {duration,delay,easing}.\n *\n * 3. Offset Validation\n * Each of the style() calls are allowed to have an offset value when placed inside of keyframes().\n * Offsets within keyframes() are considered valid when:\n *\n * - No offsets are used at all\n * - Each style() entry contains an offset value\n * - Each offset is between 0 and 1\n * - Each offset is greater to or equal than the previous one\n *\n * Otherwise an error will be thrown.\n */\nfunction buildAnimationAst(driver, metadata, errors, warnings) {\n return new AnimationAstBuilderVisitor(driver).build(metadata, errors, warnings);\n}\nconst ROOT_SELECTOR = '';\nclass AnimationAstBuilderVisitor {\n constructor(_driver) {\n this._driver = _driver;\n }\n build(metadata, errors, warnings) {\n const context = new AnimationAstBuilderContext(errors);\n this._resetContextStyleTimingState(context);\n const ast = (visitDslNode(this, normalizeAnimationEntry(metadata), context));\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (context.unsupportedCSSPropertiesFound.size) {\n pushUnrecognizedPropertiesWarning(warnings, [\n ...context.unsupportedCSSPropertiesFound.keys(),\n ]);\n }\n }\n return ast;\n }\n _resetContextStyleTimingState(context) {\n context.currentQuerySelector = ROOT_SELECTOR;\n context.collectedStyles = new Map();\n context.collectedStyles.set(ROOT_SELECTOR, new Map());\n context.currentTime = 0;\n }\n visitTrigger(metadata, context) {\n let queryCount = (context.queryCount = 0);\n let depCount = (context.depCount = 0);\n const states = [];\n const transitions = [];\n if (metadata.name.charAt(0) == '@') {\n context.errors.push(invalidTrigger());\n }\n metadata.definitions.forEach((def) => {\n this._resetContextStyleTimingState(context);\n if (def.type == AnimationMetadataType.State) {\n const stateDef = def;\n const name = stateDef.name;\n name\n .toString()\n .split(/\\s*,\\s*/)\n .forEach((n) => {\n stateDef.name = n;\n states.push(this.visitState(stateDef, context));\n });\n stateDef.name = name;\n }\n else if (def.type == AnimationMetadataType.Transition) {\n const transition = this.visitTransition(def, context);\n queryCount += transition.queryCount;\n depCount += transition.depCount;\n transitions.push(transition);\n }\n else {\n context.errors.push(invalidDefinition());\n }\n });\n return {\n type: AnimationMetadataType.Trigger,\n name: metadata.name,\n states,\n transitions,\n queryCount,\n depCount,\n options: null,\n };\n }\n visitState(metadata, context) {\n const styleAst = this.visitStyle(metadata.styles, context);\n const astParams = (metadata.options && metadata.options.params) || null;\n if (styleAst.containsDynamicStyles) {\n const missingSubs = new Set();\n const params = astParams || {};\n styleAst.styles.forEach((style) => {\n if (style instanceof Map) {\n style.forEach((value) => {\n extractStyleParams(value).forEach((sub) => {\n if (!params.hasOwnProperty(sub)) {\n missingSubs.add(sub);\n }\n });\n });\n }\n });\n if (missingSubs.size) {\n context.errors.push(invalidState(metadata.name, [...missingSubs.values()]));\n }\n }\n return {\n type: AnimationMetadataType.State,\n name: metadata.name,\n style: styleAst,\n options: astParams ? { params: astParams } : null,\n };\n }\n visitTransition(metadata, context) {\n context.queryCount = 0;\n context.depCount = 0;\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n const matchers = parseTransitionExpr(metadata.expr, context.errors);\n return {\n type: AnimationMetadataType.Transition,\n matchers,\n animation,\n queryCount: context.queryCount,\n depCount: context.depCount,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitSequence(metadata, context) {\n return {\n type: AnimationMetadataType.Sequence,\n steps: metadata.steps.map((s) => visitDslNode(this, s, context)),\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitGroup(metadata, context) {\n const currentTime = context.currentTime;\n let furthestTime = 0;\n const steps = metadata.steps.map((step) => {\n context.currentTime = currentTime;\n const innerAst = visitDslNode(this, step, context);\n furthestTime = Math.max(furthestTime, context.currentTime);\n return innerAst;\n });\n context.currentTime = furthestTime;\n return {\n type: AnimationMetadataType.Group,\n steps,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitAnimate(metadata, context) {\n const timingAst = constructTimingAst(metadata.timings, context.errors);\n context.currentAnimateTimings = timingAst;\n let styleAst;\n let styleMetadata = metadata.styles\n ? metadata.styles\n : style({});\n if (styleMetadata.type == AnimationMetadataType.Keyframes) {\n styleAst = this.visitKeyframes(styleMetadata, context);\n }\n else {\n let styleMetadata = metadata.styles;\n let isEmpty = false;\n if (!styleMetadata) {\n isEmpty = true;\n const newStyleData = {};\n if (timingAst.easing) {\n newStyleData['easing'] = timingAst.easing;\n }\n styleMetadata = style(newStyleData);\n }\n context.currentTime += timingAst.duration + timingAst.delay;\n const _styleAst = this.visitStyle(styleMetadata, context);\n _styleAst.isEmptyStep = isEmpty;\n styleAst = _styleAst;\n }\n context.currentAnimateTimings = null;\n return {\n type: AnimationMetadataType.Animate,\n timings: timingAst,\n style: styleAst,\n options: null,\n };\n }\n visitStyle(metadata, context) {\n const ast = this._makeStyleAst(metadata, context);\n this._validateStyleAst(ast, context);\n return ast;\n }\n _makeStyleAst(metadata, context) {\n const styles = [];\n const metadataStyles = Array.isArray(metadata.styles) ? metadata.styles : [metadata.styles];\n for (let styleTuple of metadataStyles) {\n if (typeof styleTuple === 'string') {\n if (styleTuple === AUTO_STYLE) {\n styles.push(styleTuple);\n }\n else {\n context.errors.push(invalidStyleValue(styleTuple));\n }\n }\n else {\n styles.push(new Map(Object.entries(styleTuple)));\n }\n }\n let containsDynamicStyles = false;\n let collectedEasing = null;\n styles.forEach((styleData) => {\n if (styleData instanceof Map) {\n if (styleData.has('easing')) {\n collectedEasing = styleData.get('easing');\n styleData.delete('easing');\n }\n if (!containsDynamicStyles) {\n for (let value of styleData.values()) {\n if (value.toString().indexOf(SUBSTITUTION_EXPR_START) >= 0) {\n containsDynamicStyles = true;\n break;\n }\n }\n }\n }\n });\n return {\n type: AnimationMetadataType.Style,\n styles,\n easing: collectedEasing,\n offset: metadata.offset,\n containsDynamicStyles,\n options: null,\n };\n }\n _validateStyleAst(ast, context) {\n const timings = context.currentAnimateTimings;\n let endTime = context.currentTime;\n let startTime = context.currentTime;\n if (timings && startTime > 0) {\n startTime -= timings.duration + timings.delay;\n }\n ast.styles.forEach((tuple) => {\n if (typeof tuple === 'string')\n return;\n tuple.forEach((value, prop) => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!this._driver.validateStyleProperty(prop)) {\n tuple.delete(prop);\n context.unsupportedCSSPropertiesFound.add(prop);\n return;\n }\n }\n // This is guaranteed to have a defined Map at this querySelector location making it\n // safe to add the assertion here. It is set as a default empty map in prior methods.\n const collectedStyles = context.collectedStyles.get(context.currentQuerySelector);\n const collectedEntry = collectedStyles.get(prop);\n let updateCollectedStyle = true;\n if (collectedEntry) {\n if (startTime != endTime &&\n startTime >= collectedEntry.startTime &&\n endTime <= collectedEntry.endTime) {\n context.errors.push(invalidParallelAnimation(prop, collectedEntry.startTime, collectedEntry.endTime, startTime, endTime));\n updateCollectedStyle = false;\n }\n // we always choose the smaller start time value since we\n // want to have a record of the entire animation window where\n // the style property is being animated in between\n startTime = collectedEntry.startTime;\n }\n if (updateCollectedStyle) {\n collectedStyles.set(prop, { startTime, endTime });\n }\n if (context.options) {\n validateStyleParams(value, context.options, context.errors);\n }\n });\n });\n }\n visitKeyframes(metadata, context) {\n const ast = { type: AnimationMetadataType.Keyframes, styles: [], options: null };\n if (!context.currentAnimateTimings) {\n context.errors.push(invalidKeyframes());\n return ast;\n }\n const MAX_KEYFRAME_OFFSET = 1;\n let totalKeyframesWithOffsets = 0;\n const offsets = [];\n let offsetsOutOfOrder = false;\n let keyframesOutOfRange = false;\n let previousOffset = 0;\n const keyframes = metadata.steps.map((styles) => {\n const style = this._makeStyleAst(styles, context);\n let offsetVal = style.offset != null ? style.offset : consumeOffset(style.styles);\n let offset = 0;\n if (offsetVal != null) {\n totalKeyframesWithOffsets++;\n offset = style.offset = offsetVal;\n }\n keyframesOutOfRange = keyframesOutOfRange || offset < 0 || offset > 1;\n offsetsOutOfOrder = offsetsOutOfOrder || offset < previousOffset;\n previousOffset = offset;\n offsets.push(offset);\n return style;\n });\n if (keyframesOutOfRange) {\n context.errors.push(invalidOffset());\n }\n if (offsetsOutOfOrder) {\n context.errors.push(keyframeOffsetsOutOfOrder());\n }\n const length = metadata.steps.length;\n let generatedOffset = 0;\n if (totalKeyframesWithOffsets > 0 && totalKeyframesWithOffsets < length) {\n context.errors.push(keyframesMissingOffsets());\n }\n else if (totalKeyframesWithOffsets == 0) {\n generatedOffset = MAX_KEYFRAME_OFFSET / (length - 1);\n }\n const limit = length - 1;\n const currentTime = context.currentTime;\n const currentAnimateTimings = context.currentAnimateTimings;\n const animateDuration = currentAnimateTimings.duration;\n keyframes.forEach((kf, i) => {\n const offset = generatedOffset > 0 ? (i == limit ? 1 : generatedOffset * i) : offsets[i];\n const durationUpToThisFrame = offset * animateDuration;\n context.currentTime = currentTime + currentAnimateTimings.delay + durationUpToThisFrame;\n currentAnimateTimings.duration = durationUpToThisFrame;\n this._validateStyleAst(kf, context);\n kf.offset = offset;\n ast.styles.push(kf);\n });\n return ast;\n }\n visitReference(metadata, context) {\n return {\n type: AnimationMetadataType.Reference,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitAnimateChild(metadata, context) {\n context.depCount++;\n return {\n type: AnimationMetadataType.AnimateChild,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitAnimateRef(metadata, context) {\n return {\n type: AnimationMetadataType.AnimateRef,\n animation: this.visitReference(metadata.animation, context),\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitQuery(metadata, context) {\n const parentSelector = context.currentQuerySelector;\n const options = (metadata.options || {});\n context.queryCount++;\n context.currentQuery = metadata;\n const [selector, includeSelf] = normalizeSelector(metadata.selector);\n context.currentQuerySelector = parentSelector.length\n ? parentSelector + ' ' + selector\n : selector;\n getOrSetDefaultValue(context.collectedStyles, context.currentQuerySelector, new Map());\n const animation = visitDslNode(this, normalizeAnimationEntry(metadata.animation), context);\n context.currentQuery = null;\n context.currentQuerySelector = parentSelector;\n return {\n type: AnimationMetadataType.Query,\n selector,\n limit: options.limit || 0,\n optional: !!options.optional,\n includeSelf,\n animation,\n originalSelector: metadata.selector,\n options: normalizeAnimationOptions(metadata.options),\n };\n }\n visitStagger(metadata, context) {\n if (!context.currentQuery) {\n context.errors.push(invalidStagger());\n }\n const timings = metadata.timings === 'full'\n ? { duration: 0, delay: 0, easing: 'full' }\n : resolveTiming(metadata.timings, context.errors, true);\n return {\n type: AnimationMetadataType.Stagger,\n animation: visitDslNode(this, normalizeAnimationEntry(metadata.animation), context),\n timings,\n options: null,\n };\n }\n}\nfunction normalizeSelector(selector) {\n const hasAmpersand = selector.split(/\\s*,\\s*/).find((token) => token == SELF_TOKEN)\n ? true\n : false;\n if (hasAmpersand) {\n selector = selector.replace(SELF_TOKEN_REGEX, '');\n }\n // Note: the :enter and :leave aren't normalized here since those\n // selectors are filled in at runtime during timeline building\n selector = selector\n .replace(/@\\*/g, NG_TRIGGER_SELECTOR)\n .replace(/@\\w+/g, (match) => NG_TRIGGER_SELECTOR + '-' + match.slice(1))\n .replace(/:animating/g, NG_ANIMATING_SELECTOR);\n return [selector, hasAmpersand];\n}\nfunction normalizeParams(obj) {\n return obj ? { ...obj } : null;\n}\nclass AnimationAstBuilderContext {\n constructor(errors) {\n this.errors = errors;\n this.queryCount = 0;\n this.depCount = 0;\n this.currentTransition = null;\n this.currentQuery = null;\n this.currentQuerySelector = null;\n this.currentAnimateTimings = null;\n this.currentTime = 0;\n this.collectedStyles = new Map();\n this.options = null;\n this.unsupportedCSSPropertiesFound = new Set();\n }\n}\nfunction consumeOffset(styles) {\n if (typeof styles == 'string')\n return null;\n let offset = null;\n if (Array.isArray(styles)) {\n styles.forEach((styleTuple) => {\n if (styleTuple instanceof Map && styleTuple.has('offset')) {\n const obj = styleTuple;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n });\n }\n else if (styles instanceof Map && styles.has('offset')) {\n const obj = styles;\n offset = parseFloat(obj.get('offset'));\n obj.delete('offset');\n }\n return offset;\n}\nfunction constructTimingAst(value, errors) {\n if (value.hasOwnProperty('duration')) {\n return value;\n }\n if (typeof value == 'number') {\n const duration = resolveTiming(value, errors).duration;\n return makeTimingAst(duration, 0, '');\n }\n const strValue = value;\n const isDynamic = strValue.split(/\\s+/).some((v) => v.charAt(0) == '{' && v.charAt(1) == '{');\n if (isDynamic) {\n const ast = makeTimingAst(0, 0, '');\n ast.dynamic = true;\n ast.strValue = strValue;\n return ast;\n }\n const timings = resolveTiming(strValue, errors);\n return makeTimingAst(timings.duration, timings.delay, timings.easing);\n}\nfunction normalizeAnimationOptions(options) {\n if (options) {\n options = { ...options };\n if (options['params']) {\n options['params'] = normalizeParams(options['params']);\n }\n }\n else {\n options = {};\n }\n return options;\n}\nfunction makeTimingAst(duration, delay, easing) {\n return { duration, delay, easing };\n}\n\nfunction createTimelineInstruction(element, keyframes, preStyleProps, postStyleProps, duration, delay, easing = null, subTimeline = false) {\n return {\n type: 1 /* AnimationTransitionInstructionType.TimelineAnimation */,\n element,\n keyframes,\n preStyleProps,\n postStyleProps,\n duration,\n delay,\n totalTime: duration + delay,\n easing,\n subTimeline,\n };\n}\n\nclass ElementInstructionMap {\n constructor() {\n this._map = new Map();\n }\n get(element) {\n return this._map.get(element) || [];\n }\n append(element, instructions) {\n let existingInstructions = this._map.get(element);\n if (!existingInstructions) {\n this._map.set(element, (existingInstructions = []));\n }\n existingInstructions.push(...instructions);\n }\n has(element) {\n return this._map.has(element);\n }\n clear() {\n this._map.clear();\n }\n}\n\nconst ONE_FRAME_IN_MILLISECONDS = 1;\nconst ENTER_TOKEN = ':enter';\nconst ENTER_TOKEN_REGEX = new RegExp(ENTER_TOKEN, 'g');\nconst LEAVE_TOKEN = ':leave';\nconst LEAVE_TOKEN_REGEX = new RegExp(LEAVE_TOKEN, 'g');\n/*\n * The code within this file aims to generate web-animations-compatible keyframes from Angular's\n * animation DSL code.\n *\n * The code below will be converted from:\n *\n * ```\n * sequence([\n * style({ opacity: 0 }),\n * animate(1000, style({ opacity: 0 }))\n * ])\n * ```\n *\n * To:\n * ```\n * keyframes = [{ opacity: 0, offset: 0 }, { opacity: 1, offset: 1 }]\n * duration = 1000\n * delay = 0\n * easing = ''\n * ```\n *\n * For this operation to cover the combination of animation verbs (style, animate, group, etc...) a\n * combination of AST traversal and merge-sort-like algorithms are used.\n *\n * [AST Traversal]\n * Each of the animation verbs, when executed, will return an string-map object representing what\n * type of action it is (style, animate, group, etc...) and the data associated with it. This means\n * that when functional composition mix of these functions is evaluated (like in the example above)\n * then it will end up producing a tree of objects representing the animation itself.\n *\n * When this animation object tree is processed by the visitor code below it will visit each of the\n * verb statements within the visitor. And during each visit it will build the context of the\n * animation keyframes by interacting with the `TimelineBuilder`.\n *\n * [TimelineBuilder]\n * This class is responsible for tracking the styles and building a series of keyframe objects for a\n * timeline between a start and end time. The builder starts off with an initial timeline and each\n * time the AST comes across a `group()`, `keyframes()` or a combination of the two within a\n * `sequence()` then it will generate a sub timeline for each step as well as a new one after\n * they are complete.\n *\n * As the AST is traversed, the timing state on each of the timelines will be incremented. If a sub\n * timeline was created (based on one of the cases above) then the parent timeline will attempt to\n * merge the styles used within the sub timelines into itself (only with group() this will happen).\n * This happens with a merge operation (much like how the merge works in mergeSort) and it will only\n * copy the most recently used styles from the sub timelines into the parent timeline. This ensures\n * that if the styles are used later on in another phase of the animation then they will be the most\n * up-to-date values.\n *\n * [How Missing Styles Are Updated]\n * Each timeline has a `backFill` property which is responsible for filling in new styles into\n * already processed keyframes if a new style shows up later within the animation sequence.\n *\n * ```\n * sequence([\n * style({ width: 0 }),\n * animate(1000, style({ width: 100 })),\n * animate(1000, style({ width: 200 })),\n * animate(1000, style({ width: 300 }))\n * animate(1000, style({ width: 400, height: 400 })) // notice how `height` doesn't exist anywhere\n * else\n * ])\n * ```\n *\n * What is happening here is that the `height` value is added later in the sequence, but is missing\n * from all previous animation steps. Therefore when a keyframe is created it would also be missing\n * from all previous keyframes up until where it is first used. For the timeline keyframe generation\n * to properly fill in the style it will place the previous value (the value from the parent\n * timeline) or a default value of `*` into the backFill map.\n *\n * When a sub-timeline is created it will have its own backFill property. This is done so that\n * styles present within the sub-timeline do not accidentally seep into the previous/future timeline\n * keyframes\n *\n * [Validation]\n * The code in this file is not responsible for validation. That functionality happens with within\n * the `AnimationValidatorVisitor` code.\n */\nfunction buildAnimationTimelines(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles = new Map(), finalStyles = new Map(), options, subInstructions, errors = []) {\n return new AnimationTimelineBuilderVisitor().buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors);\n}\nclass AnimationTimelineBuilderVisitor {\n buildKeyframes(driver, rootElement, ast, enterClassName, leaveClassName, startingStyles, finalStyles, options, subInstructions, errors = []) {\n subInstructions = subInstructions || new ElementInstructionMap();\n const context = new AnimationTimelineContext(driver, rootElement, subInstructions, enterClassName, leaveClassName, errors, []);\n context.options = options;\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n context.currentTimeline.delayNextStep(delay);\n context.currentTimeline.setStyles([startingStyles], null, context.errors, options);\n visitDslNode(this, ast, context);\n // this checks to see if an actual animation happened\n const timelines = context.timelines.filter((timeline) => timeline.containsAnimation());\n // note: we just want to apply the final styles for the rootElement, so we do not\n // just apply the styles to the last timeline but the last timeline which\n // element is the root one (basically `*`-styles are replaced with the actual\n // state style values only for the root element)\n if (timelines.length && finalStyles.size) {\n let lastRootTimeline;\n for (let i = timelines.length - 1; i >= 0; i--) {\n const timeline = timelines[i];\n if (timeline.element === rootElement) {\n lastRootTimeline = timeline;\n break;\n }\n }\n if (lastRootTimeline && !lastRootTimeline.allowOnlyTimelineStyles()) {\n lastRootTimeline.setStyles([finalStyles], null, context.errors, options);\n }\n }\n return timelines.length\n ? timelines.map((timeline) => timeline.buildKeyframes())\n : [createTimelineInstruction(rootElement, [], [], [], 0, delay, '', false)];\n }\n visitTrigger(ast, context) {\n // these values are not visited in this AST\n }\n visitState(ast, context) {\n // these values are not visited in this AST\n }\n visitTransition(ast, context) {\n // these values are not visited in this AST\n }\n visitAnimateChild(ast, context) {\n const elementInstructions = context.subInstructions.get(context.element);\n if (elementInstructions) {\n const innerContext = context.createSubContext(ast.options);\n const startTime = context.currentTimeline.currentTime;\n const endTime = this._visitSubInstructions(elementInstructions, innerContext, innerContext.options);\n if (startTime != endTime) {\n // we do this on the upper context because we created a sub context for\n // the sub child animations\n context.transformIntoNewTimeline(endTime);\n }\n }\n context.previousNode = ast;\n }\n visitAnimateRef(ast, context) {\n const innerContext = context.createSubContext(ast.options);\n innerContext.transformIntoNewTimeline();\n this._applyAnimationRefDelays([ast.options, ast.animation.options], context, innerContext);\n this.visitReference(ast.animation, innerContext);\n context.transformIntoNewTimeline(innerContext.currentTimeline.currentTime);\n context.previousNode = ast;\n }\n _applyAnimationRefDelays(animationsRefsOptions, context, innerContext) {\n for (const animationRefOptions of animationsRefsOptions) {\n const animationDelay = animationRefOptions?.delay;\n if (animationDelay) {\n const animationDelayValue = typeof animationDelay === 'number'\n ? animationDelay\n : resolveTimingValue(interpolateParams(animationDelay, animationRefOptions?.params ?? {}, context.errors));\n innerContext.delayNextStep(animationDelayValue);\n }\n }\n }\n _visitSubInstructions(instructions, context, options) {\n const startTime = context.currentTimeline.currentTime;\n let furthestTime = startTime;\n // this is a special-case for when a user wants to skip a sub\n // animation from being fired entirely.\n const duration = options.duration != null ? resolveTimingValue(options.duration) : null;\n const delay = options.delay != null ? resolveTimingValue(options.delay) : null;\n if (duration !== 0) {\n instructions.forEach((instruction) => {\n const instructionTimings = context.appendInstructionToTimeline(instruction, duration, delay);\n furthestTime = Math.max(furthestTime, instructionTimings.duration + instructionTimings.delay);\n });\n }\n return furthestTime;\n }\n visitReference(ast, context) {\n context.updateOptions(ast.options, true);\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n }\n visitSequence(ast, context) {\n const subContextCount = context.subContextCount;\n let ctx = context;\n const options = ast.options;\n if (options && (options.params || options.delay)) {\n ctx = context.createSubContext(options);\n ctx.transformIntoNewTimeline();\n if (options.delay != null) {\n if (ctx.previousNode.type == AnimationMetadataType.Style) {\n ctx.currentTimeline.snapshotCurrentStyles();\n ctx.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n const delay = resolveTimingValue(options.delay);\n ctx.delayNextStep(delay);\n }\n }\n if (ast.steps.length) {\n ast.steps.forEach((s) => visitDslNode(this, s, ctx));\n // this is here just in case the inner steps only contain or end with a style() call\n ctx.currentTimeline.applyStylesToKeyframe();\n // this means that some animation function within the sequence\n // ended up creating a sub timeline (which means the current\n // timeline cannot overlap with the contents of the sequence)\n if (ctx.subContextCount > subContextCount) {\n ctx.transformIntoNewTimeline();\n }\n }\n context.previousNode = ast;\n }\n visitGroup(ast, context) {\n const innerTimelines = [];\n let furthestTime = context.currentTimeline.currentTime;\n const delay = ast.options && ast.options.delay ? resolveTimingValue(ast.options.delay) : 0;\n ast.steps.forEach((s) => {\n const innerContext = context.createSubContext(ast.options);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n visitDslNode(this, s, innerContext);\n furthestTime = Math.max(furthestTime, innerContext.currentTimeline.currentTime);\n innerTimelines.push(innerContext.currentTimeline);\n });\n // this operation is run after the AST loop because otherwise\n // if the parent timeline's collected styles were updated then\n // it would pass in invalid data into the new-to-be forked items\n innerTimelines.forEach((timeline) => context.currentTimeline.mergeTimelineCollectedStyles(timeline));\n context.transformIntoNewTimeline(furthestTime);\n context.previousNode = ast;\n }\n _visitTiming(ast, context) {\n if (ast.dynamic) {\n const strValue = ast.strValue;\n const timingValue = context.params\n ? interpolateParams(strValue, context.params, context.errors)\n : strValue;\n return resolveTiming(timingValue, context.errors);\n }\n else {\n return { duration: ast.duration, delay: ast.delay, easing: ast.easing };\n }\n }\n visitAnimate(ast, context) {\n const timings = (context.currentAnimateTimings = this._visitTiming(ast.timings, context));\n const timeline = context.currentTimeline;\n if (timings.delay) {\n context.incrementTime(timings.delay);\n timeline.snapshotCurrentStyles();\n }\n const style = ast.style;\n if (style.type == AnimationMetadataType.Keyframes) {\n this.visitKeyframes(style, context);\n }\n else {\n context.incrementTime(timings.duration);\n this.visitStyle(style, context);\n timeline.applyStylesToKeyframe();\n }\n context.currentAnimateTimings = null;\n context.previousNode = ast;\n }\n visitStyle(ast, context) {\n const timeline = context.currentTimeline;\n const timings = context.currentAnimateTimings;\n // this is a special case for when a style() call\n // directly follows an animate() call (but not inside of an animate() call)\n if (!timings && timeline.hasCurrentStyleProperties()) {\n timeline.forwardFrame();\n }\n const easing = (timings && timings.easing) || ast.easing;\n if (ast.isEmptyStep) {\n timeline.applyEmptyStep(easing);\n }\n else {\n timeline.setStyles(ast.styles, easing, context.errors, context.options);\n }\n context.previousNode = ast;\n }\n visitKeyframes(ast, context) {\n const currentAnimateTimings = context.currentAnimateTimings;\n const startTime = context.currentTimeline.duration;\n const duration = currentAnimateTimings.duration;\n const innerContext = context.createSubContext();\n const innerTimeline = innerContext.currentTimeline;\n innerTimeline.easing = currentAnimateTimings.easing;\n ast.styles.forEach((step) => {\n const offset = step.offset || 0;\n innerTimeline.forwardTime(offset * duration);\n innerTimeline.setStyles(step.styles, step.easing, context.errors, context.options);\n innerTimeline.applyStylesToKeyframe();\n });\n // this will ensure that the parent timeline gets all the styles from\n // the child even if the new timeline below is not used\n context.currentTimeline.mergeTimelineCollectedStyles(innerTimeline);\n // we do this because the window between this timeline and the sub timeline\n // should ensure that the styles within are exactly the same as they were before\n context.transformIntoNewTimeline(startTime + duration);\n context.previousNode = ast;\n }\n visitQuery(ast, context) {\n // in the event that the first step before this is a style step we need\n // to ensure the styles are applied before the children are animated\n const startTime = context.currentTimeline.currentTime;\n const options = (ast.options || {});\n const delay = options.delay ? resolveTimingValue(options.delay) : 0;\n if (delay &&\n (context.previousNode.type === AnimationMetadataType.Style ||\n (startTime == 0 && context.currentTimeline.hasCurrentStyleProperties()))) {\n context.currentTimeline.snapshotCurrentStyles();\n context.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n }\n let furthestTime = startTime;\n const elms = context.invokeQuery(ast.selector, ast.originalSelector, ast.limit, ast.includeSelf, options.optional ? true : false, context.errors);\n context.currentQueryTotal = elms.length;\n let sameElementTimeline = null;\n elms.forEach((element, i) => {\n context.currentQueryIndex = i;\n const innerContext = context.createSubContext(ast.options, element);\n if (delay) {\n innerContext.delayNextStep(delay);\n }\n if (element === context.element) {\n sameElementTimeline = innerContext.currentTimeline;\n }\n visitDslNode(this, ast.animation, innerContext);\n // this is here just incase the inner steps only contain or end\n // with a style() call (which is here to signal that this is a preparatory\n // call to style an element before it is animated again)\n innerContext.currentTimeline.applyStylesToKeyframe();\n const endTime = innerContext.currentTimeline.currentTime;\n furthestTime = Math.max(furthestTime, endTime);\n });\n context.currentQueryIndex = 0;\n context.currentQueryTotal = 0;\n context.transformIntoNewTimeline(furthestTime);\n if (sameElementTimeline) {\n context.currentTimeline.mergeTimelineCollectedStyles(sameElementTimeline);\n context.currentTimeline.snapshotCurrentStyles();\n }\n context.previousNode = ast;\n }\n visitStagger(ast, context) {\n const parentContext = context.parentContext;\n const tl = context.currentTimeline;\n const timings = ast.timings;\n const duration = Math.abs(timings.duration);\n const maxTime = duration * (context.currentQueryTotal - 1);\n let delay = duration * context.currentQueryIndex;\n let staggerTransformer = timings.duration < 0 ? 'reverse' : timings.easing;\n switch (staggerTransformer) {\n case 'reverse':\n delay = maxTime - delay;\n break;\n case 'full':\n delay = parentContext.currentStaggerTime;\n break;\n }\n const timeline = context.currentTimeline;\n if (delay) {\n timeline.delayNextStep(delay);\n }\n const startingTime = timeline.currentTime;\n visitDslNode(this, ast.animation, context);\n context.previousNode = ast;\n // time = duration + delay\n // the reason why this computation is so complex is because\n // the inner timeline may either have a delay value or a stretched\n // keyframe depending on if a subtimeline is not used or is used.\n parentContext.currentStaggerTime =\n tl.currentTime - startingTime + (tl.startTime - parentContext.currentTimeline.startTime);\n }\n}\nconst DEFAULT_NOOP_PREVIOUS_NODE = {};\nclass AnimationTimelineContext {\n constructor(_driver, element, subInstructions, _enterClassName, _leaveClassName, errors, timelines, initialTimeline) {\n this._driver = _driver;\n this.element = element;\n this.subInstructions = subInstructions;\n this._enterClassName = _enterClassName;\n this._leaveClassName = _leaveClassName;\n this.errors = errors;\n this.timelines = timelines;\n this.parentContext = null;\n this.currentAnimateTimings = null;\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.subContextCount = 0;\n this.options = {};\n this.currentQueryIndex = 0;\n this.currentQueryTotal = 0;\n this.currentStaggerTime = 0;\n this.currentTimeline = initialTimeline || new TimelineBuilder(this._driver, element, 0);\n timelines.push(this.currentTimeline);\n }\n get params() {\n return this.options.params;\n }\n updateOptions(options, skipIfExists) {\n if (!options)\n return;\n const newOptions = options;\n let optionsToUpdate = this.options;\n // NOTE: this will get patched up when other animation methods support duration overrides\n if (newOptions.duration != null) {\n optionsToUpdate.duration = resolveTimingValue(newOptions.duration);\n }\n if (newOptions.delay != null) {\n optionsToUpdate.delay = resolveTimingValue(newOptions.delay);\n }\n const newParams = newOptions.params;\n if (newParams) {\n let paramsToUpdate = optionsToUpdate.params;\n if (!paramsToUpdate) {\n paramsToUpdate = this.options.params = {};\n }\n Object.keys(newParams).forEach((name) => {\n if (!skipIfExists || !paramsToUpdate.hasOwnProperty(name)) {\n paramsToUpdate[name] = interpolateParams(newParams[name], paramsToUpdate, this.errors);\n }\n });\n }\n }\n _copyOptions() {\n const options = {};\n if (this.options) {\n const oldParams = this.options.params;\n if (oldParams) {\n const params = (options['params'] = {});\n Object.keys(oldParams).forEach((name) => {\n params[name] = oldParams[name];\n });\n }\n }\n return options;\n }\n createSubContext(options = null, element, newTime) {\n const target = element || this.element;\n const context = new AnimationTimelineContext(this._driver, target, this.subInstructions, this._enterClassName, this._leaveClassName, this.errors, this.timelines, this.currentTimeline.fork(target, newTime || 0));\n context.previousNode = this.previousNode;\n context.currentAnimateTimings = this.currentAnimateTimings;\n context.options = this._copyOptions();\n context.updateOptions(options);\n context.currentQueryIndex = this.currentQueryIndex;\n context.currentQueryTotal = this.currentQueryTotal;\n context.parentContext = this;\n this.subContextCount++;\n return context;\n }\n transformIntoNewTimeline(newTime) {\n this.previousNode = DEFAULT_NOOP_PREVIOUS_NODE;\n this.currentTimeline = this.currentTimeline.fork(this.element, newTime);\n this.timelines.push(this.currentTimeline);\n return this.currentTimeline;\n }\n appendInstructionToTimeline(instruction, duration, delay) {\n const updatedTimings = {\n duration: duration != null ? duration : instruction.duration,\n delay: this.currentTimeline.currentTime + (delay != null ? delay : 0) + instruction.delay,\n easing: '',\n };\n const builder = new SubTimelineBuilder(this._driver, instruction.element, instruction.keyframes, instruction.preStyleProps, instruction.postStyleProps, updatedTimings, instruction.stretchStartingKeyframe);\n this.timelines.push(builder);\n return updatedTimings;\n }\n incrementTime(time) {\n this.currentTimeline.forwardTime(this.currentTimeline.duration + time);\n }\n delayNextStep(delay) {\n // negative delays are not yet supported\n if (delay > 0) {\n this.currentTimeline.delayNextStep(delay);\n }\n }\n invokeQuery(selector, originalSelector, limit, includeSelf, optional, errors) {\n let results = [];\n if (includeSelf) {\n results.push(this.element);\n }\n if (selector.length > 0) {\n // only if :self is used then the selector can be empty\n selector = selector.replace(ENTER_TOKEN_REGEX, '.' + this._enterClassName);\n selector = selector.replace(LEAVE_TOKEN_REGEX, '.' + this._leaveClassName);\n const multi = limit != 1;\n let elements = this._driver.query(this.element, selector, multi);\n if (limit !== 0) {\n elements =\n limit < 0\n ? elements.slice(elements.length + limit, elements.length)\n : elements.slice(0, limit);\n }\n results.push(...elements);\n }\n if (!optional && results.length == 0) {\n errors.push(invalidQuery(originalSelector));\n }\n return results;\n }\n}\nclass TimelineBuilder {\n constructor(_driver, element, startTime, _elementTimelineStylesLookup) {\n this._driver = _driver;\n this.element = element;\n this.startTime = startTime;\n this._elementTimelineStylesLookup = _elementTimelineStylesLookup;\n this.duration = 0;\n this.easing = null;\n this._previousKeyframe = new Map();\n this._currentKeyframe = new Map();\n this._keyframes = new Map();\n this._styleSummary = new Map();\n this._localTimelineStyles = new Map();\n this._pendingStyles = new Map();\n this._backFill = new Map();\n this._currentEmptyStepKeyframe = null;\n if (!this._elementTimelineStylesLookup) {\n this._elementTimelineStylesLookup = new Map();\n }\n this._globalTimelineStyles = this._elementTimelineStylesLookup.get(element);\n if (!this._globalTimelineStyles) {\n this._globalTimelineStyles = this._localTimelineStyles;\n this._elementTimelineStylesLookup.set(element, this._localTimelineStyles);\n }\n this._loadKeyframe();\n }\n containsAnimation() {\n switch (this._keyframes.size) {\n case 0:\n return false;\n case 1:\n return this.hasCurrentStyleProperties();\n default:\n return true;\n }\n }\n hasCurrentStyleProperties() {\n return this._currentKeyframe.size > 0;\n }\n get currentTime() {\n return this.startTime + this.duration;\n }\n delayNextStep(delay) {\n // in the event that a style() step is placed right before a stagger()\n // and that style() step is the very first style() value in the animation\n // then we need to make a copy of the keyframe [0, copy, 1] so that the delay\n // properly applies the style() values to work with the stagger...\n const hasPreStyleStep = this._keyframes.size === 1 && this._pendingStyles.size;\n if (this.duration || hasPreStyleStep) {\n this.forwardTime(this.currentTime + delay);\n if (hasPreStyleStep) {\n this.snapshotCurrentStyles();\n }\n }\n else {\n this.startTime += delay;\n }\n }\n fork(element, currentTime) {\n this.applyStylesToKeyframe();\n return new TimelineBuilder(this._driver, element, currentTime || this.currentTime, this._elementTimelineStylesLookup);\n }\n _loadKeyframe() {\n if (this._currentKeyframe) {\n this._previousKeyframe = this._currentKeyframe;\n }\n this._currentKeyframe = this._keyframes.get(this.duration);\n if (!this._currentKeyframe) {\n this._currentKeyframe = new Map();\n this._keyframes.set(this.duration, this._currentKeyframe);\n }\n }\n forwardFrame() {\n this.duration += ONE_FRAME_IN_MILLISECONDS;\n this._loadKeyframe();\n }\n forwardTime(time) {\n this.applyStylesToKeyframe();\n this.duration = time;\n this._loadKeyframe();\n }\n _updateStyle(prop, value) {\n this._localTimelineStyles.set(prop, value);\n this._globalTimelineStyles.set(prop, value);\n this._styleSummary.set(prop, { time: this.currentTime, value });\n }\n allowOnlyTimelineStyles() {\n return this._currentEmptyStepKeyframe !== this._currentKeyframe;\n }\n applyEmptyStep(easing) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n // special case for animate(duration):\n // all missing styles are filled with a `*` value then\n // if any destination styles are filled in later on the same\n // keyframe then they will override the overridden styles\n // We use `_globalTimelineStyles` here because there may be\n // styles in previous keyframes that are not present in this timeline\n for (let [prop, value] of this._globalTimelineStyles) {\n this._backFill.set(prop, value || AUTO_STYLE);\n this._currentKeyframe.set(prop, AUTO_STYLE);\n }\n this._currentEmptyStepKeyframe = this._currentKeyframe;\n }\n setStyles(input, easing, errors, options) {\n if (easing) {\n this._previousKeyframe.set('easing', easing);\n }\n const params = (options && options.params) || {};\n const styles = flattenStyles(input, this._globalTimelineStyles);\n for (let [prop, value] of styles) {\n const val = interpolateParams(value, params, errors);\n this._pendingStyles.set(prop, val);\n if (!this._localTimelineStyles.has(prop)) {\n this._backFill.set(prop, this._globalTimelineStyles.get(prop) ?? AUTO_STYLE);\n }\n this._updateStyle(prop, val);\n }\n }\n applyStylesToKeyframe() {\n if (this._pendingStyles.size == 0)\n return;\n this._pendingStyles.forEach((val, prop) => {\n this._currentKeyframe.set(prop, val);\n });\n this._pendingStyles.clear();\n this._localTimelineStyles.forEach((val, prop) => {\n if (!this._currentKeyframe.has(prop)) {\n this._currentKeyframe.set(prop, val);\n }\n });\n }\n snapshotCurrentStyles() {\n for (let [prop, val] of this._localTimelineStyles) {\n this._pendingStyles.set(prop, val);\n this._updateStyle(prop, val);\n }\n }\n getFinalKeyframe() {\n return this._keyframes.get(this.duration);\n }\n get properties() {\n const properties = [];\n for (let prop in this._currentKeyframe) {\n properties.push(prop);\n }\n return properties;\n }\n mergeTimelineCollectedStyles(timeline) {\n timeline._styleSummary.forEach((details1, prop) => {\n const details0 = this._styleSummary.get(prop);\n if (!details0 || details1.time > details0.time) {\n this._updateStyle(prop, details1.value);\n }\n });\n }\n buildKeyframes() {\n this.applyStylesToKeyframe();\n const preStyleProps = new Set();\n const postStyleProps = new Set();\n const isEmpty = this._keyframes.size === 1 && this.duration === 0;\n let finalKeyframes = [];\n this._keyframes.forEach((keyframe, time) => {\n const finalKeyframe = new Map([...this._backFill, ...keyframe]);\n finalKeyframe.forEach((value, prop) => {\n if (value === ɵPRE_STYLE) {\n preStyleProps.add(prop);\n }\n else if (value === AUTO_STYLE) {\n postStyleProps.add(prop);\n }\n });\n if (!isEmpty) {\n finalKeyframe.set('offset', time / this.duration);\n }\n finalKeyframes.push(finalKeyframe);\n });\n const preProps = [...preStyleProps.values()];\n const postProps = [...postStyleProps.values()];\n // special case for a 0-second animation (which is designed just to place styles onscreen)\n if (isEmpty) {\n const kf0 = finalKeyframes[0];\n const kf1 = new Map(kf0);\n kf0.set('offset', 0);\n kf1.set('offset', 1);\n finalKeyframes = [kf0, kf1];\n }\n return createTimelineInstruction(this.element, finalKeyframes, preProps, postProps, this.duration, this.startTime, this.easing, false);\n }\n}\nclass SubTimelineBuilder extends TimelineBuilder {\n constructor(driver, element, keyframes, preStyleProps, postStyleProps, timings, _stretchStartingKeyframe = false) {\n super(driver, element, timings.delay);\n this.keyframes = keyframes;\n this.preStyleProps = preStyleProps;\n this.postStyleProps = postStyleProps;\n this._stretchStartingKeyframe = _stretchStartingKeyframe;\n this.timings = { duration: timings.duration, delay: timings.delay, easing: timings.easing };\n }\n containsAnimation() {\n return this.keyframes.length > 1;\n }\n buildKeyframes() {\n let keyframes = this.keyframes;\n let { delay, duration, easing } = this.timings;\n if (this._stretchStartingKeyframe && delay) {\n const newKeyframes = [];\n const totalTime = duration + delay;\n const startingGap = delay / totalTime;\n // the original starting keyframe now starts once the delay is done\n const newFirstKeyframe = new Map(keyframes[0]);\n newFirstKeyframe.set('offset', 0);\n newKeyframes.push(newFirstKeyframe);\n const oldFirstKeyframe = new Map(keyframes[0]);\n oldFirstKeyframe.set('offset', roundOffset(startingGap));\n newKeyframes.push(oldFirstKeyframe);\n /*\n When the keyframe is stretched then it means that the delay before the animation\n starts is gone. Instead the first keyframe is placed at the start of the animation\n and it is then copied to where it starts when the original delay is over. This basically\n means nothing animates during that delay, but the styles are still rendered. For this\n to work the original offset values that exist in the original keyframes must be \"warped\"\n so that they can take the new keyframe + delay into account.\n \n delay=1000, duration=1000, keyframes = 0 .5 1\n \n turns into\n \n delay=0, duration=2000, keyframes = 0 .33 .66 1\n */\n // offsets between 1 ... n -1 are all warped by the keyframe stretch\n const limit = keyframes.length - 1;\n for (let i = 1; i <= limit; i++) {\n let kf = new Map(keyframes[i]);\n const oldOffset = kf.get('offset');\n const timeAtKeyframe = delay + oldOffset * duration;\n kf.set('offset', roundOffset(timeAtKeyframe / totalTime));\n newKeyframes.push(kf);\n }\n // the new starting keyframe should be added at the start\n duration = totalTime;\n delay = 0;\n easing = '';\n keyframes = newKeyframes;\n }\n return createTimelineInstruction(this.element, keyframes, this.preStyleProps, this.postStyleProps, duration, delay, easing, true);\n }\n}\nfunction roundOffset(offset, decimalPoints = 3) {\n const mult = Math.pow(10, decimalPoints - 1);\n return Math.round(offset * mult) / mult;\n}\nfunction flattenStyles(input, allStyles) {\n const styles = new Map();\n let allProperties;\n input.forEach((token) => {\n if (token === '*') {\n allProperties ??= allStyles.keys();\n for (let prop of allProperties) {\n styles.set(prop, AUTO_STYLE);\n }\n }\n else {\n for (let [prop, val] of token) {\n styles.set(prop, val);\n }\n }\n });\n return styles;\n}\n\nfunction createTransitionInstruction(element, triggerName, fromState, toState, isRemovalTransition, fromStyles, toStyles, timelines, queriedElements, preStyleProps, postStyleProps, totalTime, errors) {\n return {\n type: 0 /* AnimationTransitionInstructionType.TransitionAnimation */,\n element,\n triggerName,\n isRemovalTransition,\n fromState,\n fromStyles,\n toState,\n toStyles,\n timelines,\n queriedElements,\n preStyleProps,\n postStyleProps,\n totalTime,\n errors,\n };\n}\n\nconst EMPTY_OBJECT = {};\nclass AnimationTransitionFactory {\n constructor(_triggerName, ast, _stateStyles) {\n this._triggerName = _triggerName;\n this.ast = ast;\n this._stateStyles = _stateStyles;\n }\n match(currentState, nextState, element, params) {\n return oneOrMoreTransitionsMatch(this.ast.matchers, currentState, nextState, element, params);\n }\n buildStyles(stateName, params, errors) {\n let styler = this._stateStyles.get('*');\n if (stateName !== undefined) {\n styler = this._stateStyles.get(stateName?.toString()) || styler;\n }\n return styler ? styler.buildStyles(params, errors) : new Map();\n }\n build(driver, element, currentState, nextState, enterClassName, leaveClassName, currentOptions, nextOptions, subInstructions, skipAstBuild) {\n const errors = [];\n const transitionAnimationParams = (this.ast.options && this.ast.options.params) || EMPTY_OBJECT;\n const currentAnimationParams = (currentOptions && currentOptions.params) || EMPTY_OBJECT;\n const currentStateStyles = this.buildStyles(currentState, currentAnimationParams, errors);\n const nextAnimationParams = (nextOptions && nextOptions.params) || EMPTY_OBJECT;\n const nextStateStyles = this.buildStyles(nextState, nextAnimationParams, errors);\n const queriedElements = new Set();\n const preStyleMap = new Map();\n const postStyleMap = new Map();\n const isRemoval = nextState === 'void';\n const animationOptions = {\n params: applyParamDefaults(nextAnimationParams, transitionAnimationParams),\n delay: this.ast.options?.delay,\n };\n const timelines = skipAstBuild\n ? []\n : buildAnimationTimelines(driver, element, this.ast.animation, enterClassName, leaveClassName, currentStateStyles, nextStateStyles, animationOptions, subInstructions, errors);\n let totalTime = 0;\n timelines.forEach((tl) => {\n totalTime = Math.max(tl.duration + tl.delay, totalTime);\n });\n if (errors.length) {\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, [], [], preStyleMap, postStyleMap, totalTime, errors);\n }\n timelines.forEach((tl) => {\n const elm = tl.element;\n const preProps = getOrSetDefaultValue(preStyleMap, elm, new Set());\n tl.preStyleProps.forEach((prop) => preProps.add(prop));\n const postProps = getOrSetDefaultValue(postStyleMap, elm, new Set());\n tl.postStyleProps.forEach((prop) => postProps.add(prop));\n if (elm !== element) {\n queriedElements.add(elm);\n }\n });\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n checkNonAnimatableInTimelines(timelines, this._triggerName, driver);\n }\n return createTransitionInstruction(element, this._triggerName, currentState, nextState, isRemoval, currentStateStyles, nextStateStyles, timelines, [...queriedElements.values()], preStyleMap, postStyleMap, totalTime);\n }\n}\n/**\n * Checks inside a set of timelines if they try to animate a css property which is not considered\n * animatable, in that case it prints a warning on the console.\n * Besides that the function doesn't have any other effect.\n *\n * Note: this check is done here after the timelines are built instead of doing on a lower level so\n * that we can make sure that the warning appears only once per instruction (we can aggregate here\n * all the issues instead of finding them separately).\n *\n * @param timelines The built timelines for the current instruction.\n * @param triggerName The name of the trigger for the current instruction.\n * @param driver Animation driver used to perform the check.\n *\n */\nfunction checkNonAnimatableInTimelines(timelines, triggerName, driver) {\n if (!driver.validateAnimatableStyleProperty) {\n return;\n }\n const allowedNonAnimatableProps = new Set([\n // 'easing' is a utility/synthetic prop we use to represent\n // easing functions, it represents a property of the animation\n // which is not animatable but different values can be used\n // in different steps\n 'easing',\n ]);\n const invalidNonAnimatableProps = new Set();\n timelines.forEach(({ keyframes }) => {\n const nonAnimatablePropsInitialValues = new Map();\n keyframes.forEach((keyframe) => {\n const entriesToCheck = Array.from(keyframe.entries()).filter(([prop]) => !allowedNonAnimatableProps.has(prop));\n for (const [prop, value] of entriesToCheck) {\n if (!driver.validateAnimatableStyleProperty(prop)) {\n if (nonAnimatablePropsInitialValues.has(prop) && !invalidNonAnimatableProps.has(prop)) {\n const propInitialValue = nonAnimatablePropsInitialValues.get(prop);\n if (propInitialValue !== value) {\n invalidNonAnimatableProps.add(prop);\n }\n }\n else {\n nonAnimatablePropsInitialValues.set(prop, value);\n }\n }\n }\n });\n });\n if (invalidNonAnimatableProps.size > 0) {\n console.warn(`Warning: The animation trigger \"${triggerName}\" is attempting to animate the following` +\n ' not animatable properties: ' +\n Array.from(invalidNonAnimatableProps).join(', ') +\n '\\n' +\n '(to check the list of all animatable properties visit https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_animated_properties)');\n }\n}\nfunction oneOrMoreTransitionsMatch(matchFns, currentState, nextState, element, params) {\n return matchFns.some((fn) => fn(currentState, nextState, element, params));\n}\nfunction applyParamDefaults(userParams, defaults) {\n const result = { ...defaults };\n Object.entries(userParams).forEach(([key, value]) => {\n if (value != null) {\n result[key] = value;\n }\n });\n return result;\n}\nclass AnimationStateStyles {\n constructor(styles, defaultParams, normalizer) {\n this.styles = styles;\n this.defaultParams = defaultParams;\n this.normalizer = normalizer;\n }\n buildStyles(params, errors) {\n const finalStyles = new Map();\n const combinedParams = applyParamDefaults(params, this.defaultParams);\n this.styles.styles.forEach((value) => {\n if (typeof value !== 'string') {\n value.forEach((val, prop) => {\n if (val) {\n val = interpolateParams(val, combinedParams, errors);\n }\n const normalizedProp = this.normalizer.normalizePropertyName(prop, errors);\n val = this.normalizer.normalizeStyleValue(prop, normalizedProp, val, errors);\n finalStyles.set(prop, val);\n });\n }\n });\n return finalStyles;\n }\n}\n\nfunction buildTrigger(name, ast, normalizer) {\n return new AnimationTrigger(name, ast, normalizer);\n}\nclass AnimationTrigger {\n constructor(name, ast, _normalizer) {\n this.name = name;\n this.ast = ast;\n this._normalizer = _normalizer;\n this.transitionFactories = [];\n this.states = new Map();\n ast.states.forEach((ast) => {\n const defaultParams = (ast.options && ast.options.params) || {};\n this.states.set(ast.name, new AnimationStateStyles(ast.style, defaultParams, _normalizer));\n });\n balanceProperties(this.states, 'true', '1');\n balanceProperties(this.states, 'false', '0');\n ast.transitions.forEach((ast) => {\n this.transitionFactories.push(new AnimationTransitionFactory(name, ast, this.states));\n });\n this.fallbackTransition = createFallbackTransition(name, this.states, this._normalizer);\n }\n get containsQueries() {\n return this.ast.queryCount > 0;\n }\n matchTransition(currentState, nextState, element, params) {\n const entry = this.transitionFactories.find((f) => f.match(currentState, nextState, element, params));\n return entry || null;\n }\n matchStyles(currentState, params, errors) {\n return this.fallbackTransition.buildStyles(currentState, params, errors);\n }\n}\nfunction createFallbackTransition(triggerName, states, normalizer) {\n const matchers = [(fromState, toState) => true];\n const animation = { type: AnimationMetadataType.Sequence, steps: [], options: null };\n const transition = {\n type: AnimationMetadataType.Transition,\n animation,\n matchers,\n options: null,\n queryCount: 0,\n depCount: 0,\n };\n return new AnimationTransitionFactory(triggerName, transition, states);\n}\nfunction balanceProperties(stateMap, key1, key2) {\n if (stateMap.has(key1)) {\n if (!stateMap.has(key2)) {\n stateMap.set(key2, stateMap.get(key1));\n }\n }\n else if (stateMap.has(key2)) {\n stateMap.set(key1, stateMap.get(key2));\n }\n}\n\nconst EMPTY_INSTRUCTION_MAP = new ElementInstructionMap();\nclass TimelineAnimationEngine {\n constructor(bodyNode, _driver, _normalizer) {\n this.bodyNode = bodyNode;\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._animations = new Map();\n this._playersById = new Map();\n this.players = [];\n }\n register(id, metadata) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw registerFailed(errors);\n }\n else {\n if (warnings.length) {\n warnRegister(warnings);\n }\n this._animations.set(id, ast);\n }\n }\n _buildPlayer(i, preStyles, postStyles) {\n const element = i.element;\n const keyframes = normalizeKeyframes$1(this._normalizer, i.keyframes, preStyles, postStyles);\n return this._driver.animate(element, keyframes, i.duration, i.delay, i.easing, [], true);\n }\n create(id, element, options = {}) {\n const errors = [];\n const ast = this._animations.get(id);\n let instructions;\n const autoStylesMap = new Map();\n if (ast) {\n instructions = buildAnimationTimelines(this._driver, element, ast, ENTER_CLASSNAME, LEAVE_CLASSNAME, new Map(), new Map(), options, EMPTY_INSTRUCTION_MAP, errors);\n instructions.forEach((inst) => {\n const styles = getOrSetDefaultValue(autoStylesMap, inst.element, new Map());\n inst.postStyleProps.forEach((prop) => styles.set(prop, null));\n });\n }\n else {\n errors.push(missingOrDestroyedAnimation());\n instructions = [];\n }\n if (errors.length) {\n throw createAnimationFailed(errors);\n }\n autoStylesMap.forEach((styles, element) => {\n styles.forEach((_, prop) => {\n styles.set(prop, this._driver.computeStyle(element, prop, AUTO_STYLE));\n });\n });\n const players = instructions.map((i) => {\n const styles = autoStylesMap.get(i.element);\n return this._buildPlayer(i, new Map(), styles);\n });\n const player = optimizeGroupPlayer(players);\n this._playersById.set(id, player);\n player.onDestroy(() => this.destroy(id));\n this.players.push(player);\n return player;\n }\n destroy(id) {\n const player = this._getPlayer(id);\n player.destroy();\n this._playersById.delete(id);\n const index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n }\n _getPlayer(id) {\n const player = this._playersById.get(id);\n if (!player) {\n throw missingPlayer(id);\n }\n return player;\n }\n listen(id, element, eventName, callback) {\n // triggerName, fromState, toState are all ignored for timeline animations\n const baseEvent = makeAnimationEvent(element, '', '', '');\n listenOnPlayer(this._getPlayer(id), eventName, baseEvent, callback);\n return () => { };\n }\n command(id, element, command, args) {\n if (command == 'register') {\n this.register(id, args[0]);\n return;\n }\n if (command == 'create') {\n const options = (args[0] || {});\n this.create(id, element, options);\n return;\n }\n const player = this._getPlayer(id);\n switch (command) {\n case 'play':\n player.play();\n break;\n case 'pause':\n player.pause();\n break;\n case 'reset':\n player.reset();\n break;\n case 'restart':\n player.restart();\n break;\n case 'finish':\n player.finish();\n break;\n case 'init':\n player.init();\n break;\n case 'setPosition':\n player.setPosition(parseFloat(args[0]));\n break;\n case 'destroy':\n this.destroy(id);\n break;\n }\n }\n}\n\nconst QUEUED_CLASSNAME = 'ng-animate-queued';\nconst QUEUED_SELECTOR = '.ng-animate-queued';\nconst DISABLED_CLASSNAME = 'ng-animate-disabled';\nconst DISABLED_SELECTOR = '.ng-animate-disabled';\nconst STAR_CLASSNAME = 'ng-star-inserted';\nconst STAR_SELECTOR = '.ng-star-inserted';\nconst EMPTY_PLAYER_ARRAY = [];\nconst NULL_REMOVAL_STATE = {\n namespaceId: '',\n setForRemoval: false,\n setForMove: false,\n hasAnimation: false,\n removedBeforeQueried: false,\n};\nconst NULL_REMOVED_QUERIED_STATE = {\n namespaceId: '',\n setForMove: false,\n setForRemoval: false,\n hasAnimation: false,\n removedBeforeQueried: true,\n};\nconst REMOVAL_FLAG = '__ng_removed';\nclass StateValue {\n get params() {\n return this.options.params;\n }\n constructor(input, namespaceId = '') {\n this.namespaceId = namespaceId;\n const isObj = input && input.hasOwnProperty('value');\n const value = isObj ? input['value'] : input;\n this.value = normalizeTriggerValue(value);\n if (isObj) {\n // we drop the value property from options.\n const { value, ...options } = input;\n this.options = options;\n }\n else {\n this.options = {};\n }\n if (!this.options.params) {\n this.options.params = {};\n }\n }\n absorbOptions(options) {\n const newParams = options.params;\n if (newParams) {\n const oldParams = this.options.params;\n Object.keys(newParams).forEach((prop) => {\n if (oldParams[prop] == null) {\n oldParams[prop] = newParams[prop];\n }\n });\n }\n }\n}\nconst VOID_VALUE = 'void';\nconst DEFAULT_STATE_VALUE = new StateValue(VOID_VALUE);\nclass AnimationTransitionNamespace {\n constructor(id, hostElement, _engine) {\n this.id = id;\n this.hostElement = hostElement;\n this._engine = _engine;\n this.players = [];\n this._triggers = new Map();\n this._queue = [];\n this._elementListeners = new Map();\n this._hostClassName = 'ng-tns-' + id;\n addClass(hostElement, this._hostClassName);\n }\n listen(element, name, phase, callback) {\n if (!this._triggers.has(name)) {\n throw missingTrigger(phase, name);\n }\n if (phase == null || phase.length == 0) {\n throw missingEvent(name);\n }\n if (!isTriggerEventValid(phase)) {\n throw unsupportedTriggerEvent(phase, name);\n }\n const listeners = getOrSetDefaultValue(this._elementListeners, element, []);\n const data = { name, phase, callback };\n listeners.push(data);\n const triggersWithStates = getOrSetDefaultValue(this._engine.statesByElement, element, new Map());\n if (!triggersWithStates.has(name)) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + name);\n triggersWithStates.set(name, DEFAULT_STATE_VALUE);\n }\n return () => {\n // the event listener is removed AFTER the flush has occurred such\n // that leave animations callbacks can fire (otherwise if the node\n // is removed in between then the listeners would be deregistered)\n this._engine.afterFlush(() => {\n const index = listeners.indexOf(data);\n if (index >= 0) {\n listeners.splice(index, 1);\n }\n if (!this._triggers.has(name)) {\n triggersWithStates.delete(name);\n }\n });\n };\n }\n register(name, ast) {\n if (this._triggers.has(name)) {\n // throw\n return false;\n }\n else {\n this._triggers.set(name, ast);\n return true;\n }\n }\n _getTrigger(name) {\n const trigger = this._triggers.get(name);\n if (!trigger) {\n throw unregisteredTrigger(name);\n }\n return trigger;\n }\n trigger(element, triggerName, value, defaultToFallback = true) {\n const trigger = this._getTrigger(triggerName);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n let triggersWithStates = this._engine.statesByElement.get(element);\n if (!triggersWithStates) {\n addClass(element, NG_TRIGGER_CLASSNAME);\n addClass(element, NG_TRIGGER_CLASSNAME + '-' + triggerName);\n this._engine.statesByElement.set(element, (triggersWithStates = new Map()));\n }\n let fromState = triggersWithStates.get(triggerName);\n const toState = new StateValue(value, this.id);\n const isObj = value && value.hasOwnProperty('value');\n if (!isObj && fromState) {\n toState.absorbOptions(fromState.options);\n }\n triggersWithStates.set(triggerName, toState);\n if (!fromState) {\n fromState = DEFAULT_STATE_VALUE;\n }\n const isRemoval = toState.value === VOID_VALUE;\n // normally this isn't reached by here, however, if an object expression\n // is passed in then it may be a new object each time. Comparing the value\n // is important since that will stay the same despite there being a new object.\n // The removal arc here is special cased because the same element is triggered\n // twice in the event that it contains animations on the outer/inner portions\n // of the host container\n if (!isRemoval && fromState.value === toState.value) {\n // this means that despite the value not changing, some inner params\n // have changed which means that the animation final styles need to be applied\n if (!objEquals(fromState.params, toState.params)) {\n const errors = [];\n const fromStyles = trigger.matchStyles(fromState.value, fromState.params, errors);\n const toStyles = trigger.matchStyles(toState.value, toState.params, errors);\n if (errors.length) {\n this._engine.reportError(errors);\n }\n else {\n this._engine.afterFlush(() => {\n eraseStyles(element, fromStyles);\n setStyles(element, toStyles);\n });\n }\n }\n return;\n }\n const playersOnElement = getOrSetDefaultValue(this._engine.playersByElement, element, []);\n playersOnElement.forEach((player) => {\n // only remove the player if it is queued on the EXACT same trigger/namespace\n // we only also deal with queued players here because if the animation has\n // started then we want to keep the player alive until the flush happens\n // (which is where the previousPlayers are passed into the new player)\n if (player.namespaceId == this.id && player.triggerName == triggerName && player.queued) {\n player.destroy();\n }\n });\n let transition = trigger.matchTransition(fromState.value, toState.value, element, toState.params);\n let isFallbackTransition = false;\n if (!transition) {\n if (!defaultToFallback)\n return;\n transition = trigger.fallbackTransition;\n isFallbackTransition = true;\n }\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition,\n });\n if (!isFallbackTransition) {\n addClass(element, QUEUED_CLASSNAME);\n player.onStart(() => {\n removeClass(element, QUEUED_CLASSNAME);\n });\n }\n player.onDone(() => {\n let index = this.players.indexOf(player);\n if (index >= 0) {\n this.players.splice(index, 1);\n }\n const players = this._engine.playersByElement.get(element);\n if (players) {\n let index = players.indexOf(player);\n if (index >= 0) {\n players.splice(index, 1);\n }\n }\n });\n this.players.push(player);\n playersOnElement.push(player);\n return player;\n }\n deregister(name) {\n this._triggers.delete(name);\n this._engine.statesByElement.forEach((stateMap) => stateMap.delete(name));\n this._elementListeners.forEach((listeners, element) => {\n this._elementListeners.set(element, listeners.filter((entry) => {\n return entry.name != name;\n }));\n });\n }\n clearElementCache(element) {\n this._engine.statesByElement.delete(element);\n this._elementListeners.delete(element);\n const elementPlayers = this._engine.playersByElement.get(element);\n if (elementPlayers) {\n elementPlayers.forEach((player) => player.destroy());\n this._engine.playersByElement.delete(element);\n }\n }\n _signalRemovalForInnerTriggers(rootElement, context) {\n const elements = this._engine.driver.query(rootElement, NG_TRIGGER_SELECTOR, true);\n // emulate a leave animation for all inner nodes within this node.\n // If there are no animations found for any of the nodes then clear the cache\n // for the element.\n elements.forEach((elm) => {\n // this means that an inner remove() operation has already kicked off\n // the animation on this element...\n if (elm[REMOVAL_FLAG])\n return;\n const namespaces = this._engine.fetchNamespacesByElement(elm);\n if (namespaces.size) {\n namespaces.forEach((ns) => ns.triggerLeaveAnimation(elm, context, false, true));\n }\n else {\n this.clearElementCache(elm);\n }\n });\n // If the child elements were removed along with the parent, their animations might not\n // have completed. Clear all the elements from the cache so we don't end up with a memory leak.\n this._engine.afterFlushAnimationsDone(() => elements.forEach((elm) => this.clearElementCache(elm)));\n }\n triggerLeaveAnimation(element, context, destroyAfterComplete, defaultToFallback) {\n const triggerStates = this._engine.statesByElement.get(element);\n const previousTriggersValues = new Map();\n if (triggerStates) {\n const players = [];\n triggerStates.forEach((state, triggerName) => {\n previousTriggersValues.set(triggerName, state.value);\n // this check is here in the event that an element is removed\n // twice (both on the host level and the component level)\n if (this._triggers.has(triggerName)) {\n const player = this.trigger(element, triggerName, VOID_VALUE, defaultToFallback);\n if (player) {\n players.push(player);\n }\n }\n });\n if (players.length) {\n this._engine.markElementAsRemoved(this.id, element, true, context, previousTriggersValues);\n if (destroyAfterComplete) {\n optimizeGroupPlayer(players).onDone(() => this._engine.processLeaveNode(element));\n }\n return true;\n }\n }\n return false;\n }\n prepareLeaveAnimationListeners(element) {\n const listeners = this._elementListeners.get(element);\n const elementStates = this._engine.statesByElement.get(element);\n // if this statement fails then it means that the element was picked up\n // by an earlier flush (or there are no listeners at all to track the leave).\n if (listeners && elementStates) {\n const visitedTriggers = new Set();\n listeners.forEach((listener) => {\n const triggerName = listener.name;\n if (visitedTriggers.has(triggerName))\n return;\n visitedTriggers.add(triggerName);\n const trigger = this._triggers.get(triggerName);\n const transition = trigger.fallbackTransition;\n const fromState = elementStates.get(triggerName) || DEFAULT_STATE_VALUE;\n const toState = new StateValue(VOID_VALUE);\n const player = new TransitionAnimationPlayer(this.id, triggerName, element);\n this._engine.totalQueuedPlayers++;\n this._queue.push({\n element,\n triggerName,\n transition,\n fromState,\n toState,\n player,\n isFallbackTransition: true,\n });\n });\n }\n }\n removeNode(element, context) {\n const engine = this._engine;\n if (element.childElementCount) {\n this._signalRemovalForInnerTriggers(element, context);\n }\n // this means that a * => VOID animation was detected and kicked off\n if (this.triggerLeaveAnimation(element, context, true))\n return;\n // find the player that is animating and make sure that the\n // removal is delayed until that player has completed\n let containsPotentialParentTransition = false;\n if (engine.totalAnimations) {\n const currentPlayers = engine.players.length\n ? engine.playersByQueriedElement.get(element)\n : [];\n // when this `if statement` does not continue forward it means that\n // a previous animation query has selected the current element and\n // is animating it. In this situation want to continue forwards and\n // allow the element to be queued up for animation later.\n if (currentPlayers && currentPlayers.length) {\n containsPotentialParentTransition = true;\n }\n else {\n let parent = element;\n while ((parent = parent.parentNode)) {\n const triggers = engine.statesByElement.get(parent);\n if (triggers) {\n containsPotentialParentTransition = true;\n break;\n }\n }\n }\n }\n // at this stage we know that the element will either get removed\n // during flush or will be picked up by a parent query. Either way\n // we need to fire the listeners for this element when it DOES get\n // removed (once the query parent animation is done or after flush)\n this.prepareLeaveAnimationListeners(element);\n // whether or not a parent has an animation we need to delay the deferral of the leave\n // operation until we have more information (which we do after flush() has been called)\n if (containsPotentialParentTransition) {\n engine.markElementAsRemoved(this.id, element, false, context);\n }\n else {\n const removalFlag = element[REMOVAL_FLAG];\n if (!removalFlag || removalFlag === NULL_REMOVAL_STATE) {\n // we do this after the flush has occurred such\n // that the callbacks can be fired\n engine.afterFlush(() => this.clearElementCache(element));\n engine.destroyInnerAnimations(element);\n engine._onRemovalComplete(element, context);\n }\n }\n }\n insertNode(element, parent) {\n addClass(element, this._hostClassName);\n }\n drainQueuedTransitions(microtaskId) {\n const instructions = [];\n this._queue.forEach((entry) => {\n const player = entry.player;\n if (player.destroyed)\n return;\n const element = entry.element;\n const listeners = this._elementListeners.get(element);\n if (listeners) {\n listeners.forEach((listener) => {\n if (listener.name == entry.triggerName) {\n const baseEvent = makeAnimationEvent(element, entry.triggerName, entry.fromState.value, entry.toState.value);\n baseEvent['_data'] = microtaskId;\n listenOnPlayer(entry.player, listener.phase, baseEvent, listener.callback);\n }\n });\n }\n if (player.markedForDestroy) {\n this._engine.afterFlush(() => {\n // now we can destroy the element properly since the event listeners have\n // been bound to the player\n player.destroy();\n });\n }\n else {\n instructions.push(entry);\n }\n });\n this._queue = [];\n return instructions.sort((a, b) => {\n // if depCount == 0 them move to front\n // otherwise if a contains b then move back\n const d0 = a.transition.ast.depCount;\n const d1 = b.transition.ast.depCount;\n if (d0 == 0 || d1 == 0) {\n return d0 - d1;\n }\n return this._engine.driver.containsElement(a.element, b.element) ? 1 : -1;\n });\n }\n destroy(context) {\n this.players.forEach((p) => p.destroy());\n this._signalRemovalForInnerTriggers(this.hostElement, context);\n }\n}\nclass TransitionAnimationEngine {\n /** @internal */\n _onRemovalComplete(element, context) {\n this.onRemovalComplete(element, context);\n }\n constructor(bodyNode, driver, _normalizer) {\n this.bodyNode = bodyNode;\n this.driver = driver;\n this._normalizer = _normalizer;\n this.players = [];\n this.newHostElements = new Map();\n this.playersByElement = new Map();\n this.playersByQueriedElement = new Map();\n this.statesByElement = new Map();\n this.disabledNodes = new Set();\n this.totalAnimations = 0;\n this.totalQueuedPlayers = 0;\n this._namespaceLookup = {};\n this._namespaceList = [];\n this._flushFns = [];\n this._whenQuietFns = [];\n this.namespacesByHostElement = new Map();\n this.collectedEnterElements = [];\n this.collectedLeaveElements = [];\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n }\n get queuedPlayers() {\n const players = [];\n this._namespaceList.forEach((ns) => {\n ns.players.forEach((player) => {\n if (player.queued) {\n players.push(player);\n }\n });\n });\n return players;\n }\n createNamespace(namespaceId, hostElement) {\n const ns = new AnimationTransitionNamespace(namespaceId, hostElement, this);\n if (this.bodyNode && this.driver.containsElement(this.bodyNode, hostElement)) {\n this._balanceNamespaceList(ns, hostElement);\n }\n else {\n // defer this later until flush during when the host element has\n // been inserted so that we know exactly where to place it in\n // the namespace list\n this.newHostElements.set(hostElement, ns);\n // given that this host element is a part of the animation code, it\n // may or may not be inserted by a parent node that is of an\n // animation renderer type. If this happens then we can still have\n // access to this item when we query for :enter nodes. If the parent\n // is a renderer then the set data-structure will normalize the entry\n this.collectEnterElement(hostElement);\n }\n return (this._namespaceLookup[namespaceId] = ns);\n }\n _balanceNamespaceList(ns, hostElement) {\n const namespaceList = this._namespaceList;\n const namespacesByHostElement = this.namespacesByHostElement;\n const limit = namespaceList.length - 1;\n if (limit >= 0) {\n let found = false;\n // Find the closest ancestor with an existing namespace so we can then insert `ns` after it,\n // establishing a top-down ordering of namespaces in `this._namespaceList`.\n let ancestor = this.driver.getParentElement(hostElement);\n while (ancestor) {\n const ancestorNs = namespacesByHostElement.get(ancestor);\n if (ancestorNs) {\n // An animation namespace has been registered for this ancestor, so we insert `ns`\n // right after it to establish top-down ordering of animation namespaces.\n const index = namespaceList.indexOf(ancestorNs);\n namespaceList.splice(index + 1, 0, ns);\n found = true;\n break;\n }\n ancestor = this.driver.getParentElement(ancestor);\n }\n if (!found) {\n // No namespace exists that is an ancestor of `ns`, so `ns` is inserted at the front to\n // ensure that any existing descendants are ordered after `ns`, retaining the desired\n // top-down ordering.\n namespaceList.unshift(ns);\n }\n }\n else {\n namespaceList.push(ns);\n }\n namespacesByHostElement.set(hostElement, ns);\n return ns;\n }\n register(namespaceId, hostElement) {\n let ns = this._namespaceLookup[namespaceId];\n if (!ns) {\n ns = this.createNamespace(namespaceId, hostElement);\n }\n return ns;\n }\n registerTrigger(namespaceId, name, trigger) {\n let ns = this._namespaceLookup[namespaceId];\n if (ns && ns.register(name, trigger)) {\n this.totalAnimations++;\n }\n }\n destroy(namespaceId, context) {\n if (!namespaceId)\n return;\n this.afterFlush(() => { });\n this.afterFlushAnimationsDone(() => {\n const ns = this._fetchNamespace(namespaceId);\n this.namespacesByHostElement.delete(ns.hostElement);\n const index = this._namespaceList.indexOf(ns);\n if (index >= 0) {\n this._namespaceList.splice(index, 1);\n }\n ns.destroy(context);\n delete this._namespaceLookup[namespaceId];\n });\n }\n _fetchNamespace(id) {\n return this._namespaceLookup[id];\n }\n fetchNamespacesByElement(element) {\n // normally there should only be one namespace per element, however\n // if @triggers are placed on both the component element and then\n // its host element (within the component code) then there will be\n // two namespaces returned. We use a set here to simply deduplicate\n // the namespaces in case (for the reason described above) there are multiple triggers\n const namespaces = new Set();\n const elementStates = this.statesByElement.get(element);\n if (elementStates) {\n for (let stateValue of elementStates.values()) {\n if (stateValue.namespaceId) {\n const ns = this._fetchNamespace(stateValue.namespaceId);\n if (ns) {\n namespaces.add(ns);\n }\n }\n }\n }\n return namespaces;\n }\n trigger(namespaceId, element, name, value) {\n if (isElementNode(element)) {\n const ns = this._fetchNamespace(namespaceId);\n if (ns) {\n ns.trigger(element, name, value);\n return true;\n }\n }\n return false;\n }\n insertNode(namespaceId, element, parent, insertBefore) {\n if (!isElementNode(element))\n return;\n // special case for when an element is removed and reinserted (move operation)\n // when this occurs we do not want to use the element for deletion later\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n details.setForRemoval = false;\n details.setForMove = true;\n const index = this.collectedLeaveElements.indexOf(element);\n if (index >= 0) {\n this.collectedLeaveElements.splice(index, 1);\n }\n }\n // in the event that the namespaceId is blank then the caller\n // code does not contain any animation code in it, but it is\n // just being called so that the node is marked as being inserted\n if (namespaceId) {\n const ns = this._fetchNamespace(namespaceId);\n // This if-statement is a workaround for router issue #21947.\n // The router sometimes hits a race condition where while a route\n // is being instantiated a new navigation arrives, triggering leave\n // animation of DOM that has not been fully initialized, until this\n // is resolved, we need to handle the scenario when DOM is not in a\n // consistent state during the animation.\n if (ns) {\n ns.insertNode(element, parent);\n }\n }\n // only *directives and host elements are inserted before\n if (insertBefore) {\n this.collectEnterElement(element);\n }\n }\n collectEnterElement(element) {\n this.collectedEnterElements.push(element);\n }\n markElementAsDisabled(element, value) {\n if (value) {\n if (!this.disabledNodes.has(element)) {\n this.disabledNodes.add(element);\n addClass(element, DISABLED_CLASSNAME);\n }\n }\n else if (this.disabledNodes.has(element)) {\n this.disabledNodes.delete(element);\n removeClass(element, DISABLED_CLASSNAME);\n }\n }\n removeNode(namespaceId, element, context) {\n if (isElementNode(element)) {\n const ns = namespaceId ? this._fetchNamespace(namespaceId) : null;\n if (ns) {\n ns.removeNode(element, context);\n }\n else {\n this.markElementAsRemoved(namespaceId, element, false, context);\n }\n const hostNS = this.namespacesByHostElement.get(element);\n if (hostNS && hostNS.id !== namespaceId) {\n hostNS.removeNode(element, context);\n }\n }\n else {\n this._onRemovalComplete(element, context);\n }\n }\n markElementAsRemoved(namespaceId, element, hasAnimation, context, previousTriggersValues) {\n this.collectedLeaveElements.push(element);\n element[REMOVAL_FLAG] = {\n namespaceId,\n setForRemoval: context,\n hasAnimation,\n removedBeforeQueried: false,\n previousTriggersValues,\n };\n }\n listen(namespaceId, element, name, phase, callback) {\n if (isElementNode(element)) {\n return this._fetchNamespace(namespaceId).listen(element, name, phase, callback);\n }\n return () => { };\n }\n _buildInstruction(entry, subTimelines, enterClassName, leaveClassName, skipBuildAst) {\n return entry.transition.build(this.driver, entry.element, entry.fromState.value, entry.toState.value, enterClassName, leaveClassName, entry.fromState.options, entry.toState.options, subTimelines, skipBuildAst);\n }\n destroyInnerAnimations(containerElement) {\n let elements = this.driver.query(containerElement, NG_TRIGGER_SELECTOR, true);\n elements.forEach((element) => this.destroyActiveAnimationsForElement(element));\n if (this.playersByQueriedElement.size == 0)\n return;\n elements = this.driver.query(containerElement, NG_ANIMATING_SELECTOR, true);\n elements.forEach((element) => this.finishActiveQueriedAnimationOnElement(element));\n }\n destroyActiveAnimationsForElement(element) {\n const players = this.playersByElement.get(element);\n if (players) {\n players.forEach((player) => {\n // special case for when an element is set for destruction, but hasn't started.\n // in this situation we want to delay the destruction until the flush occurs\n // so that any event listeners attached to the player are triggered.\n if (player.queued) {\n player.markedForDestroy = true;\n }\n else {\n player.destroy();\n }\n });\n }\n }\n finishActiveQueriedAnimationOnElement(element) {\n const players = this.playersByQueriedElement.get(element);\n if (players) {\n players.forEach((player) => player.finish());\n }\n }\n whenRenderingDone() {\n return new Promise((resolve) => {\n if (this.players.length) {\n return optimizeGroupPlayer(this.players).onDone(() => resolve());\n }\n else {\n resolve();\n }\n });\n }\n processLeaveNode(element) {\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n // this will prevent it from removing it twice\n element[REMOVAL_FLAG] = NULL_REMOVAL_STATE;\n if (details.namespaceId) {\n this.destroyInnerAnimations(element);\n const ns = this._fetchNamespace(details.namespaceId);\n if (ns) {\n ns.clearElementCache(element);\n }\n }\n this._onRemovalComplete(element, details.setForRemoval);\n }\n if (element.classList?.contains(DISABLED_CLASSNAME)) {\n this.markElementAsDisabled(element, false);\n }\n this.driver.query(element, DISABLED_SELECTOR, true).forEach((node) => {\n this.markElementAsDisabled(node, false);\n });\n }\n flush(microtaskId = -1) {\n let players = [];\n if (this.newHostElements.size) {\n this.newHostElements.forEach((ns, element) => this._balanceNamespaceList(ns, element));\n this.newHostElements.clear();\n }\n if (this.totalAnimations && this.collectedEnterElements.length) {\n for (let i = 0; i < this.collectedEnterElements.length; i++) {\n const elm = this.collectedEnterElements[i];\n addClass(elm, STAR_CLASSNAME);\n }\n }\n if (this._namespaceList.length &&\n (this.totalQueuedPlayers || this.collectedLeaveElements.length)) {\n const cleanupFns = [];\n try {\n players = this._flushAnimations(cleanupFns, microtaskId);\n }\n finally {\n for (let i = 0; i < cleanupFns.length; i++) {\n cleanupFns[i]();\n }\n }\n }\n else {\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n this.processLeaveNode(element);\n }\n }\n this.totalQueuedPlayers = 0;\n this.collectedEnterElements.length = 0;\n this.collectedLeaveElements.length = 0;\n this._flushFns.forEach((fn) => fn());\n this._flushFns = [];\n if (this._whenQuietFns.length) {\n // we move these over to a variable so that\n // if any new callbacks are registered in another\n // flush they do not populate the existing set\n const quietFns = this._whenQuietFns;\n this._whenQuietFns = [];\n if (players.length) {\n optimizeGroupPlayer(players).onDone(() => {\n quietFns.forEach((fn) => fn());\n });\n }\n else {\n quietFns.forEach((fn) => fn());\n }\n }\n }\n reportError(errors) {\n throw triggerTransitionsFailed(errors);\n }\n _flushAnimations(cleanupFns, microtaskId) {\n const subTimelines = new ElementInstructionMap();\n const skippedPlayers = [];\n const skippedPlayersMap = new Map();\n const queuedInstructions = [];\n const queriedElements = new Map();\n const allPreStyleElements = new Map();\n const allPostStyleElements = new Map();\n const disabledElementsSet = new Set();\n this.disabledNodes.forEach((node) => {\n disabledElementsSet.add(node);\n const nodesThatAreDisabled = this.driver.query(node, QUEUED_SELECTOR, true);\n for (let i = 0; i < nodesThatAreDisabled.length; i++) {\n disabledElementsSet.add(nodesThatAreDisabled[i]);\n }\n });\n const bodyNode = this.bodyNode;\n const allTriggerElements = Array.from(this.statesByElement.keys());\n const enterNodeMap = buildRootMap(allTriggerElements, this.collectedEnterElements);\n // this must occur before the instructions are built below such that\n // the :enter queries match the elements (since the timeline queries\n // are fired during instruction building).\n const enterNodeMapIds = new Map();\n let i = 0;\n enterNodeMap.forEach((nodes, root) => {\n const className = ENTER_CLASSNAME + i++;\n enterNodeMapIds.set(root, className);\n nodes.forEach((node) => addClass(node, className));\n });\n const allLeaveNodes = [];\n const mergedLeaveNodes = new Set();\n const leaveNodesWithoutAnimations = new Set();\n for (let i = 0; i < this.collectedLeaveElements.length; i++) {\n const element = this.collectedLeaveElements[i];\n const details = element[REMOVAL_FLAG];\n if (details && details.setForRemoval) {\n allLeaveNodes.push(element);\n mergedLeaveNodes.add(element);\n if (details.hasAnimation) {\n this.driver\n .query(element, STAR_SELECTOR, true)\n .forEach((elm) => mergedLeaveNodes.add(elm));\n }\n else {\n leaveNodesWithoutAnimations.add(element);\n }\n }\n }\n const leaveNodeMapIds = new Map();\n const leaveNodeMap = buildRootMap(allTriggerElements, Array.from(mergedLeaveNodes));\n leaveNodeMap.forEach((nodes, root) => {\n const className = LEAVE_CLASSNAME + i++;\n leaveNodeMapIds.set(root, className);\n nodes.forEach((node) => addClass(node, className));\n });\n cleanupFns.push(() => {\n enterNodeMap.forEach((nodes, root) => {\n const className = enterNodeMapIds.get(root);\n nodes.forEach((node) => removeClass(node, className));\n });\n leaveNodeMap.forEach((nodes, root) => {\n const className = leaveNodeMapIds.get(root);\n nodes.forEach((node) => removeClass(node, className));\n });\n allLeaveNodes.forEach((element) => {\n this.processLeaveNode(element);\n });\n });\n const allPlayers = [];\n const erroneousTransitions = [];\n for (let i = this._namespaceList.length - 1; i >= 0; i--) {\n const ns = this._namespaceList[i];\n ns.drainQueuedTransitions(microtaskId).forEach((entry) => {\n const player = entry.player;\n const element = entry.element;\n allPlayers.push(player);\n if (this.collectedEnterElements.length) {\n const details = element[REMOVAL_FLAG];\n // animations for move operations (elements being removed and reinserted,\n // e.g. when the order of an *ngFor list changes) are currently not supported\n if (details && details.setForMove) {\n if (details.previousTriggersValues &&\n details.previousTriggersValues.has(entry.triggerName)) {\n const previousValue = details.previousTriggersValues.get(entry.triggerName);\n // we need to restore the previous trigger value since the element has\n // only been moved and hasn't actually left the DOM\n const triggersWithStates = this.statesByElement.get(entry.element);\n if (triggersWithStates && triggersWithStates.has(entry.triggerName)) {\n const state = triggersWithStates.get(entry.triggerName);\n state.value = previousValue;\n triggersWithStates.set(entry.triggerName, state);\n }\n }\n player.destroy();\n return;\n }\n }\n const nodeIsOrphaned = !bodyNode || !this.driver.containsElement(bodyNode, element);\n const leaveClassName = leaveNodeMapIds.get(element);\n const enterClassName = enterNodeMapIds.get(element);\n const instruction = this._buildInstruction(entry, subTimelines, enterClassName, leaveClassName, nodeIsOrphaned);\n if (instruction.errors && instruction.errors.length) {\n erroneousTransitions.push(instruction);\n return;\n }\n // even though the element may not be in the DOM, it may still\n // be added at a later point (due to the mechanics of content\n // projection and/or dynamic component insertion) therefore it's\n // important to still style the element.\n if (nodeIsOrphaned) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // if an unmatched transition is queued and ready to go\n // then it SHOULD NOT render an animation and cancel the\n // previously running animations.\n if (entry.isFallbackTransition) {\n player.onStart(() => eraseStyles(element, instruction.fromStyles));\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n skippedPlayers.push(player);\n return;\n }\n // this means that if a parent animation uses this animation as a sub-trigger\n // then it will instruct the timeline builder not to add a player delay, but\n // instead stretch the first keyframe gap until the animation starts. This is\n // important in order to prevent extra initialization styles from being\n // required by the user for the animation.\n const timelines = [];\n instruction.timelines.forEach((tl) => {\n tl.stretchStartingKeyframe = true;\n if (!this.disabledNodes.has(tl.element)) {\n timelines.push(tl);\n }\n });\n instruction.timelines = timelines;\n subTimelines.append(element, instruction.timelines);\n const tuple = { instruction, player, element };\n queuedInstructions.push(tuple);\n instruction.queriedElements.forEach((element) => getOrSetDefaultValue(queriedElements, element, []).push(player));\n instruction.preStyleProps.forEach((stringMap, element) => {\n if (stringMap.size) {\n let setVal = allPreStyleElements.get(element);\n if (!setVal) {\n allPreStyleElements.set(element, (setVal = new Set()));\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n }\n });\n instruction.postStyleProps.forEach((stringMap, element) => {\n let setVal = allPostStyleElements.get(element);\n if (!setVal) {\n allPostStyleElements.set(element, (setVal = new Set()));\n }\n stringMap.forEach((_, prop) => setVal.add(prop));\n });\n });\n }\n if (erroneousTransitions.length) {\n const errors = [];\n erroneousTransitions.forEach((instruction) => {\n errors.push(transitionFailed(instruction.triggerName, instruction.errors));\n });\n allPlayers.forEach((player) => player.destroy());\n this.reportError(errors);\n }\n const allPreviousPlayersMap = new Map();\n // this map tells us which element in the DOM tree is contained by\n // which animation. Further down this map will get populated once\n // the players are built and in doing so we can use it to efficiently\n // figure out if a sub player is skipped due to a parent player having priority.\n const animationElementMap = new Map();\n queuedInstructions.forEach((entry) => {\n const element = entry.element;\n if (subTimelines.has(element)) {\n animationElementMap.set(element, element);\n this._beforeAnimationBuild(entry.player.namespaceId, entry.instruction, allPreviousPlayersMap);\n }\n });\n skippedPlayers.forEach((player) => {\n const element = player.element;\n const previousPlayers = this._getPreviousPlayers(element, false, player.namespaceId, player.triggerName, null);\n previousPlayers.forEach((prevPlayer) => {\n getOrSetDefaultValue(allPreviousPlayersMap, element, []).push(prevPlayer);\n prevPlayer.destroy();\n });\n });\n // this is a special case for nodes that will be removed either by\n // having their own leave animations or by being queried in a container\n // that will be removed once a parent animation is complete. The idea\n // here is that * styles must be identical to ! styles because of\n // backwards compatibility (* is also filled in by default in many places).\n // Otherwise * styles will return an empty value or \"auto\" since the element\n // passed to getComputedStyle will not be visible (since * === destination)\n const replaceNodes = allLeaveNodes.filter((node) => {\n return replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements);\n });\n // POST STAGE: fill the * styles\n const postStylesMap = new Map();\n const allLeaveQueriedNodes = cloakAndComputeStyles(postStylesMap, this.driver, leaveNodesWithoutAnimations, allPostStyleElements, AUTO_STYLE);\n allLeaveQueriedNodes.forEach((node) => {\n if (replacePostStylesAsPre(node, allPreStyleElements, allPostStyleElements)) {\n replaceNodes.push(node);\n }\n });\n // PRE STAGE: fill the ! styles\n const preStylesMap = new Map();\n enterNodeMap.forEach((nodes, root) => {\n cloakAndComputeStyles(preStylesMap, this.driver, new Set(nodes), allPreStyleElements, ɵPRE_STYLE);\n });\n replaceNodes.forEach((node) => {\n const post = postStylesMap.get(node);\n const pre = preStylesMap.get(node);\n postStylesMap.set(node, new Map([...(post?.entries() ?? []), ...(pre?.entries() ?? [])]));\n });\n const rootPlayers = [];\n const subPlayers = [];\n const NO_PARENT_ANIMATION_ELEMENT_DETECTED = {};\n queuedInstructions.forEach((entry) => {\n const { element, player, instruction } = entry;\n // this means that it was never consumed by a parent animation which\n // means that it is independent and therefore should be set for animation\n if (subTimelines.has(element)) {\n if (disabledElementsSet.has(element)) {\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n player.disabled = true;\n player.overrideTotalTime(instruction.totalTime);\n skippedPlayers.push(player);\n return;\n }\n // this will flow up the DOM and query the map to figure out\n // if a parent animation has priority over it. In the situation\n // that a parent is detected then it will cancel the loop. If\n // nothing is detected, or it takes a few hops to find a parent,\n // then it will fill in the missing nodes and signal them as having\n // a detected parent (or a NO_PARENT value via a special constant).\n let parentWithAnimation = NO_PARENT_ANIMATION_ELEMENT_DETECTED;\n if (animationElementMap.size > 1) {\n let elm = element;\n const parentsToAdd = [];\n while ((elm = elm.parentNode)) {\n const detectedParent = animationElementMap.get(elm);\n if (detectedParent) {\n parentWithAnimation = detectedParent;\n break;\n }\n parentsToAdd.push(elm);\n }\n parentsToAdd.forEach((parent) => animationElementMap.set(parent, parentWithAnimation));\n }\n const innerPlayer = this._buildAnimation(player.namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap);\n player.setRealPlayer(innerPlayer);\n if (parentWithAnimation === NO_PARENT_ANIMATION_ELEMENT_DETECTED) {\n rootPlayers.push(player);\n }\n else {\n const parentPlayers = this.playersByElement.get(parentWithAnimation);\n if (parentPlayers && parentPlayers.length) {\n player.parentPlayer = optimizeGroupPlayer(parentPlayers);\n }\n skippedPlayers.push(player);\n }\n }\n else {\n eraseStyles(element, instruction.fromStyles);\n player.onDestroy(() => setStyles(element, instruction.toStyles));\n // there still might be a ancestor player animating this\n // element therefore we will still add it as a sub player\n // even if its animation may be disabled\n subPlayers.push(player);\n if (disabledElementsSet.has(element)) {\n skippedPlayers.push(player);\n }\n }\n });\n // find all of the sub players' corresponding inner animation players\n subPlayers.forEach((player) => {\n // even if no players are found for a sub animation it\n // will still complete itself after the next tick since it's Noop\n const playersForElement = skippedPlayersMap.get(player.element);\n if (playersForElement && playersForElement.length) {\n const innerPlayer = optimizeGroupPlayer(playersForElement);\n player.setRealPlayer(innerPlayer);\n }\n });\n // the reason why we don't actually play the animation is\n // because all that a skipped player is designed to do is to\n // fire the start/done transition callback events\n skippedPlayers.forEach((player) => {\n if (player.parentPlayer) {\n player.syncPlayerEvents(player.parentPlayer);\n }\n else {\n player.destroy();\n }\n });\n // run through all of the queued removals and see if they\n // were picked up by a query. If not then perform the removal\n // operation right away unless a parent animation is ongoing.\n for (let i = 0; i < allLeaveNodes.length; i++) {\n const element = allLeaveNodes[i];\n const details = element[REMOVAL_FLAG];\n removeClass(element, LEAVE_CLASSNAME);\n // this means the element has a removal animation that is being\n // taken care of and therefore the inner elements will hang around\n // until that animation is over (or the parent queried animation)\n if (details && details.hasAnimation)\n continue;\n let players = [];\n // if this element is queried or if it contains queried children\n // then we want for the element not to be removed from the page\n // until the queried animations have finished\n if (queriedElements.size) {\n let queriedPlayerResults = queriedElements.get(element);\n if (queriedPlayerResults && queriedPlayerResults.length) {\n players.push(...queriedPlayerResults);\n }\n let queriedInnerElements = this.driver.query(element, NG_ANIMATING_SELECTOR, true);\n for (let j = 0; j < queriedInnerElements.length; j++) {\n let queriedPlayers = queriedElements.get(queriedInnerElements[j]);\n if (queriedPlayers && queriedPlayers.length) {\n players.push(...queriedPlayers);\n }\n }\n }\n const activePlayers = players.filter((p) => !p.destroyed);\n if (activePlayers.length) {\n removeNodesAfterAnimationDone(this, element, activePlayers);\n }\n else {\n this.processLeaveNode(element);\n }\n }\n // this is required so the cleanup method doesn't remove them\n allLeaveNodes.length = 0;\n rootPlayers.forEach((player) => {\n this.players.push(player);\n player.onDone(() => {\n player.destroy();\n const index = this.players.indexOf(player);\n this.players.splice(index, 1);\n });\n player.play();\n });\n return rootPlayers;\n }\n afterFlush(callback) {\n this._flushFns.push(callback);\n }\n afterFlushAnimationsDone(callback) {\n this._whenQuietFns.push(callback);\n }\n _getPreviousPlayers(element, isQueriedElement, namespaceId, triggerName, toStateValue) {\n let players = [];\n if (isQueriedElement) {\n const queriedElementPlayers = this.playersByQueriedElement.get(element);\n if (queriedElementPlayers) {\n players = queriedElementPlayers;\n }\n }\n else {\n const elementPlayers = this.playersByElement.get(element);\n if (elementPlayers) {\n const isRemovalAnimation = !toStateValue || toStateValue == VOID_VALUE;\n elementPlayers.forEach((player) => {\n if (player.queued)\n return;\n if (!isRemovalAnimation && player.triggerName != triggerName)\n return;\n players.push(player);\n });\n }\n }\n if (namespaceId || triggerName) {\n players = players.filter((player) => {\n if (namespaceId && namespaceId != player.namespaceId)\n return false;\n if (triggerName && triggerName != player.triggerName)\n return false;\n return true;\n });\n }\n return players;\n }\n _beforeAnimationBuild(namespaceId, instruction, allPreviousPlayersMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // when a removal animation occurs, ALL previous players are collected\n // and destroyed (even if they are outside of the current namespace)\n const targetNameSpaceId = instruction.isRemovalTransition\n ? undefined\n : namespaceId;\n const targetTriggerName = instruction.isRemovalTransition\n ? undefined\n : triggerName;\n for (const timelineInstruction of instruction.timelines) {\n const element = timelineInstruction.element;\n const isQueriedElement = element !== rootElement;\n const players = getOrSetDefaultValue(allPreviousPlayersMap, element, []);\n const previousPlayers = this._getPreviousPlayers(element, isQueriedElement, targetNameSpaceId, targetTriggerName, instruction.toState);\n previousPlayers.forEach((player) => {\n const realPlayer = player.getRealPlayer();\n if (realPlayer.beforeDestroy) {\n realPlayer.beforeDestroy();\n }\n player.destroy();\n players.push(player);\n });\n }\n // this needs to be done so that the PRE/POST styles can be\n // computed properly without interfering with the previous animation\n eraseStyles(rootElement, instruction.fromStyles);\n }\n _buildAnimation(namespaceId, instruction, allPreviousPlayersMap, skippedPlayersMap, preStylesMap, postStylesMap) {\n const triggerName = instruction.triggerName;\n const rootElement = instruction.element;\n // we first run this so that the previous animation player\n // data can be passed into the successive animation players\n const allQueriedPlayers = [];\n const allConsumedElements = new Set();\n const allSubElements = new Set();\n const allNewPlayers = instruction.timelines.map((timelineInstruction) => {\n const element = timelineInstruction.element;\n allConsumedElements.add(element);\n // FIXME (matsko): make sure to-be-removed animations are removed properly\n const details = element[REMOVAL_FLAG];\n if (details && details.removedBeforeQueried)\n return new NoopAnimationPlayer(timelineInstruction.duration, timelineInstruction.delay);\n const isQueriedElement = element !== rootElement;\n const previousPlayers = flattenGroupPlayers((allPreviousPlayersMap.get(element) || EMPTY_PLAYER_ARRAY).map((p) => p.getRealPlayer())).filter((p) => {\n // the `element` is not apart of the AnimationPlayer definition, but\n // Mock/WebAnimations\n // use the element within their implementation. This will be added in Angular5 to\n // AnimationPlayer\n const pp = p;\n return pp.element ? pp.element === element : false;\n });\n const preStyles = preStylesMap.get(element);\n const postStyles = postStylesMap.get(element);\n const keyframes = normalizeKeyframes$1(this._normalizer, timelineInstruction.keyframes, preStyles, postStyles);\n const player = this._buildPlayer(timelineInstruction, keyframes, previousPlayers);\n // this means that this particular player belongs to a sub trigger. It is\n // important that we match this player up with the corresponding (@trigger.listener)\n if (timelineInstruction.subTimeline && skippedPlayersMap) {\n allSubElements.add(element);\n }\n if (isQueriedElement) {\n const wrappedPlayer = new TransitionAnimationPlayer(namespaceId, triggerName, element);\n wrappedPlayer.setRealPlayer(player);\n allQueriedPlayers.push(wrappedPlayer);\n }\n return player;\n });\n allQueriedPlayers.forEach((player) => {\n getOrSetDefaultValue(this.playersByQueriedElement, player.element, []).push(player);\n player.onDone(() => deleteOrUnsetInMap(this.playersByQueriedElement, player.element, player));\n });\n allConsumedElements.forEach((element) => addClass(element, NG_ANIMATING_CLASSNAME));\n const player = optimizeGroupPlayer(allNewPlayers);\n player.onDestroy(() => {\n allConsumedElements.forEach((element) => removeClass(element, NG_ANIMATING_CLASSNAME));\n setStyles(rootElement, instruction.toStyles);\n });\n // this basically makes all of the callbacks for sub element animations\n // be dependent on the upper players for when they finish\n allSubElements.forEach((element) => {\n getOrSetDefaultValue(skippedPlayersMap, element, []).push(player);\n });\n return player;\n }\n _buildPlayer(instruction, keyframes, previousPlayers) {\n if (keyframes.length > 0) {\n return this.driver.animate(instruction.element, keyframes, instruction.duration, instruction.delay, instruction.easing, previousPlayers);\n }\n // special case for when an empty transition|definition is provided\n // ... there is no point in rendering an empty animation\n return new NoopAnimationPlayer(instruction.duration, instruction.delay);\n }\n}\nclass TransitionAnimationPlayer {\n constructor(namespaceId, triggerName, element) {\n this.namespaceId = namespaceId;\n this.triggerName = triggerName;\n this.element = element;\n this._player = new NoopAnimationPlayer();\n this._containsRealPlayer = false;\n this._queuedCallbacks = new Map();\n this.destroyed = false;\n this.parentPlayer = null;\n this.markedForDestroy = false;\n this.disabled = false;\n this.queued = true;\n this.totalTime = 0;\n }\n setRealPlayer(player) {\n if (this._containsRealPlayer)\n return;\n this._player = player;\n this._queuedCallbacks.forEach((callbacks, phase) => {\n callbacks.forEach((callback) => listenOnPlayer(player, phase, undefined, callback));\n });\n this._queuedCallbacks.clear();\n this._containsRealPlayer = true;\n this.overrideTotalTime(player.totalTime);\n this.queued = false;\n }\n getRealPlayer() {\n return this._player;\n }\n overrideTotalTime(totalTime) {\n this.totalTime = totalTime;\n }\n syncPlayerEvents(player) {\n const p = this._player;\n if (p.triggerCallback) {\n player.onStart(() => p.triggerCallback('start'));\n }\n player.onDone(() => this.finish());\n player.onDestroy(() => this.destroy());\n }\n _queueEvent(name, callback) {\n getOrSetDefaultValue(this._queuedCallbacks, name, []).push(callback);\n }\n onDone(fn) {\n if (this.queued) {\n this._queueEvent('done', fn);\n }\n this._player.onDone(fn);\n }\n onStart(fn) {\n if (this.queued) {\n this._queueEvent('start', fn);\n }\n this._player.onStart(fn);\n }\n onDestroy(fn) {\n if (this.queued) {\n this._queueEvent('destroy', fn);\n }\n this._player.onDestroy(fn);\n }\n init() {\n this._player.init();\n }\n hasStarted() {\n return this.queued ? false : this._player.hasStarted();\n }\n play() {\n !this.queued && this._player.play();\n }\n pause() {\n !this.queued && this._player.pause();\n }\n restart() {\n !this.queued && this._player.restart();\n }\n finish() {\n this._player.finish();\n }\n destroy() {\n this.destroyed = true;\n this._player.destroy();\n }\n reset() {\n !this.queued && this._player.reset();\n }\n setPosition(p) {\n if (!this.queued) {\n this._player.setPosition(p);\n }\n }\n getPosition() {\n return this.queued ? 0 : this._player.getPosition();\n }\n /** @internal */\n triggerCallback(phaseName) {\n const p = this._player;\n if (p.triggerCallback) {\n p.triggerCallback(phaseName);\n }\n }\n}\nfunction deleteOrUnsetInMap(map, key, value) {\n let currentValues = map.get(key);\n if (currentValues) {\n if (currentValues.length) {\n const index = currentValues.indexOf(value);\n currentValues.splice(index, 1);\n }\n if (currentValues.length == 0) {\n map.delete(key);\n }\n }\n return currentValues;\n}\nfunction normalizeTriggerValue(value) {\n // we use `!= null` here because it's the most simple\n // way to test against a \"falsy\" value without mixing\n // in empty strings or a zero value. DO NOT OPTIMIZE.\n return value != null ? value : null;\n}\nfunction isElementNode(node) {\n return node && node['nodeType'] === 1;\n}\nfunction isTriggerEventValid(eventName) {\n return eventName == 'start' || eventName == 'done';\n}\nfunction cloakElement(element, value) {\n const oldValue = element.style.display;\n element.style.display = value != null ? value : 'none';\n return oldValue;\n}\nfunction cloakAndComputeStyles(valuesMap, driver, elements, elementPropsMap, defaultStyle) {\n const cloakVals = [];\n elements.forEach((element) => cloakVals.push(cloakElement(element)));\n const failedElements = [];\n elementPropsMap.forEach((props, element) => {\n const styles = new Map();\n props.forEach((prop) => {\n const value = driver.computeStyle(element, prop, defaultStyle);\n styles.set(prop, value);\n // there is no easy way to detect this because a sub element could be removed\n // by a parent animation element being detached.\n if (!value || value.length == 0) {\n element[REMOVAL_FLAG] = NULL_REMOVED_QUERIED_STATE;\n failedElements.push(element);\n }\n });\n valuesMap.set(element, styles);\n });\n // we use a index variable here since Set.forEach(a, i) does not return\n // an index value for the closure (but instead just the value)\n let i = 0;\n elements.forEach((element) => cloakElement(element, cloakVals[i++]));\n return failedElements;\n}\n/*\nSince the Angular renderer code will return a collection of inserted\nnodes in all areas of a DOM tree, it's up to this algorithm to figure\nout which nodes are roots for each animation @trigger.\n\nBy placing each inserted node into a Set and traversing upwards, it\nis possible to find the @trigger elements and well any direct *star\ninsertion nodes, if a @trigger root is found then the enter element\nis placed into the Map[@trigger] spot.\n */\nfunction buildRootMap(roots, nodes) {\n const rootMap = new Map();\n roots.forEach((root) => rootMap.set(root, []));\n if (nodes.length == 0)\n return rootMap;\n const NULL_NODE = 1;\n const nodeSet = new Set(nodes);\n const localRootMap = new Map();\n function getRoot(node) {\n if (!node)\n return NULL_NODE;\n let root = localRootMap.get(node);\n if (root)\n return root;\n const parent = node.parentNode;\n if (rootMap.has(parent)) {\n // ngIf inside @trigger\n root = parent;\n }\n else if (nodeSet.has(parent)) {\n // ngIf inside ngIf\n root = NULL_NODE;\n }\n else {\n // recurse upwards\n root = getRoot(parent);\n }\n localRootMap.set(node, root);\n return root;\n }\n nodes.forEach((node) => {\n const root = getRoot(node);\n if (root !== NULL_NODE) {\n rootMap.get(root).push(node);\n }\n });\n return rootMap;\n}\nfunction addClass(element, className) {\n element.classList?.add(className);\n}\nfunction removeClass(element, className) {\n element.classList?.remove(className);\n}\nfunction removeNodesAfterAnimationDone(engine, element, players) {\n optimizeGroupPlayer(players).onDone(() => engine.processLeaveNode(element));\n}\nfunction flattenGroupPlayers(players) {\n const finalPlayers = [];\n _flattenGroupPlayersRecur(players, finalPlayers);\n return finalPlayers;\n}\nfunction _flattenGroupPlayersRecur(players, finalPlayers) {\n for (let i = 0; i < players.length; i++) {\n const player = players[i];\n if (player instanceof ɵAnimationGroupPlayer) {\n _flattenGroupPlayersRecur(player.players, finalPlayers);\n }\n else {\n finalPlayers.push(player);\n }\n }\n}\nfunction objEquals(a, b) {\n const k1 = Object.keys(a);\n const k2 = Object.keys(b);\n if (k1.length != k2.length)\n return false;\n for (let i = 0; i < k1.length; i++) {\n const prop = k1[i];\n if (!b.hasOwnProperty(prop) || a[prop] !== b[prop])\n return false;\n }\n return true;\n}\nfunction replacePostStylesAsPre(element, allPreStyleElements, allPostStyleElements) {\n const postEntry = allPostStyleElements.get(element);\n if (!postEntry)\n return false;\n let preEntry = allPreStyleElements.get(element);\n if (preEntry) {\n postEntry.forEach((data) => preEntry.add(data));\n }\n else {\n allPreStyleElements.set(element, postEntry);\n }\n allPostStyleElements.delete(element);\n return true;\n}\n\nclass AnimationEngine {\n constructor(doc, _driver, _normalizer) {\n this._driver = _driver;\n this._normalizer = _normalizer;\n this._triggerCache = {};\n // this method is designed to be overridden by the code that uses this engine\n this.onRemovalComplete = (element, context) => { };\n this._transitionEngine = new TransitionAnimationEngine(doc.body, _driver, _normalizer);\n this._timelineEngine = new TimelineAnimationEngine(doc.body, _driver, _normalizer);\n this._transitionEngine.onRemovalComplete = (element, context) => this.onRemovalComplete(element, context);\n }\n registerTrigger(componentId, namespaceId, hostElement, name, metadata) {\n const cacheKey = componentId + '-' + name;\n let trigger = this._triggerCache[cacheKey];\n if (!trigger) {\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(this._driver, metadata, errors, warnings);\n if (errors.length) {\n throw triggerBuildFailed(name, errors);\n }\n if (warnings.length) {\n warnTriggerBuild(name, warnings);\n }\n trigger = buildTrigger(name, ast, this._normalizer);\n this._triggerCache[cacheKey] = trigger;\n }\n this._transitionEngine.registerTrigger(namespaceId, name, trigger);\n }\n register(namespaceId, hostElement) {\n this._transitionEngine.register(namespaceId, hostElement);\n }\n destroy(namespaceId, context) {\n this._transitionEngine.destroy(namespaceId, context);\n }\n onInsert(namespaceId, element, parent, insertBefore) {\n this._transitionEngine.insertNode(namespaceId, element, parent, insertBefore);\n }\n onRemove(namespaceId, element, context) {\n this._transitionEngine.removeNode(namespaceId, element, context);\n }\n disableAnimations(element, disable) {\n this._transitionEngine.markElementAsDisabled(element, disable);\n }\n process(namespaceId, element, property, value) {\n if (property.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(property);\n const args = value;\n this._timelineEngine.command(id, element, action, args);\n }\n else {\n this._transitionEngine.trigger(namespaceId, element, property, value);\n }\n }\n listen(namespaceId, element, eventName, eventPhase, callback) {\n // @@listen\n if (eventName.charAt(0) == '@') {\n const [id, action] = parseTimelineCommand(eventName);\n return this._timelineEngine.listen(id, element, action, callback);\n }\n return this._transitionEngine.listen(namespaceId, element, eventName, eventPhase, callback);\n }\n flush(microtaskId = -1) {\n this._transitionEngine.flush(microtaskId);\n }\n get players() {\n return [...this._transitionEngine.players, ...this._timelineEngine.players];\n }\n whenRenderingDone() {\n return this._transitionEngine.whenRenderingDone();\n }\n afterFlushAnimationsDone(cb) {\n this._transitionEngine.afterFlushAnimationsDone(cb);\n }\n}\n\n/**\n * Returns an instance of `SpecialCasedStyles` if and when any special (non animateable) styles are\n * detected.\n *\n * In CSS there exist properties that cannot be animated within a keyframe animation\n * (whether it be via CSS keyframes or web-animations) and the animation implementation\n * will ignore them. This function is designed to detect those special cased styles and\n * return a container that will be executed at the start and end of the animation.\n *\n * @returns an instance of `SpecialCasedStyles` if any special styles are detected otherwise `null`\n */\nfunction packageNonAnimatableStyles(element, styles) {\n let startStyles = null;\n let endStyles = null;\n if (Array.isArray(styles) && styles.length) {\n startStyles = filterNonAnimatableStyles(styles[0]);\n if (styles.length > 1) {\n endStyles = filterNonAnimatableStyles(styles[styles.length - 1]);\n }\n }\n else if (styles instanceof Map) {\n startStyles = filterNonAnimatableStyles(styles);\n }\n return startStyles || endStyles ? new SpecialCasedStyles(element, startStyles, endStyles) : null;\n}\n/**\n * Designed to be executed during a keyframe-based animation to apply any special-cased styles.\n *\n * When started (when the `start()` method is run) then the provided `startStyles`\n * will be applied. When finished (when the `finish()` method is called) the\n * `endStyles` will be applied as well any any starting styles. Finally when\n * `destroy()` is called then all styles will be removed.\n */\nclass SpecialCasedStyles {\n static { this.initialStylesByElement = new WeakMap(); }\n constructor(_element, _startStyles, _endStyles) {\n this._element = _element;\n this._startStyles = _startStyles;\n this._endStyles = _endStyles;\n this._state = 0 /* SpecialCasedStylesState.Pending */;\n let initialStyles = SpecialCasedStyles.initialStylesByElement.get(_element);\n if (!initialStyles) {\n SpecialCasedStyles.initialStylesByElement.set(_element, (initialStyles = new Map()));\n }\n this._initialStyles = initialStyles;\n }\n start() {\n if (this._state < 1 /* SpecialCasedStylesState.Started */) {\n if (this._startStyles) {\n setStyles(this._element, this._startStyles, this._initialStyles);\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n finish() {\n this.start();\n if (this._state < 2 /* SpecialCasedStylesState.Finished */) {\n setStyles(this._element, this._initialStyles);\n if (this._endStyles) {\n setStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n this._state = 1 /* SpecialCasedStylesState.Started */;\n }\n }\n destroy() {\n this.finish();\n if (this._state < 3 /* SpecialCasedStylesState.Destroyed */) {\n SpecialCasedStyles.initialStylesByElement.delete(this._element);\n if (this._startStyles) {\n eraseStyles(this._element, this._startStyles);\n this._endStyles = null;\n }\n if (this._endStyles) {\n eraseStyles(this._element, this._endStyles);\n this._endStyles = null;\n }\n setStyles(this._element, this._initialStyles);\n this._state = 3 /* SpecialCasedStylesState.Destroyed */;\n }\n }\n}\nfunction filterNonAnimatableStyles(styles) {\n let result = null;\n styles.forEach((val, prop) => {\n if (isNonAnimatableStyle(prop)) {\n result = result || new Map();\n result.set(prop, val);\n }\n });\n return result;\n}\nfunction isNonAnimatableStyle(prop) {\n return prop === 'display' || prop === 'position';\n}\n\nclass WebAnimationsPlayer {\n constructor(element, keyframes, options, _specialStyles) {\n this.element = element;\n this.keyframes = keyframes;\n this.options = options;\n this._specialStyles = _specialStyles;\n this._onDoneFns = [];\n this._onStartFns = [];\n this._onDestroyFns = [];\n this._initialized = false;\n this._finished = false;\n this._started = false;\n this._destroyed = false;\n // the following original fns are persistent copies of the _onStartFns and _onDoneFns\n // and are used to reset the fns to their original values upon reset()\n // (since the _onStartFns and _onDoneFns get deleted after they are called)\n this._originalOnDoneFns = [];\n this._originalOnStartFns = [];\n this.time = 0;\n this.parentPlayer = null;\n this.currentSnapshot = new Map();\n this._duration = options['duration'];\n this._delay = options['delay'] || 0;\n this.time = this._duration + this._delay;\n }\n _onFinish() {\n if (!this._finished) {\n this._finished = true;\n this._onDoneFns.forEach((fn) => fn());\n this._onDoneFns = [];\n }\n }\n init() {\n this._buildPlayer();\n this._preparePlayerBeforeStart();\n }\n _buildPlayer() {\n if (this._initialized)\n return;\n this._initialized = true;\n const keyframes = this.keyframes;\n // @ts-expect-error overwriting a readonly property\n this.domPlayer = this._triggerWebAnimation(this.element, keyframes, this.options);\n this._finalKeyframe = keyframes.length ? keyframes[keyframes.length - 1] : new Map();\n const onFinish = () => this._onFinish();\n this.domPlayer.addEventListener('finish', onFinish);\n this.onDestroy(() => {\n // We must remove the `finish` event listener once an animation has completed all its\n // iterations. This action is necessary to prevent a memory leak since the listener captures\n // `this`, creating a closure that prevents `this` from being garbage collected.\n this.domPlayer.removeEventListener('finish', onFinish);\n });\n }\n _preparePlayerBeforeStart() {\n // this is required so that the player doesn't start to animate right away\n if (this._delay) {\n this._resetDomPlayerState();\n }\n else {\n this.domPlayer.pause();\n }\n }\n _convertKeyframesToObject(keyframes) {\n const kfs = [];\n keyframes.forEach((frame) => {\n kfs.push(Object.fromEntries(frame));\n });\n return kfs;\n }\n /** @internal */\n _triggerWebAnimation(element, keyframes, options) {\n return element.animate(this._convertKeyframesToObject(keyframes), options);\n }\n onStart(fn) {\n this._originalOnStartFns.push(fn);\n this._onStartFns.push(fn);\n }\n onDone(fn) {\n this._originalOnDoneFns.push(fn);\n this._onDoneFns.push(fn);\n }\n onDestroy(fn) {\n this._onDestroyFns.push(fn);\n }\n play() {\n this._buildPlayer();\n if (!this.hasStarted()) {\n this._onStartFns.forEach((fn) => fn());\n this._onStartFns = [];\n this._started = true;\n if (this._specialStyles) {\n this._specialStyles.start();\n }\n }\n this.domPlayer.play();\n }\n pause() {\n this.init();\n this.domPlayer.pause();\n }\n finish() {\n this.init();\n if (this._specialStyles) {\n this._specialStyles.finish();\n }\n this._onFinish();\n this.domPlayer.finish();\n }\n reset() {\n this._resetDomPlayerState();\n this._destroyed = false;\n this._finished = false;\n this._started = false;\n this._onStartFns = this._originalOnStartFns;\n this._onDoneFns = this._originalOnDoneFns;\n }\n _resetDomPlayerState() {\n if (this.domPlayer) {\n this.domPlayer.cancel();\n }\n }\n restart() {\n this.reset();\n this.play();\n }\n hasStarted() {\n return this._started;\n }\n destroy() {\n if (!this._destroyed) {\n this._destroyed = true;\n this._resetDomPlayerState();\n this._onFinish();\n if (this._specialStyles) {\n this._specialStyles.destroy();\n }\n this._onDestroyFns.forEach((fn) => fn());\n this._onDestroyFns = [];\n }\n }\n setPosition(p) {\n if (this.domPlayer === undefined) {\n this.init();\n }\n this.domPlayer.currentTime = p * this.time;\n }\n getPosition() {\n // tsc is complaining with TS2362 without the conversion to number\n return +(this.domPlayer.currentTime ?? 0) / this.time;\n }\n get totalTime() {\n return this._delay + this._duration;\n }\n beforeDestroy() {\n const styles = new Map();\n if (this.hasStarted()) {\n // note: this code is invoked only when the `play` function was called prior to this\n // (thus `hasStarted` returns true), this implies that the code that initializes\n // `_finalKeyframe` has also been executed and the non-null assertion can be safely used here\n const finalKeyframe = this._finalKeyframe;\n finalKeyframe.forEach((val, prop) => {\n if (prop !== 'offset') {\n styles.set(prop, this._finished ? val : computeStyle(this.element, prop));\n }\n });\n }\n this.currentSnapshot = styles;\n }\n /** @internal */\n triggerCallback(phaseName) {\n const methods = phaseName === 'start' ? this._onStartFns : this._onDoneFns;\n methods.forEach((fn) => fn());\n methods.length = 0;\n }\n}\n\nclass WebAnimationsDriver {\n validateStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return validateStyleProperty(prop);\n }\n return true;\n }\n validateAnimatableStyleProperty(prop) {\n // Perform actual validation in dev mode only, in prod mode this check is a noop.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n const cssProp = camelCaseToDashCase(prop);\n return validateWebAnimatableStyleProperty(cssProp);\n }\n return true;\n }\n containsElement(elm1, elm2) {\n return containsElement(elm1, elm2);\n }\n getParentElement(element) {\n return getParentElement(element);\n }\n query(element, selector, multi) {\n return invokeQuery(element, selector, multi);\n }\n computeStyle(element, prop, defaultValue) {\n return computeStyle(element, prop);\n }\n animate(element, keyframes, duration, delay, easing, previousPlayers = []) {\n const fill = delay == 0 ? 'both' : 'forwards';\n const playerOptions = { duration, delay, fill };\n // we check for this to avoid having a null|undefined value be present\n // for the easing (which results in an error for certain browsers #9752)\n if (easing) {\n playerOptions['easing'] = easing;\n }\n const previousStyles = new Map();\n const previousWebAnimationPlayers = (previousPlayers.filter((player) => player instanceof WebAnimationsPlayer));\n if (allowPreviousPlayerStylesMerge(duration, delay)) {\n previousWebAnimationPlayers.forEach((player) => {\n player.currentSnapshot.forEach((val, prop) => previousStyles.set(prop, val));\n });\n }\n let _keyframes = normalizeKeyframes(keyframes).map((styles) => new Map(styles));\n _keyframes = balancePreviousStylesIntoKeyframes(element, _keyframes, previousStyles);\n const specialStyles = packageNonAnimatableStyles(element, _keyframes);\n return new WebAnimationsPlayer(element, _keyframes, playerOptions, specialStyles);\n }\n}\n\nfunction createEngine(type, doc) {\n // TODO: find a way to make this tree shakable.\n if (type === 'noop') {\n return new AnimationEngine(doc, new NoopAnimationDriver(), new NoopAnimationStyleNormalizer());\n }\n return new AnimationEngine(doc, new WebAnimationsDriver(), new WebAnimationsStyleNormalizer());\n}\n\nclass Animation {\n constructor(_driver, input) {\n this._driver = _driver;\n const errors = [];\n const warnings = [];\n const ast = buildAnimationAst(_driver, input, errors, warnings);\n if (errors.length) {\n throw validationFailed(errors);\n }\n if (warnings.length) {\n warnValidation(warnings);\n }\n this._animationAst = ast;\n }\n buildTimelines(element, startingStyles, destinationStyles, options, subInstructions) {\n const start = Array.isArray(startingStyles)\n ? normalizeStyles(startingStyles)\n : startingStyles;\n const dest = Array.isArray(destinationStyles)\n ? normalizeStyles(destinationStyles)\n : destinationStyles;\n const errors = [];\n subInstructions = subInstructions || new ElementInstructionMap();\n const result = buildAnimationTimelines(this._driver, element, this._animationAst, ENTER_CLASSNAME, LEAVE_CLASSNAME, start, dest, options, subInstructions, errors);\n if (errors.length) {\n throw buildingFailed(errors);\n }\n return result;\n }\n}\n\nconst ANIMATION_PREFIX = '@';\nconst DISABLE_ANIMATIONS_FLAG = '@.disabled';\nclass BaseAnimationRenderer {\n constructor(namespaceId, delegate, engine, _onDestroy) {\n this.namespaceId = namespaceId;\n this.delegate = delegate;\n this.engine = engine;\n this._onDestroy = _onDestroy;\n // We need to explicitly type this property because of an api-extractor bug\n // See https://github.com/microsoft/rushstack/issues/4390\n this.ɵtype = 0 /* AnimationRendererType.Regular */;\n }\n get data() {\n return this.delegate.data;\n }\n destroyNode(node) {\n this.delegate.destroyNode?.(node);\n }\n destroy() {\n this.engine.destroy(this.namespaceId, this.delegate);\n this.engine.afterFlushAnimationsDone(() => {\n // Call the renderer destroy method after the animations has finished as otherwise\n // styles will be removed too early which will cause an unstyled animation.\n queueMicrotask(() => {\n this.delegate.destroy();\n });\n });\n this._onDestroy?.();\n }\n createElement(name, namespace) {\n return this.delegate.createElement(name, namespace);\n }\n createComment(value) {\n return this.delegate.createComment(value);\n }\n createText(value) {\n return this.delegate.createText(value);\n }\n appendChild(parent, newChild) {\n this.delegate.appendChild(parent, newChild);\n this.engine.onInsert(this.namespaceId, newChild, parent, false);\n }\n insertBefore(parent, newChild, refChild, isMove = true) {\n this.delegate.insertBefore(parent, newChild, refChild);\n // If `isMove` true than we should animate this insert.\n this.engine.onInsert(this.namespaceId, newChild, parent, isMove);\n }\n removeChild(parent, oldChild, isHostElement) {\n // Prior to the changes in #57203, this method wasn't being called at all by `core` if the child\n // doesn't have a parent. There appears to be some animation-specific downstream logic that\n // depends on the null check happening before the animation engine. This check keeps the old\n // behavior while allowing `core` to not have to check for the parent element anymore.\n if (this.parentNode(oldChild)) {\n this.engine.onRemove(this.namespaceId, oldChild, this.delegate);\n }\n }\n selectRootElement(selectorOrNode, preserveContent) {\n return this.delegate.selectRootElement(selectorOrNode, preserveContent);\n }\n parentNode(node) {\n return this.delegate.parentNode(node);\n }\n nextSibling(node) {\n return this.delegate.nextSibling(node);\n }\n setAttribute(el, name, value, namespace) {\n this.delegate.setAttribute(el, name, value, namespace);\n }\n removeAttribute(el, name, namespace) {\n this.delegate.removeAttribute(el, name, namespace);\n }\n addClass(el, name) {\n this.delegate.addClass(el, name);\n }\n removeClass(el, name) {\n this.delegate.removeClass(el, name);\n }\n setStyle(el, style, value, flags) {\n this.delegate.setStyle(el, style, value, flags);\n }\n removeStyle(el, style, flags) {\n this.delegate.removeStyle(el, style, flags);\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX && name == DISABLE_ANIMATIONS_FLAG) {\n this.disableAnimations(el, !!value);\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n setValue(node, value) {\n this.delegate.setValue(node, value);\n }\n listen(target, eventName, callback) {\n return this.delegate.listen(target, eventName, callback);\n }\n disableAnimations(element, value) {\n this.engine.disableAnimations(element, value);\n }\n}\nclass AnimationRenderer extends BaseAnimationRenderer {\n constructor(factory, namespaceId, delegate, engine, onDestroy) {\n super(namespaceId, delegate, engine, onDestroy);\n this.factory = factory;\n this.namespaceId = namespaceId;\n }\n setProperty(el, name, value) {\n if (name.charAt(0) == ANIMATION_PREFIX) {\n if (name.charAt(1) == '.' && name == DISABLE_ANIMATIONS_FLAG) {\n value = value === undefined ? true : !!value;\n this.disableAnimations(el, value);\n }\n else {\n this.engine.process(this.namespaceId, el, name.slice(1), value);\n }\n }\n else {\n this.delegate.setProperty(el, name, value);\n }\n }\n listen(target, eventName, callback) {\n if (eventName.charAt(0) == ANIMATION_PREFIX) {\n const element = resolveElementFromTarget(target);\n let name = eventName.slice(1);\n let phase = '';\n // @listener.phase is for trigger animation callbacks\n // @@listener is for animation builder callbacks\n if (name.charAt(0) != ANIMATION_PREFIX) {\n [name, phase] = parseTriggerCallbackName(name);\n }\n return this.engine.listen(this.namespaceId, element, name, phase, (event) => {\n const countId = event['_data'] || -1;\n this.factory.scheduleListenerCallback(countId, callback, event);\n });\n }\n return this.delegate.listen(target, eventName, callback);\n }\n}\nfunction resolveElementFromTarget(target) {\n switch (target) {\n case 'body':\n return document.body;\n case 'document':\n return document;\n case 'window':\n return window;\n default:\n return target;\n }\n}\nfunction parseTriggerCallbackName(triggerName) {\n const dotIndex = triggerName.indexOf('.');\n const trigger = triggerName.substring(0, dotIndex);\n const phase = triggerName.slice(dotIndex + 1);\n return [trigger, phase];\n}\n\nclass AnimationRendererFactory {\n constructor(delegate, engine, _zone) {\n this.delegate = delegate;\n this.engine = engine;\n this._zone = _zone;\n this._currentId = 0;\n this._microtaskId = 1;\n this._animationCallbacksBuffer = [];\n this._rendererCache = new Map();\n this._cdRecurDepth = 0;\n engine.onRemovalComplete = (element, delegate) => {\n delegate?.removeChild(null, element);\n };\n }\n createRenderer(hostElement, type) {\n const EMPTY_NAMESPACE_ID = '';\n // cache the delegates to find out which cached delegate can\n // be used by which cached renderer\n const delegate = this.delegate.createRenderer(hostElement, type);\n if (!hostElement || !type?.data?.['animation']) {\n const cache = this._rendererCache;\n let renderer = cache.get(delegate);\n if (!renderer) {\n // Ensure that the renderer is removed from the cache on destroy\n // since it may contain references to detached DOM nodes.\n const onRendererDestroy = () => cache.delete(delegate);\n renderer = new BaseAnimationRenderer(EMPTY_NAMESPACE_ID, delegate, this.engine, onRendererDestroy);\n // only cache this result when the base renderer is used\n cache.set(delegate, renderer);\n }\n return renderer;\n }\n const componentId = type.id;\n const namespaceId = type.id + '-' + this._currentId;\n this._currentId++;\n this.engine.register(namespaceId, hostElement);\n const registerTrigger = (trigger) => {\n if (Array.isArray(trigger)) {\n trigger.forEach(registerTrigger);\n }\n else {\n this.engine.registerTrigger(componentId, namespaceId, hostElement, trigger.name, trigger);\n }\n };\n const animationTriggers = type.data['animation'];\n animationTriggers.forEach(registerTrigger);\n return new AnimationRenderer(this, namespaceId, delegate, this.engine);\n }\n begin() {\n this._cdRecurDepth++;\n if (this.delegate.begin) {\n this.delegate.begin();\n }\n }\n _scheduleCountTask() {\n queueMicrotask(() => {\n this._microtaskId++;\n });\n }\n /** @internal */\n scheduleListenerCallback(count, fn, data) {\n if (count >= 0 && count < this._microtaskId) {\n this._zone.run(() => fn(data));\n return;\n }\n const animationCallbacksBuffer = this._animationCallbacksBuffer;\n if (animationCallbacksBuffer.length == 0) {\n queueMicrotask(() => {\n this._zone.run(() => {\n animationCallbacksBuffer.forEach((tuple) => {\n const [fn, data] = tuple;\n fn(data);\n });\n this._animationCallbacksBuffer = [];\n });\n });\n }\n animationCallbacksBuffer.push([fn, data]);\n }\n end() {\n this._cdRecurDepth--;\n // this is to prevent animations from running twice when an inner\n // component does CD when a parent component instead has inserted it\n if (this._cdRecurDepth == 0) {\n this._zone.runOutsideAngular(() => {\n this._scheduleCountTask();\n this.engine.flush(this._microtaskId);\n });\n }\n if (this.delegate.end) {\n this.delegate.end();\n }\n }\n whenRenderingDone() {\n return this.engine.whenRenderingDone();\n }\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { AnimationDriver, NoopAnimationDriver, Animation as ɵAnimation, AnimationEngine as ɵAnimationEngine, AnimationRenderer as ɵAnimationRenderer, AnimationRendererFactory as ɵAnimationRendererFactory, AnimationStyleNormalizer as ɵAnimationStyleNormalizer, BaseAnimationRenderer as ɵBaseAnimationRenderer, NoopAnimationStyleNormalizer as ɵNoopAnimationStyleNormalizer, WebAnimationsDriver as ɵWebAnimationsDriver, WebAnimationsPlayer as ɵWebAnimationsPlayer, WebAnimationsStyleNormalizer as ɵWebAnimationsStyleNormalizer, allowPreviousPlayerStylesMerge as ɵallowPreviousPlayerStylesMerge, camelCaseToDashCase as ɵcamelCaseToDashCase, containsElement as ɵcontainsElement, createEngine as ɵcreateEngine, getParentElement as ɵgetParentElement, invokeQuery as ɵinvokeQuery, normalizeKeyframes as ɵnormalizeKeyframes, validateStyleProperty as ɵvalidateStyleProperty, validateWebAnimatableStyleProperty as ɵvalidateWebAnimatableStyleProperty };\n","/**\n * @license Angular v18.2.13\n * (c) 2010-2024 Google LLC. https://angular.io/\n * License: MIT\n */\n\nimport * as i0 from '@angular/core';\nimport { Injectable, Inject, RendererFactory2, NgZone, ANIMATION_MODULE_TYPE, NgModule, ɵperformanceMarkFeature } from '@angular/core';\nexport { ANIMATION_MODULE_TYPE } from '@angular/core';\nimport { ɵDomRendererFactory2, BrowserModule } from '@angular/platform-browser';\nimport * as i1 from '@angular/animations/browser';\nimport { ɵAnimationEngine, ɵWebAnimationsStyleNormalizer, ɵAnimationRendererFactory, ɵAnimationStyleNormalizer, AnimationDriver, ɵWebAnimationsDriver, NoopAnimationDriver } from '@angular/animations/browser';\nimport { DOCUMENT } from '@angular/common';\n\nclass InjectableAnimationEngine extends ɵAnimationEngine {\n // The `ApplicationRef` is injected here explicitly to force the dependency ordering.\n // Since the `ApplicationRef` should be created earlier before the `AnimationEngine`, they\n // both have `ngOnDestroy` hooks and `flush()` must be called after all views are destroyed.\n constructor(doc, driver, normalizer) {\n super(doc, driver, normalizer);\n }\n ngOnDestroy() {\n this.flush();\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: InjectableAnimationEngine, deps: [{ token: DOCUMENT }, { token: i1.AnimationDriver }, { token: i1.ɵAnimationStyleNormalizer }], target: i0.ɵɵFactoryTarget.Injectable }); }\n static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: InjectableAnimationEngine }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: InjectableAnimationEngine, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: i1.AnimationDriver }, { type: i1.ɵAnimationStyleNormalizer }] });\nfunction instantiateDefaultStyleNormalizer() {\n return new ɵWebAnimationsStyleNormalizer();\n}\nfunction instantiateRendererFactory(renderer, engine, zone) {\n return new ɵAnimationRendererFactory(renderer, engine, zone);\n}\nconst SHARED_ANIMATION_PROVIDERS = [\n { provide: ɵAnimationStyleNormalizer, useFactory: instantiateDefaultStyleNormalizer },\n { provide: ɵAnimationEngine, useClass: InjectableAnimationEngine },\n {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [ɵDomRendererFactory2, ɵAnimationEngine, NgZone],\n },\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserModule.\n */\nconst BROWSER_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useFactory: () => new ɵWebAnimationsDriver() },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'BrowserAnimations' },\n ...SHARED_ANIMATION_PROVIDERS,\n];\n/**\n * Separate providers from the actual module so that we can do a local modification in Google3 to\n * include them in the BrowserTestingModule.\n */\nconst BROWSER_NOOP_ANIMATIONS_PROVIDERS = [\n { provide: AnimationDriver, useClass: NoopAnimationDriver },\n { provide: ANIMATION_MODULE_TYPE, useValue: 'NoopAnimations' },\n ...SHARED_ANIMATION_PROVIDERS,\n];\n\n/**\n * Exports `BrowserModule` with additional dependency-injection providers\n * for use with animations. See [Animations](guide/animations).\n * @publicApi\n */\nclass BrowserAnimationsModule {\n /**\n * Configures the module based on the specified object.\n *\n * @param config Object used to configure the behavior of the `BrowserAnimationsModule`.\n * @see {@link BrowserAnimationsModuleConfig}\n *\n * @usageNotes\n * When registering the `BrowserAnimationsModule`, you can use the `withConfig`\n * function as follows:\n * ```\n * @NgModule({\n * imports: [BrowserAnimationsModule.withConfig(config)]\n * })\n * class MyNgModule {}\n * ```\n */\n static withConfig(config) {\n return {\n ngModule: BrowserAnimationsModule,\n providers: config.disableAnimations\n ? BROWSER_NOOP_ANIMATIONS_PROVIDERS\n : BROWSER_ANIMATIONS_PROVIDERS,\n };\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BrowserAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"18.2.13\", ngImport: i0, type: BrowserAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BrowserAnimationsModule, providers: BROWSER_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: BrowserAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of dependency-injection providers\n * to enable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to enable animations in an application\n * bootstrapped using the `bootstrapApplication` function. In this scenario there\n * is no need to import the `BrowserAnimationsModule` NgModule at all, just add\n * providers returned by this function to the `providers` list as show below.\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideAnimations() {\n ɵperformanceMarkFeature('NgEagerAnimations');\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideAnimations` call results in app code.\n return [...BROWSER_ANIMATIONS_PROVIDERS];\n}\n/**\n * A null player that must be imported to allow disabling of animations.\n * @publicApi\n */\nclass NoopAnimationsModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationsModule, exports: [BrowserModule] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationsModule, providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS, imports: [BrowserModule] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"18.2.13\", ngImport: i0, type: NoopAnimationsModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [BrowserModule],\n providers: BROWSER_NOOP_ANIMATIONS_PROVIDERS,\n }]\n }] });\n/**\n * Returns the set of dependency-injection providers\n * to disable animations in an application. See [animations guide](guide/animations)\n * to learn more about animations in Angular.\n *\n * @usageNotes\n *\n * The function is useful when you want to bootstrap an application using\n * the `bootstrapApplication` function, but you need to disable animations\n * (for example, when running tests).\n *\n * ```typescript\n * bootstrapApplication(RootComponent, {\n * providers: [\n * provideNoopAnimations()\n * ]\n * });\n * ```\n *\n * @publicApi\n */\nfunction provideNoopAnimations() {\n // Return a copy to prevent changes to the original array in case any in-place\n // alterations are performed to the `provideNoopAnimations` call results in app code.\n return [...BROWSER_NOOP_ANIMATIONS_PROVIDERS];\n}\n\n/**\n * @module\n * @description\n * Entry point for all animation APIs of the animation browser package.\n */\n\n/**\n * @module\n * @description\n * Entry point for all public APIs of this package.\n */\n\n// This file is not used to build this module. It is only used during editing\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BrowserAnimationsModule, NoopAnimationsModule, provideAnimations, provideNoopAnimations, InjectableAnimationEngine as ɵInjectableAnimationEngine };\n","import { ErrorHandler, NgModule } from '@angular/core';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgbModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\n\r\nimport { SharedModule } from 'src/Shared/shared.module';\r\nimport { environment } from 'src/environments/environment';\r\nimport { AuthModule, AuthService as Auth0Service } from '@auth0/auth0-angular';\r\n\r\nimport { AccountsService as CodeGenAccountService } from '@Core/CodeGen/Services/accounts.service';\r\nimport { DataService } from '@Core/CodeGen/Services/data.service';\r\nimport { DocumentsService } from '@Core/CodeGen/Services/documents.service';\r\nimport { ProgramsService } from '@Core/CodeGen/Services/programs.service';\r\nimport { TenantService } from '@Core/CodeGen/Services/tenant.service';\r\nimport { WorkflowsService } from '@Core/CodeGen/Services/workflows.service';\r\n\r\nimport { HttpInterceptorProviders } from '@Core/Http-Interceptors';\r\nimport { AccountsService } from '@Services/account-accounts-service';\r\nimport { AccountWorkflowService } from '@Services/account-workflow-service';\r\nimport { ApiManagementService } from '@Services/api-management';\r\nimport { DocumentService } from '@Services/document-services';\r\nimport { ErrorHandlerService } from '@Services/error-handler-service';\r\nimport { FeatureFacetService } from '@Services/feature-facet.service';\r\nimport { GlobalMessages } from '@Services/global-messages';\r\nimport { LoadingService } from '@Services/loading-service';\r\nimport { LoggingService } from '@Services/logging-service';\r\nimport { NotificationService } from '@Services/notification-service';\r\nimport { PollingService } from '@Services/polling-service';\r\nimport { ProgramProgramsDataStoresService } from '@Services/program-programs-datastores-service';\r\nimport { ProgramProgramsService } from '@Services/program-programs-service';\r\nimport { ProgramRevisionWorkflowService } from '@Services/program-revision-workflow-service';\r\nimport { ReportsService } from '@Services/reports-service';\r\nimport { SyncHubStatusService } from '@Services/sync-hub-status-service';\r\nimport { TenantAssignableService } from '@Services/tenant-assignable-service';\r\nimport { TenantDataService } from '@Services/tenant-data-service';\r\nimport { TenantTenantService } from '@Services/tenant-tenant-service';\r\nimport { UserAccountsService } from '@Services/user-accounts-service';\r\nimport { UserWorkflowsService } from '@Services/user-workflows-service';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { LoginContainerComponent } from '@Mktg/Login/login-container.component';\r\nimport { LoginComponent } from '@Mktg/Login/login.component';\r\nimport { RegisterComponent } from '@Mktg/Register/register.component';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { AdminPollingService } from '@Admin/admin-polling-service';\r\nimport { AuthService } from '@Services/auth-service';\r\nimport { NgxPermissionsModule } from 'ngx-permissions';\r\nimport { AlertsHub } from '@Services/Hubs/AlertsHub';\r\n\r\n@NgModule({\r\n imports: [\r\n AuthModule.forRoot({\r\n domain: environment.auth.domain,\r\n clientId: environment.auth.clientId,\r\n authorizationParams: {\r\n redirect_uri: environment.baseUrl,\r\n }\r\n }),\r\n SharedModule.forRoot(),\r\n\r\n BrowserModule,\r\n AppRoutingModule,\r\n NgbModule,\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n NgxPermissionsModule.forRoot()\r\n ],\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n LoginContainerComponent,\r\n RegisterComponent,\r\n ],\r\n providers: [\r\n \r\n HttpInterceptorProviders,\r\n GlobalMessages,\r\n LoggingService,\r\n NotificationService,\r\n ApiManagementService,\r\n PollingService,\r\n AuthService,\r\n\r\n // Code Gen services\r\n ProgramsService,\r\n TenantService,\r\n CodeGenAccountService,\r\n DataService,\r\n DocumentsService,\r\n WorkflowsService,\r\n\r\n AccountsService,\r\n ProgramProgramsService,\r\n TenantDataService,\r\n TenantTenantService,\r\n TenantAssignableService,\r\n AccountWorkflowService,\r\n UserWorkflowsService,\r\n UserAccountsService,\r\n ProgramProgramsDataStoresService,\r\n DocumentService,\r\n ProgramRevisionWorkflowService,\r\n SyncHubStatusService,\r\n FeatureFacetService,\r\n\r\n LoadingService,\r\n Auth0Service,\r\n ReportsService,\r\n AdminPollingService,\r\n\r\n AlertsHub,\r\n\r\n {provide: ErrorHandler, useClass: ErrorHandlerService}\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app.module';\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));","/*\n * Application Insights JavaScript SDK - Common, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnumStyle } from \"@microsoft/applicationinsights-core-js\";\r\n/**\r\n * Defines the level of severity for the event.\r\n */\r\nexport var SeverityLevel = createEnumStyle({\r\n Verbose: 0 /* eSeverityLevel.Verbose */,\r\n Information: 1 /* eSeverityLevel.Information */,\r\n Warning: 2 /* eSeverityLevel.Warning */,\r\n Error: 3 /* eSeverityLevel.Error */,\r\n Critical: 4 /* eSeverityLevel.Critical */\r\n});\r\n","/*\n * Application Insights JavaScript SDK - Core, 3.3.4\n * Copyright (c) Microsoft and contributors. All rights reserved.\n */\n\r\n\r\nimport { createEnum, createTypeMap } from \"@nevware21/ts-utils\";\r\n/**\r\n * Create an enum style object which has both the key => value and value => key mappings\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createEnumStyle = createEnum;\r\n/**\r\n * Create a 2 index map that maps an enum's key and value to the defined map value, X[\"key\"] => mapValue and X[0] => mapValue.\r\n * Generic values\r\n * - E = the const enum type (typeof eRequestHeaders);\r\n * - V = Identifies the valid values for the keys, this should include both the enum numeric and string key of the type. The\r\n * resulting \"Value\" of each entry identifies the valid values withing the assignments.\r\n * @param values - The values to populate on the new object\r\n * @returns\r\n */\r\nexport var createValueMap = createTypeMap;\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Error thrown when an HTTP request fails. */\r\nexport class HttpError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.HttpError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n * @param {number} statusCode The HTTP status code represented by this error.\r\n */\r\n constructor(errorMessage, statusCode) {\r\n const trueProto = new.target.prototype;\r\n super(`${errorMessage}: Status code '${statusCode}'`);\r\n this.statusCode = statusCode;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when a timeout elapses. */\r\nexport class TimeoutError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.TimeoutError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"A timeout occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when an action is aborted. */\r\nexport class AbortError extends Error {\r\n /** Constructs a new instance of {@link AbortError}.\r\n *\r\n * @param {string} errorMessage A descriptive error message.\r\n */\r\n constructor(errorMessage = \"An abort occurred.\") {\r\n const trueProto = new.target.prototype;\r\n super(errorMessage);\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is unsupported by the browser. */\r\n/** @private */\r\nexport class UnsupportedTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.UnsupportedTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'UnsupportedTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport is disabled by the browser. */\r\n/** @private */\r\nexport class DisabledTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.DisabledTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'DisabledTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the selected transport cannot be started. */\r\n/** @private */\r\nexport class FailedToStartTransportError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToStartTransportError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {HttpTransportType} transport The {@link @microsoft/signalr.HttpTransportType} this error occurred on.\r\n */\r\n constructor(message, transport) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.transport = transport;\r\n this.errorType = 'FailedToStartTransportError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when the negotiation with the server failed to complete. */\r\n/** @private */\r\nexport class FailedToNegotiateWithServerError extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.FailedToNegotiateWithServerError}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n */\r\n constructor(message) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.errorType = 'FailedToNegotiateWithServerError';\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n/** Error thrown when multiple errors have occurred. */\r\n/** @private */\r\nexport class AggregateErrors extends Error {\r\n /** Constructs a new instance of {@link @microsoft/signalr.AggregateErrors}.\r\n *\r\n * @param {string} message A descriptive error message.\r\n * @param {Error[]} innerErrors The collection of errors this error is aggregating.\r\n */\r\n constructor(message, innerErrors) {\r\n const trueProto = new.target.prototype;\r\n super(message);\r\n this.innerErrors = innerErrors;\r\n // Workaround issue in Typescript compiler\r\n // https://github.com/Microsoft/TypeScript/issues/13965#issuecomment-278570200\r\n this.__proto__ = trueProto;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { TextMessageFormat } from \"./TextMessageFormat\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class HandshakeProtocol {\r\n // Handshake request is always JSON\r\n writeHandshakeRequest(handshakeRequest) {\r\n return TextMessageFormat.write(JSON.stringify(handshakeRequest));\r\n }\r\n parseHandshakeResponse(data) {\r\n let messageData;\r\n let remainingData;\r\n if (isArrayBuffer(data)) {\r\n // Format is binary but still need to read JSON text from handshake response\r\n const binaryData = new Uint8Array(data);\r\n const separatorIndex = binaryData.indexOf(TextMessageFormat.RecordSeparatorCode);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = String.fromCharCode.apply(null, Array.prototype.slice.call(binaryData.slice(0, responseLength)));\r\n remainingData = (binaryData.byteLength > responseLength) ? binaryData.slice(responseLength).buffer : null;\r\n }\r\n else {\r\n const textData = data;\r\n const separatorIndex = textData.indexOf(TextMessageFormat.RecordSeparator);\r\n if (separatorIndex === -1) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n // content before separator is handshake response\r\n // optional content after is additional messages\r\n const responseLength = separatorIndex + 1;\r\n messageData = textData.substring(0, responseLength);\r\n remainingData = (textData.length > responseLength) ? textData.substring(responseLength) : null;\r\n }\r\n // At this point we should have just the single handshake message\r\n const messages = TextMessageFormat.parse(messageData);\r\n const response = JSON.parse(messages[0]);\r\n if (response.type) {\r\n throw new Error(\"Expected a handshake response from the server.\");\r\n }\r\n const responseMessage = response;\r\n // multiple messages could have arrived with handshake\r\n // return additional data to be parsed as usual, or null if all parsed\r\n return [remainingData, responseMessage];\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { SubjectSubscription } from \"./Utils\";\r\n/** Stream implementation to stream items to the server. */\r\nexport class Subject {\r\n constructor() {\r\n this.observers = [];\r\n }\r\n next(item) {\r\n for (const observer of this.observers) {\r\n observer.next(item);\r\n }\r\n }\r\n error(err) {\r\n for (const observer of this.observers) {\r\n if (observer.error) {\r\n observer.error(err);\r\n }\r\n }\r\n }\r\n complete() {\r\n for (const observer of this.observers) {\r\n if (observer.complete) {\r\n observer.complete();\r\n }\r\n }\r\n }\r\n subscribe(observer) {\r\n this.observers.push(observer);\r\n return new SubjectSubscription(this, observer);\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { isArrayBuffer } from \"./Utils\";\r\n/** @private */\r\nexport class MessageBuffer {\r\n constructor(protocol, connection, bufferSize) {\r\n this._bufferSize = 100000;\r\n this._messages = [];\r\n this._totalMessageCount = 0;\r\n this._waitForSequenceMessage = false;\r\n // Message IDs start at 1 and always increment by 1\r\n this._nextReceivingSequenceId = 1;\r\n this._latestReceivedSequenceId = 0;\r\n this._bufferedByteCount = 0;\r\n this._reconnectInProgress = false;\r\n this._protocol = protocol;\r\n this._connection = connection;\r\n this._bufferSize = bufferSize;\r\n }\r\n async _send(message) {\r\n const serializedMessage = this._protocol.writeMessage(message);\r\n let backpressurePromise = Promise.resolve();\r\n // Only count invocation messages. Acks, pings, etc. don't need to be resent on reconnect\r\n if (this._isInvocationMessage(message)) {\r\n this._totalMessageCount++;\r\n let backpressurePromiseResolver = () => { };\r\n let backpressurePromiseRejector = () => { };\r\n if (isArrayBuffer(serializedMessage)) {\r\n this._bufferedByteCount += serializedMessage.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount += serializedMessage.length;\r\n }\r\n if (this._bufferedByteCount >= this._bufferSize) {\r\n backpressurePromise = new Promise((resolve, reject) => {\r\n backpressurePromiseResolver = resolve;\r\n backpressurePromiseRejector = reject;\r\n });\r\n }\r\n this._messages.push(new BufferedItem(serializedMessage, this._totalMessageCount, backpressurePromiseResolver, backpressurePromiseRejector));\r\n }\r\n try {\r\n // If this is set it means we are reconnecting or resending\r\n // We don't want to send on a disconnected connection\r\n // And we don't want to send if resend is running since that would mean sending\r\n // this message twice\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(serializedMessage);\r\n }\r\n }\r\n catch {\r\n this._disconnected();\r\n }\r\n await backpressurePromise;\r\n }\r\n _ack(ackMessage) {\r\n let newestAckedMessage = -1;\r\n // Find index of newest message being acked\r\n for (let index = 0; index < this._messages.length; index++) {\r\n const element = this._messages[index];\r\n if (element._id <= ackMessage.sequenceId) {\r\n newestAckedMessage = index;\r\n if (isArrayBuffer(element._message)) {\r\n this._bufferedByteCount -= element._message.byteLength;\r\n }\r\n else {\r\n this._bufferedByteCount -= element._message.length;\r\n }\r\n // resolve items that have already been sent and acked\r\n element._resolver();\r\n }\r\n else if (this._bufferedByteCount < this._bufferSize) {\r\n // resolve items that now fall under the buffer limit but haven't been acked\r\n element._resolver();\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (newestAckedMessage !== -1) {\r\n // We're removing everything including the message pointed to, so add 1\r\n this._messages = this._messages.slice(newestAckedMessage + 1);\r\n }\r\n }\r\n _shouldProcessMessage(message) {\r\n if (this._waitForSequenceMessage) {\r\n if (message.type !== MessageType.Sequence) {\r\n return false;\r\n }\r\n else {\r\n this._waitForSequenceMessage = false;\r\n return true;\r\n }\r\n }\r\n // No special processing for acks, pings, etc.\r\n if (!this._isInvocationMessage(message)) {\r\n return true;\r\n }\r\n const currentId = this._nextReceivingSequenceId;\r\n this._nextReceivingSequenceId++;\r\n if (currentId <= this._latestReceivedSequenceId) {\r\n if (currentId === this._latestReceivedSequenceId) {\r\n // Should only hit this if we just reconnected and the server is sending\r\n // Messages it has buffered, which would mean it hasn't seen an Ack for these messages\r\n this._ackTimer();\r\n }\r\n // Ignore, this is a duplicate message\r\n return false;\r\n }\r\n this._latestReceivedSequenceId = currentId;\r\n // Only start the timer for sending an Ack message when we have a message to ack. This also conveniently solves\r\n // timer throttling by not having a recursive timer, and by starting the timer via a network call (recv)\r\n this._ackTimer();\r\n return true;\r\n }\r\n _resetSequence(message) {\r\n if (message.sequenceId > this._nextReceivingSequenceId) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._connection.stop(new Error(\"Sequence ID greater than amount of messages we've received.\"));\r\n return;\r\n }\r\n this._nextReceivingSequenceId = message.sequenceId;\r\n }\r\n _disconnected() {\r\n this._reconnectInProgress = true;\r\n this._waitForSequenceMessage = true;\r\n }\r\n async _resend() {\r\n const sequenceId = this._messages.length !== 0\r\n ? this._messages[0]._id\r\n : this._totalMessageCount + 1;\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Sequence, sequenceId }));\r\n // Get a local variable to the _messages, just in case messages are acked while resending\r\n // Which would slice the _messages array (which creates a new copy)\r\n const messages = this._messages;\r\n for (const element of messages) {\r\n await this._connection.send(element._message);\r\n }\r\n this._reconnectInProgress = false;\r\n }\r\n _dispose(error) {\r\n error !== null && error !== void 0 ? error : (error = new Error(\"Unable to reconnect to server.\"));\r\n // Unblock backpressure if any\r\n for (const element of this._messages) {\r\n element._rejector(error);\r\n }\r\n }\r\n _isInvocationMessage(message) {\r\n // There is no way to check if something implements an interface.\r\n // So we individually check the messages in a switch statement.\r\n // To make sure we don't miss any message types we rely on the compiler\r\n // seeing the function returns a value and it will do the\r\n // exhaustive check for us on the switch statement, since we don't use 'case default'\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n case MessageType.StreamItem:\r\n case MessageType.Completion:\r\n case MessageType.StreamInvocation:\r\n case MessageType.CancelInvocation:\r\n return true;\r\n case MessageType.Close:\r\n case MessageType.Sequence:\r\n case MessageType.Ping:\r\n case MessageType.Ack:\r\n return false;\r\n }\r\n }\r\n _ackTimer() {\r\n if (this._ackTimerHandle === undefined) {\r\n this._ackTimerHandle = setTimeout(async () => {\r\n try {\r\n if (!this._reconnectInProgress) {\r\n await this._connection.send(this._protocol.writeMessage({ type: MessageType.Ack, sequenceId: this._latestReceivedSequenceId }));\r\n }\r\n // Ignore errors, that means the connection is closed and we don't care about the Ack message anymore.\r\n }\r\n catch { }\r\n clearTimeout(this._ackTimerHandle);\r\n this._ackTimerHandle = undefined;\r\n // 1 second delay so we don't spam Ack messages if there are many messages being received at once.\r\n }, 1000);\r\n }\r\n }\r\n}\r\nclass BufferedItem {\r\n constructor(message, id, resolver, rejector) {\r\n this._message = message;\r\n this._id = id;\r\n this._resolver = resolver;\r\n this._rejector = rejector;\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { HandshakeProtocol } from \"./HandshakeProtocol\";\r\nimport { AbortError } from \"./Errors\";\r\nimport { MessageType } from \"./IHubProtocol\";\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { Subject } from \"./Subject\";\r\nimport { Arg, getErrorString, Platform } from \"./Utils\";\r\nimport { MessageBuffer } from \"./MessageBuffer\";\r\nconst DEFAULT_TIMEOUT_IN_MS = 30 * 1000;\r\nconst DEFAULT_PING_INTERVAL_IN_MS = 15 * 1000;\r\nconst DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE = 100000;\r\n/** Describes the current state of the {@link HubConnection} to the server. */\r\nexport var HubConnectionState;\r\n(function (HubConnectionState) {\r\n /** The hub connection is disconnected. */\r\n HubConnectionState[\"Disconnected\"] = \"Disconnected\";\r\n /** The hub connection is connecting. */\r\n HubConnectionState[\"Connecting\"] = \"Connecting\";\r\n /** The hub connection is connected. */\r\n HubConnectionState[\"Connected\"] = \"Connected\";\r\n /** The hub connection is disconnecting. */\r\n HubConnectionState[\"Disconnecting\"] = \"Disconnecting\";\r\n /** The hub connection is reconnecting. */\r\n HubConnectionState[\"Reconnecting\"] = \"Reconnecting\";\r\n})(HubConnectionState || (HubConnectionState = {}));\r\n/** Represents a connection to a SignalR Hub. */\r\nexport class HubConnection {\r\n /** @internal */\r\n // Using a public static factory method means we can have a private constructor and an _internal_\r\n // create method that can be used by HubConnectionBuilder. An \"internal\" constructor would just\r\n // be stripped away and the '.d.ts' file would have no constructor, which is interpreted as a\r\n // public parameter-less constructor.\r\n static create(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n return new HubConnection(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize);\r\n }\r\n constructor(connection, logger, protocol, reconnectPolicy, serverTimeoutInMilliseconds, keepAliveIntervalInMilliseconds, statefulReconnectBufferSize) {\r\n this._nextKeepAlive = 0;\r\n this._freezeEventListener = () => {\r\n this._logger.log(LogLevel.Warning, \"The page is being frozen, this will likely lead to the connection being closed and messages being lost. For more information see the docs at https://learn.microsoft.com/aspnet/core/signalr/javascript-client#bsleep\");\r\n };\r\n Arg.isRequired(connection, \"connection\");\r\n Arg.isRequired(logger, \"logger\");\r\n Arg.isRequired(protocol, \"protocol\");\r\n this.serverTimeoutInMilliseconds = serverTimeoutInMilliseconds !== null && serverTimeoutInMilliseconds !== void 0 ? serverTimeoutInMilliseconds : DEFAULT_TIMEOUT_IN_MS;\r\n this.keepAliveIntervalInMilliseconds = keepAliveIntervalInMilliseconds !== null && keepAliveIntervalInMilliseconds !== void 0 ? keepAliveIntervalInMilliseconds : DEFAULT_PING_INTERVAL_IN_MS;\r\n this._statefulReconnectBufferSize = statefulReconnectBufferSize !== null && statefulReconnectBufferSize !== void 0 ? statefulReconnectBufferSize : DEFAULT_STATEFUL_RECONNECT_BUFFER_SIZE;\r\n this._logger = logger;\r\n this._protocol = protocol;\r\n this.connection = connection;\r\n this._reconnectPolicy = reconnectPolicy;\r\n this._handshakeProtocol = new HandshakeProtocol();\r\n this.connection.onreceive = (data) => this._processIncomingData(data);\r\n this.connection.onclose = (error) => this._connectionClosed(error);\r\n this._callbacks = {};\r\n this._methods = {};\r\n this._closedCallbacks = [];\r\n this._reconnectingCallbacks = [];\r\n this._reconnectedCallbacks = [];\r\n this._invocationId = 0;\r\n this._receivedHandshakeResponse = false;\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n this._cachedPingMessage = this._protocol.writeMessage({ type: MessageType.Ping });\r\n }\r\n /** Indicates the state of the {@link HubConnection} to the server. */\r\n get state() {\r\n return this._connectionState;\r\n }\r\n /** Represents the connection id of the {@link HubConnection} on the server. The connection id will be null when the connection is either\r\n * in the disconnected state or if the negotiation step was skipped.\r\n */\r\n get connectionId() {\r\n return this.connection ? (this.connection.connectionId || null) : null;\r\n }\r\n /** Indicates the url of the {@link HubConnection} to the server. */\r\n get baseUrl() {\r\n return this.connection.baseUrl || \"\";\r\n }\r\n /**\r\n * Sets a new url for the HubConnection. Note that the url can only be changed when the connection is in either the Disconnected or\r\n * Reconnecting states.\r\n * @param {string} url The url to connect to.\r\n */\r\n set baseUrl(url) {\r\n if (this._connectionState !== HubConnectionState.Disconnected && this._connectionState !== HubConnectionState.Reconnecting) {\r\n throw new Error(\"The HubConnection must be in the Disconnected or Reconnecting state to change the url.\");\r\n }\r\n if (!url) {\r\n throw new Error(\"The HubConnection url must be a valid url.\");\r\n }\r\n this.connection.baseUrl = url;\r\n }\r\n /** Starts the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully established, or rejects with an error.\r\n */\r\n start() {\r\n this._startPromise = this._startWithStateTransitions();\r\n return this._startPromise;\r\n }\r\n async _startWithStateTransitions() {\r\n if (this._connectionState !== HubConnectionState.Disconnected) {\r\n return Promise.reject(new Error(\"Cannot start a HubConnection that is not in the 'Disconnected' state.\"));\r\n }\r\n this._connectionState = HubConnectionState.Connecting;\r\n this._logger.log(LogLevel.Debug, \"Starting HubConnection.\");\r\n try {\r\n await this._startInternal();\r\n if (Platform.isBrowser) {\r\n // Log when the browser freezes the tab so users know why their connection unexpectedly stopped working\r\n window.document.addEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n this._connectionState = HubConnectionState.Connected;\r\n this._connectionStarted = true;\r\n this._logger.log(LogLevel.Debug, \"HubConnection connected successfully.\");\r\n }\r\n catch (e) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._logger.log(LogLevel.Debug, `HubConnection failed to start successfully because of error '${e}'.`);\r\n return Promise.reject(e);\r\n }\r\n }\r\n async _startInternal() {\r\n this._stopDuringStartError = undefined;\r\n this._receivedHandshakeResponse = false;\r\n // Set up the promise before any connection is (re)started otherwise it could race with received messages\r\n const handshakePromise = new Promise((resolve, reject) => {\r\n this._handshakeResolver = resolve;\r\n this._handshakeRejecter = reject;\r\n });\r\n await this.connection.start(this._protocol.transferFormat);\r\n try {\r\n let version = this._protocol.version;\r\n if (!this.connection.features.reconnect) {\r\n // Stateful Reconnect starts with HubProtocol version 2, newer clients connecting to older servers will fail to connect due to\r\n // the handshake only supporting version 1, so we will try to send version 1 during the handshake to keep old servers working.\r\n version = 1;\r\n }\r\n const handshakeRequest = {\r\n protocol: this._protocol.name,\r\n version,\r\n };\r\n this._logger.log(LogLevel.Debug, \"Sending handshake request.\");\r\n await this._sendMessage(this._handshakeProtocol.writeHandshakeRequest(handshakeRequest));\r\n this._logger.log(LogLevel.Information, `Using HubProtocol '${this._protocol.name}'.`);\r\n // defensively cleanup timeout in case we receive a message from the server before we finish start\r\n this._cleanupTimeout();\r\n this._resetTimeoutPeriod();\r\n this._resetKeepAliveInterval();\r\n await handshakePromise;\r\n // It's important to check the stopDuringStartError instead of just relying on the handshakePromise\r\n // being rejected on close, because this continuation can run after both the handshake completed successfully\r\n // and the connection was closed.\r\n if (this._stopDuringStartError) {\r\n // It's important to throw instead of returning a rejected promise, because we don't want to allow any state\r\n // transitions to occur between now and the calling code observing the exceptions. Returning a rejected promise\r\n // will cause the calling continuation to get scheduled to run later.\r\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\r\n throw this._stopDuringStartError;\r\n }\r\n const useStatefulReconnect = this.connection.features.reconnect || false;\r\n if (useStatefulReconnect) {\r\n this._messageBuffer = new MessageBuffer(this._protocol, this.connection, this._statefulReconnectBufferSize);\r\n this.connection.features.disconnected = this._messageBuffer._disconnected.bind(this._messageBuffer);\r\n this.connection.features.resend = () => {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._resend();\r\n }\r\n };\r\n }\r\n if (!this.connection.features.inherentKeepAlive) {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Debug, `Hub handshake failed with error '${e}' during start(). Stopping HubConnection.`);\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n // HttpConnection.stop() should not complete until after the onclose callback is invoked.\r\n // This will transition the HubConnection to the disconnected state before HttpConnection.stop() completes.\r\n await this.connection.stop(e);\r\n throw e;\r\n }\r\n }\r\n /** Stops the connection.\r\n *\r\n * @returns {Promise} A Promise that resolves when the connection has been successfully terminated, or rejects with an error.\r\n */\r\n async stop() {\r\n // Capture the start promise before the connection might be restarted in an onclose callback.\r\n const startPromise = this._startPromise;\r\n this.connection.features.reconnect = false;\r\n this._stopPromise = this._stopInternal();\r\n await this._stopPromise;\r\n try {\r\n // Awaiting undefined continues immediately\r\n await startPromise;\r\n }\r\n catch (e) {\r\n // This exception is returned to the user as a rejected Promise from the start method.\r\n }\r\n }\r\n _stopInternal(error) {\r\n if (this._connectionState === HubConnectionState.Disconnected) {\r\n this._logger.log(LogLevel.Debug, `Call to HubConnection.stop(${error}) ignored because it is already in the disconnected state.`);\r\n return Promise.resolve();\r\n }\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._logger.log(LogLevel.Debug, `Call to HttpConnection.stop(${error}) ignored because the connection is already in the disconnecting state.`);\r\n return this._stopPromise;\r\n }\r\n const state = this._connectionState;\r\n this._connectionState = HubConnectionState.Disconnecting;\r\n this._logger.log(LogLevel.Debug, \"Stopping HubConnection.\");\r\n if (this._reconnectDelayHandle) {\r\n // We're in a reconnect delay which means the underlying connection is currently already stopped.\r\n // Just clear the handle to stop the reconnect loop (which no one is waiting on thankfully) and\r\n // fire the onclose callbacks.\r\n this._logger.log(LogLevel.Debug, \"Connection stopped during reconnect delay. Done reconnecting.\");\r\n clearTimeout(this._reconnectDelayHandle);\r\n this._reconnectDelayHandle = undefined;\r\n this._completeClose();\r\n return Promise.resolve();\r\n }\r\n if (state === HubConnectionState.Connected) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._sendCloseMessage();\r\n }\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n this._stopDuringStartError = error || new AbortError(\"The connection was stopped before the hub handshake could complete.\");\r\n // HttpConnection.stop() should not complete until after either HttpConnection.start() fails\r\n // or the onclose callback is invoked. The onclose callback will transition the HubConnection\r\n // to the disconnected state if need be before HttpConnection.stop() completes.\r\n return this.connection.stop(error);\r\n }\r\n async _sendCloseMessage() {\r\n try {\r\n await this._sendWithProtocol(this._createCloseMessage());\r\n }\r\n catch {\r\n // Ignore, this is a best effort attempt to let the server know the client closed gracefully.\r\n }\r\n }\r\n /** Invokes a streaming hub method on the server using the specified name and arguments.\r\n *\r\n * @typeparam T The type of the items returned by the server.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {IStreamResult} An object that yields results from the server as they are received.\r\n */\r\n stream(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createStreamInvocation(methodName, args, streamIds);\r\n // eslint-disable-next-line prefer-const\r\n let promiseQueue;\r\n const subject = new Subject();\r\n subject.cancelCallback = () => {\r\n const cancelInvocation = this._createCancelInvocation(invocationDescriptor.invocationId);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n return promiseQueue.then(() => {\r\n return this._sendWithProtocol(cancelInvocation);\r\n });\r\n };\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n subject.error(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n subject.error(new Error(invocationEvent.error));\r\n }\r\n else {\r\n subject.complete();\r\n }\r\n }\r\n else {\r\n subject.next((invocationEvent.item));\r\n }\r\n }\r\n };\r\n promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n subject.error(e);\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n return subject;\r\n }\r\n _sendMessage(message) {\r\n this._resetKeepAliveInterval();\r\n return this.connection.send(message);\r\n }\r\n /**\r\n * Sends a js object to the server.\r\n * @param message The js object to serialize and send.\r\n */\r\n _sendWithProtocol(message) {\r\n if (this._messageBuffer) {\r\n return this._messageBuffer._send(message);\r\n }\r\n else {\r\n return this._sendMessage(this._protocol.writeMessage(message));\r\n }\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments. Does not wait for a response from the receiver.\r\n *\r\n * The Promise returned by this method resolves when the client has sent the invocation to the server. The server may still\r\n * be processing the invocation.\r\n *\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves when the invocation has been successfully sent, or rejects with an error.\r\n */\r\n send(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const sendPromise = this._sendWithProtocol(this._createInvocation(methodName, args, true, streamIds));\r\n this._launchStreams(streams, sendPromise);\r\n return sendPromise;\r\n }\r\n /** Invokes a hub method on the server using the specified name and arguments.\r\n *\r\n * The Promise returned by this method resolves when the server indicates it has finished invoking the method. When the promise\r\n * resolves, the server has finished invoking the method. If the server method returns a result, it is produced as the result of\r\n * resolving the Promise.\r\n *\r\n * @typeparam T The expected return type.\r\n * @param {string} methodName The name of the server method to invoke.\r\n * @param {any[]} args The arguments used to invoke the server method.\r\n * @returns {Promise} A Promise that resolves with the result of the server method (if any), or rejects with an error.\r\n */\r\n invoke(methodName, ...args) {\r\n const [streams, streamIds] = this._replaceStreamingParams(args);\r\n const invocationDescriptor = this._createInvocation(methodName, args, false, streamIds);\r\n const p = new Promise((resolve, reject) => {\r\n // invocationId will always have a value for a non-blocking invocation\r\n this._callbacks[invocationDescriptor.invocationId] = (invocationEvent, error) => {\r\n if (error) {\r\n reject(error);\r\n return;\r\n }\r\n else if (invocationEvent) {\r\n // invocationEvent will not be null when an error is not passed to the callback\r\n if (invocationEvent.type === MessageType.Completion) {\r\n if (invocationEvent.error) {\r\n reject(new Error(invocationEvent.error));\r\n }\r\n else {\r\n resolve(invocationEvent.result);\r\n }\r\n }\r\n else {\r\n reject(new Error(`Unexpected message type: ${invocationEvent.type}`));\r\n }\r\n }\r\n };\r\n const promiseQueue = this._sendWithProtocol(invocationDescriptor)\r\n .catch((e) => {\r\n reject(e);\r\n // invocationId will always have a value for a non-blocking invocation\r\n delete this._callbacks[invocationDescriptor.invocationId];\r\n });\r\n this._launchStreams(streams, promiseQueue);\r\n });\r\n return p;\r\n }\r\n on(methodName, newMethod) {\r\n if (!methodName || !newMethod) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n if (!this._methods[methodName]) {\r\n this._methods[methodName] = [];\r\n }\r\n // Preventing adding the same handler multiple times.\r\n if (this._methods[methodName].indexOf(newMethod) !== -1) {\r\n return;\r\n }\r\n this._methods[methodName].push(newMethod);\r\n }\r\n off(methodName, method) {\r\n if (!methodName) {\r\n return;\r\n }\r\n methodName = methodName.toLowerCase();\r\n const handlers = this._methods[methodName];\r\n if (!handlers) {\r\n return;\r\n }\r\n if (method) {\r\n const removeIdx = handlers.indexOf(method);\r\n if (removeIdx !== -1) {\r\n handlers.splice(removeIdx, 1);\r\n if (handlers.length === 0) {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n }\r\n else {\r\n delete this._methods[methodName];\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection is closed.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection is closed. Optionally receives a single argument containing the error that caused the connection to close (if any).\r\n */\r\n onclose(callback) {\r\n if (callback) {\r\n this._closedCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection starts reconnecting.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection starts reconnecting. Optionally receives a single argument containing the error that caused the connection to start reconnecting (if any).\r\n */\r\n onreconnecting(callback) {\r\n if (callback) {\r\n this._reconnectingCallbacks.push(callback);\r\n }\r\n }\r\n /** Registers a handler that will be invoked when the connection successfully reconnects.\r\n *\r\n * @param {Function} callback The handler that will be invoked when the connection successfully reconnects.\r\n */\r\n onreconnected(callback) {\r\n if (callback) {\r\n this._reconnectedCallbacks.push(callback);\r\n }\r\n }\r\n _processIncomingData(data) {\r\n this._cleanupTimeout();\r\n if (!this._receivedHandshakeResponse) {\r\n data = this._processHandshakeResponse(data);\r\n this._receivedHandshakeResponse = true;\r\n }\r\n // Data may have all been read when processing handshake response\r\n if (data) {\r\n // Parse the messages\r\n const messages = this._protocol.parseMessages(data, this._logger);\r\n for (const message of messages) {\r\n if (this._messageBuffer && !this._messageBuffer._shouldProcessMessage(message)) {\r\n // Don't process the message, we are either waiting for a SequenceMessage or received a duplicate message\r\n continue;\r\n }\r\n switch (message.type) {\r\n case MessageType.Invocation:\r\n this._invokeClientMethod(message)\r\n .catch((e) => {\r\n this._logger.log(LogLevel.Error, `Invoke client method threw error: ${getErrorString(e)}`);\r\n });\r\n break;\r\n case MessageType.StreamItem:\r\n case MessageType.Completion: {\r\n const callback = this._callbacks[message.invocationId];\r\n if (callback) {\r\n if (message.type === MessageType.Completion) {\r\n delete this._callbacks[message.invocationId];\r\n }\r\n try {\r\n callback(message);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream callback threw error: ${getErrorString(e)}`);\r\n }\r\n }\r\n break;\r\n }\r\n case MessageType.Ping:\r\n // Don't care about pings\r\n break;\r\n case MessageType.Close: {\r\n this._logger.log(LogLevel.Information, \"Close message received from server.\");\r\n const error = message.error ? new Error(\"Server returned an error on close: \" + message.error) : undefined;\r\n if (message.allowReconnect === true) {\r\n // It feels wrong not to await connection.stop() here, but processIncomingData is called as part of an onreceive callback which is not async,\r\n // this is already the behavior for serverTimeout(), and HttpConnection.Stop() should catch and log all possible exceptions.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(error);\r\n }\r\n else {\r\n // We cannot await stopInternal() here, but subsequent calls to stop() will await this if stopInternal() is still ongoing.\r\n this._stopPromise = this._stopInternal(error);\r\n }\r\n break;\r\n }\r\n case MessageType.Ack:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._ack(message);\r\n }\r\n break;\r\n case MessageType.Sequence:\r\n if (this._messageBuffer) {\r\n this._messageBuffer._resetSequence(message);\r\n }\r\n break;\r\n default:\r\n this._logger.log(LogLevel.Warning, `Invalid message type: ${message.type}.`);\r\n break;\r\n }\r\n }\r\n }\r\n this._resetTimeoutPeriod();\r\n }\r\n _processHandshakeResponse(data) {\r\n let responseMessage;\r\n let remainingData;\r\n try {\r\n [remainingData, responseMessage] = this._handshakeProtocol.parseHandshakeResponse(data);\r\n }\r\n catch (e) {\r\n const message = \"Error parsing handshake response: \" + e;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n if (responseMessage.error) {\r\n const message = \"Server returned handshake error: \" + responseMessage.error;\r\n this._logger.log(LogLevel.Error, message);\r\n const error = new Error(message);\r\n this._handshakeRejecter(error);\r\n throw error;\r\n }\r\n else {\r\n this._logger.log(LogLevel.Debug, \"Server handshake complete.\");\r\n }\r\n this._handshakeResolver();\r\n return remainingData;\r\n }\r\n _resetKeepAliveInterval() {\r\n if (this.connection.features.inherentKeepAlive) {\r\n return;\r\n }\r\n // Set the time we want the next keep alive to be sent\r\n // Timer will be setup on next message receive\r\n this._nextKeepAlive = new Date().getTime() + this.keepAliveIntervalInMilliseconds;\r\n this._cleanupPingTimer();\r\n }\r\n _resetTimeoutPeriod() {\r\n if (!this.connection.features || !this.connection.features.inherentKeepAlive) {\r\n // Set the timeout timer\r\n this._timeoutHandle = setTimeout(() => this.serverTimeout(), this.serverTimeoutInMilliseconds);\r\n // Set keepAlive timer if there isn't one\r\n if (this._pingServerHandle === undefined) {\r\n let nextPing = this._nextKeepAlive - new Date().getTime();\r\n if (nextPing < 0) {\r\n nextPing = 0;\r\n }\r\n // The timer needs to be set from a networking callback to avoid Chrome timer throttling from causing timers to run once a minute\r\n this._pingServerHandle = setTimeout(async () => {\r\n if (this._connectionState === HubConnectionState.Connected) {\r\n try {\r\n await this._sendMessage(this._cachedPingMessage);\r\n }\r\n catch {\r\n // We don't care about the error. It should be seen elsewhere in the client.\r\n // The connection is probably in a bad or closed state now, cleanup the timer so it stops triggering\r\n this._cleanupPingTimer();\r\n }\r\n }\r\n }, nextPing);\r\n }\r\n }\r\n }\r\n // eslint-disable-next-line @typescript-eslint/naming-convention\r\n serverTimeout() {\r\n // The server hasn't talked to us in a while. It doesn't like us anymore ... :(\r\n // Terminate the connection, but we don't need to wait on the promise. This could trigger reconnecting.\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this.connection.stop(new Error(\"Server timeout elapsed without receiving a message from the server.\"));\r\n }\r\n async _invokeClientMethod(invocationMessage) {\r\n const methodName = invocationMessage.target.toLowerCase();\r\n const methods = this._methods[methodName];\r\n if (!methods) {\r\n this._logger.log(LogLevel.Warning, `No client method with the name '${methodName}' found.`);\r\n // No handlers provided by client but the server is expecting a response still, so we send an error\r\n if (invocationMessage.invocationId) {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n await this._sendWithProtocol(this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null));\r\n }\r\n return;\r\n }\r\n // Avoid issues with handlers removing themselves thus modifying the list while iterating through it\r\n const methodsCopy = methods.slice();\r\n // Server expects a response\r\n const expectsResponse = invocationMessage.invocationId ? true : false;\r\n // We preserve the last result or exception but still call all handlers\r\n let res;\r\n let exception;\r\n let completionMessage;\r\n for (const m of methodsCopy) {\r\n try {\r\n const prevRes = res;\r\n res = await m.apply(this, invocationMessage.arguments);\r\n if (expectsResponse && res && prevRes) {\r\n this._logger.log(LogLevel.Error, `Multiple results provided for '${methodName}'. Sending error to server.`);\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `Client provided multiple results.`, null);\r\n }\r\n // Ignore exception if we got a result after, the exception will be logged\r\n exception = undefined;\r\n }\r\n catch (e) {\r\n exception = e;\r\n this._logger.log(LogLevel.Error, `A callback for the method '${methodName}' threw error '${e}'.`);\r\n }\r\n }\r\n if (completionMessage) {\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else if (expectsResponse) {\r\n // If there is an exception that means either no result was given or a handler after a result threw\r\n if (exception) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, `${exception}`, null);\r\n }\r\n else if (res !== undefined) {\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, null, res);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Warning, `No result given for '${methodName}' method and invocation ID '${invocationMessage.invocationId}'.`);\r\n // Client didn't provide a result or throw from a handler, server expects a response so we send an error\r\n completionMessage = this._createCompletionMessage(invocationMessage.invocationId, \"Client didn't provide a result.\", null);\r\n }\r\n await this._sendWithProtocol(completionMessage);\r\n }\r\n else {\r\n if (res) {\r\n this._logger.log(LogLevel.Error, `Result given for '${methodName}' method but server is not expecting a result.`);\r\n }\r\n }\r\n }\r\n _connectionClosed(error) {\r\n this._logger.log(LogLevel.Debug, `HubConnection.connectionClosed(${error}) called while in state ${this._connectionState}.`);\r\n // Triggering this.handshakeRejecter is insufficient because it could already be resolved without the continuation having run yet.\r\n this._stopDuringStartError = this._stopDuringStartError || error || new AbortError(\"The underlying connection was closed before the hub handshake could complete.\");\r\n // If the handshake is in progress, start will be waiting for the handshake promise, so we complete it.\r\n // If it has already completed, this should just noop.\r\n if (this._handshakeResolver) {\r\n this._handshakeResolver();\r\n }\r\n this._cancelCallbacksWithError(error || new Error(\"Invocation canceled due to the underlying connection being closed.\"));\r\n this._cleanupTimeout();\r\n this._cleanupPingTimer();\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected && this._reconnectPolicy) {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n this._reconnect(error);\r\n }\r\n else if (this._connectionState === HubConnectionState.Connected) {\r\n this._completeClose(error);\r\n }\r\n // If none of the above if conditions were true were called the HubConnection must be in either:\r\n // 1. The Connecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail it.\r\n // 2. The Reconnecting state in which case the handshakeResolver will complete it and stopDuringStartError will fail the current reconnect attempt\r\n // and potentially continue the reconnect() loop.\r\n // 3. The Disconnected state in which case we're already done.\r\n }\r\n _completeClose(error) {\r\n if (this._connectionStarted) {\r\n this._connectionState = HubConnectionState.Disconnected;\r\n this._connectionStarted = false;\r\n if (this._messageBuffer) {\r\n this._messageBuffer._dispose(error !== null && error !== void 0 ? error : new Error(\"Connection closed.\"));\r\n this._messageBuffer = undefined;\r\n }\r\n if (Platform.isBrowser) {\r\n window.document.removeEventListener(\"freeze\", this._freezeEventListener);\r\n }\r\n try {\r\n this._closedCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onclose callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n }\r\n }\r\n async _reconnect(error) {\r\n const reconnectStartTime = Date.now();\r\n let previousReconnectAttempts = 0;\r\n let retryError = error !== undefined ? error : new Error(\"Attempting to reconnect due to a unknown error.\");\r\n let nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, 0, retryError);\r\n if (nextRetryDelay === null) {\r\n this._logger.log(LogLevel.Debug, \"Connection not reconnecting because the IRetryPolicy returned null on the first reconnect attempt.\");\r\n this._completeClose(error);\r\n return;\r\n }\r\n this._connectionState = HubConnectionState.Reconnecting;\r\n if (error) {\r\n this._logger.log(LogLevel.Information, `Connection reconnecting because of error '${error}'.`);\r\n }\r\n else {\r\n this._logger.log(LogLevel.Information, \"Connection reconnecting.\");\r\n }\r\n if (this._reconnectingCallbacks.length !== 0) {\r\n try {\r\n this._reconnectingCallbacks.forEach((c) => c.apply(this, [error]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnecting callback called with error '${error}' threw error '${e}'.`);\r\n }\r\n // Exit early if an onreconnecting callback called connection.stop().\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state in onreconnecting callback. Done reconnecting.\");\r\n return;\r\n }\r\n }\r\n while (nextRetryDelay !== null) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt number ${previousReconnectAttempts} will start in ${nextRetryDelay} ms.`);\r\n await new Promise((resolve) => {\r\n this._reconnectDelayHandle = setTimeout(resolve, nextRetryDelay);\r\n });\r\n this._reconnectDelayHandle = undefined;\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, \"Connection left the reconnecting state during reconnect delay. Done reconnecting.\");\r\n return;\r\n }\r\n try {\r\n await this._startInternal();\r\n this._connectionState = HubConnectionState.Connected;\r\n this._logger.log(LogLevel.Information, \"HubConnection reconnected successfully.\");\r\n if (this._reconnectedCallbacks.length !== 0) {\r\n try {\r\n this._reconnectedCallbacks.forEach((c) => c.apply(this, [this.connection.connectionId]));\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `An onreconnected callback called with connectionId '${this.connection.connectionId}; threw error '${e}'.`);\r\n }\r\n }\r\n return;\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Information, `Reconnect attempt failed because of error '${e}'.`);\r\n if (this._connectionState !== HubConnectionState.Reconnecting) {\r\n this._logger.log(LogLevel.Debug, `Connection moved to the '${this._connectionState}' from the reconnecting state during reconnect attempt. Done reconnecting.`);\r\n // The TypeScript compiler thinks that connectionState must be Connected here. The TypeScript compiler is wrong.\r\n if (this._connectionState === HubConnectionState.Disconnecting) {\r\n this._completeClose();\r\n }\r\n return;\r\n }\r\n retryError = e instanceof Error ? e : new Error(e.toString());\r\n nextRetryDelay = this._getNextRetryDelay(previousReconnectAttempts++, Date.now() - reconnectStartTime, retryError);\r\n }\r\n }\r\n this._logger.log(LogLevel.Information, `Reconnect retries have been exhausted after ${Date.now() - reconnectStartTime} ms and ${previousReconnectAttempts} failed attempts. Connection disconnecting.`);\r\n this._completeClose();\r\n }\r\n _getNextRetryDelay(previousRetryCount, elapsedMilliseconds, retryReason) {\r\n try {\r\n return this._reconnectPolicy.nextRetryDelayInMilliseconds({\r\n elapsedMilliseconds,\r\n previousRetryCount,\r\n retryReason,\r\n });\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `IRetryPolicy.nextRetryDelayInMilliseconds(${previousRetryCount}, ${elapsedMilliseconds}) threw error '${e}'.`);\r\n return null;\r\n }\r\n }\r\n _cancelCallbacksWithError(error) {\r\n const callbacks = this._callbacks;\r\n this._callbacks = {};\r\n Object.keys(callbacks)\r\n .forEach((key) => {\r\n const callback = callbacks[key];\r\n try {\r\n callback(null, error);\r\n }\r\n catch (e) {\r\n this._logger.log(LogLevel.Error, `Stream 'error' callback called with '${error}' threw error: ${getErrorString(e)}`);\r\n }\r\n });\r\n }\r\n _cleanupPingTimer() {\r\n if (this._pingServerHandle) {\r\n clearTimeout(this._pingServerHandle);\r\n this._pingServerHandle = undefined;\r\n }\r\n }\r\n _cleanupTimeout() {\r\n if (this._timeoutHandle) {\r\n clearTimeout(this._timeoutHandle);\r\n }\r\n }\r\n _createInvocation(methodName, args, nonblocking, streamIds) {\r\n if (nonblocking) {\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n else {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.Invocation,\r\n };\r\n }\r\n }\r\n }\r\n _launchStreams(streams, promiseQueue) {\r\n if (streams.length === 0) {\r\n return;\r\n }\r\n // Synchronize stream data so they arrive in-order on the server\r\n if (!promiseQueue) {\r\n promiseQueue = Promise.resolve();\r\n }\r\n // We want to iterate over the keys, since the keys are the stream ids\r\n // eslint-disable-next-line guard-for-in\r\n for (const streamId in streams) {\r\n streams[streamId].subscribe({\r\n complete: () => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId)));\r\n },\r\n error: (err) => {\r\n let message;\r\n if (err instanceof Error) {\r\n message = err.message;\r\n }\r\n else if (err && err.toString) {\r\n message = err.toString();\r\n }\r\n else {\r\n message = \"Unknown error\";\r\n }\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createCompletionMessage(streamId, message)));\r\n },\r\n next: (item) => {\r\n promiseQueue = promiseQueue.then(() => this._sendWithProtocol(this._createStreamItemMessage(streamId, item)));\r\n },\r\n });\r\n }\r\n }\r\n _replaceStreamingParams(args) {\r\n const streams = [];\r\n const streamIds = [];\r\n for (let i = 0; i < args.length; i++) {\r\n const argument = args[i];\r\n if (this._isObservable(argument)) {\r\n const streamId = this._invocationId;\r\n this._invocationId++;\r\n // Store the stream for later use\r\n streams[streamId] = argument;\r\n streamIds.push(streamId.toString());\r\n // remove stream from args\r\n args.splice(i, 1);\r\n }\r\n }\r\n return [streams, streamIds];\r\n }\r\n _isObservable(arg) {\r\n // This allows other stream implementations to just work (like rxjs)\r\n return arg && arg.subscribe && typeof arg.subscribe === \"function\";\r\n }\r\n _createStreamInvocation(methodName, args, streamIds) {\r\n const invocationId = this._invocationId;\r\n this._invocationId++;\r\n if (streamIds.length !== 0) {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n streamIds,\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n else {\r\n return {\r\n arguments: args,\r\n invocationId: invocationId.toString(),\r\n target: methodName,\r\n type: MessageType.StreamInvocation,\r\n };\r\n }\r\n }\r\n _createCancelInvocation(id) {\r\n return {\r\n invocationId: id,\r\n type: MessageType.CancelInvocation,\r\n };\r\n }\r\n _createStreamItemMessage(id, item) {\r\n return {\r\n invocationId: id,\r\n item,\r\n type: MessageType.StreamItem,\r\n };\r\n }\r\n _createCompletionMessage(id, error, result) {\r\n if (error) {\r\n return {\r\n error,\r\n invocationId: id,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n return {\r\n invocationId: id,\r\n result,\r\n type: MessageType.Completion,\r\n };\r\n }\r\n _createCloseMessage() {\r\n return { type: MessageType.Close };\r\n }\r\n}\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** Defines the type of a Hub Message. */\r\nexport var MessageType;\r\n(function (MessageType) {\r\n /** Indicates the message is an Invocation message and implements the {@link @microsoft/signalr.InvocationMessage} interface. */\r\n MessageType[MessageType[\"Invocation\"] = 1] = \"Invocation\";\r\n /** Indicates the message is a StreamItem message and implements the {@link @microsoft/signalr.StreamItemMessage} interface. */\r\n MessageType[MessageType[\"StreamItem\"] = 2] = \"StreamItem\";\r\n /** Indicates the message is a Completion message and implements the {@link @microsoft/signalr.CompletionMessage} interface. */\r\n MessageType[MessageType[\"Completion\"] = 3] = \"Completion\";\r\n /** Indicates the message is a Stream Invocation message and implements the {@link @microsoft/signalr.StreamInvocationMessage} interface. */\r\n MessageType[MessageType[\"StreamInvocation\"] = 4] = \"StreamInvocation\";\r\n /** Indicates the message is a Cancel Invocation message and implements the {@link @microsoft/signalr.CancelInvocationMessage} interface. */\r\n MessageType[MessageType[\"CancelInvocation\"] = 5] = \"CancelInvocation\";\r\n /** Indicates the message is a Ping message and implements the {@link @microsoft/signalr.PingMessage} interface. */\r\n MessageType[MessageType[\"Ping\"] = 6] = \"Ping\";\r\n /** Indicates the message is a Close message and implements the {@link @microsoft/signalr.CloseMessage} interface. */\r\n MessageType[MessageType[\"Close\"] = 7] = \"Close\";\r\n MessageType[MessageType[\"Ack\"] = 8] = \"Ack\";\r\n MessageType[MessageType[\"Sequence\"] = 9] = \"Sequence\";\r\n})(MessageType || (MessageType = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// These values are designed to match the ASP.NET Log Levels since that's the pattern we're emulating here.\r\n/** Indicates the severity of a log message.\r\n *\r\n * Log Levels are ordered in increasing severity. So `Debug` is more severe than `Trace`, etc.\r\n */\r\nexport var LogLevel;\r\n(function (LogLevel) {\r\n /** Log level for very low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Trace\"] = 0] = \"Trace\";\r\n /** Log level for low severity diagnostic messages. */\r\n LogLevel[LogLevel[\"Debug\"] = 1] = \"Debug\";\r\n /** Log level for informational diagnostic messages. */\r\n LogLevel[LogLevel[\"Information\"] = 2] = \"Information\";\r\n /** Log level for diagnostic messages that indicate a non-fatal problem. */\r\n LogLevel[LogLevel[\"Warning\"] = 3] = \"Warning\";\r\n /** Log level for diagnostic messages that indicate a failure in the current operation. */\r\n LogLevel[LogLevel[\"Error\"] = 4] = \"Error\";\r\n /** Log level for diagnostic messages that indicate a failure that will terminate the entire application. */\r\n LogLevel[LogLevel[\"Critical\"] = 5] = \"Critical\";\r\n /** The highest possible log level. Used when configuring logging to indicate that no log messages should be emitted. */\r\n LogLevel[LogLevel[\"None\"] = 6] = \"None\";\r\n})(LogLevel || (LogLevel = {}));\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n/** A logger that does nothing when log messages are sent to it. */\r\nexport class NullLogger {\r\n constructor() { }\r\n /** @inheritDoc */\r\n // eslint-disable-next-line\r\n log(_logLevel, _message) {\r\n }\r\n}\r\n/** The singleton instance of the {@link @microsoft/signalr.NullLogger}. */\r\nNullLogger.instance = new NullLogger();\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\n// Not exported from index\r\n/** @private */\r\nexport class TextMessageFormat {\r\n static write(output) {\r\n return `${output}${TextMessageFormat.RecordSeparator}`;\r\n }\r\n static parse(input) {\r\n if (input[input.length - 1] !== TextMessageFormat.RecordSeparator) {\r\n throw new Error(\"Message is incomplete.\");\r\n }\r\n const messages = input.split(TextMessageFormat.RecordSeparator);\r\n messages.pop();\r\n return messages;\r\n }\r\n}\r\nTextMessageFormat.RecordSeparatorCode = 0x1e;\r\nTextMessageFormat.RecordSeparator = String.fromCharCode(TextMessageFormat.RecordSeparatorCode);\r\n","// Licensed to the .NET Foundation under one or more agreements.\r\n// The .NET Foundation licenses this file to you under the MIT license.\r\nimport { LogLevel } from \"./ILogger\";\r\nimport { NullLogger } from \"./Loggers\";\r\n// Version token that will be replaced by the prepack command\r\n/** The version of the SignalR client. */\r\nexport const VERSION = \"8.0.7\";\r\n/** @private */\r\nexport class Arg {\r\n static isRequired(val, name) {\r\n if (val === null || val === undefined) {\r\n throw new Error(`The '${name}' argument is required.`);\r\n }\r\n }\r\n static isNotEmpty(val, name) {\r\n if (!val || val.match(/^\\s*$/)) {\r\n throw new Error(`The '${name}' argument should not be empty.`);\r\n }\r\n }\r\n static isIn(val, values, name) {\r\n // TypeScript enums have keys for **both** the name and the value of each enum member on the type itself.\r\n if (!(val in values)) {\r\n throw new Error(`Unknown ${name} value: ${val}.`);\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class Platform {\r\n // react-native has a window but no document so we should check both\r\n static get isBrowser() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"object\";\r\n }\r\n // WebWorkers don't have a window object so the isBrowser check would fail\r\n static get isWebWorker() {\r\n return !Platform.isNode && typeof self === \"object\" && \"importScripts\" in self;\r\n }\r\n // react-native has a window but no document\r\n static get isReactNative() {\r\n return !Platform.isNode && typeof window === \"object\" && typeof window.document === \"undefined\";\r\n }\r\n // Node apps shouldn't have a window object, but WebWorkers don't either\r\n // so we need to check for both WebWorker and window\r\n static get isNode() {\r\n return typeof process !== \"undefined\" && process.release && process.release.name === \"node\";\r\n }\r\n}\r\n/** @private */\r\nexport function getDataDetail(data, includeContent) {\r\n let detail = \"\";\r\n if (isArrayBuffer(data)) {\r\n detail = `Binary data of length ${data.byteLength}`;\r\n if (includeContent) {\r\n detail += `. Content: '${formatArrayBuffer(data)}'`;\r\n }\r\n }\r\n else if (typeof data === \"string\") {\r\n detail = `String data of length ${data.length}`;\r\n if (includeContent) {\r\n detail += `. Content: '${data}'`;\r\n }\r\n }\r\n return detail;\r\n}\r\n/** @private */\r\nexport function formatArrayBuffer(data) {\r\n const view = new Uint8Array(data);\r\n // Uint8Array.map only supports returning another Uint8Array?\r\n let str = \"\";\r\n view.forEach((num) => {\r\n const pad = num < 16 ? \"0\" : \"\";\r\n str += `0x${pad}${num.toString(16)} `;\r\n });\r\n // Trim of trailing space.\r\n return str.substr(0, str.length - 1);\r\n}\r\n// Also in signalr-protocol-msgpack/Utils.ts\r\n/** @private */\r\nexport function isArrayBuffer(val) {\r\n return val && typeof ArrayBuffer !== \"undefined\" &&\r\n (val instanceof ArrayBuffer ||\r\n // Sometimes we get an ArrayBuffer that doesn't satisfy instanceof\r\n (val.constructor && val.constructor.name === \"ArrayBuffer\"));\r\n}\r\n/** @private */\r\nexport async function sendMessage(logger, transportName, httpClient, url, content, options) {\r\n const headers = {};\r\n const [name, value] = getUserAgentHeader();\r\n headers[name] = value;\r\n logger.log(LogLevel.Trace, `(${transportName} transport) sending data. ${getDataDetail(content, options.logMessageContent)}.`);\r\n const responseType = isArrayBuffer(content) ? \"arraybuffer\" : \"text\";\r\n const response = await httpClient.post(url, {\r\n content,\r\n headers: { ...headers, ...options.headers },\r\n responseType,\r\n timeout: options.timeout,\r\n withCredentials: options.withCredentials,\r\n });\r\n logger.log(LogLevel.Trace, `(${transportName} transport) request complete. Response status: ${response.statusCode}.`);\r\n}\r\n/** @private */\r\nexport function createLogger(logger) {\r\n if (logger === undefined) {\r\n return new ConsoleLogger(LogLevel.Information);\r\n }\r\n if (logger === null) {\r\n return NullLogger.instance;\r\n }\r\n if (logger.log !== undefined) {\r\n return logger;\r\n }\r\n return new ConsoleLogger(logger);\r\n}\r\n/** @private */\r\nexport class SubjectSubscription {\r\n constructor(subject, observer) {\r\n this._subject = subject;\r\n this._observer = observer;\r\n }\r\n dispose() {\r\n const index = this._subject.observers.indexOf(this._observer);\r\n if (index > -1) {\r\n this._subject.observers.splice(index, 1);\r\n }\r\n if (this._subject.observers.length === 0 && this._subject.cancelCallback) {\r\n this._subject.cancelCallback().catch((_) => { });\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport class ConsoleLogger {\r\n constructor(minimumLogLevel) {\r\n this._minLevel = minimumLogLevel;\r\n this.out = console;\r\n }\r\n log(logLevel, message) {\r\n if (logLevel >= this._minLevel) {\r\n const msg = `[${new Date().toISOString()}] ${LogLevel[logLevel]}: ${message}`;\r\n switch (logLevel) {\r\n case LogLevel.Critical:\r\n case LogLevel.Error:\r\n this.out.error(msg);\r\n break;\r\n case LogLevel.Warning:\r\n this.out.warn(msg);\r\n break;\r\n case LogLevel.Information:\r\n this.out.info(msg);\r\n break;\r\n default:\r\n // console.debug only goes to attached debuggers in Node, so we use console.log for Trace and Debug\r\n this.out.log(msg);\r\n break;\r\n }\r\n }\r\n }\r\n}\r\n/** @private */\r\nexport function getUserAgentHeader() {\r\n let userAgentHeaderName = \"X-SignalR-User-Agent\";\r\n if (Platform.isNode) {\r\n userAgentHeaderName = \"User-Agent\";\r\n }\r\n return [userAgentHeaderName, constructUserAgent(VERSION, getOsName(), getRuntime(), getRuntimeVersion())];\r\n}\r\n/** @private */\r\nexport function constructUserAgent(version, os, runtime, runtimeVersion) {\r\n // Microsoft SignalR/[Version] ([Detailed Version]; [Operating System]; [Runtime]; [Runtime Version])\r\n let userAgent = \"Microsoft SignalR/\";\r\n const majorAndMinor = version.split(\".\");\r\n userAgent += `${majorAndMinor[0]}.${majorAndMinor[1]}`;\r\n userAgent += ` (${version}; `;\r\n if (os && os !== \"\") {\r\n userAgent += `${os}; `;\r\n }\r\n else {\r\n userAgent += \"Unknown OS; \";\r\n }\r\n userAgent += `${runtime}`;\r\n if (runtimeVersion) {\r\n userAgent += `; ${runtimeVersion}`;\r\n }\r\n else {\r\n userAgent += \"; Unknown Runtime Version\";\r\n }\r\n userAgent += \")\";\r\n return userAgent;\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getOsName() {\r\n if (Platform.isNode) {\r\n switch (process.platform) {\r\n case \"win32\":\r\n return \"Windows NT\";\r\n case \"darwin\":\r\n return \"macOS\";\r\n case \"linux\":\r\n return \"Linux\";\r\n default:\r\n return process.platform;\r\n }\r\n }\r\n else {\r\n return \"\";\r\n }\r\n}\r\n// eslint-disable-next-line spaced-comment\r\n/*#__PURE__*/ function getRuntimeVersion() {\r\n if (Platform.isNode) {\r\n return process.versions.node;\r\n }\r\n return undefined;\r\n}\r\nfunction getRuntime() {\r\n if (Platform.isNode) {\r\n return \"NodeJS\";\r\n }\r\n else {\r\n return \"Browser\";\r\n }\r\n}\r\n/** @private */\r\nexport function getErrorString(e) {\r\n if (e.stack) {\r\n return e.stack;\r\n }\r\n else if (e.message) {\r\n return e.message;\r\n }\r\n return `${e}`;\r\n}\r\n/** @private */\r\nexport function getGlobalThis() {\r\n // globalThis is semi-new and not available in Node until v12\r\n if (typeof globalThis !== \"undefined\") {\r\n return globalThis;\r\n }\r\n if (typeof self !== \"undefined\") {\r\n return self;\r\n }\r\n if (typeof window !== \"undefined\") {\r\n return window;\r\n }\r\n if (typeof global !== \"undefined\") {\r\n return global;\r\n }\r\n throw new Error(\"could not find global\");\r\n}\r\n","/*! https://github.com/nevware21/ts-utils v0.11.5 */\n/*\n * Copyright (c) NevWare21 Solutions LLC and contributors. All rights reserved.\n * Licensed under the MIT license.\n */\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureAssign(func1, func2) {\n return func1 || func2;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _pureRef(value, name) {\n return value[name];\n}\n\nvar UNDEF_VALUE = undefined;\nvar NULL_VALUE = null;\nvar EMPTY = \"\";\nvar FUNCTION = \"function\";\nvar OBJECT = \"object\";\nvar PROTOTYPE = \"prototype\";\nvar __PROTO__ = \"__proto__\";\nvar UNDEFINED = \"undefined\";\nvar CONSTRUCTOR = \"constructor\";\nvar SYMBOL = \"Symbol\";\nvar POLYFILL_TAG = \"_polyfill\";\nvar LENGTH = \"length\";\nvar NAME = \"name\";\nvar CALL = \"call\";\nvar TO_STRING = \"toString\";\nvar ObjClass = ( /*#__PURE__*/_pureAssign(Object));\nvar ObjProto = ( /*#__PURE__*/_pureRef(ObjClass, PROTOTYPE));\nvar StrCls = ( /*#__PURE__*/_pureAssign(String));\nvar StrProto = ( /*#__PURE__*/_pureRef(StrCls, PROTOTYPE));\nvar MathCls = ( /*#__PURE__*/_pureAssign(Math));\nvar ArrCls = ( /*#__PURE__*/_pureAssign(Array));\nvar ArrProto = ( /*#__PURE__*/_pureRef(ArrCls, PROTOTYPE));\nvar ArrSlice = ( /*#__PURE__*/_pureRef(ArrProto, \"slice\"));\n\nfunction safe(func, argArray) {\n try {\n return {\n v: func.apply(this, argArray)\n };\n }\n catch (e) {\n return { e: e };\n }\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGet(cb, defValue) {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n}\n\nvar _primitiveTypes;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createIs(theType) {\n return function (value) {\n return typeof value === theType;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createObjIs(theName) {\n var theType = \"[object \" + theName + \"]\";\n return function (value) {\n return !!(value && objToString(value) === theType);\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objToString(value) {\n return ObjProto[TO_STRING].call(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTypeof(value, theType) {\n return typeof value === theType;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isUndefined(value) {\n return typeof value === UNDEFINED || value === UNDEFINED;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictUndefined(arg) {\n return !isDefined(arg);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNullOrUndefined(value) {\n return value === NULL_VALUE || isUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isStrictNullOrUndefined(value) {\n return value === NULL_VALUE || !isDefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isDefined(arg) {\n return !!arg || arg !== UNDEF_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitive(value) {\n return value === NULL_VALUE || isPrimitiveType(typeof value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPrimitiveType(theType) {\n !_primitiveTypes && (_primitiveTypes = [\"string\", \"number\", \"boolean\", UNDEFINED, \"symbol\", \"bigint\"]);\n return !!(theType !== OBJECT && _primitiveTypes.indexOf(theType) !== -1);\n}\nvar isString = ( /*#__PURE__*/_createIs(\"string\"));\nvar isFunction = ( /*#__PURE__*/_createIs(FUNCTION));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isObject(value) {\n if (!value && isNullOrUndefined(value)) {\n return false;\n }\n return !!value && typeof value === OBJECT;\n}\nvar isArray = ( /* #__PURE__*/_pureRef(ArrCls, \"isArray\"));\nvar isDate = ( /*#__PURE__*/_createObjIs(\"Date\"));\nvar isNumber = ( /*#__PURE__*/_createIs(\"number\"));\nvar isBoolean = ( /*#__PURE__*/_createIs(\"boolean\"));\nvar isRegExp = ( /*#__PURE__*/_createObjIs(\"RegExp\"));\nvar isFile = ( /*#__PURE__*/_createObjIs(\"File\"));\nvar isFormData = ( /*#__PURE__*/_createObjIs(\"FormData\"));\nvar isBlob = ( /*#__PURE__*/_createObjIs(\"Blob\"));\nvar isArrayBuffer = ( /*#__PURE__*/_createObjIs(\"ArrayBuffer\"));\nvar isError = ( /*#__PURE__*/_createObjIs(\"Error\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromiseLike(value) {\n return !!(value && value.then && isFunction(value.then));\n}\nvar isThenable = isPromiseLike;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPromise(value) {\n return !!(value && value.then && value.catch && isFunction(value.then) && isFunction(value.catch));\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isNotTruthy(value) {\n return !value || !isTruthy(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isTruthy(value) {\n return !(!value || safeGet(function () { return !(value && (0 + value)); }, !value));\n}\n\nvar objGetOwnPropertyDescriptor = ( /* #__PURE__ */_pureRef(ObjClass, \"getOwnPropertyDescriptor\"));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction objHasOwnProperty(obj, prop) {\n return !!obj && ObjProto.hasOwnProperty[CALL](obj, prop);\n}\n\nvar objHasOwn = ( /*#__PURE__*/_pureAssign(( /* #__PURE__ */_pureRef(ObjClass, \"hasOwn\")), polyObjHasOwn));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjHasOwn(obj, prop) {\n return objHasOwnProperty(obj, prop) || !!objGetOwnPropertyDescriptor(obj, prop);\n}\n\nfunction objForEachKey(theObject, callbackfn, thisArg) {\n if (theObject && isObject(theObject)) {\n for (var prop in theObject) {\n if (objHasOwn(theObject, prop)) {\n if (callbackfn[CALL](thisArg || theObject, prop, theObject[prop]) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar propMap = {\n e: \"enumerable\",\n c: \"configurable\",\n v: \"value\",\n w: \"writable\",\n g: \"get\",\n s: \"set\"\n};\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createProp(value) {\n var prop = {};\n prop[propMap[\"c\"]] = true;\n prop[propMap[\"e\"]] = true;\n if (value.l) {\n prop.get = function () { return value.l.v; };\n var desc = objGetOwnPropertyDescriptor(value.l, \"v\");\n if (desc && desc.set) {\n prop.set = function (newValue) {\n value.l.v = newValue;\n };\n }\n }\n objForEachKey(value, function (key, value) {\n prop[propMap[key]] = isStrictUndefined(value) ? prop[propMap[key]] : value;\n });\n return prop;\n}\nvar objDefineProp = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperty\"));\nvar objDefineProperties = ( /*#__PURE__*/_pureRef(ObjClass, \"defineProperties\"));\nfunction objDefineGet(target, key, value, configurable, enumerable) {\n var _a;\n return objDefineProp(target, key, _createProp((_a = {\n e: enumerable,\n c: configurable\n },\n _a[isFunction(value) ? \"g\" : \"v\"] = value,\n _a)));\n}\nfunction objDefineAccessors(target, prop, getProp, setProp, configurable, enumerable) {\n var desc = {\n e: enumerable,\n c: configurable\n };\n if (getProp) {\n desc.g = getProp;\n }\n if (setProp) {\n desc.s = setProp;\n }\n return objDefineProp(target, prop, _createProp(desc));\n}\nfunction objDefine(target, key, propDesc) {\n return objDefineProp(target, key, _createProp(propDesc));\n}\nfunction objDefineProps(target, propDescMap) {\n var props = {};\n objForEachKey(propDescMap, function (key, value) {\n props[key] = _createProp(value);\n });\n return objDefineProperties(target, props);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createKeyValueMap(values, keyType, valueType, completeFn, writable) {\n var theMap = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(theMap, key, keyType ? value : key, writable);\n _assignMapValue(theMap, value, valueType ? value : key, writable);\n });\n return completeFn ? completeFn(theMap) : theMap;\n}\nfunction _assignMapValue(theMap, key, value, writable) {\n objDefineProp(theMap, key, {\n value: value,\n enumerable: true,\n writable: !!writable\n });\n}\n\nvar asString = ( /* #__PURE__ */_pureAssign(StrCls));\n\nvar ERROR_TYPE = \"[object Error]\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction dumpObj(object, format) {\n var propertyValueDump = EMPTY;\n var objType = ObjProto[TO_STRING][CALL](object);\n if (objType === ERROR_TYPE) {\n object = { stack: asString(object.stack), message: asString(object.message), name: asString(object.name) };\n }\n try {\n propertyValueDump = JSON.stringify(object, NULL_VALUE, format ? ((typeof format === \"number\") ? format : 4) : UNDEF_VALUE);\n propertyValueDump = (propertyValueDump ? propertyValueDump.replace(/\"(\\w+)\"\\s*:\\s{0,1}/g, \"$1: \") : NULL_VALUE) || asString(object);\n }\n catch (e) {\n propertyValueDump = \" - \" + dumpObj(e, format);\n }\n return objType + \": \" + propertyValueDump;\n}\n\nfunction throwError(message) {\n throw new Error(message);\n}\nfunction throwTypeError(message) {\n throw new TypeError(message);\n}\nfunction throwRangeError(message) {\n throw new RangeError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjKeys(obj) {\n if (!isObject(obj) || obj === NULL_VALUE) {\n throwTypeError(\"non-object \" + dumpObj(obj));\n }\n var result = [];\n for (var prop in obj) {\n if (objHasOwn(obj, prop)) {\n result.push(prop);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjEntries(value) {\n var result = [];\n objForEachKey(value, function (key, value) {\n result.push([key, value]);\n });\n return result;\n}\n\nvar _objFreeze = ( /* #__PURE__ */_pureRef(ObjClass, \"freeze\"));\nfunction _doNothing(value) {\n return value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getProto(value) {\n return value[__PROTO__] || NULL_VALUE;\n}\nvar objAssign = ( /*#__PURE__*/_pureRef(ObjClass, \"assign\"));\nvar objKeys = ( /*#__PURE__*/_pureRef(ObjClass, \"keys\"));\nfunction objDeepFreeze(value) {\n if (_objFreeze) {\n objForEachKey(value, function (key, value) {\n if (isArray(value) || isObject(value)) {\n objDeepFreeze(value);\n }\n });\n }\n return objFreeze(value);\n}\nvar objFreeze = ( /* #__PURE__*/_pureAssign(_objFreeze, _doNothing));\nvar objSeal = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"seal\")), _doNothing));\nvar objGetPrototypeOf = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"getPrototypeOf\")), _getProto));\nvar objEntries = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"entries\")), polyObjEntries));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnum(values) {\n return _createKeyValueMap(values, 1 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumKeyMap(values) {\n return _createKeyValueMap(values, 0 , 0 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createEnumValueMap(values) {\n return _createKeyValueMap(values, 1 , 1 , objFreeze);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createSimpleMap(values) {\n var mapClass = {};\n objForEachKey(values, function (key, value) {\n _assignMapValue(mapClass, key, value[1]);\n _assignMapValue(mapClass, value[0], value[1]);\n });\n return objFreeze(mapClass);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createTypeMap(values) {\n return createSimpleMap(values);\n}\n\nvar _wellKnownSymbolMap = /*#__PURE__*/ createEnumKeyMap({\n asyncIterator: 0 ,\n hasInstance: 1 ,\n isConcatSpreadable: 2 ,\n iterator: 3 ,\n match: 4 ,\n matchAll: 5 ,\n replace: 6 ,\n search: 7 ,\n species: 8 ,\n split: 9 ,\n toPrimitive: 10 ,\n toStringTag: 11 ,\n unscopables: 12\n});\n\nvar GLOBAL_CONFIG_KEY = \"__tsUtils$gblCfg\";\nvar _globalCfg;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalValue() {\n var result;\n if (typeof globalThis !== UNDEFINED) {\n result = globalThis;\n }\n if (!result && typeof self !== UNDEFINED) {\n result = self;\n }\n if (!result && typeof window !== UNDEFINED) {\n result = window;\n }\n if (!result && typeof global !== UNDEFINED) {\n result = global;\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getGlobalConfig() {\n if (!_globalCfg) {\n var gbl = safe(_getGlobalValue).v || {};\n _globalCfg = gbl[GLOBAL_CONFIG_KEY] = gbl[GLOBAL_CONFIG_KEY] || {};\n }\n return _globalCfg;\n}\n\nvar _unwrapFunction = ( _unwrapFunctionWithPoly);\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapFunctionWithPoly(funcName, clsProto, polyFunc) {\n var clsFn = clsProto ? clsProto[funcName] : NULL_VALUE;\n return function (thisArg) {\n var theFunc = (thisArg ? thisArg[funcName] : NULL_VALUE) || clsFn;\n if (theFunc || polyFunc) {\n var theArgs = arguments;\n return (theFunc || polyFunc).apply(thisArg, theFunc ? ArrSlice[CALL](theArgs, 1) : theArgs);\n }\n throwTypeError(\"\\\"\" + asString(funcName) + \"\\\" not defined for \" + dumpObj(thisArg));\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _unwrapProp(propName) {\n return function (thisArg) {\n return thisArg[propName];\n };\n}\n\nvar mathMin = ( /*#__PURE__*/_pureRef(MathCls, \"min\"));\nvar mathMax = ( /*#__PURE__*/_pureRef(MathCls, \"max\"));\n\nvar strSlice = ( /*#__PURE__*/_unwrapFunction(\"slice\", StrProto));\n\nvar strSubstring = ( /*#__PURE__*/_unwrapFunction(\"substring\", StrProto));\nvar strSubstr = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"substr\", StrProto, polyStrSubstr));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSubstr(value, start, length) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"Invalid \" + dumpObj(value));\n }\n if (length < 0) {\n return EMPTY;\n }\n start = start || 0;\n if (start < 0) {\n start = mathMax(start + value[LENGTH], 0);\n }\n if (isUndefined(length)) {\n return strSlice(value, start);\n }\n return strSlice(value, start, start + length);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLeft(value, count) {\n return strSubstring(value, 0, count);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strRight(value, count) {\n return count <= 0 ? EMPTY : (value[LENGTH] > count ? strSlice(value, -count) : value);\n}\n\nvar UNIQUE_REGISTRY_ID = \"_urid\";\nvar _polySymbols;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _globalSymbolRegistry() {\n if (!_polySymbols) {\n var gblCfg = _getGlobalConfig();\n _polySymbols = gblCfg.gblSym = gblCfg.gblSym || { k: {}, s: {} };\n }\n return _polySymbols;\n}\nvar _wellKnownSymbolCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyNewSymbol(description) {\n var theSymbol = {\n description: asString(description),\n toString: function () { return SYMBOL + \"(\" + description + \")\"; }\n };\n theSymbol[POLYFILL_TAG] = true;\n return theSymbol;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolFor(key) {\n var registry = _globalSymbolRegistry();\n if (!objHasOwn(registry.k, key)) {\n var newSymbol_1 = polyNewSymbol(key);\n var regId_1 = objKeys(registry.s).length;\n newSymbol_1[UNIQUE_REGISTRY_ID] = function () { return regId_1 + \"_\" + newSymbol_1[TO_STRING](); };\n registry.k[key] = newSymbol_1;\n registry.s[newSymbol_1[UNIQUE_REGISTRY_ID]()] = asString(key);\n }\n return registry.k[key];\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polySymbolKeyFor(sym) {\n if (!sym || !sym[TO_STRING] || strSubstring(sym[TO_STRING](), 0, 6) != SYMBOL) {\n throwTypeError(sym + \" is not a symbol\");\n }\n var regId = sym[POLYFILL_TAG] && sym[UNIQUE_REGISTRY_ID] && sym[UNIQUE_REGISTRY_ID]();\n return regId ? _globalSymbolRegistry().s[regId] : undefined;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyGetKnownSymbol(name) {\n !_wellKnownSymbolCache && (_wellKnownSymbolCache = {});\n var result;\n var knownName = _wellKnownSymbolMap[name];\n if (knownName) {\n result = _wellKnownSymbolCache[knownName] = _wellKnownSymbolCache[knownName] || polyNewSymbol(SYMBOL + \".\" + knownName);\n }\n return result;\n}\n\nvar _globalLazyTestHooks;\nfunction _initTestHooks() {\n _globalLazyTestHooks = _getGlobalConfig();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getLazy(cb) {\n var lazyValue = {};\n !_globalLazyTestHooks && _initTestHooks();\n lazyValue.b = _globalLazyTestHooks.lzy;\n objDefineProp(lazyValue, \"v\", {\n configurable: true,\n get: function () {\n var result = cb();\n if (!_globalLazyTestHooks.lzy) {\n objDefineProp(lazyValue, \"v\", {\n value: result\n });\n }\n lazyValue.b = _globalLazyTestHooks.lzy;\n return result;\n }\n });\n return lazyValue;\n}\nfunction setBypassLazyCache(newValue) {\n !_globalLazyTestHooks && _initTestHooks();\n _globalLazyTestHooks.lzy = newValue;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCachedValue(value) {\n return objDefineProp({\n toJSON: function () { return value; }\n }, \"v\", { value: value });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createDeferredCachedValue(cb) {\n var theValue = {\n toJSON: function () { return theValue.v; }\n };\n return objDefineProp(theValue, \"v\", {\n get: function () {\n var result = cb();\n cb = NULL_VALUE;\n objDefineProp(theValue, \"v\", { value: result });\n return result;\n },\n configurable: true\n });\n}\n\nvar WINDOW = \"window\";\nvar _cachedGlobal;\nfunction _getGlobalInstFn(getFn, theArgs) {\n var cachedValue;\n return function () {\n !_globalLazyTestHooks && _initTestHooks();\n if (!cachedValue || _globalLazyTestHooks.lzy) {\n cachedValue = createCachedValue(safe(getFn, theArgs).v);\n }\n return cachedValue.v;\n };\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction lazySafeGetInst(name) {\n return getLazy(function () { return safe((getInst), [name]).v || UNDEF_VALUE; });\n}\nfunction getGlobal(useCached) {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_cachedGlobal || useCached === false || _globalLazyTestHooks.lzy) {\n _cachedGlobal = createCachedValue(safe(_getGlobalValue).v || NULL_VALUE);\n }\n return _cachedGlobal.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getInst(name, useCached) {\n var gbl;\n if (!_cachedGlobal || useCached === false) {\n gbl = getGlobal(useCached);\n }\n else {\n gbl = _cachedGlobal.v;\n }\n if (gbl && gbl[name]) {\n return gbl[name];\n }\n if (name === WINDOW) {\n try {\n return window;\n }\n catch (e) {\n }\n }\n return NULL_VALUE;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasDocument() {\n return !!( /*#__PURE__*/getDocument());\n}\nvar getDocument = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"document\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasWindow() {\n return !!( /*#__PURE__*/getWindow());\n}\nvar getWindow = ( /*#__PURE__*/_getGlobalInstFn(getInst, [WINDOW]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasNavigator() {\n return !!( /*#__PURE__*/getNavigator());\n}\nvar getNavigator = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"navigator\"]));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasHistory() {\n return !!( /*#__PURE__*/getHistory());\n}\nvar getHistory = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"history\"]));\nvar isNode = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return (process && (process.versions || {}).node); }).v);\n}));\nvar isWebWorker = ( /*#__PURE__*/_getGlobalInstFn(function () {\n return !!( /*#__PURE__*/safe(function () { return self && self instanceof WorkerGlobalScope; }).v);\n}));\n\nvar _symbol;\nvar _symbolFor;\nvar _symbolKeyFor;\n/*#__NO_SIDE_EFFECTS__*/\nfunction _initSymbol() {\n _symbol = ( /*#__PURE__*/createCachedValue(safe((getInst), [SYMBOL]).v));\n return _symbol;\n}\nfunction _getSymbolKey(key) {\n var gblSym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return (gblSym.v ? gblSym.v[key] : UNDEF_VALUE);\n}\nvar isSymbol = ( /*#__PURE__*/_createIs(\"symbol\"));\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasSymbol() {\n return !!( /*#__PURE__*/getSymbol());\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getSymbol() {\n !_globalLazyTestHooks && _initTestHooks();\n return ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol()).v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getKnownSymbol(name, noPoly) {\n var knownName = _wellKnownSymbolMap[name];\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v[knownName || name] : (!noPoly ? polyGetKnownSymbol(name) : UNDEF_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction newSymbol(description, noPoly) {\n !_globalLazyTestHooks && _initTestHooks();\n var sym = ((!_globalLazyTestHooks.lzy ? _symbol : 0) || _initSymbol());\n return sym.v ? sym.v(description) : (!noPoly ? polyNewSymbol(description) : NULL_VALUE);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolFor(key) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolFor = ((!_globalLazyTestHooks.lzy ? _symbolFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"for\"]).v)));\n return (_symbolFor.v || polySymbolFor)(key);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction symbolKeyFor(sym) {\n !_globalLazyTestHooks && _initTestHooks();\n _symbolKeyFor = ((!_globalLazyTestHooks.lzy ? _symbolKeyFor : 0) || ( /*#__PURE__*/createCachedValue(safe((_getSymbolKey), [\"keyFor\"]).v)));\n return (_symbolKeyFor.v || polySymbolKeyFor)(sym);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterator(value) {\n return !!value && isFunction(value.next);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction isIterable(value) {\n return !isStrictNullOrUndefined(value) && isFunction(value[getKnownSymbol(3 )]);\n}\n\nvar _iterSymbol$1;\nfunction iterForOf(iter, callbackfn, thisArg) {\n if (iter) {\n if (!isIterator(iter)) {\n !_iterSymbol$1 && (_iterSymbol$1 = createCachedValue(getKnownSymbol(3 )));\n iter = iter[_iterSymbol$1.v] ? iter[_iterSymbol$1.v]() : NULL_VALUE;\n }\n if (isIterator(iter)) {\n var err = UNDEF_VALUE;\n var iterResult = UNDEF_VALUE;\n try {\n var count = 0;\n while (!(iterResult = iter.next()).done) {\n if (callbackfn[CALL](thisArg || iter, iterResult.value, count, iter) === -1) {\n break;\n }\n count++;\n }\n }\n catch (failed) {\n err = { e: failed };\n if (iter.throw) {\n iterResult = NULL_VALUE;\n iter.throw(err);\n }\n }\n finally {\n try {\n if (iterResult && !iterResult.done) {\n iter.return && iter.return(iterResult);\n }\n }\n finally {\n if (err) {\n // eslint-disable-next-line no-unsafe-finally\n throw err.e;\n }\n }\n }\n }\n }\n}\n\nfunction fnApply(fn, thisArg, argArray) {\n return fn.apply(thisArg, argArray);\n}\nfunction fnCall(fn, thisArg) {\n return fn.apply(thisArg, ArrSlice[CALL](arguments, 2));\n}\nfunction fnBind(fn, thisArg) {\n return fn.bind.apply(fn, ArrSlice[CALL](arguments, 1));\n}\n\nfunction arrAppend(target, elms) {\n if (!isUndefined(elms) && target) {\n if (isArray(elms)) {\n fnApply(target.push, target, elms);\n }\n else if (isIterator(elms) || isIterable(elms)) {\n iterForOf(elms, function (elm) {\n target.push(elm);\n });\n }\n else {\n target.push(elms);\n }\n }\n return target;\n}\n\nvar arrEvery = /*#__PURE__*/ _unwrapFunction(\"every\", ArrProto);\nvar arrFilter = /*#__PURE__*/ _unwrapFunction(\"filter\", ArrProto);\n\nfunction arrForEach(theArray, callbackfn, thisArg) {\n if (theArray) {\n var len = theArray[LENGTH] >>> 0;\n for (var idx = 0; idx < len; idx++) {\n if (idx in theArray) {\n if (callbackfn[CALL](thisArg || theArray, theArray[idx], idx, theArray) === -1) {\n break;\n }\n }\n }\n }\n}\n\nvar arrIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", ArrProto));\nvar arrLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", ArrProto));\n\nvar arrMap = ( /*#__PURE__*/_unwrapFunction(\"map\", ArrProto));\n\nfunction arrSlice(theArray, start, end) {\n return ((theArray ? theArray[\"slice\"] : NULL_VALUE) || ArrSlice).apply(theArray, ArrSlice[CALL](arguments, 1));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyIsArray(value) {\n if (isNullOrUndefined(value)) {\n return false;\n }\n return objToString(value) === \"[object Array]\";\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyArrIncludes(theArray, searchElement, fromIndex) {\n return arrIndexOf(theArray, searchElement, fromIndex) !== -1;\n}\nfunction polyArrFind(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n arrForEach(theArray, function (value, index) {\n if (callbackFn[CALL](thisArg | theArray, value, index, theArray)) {\n result = index;\n return -1;\n }\n });\n return result;\n}\nfunction polyArrFindLast(theArray, callbackFn, thisArg) {\n var result;\n var idx = polyArrFindLastIndex(theArray, callbackFn, thisArg);\n return idx !== -1 ? theArray[idx] : result;\n}\nfunction polyArrFindLastIndex(theArray, callbackFn, thisArg) {\n var result = -1;\n var len = theArray[LENGTH] >>> 0;\n for (var idx = len - 1; idx >= 0; idx--) {\n if (idx in theArray && callbackFn[CALL](thisArg | theArray, theArray[idx], idx, theArray)) {\n result = idx;\n break;\n }\n }\n return result;\n}\nfunction polyArrFrom(theValue, mapFn, thisArg) {\n if (isArray(theValue)) {\n var result_1 = arrSlice(theValue);\n return mapFn ? arrMap(result_1, mapFn, thisArg) : result_1;\n }\n var result = [];\n iterForOf(theValue, function (value, cnt) {\n return result.push(mapFn ? mapFn[CALL](thisArg, value, cnt) : value);\n });\n return result;\n}\n\nvar arrFind = /*#__PURE__*/ _unwrapFunctionWithPoly(\"find\", ArrProto, polyArrFind);\nvar arrFindIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findIndex\", ArrProto, polyArrFindIndex);\nvar arrFindLast = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLast\", ArrProto, polyArrFindLast);\nvar arrFindLastIndex = /*#__PURE__*/ _unwrapFunctionWithPoly(\"findLastIndex\", ArrProto, polyArrFindLastIndex);\n\nvar arrFrom = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ArrCls, \"from\")), polyArrFrom));\n\nvar arrIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", ArrProto, polyArrIncludes));\nvar arrContains = arrIncludes;\n\nvar arrReduce = ( /*#__PURE__*/_unwrapFunction(\"reduce\", ArrProto));\n\nvar arrSome = ( /*#__PURE__*/_unwrapFunction(\"some\", ArrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFnDeferredProxy(hostFn, funcName) {\n return function () {\n var theArgs = ArrSlice[CALL](arguments);\n var theHost = hostFn();\n return fnApply(theHost[funcName], theHost, theArgs);\n };\n}\nfunction createProxyFuncs(target, host, funcDefs) {\n if (target && host && isArray(funcDefs)) {\n var isDeferred_1 = isFunction(host);\n arrForEach(funcDefs, function (funcDef) {\n var targetName = (funcDef.as || funcDef.n);\n if (funcDef.rp === false && target[targetName]) {\n return;\n }\n target[targetName] = isDeferred_1 ?\n createFnDeferredProxy(host, funcDef.n) :\n fnBind(host[funcDef.n], host);\n });\n }\n return target;\n}\n\nvar _iterSymbol;\n/*#__NO_SIDE_EFFECTS__*/\nfunction readArgs(theArgs, start, end) {\n if (!objHasOwn(theArgs, LENGTH)) {\n !_iterSymbol && (_iterSymbol = createCachedValue(hasSymbol() && getKnownSymbol(3 )));\n var iterFn = void 0;\n if (_iterSymbol.v) {\n iterFn = theArgs[_iterSymbol.v];\n }\n if (iterFn) {\n var values_1 = [];\n var from_1 = (start === UNDEF_VALUE || start < 0) ? 0 : start;\n var to_1 = end < 0 || start < 0 ? UNDEF_VALUE : end;\n iterForOf(iterFn[CALL](theArgs), function (value, cnt) {\n if (to_1 !== UNDEF_VALUE && cnt >= to_1) {\n return -1;\n }\n if (cnt >= from_1) {\n values_1.push(value);\n }\n });\n if ((start === UNDEF_VALUE || start >= 0) && (end === UNDEF_VALUE || end >= 0)) {\n return values_1;\n }\n theArgs = values_1;\n }\n }\n return arrSlice(theArgs, start, end);\n}\n\nvar objCreate = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(ObjClass, \"create\")), polyObjCreate));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyObjCreate(obj) {\n if (!obj) {\n return {};\n }\n var type = typeof obj;\n if (type !== OBJECT && type !== FUNCTION) {\n throwTypeError(\"Prototype must be an Object or function: \" + dumpObj(obj));\n }\n function tempFunc() { }\n tempFunc[PROTOTYPE] = obj;\n return new tempFunc();\n}\n\nvar _isProtoArray;\nfunction objSetPrototypeOf(obj, proto) {\n var fn = ObjClass[\"setPrototypeOf\"] ||\n function (d, b) {\n var _a;\n !_isProtoArray && (_isProtoArray = createCachedValue((_a = {}, _a[__PROTO__] = [], _a) instanceof Array));\n _isProtoArray.v ? d[__PROTO__] = b : objForEachKey(b, function (key, value) { return d[key] = value; });\n };\n return fn(obj, proto);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createCustomError(name, d, b) {\n safe(objDefine, [d, NAME, { v: name, c: true, e: false }]);\n d = objSetPrototypeOf(d, b);\n function __() {\n this[CONSTRUCTOR] = d;\n safe(objDefine, [this, NAME, { v: name, c: true, e: false }]);\n }\n d[PROTOTYPE] = b === NULL_VALUE ? objCreate(b) : (__[PROTOTYPE] = b[PROTOTYPE], new __());\n return d;\n}\nfunction _setName(baseClass, name) {\n name && (baseClass[NAME] = name);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createCustomError(name, constructCb, errorBase) {\n var theBaseClass = errorBase || Error;\n var orgName = theBaseClass[PROTOTYPE][NAME];\n var captureFn = Error.captureStackTrace;\n return _createCustomError(name, function () {\n var _this = this;\n var theArgs = arguments;\n try {\n safe(_setName, [theBaseClass, name]);\n var _self = fnApply(theBaseClass, _this, ArrSlice[CALL](theArgs)) || _this;\n if (_self !== _this) {\n var orgProto = objGetPrototypeOf(_this);\n if (orgProto !== objGetPrototypeOf(_self)) {\n objSetPrototypeOf(_self, orgProto);\n }\n }\n captureFn && captureFn(_self, _this[CONSTRUCTOR]);\n constructCb && constructCb(_self, theArgs);\n return _self;\n }\n finally {\n safe(_setName, [theBaseClass, orgName]);\n }\n }, theBaseClass);\n}\nvar _unsupportedError;\nfunction throwUnsupported(message) {\n if (!_unsupportedError) {\n _unsupportedError = createCustomError(\"UnsupportedError\");\n }\n throw new _unsupportedError(message);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction utcNow() {\n return (Date.now || polyUtcNow)();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyUtcNow() {\n return new Date().getTime();\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTrimFn(exp) {\n return function _doTrim(value) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"strTrim called [\" + dumpObj(value) + \"]\");\n }\n if (value && value.replace) {\n value = value.replace(exp, EMPTY);\n }\n return value;\n };\n}\nvar polyStrTrim = ( /*#__PURE__*/_createTrimFn(/^\\s+|(?=\\s)\\s+$/g));\nvar polyStrTrimStart = ( /*#__PURE__*/_createTrimFn(/^\\s+/g));\nvar polyStrTrimEnd = ( /*#__PURE__*/_createTrimFn(/(?=\\s)\\s+$/g));\n\nvar strTrim = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trim\", StrProto, polyStrTrim));\nvar strTrimStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimStart\", StrProto, polyStrTrimStart));\nvar strTrimLeft = ( /*#__PURE__*/_pureAssign(strTrimStart));\nvar strTrimEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"trimEnd\", StrProto, polyStrTrimEnd));\nvar strTrimRight = ( /*#__PURE__*/_pureAssign(strTrimEnd));\n\nvar strUpper = ( /*#__PURE__*/_unwrapFunction(\"toUpperCase\", StrProto));\nvar strLower = ( /*#__PURE__*/_unwrapFunction(\"toLowerCase\", StrProto));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _convertCase(value, newPrefix, upperWord) {\n return strTrim(asString(value)).replace(/((_|\\W)+(\\w){0,1}|([a-z])([A-Z]))/g, function (_match, _g1, _g2, wordStart, upperPrefix, upperLetter) {\n var convertMatch = wordStart || upperLetter || EMPTY;\n if (upperWord) {\n convertMatch = strUpper(convertMatch);\n }\n return (upperPrefix || EMPTY) + newPrefix + convertMatch;\n });\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strLetterCase(value) {\n return asString(value).replace(/(_|\\b)\\w/g, strUpper);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strCamelCase(value, upperFirst) {\n var result = _convertCase(value, \"\", true);\n return result.replace(/^\\w/, upperFirst ? strUpper : strLower);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strKebabCase(value, scream) {\n var result = _convertCase(value, \"-\");\n return (scream ? strUpper : strLower)(result);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strSnakeCase(value, scream) {\n var result = _convertCase(value, \"_\");\n return (scream ? strUpper : strLower)(result);\n}\n\nvar mathFloor = ( /*#__PURE__*/_pureRef(MathCls, \"floor\"));\nvar mathCeil = ( /*#__PURE__*/_pureRef(MathCls, \"ceil\"));\n\nvar mathTrunc = ( /* #__PURE__*/_pureAssign(( /* #__PURE__*/_pureRef(MathCls, \"trunc\")), polyMathTrunc));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyMathTrunc(value) {\n var theValue = +value;\n return (theValue > 0 ? mathFloor : mathCeil)(theValue);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction mathToInt(value, throwInfinity) {\n var result = +value;\n if (result == Infinity && throwInfinity) {\n throwRangeError(\"invalid value [\" + dumpObj(value) + \"]\");\n }\n return result !== result || result === 0 ? 0 : mathTrunc(result);\n}\n\nvar strRepeat = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"repeat\", StrProto, polyStrRepeat));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrRepeat(value, count) {\n if (isNullOrUndefined(value)) {\n throwTypeError(\"can't convert [\" + dumpObj(value) + \"]\");\n }\n count = mathToInt(count, true);\n if (count < 0) {\n throwRangeError(\"invalid count must be >= 0 && < Infinity\");\n }\n var pad = isString(value) ? value : asString(value);\n var result = EMPTY;\n for (; count > 0; (count >>>= 1) && (pad += pad)) {\n if (count & 1) {\n result += pad;\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _padValue(value, targetLength, padString) {\n var result = EMPTY;\n targetLength = mathToInt(targetLength, true);\n targetLength >>= 0;\n var len = value[LENGTH];\n if (len < targetLength) {\n result = isNullOrUndefined(padString) ? \" \" : asString(padString);\n targetLength = targetLength - len;\n if (targetLength > result[LENGTH]) {\n result = strRepeat(result, mathCeil(targetLength / result[LENGTH]));\n }\n if (result[LENGTH] > targetLength) {\n result = strSubstring(result, 0, targetLength);\n }\n }\n return result;\n}\nvar strPadStart = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padStart\", StrProto, polyStrPadStart));\nvar strPadEnd = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"padEnd\", StrProto, polyStrPadEnd));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadStart(value, targetLength, padString) {\n return _padValue(value, targetLength, padString) + value;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrPadEnd(value, targetLength, padString) {\n return value + _padValue(value, targetLength, padString);\n}\n\nvar DBL_QUOTE = \"\\\"\";\nvar INVALID_JS_NAME = /([^\\w\\d_$])/g;\nvar _htmlEntityCache;\n/*#__NO_SIDE_EFFECTS__*/\nfunction normalizeJsName(jsName, camelCase) {\n var result = asString(jsName).replace(INVALID_JS_NAME, \"_\");\n return !isUndefined(camelCase) ? strCamelCase(result, !camelCase) : result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsJson(value, format) {\n var result;\n if (isString(value)) {\n result = DBL_QUOTE + value.replace(/[^\\w .,\\-!@#$%\\^&*\\(\\)_+={}\\[\\]:;|<>?]/g, function (match) {\n if (match === DBL_QUOTE || match === \"\\\\\") {\n return \"\\\\\" + match;\n }\n var hex = match.charCodeAt(0)[TO_STRING](16);\n return \"\\\\u\" + strPadStart(strUpper(hex), 4, \"0\");\n }) + DBL_QUOTE;\n }\n else {\n try {\n result = JSON.stringify(value, NULL_VALUE, format ? (isNumber(format) ? format : 4) : UNDEF_VALUE);\n }\n catch (e) {\n result = DBL_QUOTE + dumpObj(e) + DBL_QUOTE;\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction encodeAsHtml(value) {\n !_htmlEntityCache && (_htmlEntityCache = {\n \"&\": \"amp\",\n \"<\": \"lt\",\n \">\": \"gt\",\n \"\\\"\": \"quot\",\n \"'\": \"#39\"\n });\n return asString(value).replace(/[&<>\"']/g, function (match) { return \"&\" + _htmlEntityCache[match] + \";\"; });\n}\n\nvar _fnToString;\nvar _objCtrFnString;\nvar _gblWindow;\n/*#__NO_SIDE_EFFECTS__*/\nfunction isPlainObject(value) {\n if (!value || typeof value !== OBJECT) {\n return false;\n }\n if (!_gblWindow) {\n _gblWindow = hasWindow() ? getWindow() : true;\n }\n var result = false;\n if (value !== _gblWindow) {\n if (!_objCtrFnString) {\n _fnToString = Function[PROTOTYPE][TO_STRING];\n _objCtrFnString = _fnToString[CALL](ObjClass);\n }\n try {\n var proto = objGetPrototypeOf(value);\n result = !proto;\n if (!result) {\n if (objHasOwnProperty(proto, CONSTRUCTOR)) {\n proto = proto[CONSTRUCTOR];\n }\n result = !!(proto && typeof proto === FUNCTION && _fnToString[CALL](proto) === _objCtrFnString);\n }\n }\n catch (ex) {\n }\n }\n return result;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _defaultDeepCopyHandler(details) {\n details.value && plainObjDeepCopyHandler(details);\n return true;\n}\nvar defaultDeepCopyHandlers = [\n arrayDeepCopyHandler,\n plainObjDeepCopyHandler,\n functionDeepCopyHandler,\n dateDeepCopyHandler\n];\n/*#__NO_SIDE_EFFECTS__*/\nfunction _getSetVisited(visitMap, source, newPath, cb) {\n var theEntry;\n arrForEach(visitMap, function (entry) {\n if (entry.k === source) {\n theEntry = entry;\n return -1;\n }\n });\n if (!theEntry) {\n theEntry = { k: source, v: source };\n visitMap.push(theEntry);\n cb(theEntry);\n }\n return theEntry.v;\n}\nfunction _deepCopy(visitMap, value, ctx, key) {\n var userHandler = ctx.handler;\n var newPath = ctx.path ? (key ? ctx.path.concat(key) : ctx.path) : [];\n var newCtx = {\n handler: ctx.handler,\n src: ctx.src,\n path: newPath\n };\n var theType = typeof value;\n var isPlain = false;\n var isPrim = value === NULL_VALUE;\n if (!isPrim) {\n if (value && theType === OBJECT) {\n isPlain = isPlainObject(value);\n }\n else {\n isPrim = isPrimitiveType(theType);\n }\n }\n var details = {\n type: theType,\n isPrim: isPrim,\n isPlain: isPlain,\n value: value,\n result: value,\n path: newPath,\n origin: ctx.src,\n copy: function (source, newKey) {\n return _deepCopy(visitMap, source, newKey ? newCtx : ctx, newKey);\n },\n copyTo: function (target, source) {\n return _copyProps(visitMap, target, source, newCtx);\n }\n };\n if (!details.isPrim) {\n return _getSetVisited(visitMap, value, newPath, function (newEntry) {\n objDefine(details, \"result\", {\n g: function () {\n return newEntry.v;\n },\n s: function (newValue) {\n newEntry.v = newValue;\n }\n });\n var idx = 0;\n var handler = userHandler;\n while (!(handler || (idx < defaultDeepCopyHandlers.length ? defaultDeepCopyHandlers[idx++] : _defaultDeepCopyHandler))[CALL](ctx, details)) {\n handler = NULL_VALUE;\n }\n });\n }\n if (userHandler && userHandler[CALL](ctx, details)) {\n return details.result;\n }\n return value;\n}\nfunction _copyProps(visitMap, target, source, ctx) {\n if (!isNullOrUndefined(source)) {\n for (var key in source) {\n target[key] = _deepCopy(visitMap, source[key], ctx, key);\n }\n }\n return target;\n}\nfunction objCopyProps(target, source, handler) {\n var ctx = {\n handler: handler,\n src: source,\n path: []\n };\n return _copyProps([], target, source, ctx);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction objDeepCopy(source, handler) {\n var ctx = {\n handler: handler,\n src: source\n };\n return _deepCopy([], source, ctx);\n}\nfunction arrayDeepCopyHandler(details) {\n var value = details.value;\n if (isArray(value)) {\n var target = details.result = [];\n target.length = value.length;\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\nfunction dateDeepCopyHandler(details) {\n var value = details.value;\n if (isDate(value)) {\n details.result = new Date(value.getTime());\n return true;\n }\n return false;\n}\nfunction functionDeepCopyHandler(details) {\n if (details.type === FUNCTION) {\n return true;\n }\n return false;\n}\nfunction plainObjDeepCopyHandler(details) {\n var value = details.value;\n if (value && details.isPlain) {\n var target = details.result = {};\n details.copyTo(target, value);\n return true;\n }\n return false;\n}\n\nfunction _doExtend(target, theArgs) {\n arrForEach(theArgs, function (theArg) {\n objCopyProps(target, theArg);\n });\n return target;\n}\nfunction deepExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(objDeepCopy(target) || {}, ArrSlice[CALL](arguments));\n}\nfunction objExtend(target, obj1, obj2, obj3, obj4, obj5, obj6) {\n return _doExtend(target || {}, ArrSlice[CALL](arguments));\n}\n\nvar getLength = ( /*#__PURE__*/_unwrapProp(LENGTH));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getIntValue(value, defValue) {\n if (!isNullOrUndefined(value)) {\n if (isNumber(value)) {\n return value;\n }\n var theValue = parseInt(value, 10);\n return isNaN(theValue) ? defValue : theValue;\n }\n return defValue;\n}\n\nvar _perf;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasPerformance() {\n return !!getPerformance();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getPerformance() {\n !_globalLazyTestHooks && _initTestHooks();\n if (!_perf || _globalLazyTestHooks.lzy) {\n _perf = createCachedValue(safe((getInst), [\"performance\"]).v);\n }\n return _perf.v;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction perfNow() {\n var perf = getPerformance();\n if (perf && perf.now) {\n return perf.now();\n }\n return utcNow();\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction elapsedTime(startTime) {\n return perfNow() - startTime;\n}\n\nvar MATCH_ANY = \"(.*)\";\nvar MATCH_SINGLE = \"(.)\";\nfunction _createRegExp(value, escapeRgx, replaceFn, ignoreCase, fullMatch) {\n // eslint-disable-next-line security/detect-non-literal-regexp\n return new RegExp((fullMatch ? \"^\" : EMPTY) + replaceFn(value.replace(escapeRgx, \"\\\\$1\")) + (fullMatch ? \"$\" : EMPTY), ignoreCase ? \"i\" : \"\");\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createWildcardRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.\\?{}()\\[\\]\\\\/\\\"\\'])/g, function (value) {\n return value.replace(/\\*/g, MATCH_ANY);\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createFilenameRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\\\\\\\|\\\\\\/|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n return g1 == \"*\" ? MATCH_ANY : MATCH_SINGLE;\n });\n }, !!ignoreCase, fullMatch);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction makeGlobRegex(value, ignoreCase, fullMatch) {\n return _createRegExp(asString(value), /([-+|^$#.{}()\\\\\\/\\[\\]\\\"\\'])/g, function (value) {\n return value.replace(/(\\*\\*\\\\[\\\\\\/]|\\\\\\\\|\\\\\\/|\\*\\*|\\*|\\?)/g, function (_all, g1) {\n if (g1 == \"**\\\\/\" || g1 == \"**\\\\\\\\\") {\n return \"(.*[\\\\\\\\\\\\/])*\";\n }\n if (g1 === \"\\\\/\" || g1 == \"\\\\\\\\\") {\n return \"[\\\\\\\\\\\\/]{1}\";\n }\n if (g1 === \"**\") {\n return MATCH_ANY;\n }\n return g1 === \"*\" ? \"([^\\\\\\\\\\\\/]*)\" : \"([^\\\\\\\\\\\\/]{1})\";\n });\n }, !!ignoreCase, fullMatch);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction safeGetLazy(cb, defValue) {\n return getLazy(function () {\n var result = safe(cb);\n return result.e ? defValue : result.v;\n });\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction _checkLength(value, props) {\n var result;\n arrForEach(props, function (prop) {\n if (prop in value) {\n var propValue = value[prop];\n result = (isFunction(propValue) ? propValue() : propValue) > 0;\n return -1;\n }\n });\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction _hasValue(value, depth) {\n var result = value === false || value === 0;\n if (!result && !isNullOrUndefined(value)) {\n if (isArray(value)) {\n result = value[LENGTH] > 0;\n }\n else if (isDate(value)) {\n result = !isNaN(value.getTime());\n }\n else if (isBoolean(value)) {\n return true;\n }\n else if (isObject(value)) {\n try {\n var chkValue = _checkLength(value, [LENGTH, \"byteLength\", \"size\", \"count\"]);\n if (isBoolean(chkValue)) {\n return chkValue;\n }\n if (isFunction(value.valueOf) && depth < 5) {\n return _hasValue(value.valueOf(), ++depth);\n }\n }\n catch (e) {\n }\n return !!objKeys(value)[LENGTH];\n }\n else {\n result = isTruthy(value);\n }\n }\n return result;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasValue(value) {\n return _hasValue(value, 0);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterable(ctx) {\n return makeIterable({}, ctx);\n}\nfunction makeIterable(target, ctx) {\n var itSymbol = getKnownSymbol(3 );\n function _createIterator() {\n return createIterator(ctx);\n }\n target[itSymbol] = _createIterator;\n return target;\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction createIterator(ctx) {\n var isDone = false;\n function _value() {\n return ctx.v;\n }\n function _next() {\n if (!isDone) {\n isDone = (ctx.n ? ctx.n(arguments) : true);\n }\n var result = {\n done: isDone\n };\n if (!isDone) {\n objDefine(result, \"value\", { g: _value });\n }\n return result;\n }\n function _return(value) {\n isDone = true;\n return {\n done: true,\n value: ctx.r && ctx.r(value)\n };\n }\n function _throw(e) {\n isDone = true;\n return {\n done: true,\n value: ctx.t && ctx.t(e)\n };\n }\n var theIterator = {\n next: _next\n };\n if (ctx.r) {\n theIterator.return = _return;\n }\n if (ctx.t) {\n theIterator.throw = _throw;\n }\n return theIterator;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createArrayIterator(values) {\n var idx = -1;\n var theValues = values ? values.slice() : [];\n var len = theValues[LENGTH];\n function _value() {\n if (idx >= 0 && idx < len) {\n return theValues[idx];\n }\n }\n function _getNext() {\n idx++;\n return idx >= len;\n }\n var ctx = {\n n: _getNext\n };\n objDefine(ctx, \"v\", { g: _value });\n return createIterator(ctx);\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction createRangeIterator(start, end, step) {\n var nextValue = start;\n var theValue = UNDEF_VALUE;\n if (isNullOrUndefined(end)) {\n end = start;\n }\n var theStep = step;\n if (!theStep) {\n theStep = (start <= end) ? 1 : -1;\n }\n function _value() {\n return theValue;\n }\n function _getNext() {\n var isDone = (theStep > 0) ? (nextValue > end) : (nextValue < end);\n if (!isDone) {\n theValue = nextValue;\n nextValue += theStep;\n }\n return isDone;\n }\n return createIterator(objDefine({\n n: _getNext\n }, \"v\", { g: _value }));\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrSymSplit(value, splitter, limit) {\n var splitFn = splitter ? splitter[getKnownSymbol(9 )] : UNDEF_VALUE;\n return splitFn ? splitFn(value, limit) : [value];\n}\n\nvar strSplit = ( /*#__PURE__*/_unwrapFunction(\"split\", StrProto));\nvar strSymSplit = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"split\", StrProto, !hasSymbol() ? polyStrSymSplit : NULL_VALUE));\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByKey(target, path, defValue) {\n if (!path || !target) {\n return defValue;\n }\n var parts = strSplit(path, \".\");\n var cnt = parts.length;\n for (var lp = 0; lp < cnt && !isNullOrUndefined(target); lp++) {\n target = target[parts[lp]];\n }\n return (!isNullOrUndefined(target) ? target : defValue);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction getValueByIter(target, iter, defValue) {\n if (!iter || !target) {\n return defValue;\n }\n iterForOf(iter, function (value) {\n if (isNullOrUndefined(target)) {\n return -1;\n }\n target = target[value];\n });\n return (!isNullOrUndefined(target) ? target : defValue);\n}\nfunction setValueByKey(target, path, value) {\n if (target && path) {\n var parts = strSplit(path, \".\");\n var lastKey = parts.pop();\n arrForEach(parts, function (key) {\n if (isNullOrUndefined(target[key])) {\n target[key] = {};\n }\n target = target[key];\n });\n target[lastKey] = value;\n }\n}\nfunction setValueByIter(target, iter, value) {\n if (target && iter) {\n var lastKey_1;\n iterForOf(iter, function (key) {\n if (lastKey_1) {\n if (isNullOrUndefined(target[lastKey_1])) {\n target[lastKey_1] = {};\n }\n target = target[lastKey_1];\n }\n lastKey_1 = key;\n });\n target[lastKey_1] = value;\n }\n}\n\nvar strEndsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"endsWith\", StrProto, polyStrEndsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrEndsWith(value, searchString, length) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var end = (!isUndefined(length) && length < value[LENGTH]) ? length : value[LENGTH];\n return strSubstring(value, end - searchValue[LENGTH], end) === searchValue;\n}\n\nvar strIndexOf = ( /*#__PURE__*/_unwrapFunction(\"indexOf\", StrProto));\nvar strLastIndexOf = ( /*#__PURE__*/_unwrapFunction(\"lastIndexOf\", StrProto));\n\nvar strIncludes = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"includes\", StrProto, polyStrIncludes));\nvar strContains = ( /*#__PURE__*/_pureAssign(strIncludes));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrIncludes(value, searchString, position) {\n if (isRegExp(searchString)) {\n throwTypeError(\"'searchString' must not be a regular expression\" + dumpObj(searchString));\n }\n return strIndexOf(value, asString(searchString), position) !== -1;\n}\n\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrWhiteSpace(value) {\n if (isString(value)) {\n return value.replace(/[\\s\\t\\r\\n\\f]+/g, EMPTY) === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n/*#__NO_SIDE_EFFECTS__*/\nfunction strIsNullOrEmpty(value) {\n if (isString(value)) {\n return value === EMPTY;\n }\n return isNullOrUndefined(value);\n}\n\nvar strStartsWith = ( /*#__PURE__*/_unwrapFunctionWithPoly(\"startsWith\", StrProto, polyStrStartsWith));\n/*#__NO_SIDE_EFFECTS__*/\nfunction polyStrStartsWith(value, searchString, position) {\n if (!isString(value)) {\n throwTypeError(\"'\" + dumpObj(value) + \"' is not a string\");\n }\n var searchValue = isString(searchString) ? searchString : asString(searchString);\n var pos = position > 0 ? position : 0;\n return strSubstring(value, pos, pos + searchValue[LENGTH]) === searchValue;\n}\n\nvar REF = \"ref\";\nvar UNREF = \"unref\";\nvar HAS_REF = \"hasRef\";\nvar ENABLED = \"enabled\";\n/*#__NO_SIDE_EFFECTS__*/\nfunction _createTimerHandler(startTimer, refreshFn, cancelFn) {\n var ref = true;\n var timerId = startTimer ? refreshFn(NULL_VALUE) : NULL_VALUE;\n var theTimerHandler;\n function _unref() {\n ref = false;\n timerId && timerId[UNREF] && timerId[UNREF]();\n return theTimerHandler;\n }\n function _cancel() {\n timerId && cancelFn(timerId);\n timerId = NULL_VALUE;\n }\n function _refresh() {\n timerId = refreshFn(timerId);\n if (!ref) {\n _unref();\n }\n return theTimerHandler;\n }\n function _setEnabled(value) {\n !value && timerId && _cancel();\n value && !timerId && _refresh();\n }\n theTimerHandler = {\n cancel: _cancel,\n refresh: _refresh\n };\n theTimerHandler[HAS_REF] = function () {\n if (timerId && timerId[HAS_REF]) {\n return timerId[HAS_REF]();\n }\n return ref;\n };\n theTimerHandler[REF] = function () {\n ref = true;\n timerId && timerId[REF] && timerId[REF]();\n return theTimerHandler;\n };\n theTimerHandler[UNREF] = _unref;\n theTimerHandler = objDefineProp(theTimerHandler, ENABLED, {\n get: function () { return !!timerId; },\n set: _setEnabled\n });\n return {\n h: theTimerHandler,\n dn: function () {\n timerId = NULL_VALUE;\n }\n };\n}\n\nfunction _createTimeoutWith(startTimer, overrideFn, theArgs) {\n var isArr = isArray(overrideFn);\n var len = isArr ? overrideFn.length : 0;\n var setFn = (len > 0 ? overrideFn[0] : (!isArr ? overrideFn : UNDEF_VALUE)) || setTimeout;\n var clearFn = (len > 1 ? overrideFn[1] : UNDEF_VALUE) || clearTimeout;\n var timerFn = theArgs[0];\n theArgs[0] = function () {\n handler.dn();\n fnApply(timerFn, UNDEF_VALUE, ArrSlice[CALL](arguments));\n };\n var handler = _createTimerHandler(startTimer, function (timerId) {\n if (timerId) {\n if (timerId.refresh) {\n timerId.refresh();\n return timerId;\n }\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n }\n return fnApply(setFn, UNDEF_VALUE, theArgs);\n }, function (timerId) {\n fnApply(clearFn, UNDEF_VALUE, [timerId]);\n });\n return handler.h;\n}\nfunction scheduleTimeout(callback, timeout) {\n return _createTimeoutWith(true, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction scheduleTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(true, overrideFn, ArrSlice[CALL](arguments, 1));\n}\nfunction createTimeout(callback, timeout) {\n return _createTimeoutWith(false, UNDEF_VALUE, ArrSlice[CALL](arguments));\n}\nfunction createTimeoutWith(overrideFn, callback, timeout) {\n return _createTimeoutWith(false, overrideFn, ArrSlice[CALL](arguments, 1));\n}\n\nvar _defaultIdleTimeout = 100;\nvar _maxExecutionTime = 50;\n/*#__NO_SIDE_EFFECTS__*/\nfunction hasIdleCallback() {\n return !!( /*#__PURE__*/getIdleCallback());\n}\nvar getIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"requestIdleCallback\"]));\nvar getCancelIdleCallback = ( /*#__PURE__*/_getGlobalInstFn(getInst, [\"cancelIdleCallback\"]));\nfunction setDefaultIdleTimeout(timeout) {\n _defaultIdleTimeout = timeout;\n}\nfunction setDefaultMaxExecutionTime(maxTime) {\n _maxExecutionTime = maxTime;\n}\nfunction scheduleIdleCallback(callback, options) {\n function _createDeadline(timedOut) {\n var startTime = perfNow();\n return {\n didTimeout: timedOut,\n timeRemaining: function () {\n return _maxExecutionTime - elapsedTime(startTime);\n }\n };\n }\n if (hasIdleCallback()) {\n var handler_1 = _createTimerHandler(true, function (idleId) {\n idleId && getCancelIdleCallback()(idleId);\n return getIdleCallback()(function (deadline) {\n handler_1.dn();\n callback(deadline || _createDeadline(false));\n }, options);\n }, function (idleId) {\n getCancelIdleCallback()(idleId);\n });\n return handler_1.h;\n }\n var timeout = (options || {}).timeout;\n if (isUndefined(timeout)) {\n timeout = _defaultIdleTimeout;\n }\n return scheduleTimeout(function () {\n callback(_createDeadline(true));\n }, timeout);\n}\n\nfunction scheduleInterval(callback, timeout) {\n var theArguments = ArrSlice[CALL](arguments);\n var handler = _createTimerHandler(true, function (intervalId) {\n intervalId && clearInterval(intervalId);\n return fnApply(setInterval, UNDEF_VALUE, theArguments);\n }, function (intervalId) {\n fnApply(clearInterval, UNDEF_VALUE, [intervalId]);\n });\n return handler.h;\n}\n\nexport { arrAppend, arrContains, arrEvery, arrFilter, arrFind, arrFindIndex, arrFindLast, arrFindLastIndex, arrForEach, arrFrom, arrIncludes, arrIndexOf, arrLastIndexOf, arrMap, arrReduce, arrSlice, arrSome, arrayDeepCopyHandler, asString, createArrayIterator, createCachedValue, createCustomError, createDeferredCachedValue, createEnum, createEnumKeyMap, createEnumValueMap, createFilenameRegex, createFnDeferredProxy, createIterable, createIterator, createProxyFuncs, createRangeIterator, createSimpleMap, createTimeout, createTimeoutWith, createTypeMap, createWildcardRegex, dateDeepCopyHandler, deepExtend, dumpObj, elapsedTime, encodeAsHtml, encodeAsJson, fnApply, fnBind, fnCall, functionDeepCopyHandler, getCancelIdleCallback, getDocument, getGlobal, getHistory, getIdleCallback, getInst, getIntValue, getKnownSymbol, getLazy, getLength, getNavigator, getPerformance, getSymbol, getValueByIter, getValueByKey, getWindow, hasDocument, hasHistory, hasIdleCallback, hasNavigator, hasPerformance, hasSymbol, hasValue, hasWindow, isArray, isArrayBuffer, isBlob, isBoolean, isDate, isDefined, isError, isFile, isFormData, isFunction, isIterable, isIterator, isNode, isNotTruthy, isNullOrUndefined, isNumber, isObject, isPlainObject, isPrimitive, isPrimitiveType, isPromise, isPromiseLike, isRegExp, isStrictNullOrUndefined, isStrictUndefined, isString, isSymbol, isThenable, isTruthy, isTypeof, isUndefined, isWebWorker, iterForOf, lazySafeGetInst, makeGlobRegex, makeIterable, mathCeil, mathFloor, mathMax, mathMin, mathToInt, mathTrunc, newSymbol, normalizeJsName, objAssign, objCopyProps, objCreate, objDeepCopy, objDeepFreeze, objDefine, objDefineAccessors, objDefineGet, objDefineProp, objDefineProperties, objDefineProps, objEntries, objExtend, objForEachKey, objFreeze, objGetOwnPropertyDescriptor, objGetPrototypeOf, objHasOwn, objHasOwnProperty, objKeys, objSeal, objSetPrototypeOf, objToString, perfNow, plainObjDeepCopyHandler, polyArrFind, polyArrFindIndex, polyArrFindLast, polyArrFindLastIndex, polyArrFrom, polyArrIncludes, polyGetKnownSymbol, polyIsArray, polyNewSymbol, polyObjEntries, polyObjHasOwn, polyObjKeys, polyStrIncludes, polyStrSubstr, polyStrSymSplit, polyStrTrim, polyStrTrimEnd, polyStrTrimStart, polySymbolFor, polySymbolKeyFor, polyUtcNow, readArgs, safe, safeGet, safeGetLazy, scheduleIdleCallback, scheduleInterval, scheduleTimeout, scheduleTimeoutWith, setBypassLazyCache, setDefaultIdleTimeout, setDefaultMaxExecutionTime, setValueByIter, setValueByKey, strCamelCase, strContains, strEndsWith, strIncludes, strIndexOf, strIsNullOrEmpty, strIsNullOrWhiteSpace, strKebabCase, strLastIndexOf, strLeft, strLetterCase, strLower, strPadEnd, strPadStart, strRepeat, strRight, strSlice, strSnakeCase, strSplit, strStartsWith, strSubstr, strSubstring, strSymSplit, strTrim, strTrimEnd, strTrimLeft, strTrimRight, strTrimStart, strUpper, symbolFor, symbolKeyFor, throwError, throwRangeError, throwTypeError, throwUnsupported, utcNow };\n","export const ARC = \"arc\";\nexport const ARROW_UP = \"ArrowUp\";\nexport const ARROW_DOWN = \"ArrowDown\";\nexport const ARROW_LEFT = \"ArrowLeft\";\nexport const ARROW_RIGHT = \"ArrowRight\";\nexport const TAB = \"Tab\";\nexport const ARIA_ACTIVE_DESCENDANT = \"aria-activedescendant\";\nexport const AXIS_LABEL_CLICK = \"axisLabelClick\";\nexport const BLACK = \"#000\";\nexport const BOTTOM = \"bottom\";\nexport const CENTER = \"center\";\nexport const CIRCLE = \"circle\";\nexport const COORD_PRECISION = 3;\nexport const CROSS = \"cross\";\nexport const DATE = \"date\";\nexport const DEFAULT_FONT = \"12px sans-serif\";\nexport const DEFAULT_HEIGHT = 400;\nexport const DEFAULT_PRECISION = 10;\nexport const DEFAULT_WIDTH = 600;\nexport const END = \"end\";\nexport const ENTER = \"Enter\";\nexport const ESCAPE = \"Escape\";\nexport const FORMAT_REGEX = /\\{\\d+:?/;\nexport const HEIGHT = \"height\";\nexport const HIGHLIGHT_ZINDEX = 100;\nexport const INSIDE = \"inside\";\nexport const INHERIT = \"inherit\";\nexport const LEFT = \"left\";\nexport const MAX_VALUE = Number.MAX_VALUE;\nexport const MIN_VALUE = -Number.MAX_VALUE;\nexport const NONE = \"none\";\nexport const NOTE_CLICK = \"noteClick\";\nexport const NOTE_HOVER = \"noteHover\";\nexport const NOTE_LEAVE = \"noteLeave\";\nexport const OBJECT = \"object\";\nexport const OUTSIDE = \"outside\";\nexport const RIGHT = \"right\";\nexport const ROUNDED_RECT = \"roundedRect\";\nexport const START = \"start\";\nexport const STRING = \"string\";\nexport const TOP = \"top\";\nexport const TRIANGLE = \"triangle\";\nexport const SQUARE = \"square\";\nexport const RECT = \"rect\";\nexport const VALUE = \"value\";\nexport const WHITE = \"#fff\";\nexport const WIDTH = \"width\";\nexport const X = \"x\";\nexport const Y = \"y\";\nexport const DEFAULT_SERIES_OPACITY = 1;\nexport const POINTER = \"pointer\";\nexport const HORIZONTAL = \"horizontal\";\nexport const VERTICAL = \"vertical\";\n","export default function isArray(value) {\n return Array.isArray(value);\n}","import isArray from './is-array';\n\nexport default function addClass(element, classes) {\n const classArray = isArray(classes) ? classes : [ classes ];\n\n for (let idx = 0; idx < classArray.length; idx++) {\n const className = classArray[idx];\n if (element.className.indexOf(className) === -1) {\n element.className += \" \" + className;\n }\n }\n}","const SPACE_REGEX = /\\s+/g;\n\nexport default function removeClass(element, className) {\n if (element && element.className) {\n element.className = element.className.replace(className, \"\").replace(SPACE_REGEX, \" \");\n }\n}","import { drawing } from '@progress/kendo-drawing';\n\nexport default function alignPathToPixel(path) {\n let offset = 0.5;\n if (path.options.stroke && drawing.util.defined(path.options.stroke.width)) {\n if (path.options.stroke.width % 2 === 0) {\n offset = 0;\n }\n }\n\n for (let i = 0; i < path.segments.length; i++) {\n path.segments[i].anchor().round(0).translate(offset, offset);\n }\n\n return path;\n}","export default function clockwise(angle1, angle2) {\n // True if angle2 is clockwise of angle1\n // assuming angles grow in clock-wise direction\n // (as in the pie and radar charts)\n return -angle1.x * angle2.y + angle1.y * angle2.x < 0;\n}","export default function isNumber(value) {\n return typeof value === \"number\" && !isNaN(value);\n}","import { STRING } from './constants';\n\nexport default function isString(value) {\n return typeof value === STRING;\n}","import isNumber from './is-number';\nimport isString from './is-string';\n\nexport default function convertableToNumber(value) {\n return isNumber(value) || (isString(value) && isFinite(value));\n}","export default function cycleUp(index, count) {\n return (index + 1) % count;\n}\n","export default function cycleDown(index, count) {\n let result = index - 1;\n\n return result < 0 ? count - 1 : result;\n}\n","export default function cycleIndex(index, length) {\n if (length === 1 || (index % length) === 0) {\n return 0;\n }\n\n if (index < 0) {\n return length + (index % length);\n } else if (index >= length) {\n return index % length;\n }\n\n return index;\n}","export default function isFunction(fn) {\n return typeof fn === \"function\";\n}","import isFunction from './is-function';\n\nconst OBJECT = \"object\";\nconst UNDEFINED = \"undefined\";\n\nfunction deepExtendOne(destination, source) {\n for (let property in source) {\n if (property === '__proto__' || property === 'constructor') {\n continue;\n }\n\n let propValue = source[property];\n let propType = typeof propValue;\n\n let propInit;\n if (propType === OBJECT && propValue !== null) {\n propInit = propValue.constructor;\n } else {\n propInit = null;\n }\n\n if (propInit && propInit !== Array) {\n if (propValue instanceof Date) {\n destination[property] = new Date(propValue.getTime());\n } else if (isFunction(propValue.clone)) {\n destination[property] = propValue.clone();\n } else {\n let destProp = destination[property];\n if (typeof (destProp) === OBJECT) {\n destination[property] = destProp || {};\n } else {\n destination[property] = {};\n }\n deepExtendOne(destination[property], propValue);\n }\n } else if (propType !== UNDEFINED) {\n destination[property] = propValue;\n }\n }\n\n return destination;\n}\n\nexport default function deepExtend(destination) {\n const length = arguments.length;\n\n for (let i = 1; i < length; i++) {\n deepExtendOne(destination, arguments[i]);\n }\n\n return destination;\n}\n","export default function isObject(value) {\n return typeof value === \"object\";\n}","import isNumber from './is-number';\n\nexport default function styleValue(value) {\n if (isNumber(value)) {\n return value + \"px\";\n }\n return value;\n}","import isObject from './is-object';\nimport isArray from './is-array';\nimport isString from './is-string';\nimport styleValue from './style-value';\n\nconst SIZE_STYLES_REGEX = /width|height|top|left|bottom|right/i;\n\nfunction isSizeField(field) {\n return SIZE_STYLES_REGEX.test(field);\n}\n\nexport default function elementStyles(element, styles) {\n const stylesArray = isString(styles) ? [ styles ] : styles;\n\n if (isArray(stylesArray)) {\n const result = {};\n const style = window.getComputedStyle(element);\n\n for (let idx = 0; idx < stylesArray.length; idx++) {\n let field = stylesArray[idx];\n result[field] = isSizeField(field) ? parseFloat(style[field]) : style[field];\n }\n\n return result;\n } else if (isObject(styles)) {\n for (let field in styles) {\n element.style[field] = styleValue(styles[field]);\n }\n }\n}","import { TOP, BOTTOM, LEFT, RIGHT } from './constants';\n\nexport default function getSpacing(value, defaultSpacing = 0) {\n const spacing = { top: 0, right: 0, bottom: 0, left: 0 };\n\n if (typeof(value) === \"number\") {\n spacing[TOP] = spacing[RIGHT] = spacing[BOTTOM] = spacing[LEFT] = value;\n } else {\n spacing[TOP] = value[TOP] || defaultSpacing;\n spacing[RIGHT] = value[RIGHT] || defaultSpacing;\n spacing[BOTTOM] = value[BOTTOM] || defaultSpacing;\n spacing[LEFT] = value[LEFT] || defaultSpacing;\n }\n\n return spacing;\n}","let current = {\n compile: function(template) {\n return template;\n }\n};\n\nclass TemplateService {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static compile(template, options) {\n return current.compile(template, options);\n }\n}\n\nexport default TemplateService;\n","import TemplateService from '../services/template-service';\nimport isFunction from './is-function';\n\nexport default function getTemplate(options = {}) {\n let template;\n if (options.template) {\n options.template = template = TemplateService.compile(options.template);\n } else if (isFunction(options.content)) {\n template = options.content;\n }\n\n return template;\n}\n","import TemplateService from '../services/template-service';\nimport isFunction from './is-function';\n\nexport default function getTemplate(options = {}) {\n let ariaTemplate;\n if (options.ariaTemplate) {\n options.ariaTemplate = ariaTemplate = TemplateService.compile(options.ariaTemplate);\n } else if (isFunction(options.ariaContent)) {\n ariaTemplate = options.ariaContent;\n }\n\n return ariaTemplate;\n}\n","import { drawing } from '@progress/kendo-drawing';\n\nconst FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\nconst getterCache = {};\n\ngetterCache['undefined'] = function(obj) {\n return obj;\n};\n\nexport default function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n\n const fields = [];\n field.replace(FIELD_REGEX, function(match, index, indexAccessor, field) {\n fields.push(drawing.util.defined(index) ? index : (indexAccessor || field));\n });\n\n getterCache[field] = function(obj) {\n let result = obj;\n for (let idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n\n return result;\n };\n\n return getterCache[field];\n}","export default function grep(array, callback) {\n const length = array.length;\n const result = [];\n for (let idx = 0; idx < length; idx++) {\n if (callback(array[idx])) {\n result .push(array[idx]);\n }\n }\n\n return result;\n}","export default function hasClasses(element, classNames) {\n if (element.className) {\n const names = classNames.split(\" \");\n for (let idx = 0; idx < names.length; idx++) {\n if (element.className.indexOf && element.className.indexOf(names[idx]) !== -1) {\n return true;\n }\n }\n }\n}\n","// TODO: Remove and replace with Map/WeakMap.\nexport default class HashMap {\n constructor() {\n this._map = new Map();\n }\n\n get(key) {\n return this._map.get(key);\n }\n\n set(key, value) {\n this._map.set(key, value);\n }\n}\n","export default function inArray(value, array) {\n if (array) {\n return array.indexOf(value) !== -1;\n }\n}","import { drawing } from '@progress/kendo-drawing';\nimport { COORD_PRECISION } from './constants';\n\nexport default function interpolateValue(start, end, progress) {\n return drawing.util.round(start + (end - start) * progress, COORD_PRECISION);\n}","import deepExtend from './deep-extend';\n\nconst TRIGGER = 'trigger';\n\nclass InstanceObserver {\n constructor(observer, handlers) {\n this.observer = observer;\n this.handlerMap = deepExtend({}, this.handlerMap, handlers);\n }\n\n trigger(name, args) {\n const { observer, handlerMap } = this;\n let isDefaultPrevented;\n if (handlerMap[name]) {\n isDefaultPrevented = this.callObserver(handlerMap[name], args);\n } else if (observer[TRIGGER]) {\n isDefaultPrevented = this.callObserver(TRIGGER, name, args);\n }\n\n return isDefaultPrevented;\n }\n\n callObserver(fnName, ...args) {\n return this.observer[fnName].apply(this.observer, args);\n }\n\n requiresHandlers(names) {\n if (this.observer.requiresHandlers) {\n return this.observer.requiresHandlers(names);\n }\n\n for (let idx = 0; idx < names.length; idx++) {\n if (this.handlerMap[names[idx]]) {\n return true;\n }\n }\n }\n}\n\nexport default InstanceObserver;","import { drawing } from '@progress/kendo-drawing';\n\nexport default function map(array, callback) {\n const length = array.length;\n const result = [];\n for (let idx = 0; idx < length; idx++) {\n let value = callback(array[idx]);\n if (drawing.util.defined(value)) {\n result.push(value);\n }\n }\n return result;\n}","import { support } from '@progress/kendo-drawing';\n\nconst browser = support.browser || {};\n\nexport default function mousewheelDelta(e) {\n let delta = 0;\n\n if (e.wheelDelta) {\n delta = -e.wheelDelta / 120;\n\n if (browser.webkit) {\n // Webkit browsers scale the delta by twice the device resolution.\n // Possibly related to https://bugs.webkit.org/show_bug.cgi?id=196339\n //\n // Low device resolutions (e.g. zoom-out to 30%) also behave strangely.\n delta = delta / (2 * Math.max(window.devicePixelRatio, 0.625));\n }\n } else if (e.detail) {\n delta = e.detail / 3;\n }\n\n delta = delta > 0 ? Math.ceil(delta) : Math.floor(delta);\n\n return delta;\n}\n","import {\n drawing,\n Class,\n logToConsole\n} from '@progress/kendo-drawing';\n\nconst {\n append,\n bindEvents,\n defined,\n deg,\n elementOffset,\n elementSize,\n eventCoordinates,\n eventElement,\n hashKey,\n last,\n limitValue,\n objectKey,\n rad,\n round,\n unbindEvents,\n valueOrDefault\n} = drawing.util;\n\nexport {\n append,\n bindEvents,\n Class,\n defined,\n deg,\n elementOffset,\n elementSize,\n eventCoordinates,\n eventElement,\n hashKey,\n last,\n limitValue,\n logToConsole,\n objectKey,\n rad,\n round,\n unbindEvents,\n valueOrDefault\n};\n","import { logToConsole } from '../drawing-utils';\n\nclass FontLoader {\n static fetchFonts(options, fonts, state = { depth: 0 }) {\n const MAX_DEPTH = 5;\n\n if (!options || state.depth > MAX_DEPTH || !document.fonts) {\n return;\n }\n\n Object.keys(options).forEach(function(key) {\n const value = options[key];\n if (key === \"dataSource\" || key[0] === \"$\" || !value) {\n return;\n }\n\n if (key === \"font\") {\n fonts.push(value);\n } else if (typeof value === \"object\") {\n state.depth++;\n FontLoader.fetchFonts(value, fonts, state);\n state.depth--;\n }\n });\n }\n\n static loadFonts(fonts, callback) {\n let promises = [];\n\n if (fonts.length > 0 && document.fonts) {\n try {\n promises = fonts.map(function(font) {\n return document.fonts.load(font);\n });\n } catch (e) {\n // Silence font-loading errors\n logToConsole(e);\n }\n\n Promise.all(promises).then(callback, callback);\n } else {\n callback();\n }\n }\n\n static preloadFonts(options, callback) {\n const fonts = [];\n FontLoader.fetchFonts(options, fonts);\n\n FontLoader.loadFonts(fonts, callback);\n }\n}\n\nexport default FontLoader;","import deepExtend from './deep-extend';\n\nexport default function setDefaultOptions(type, options) {\n const proto = type.prototype;\n if (proto.options) {\n proto.options = deepExtend({}, proto.options, options);\n } else {\n proto.options = options;\n }\n}","import isObject from './is-object';\nimport isPlainObject from './is-plain-object';\nimport isString from './is-string';\nimport deepExtend from './deep-extend';\nimport setDefaultOptions from './set-default-options';\nimport addClass from './add-class';\nimport removeClass from './remove-class';\n\nconst KICON = 'k-icon';\nconst KI_PREFFIX = 'k-i-';\nconst KFONTICON = 'k-font-icon';\nconst KSVGICON = 'k-svg-icon';\nconst KSVG_PREFFIX = 'k-svg-i-';\n\nclass HTMLBaseIcon {\n constructor(element, options) {\n this.element = element;\n this.options = deepExtend({}, this.options, options);\n\n this.wrapper();\n }\n\n wrapper() {\n this.addClasses();\n }\n\n addClasses() {\n }\n\n html() {\n return this.element.outerHTML;\n }\n}\n\nsetDefaultOptions(HTMLBaseIcon, {\n name: '',\n size: 'none',\n themeColor: 'none',\n flip: 'default',\n iconClass: '',\n stylingOptions: [ 'size', 'themeColor', 'fill' ]\n});\n\nclass HTMLFontIcon extends HTMLBaseIcon {\n constructor(element, options) {\n super(element, options);\n }\n\n wrapper() {\n // Find if there is an existing k-i- class appended to the element.\n let currentIconClass = this.element.className.split(\" \").find(x => x.startsWith(KI_PREFFIX));\n let className = this.options.icon ? `${this.options.icon.startsWith(KI_PREFFIX) ? \"\" : KI_PREFFIX}${this.options.icon}` : \"\";\n\n this._className = className;\n\n addClass(this.element, KICON);\n addClass(this.element, KFONTICON);\n removeClass(this.element, currentIconClass); // Remove any existing icons.\n addClass(this.element, className);\n addClass(this.element, this.options.iconClass || '');\n\n super.wrapper();\n }\n}\n\nsetDefaultOptions(HTMLFontIcon, {\n name: 'HTMLFontIcon',\n icon: null\n});\n\nclass HTMLSvgIcon extends HTMLBaseIcon {\n constructor(element, options) {\n // Ensure that the inner contents of the wrapping span element are always removed for re-rendering purposes.\n element.innerHTML = \"\";\n\n super(element, options);\n }\n\n wrapper() {\n let icon = this.options.icon;\n let iconClass = this.options.iconClass;\n let currentIconClass = this.element.className.split(\" \").find(x => x.startsWith(KSVG_PREFFIX));\n\n if (!icon && iconClass) {\n // match k-i-(some-icon-name)\n const regex = /k-i-(\\w+(?:-\\w+)*)/;\n let iconNameMatch = iconClass.match(regex);\n if (iconNameMatch) {\n icon = iconNameMatch[1];\n iconClass = iconClass.replace(iconNameMatch[0], \"\");\n }\n }\n\n if (isString(icon)) {\n icon = icon.replace(\"k-i-\", \"\").replace(/-./g, x => x[1].toUpperCase());\n icon = this.options.svgIcons[icon] || this.options.svgIcons[`${icon}Icon`];\n }\n\n let className = icon && icon.name ? `${KSVG_PREFFIX}${icon.name}` : \"\";\n this._className = className;\n\n addClass(this.element, KSVGICON);\n removeClass(this.element, currentIconClass);\n addClass(this.element, className);\n addClass(this.element, iconClass || \"\");\n this.element.setAttribute(\"aria-hidden\", \"true\");\n\n if (icon && isPlainObject(icon)) {\n let svgElement = document.createElementNS('http://www.w3.org/2000/svg', 'svg');\n svgElement.setAttribute(\"viewBox\", icon.viewBox || \"\");\n svgElement.setAttribute(\"focusable\", \"false\");\n svgElement.innerHTML = icon.content || \"\";\n\n this.element.appendChild(svgElement);\n }\n\n super.wrapper();\n }\n}\n\nsetDefaultOptions(HTMLSvgIcon, {\n name: 'HTMLSvgIcon',\n icon: null,\n svgIcons: {}\n});\n\nconst ICON_TYPES = {\n 'svg': HTMLSvgIcon,\n 'font': HTMLFontIcon\n};\n\nexport default function renderIcon(iconElement, iconOptions) {\n let element = iconElement;\n let options = iconOptions;\n\n if (!element\n || (isObject(element) && !(element instanceof HTMLElement))\n || isString(element)) {\n options = element;\n element = document.createElement(\"span\");\n }\n\n if (isString(options)) {\n options = {\n icon: options\n };\n }\n\n if (!options.type) {\n options.type = 'svg';\n }\n\n if (!ICON_TYPES[options.type]) {\n return null;\n }\n\n return (new ICON_TYPES[options.type](element, options).html());\n}\n","export default function isPlainObject(value) {\n return Object.prototype.toString.call(value) === \"[object Object]\";\n}","import { MIN_VALUE, MAX_VALUE } from './constants';\n\nexport default function sparseArrayLimits(arr) {\n let min = MAX_VALUE;\n let max = MIN_VALUE;\n\n for (let idx = 0, length = arr.length; idx < length; idx++) {\n const value = arr[idx];\n if (value !== null && isFinite(value)) {\n min = Math.min(min, value);\n max = Math.max(max, value);\n }\n }\n\n return {\n min: min === MAX_VALUE ? undefined : min,\n max: max === MIN_VALUE ? undefined : max\n };\n}","export default function find(array, predicate) {\n for (let i = 0; i < array.length; i++) {\n const item = array[i];\n if (predicate(item, i, array)) {\n return item;\n }\n }\n}\n","import { geometry } from '@progress/kendo-drawing';\n\nconst Matrix = geometry.Matrix;\nconst matrixRegexp = /matrix\\((.*)\\)/;\n\nfunction parseMatrix(matrixString) {\n const match = matrixString.match(matrixRegexp);\n if (match === null || match.length !== 2) {\n return Matrix.unit();\n }\n\n const members = match[1].split(',').map(x => parseFloat(x));\n return new Matrix(...members);\n}\n\nfunction transformMatrix(element) {\n const transform = getComputedStyle(element).transform;\n\n if (transform === 'none') {\n return Matrix.unit();\n }\n\n return parseMatrix(transform);\n}\n\nexport default function elementScale(element) {\n if (!element) {\n return Matrix.unit();\n }\n\n let matrix = transformMatrix(element);\n let parent = element.parentElement;\n while (parent) {\n const parentMatrix = transformMatrix(parent);\n matrix = matrix.multiplyCopy(parentMatrix);\n parent = parent.parentElement;\n }\n\n matrix.b = matrix.c = matrix.e = matrix.f = 0;\n return matrix;\n}\n","import { Color } from '@progress/kendo-drawing';\nimport { WHITE, BLACK } from './constants';\n\nfunction autoTextColor(color) {\n const isDark = new Color(color).isDark();\n if (isDark) {\n return WHITE;\n }\n\n return BLACK;\n}\n\nexport default autoTextColor;\n","const DELETED = {};\n\nclass LegacySet {\n constructor(values) {\n this._index = {};\n this._values = values ? values.slice(0) : [];\n\n for (let i = 0; i < this._values.length; i++) {\n this._index[this._values[i]] = i;\n }\n }\n\n values() {\n return this._values.filter(item => item !== DELETED);\n }\n\n has(value) {\n return this._index[value] !== undefined;\n }\n\n add(value) {\n if (!this.has(value)) {\n this._index[value] = this._values.length;\n this._values.push(value);\n }\n }\n\n delete(value) {\n const index = this._index[value];\n if (index !== undefined) {\n this._values[index] = DELETED;\n delete this._index[value];\n }\n }\n\n clear() {\n this._index = {};\n this._values = [];\n }\n\n get size() {\n return this._values.length;\n }\n}\n\nclass SetWrapper {\n constructor(values) {\n this._set = new Set(values);\n }\n\n values() {\n return Array.from(this._set);\n }\n\n has(value) {\n return this._set.has(value);\n }\n\n add(value) {\n this._set.add(value);\n }\n\n delete(value) {\n this._set.delete(value);\n }\n\n clear() {\n this._set.clear();\n }\n\n get size() {\n return this._set.size;\n }\n}\n\n// TODO: Drop LegacySet when removing support for IE10\nlet supportsSet = () => {\n let supported = false;\n\n if (typeof Set === 'function') {\n const set = new Set([1]);\n supported = set.has(1);\n }\n\n return supported;\n};\n\nexport default function createHashSet(values) {\n if (supportsSet()) {\n return new SetWrapper(values);\n }\n\n return new LegacySet(values);\n}\n","export default function defaultErrorHandler(error) {\n throw error;\n}\n","export default function hasOwnProperty(obj, property) {\n return Object.prototype.hasOwnProperty.call(obj, property);\n}\n","// Based on the implementation from kendo-spreadsheet-common/src/calc.js\nclass Matrix {\n constructor() {\n this.height = 0;\n this.width = 0;\n this.data = [];\n }\n\n clone() {\n const m = new Matrix();\n m.height = this.height;\n m.width = this.width;\n m.data = this.data.map(row => row.slice());\n return m;\n }\n\n get(row, col) {\n const line = this.data[row];\n const val = line ? line[col] : null;\n return val;\n }\n\n set(row, col, data) {\n let line = this.data[row];\n if (line == null) {\n line = this.data[row] = [];\n }\n line[col] = data;\n if (row >= this.height) {\n this.height = row + 1;\n }\n if (col >= this.width) {\n this.width = col + 1;\n }\n }\n\n each(f, includeEmpty) {\n for (let row = 0; row < this.height; ++row) {\n for (let col = 0; col < this.width; ++col) {\n let val = this.get(row, col);\n if (includeEmpty || val != null) {\n val = f(val, row, col);\n if (val !== undefined) {\n return val;\n }\n }\n }\n }\n }\n\n map(f, includeEmpty) {\n const m = new Matrix();\n this.each(function(el, row, col) {\n m.set(row, col, f(el, row, col));\n }, includeEmpty);\n return m;\n }\n\n transpose() {\n const m = new Matrix();\n this.each(function(el, row, col) {\n m.set(col, row, el);\n });\n return m;\n }\n\n unit(n) {\n this.width = this.height = n;\n const a = this.data = new Array(n);\n for (let i = n; --i >= 0;) {\n const row = a[i] = new Array(n);\n for (let j = n; --j >= 0;) {\n row[j] = i === j ? 1 : 0;\n }\n }\n return this;\n }\n\n multiply(b) {\n const a = this;\n const m = new Matrix();\n for (let row = 0; row < a.height; ++row) {\n for (let col = 0; col < b.width; ++col) {\n let s = 0;\n for (let i = 0; i < a.width; ++i) {\n const va = a.get(row, i);\n const vb = b.get(i, col);\n if (typeof va === \"number\" && typeof vb === \"number\") {\n s += va * vb;\n }\n }\n m.set(row, col, s);\n }\n }\n return m;\n }\n\n inverse() {\n const n = this.width;\n const m = this.augment(new Matrix().unit(n));\n const a = m.data;\n\n // Gaussian elimination\n // https://en.wikipedia.org/wiki/Gaussian_elimination#Finding_the_inverse_of_a_matrix\n\n // 1. Get zeros below main diagonal\n for (let k = 0; k < n; ++k) {\n const imax = argmax(k, n, function(i) { return a[i][k]; });\n if (!a[imax][k]) {\n return null; // singular matrix\n }\n if (k !== imax) {\n let tmp = a[k];\n a[k] = a[imax];\n a[imax] = tmp;\n }\n for (let i = k + 1; i < n; ++i) {\n for (let j = k + 1; j < 2 * n; ++j) {\n a[i][j] -= a[k][j] * a[i][k] / a[k][k];\n }\n a[i][k] = 0;\n }\n }\n\n // 2. Get 1-s on main diagonal, dividing by pivot\n for (let i = 0; i < n; ++i) {\n for (let f = a[i][i], j = 0; j < 2 * n; ++j) {\n a[i][j] /= f;\n }\n }\n\n // 3. Get zeros above main diagonal. Actually, we only care to compute the right side\n // here (that will be the inverse), so in the inner loop below we go while j >= n,\n // instead of j >= k.\n for (let k = n; --k >= 0;) {\n for (let i = k; --i >= 0;) {\n if (a[i][k]) {\n for (let j = 2 * n; --j >= n;) {\n a[i][j] -= a[k][j] * a[i][k];\n }\n }\n }\n }\n\n return m.slice(0, n, n, n);\n }\n\n augment(m) {\n const ret = this.clone();\n const n = ret.width;\n m.each(function(val, row, col) {\n ret.set(row, col + n, val);\n });\n return ret;\n }\n\n slice(row, col, height, width) {\n const m = new Matrix();\n for (let i = 0; i < height; ++i) {\n for (let j = 0; j < width; ++j) {\n m.set(i, j, this.get(row + i, col + j));\n }\n }\n return m;\n }\n}\n\nfunction argmax(start, end, f) {\n let max = f(start), pos = start;\n for (let i = start + 1; i < end; i++) {\n const v = f(start);\n if (v > max) {\n max = v;\n pos = start;\n }\n }\n return pos;\n}\n\nexport default Matrix;\n","export const eventMap = {\n down: \"pointerdown\",\n move: \"pointermove\",\n up: \"pointerup\",\n cancel: \"pointercancel pointerleave\"\n};\n\nfunction queryEventMap(e) {\n return eventMap[e] || e;\n}\n\nexport const applyEventMap = (events) => {\n const eventRegEx = /([^ ]+)/g;\n const appliedEvents = events.replace(eventRegEx, queryEventMap);\n\n return appliedEvents;\n};\n","export default function guid() {\n let id = \"\";\n let i;\n let random;\n\n for (i = 0; i < 32; i++) {\n random = Math.random() * 16 | 0;\n\n if (i === 8 || i === 12 || i === 16 || i === 20) {\n id += \"-\";\n }\n\n id += (i === 12 ? 4 : (i === 16 ? (random & 3 | 8) : random)).toString(16); // eslint-disable-line no-nested-ternary\n }\n\n return id;\n}","import isFunction from './is-function';\nimport isArray from './is-array';\nimport guid from '../core/utils/guid';\n\nconst elementEventHandlers = new WeakMap();\nconst ID = Symbol('id');\n\nexport function on(element, events, filter, handler, useCapture) {\n addEventListeners(element, events, filter, handler, useCapture);\n}\n\nexport function off(element, events, filter, handler, useCapture) {\n removeEventListeners(element, events, filter, handler, useCapture);\n}\n\nfunction isString(value) {\n return typeof(value) === \"string\";\n}\n\nfunction addEventListeners(element, events, filter, handler, useCapture) {\n const eventNames = isArray(events) ? events : (events || \"\").split(\" \");\n\n eventNames.forEach(function(eventName) {\n addEventListener(element, eventName, filter, handler, useCapture);\n });\n}\n\nfunction addEventListener(element, event, filter, handler, useCapture) {\n let eventHandler = handler;\n let eventFilter;\n\n if (filter && isFunction(filter) && !handler) {\n eventHandler = filter;\n } else if (filter && isString(filter) && isFunction(eventHandler)) {\n eventFilter = filter;\n }\n\n const attachedHandler = function(e) {\n const closestMatchingTarget = e.target ? e.target.closest(eventFilter) : null;\n\n if (!eventFilter ||\n (eventFilter && e.target && closestMatchingTarget)) {\n const currentTarget = eventFilter ? closestMatchingTarget : e.currentTarget;\n\n // reassign the property as it is a getters only\n Object.defineProperty(e, \"currentTarget\", { value: currentTarget });\n // keep a reference to the top-level target\n Object.defineProperty(e, \"delegateTarget\", { value: element });\n\n eventHandler(e);\n }\n };\n eventHandler[ID] = guid();\n\n let eventHandlers = elementEventHandlers.get(element);\n\n if (!eventHandlers) {\n eventHandlers = new Map();\n elementEventHandlers.set(element, eventHandlers);\n }\n\n eventHandlers.set(eventHandler[ID], attachedHandler);\n element.addEventListener(event, attachedHandler, Boolean(useCapture));\n}\n\nfunction removeEventListeners(element, events, handler, useCapture) {\n const eventNames = isArray(events) ? events : (events || \"\").split(\" \");\n\n eventNames.forEach(function(eventName) {\n removeEventListener(element, eventName, handler, useCapture);\n });\n}\n\nfunction removeEventListener(element, event, handler, useCapture) {\n const eventHandlers = elementEventHandlers.get(element);\n\n if (eventHandlers && handler && handler[ID]) {\n const handlerId = handler[ID];\n const attachedHandler = eventHandlers.get(handlerId);\n\n eventHandlers.delete(handlerId);\n\n if (attachedHandler) {\n element.removeEventListener(event, attachedHandler, Boolean(useCapture));\n }\n }\n}\n","export default function getSupportedFeatures() {\n const os = detectOS(navigator.userAgent);\n const support = {};\n\n support.mobileOS = os;\n\n return support;\n}\n\nfunction detectOS(ua) {\n let os = false;\n const agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)\\.?(\\d+(\\.\\d+)?)?/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i\n },\n osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i\n };\n\n for (let agent in agentRxs) {\n let match = ua.match(agentRxs[agent]);\n if (match) {\n if (agent === \"windows\" && \"plugins\" in navigator) { return false; } // Break if not Metro/Mobile Windows\n\n os = {};\n os.device = agent;\n os.name = testRegex(agent, osRxs);\n os[os.name] = true;\n\n break;\n }\n }\n\n return os;\n}\n\nfunction testRegex(agent, regexes, dflt) {\n for (let regex in regexes) {\n if (regexes[regex].test(agent)) {\n return regex;\n }\n }\n return dflt !== undefined ? dflt : agent;\n}\n","export default function noop() {}\n","export default function now() {\n return new Date().getTime();\n}\n","import { Class } from '../drawing-utils';\n\nconst STRING = \"string\";\nconst FUNCTION = \"function\";\n\nlet preventDefault = function() {\n this._defaultPrevented = true;\n};\n\nlet isDefaultPrevented = function() {\n return this._defaultPrevented === true;\n};\n\nexport default class Observable extends Class {\n constructor() {\n super();\n this._events = {};\n }\n\n destroy() {\n this.unbind();\n }\n\n bind(event, handlers, one) {\n let that = this,\n idx,\n eventNames = typeof event === STRING ? [event] : event || [],\n length,\n original,\n handler,\n handlersIsFunction = typeof handlers === FUNCTION,\n events;\n\n if (handlers === undefined) {\n for (idx in event) {\n that.bind(idx, event[idx]);\n }\n\n return that;\n }\n\n /* eslint-disable no-loop-func */\n for (idx = 0, length = eventNames.length; idx < length; idx++) {\n let eventName = eventNames[idx];\n\n handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n if (one) {\n original = handler;\n handler = function() {\n that.unbind(eventName, handler);\n original.apply(that, arguments);\n };\n\n handler.original = original;\n }\n\n events = that._events[eventName] = that._events[eventName] || [];\n events.push(handler);\n }\n }\n /* eslint-enable no-loop-func */\n\n return that;\n }\n\n one(eventNames, handlers) {\n return this.bind(eventNames, handlers, true);\n }\n\n first(eventName, handlers) {\n let that = this,\n idx,\n eventNames = typeof eventName === STRING ? [eventName] : eventName,\n length,\n handler,\n handlersIsFunction = typeof handlers === FUNCTION,\n events;\n\n for (idx = 0, length = eventNames.length; idx < length; idx++) {\n let eventName = eventNames[idx];\n\n handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n events = that._events[eventName] = that._events[eventName] || [];\n events.unshift(handler);\n }\n }\n\n return that;\n }\n\n trigger(eventName, eventArgs) {\n let that = this,\n events = that._events[eventName],\n idx,\n length;\n\n if (events) {\n let e = eventArgs || {};\n\n e.sender = that;\n\n e._defaultPrevented = false;\n\n e.preventDefault = preventDefault;\n\n e.isDefaultPrevented = isDefaultPrevented;\n\n events = events.slice();\n\n for (idx = 0, length = events.length; idx < length; idx++) {\n events[idx].call(that, e);\n }\n\n return e._defaultPrevented === true;\n }\n\n return false;\n }\n\n unbind(eventName, handler) {\n let that = this,\n events = that._events[eventName],\n idx;\n\n if (eventName === undefined) {\n that._events = {};\n } else if (events) {\n if (handler) {\n for (idx = events.length - 1; idx >= 0; idx--) {\n if (events[idx] === handler || events[idx].original === handler) {\n events.splice(idx, 1);\n }\n }\n } else {\n that._events[eventName] = [];\n }\n }\n\n return that;\n }\n\n _setEvents(options) {\n const length = (this.events || []).length;\n\n for (let idx = 0; idx < length; idx ++) {\n let e = this.events[idx];\n\n if (this.options[e] && options[e]) {\n this.unbind(e, this.options[e]);\n\n if (this._events && this._events[e]) {\n delete this._events[e];\n }\n }\n }\n\n this.bind(this.events, options);\n }\n}\n","import { Class } from '../drawing-utils';\nimport { applyEventMap, eventMap } from './event-map';\nimport { on, off } from './event-utils';\nimport getSupportedFeatures from './get-supported-features';\nimport noop from './noop';\nimport now from './now';\nimport grep from './grep';\nimport Observable from './observable';\n\nconst extend = Object.assign;\n\nconst preventDefault = (e) => {\n e.preventDefault();\n};\n\nlet\n DEFAULT_MIN_HOLD = 800,\n CLICK_DELAY = 300,\n DEFAULT_THRESHOLD = 0,\n PRESS = 'press',\n HOLD = 'hold',\n SELECT = 'select',\n START = 'start',\n MOVE = 'move',\n END = 'end',\n CANCEL = 'cancel',\n TAP = 'tap',\n DOUBLETAP = 'doubleTap',\n RELEASE = 'release',\n GESTURESTART = 'gesturestart',\n GESTURECHANGE = 'gesturechange',\n GESTUREEND = 'gestureend',\n GESTURETAP = 'gesturetap';\n\nlet THRESHOLD = {\n 'api': 0,\n 'touch': 0,\n 'mouse': 9,\n 'pointer': 9\n};\n\nfunction touchDelta(touch1, touch2) {\n let x1 = touch1.x.location,\n y1 = touch1.y.location,\n x2 = touch2.x.location,\n y2 = touch2.y.location,\n dx = x1 - x2,\n dy = y1 - y2;\n\n return {\n center: {\n x: (x1 + x2) / 2,\n y: (y1 + y2) / 2\n },\n distance: Math.sqrt(dx * dx + dy * dy)\n };\n}\n\nfunction getTouches(e) {\n let touches = [],\n originalEvent = e.originalEvent || e,\n currentTarget = e.currentTarget;\n\n if (e.api) {\n touches.push({\n id: 2, // hardcoded ID for API call\n event: e,\n target: e.target,\n currentTarget: e.target,\n location: e,\n type: 'api'\n });\n } else {\n touches.push({\n location: originalEvent,\n event: e,\n target: e.target,\n currentTarget: currentTarget,\n id: originalEvent.pointerId,\n type: 'pointer'\n });\n }\n\n return touches;\n}\nclass TouchAxis extends Class {\n constructor(axis, location) {\n super();\n let that = this;\n\n that.support = getSupportedFeatures();\n that.invalidZeroEvents = this.support.mobileOS && this.support.mobileOS.android;\n that.axis = axis;\n that._updateLocationData(location);\n that.startLocation = that.location;\n that.velocity = that.delta = 0;\n that.timeStamp = now();\n }\n\n move(location) {\n let that = this,\n offset = location['page' + that.axis],\n timeStamp = now(),\n timeDelta = timeStamp - that.timeStamp || 1;\n\n if (!offset && this.invalidZeroEvents) {\n return;\n }\n\n that.delta = offset - that.location;\n that._updateLocationData(location);\n that.initialDelta = offset - that.startLocation;\n that.velocity = that.delta / timeDelta;\n that.timeStamp = timeStamp;\n }\n\n _updateLocationData(location) {\n let that = this,\n axis = that.axis;\n\n that.location = location['page' + axis];\n that.client = location['client' + axis];\n that.screen = location['screen' + axis];\n }\n}\n\nclass Touch extends Class {\n constructor(userEvents, target, touchInfo) {\n super();\n\n extend(this, {\n x: new TouchAxis('X', touchInfo.location),\n y: new TouchAxis('Y', touchInfo.location),\n type: touchInfo.type,\n threshold: userEvents.threshold || THRESHOLD[touchInfo.type],\n userEvents: userEvents,\n target: target,\n currentTarget: touchInfo.currentTarget,\n initialTouch: touchInfo.target,\n id: touchInfo.id,\n pressEvent: touchInfo,\n _clicks: userEvents._clicks,\n supportDoubleTap: userEvents.supportDoubleTap,\n _moved: false,\n _finished: false\n });\n }\n\n press() {\n this._holdTimeout = setTimeout(() => this._hold(), this.userEvents.minHold);\n this._trigger(PRESS, this.pressEvent);\n }\n\n _tap(touchInfo) {\n let that = this;\n\n that.userEvents._clicks++;\n\n if (that.userEvents._clicks === 1) {\n that._clickTimeout = setTimeout(function() {\n if (that.userEvents._clicks === 1) {\n that._trigger(TAP, touchInfo);\n } else {\n that._trigger(DOUBLETAP, touchInfo);\n }\n\n that.userEvents._clicks = 0;\n }, CLICK_DELAY);\n }\n }\n\n _hold() {\n this._trigger(HOLD, this.pressEvent);\n }\n\n /* eslint-disable consistent-return */\n move(touchInfo) {\n let that = this;\n let preventMove = touchInfo.type !== 'api' && that.userEvents._shouldNotMove;\n\n if (that._finished || preventMove) {\n return;\n }\n\n that.x.move(touchInfo.location);\n that.y.move(touchInfo.location);\n\n if (!that._moved) {\n if (that._withinIgnoreThreshold()) {\n return;\n }\n\n if (!UserEvents.current || UserEvents.current === that.userEvents) {\n that._start(touchInfo);\n } else {\n return that.dispose();\n }\n }\n\n if (!that._finished) {\n that._trigger(MOVE, touchInfo);\n }\n }\n /* eslint-enable consistent-return */\n\n end(touchInfo) {\n this.endTime = now();\n\n if (this._finished) {\n return;\n }\n\n this._finished = true;\n this._trigger(RELEASE, touchInfo);\n\n if (this._moved) {\n this._trigger(END, touchInfo);\n } else {\n if (this.supportDoubleTap) {\n this._tap(touchInfo);\n } else {\n this._trigger(TAP, touchInfo);\n }\n }\n\n clearTimeout(this._holdTimeout);\n this.dispose();\n }\n\n dispose() {\n let userEvents = this.userEvents,\n activeTouches = userEvents.touches || [];\n\n this._finished = true;\n this.pressEvent = null;\n\n clearTimeout(this._holdTimeout);\n // activeTouches.splice($.inArray(this, activeTouches), 1);\n const activeTouchIndex = activeTouches.indexOf(this);\n activeTouches.splice(activeTouchIndex, 1);\n }\n\n skip() {\n this.dispose();\n }\n\n cancel() {\n this.dispose();\n }\n\n isMoved() {\n return this._moved;\n }\n\n _start(touchInfo) {\n clearTimeout(this._holdTimeout);\n this.startTime = now();\n this._moved = true;\n this._trigger(START, touchInfo);\n }\n\n _trigger(name, touchInfo) {\n const e = touchInfo.event;\n const data = {\n touch: this,\n x: this.x,\n y: this.y,\n target: this.target,\n event: e\n };\n\n if (this.userEvents.notify(name, data)) {\n e.preventDefault();\n }\n }\n\n _withinIgnoreThreshold() {\n let xDelta = this.x.initialDelta,\n yDelta = this.y.initialDelta;\n return Math.sqrt(xDelta * xDelta + yDelta * yDelta) <= this.threshold;\n }\n}\n\nfunction withEachUpEvent(callback) {\n let downEvents = eventMap.up.split(' '),\n idx = 0,\n length = downEvents.length;\n\n for (; idx < length; idx++) {\n callback(downEvents[idx]);\n }\n}\n\nexport default class UserEvents extends Observable {\n constructor(element, options) {\n super();\n let that = this;\n let filter;\n\n const support = getSupportedFeatures();\n this.support = support;\n\n /* eslint-disable no-param-reassign */\n options = options || {};\n /* eslint-enable no-param-reassign */\n this.options = options;\n\n filter = that.filter = options.filter;\n that.threshold = options.threshold || DEFAULT_THRESHOLD;\n that.minHold = options.minHold || DEFAULT_MIN_HOLD;\n that.touches = [];\n that._maxTouches = options.multiTouch ? 2 : 1;\n that.allowSelection = options.allowSelection;\n that.captureUpIfMoved = options.captureUpIfMoved;\n that._clicks = 0;\n that.supportDoubleTap = options.supportDoubleTap;\n\n extend(that, {\n element: element,\n surface: options.surface || element,\n stopPropagation: options.stopPropagation,\n pressed: false\n });\n\n this._surfaceMoveHandler = this._move.bind(this);\n on(that.surface, applyEventMap('move'), this._surfaceMoveHandler);\n\n this._surfaceEndHandler = this._end.bind(this);\n on(that.surface, applyEventMap('up cancel'), this._surfaceEndHandler);\n\n this._elementStartHandler = this._start.bind(this);\n on(element, applyEventMap('down'), filter, this._elementStartHandler);\n\n element.style['touch-action'] = options.touchAction || 'none';\n\n if (options.preventDragEvent) {\n this._elementDragStartHandler = preventDefault;\n on(element, applyEventMap('dragstart'), this._elementDragStartHandler);\n }\n\n // element.on(kendo.applyEventMap('mousedown'), filter, {\n // root: element\n // } '_select');\n\n // todo: use root\n this._elementSelectHandler = this._select.bind(this);\n on(element, applyEventMap('mousedown'), filter, this._elementSelectHandler);\n\n if (that.captureUpIfMoved) {\n let surfaceElement = that.surface,\n preventIfMovingProxy = that.preventIfMoving.bind(that);\n\n withEachUpEvent(function(eventName) {\n surfaceElement.addEventListener(eventName, preventIfMovingProxy, true);\n });\n }\n\n that.bind([\n PRESS,\n HOLD,\n TAP,\n DOUBLETAP,\n START,\n MOVE,\n END,\n RELEASE,\n CANCEL,\n GESTURESTART,\n GESTURECHANGE,\n GESTUREEND,\n GESTURETAP,\n SELECT\n ], options);\n }\n\n preventIfMoving(e) {\n if (this._isMoved()) {\n e.preventDefault();\n }\n }\n\n destroy() {\n let that = this;\n const options = this.options;\n const element = this.element;\n\n if (that._destroyed) {\n return;\n }\n\n that._destroyed = true;\n\n if (that.captureUpIfMoved) {\n let surfaceElement = that.surface;\n withEachUpEvent(function(eventName) {\n surfaceElement.removeEventListener(eventName, that.preventIfMoving);\n });\n }\n\n off(that.surface, applyEventMap('move'), this._surfaceMoveHandler);\n off(that.surface, applyEventMap('up cancel'), this._surfaceEndHandler);\n\n off(element, applyEventMap('down'), this._elementStartHandler);\n\n if (options.preventDragEvent) {\n off(element, applyEventMap('dragstart'), this._elementDragStartHandler);\n }\n\n off(element, applyEventMap('mousedown'), this._elementSelectHandler);\n\n that._disposeAll();\n that.unbind();\n\n delete that.surface;\n delete that.element;\n delete that.currentTarget;\n }\n\n capture() {\n UserEvents.current = this;\n }\n\n cancel() {\n this._disposeAll();\n this.trigger(CANCEL);\n }\n\n notify(event, data) {\n let that = this,\n touches = that.touches;\n let eventName = event;\n\n if (this._isMultiTouch()) {\n switch (eventName) {\n case MOVE:\n eventName = GESTURECHANGE;\n break;\n case END:\n eventName = GESTUREEND;\n break;\n case TAP:\n eventName = GESTURETAP;\n break;\n default:\n break;\n }\n\n extend(data, {\n touches: touches\n }, touchDelta(touches[0], touches[1]));\n }\n\n return this.trigger(eventName, extend(data, {\n type: eventName\n }));\n }\n\n press(x, y, target) {\n this._apiCall('_start', x, y, target);\n }\n\n move(x, y) {\n this._apiCall('_move', x, y);\n }\n\n end(x, y) {\n this._apiCall('_end', x, y);\n }\n\n _isMultiTouch() {\n return this.touches.length > 1;\n }\n\n _maxTouchesReached() {\n return this.touches.length >= this._maxTouches;\n }\n\n _disposeAll() {\n let touches = this.touches;\n while (touches.length > 0) {\n touches.pop().dispose();\n }\n }\n\n _isMoved() {\n return grep(this.touches, function(touch) {\n return touch.isMoved();\n }).length;\n }\n\n _select(e) {\n if (!this.allowSelection || this.trigger(SELECT, { event: e })) {\n e.preventDefault();\n }\n }\n\n _start(e) {\n if (e.which && e.which > 1 || this._maxTouchesReached()) {\n return;\n }\n\n UserEvents.current = null;\n this.currentTarget = e.currentTarget;\n\n if (this.stopPropagation) {\n e.stopPropagation();\n }\n\n let target;\n const eventTouches = getTouches(e);\n for (let idx = 0; idx < eventTouches.length; idx++) {\n if (this._maxTouchesReached()) {\n break;\n }\n\n const eventTouch = eventTouches[idx];\n if (this.filter) {\n target = eventTouch.currentTarget;\n } else {\n target = this.element;\n }\n\n if (target && target.length === 0) {\n continue;\n }\n\n if (eventTouch.type === 'pointer') {\n this.surface.setPointerCapture(eventTouch.id);\n }\n\n const touch = new Touch(this, target, eventTouch);\n this.touches.push(touch);\n touch.press();\n\n if (this._isMultiTouch()) {\n this.notify('gesturestart', {});\n }\n }\n }\n\n _move(e) {\n this._eachTouch('move', e);\n }\n\n _end(e) {\n this._eachTouch('end', e);\n }\n\n _eachTouch(methodName, e) {\n let that = this,\n dict = {},\n touches = getTouches(e),\n activeTouches = that.touches,\n idx,\n touch,\n touchInfo,\n matchingTouch;\n\n for (idx = 0; idx < activeTouches.length; idx++) {\n touch = activeTouches[idx];\n dict[touch.id] = touch;\n }\n\n for (idx = 0; idx < touches.length; idx++) {\n touchInfo = touches[idx];\n matchingTouch = dict[touchInfo.id];\n\n if (matchingTouch) {\n matchingTouch[methodName](touchInfo);\n }\n }\n }\n\n _apiCall(type, x, y, target) {\n this[type]({\n api: true,\n pageX: x,\n pageY: y,\n clientX: x,\n clientY: y,\n target: target || this.element,\n stopPropagation: noop,\n preventDefault: noop\n });\n }\n\n static defaultThreshold(value) {\n DEFAULT_THRESHOLD = value;\n }\n\n static minHold(value) {\n DEFAULT_MIN_HOLD = value;\n }\n}\n","import { DEFAULT_PRECISION } from '../../common/constants';\nimport { round } from '../../common';\n\nexport default function autoMajorUnit(min, max) {\n let diff = round(max - min, DEFAULT_PRECISION - 1);\n\n if (diff === 0) {\n if (max === 0) {\n return 0.1;\n }\n\n diff = Math.abs(max);\n }\n\n const scale = Math.pow(10, Math.floor(Math.log(diff) / Math.log(10)));\n const relativeValue = round((diff / scale), DEFAULT_PRECISION);\n let scaleMultiplier = 1;\n\n if (relativeValue < 1.904762) {\n scaleMultiplier = 0.2;\n } else if (relativeValue < 4.761904) {\n scaleMultiplier = 0.5;\n } else if (relativeValue < 9.523809) {\n scaleMultiplier = 1;\n } else {\n scaleMultiplier = 2;\n }\n\n return round(scale * scaleMultiplier, DEFAULT_PRECISION);\n}","import { COORD_PRECISION } from '../common/constants';\nimport { Class, rad, round } from '../common';\n\nclass Point extends Class {\n constructor(x, y) {\n super();\n\n this.x = x || 0;\n this.y = y || 0;\n }\n\n clone() {\n return new Point(this.x, this.y);\n }\n\n equals(point) {\n return point && this.x === point.x && this.y === point.y;\n }\n\n rotate(center, degrees) {\n const theta = rad(degrees);\n const cosT = Math.cos(theta);\n const sinT = Math.sin(theta);\n const { x: cx, y: cy } = center;\n const { x, y } = this;\n\n this.x = round(\n cx + (x - cx) * cosT + (y - cy) * sinT,\n COORD_PRECISION\n );\n\n this.y = round(\n cy + (y - cy) * cosT - (x - cx) * sinT,\n COORD_PRECISION\n );\n\n return this;\n }\n\n multiply(a) {\n\n this.x *= a;\n this.y *= a;\n\n return this;\n }\n\n distanceTo(point) {\n const dx = this.x - point.x;\n const dy = this.y - point.y;\n\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n static onCircle(center, angle, radius) {\n const radians = rad(angle);\n\n return new Point(\n center.x - radius * Math.cos(radians),\n center.y - radius * Math.sin(radians)\n );\n }\n}\n\n\nexport default Point;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport Point from './point';\n\nimport { X, Y, TOP, BOTTOM, LEFT, RIGHT, CENTER, WIDTH, HEIGHT } from '../common/constants';\nimport { Class, defined, getSpacing, inArray, isArray, rad } from '../common';\n\nclass Box extends Class {\n constructor(x1, y1, x2, y2) {\n super();\n\n this.x1 = x1 || 0;\n this.y1 = y1 || 0;\n this.x2 = x2 || 0;\n this.y2 = y2 || 0;\n }\n\n equals(box) {\n return this.x1 === box.x1 && this.x2 === box.x2 &&\n this.y1 === box.y1 && this.y2 === box.y2;\n }\n\n width() {\n return this.x2 - this.x1;\n }\n\n height() {\n return this.y2 - this.y1;\n }\n\n translate(dx, dy) {\n this.x1 += dx;\n this.x2 += dx;\n this.y1 += dy;\n this.y2 += dy;\n\n return this;\n }\n\n move(x, y) {\n const height = this.height();\n const width = this.width();\n\n if (defined(x)) {\n this.x1 = x;\n this.x2 = this.x1 + width;\n }\n\n if (defined(y)) {\n this.y1 = y;\n this.y2 = this.y1 + height;\n }\n\n return this;\n }\n\n wrap(targetBox) {\n this.x1 = Math.min(this.x1, targetBox.x1);\n this.y1 = Math.min(this.y1, targetBox.y1);\n this.x2 = Math.max(this.x2, targetBox.x2);\n this.y2 = Math.max(this.y2, targetBox.y2);\n\n return this;\n }\n\n wrapPoint(point) {\n const arrayPoint = isArray(point);\n const x = arrayPoint ? point[0] : point.x;\n const y = arrayPoint ? point[1] : point.y;\n this.wrap(new Box(x, y, x, y));\n\n return this;\n }\n\n snapTo(targetBox, axis) {\n\n if (axis === X || !axis) {\n this.x1 = targetBox.x1;\n this.x2 = targetBox.x2;\n }\n\n if (axis === Y || !axis) {\n this.y1 = targetBox.y1;\n this.y2 = targetBox.y2;\n }\n\n return this;\n }\n\n alignTo(targetBox, anchor) {\n const height = this.height();\n const width = this.width();\n const axis = anchor === TOP || anchor === BOTTOM ? Y : X;\n const offset = axis === Y ? height : width;\n\n if (anchor === CENTER) {\n const targetCenter = targetBox.center();\n const center = this.center();\n\n this.x1 += targetCenter.x - center.x;\n this.y1 += targetCenter.y - center.y;\n } else if (anchor === TOP || anchor === LEFT) {\n this[axis + 1] = targetBox[axis + 1] - offset;\n } else {\n this[axis + 1] = targetBox[axis + 2];\n }\n\n this.x2 = this.x1 + width;\n this.y2 = this.y1 + height;\n\n return this;\n }\n\n shrink(dw, dh) {\n\n this.x2 -= dw;\n this.y2 -= dh;\n\n return this;\n }\n\n expand(dw, dh) {\n this.shrink(-dw, -dh);\n return this;\n }\n\n pad(padding) {\n const spacing = getSpacing(padding);\n\n this.x1 -= spacing.left;\n this.x2 += spacing.right;\n this.y1 -= spacing.top;\n this.y2 += spacing.bottom;\n\n return this;\n }\n\n unpad(padding) {\n const spacing = getSpacing(padding);\n\n spacing.left = -spacing.left;\n spacing.top = -spacing.top;\n spacing.right = -spacing.right;\n spacing.bottom = -spacing.bottom;\n\n return this.pad(spacing);\n }\n\n clone() {\n return new Box(this.x1, this.y1, this.x2, this.y2);\n }\n\n center() {\n return new Point(\n this.x1 + this.width() / 2,\n this.y1 + this.height() / 2\n );\n }\n\n containsPoint(point) {\n\n return point.x >= this.x1 && point.x <= this.x2 &&\n point.y >= this.y1 && point.y <= this.y2;\n }\n\n points() {\n return [\n new Point(this.x1, this.y1),\n new Point(this.x2, this.y1),\n new Point(this.x2, this.y2),\n new Point(this.x1, this.y2)\n ];\n }\n\n getHash() {\n return [ this.x1, this.y1, this.x2, this.y2 ].join(\",\");\n }\n\n overlaps(box) {\n return !(box.y2 < this.y1 || this.y2 < box.y1 || box.x2 < this.x1 || this.x2 < box.x1);\n }\n\n rotate(rotation) {\n let width = this.width();\n let height = this.height();\n const { x: cx, y: cy } = this.center();\n\n const r1 = rotatePoint(0, 0, cx, cy, rotation);\n const r2 = rotatePoint(width, 0, cx, cy, rotation);\n const r3 = rotatePoint(width, height, cx, cy, rotation);\n const r4 = rotatePoint(0, height, cx, cy, rotation);\n\n width = Math.max(r1.x, r2.x, r3.x, r4.x) - Math.min(r1.x, r2.x, r3.x, r4.x);\n height = Math.max(r1.y, r2.y, r3.y, r4.y) - Math.min(r1.y, r2.y, r3.y, r4.y);\n\n this.x2 = this.x1 + width;\n this.y2 = this.y1 + height;\n\n return this;\n }\n\n toRect() {\n return new geom.Rect([ this.x1, this.y1 ], [ this.width(), this.height() ]);\n }\n\n hasSize() {\n return this.width() !== 0 && this.height() !== 0;\n }\n\n align(targetBox, axis, alignment) {\n const c1 = axis + 1;\n const c2 = axis + 2;\n const sizeFunc = axis === X ? WIDTH : HEIGHT;\n const size = this[sizeFunc]();\n\n if (inArray(alignment, [ LEFT, TOP ])) {\n this[c1] = targetBox[c1];\n this[c2] = this[c1] + size;\n } else if (inArray(alignment, [ RIGHT, BOTTOM ])) {\n this[c2] = targetBox[c2];\n this[c1] = this[c2] - size;\n } else if (alignment === CENTER) {\n this[c1] = targetBox[c1] + (targetBox[sizeFunc]() - size) / 2;\n this[c2] = this[c1] + size;\n }\n }\n}\n\nfunction rotatePoint(x, y, cx, cy, angle) {\n const theta = rad(angle);\n\n return new Point(\n cx + (x - cx) * Math.cos(theta) + (y - cy) * Math.sin(theta),\n cy - (x - cx) * Math.sin(theta) + (y - cy) * Math.cos(theta)\n );\n}\n\nexport default Box;\n","import Box from './box';\nimport Point from './point';\nimport { COORD_PRECISION, MAX_VALUE, MIN_VALUE } from '../common/constants';\nimport { Class, clockwise, rad, round } from '../common';\n\nclass Ring extends Class {\n\n constructor(center, innerRadius, radius, startAngle, angle) {\n super();\n\n this.center = center;\n this.innerRadius = innerRadius;\n this.radius = radius;\n this.startAngle = startAngle;\n this.angle = angle;\n }\n\n clone() {\n return new Ring(this.center, this.innerRadius, this.radius, this.startAngle, this.angle);\n }\n\n middle() {\n return this.startAngle + this.angle / 2;\n }\n\n setRadius(newRadius, innerRadius) {\n if (innerRadius) {\n this.innerRadius = newRadius;\n } else {\n this.radius = newRadius;\n }\n\n return this;\n }\n\n // TODO: Remove and replace with Point.onCircle\n point(angle, innerRadius) {\n const radianAngle = rad(angle);\n const ax = Math.cos(radianAngle);\n const ay = Math.sin(radianAngle);\n const radius = innerRadius ? this.innerRadius : this.radius;\n const x = round(this.center.x - (ax * radius), COORD_PRECISION);\n const y = round(this.center.y - (ay * radius), COORD_PRECISION);\n\n return new Point(x, y);\n }\n\n adjacentBox(distance, width, height) {\n const sector = this.clone().expand(distance);\n const midAndle = sector.middle();\n const midPoint = sector.point(midAndle);\n const hw = width / 2;\n const hh = height / 2;\n const sa = Math.sin(rad(midAndle));\n const ca = Math.cos(rad(midAndle));\n let x = midPoint.x - hw;\n let y = midPoint.y - hh;\n\n if (Math.abs(sa) < 0.9) {\n x += hw * -ca / Math.abs(ca);\n }\n\n if (Math.abs(ca) < 0.9) {\n y += hh * -sa / Math.abs(sa);\n }\n\n return new Box(x, y, x + width, y + height);\n }\n\n containsPoint(p) {\n const center = this.center;\n const innerRadius = this.innerRadius;\n const radius = this.radius;\n const startAngle = this.startAngle;\n const endAngle = this.startAngle + this.angle;\n const dx = p.x - center.x;\n const dy = p.y - center.y;\n const vector = new Point(dx, dy);\n const startPoint = this.point(startAngle);\n const startVector = new Point(startPoint.x - center.x, startPoint.y - center.y);\n const endPoint = this.point(endAngle);\n const endVector = new Point(endPoint.x - center.x, endPoint.y - center.y);\n const dist = round(dx * dx + dy * dy, COORD_PRECISION);\n\n return (startVector.equals(vector) || clockwise(startVector, vector)) &&\n !clockwise(endVector, vector) &&\n dist >= innerRadius * innerRadius && dist <= radius * radius;\n }\n\n getBBox() {\n const box = new Box(MAX_VALUE, MAX_VALUE, MIN_VALUE, MIN_VALUE);\n const startAngle = round(this.startAngle % 360);\n const endAngle = round((startAngle + this.angle) % 360);\n const innerRadius = this.innerRadius;\n const allAngles = [ 0, 90, 180, 270, startAngle, endAngle ].sort(numericComparer);\n const startAngleIndex = allAngles.indexOf(startAngle);\n const endAngleIndex = allAngles.indexOf(endAngle);\n let angles;\n\n if (startAngle === endAngle) {\n angles = allAngles;\n } else {\n if (startAngleIndex < endAngleIndex) {\n angles = allAngles.slice(startAngleIndex, endAngleIndex + 1);\n } else {\n angles = [].concat(\n allAngles.slice(0, endAngleIndex + 1),\n allAngles.slice(startAngleIndex, allAngles.length)\n );\n }\n }\n\n for (let i = 0; i < angles.length; i++) {\n let point = this.point(angles[i]);\n box.wrapPoint(point);\n box.wrapPoint(point, innerRadius);\n }\n\n if (!innerRadius) {\n box.wrapPoint(this.center);\n }\n\n return box;\n }\n\n expand(value) {\n this.radius += value;\n return this;\n }\n}\n\nfunction numericComparer(a, b) {\n return a - b;\n}\n\nexport default Ring;","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\nimport { Class } from '../common';\n\nconst DIRECTION_ANGLE = 0.001; //any value that will make the endAngle bigger than the start angle will work here.\n\nclass ShapeBuilder extends Class {\n createRing(sector, options) {\n const startAngle = sector.startAngle + 180;\n let endAngle = sector.angle + startAngle;\n\n //required in order to avoid reversing the arc direction in cases like 0.000000000000001 + 100 === 100\n if (sector.angle === 0 || sector.angle > 0 && startAngle === endAngle) {\n endAngle += DIRECTION_ANGLE;\n }\n\n const center = new geom.Point(sector.center.x, sector.center.y);\n const radius = Math.max(sector.radius, 0);\n const innerRadius = Math.max(sector.innerRadius, 0);\n const arc = new geom.Arc(center, {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: radius,\n radiusY: radius\n });\n const path = draw.Path.fromArc(arc, options).close();\n\n if (innerRadius) {\n arc.radiusX = arc.radiusY = innerRadius;\n const innerEnd = arc.pointAt(endAngle);\n path.lineTo(innerEnd.x, innerEnd.y);\n path.arc(endAngle, startAngle, innerRadius, innerRadius, true);\n } else {\n path.lineTo(center.x, center.y);\n }\n\n return path;\n }\n}\n\nShapeBuilder.current = new ShapeBuilder();\n\nexport default ShapeBuilder;","export function swing(position) {\n return 0.5 - Math.cos(position * Math.PI) / 2;\n}\n\nexport function linear(position) {\n return position;\n}\n\nexport function easeOutElastic(position, time, start, diff) {\n let s = 1.70158,\n p = 0,\n a = diff;\n\n if (position === 0) {\n return start;\n }\n\n if (position === 1) {\n return start + diff;\n }\n\n if (!p) {\n p = 0.5;\n }\n\n if (a < Math.abs(diff)) {\n a = diff;\n s = p / 4;\n } else {\n s = p / (2 * Math.PI) * Math.asin(diff / a);\n }\n\n return a * Math.pow(2, -10 * position) *\n Math.sin((Number(position) - s) * (1.1 * Math.PI) / p) + diff + start;\n}\n","import { Class } from '../common';\n\nlet instance;\n\nclass AnimationFactory extends Class {\n static get current() {\n if (!instance) {\n instance = new AnimationFactory();\n }\n\n return instance;\n }\n\n constructor() {\n super();\n\n this._items = [];\n }\n\n register(name, type) {\n this._items.push({\n name: name,\n type: type\n });\n }\n\n create(element, options) {\n const items = this._items;\n let match;\n\n if (options && options.type) {\n const type = options.type.toLowerCase();\n for (let i = 0; i < items.length; i++) {\n if (items[i].name.toLowerCase() === type) {\n match = items[i];\n break;\n }\n }\n }\n\n if (match) {\n return new match.type(element, options);\n }\n }\n}\n\nexport default AnimationFactory;\n","import * as easingFunctions from './easing-functions';\nimport { limitValue, now } from '../util';\nimport { animationFrame, Class } from '../common';\nimport AnimationFactory from './animation-factory';\n\nclass Animation extends Class {\n static create(type, element, options) {\n return AnimationFactory.current.create(type, element, options);\n }\n\n get options() {\n return this._options || {\n duration: 500,\n easing: \"swing\"\n };\n }\n\n set options(value) {\n this._options = value;\n }\n\n constructor(element, options) {\n super();\n\n this.options = Object.assign({}, this.options, options);\n this.element = element;\n }\n\n setup() {}\n step() {}\n\n play() {\n const options = this.options;\n const { duration, delay = 0 } = options;\n const easing = easingFunctions[options.easing];\n const start = now() + delay;\n const finish = start + duration;\n\n if (duration === 0) {\n this.step(1);\n this.abort();\n } else {\n setTimeout(() => {\n const loop = () => {\n if (this._stopped) {\n return;\n }\n\n const wallTime = now();\n\n const time = limitValue(wallTime - start, 0, duration);\n const position = time / duration;\n const easingPosition = easing(position, time, 0, 1, duration);\n\n this.step(easingPosition);\n\n if (wallTime < finish) {\n animationFrame(loop);\n } else {\n this.abort();\n }\n };\n\n loop();\n }, delay);\n }\n }\n\n abort() {\n this._stopped = true;\n }\n\n destroy() {\n this.abort();\n }\n}\n\nexport default Animation;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { WHITE } from '../common/constants';\nimport { Class, deepExtend, defined, valueOrDefault, autoTextColor } from '../common';\n\nclass ChartElement extends Class {\n constructor(options) {\n super();\n\n this.children = [];\n\n this.options = deepExtend({}, this.options, this.initUserOptions(options));\n }\n\n initUserOptions(options) {\n return options;\n }\n\n reflow(targetBox) {\n const children = this.children;\n let box;\n\n for (let i = 0; i < children.length; i++) {\n let currentChild = children[i];\n currentChild.reflow(targetBox);\n\n box = box ? box.wrap(currentChild.box) : currentChild.box.clone();\n }\n\n this.box = box || targetBox;\n }\n\n destroy() {\n const children = this.children;\n\n if (this.animation) {\n this.animation.destroy();\n }\n\n for (let i = 0; i < children.length; i++) {\n children[i].destroy();\n }\n }\n\n getRoot() {\n const parent = this.parent;\n\n return parent ? parent.getRoot() : null;\n }\n\n getSender() {\n const service = this.getService();\n if (service) {\n return service.sender;\n }\n }\n\n getService() {\n let element = this;\n while (element) {\n if (element.chartService) {\n return element.chartService;\n }\n element = element.parent;\n }\n }\n\n translateChildren(dx, dy) {\n const children = this.children;\n const childrenCount = children.length;\n\n for (let i = 0; i < childrenCount; i++) {\n children[i].box.translate(dx, dy);\n }\n }\n\n append() {\n for (let i = 0; i < arguments.length; i++) {\n let item = arguments[i];\n this.children.push(item);\n item.parent = this;\n }\n }\n\n renderVisual() {\n if (this.options.visible === false) {\n return;\n }\n\n this.createVisual();\n\n this.addVisual();\n\n this.renderChildren();\n\n this.createAnimation();\n this.renderComplete();\n }\n\n addVisual() {\n if (this.visual) {\n this.visual.chartElement = this;\n\n if (this.parent) {\n this.parent.appendVisual(this.visual);\n }\n }\n }\n\n renderChildren() {\n const children = this.children;\n const length = children.length;\n for (let i = 0; i < length; i++) {\n children[i].renderVisual();\n }\n }\n\n createVisual() {\n this.visual = new draw.Group({\n zIndex: this.options.zIndex,\n visible: valueOrDefault(this.options.visible, true)\n });\n }\n\n createAnimation() {\n if (this.visual && this.options.animation) {\n this.animation = draw.Animation.create(\n this.visual, this.options.animation\n );\n }\n }\n\n appendVisual(childVisual) {\n if (!childVisual.chartElement) {\n childVisual.chartElement = this;\n }\n\n if (childVisual.options.noclip) {\n this.clipRoot().visual.append(childVisual);\n } else if (defined(childVisual.options.zIndex)) {\n this.stackRoot().stackVisual(childVisual);\n } else if (this.isStackRoot) {\n this.stackVisual(childVisual);\n } else if (this.visual) {\n this.visual.append(childVisual);\n } else {\n // Allow chart elements without visuals to\n // pass through child visuals\n this.parent.appendVisual(childVisual);\n }\n }\n\n clipRoot() {\n if (this.parent) {\n return this.parent.clipRoot();\n }\n\n return this;\n }\n\n stackRoot() {\n if (this.parent) {\n return this.parent.stackRoot();\n }\n\n return this;\n }\n\n stackVisual(childVisual) {\n const zIndex = childVisual.options.zIndex || 0;\n const visuals = this.visual.children;\n const length = visuals.length;\n let pos;\n\n for (pos = 0; pos < length; pos++) {\n let sibling = visuals[pos];\n let here = valueOrDefault(sibling.options.zIndex, 0);\n if (here > zIndex) {\n break;\n }\n }\n\n this.visual.insert(pos, childVisual);\n }\n\n traverse(callback) {\n const children = this.children;\n const length = children.length;\n\n for (let i = 0; i < length; i++) {\n let child = children[i];\n\n callback(child);\n if (child.traverse) {\n child.traverse(callback);\n }\n }\n }\n\n closest(match) {\n let element = this;\n let matched = false;\n\n while (element && !matched) {\n matched = match(element);\n\n if (!matched) {\n element = element.parent;\n }\n }\n\n if (matched) {\n return element;\n }\n }\n\n renderComplete() {}\n\n hasHighlight() {\n const options = (this.options || {}).highlight;\n return !(!this.createHighlight || (options && options.visible === false) || this.visible === false);\n }\n\n toggleHighlight(show, opacity) {\n const options = (this.options || {}).highlight || {};\n const customVisual = options.visual;\n let highlight = this._highlight;\n\n if (!highlight) {\n const highlightOptions = {\n fill: {\n color: WHITE,\n opacity: opacity || 0.2\n },\n stroke: {\n color: WHITE,\n width: 1,\n opacity: opacity || 0.2\n }\n };\n\n if (customVisual) {\n highlight = this._highlight = customVisual(\n Object.assign(this.highlightVisualArgs(), {\n createVisual: () => this.createHighlight(highlightOptions),\n sender: this.getSender(),\n series: this.series,\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n percentage: this.percentage,\n runningTotal: this.runningTotal,\n total: this.total\n })\n );\n\n if (!highlight) {\n return;\n }\n } else {\n highlight = this._highlight = this.createHighlight(highlightOptions);\n }\n\n if (!defined(highlight.options.zIndex)) {\n highlight.options.zIndex = valueOrDefault(options.zIndex, this.options.zIndex);\n }\n\n this.appendVisual(highlight);\n }\n\n highlight.visible(show);\n }\n\n toggleFocusHighlight(show) {\n const options = ((this.options || {}).accessibility || {}).highlight || {};\n let focusHighlight = this._focusHighlight;\n\n if (!show && !focusHighlight) {\n return;\n }\n\n if (!focusHighlight) {\n const rootBackground = this.getRoot().options.background;\n const highlightColor = autoTextColor(rootBackground);\n const focusHighlightOptions = {\n fill: {\n opacity: options.opacity,\n color: options.color\n },\n stroke: Object.assign({}, {color: highlightColor}, options.border),\n zIndex: options.zIndex\n };\n\n focusHighlight = this._focusHighlight = this.createFocusHighlight(focusHighlightOptions);\n\n this.appendVisual(focusHighlight);\n }\n\n focusHighlight.visible(show);\n }\n\n createGradientOverlay(element, options, gradientOptions) {\n const overlay = new draw.Path(Object.assign({\n stroke: {\n color: \"none\"\n },\n fill: this.createGradient(gradientOptions),\n closed: element.options.closed\n }, options));\n\n overlay.segments.elements(element.segments.elements());\n\n return overlay;\n }\n\n createGradient(options) {\n if (this.parent) {\n return this.parent.createGradient(options);\n }\n }\n\n supportsPointInactiveOpacity() {\n return true;\n }\n}\n\nChartElement.prototype.options = { };\n\nexport default ChartElement;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport Box from './box';\n\nimport { BLACK, LEFT, TOP, X, Y } from '../common/constants';\nimport { getSpacing, setDefaultOptions, valueOrDefault } from '../common';\n\nclass BoxElement extends ChartElement {\n constructor(options) {\n super(options);\n\n this.options.margin = getSpacing(this.options.margin);\n this.options.padding = getSpacing(this.options.padding);\n }\n\n reflow(targetBox) {\n const options = this.options;\n const { width, height, shrinkToFit } = options;\n const hasSetSize = width && height;\n const margin = options.margin;\n const padding = options.padding;\n const borderWidth = options.border.width;\n let box;\n\n const reflowPaddingBox = () => {\n this.align(targetBox, X, options.align);\n this.align(targetBox, Y, options.vAlign);\n this.paddingBox = box.clone().unpad(margin).unpad(borderWidth);\n };\n\n let contentBox = targetBox.clone();\n if (hasSetSize) {\n contentBox.x2 = contentBox.x1 + width;\n contentBox.y2 = contentBox.y1 + height;\n }\n\n if (shrinkToFit) {\n contentBox.unpad(margin).unpad(borderWidth).unpad(padding);\n }\n\n super.reflow(contentBox);\n\n if (hasSetSize) {\n box = this.box = new Box(0, 0, width, height);\n } else {\n box = this.box;\n }\n\n if (shrinkToFit && hasSetSize) {\n reflowPaddingBox();\n contentBox = this.contentBox = this.paddingBox.clone().unpad(padding);\n } else {\n contentBox = this.contentBox = box.clone();\n box.pad(padding).pad(borderWidth).pad(margin);\n reflowPaddingBox();\n }\n\n this.translateChildren(\n box.x1 - contentBox.x1 + margin.left + borderWidth + padding.left,\n box.y1 - contentBox.y1 + margin.top + borderWidth + padding.top\n );\n\n const children = this.children;\n for (let i = 0; i < children.length; i++) {\n let item = children[i];\n item.reflow(item.box);\n }\n }\n\n align(targetBox, axis, alignment) {\n this.box.align(targetBox, axis, alignment);\n }\n\n hasBox() {\n const options = this.options;\n return options.border.width || options.background;\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options;\n if (options.visible && this.hasBox()) {\n this.visual.append(draw.Path.fromRect(\n this.paddingBox.toRect(),\n this.visualStyle()\n ));\n }\n }\n\n visualStyle() {\n const options = this.options;\n const border = options.border || {};\n\n return {\n stroke: {\n width: border.width,\n color: border.color,\n opacity: valueOrDefault(border.opacity, options.opacity),\n dashType: border.dashType\n },\n fill: {\n color: options.background,\n opacity: options.opacity\n },\n cursor: options.cursor\n };\n }\n}\n\nsetDefaultOptions(BoxElement, {\n align: LEFT,\n vAlign: TOP,\n margin: {},\n padding: {},\n border: {\n color: BLACK,\n width: 0\n },\n background: \"\",\n shrinkToFit: false,\n width: 0,\n height: 0,\n visible: true\n});\n\nexport default BoxElement;","export default function addAccessibilityAttributesToVisual(visual, accessibilityOptions) {\n if (accessibilityOptions) {\n visual.options.className = accessibilityOptions.className;\n visual.options.role = accessibilityOptions.role;\n visual.options.ariaLabel = accessibilityOptions.ariaLabel;\n visual.options.ariaRoleDescription = accessibilityOptions.ariaRoleDescription;\n visual.options.ariaChecked = accessibilityOptions.ariaChecked;\n }\n}\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\nimport { round, setDefaultOptions } from '../common';\nimport { CENTER, CIRCLE, COORD_PRECISION, CROSS, ROUNDED_RECT, TRIANGLE } from '../common/constants';\nimport { valueOrDefault } from '../drawing-utils';\nimport BoxElement from './box-element';\nimport addAccessibilityAttributesToVisual from './utils/add-accessibility-attributes-to-visual';\n\nclass ShapeElement extends BoxElement {\n\n constructor(options, pointData) {\n super(options);\n\n this.pointData = pointData;\n }\n\n getElement() {\n const { options, paddingBox: box } = this;\n const { type, rotation } = options;\n const center = box.center();\n const halfWidth = box.width() / 2;\n const halfHeight = box.height() / 2;\n\n if (!options.visible || !this.hasBox()) {\n return null;\n }\n\n const style = this.visualStyle();\n let element;\n\n if (type === CIRCLE) {\n element = new draw.Circle(\n new geom.Circle([\n round(box.x1 + halfWidth, COORD_PRECISION),\n round(box.y1 + halfHeight, COORD_PRECISION)\n ], Math.min(halfWidth, halfHeight)),\n style\n );\n } else if (type === TRIANGLE) {\n element = draw.Path.fromPoints([\n [ box.x1 + halfWidth, box.y1 ],\n [ box.x1, box.y2 ],\n [ box.x2, box.y2 ]\n ], style).close();\n } else if (type === CROSS) {\n element = new draw.MultiPath(style);\n\n element.moveTo(box.x1, box.y1).lineTo(box.x2, box.y2);\n element.moveTo(box.x1, box.y2).lineTo(box.x2, box.y1);\n } else {\n const rect = box.toRect();\n if (type === ROUNDED_RECT) {\n const borderRadius = valueOrDefault(options.borderRadius, rect.width() / 5);\n rect.setCornerRadius(borderRadius);\n }\n\n element = draw.Path.fromRect(rect, style);\n }\n\n if (rotation) {\n element.transform(geom.transform()\n .rotate(-rotation, [ center.x, center.y ])\n );\n }\n\n element.options.zIndex = options.zIndex;\n\n return element;\n }\n\n createElement() {\n const customVisual = this.options.visual;\n const pointData = this.pointData || {};\n let visual;\n\n if (customVisual) {\n visual = customVisual({\n value: pointData.value,\n dataItem: pointData.dataItem,\n sender: this.getSender(),\n series: pointData.series,\n category: pointData.category,\n rect: this.paddingBox.toRect(),\n options: this.visualOptions(),\n createVisual: () => this.getElement()\n });\n } else {\n visual = this.getElement();\n }\n\n return visual;\n }\n\n visualOptions() {\n const options = this.options;\n return {\n background: options.background,\n border: options.border,\n margin: options.margin,\n padding: options.padding,\n type: options.type,\n size: options.width,\n visible: options.visible\n };\n }\n\n createVisual() {\n this.visual = this.createElement();\n\n addAccessibilityAttributesToVisual(this.visual, this.options.accessibilityOptions);\n }\n}\n\nsetDefaultOptions(ShapeElement, {\n type: CIRCLE,\n align: CENTER,\n vAlign: CENTER\n});\n\nexport default ShapeElement;\n","import { WHITE } from '../common/constants';\n\nconst LINEAR = \"linear\";\nconst RADIAL = \"radial\";\n\nconst GRADIENTS = {\n glass: {\n type: LINEAR,\n rotation: 0,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0\n }, {\n offset: 0.25,\n color: WHITE,\n opacity: 0.3\n }, {\n offset: 1,\n color: WHITE,\n opacity: 0\n } ]\n },\n sharpBevel: {\n type: RADIAL,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0.55\n }, {\n offset: 0.65,\n color: WHITE,\n opacity: 0\n }, {\n offset: 0.95,\n color: WHITE,\n opacity: 0.25\n } ]\n },\n roundedBevel: {\n type: RADIAL,\n stops: [ {\n offset: 0.33,\n color: WHITE,\n opacity: 0.06\n }, {\n offset: 0.83,\n color: WHITE,\n opacity: 0.2\n }, {\n offset: 0.95,\n color: WHITE,\n opacity: 0\n } ]\n },\n roundedGlass: {\n type: RADIAL,\n supportVML: false,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0\n }, {\n offset: 0.5,\n color: WHITE,\n opacity: 0.3\n }, {\n offset: 0.99,\n color: WHITE,\n opacity: 0\n } ]\n },\n sharpGlass: {\n type: RADIAL,\n supportVML: false,\n stops: [ {\n offset: 0,\n color: WHITE,\n opacity: 0.2\n }, {\n offset: 0.15,\n color: WHITE,\n opacity: 0.15\n }, {\n offset: 0.17,\n color: WHITE,\n opacity: 0.35\n }, {\n offset: 0.85,\n color: WHITE,\n opacity: 0.05\n }, {\n offset: 0.87,\n color: WHITE,\n opacity: 0.15\n }, {\n offset: 0.99,\n color: WHITE,\n opacity: 0\n } ]\n },\n bubbleShadow: {\n type: RADIAL,\n center: [ 0.5, 0.5 ],\n radius: 0.5\n }\n};\n\nexport default GRADIENTS;","import Box from '../box';\nimport { grep } from '../../common';\n\nexport default function boxDiff(r, s) {\n if (r.x1 === s.x1 && r.y1 === s.y1 && r.x2 === s.x2 && r.y2 === s.y2) {\n return s;\n }\n\n const a = Math.min(r.x1, s.x1);\n const b = Math.max(r.x1, s.x1);\n const c = Math.min(r.x2, s.x2);\n const d = Math.max(r.x2, s.x2);\n const e = Math.min(r.y1, s.y1);\n const f = Math.max(r.y1, s.y1);\n const g = Math.min(r.y2, s.y2);\n const h = Math.max(r.y2, s.y2);\n const boxes = [];\n\n // X = intersection, 0-7 = possible difference areas\n // h +-+-+-+\n // . |5|6|7|\n // g +-+-+-+\n // . |3|X|4|\n // f +-+-+-+\n // . |0|1|2|\n // e +-+-+-+\n // . a b c d\n\n // we'll always have rectangles 1, 3, 4 and 6\n boxes[0] = new Box(b, e, c, f);\n boxes[1] = new Box(a, f, b, g);\n boxes[2] = new Box(c, f, d, g);\n boxes[3] = new Box(b, g, c, h);\n\n // decide which corners\n if (r.x1 === a && r.y1 === e || s.x1 === a && s.y1 === e) { // corners 0 and 7\n boxes[4] = new Box(a, e, b, f);\n boxes[5] = new Box(c, g, d, h);\n } else { // corners 2 and 5\n boxes[4] = new Box(c, e, d, f);\n boxes[5] = new Box(a, g, b, h);\n }\n\n return grep(boxes, function(box) {\n return box.height() > 0 && box.width() > 0;\n })[0];\n}","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport GRADIENTS from './gradients';\nimport Box from './box';\n\nimport boxDiff from './utils/box-diff';\n\nimport { DEFAULT_WIDTH, DEFAULT_HEIGHT, WHITE, BLACK } from '../common/constants';\nimport { getSpacing, objectKey, setDefaultOptions } from '../common';\n\nclass RootElement extends ChartElement {\n constructor(options) {\n super(options);\n\n const rootOptions = this.options;\n rootOptions.width = parseInt(rootOptions.width, 10);\n rootOptions.height = parseInt(rootOptions.height, 10);\n\n this.gradients = {};\n }\n\n reflow() {\n const { options, children } = this;\n let currentBox = new Box(0, 0, options.width, options.height);\n\n this.box = currentBox.unpad(options.margin);\n\n for (let i = 0; i < children.length; i++) {\n children[i].reflow(currentBox);\n currentBox = boxDiff(currentBox, children[i].box) || new Box();\n }\n }\n\n createVisual() {\n this.visual = new draw.Group();\n this.createBackground();\n }\n\n createBackground() {\n const options = this.options;\n const border = options.border || {};\n const box = this.box.clone().pad(options.margin).unpad(border.width);\n\n const background = draw.Path.fromRect(box.toRect(), {\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType\n },\n fill: {\n color: options.background,\n opacity: options.opacity\n },\n zIndex: -10\n });\n\n this.visual.append(background);\n }\n\n getRoot() {\n return this;\n }\n\n createGradient(options) {\n const gradients = this.gradients;\n const hashCode = objectKey(options);\n const gradient = GRADIENTS[options.gradient];\n let drawingGradient;\n\n if (gradients[hashCode]) {\n drawingGradient = gradients[hashCode];\n } else {\n const gradientOptions = Object.assign({}, gradient, options);\n if (gradient.type === \"linear\") {\n drawingGradient = new draw.LinearGradient(gradientOptions);\n } else {\n if (options.innerRadius) {\n gradientOptions.stops = innerRadialStops(gradientOptions);\n }\n drawingGradient = new draw.RadialGradient(gradientOptions);\n drawingGradient.supportVML = gradient.supportVML !== false;\n }\n gradients[hashCode] = drawingGradient;\n }\n\n return drawingGradient;\n }\n\n cleanGradients() {\n const gradients = this.gradients;\n for (let hashCode in gradients) {\n gradients[hashCode]._observers = [];//add clear observers method in drawing ObserversMixin\n }\n }\n\n size() {\n const options = this.options;\n return new Box(0, 0, options.width, options.height);\n }\n}\n\nsetDefaultOptions(RootElement, {\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT,\n background: WHITE,\n border: {\n color: BLACK,\n width: 0\n },\n margin: getSpacing(5),\n zIndex: -2\n});\n\nfunction innerRadialStops(options) {\n const stops = options.stops;\n const usedSpace = ((options.innerRadius / options.radius) * 100);\n const length = stops.length;\n const currentStops = [];\n\n for (let i = 0; i < length; i++) {\n let currentStop = Object.assign({}, stops[i]);\n currentStop.offset = (currentStop.offset * (100 - usedSpace) + usedSpace) / 100;\n currentStops.push(currentStop);\n }\n\n return currentStops;\n}\n\nexport default RootElement;","import ChartElement from './chart-element';\nimport Box from './box';\n\nimport { X, Y, WIDTH, HEIGHT, RIGHT, BOTTOM, CENTER } from '../common/constants';\nimport { round, setDefaultOptions } from '../common';\n\nclass FloatElement extends ChartElement {\n constructor(options) {\n super(options);\n this._initDirection();\n }\n\n _initDirection() {\n const options = this.options;\n if (options.vertical) {\n this.groupAxis = X;\n this.elementAxis = Y;\n this.groupSizeField = WIDTH;\n this.elementSizeField = HEIGHT;\n this.groupSpacing = options.spacing;\n this.elementSpacing = options.vSpacing;\n } else {\n this.groupAxis = Y;\n this.elementAxis = X;\n this.groupSizeField = HEIGHT;\n this.elementSizeField = WIDTH;\n this.groupSpacing = options.vSpacing;\n this.elementSpacing = options.spacing;\n }\n }\n\n reflow(targetBox) {\n this.box = targetBox.clone();\n this.reflowChildren();\n }\n\n reflowChildren() {\n const { box, elementAxis, groupAxis, elementSizeField, groupSizeField } = this;\n const { groups, groupsSize, maxGroupElementsSize } = this.groupOptions();\n const groupsCount = groups.length;\n const groupsStart = box[groupAxis + 1] + this.alignStart(groupsSize, box[groupSizeField]());\n\n if (groupsCount) {\n let groupStart = groupsStart;\n\n for (let groupIdx = 0; groupIdx < groupsCount; groupIdx++) {\n let group = groups[groupIdx];\n let groupElements = group.groupElements;\n let elementStart = box[elementAxis + 1];\n let groupElementsCount = groupElements.length;\n\n for (let idx = 0; idx < groupElementsCount; idx++) {\n let element = groupElements[idx];\n let elementSize = this.elementSize(element);\n let groupElementStart = groupStart + this.alignStart(elementSize[groupSizeField], group.groupSize);\n\n let elementBox = new Box();\n elementBox[groupAxis + 1] = groupElementStart;\n elementBox[groupAxis + 2] = groupElementStart + elementSize[groupSizeField];\n elementBox[elementAxis + 1] = elementStart;\n elementBox[elementAxis + 2] = elementStart + elementSize[elementSizeField];\n\n element.reflow(elementBox);\n\n elementStart += elementSize[elementSizeField] + this.elementSpacing;\n }\n groupStart += group.groupSize + this.groupSpacing;\n }\n box[groupAxis + 1] = groupsStart;\n box[groupAxis + 2] = groupsStart + groupsSize;\n box[elementAxis + 2] = box[elementAxis + 1] + maxGroupElementsSize;\n }\n }\n\n alignStart(size, maxSize) {\n let start = 0;\n const align = this.options.align;\n if (align === RIGHT || align === BOTTOM) {\n start = maxSize - size;\n } else if (align === CENTER) {\n start = (maxSize - size) / 2;\n }\n return start;\n }\n\n groupOptions() {\n const { box, children, elementSizeField, groupSizeField, elementSpacing, groupSpacing } = this;\n const maxSize = round(box[elementSizeField]());\n const childrenCount = children.length;\n const groups = [];\n\n let groupSize = 0;\n let groupElementsSize = 0;\n let groupsSize = 0;\n let maxGroupElementsSize = 0;\n let groupElements = [];\n\n for (let idx = 0; idx < childrenCount; idx++) {\n let element = children[idx];\n if (!element.box) {\n element.reflow(box);\n }\n\n let elementSize = this.elementSize(element);\n if (this.options.wrap && round(groupElementsSize + elementSpacing + elementSize[elementSizeField]) > maxSize) {\n groups.push({\n groupElements: groupElements,\n groupSize: groupSize,\n groupElementsSize: groupElementsSize\n });\n maxGroupElementsSize = Math.max(maxGroupElementsSize, groupElementsSize);\n groupsSize += groupSpacing + groupSize;\n groupSize = 0;\n groupElementsSize = 0;\n groupElements = [];\n }\n groupSize = Math.max(groupSize, elementSize[groupSizeField]);\n if (groupElementsSize > 0) {\n groupElementsSize += elementSpacing;\n }\n groupElementsSize += elementSize[elementSizeField];\n groupElements.push(element);\n }\n\n groups.push({\n groupElements: groupElements,\n groupSize: groupSize,\n groupElementsSize: groupElementsSize\n });\n maxGroupElementsSize = Math.max(maxGroupElementsSize, groupElementsSize);\n groupsSize += groupSize;\n\n return {\n groups: groups,\n groupsSize: groupsSize,\n maxGroupElementsSize: maxGroupElementsSize\n };\n }\n\n elementSize(element) {\n return {\n width: element.box.width(),\n height: element.box.height()\n };\n }\n\n createVisual() {}\n}\n\nsetDefaultOptions(FloatElement, {\n vertical: true,\n wrap: true,\n vSpacing: 0,\n spacing: 0\n});\n\nexport default FloatElement;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport Box from './box';\n\nimport { DEFAULT_FONT, BLACK } from '../common/constants';\nimport { setDefaultOptions } from '../common';\n\nconst DrawingText = draw.Text;\n\nclass Text extends ChartElement {\n\n constructor(content, options) {\n super(options);\n\n this.content = content;\n\n // Calculate size\n this.reflow(new Box());\n }\n\n reflow(targetBox) {\n const options = this.options;\n const size = options.size = draw.util.measureText(this.content, { font: options.font });\n\n this.baseline = size.baseline;\n\n this.box = new Box(targetBox.x1, targetBox.y1,\n targetBox.x1 + size.width, targetBox.y1 + size.height);\n }\n\n createVisual() {\n const { font, color, opacity, cursor, stroke, paintOrder } = this.options;\n\n this.visual = new DrawingText(this.content, this.box.toRect().topLeft(), {\n font: font,\n fill: { color: color, opacity: opacity },\n cursor: cursor,\n stroke: stroke,\n paintOrder: paintOrder\n });\n }\n}\n\nsetDefaultOptions(Text, {\n font: DEFAULT_FONT,\n color: BLACK\n});\n\nexport default Text;\n","import Box from '../box';\n\nexport default function rectToBox(rect) {\n const origin = rect.origin;\n const bottomRight = rect.bottomRight();\n\n return new Box(origin.x, origin.y, bottomRight.x, bottomRight.y);\n}","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport BoxElement from './box-element';\nimport FloatElement from './float-element';\nimport Text from './text';\nimport Box from './box';\n\nimport rectToBox from './utils/rect-to-box';\n\nimport { getSpacing, deepExtend, defined } from '../common';\nimport { X, Y } from '../common/constants';\n\nconst ROWS_SPLIT_REGEX = /\\n/m;\n\nclass TextBox extends BoxElement {\n\n constructor(content, options, data) {\n super(options);\n this.content = content;\n this.data = data;\n\n this._initContainer();\n if (this.options._autoReflow !== false) {\n this.reflow(new Box());\n }\n }\n\n _initContainer() {\n const options = this.options;\n const rows = String(this.content).split(ROWS_SPLIT_REGEX);\n const floatElement = new FloatElement({ vertical: true, align: options.align, wrap: false });\n const textOptions = deepExtend({ }, options, { opacity: 1, animation: null });\n\n this.container = floatElement;\n this.append(floatElement);\n\n for (let rowIdx = 0; rowIdx < rows.length; rowIdx++) {\n let text = new Text(rows[rowIdx].trim(), textOptions);\n floatElement.append(text);\n }\n }\n\n reflow(targetBox) {\n const options = this.options;\n const visualFn = options.visual;\n this.container.options.align = options.align;\n\n if (visualFn && !this._boxReflow) {\n let visualBox = targetBox;\n if (!visualBox.hasSize()) {\n this._boxReflow = true;\n this.reflow(visualBox);\n this._boxReflow = false;\n visualBox = this.box;\n }\n const visual = this.visual = visualFn(this.visualContext(visualBox));\n\n if (visual) {\n visualBox = rectToBox(visual.clippedBBox() || new geom.Rect());\n\n visual.options.zIndex = options.zIndex;\n }\n\n this.box = this.contentBox = this.paddingBox = visualBox;\n } else {\n super.reflow(targetBox);\n\n if (options.rotation) {\n const margin = getSpacing(options.margin);\n let box = this.box.unpad(margin);\n\n this.targetBox = targetBox;\n this.normalBox = box.clone();\n\n box = this.rotate();\n box.translate(margin.left - margin.right, margin.top - margin.bottom);\n\n this.rotatedBox = box.clone();\n\n box.pad(margin);\n }\n }\n }\n\n createVisual() {\n const options = this.options;\n\n this.visual = new draw.Group({\n transform: this.rotationTransform(),\n zIndex: options.zIndex,\n noclip: options.noclip\n });\n\n if (this.hasBox()) {\n const box = draw.Path.fromRect(this.paddingBox.toRect(), this.visualStyle());\n this.visual.append(box);\n }\n }\n\n renderVisual() {\n if (!this.options.visible) {\n return;\n }\n\n if (this.options.visual) {\n const visual = this.visual;\n if (visual && !defined(visual.options.noclip)) {\n visual.options.noclip = this.options.noclip;\n }\n this.addVisual();\n this.createAnimation();\n } else {\n super.renderVisual();\n }\n }\n\n visualContext(targetBox) {\n const context = {\n text: this.content,\n rect: targetBox.toRect(),\n sender: this.getSender(),\n options: this.options,\n createVisual: () => {\n this._boxReflow = true;\n this.reflow(targetBox);\n this._boxReflow = false;\n return this.getDefaultVisual();\n }\n };\n if (this.data) {\n Object.assign(context, this.data);\n }\n\n return context;\n }\n\n getDefaultVisual() {\n this.createVisual();\n this.renderChildren();\n const visual = this.visual;\n delete this.visual;\n return visual;\n }\n\n rotate() {\n const options = this.options;\n this.box.rotate(options.rotation);\n this.align(this.targetBox, X, options.align);\n this.align(this.targetBox, Y, options.vAlign);\n return this.box;\n }\n\n rotationTransform() {\n const rotation = this.options.rotation;\n if (!rotation) {\n return null;\n }\n\n const { x: cx, y: cy } = this.normalBox.center();\n const boxCenter = this.rotatedBox.center();\n\n return geom.transform()\n .translate(boxCenter.x - cx, boxCenter.y - cy)\n .rotate(rotation, [ cx, cy ]);\n }\n}\n\nexport default TextBox;","import ChartElement from './chart-element';\nimport TextBox from './text-box';\n\nimport { X, BLACK, TOP, CENTER, BOTTOM } from '../common/constants';\nimport { getSpacing, setDefaultOptions } from '../common';\n\nclass Title extends ChartElement {\n constructor(options) {\n super(options);\n\n this._textBox = new TextBox(this.options.text, Object.assign({}, this.options, {\n vAlign: this.options.position\n }));\n\n this.append(this._textBox);\n }\n\n reflow(targetBox) {\n super.reflow(targetBox);\n this.box.snapTo(targetBox, X);\n }\n\n static buildTitle(options, defaultOptions) {\n let titleOptions = options;\n\n if (typeof options === \"string\") {\n titleOptions = { text: options };\n }\n\n titleOptions = Object.assign({ visible: true }, defaultOptions, titleOptions);\n\n let title;\n if (titleOptions && titleOptions.visible && titleOptions.text) {\n title = new Title(titleOptions);\n }\n\n return title;\n }\n\n static orderTitles(titles) {\n const items = [].concat(titles);\n const top = items.filter(item => item && item.options.position !== BOTTOM);\n const bottom = items.filter(item => item && item.options.position === BOTTOM);\n\n collapseVerticalMargins(top);\n collapseVerticalMargins(bottom);\n\n bottom.reverse();\n return top.concat(bottom);\n }\n}\n\nfunction collapseVerticalMargins(items) {\n for (let i = 1; i < items.length; i++) {\n const box = items[i]._textBox;\n const prevBox = items[i - 1]._textBox;\n prevBox.options.margin = Object.assign(getSpacing(prevBox.options.margin), { bottom: 0 });\n box.options.margin = Object.assign(getSpacing(box.options.margin), { top: 0 });\n }\n}\n\nsetDefaultOptions(Title, {\n color: BLACK,\n position: TOP,\n align: CENTER,\n margin: getSpacing(5),\n padding: getSpacing(5)\n});\n\nexport default Title;\n","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport TextBox from './text-box';\nimport Box from './box';\n\nimport rectToBox from './utils/rect-to-box';\n\nimport { AXIS_LABEL_CLICK, CENTER, TOP, BOTTOM, LEFT, DEFAULT_PRECISION, X, Y } from '../common/constants';\n\nimport { eventElement, round, setDefaultOptions } from '../common';\n\nclass AxisLabel extends TextBox {\n constructor(value, text, index, dataItem, options) {\n super(text, options);\n\n this.text = text;\n this.value = value;\n this.index = index;\n this.dataItem = dataItem;\n this.reflow(new Box());\n }\n\n visualContext(targetBox) {\n const context = super.visualContext(targetBox);\n\n context.value = this.value;\n context.dataItem = this.dataItem;\n context.format = this.options.format;\n context.culture = this.options.culture;\n\n return context;\n }\n\n click(widget, e) {\n\n widget.trigger(AXIS_LABEL_CLICK, {\n element: eventElement(e),\n value: this.value,\n text: this.text,\n index: this.index,\n dataItem: this.dataItem,\n axis: this.parent.options\n });\n }\n\n rotate() {\n if (this.options.alignRotation !== CENTER) {\n const box = this.normalBox.toRect();\n const transform = this.rotationTransform();\n\n this.box = rectToBox(box.bbox(transform.matrix()));\n } else {\n super.rotate();\n }\n\n return this.box;\n }\n\n rotationTransform() {\n const options = this.options;\n const rotation = options.rotation;\n if (!rotation) {\n return null;\n }\n\n if (options.alignRotation === CENTER) {\n return super.rotationTransform();\n }\n\n const rotationMatrix = geom.transform().rotate(rotation).matrix();\n const box = this.normalBox.toRect();\n const rect = this.targetBox.toRect();\n\n const rotationOrigin = options.rotationOrigin || TOP;\n const alignAxis = rotationOrigin === TOP || rotationOrigin === BOTTOM ? X : Y;\n const distanceAxis = rotationOrigin === TOP || rotationOrigin === BOTTOM ? Y : X;\n const axisAnchor = rotationOrigin === TOP || rotationOrigin === LEFT ? rect.origin : rect.bottomRight();\n\n const topLeft = box.topLeft().transformCopy(rotationMatrix);\n const topRight = box.topRight().transformCopy(rotationMatrix);\n const bottomRight = box.bottomRight().transformCopy(rotationMatrix);\n const bottomLeft = box.bottomLeft().transformCopy(rotationMatrix);\n const rotatedBox = geom.Rect.fromPoints(topLeft, topRight, bottomRight, bottomLeft);\n\n const translate = {\n [distanceAxis]: rect.origin[distanceAxis] - rotatedBox.origin[distanceAxis]\n };\n\n const distanceLeft = Math.abs(topLeft[distanceAxis] + translate[distanceAxis] - axisAnchor[distanceAxis]);\n const distanceRight = Math.abs(topRight[distanceAxis] + translate[distanceAxis] - axisAnchor[distanceAxis]);\n\n let alignStart, alignEnd;\n\n if (round(distanceLeft, DEFAULT_PRECISION) === round(distanceRight, DEFAULT_PRECISION)) {\n alignStart = topLeft;\n alignEnd = topRight;\n } else if (distanceRight < distanceLeft) {\n alignStart = topRight;\n alignEnd = bottomRight;\n } else {\n alignStart = topLeft;\n alignEnd = bottomLeft;\n }\n\n const alignCenter = alignStart[alignAxis] + (alignEnd[alignAxis] - alignStart[alignAxis]) / 2;\n translate[alignAxis] = rect.center()[alignAxis] - alignCenter;\n\n return geom.transform()\n .translate(translate.x, translate.y)\n .rotate(rotation);\n }\n}\n\nsetDefaultOptions(AxisLabel, {\n _autoReflow: false\n});\n\nexport default AxisLabel;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport BoxElement from './box-element';\nimport TextBox from './text-box';\nimport ShapeElement from './shape-element';\nimport Box from './box';\n\nimport { CIRCLE, TOP, BOTTOM, LEFT, RIGHT, CENTER, INSIDE, OUTSIDE, NOTE_CLICK, NOTE_HOVER, NOTE_LEAVE } from '../common/constants';\nimport { alignPathToPixel, defined, deepExtend, eventElement, getTemplate, inArray, setDefaultOptions } from '../common';\n\nconst DEFAULT_ICON_SIZE = 7;\nconst DEFAULT_LABEL_COLOR = \"#fff\";\n\nclass Note extends BoxElement {\n constructor(fields, options, chartService) {\n super(options);\n\n this.fields = fields;\n this.chartService = chartService;\n\n this.render();\n }\n\n hide() {\n this.options.visible = false;\n }\n\n show() {\n this.options.visible = true;\n }\n\n render() {\n const options = this.options;\n\n if (options.visible) {\n const { label, icon } = options;\n const box = new Box();\n const childAlias = () => this;\n let size = icon.size;\n let text = this.fields.text;\n let width, height;\n\n if (defined(label) && label.visible) {\n const noteTemplate = getTemplate(label);\n if (noteTemplate) {\n text = noteTemplate(this.fields);\n } else if (label.format) {\n text = this.chartService.format.auto(label.format, text);\n }\n\n if (!label.color) {\n label.color = label.position === INSIDE ? DEFAULT_LABEL_COLOR : icon.background;\n }\n\n this.label = new TextBox(text, deepExtend({}, label));\n this.label.aliasFor = childAlias;\n\n if (label.position === INSIDE && !defined(size)) {\n if (icon.type === CIRCLE) {\n size = Math.max(this.label.box.width(), this.label.box.height());\n } else {\n width = this.label.box.width();\n height = this.label.box.height();\n }\n box.wrap(this.label.box);\n }\n }\n\n icon.width = width || size || DEFAULT_ICON_SIZE;\n icon.height = height || size || DEFAULT_ICON_SIZE;\n\n const marker = new ShapeElement(deepExtend({}, icon));\n marker.aliasFor = childAlias;\n\n this.marker = marker;\n this.append(marker);\n\n if (this.label) {\n this.append(this.label);\n }\n\n marker.reflow(new Box());\n this.wrapperBox = box.wrap(marker.box);\n }\n }\n\n reflow(targetBox) {\n const { options, label, marker, wrapperBox } = this;\n const center = targetBox.center();\n const length = options.line.length;\n const position = options.position;\n\n // TODO: Review\n if (options.visible) {\n let lineStart, box, contentBox;\n\n if (inArray(position, [ LEFT, RIGHT ])) {\n if (position === LEFT) {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(-length, targetBox.center().y - wrapperBox.center().y);\n\n if (options.line.visible) {\n lineStart = [ targetBox.x1, center.y ];\n this.linePoints = [\n lineStart,\n [ contentBox.x2, center.y ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n } else {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(length, targetBox.center().y - wrapperBox.center().y);\n\n if (options.line.visible) {\n lineStart = [ targetBox.x2, center.y ];\n this.linePoints = [\n lineStart,\n [ contentBox.x1, center.y ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n }\n } else {\n if (position === BOTTOM) {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(targetBox.center().x - wrapperBox.center().x, length);\n\n if (options.line.visible) {\n lineStart = [ center.x, targetBox.y2 ];\n this.linePoints = [\n lineStart,\n [ center.x, contentBox.y1 ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n } else {\n contentBox = wrapperBox.alignTo(targetBox, position).translate(targetBox.center().x - wrapperBox.center().x, -length);\n\n if (options.line.visible) {\n lineStart = [ center.x, targetBox.y1 ];\n this.linePoints = [\n lineStart,\n [ center.x, contentBox.y2 ]\n ];\n box = contentBox.clone().wrapPoint(lineStart);\n }\n }\n }\n\n if (marker) {\n marker.reflow(contentBox);\n }\n\n if (label) {\n label.reflow(contentBox);\n if (marker) {\n if (options.label.position === OUTSIDE) {\n label.box.alignTo(marker.box, position);\n }\n label.reflow(label.box);\n }\n }\n\n this.contentBox = contentBox;\n this.targetBox = targetBox;\n this.box = box || contentBox;\n }\n }\n\n createVisual() {\n super.createVisual();\n this.visual.options.noclip = this.options.noclip;\n\n if (this.options.visible) {\n this.createLine();\n }\n }\n\n renderVisual() {\n const options = this.options;\n const customVisual = options.visual;\n if (options.visible && customVisual) {\n this.visual = customVisual(Object.assign(this.fields, {\n sender: this.getSender(),\n rect: this.targetBox.toRect(),\n options: {\n background: options.background,\n border: options.background,\n icon: options.icon,\n label: options.label,\n line: options.line,\n position: options.position,\n visible: options.visible\n },\n createVisual: () => {\n this.createVisual();\n this.renderChildren();\n const defaultVisual = this.visual;\n delete this.visual;\n return defaultVisual;\n }\n }));\n this.addVisual();\n } else {\n super.renderVisual();\n }\n }\n\n createLine() {\n const options = this.options.line;\n\n if (this.linePoints) {\n const path = draw.Path.fromPoints(this.linePoints, {\n stroke: {\n color: options.color,\n width: options.width,\n dashType: options.dashType\n }\n });\n\n alignPathToPixel(path);\n this.visual.append(path);\n }\n }\n\n click(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(NOTE_CLICK, args)) {\n e.preventDefault();\n }\n }\n\n over(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(NOTE_HOVER, args)) {\n e.preventDefault();\n }\n }\n\n out(widget, e) {\n const args = this.eventArgs(e);\n\n widget.trigger(NOTE_LEAVE, args);\n }\n\n eventArgs(e) {\n const options = this.options;\n\n return Object.assign(this.fields, {\n element: eventElement(e),\n text: defined(options.label) ? options.label.text : \"\",\n visual: this.visual\n });\n }\n}\n\nsetDefaultOptions(Note, {\n icon: {\n visible: true,\n type: CIRCLE\n },\n label: {\n position: INSIDE,\n visible: true,\n align: CENTER,\n vAlign: CENTER\n },\n line: {\n visible: true\n },\n visible: true,\n position: TOP,\n zIndex: 2\n});\n\nexport default Note;","const defaultImplementation = {\n format: (format, value) => value,\n\n toString: (value) => value,\n\n parseDate: (value) => new Date(value),\n\n firstDay: () => 0\n};\n\nlet current = defaultImplementation;\n\nclass IntlService {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static get implementation() {\n return current;\n }\n}\n\nexport default IntlService;\n","import IntlService from './intl-service';\nimport { FORMAT_REGEX } from '../common/constants';\nimport { isString } from '../common';\n\n// eslint-disable-next-line no-useless-escape\nconst FORMAT_REPLACE_REGEX = /\\{(\\d+)(:[^\\}]+)?\\}/g;\n\nclass FormatService {\n constructor(intlService) {\n this._intlService = intlService;\n }\n\n get intl() {\n return this._intlService || IntlService.implementation;\n }\n\n set intl(value) {\n this._intlService = value;\n }\n\n auto(formatString, ...values) {\n const intl = this.intl;\n\n if (isString(formatString) && formatString.match(FORMAT_REGEX)) {\n return intl.format(formatString, ...values);\n }\n\n return intl.toString(values[0], formatString);\n }\n\n localeAuto(formatString, values, locale) {\n const intl = this.intl;\n let result;\n\n if (isString(formatString) && formatString.match(FORMAT_REGEX)) {\n result = formatString.replace(FORMAT_REPLACE_REGEX, function(match, index, placeholderFormat) {\n let value = values[parseInt(index, 10)];\n\n return intl.toString(value, placeholderFormat ? placeholderFormat.substring(1) : \"\", locale);\n });\n } else {\n result = intl.toString(values[0], formatString, locale);\n }\n\n return result;\n }\n}\n\nexport default FormatService;","import IntlService from './intl-service';\nimport FormatService from './format-service';\n\nclass ChartService {\n constructor(chart, context = {}) {\n this._intlService = context.intlService;\n this.sender = context.sender || chart;\n this.format = new FormatService(context.intlService);\n this.chart = chart;\n this.rtl = Boolean(context.rtl);\n }\n\n get intl() {\n return this._intlService || IntlService.implementation;\n }\n\n set intl(value) {\n this._intlService = value;\n this.format.intl = value;\n }\n\n notify(name, args) {\n if (this.chart) {\n this.chart.trigger(name, args);\n }\n }\n\n isPannable(axis) {\n const pannable = ((this.chart || {}).options || {}).pannable;\n return pannable && pannable.lock !== axis;\n }\n}\n\nexport default ChartService;\n","import { UserEvents } from '../common';\n\nlet current;\n\nclass DomEventsBuilder {\n static register(userImplementation) {\n current = userImplementation;\n }\n\n static create(element, events) {\n let builder;\n\n if (current) {\n builder = current.create(element, events);\n } else {\n builder = new UserEvents(element, Object.assign({}, {multiTouch: true},\n\n events));\n }\n\n return builder;\n }\n}\n\nexport default DomEventsBuilder;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { alignPathToPixel } from '../../common';\n\nexport default function createAxisTick(options, tickOptions) {\n const { tickX, tickY, position } = options;\n\n const tick = new draw.Path({\n stroke: {\n width: tickOptions.width,\n color: tickOptions.color\n }\n });\n\n if (options.vertical) {\n tick.moveTo(tickX, position)\n .lineTo(tickX + tickOptions.size, position);\n } else {\n tick.moveTo(position, tickY)\n .lineTo(position, tickY + tickOptions.size);\n }\n\n alignPathToPixel(tick);\n\n return tick;\n}\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { alignPathToPixel } from '../../common';\n\nexport default function createAxisGridLine(options, gridLine) {\n const { lineStart, lineEnd, position } = options;\n\n const line = new draw.Path({\n stroke: {\n width: gridLine.width,\n color: gridLine.color,\n dashType: gridLine.dashType\n }\n });\n\n if (options.vertical) {\n line.moveTo(lineStart, position)\n .lineTo(lineEnd, position);\n } else {\n line.moveTo(position, lineStart)\n .lineTo(position, lineEnd);\n }\n\n alignPathToPixel(line);\n\n return line;\n}","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport ChartElement from './chart-element';\nimport TextBox from './text-box';\nimport AxisLabel from './axis-label';\nimport Note from './note';\nimport Box from './box';\nimport { ChartService } from '../services';\n\nimport createAxisTick from './utils/create-axis-tick';\nimport createAxisGridLine from './utils/create-axis-grid-line';\n\nimport { NONE, BLACK, CENTER, TOP, BOTTOM, LEFT, RIGHT, OUTSIDE, X, Y, WIDTH, HEIGHT } from '../common/constants';\nimport { alignPathToPixel, deepExtend, getTemplate, grep, defined, isObject, inArray, limitValue, round, setDefaultOptions } from '../common';\n\nclass Axis extends ChartElement {\n constructor(options, chartService = new ChartService()) {\n super(options);\n\n this.chartService = chartService;\n\n if (!this.options.visible) {\n this.options = deepExtend({}, this.options, {\n labels: {\n visible: false\n },\n line: {\n visible: false\n },\n margin: 0,\n majorTickSize: 0,\n minorTickSize: 0\n });\n }\n\n this.options.minorTicks = deepExtend({}, {\n color: this.options.line.color,\n width: this.options.line.width,\n visible: this.options.minorTickType !== NONE\n }, this.options.minorTicks, {\n size: this.options.minorTickSize,\n align: this.options.minorTickType\n });\n\n this.options.majorTicks = deepExtend({}, {\n color: this.options.line.color,\n width: this.options.line.width,\n visible: this.options.majorTickType !== NONE\n }, this.options.majorTicks, {\n size: this.options.majorTickSize,\n align: this.options.majorTickType\n });\n\n this.initFields();\n\n if (!this.options._deferLabels) {\n this.createLabels();\n }\n\n this.createTitle();\n this.createNotes();\n }\n\n initFields() {\n }\n\n // abstract labelsCount(): Number\n // abstract createAxisLabel(index, options): AxisLabel\n\n labelsRange() {\n return {\n min: this.options.labels.skip,\n max: this.labelsCount()\n };\n }\n\n normalizeLabelRotation(labelOptions) {\n const rotation = labelOptions.rotation;\n\n if (isObject(rotation)) {\n labelOptions.alignRotation = rotation.align;\n labelOptions.rotation = rotation.angle;\n }\n }\n\n createLabels() {\n const options = this.options;\n const align = options.vertical ? RIGHT : CENTER;\n const labelOptions = deepExtend({ }, options.labels, {\n align: align,\n zIndex: options.zIndex\n });\n const step = Math.max(1, labelOptions.step);\n\n this.clearLabels();\n\n if (labelOptions.visible) {\n this.normalizeLabelRotation(labelOptions);\n if (labelOptions.rotation === \"auto\") {\n labelOptions.rotation = 0;\n options.autoRotateLabels = true;\n }\n\n const range = this.labelsRange();\n for (let idx = range.min; idx < range.max; idx += step) {\n const labelContext = { index: idx, count: range.max };\n let label = this.createAxisLabel(idx, labelOptions, labelContext);\n if (label) {\n this.append(label);\n this.labels.push(label);\n }\n }\n }\n }\n\n clearLabels() {\n this.children = grep(this.children, child => !(child instanceof AxisLabel));\n this.labels = [];\n }\n\n clearTitle() {\n if (this.title) {\n this.children = grep(this.children, child => child !== this.title);\n this.title = undefined;\n }\n }\n\n clear() {\n this.clearLabels();\n this.clearTitle();\n }\n\n lineBox() {\n const { options, box } = this;\n const vertical = options.vertical;\n const mirror = options.labels.mirror;\n const axisX = mirror ? box.x1 : box.x2;\n const axisY = mirror ? box.y2 : box.y1;\n const lineWidth = options.line.width || 0;\n\n return vertical ?\n new Box(axisX, box.y1, axisX, box.y2 - lineWidth) :\n new Box(box.x1, axisY, box.x2 - lineWidth, axisY);\n }\n\n createTitle() {\n const options = this.options;\n const titleOptions = deepExtend({\n rotation: options.vertical ? -90 : 0,\n text: \"\",\n zIndex: 1,\n visualSize: true\n }, options.title);\n\n if (titleOptions.visible && titleOptions.text) {\n const title = new TextBox(titleOptions.text, titleOptions);\n this.append(title);\n this.title = title;\n }\n }\n\n createNotes() {\n const options = this.options;\n const notes = options.notes;\n const items = notes.data || [];\n\n this.notes = [];\n\n for (let i = 0; i < items.length; i++) {\n const item = deepExtend({}, notes, items[i]);\n item.value = this.parseNoteValue(item.value);\n\n const note = new Note({\n value: item.value,\n text: item.label.text,\n dataItem: item\n }, item, this.chartService);\n\n if (note.options.visible) {\n if (defined(note.options.position)) {\n if (options.vertical && !inArray(note.options.position, [ LEFT, RIGHT ])) {\n note.options.position = options.reverse ? LEFT : RIGHT;\n } else if (!options.vertical && !inArray(note.options.position, [ TOP, BOTTOM ])) {\n note.options.position = options.reverse ? BOTTOM : TOP;\n }\n } else {\n if (options.vertical) {\n note.options.position = options.reverse ? LEFT : RIGHT;\n } else {\n note.options.position = options.reverse ? BOTTOM : TOP;\n }\n }\n this.append(note);\n this.notes.push(note);\n }\n }\n }\n\n parseNoteValue(value) {\n return value;\n }\n\n renderVisual() {\n super.renderVisual();\n\n this.createPlotBands();\n }\n\n createVisual() {\n super.createVisual();\n\n this.createBackground();\n this.createLine();\n }\n\n gridLinesVisual() {\n let gridLines = this._gridLines;\n if (!gridLines) {\n gridLines = this._gridLines = new draw.Group({\n zIndex: -2\n });\n this.appendVisual(this._gridLines);\n }\n\n return gridLines;\n }\n\n createTicks(lineGroup) {\n const options = this.options;\n const lineBox = this.lineBox();\n const mirror = options.labels.mirror;\n const majorUnit = options.majorTicks.visible ? options.majorUnit : 0;\n const tickLineOptions = {\n // TODO\n // _alignLines: options._alignLines,\n vertical: options.vertical\n };\n\n function render(tickPositions, tickOptions, skipUnit) {\n const count = tickPositions.length;\n const step = Math.max(1, tickOptions.step);\n\n if (tickOptions.visible) {\n for (let i = tickOptions.skip; i < count; i += step) {\n if (defined(skipUnit) && (i % skipUnit === 0)) {\n continue;\n }\n\n tickLineOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size;\n tickLineOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1;\n tickLineOptions.position = tickPositions[i];\n\n lineGroup.append(createAxisTick(tickLineOptions, tickOptions));\n }\n }\n }\n\n render(this.getMajorTickPositions(), options.majorTicks);\n render(this.getMinorTickPositions(), options.minorTicks, majorUnit / options.minorUnit);\n }\n\n createLine() {\n const options = this.options;\n const line = options.line;\n const lineBox = this.lineBox();\n\n if (line.width > 0 && line.visible) {\n const path = new draw.Path({\n stroke: {\n width: line.width,\n color: line.color,\n dashType: line.dashType\n }\n\n /* TODO\n zIndex: line.zIndex,\n */\n });\n\n path.moveTo(lineBox.x1, lineBox.y1)\n .lineTo(lineBox.x2, lineBox.y2);\n\n if (options._alignLines) {\n alignPathToPixel(path);\n }\n\n const group = this._lineGroup = new draw.Group();\n group.append(path);\n\n this.visual.append(group);\n this.createTicks(group);\n }\n }\n\n getActualTickSize() {\n const options = this.options;\n let tickSize = 0;\n\n if (options.majorTicks.visible && options.minorTicks.visible) {\n tickSize = Math.max(options.majorTicks.size, options.minorTicks.size);\n } else if (options.majorTicks.visible) {\n tickSize = options.majorTicks.size;\n } else if (options.minorTicks.visible) {\n tickSize = options.minorTicks.size;\n }\n\n return tickSize;\n }\n\n createBackground() {\n const { options, box } = this;\n const background = options.background;\n\n if (background) {\n this._backgroundPath = draw.Path.fromRect(box.toRect(), {\n fill: {\n color: background\n },\n stroke: null\n });\n\n this.visual.append(this._backgroundPath);\n }\n }\n\n createPlotBands() {\n const options = this.options;\n const plotBands = options.plotBands || [];\n const vertical = options.vertical;\n const plotArea = this.plotArea;\n\n if (plotBands.length === 0) {\n return;\n }\n\n const group = this._plotbandGroup = new draw.Group({\n zIndex: -1\n });\n\n const altAxis = grep(this.pane.axes, axis => axis.options.vertical !== this.options.vertical)[0];\n\n for (let idx = 0; idx < plotBands.length; idx++) {\n let item = plotBands[idx];\n let slotX, slotY;\n let labelOptions = item.label;\n let label;\n\n if (vertical) {\n slotX = (altAxis || plotArea.axisX).lineBox();\n slotY = this.getSlot(item.from, item.to, true);\n } else {\n slotX = this.getSlot(item.from, item.to, true);\n slotY = (altAxis || plotArea.axisY).lineBox();\n }\n\n if (labelOptions) {\n labelOptions.vAlign = labelOptions.position || LEFT;\n label = this.createPlotBandLabel(\n labelOptions,\n item,\n new Box(\n slotX.x1,\n slotY.y1,\n slotX.x2,\n slotY.y2\n )\n\n );\n }\n\n if (slotX.width() !== 0 && slotY.height() !== 0) {\n const bandRect = new geom.Rect(\n [ slotX.x1, slotY.y1 ],\n [ slotX.width(), slotY.height() ]\n );\n\n const path = draw.Path.fromRect(bandRect, {\n fill: {\n color: item.color,\n opacity: item.opacity\n },\n stroke: null\n });\n\n group.append(path);\n if (label) {\n group.append(label);\n }\n }\n }\n\n this.appendVisual(group);\n }\n\n createPlotBandLabel(label, item, box) {\n\n if (label.visible === false) {\n return null;\n }\n\n let text = label.text;\n let textbox;\n\n if (defined(label) && label.visible) {\n const labelTemplate = getTemplate(label);\n if (labelTemplate) {\n text = labelTemplate({ text: text, item: item });\n } else if (label.format) {\n text = this.chartService.format.auto(label.format, text);\n }\n\n if (!label.color) {\n label.color = this.options.labels.color;\n }\n }\n\n textbox = new TextBox(text, label);\n textbox.reflow(box);\n textbox.renderVisual();\n\n return textbox.visual;\n }\n\n createGridLines(altAxis) {\n const options = this.options;\n const { minorGridLines, majorGridLines, minorUnit, vertical } = options;\n const axisLineVisible = altAxis.options.line.visible;\n const majorUnit = majorGridLines.visible ? options.majorUnit : 0;\n const lineBox = altAxis.lineBox();\n const linePos = lineBox[vertical ? \"y1\" : \"x1\"];\n const lineOptions = {\n lineStart: lineBox[vertical ? \"x1\" : \"y1\"],\n lineEnd: lineBox[vertical ? \"x2\" : \"y2\"],\n vertical: vertical\n };\n const majorTicks = [];\n\n const container = this.gridLinesVisual();\n\n function render(tickPositions, gridLine, skipUnit) {\n const count = tickPositions.length;\n const step = Math.max(1, gridLine.step);\n\n if (gridLine.visible) {\n for (let i = gridLine.skip; i < count; i += step) {\n let pos = round(tickPositions[i]);\n if (!inArray(pos, majorTicks)) {\n if (i % skipUnit !== 0 && (!axisLineVisible || linePos !== pos)) {\n lineOptions.position = pos;\n container.append(createAxisGridLine(lineOptions, gridLine));\n\n majorTicks.push(pos);\n }\n }\n }\n }\n }\n\n render(this.getMajorTickPositions(), majorGridLines);\n render(this.getMinorTickPositions(), minorGridLines, majorUnit / minorUnit);\n\n return container.children;\n }\n\n reflow(box) {\n const { options, labels, title } = this;\n const vertical = options.vertical;\n const count = labels.length;\n const sizeFn = vertical ? WIDTH : HEIGHT;\n const titleSize = title ? title.box[sizeFn]() : 0;\n const space = this.getActualTickSize() + options.margin + titleSize;\n const rootBox = (this.getRoot() || {}).box || box;\n const boxSize = rootBox[sizeFn]();\n let maxLabelSize = 0;\n\n for (let i = 0; i < count; i++) {\n let labelSize = labels[i].box[sizeFn]();\n if (labelSize + space <= boxSize) {\n maxLabelSize = Math.max(maxLabelSize, labelSize);\n }\n }\n\n if (vertical) {\n this.box = new Box(\n box.x1, box.y1,\n box.x1 + maxLabelSize + space, box.y2\n );\n } else {\n this.box = new Box(\n box.x1, box.y1,\n box.x2, box.y1 + maxLabelSize + space\n );\n }\n\n this.arrangeTitle();\n this.arrangeLabels();\n this.arrangeNotes();\n }\n\n getLabelsTickPositions() {\n return this.getMajorTickPositions();\n }\n\n labelTickIndex(label) {\n return label.index;\n }\n\n arrangeLabels() {\n const { options, labels } = this;\n const labelsBetweenTicks = this.labelsBetweenTicks();\n const vertical = options.vertical;\n const mirror = options.labels.mirror;\n const tickPositions = this.getLabelsTickPositions();\n\n for (let idx = 0; idx < labels.length; idx++) {\n const label = labels[idx];\n const tickIx = this.labelTickIndex(label);\n const labelSize = vertical ? label.box.height() : label.box.width();\n const firstTickPosition = tickPositions[tickIx];\n const nextTickPosition = tickPositions[tickIx + 1];\n let positionStart, positionEnd;\n\n if (vertical) {\n if (labelsBetweenTicks) {\n const middle = firstTickPosition + (nextTickPosition - firstTickPosition) / 2;\n positionStart = middle - (labelSize / 2);\n } else {\n positionStart = firstTickPosition - (labelSize / 2);\n }\n\n positionEnd = positionStart;\n } else {\n if (labelsBetweenTicks) {\n positionStart = firstTickPosition;\n positionEnd = nextTickPosition;\n } else {\n positionStart = firstTickPosition - (labelSize / 2);\n positionEnd = positionStart + labelSize;\n }\n }\n\n this.positionLabel(label, mirror, positionStart, positionEnd);\n }\n }\n\n positionLabel(label, mirror, positionStart, positionEnd = positionStart) {\n const options = this.options;\n const vertical = options.vertical;\n const lineBox = this.lineBox();\n const labelOffset = this.getActualTickSize() + options.margin;\n let labelBox;\n\n if (vertical) {\n let labelX = lineBox.x2;\n\n if (mirror) {\n labelX += labelOffset;\n label.options.rotationOrigin = LEFT;\n } else {\n labelX -= labelOffset + label.box.width();\n label.options.rotationOrigin = RIGHT;\n }\n\n labelBox = label.box.move(labelX, positionStart);\n } else {\n let labelY = lineBox.y1;\n\n if (mirror) {\n labelY -= labelOffset + label.box.height();\n label.options.rotationOrigin = BOTTOM;\n } else {\n labelY += labelOffset;\n label.options.rotationOrigin = TOP;\n }\n\n labelBox = new Box(\n positionStart, labelY,\n positionEnd, labelY + label.box.height()\n );\n }\n\n label.reflow(labelBox);\n }\n\n autoRotateLabelAngle(labelBox, slotWidth) {\n if (labelBox.width() < slotWidth) {\n return 0;\n }\n\n if (labelBox.height() > slotWidth) {\n return -90;\n }\n\n return -45;\n }\n\n autoRotateLabels() {\n if (!this.options.autoRotateLabels || this.options.vertical) {\n return false;\n }\n\n const tickPositions = this.getMajorTickPositions();\n const labels = this.labels;\n const limit = Math.min(labels.length, tickPositions.length - 1);\n let angle = 0;\n\n for (let idx = 0; idx < limit; idx++) {\n const width = Math.abs(tickPositions[idx + 1] - tickPositions[idx]);\n const labelBox = labels[idx].box;\n const labelAngle = this.autoRotateLabelAngle(labelBox, width);\n\n if (labelAngle !== 0) {\n angle = labelAngle;\n }\n\n if (angle === -90) {\n break;\n }\n }\n\n if (angle !== 0) {\n for (let idx = 0; idx < labels.length; idx++) {\n labels[idx].options.rotation = angle;\n labels[idx].reflow(new Box());\n }\n\n return true;\n }\n }\n\n arrangeTitle() {\n const { options, title } = this;\n const mirror = options.labels.mirror;\n const vertical = options.vertical;\n\n if (title) {\n if (vertical) {\n title.options.align = mirror ? RIGHT : LEFT;\n title.options.vAlign = title.options.position;\n } else {\n title.options.align = title.options.position;\n title.options.vAlign = mirror ? TOP : BOTTOM;\n }\n\n title.reflow(this.box);\n }\n }\n\n arrangeNotes() {\n for (let idx = 0; idx < this.notes.length; idx++) {\n const item = this.notes[idx];\n const value = item.options.value;\n let slot;\n\n if (defined(value)) {\n if (this.shouldRenderNote(value)) {\n item.show();\n } else {\n item.hide();\n }\n\n slot = this.noteSlot(value);\n } else {\n item.hide();\n }\n\n item.reflow(slot || this.lineBox());\n }\n }\n\n noteSlot(value) {\n return this.getSlot(value);\n }\n\n alignTo(secondAxis) {\n const lineBox = secondAxis.lineBox();\n const vertical = this.options.vertical;\n const pos = vertical ? Y : X;\n\n this.box.snapTo(lineBox, pos);\n if (vertical) {\n this.box.shrink(0, this.lineBox().height() - lineBox.height());\n } else {\n this.box.shrink(this.lineBox().width() - lineBox.width(), 0);\n }\n this.box[pos + 1] -= this.lineBox()[pos + 1] - lineBox[pos + 1];\n this.box[pos + 2] -= this.lineBox()[pos + 2] - lineBox[pos + 2];\n }\n\n axisLabelText(value, options, context) {\n let text;\n const tmpl = getTemplate(options);\n const defaultText = () => {\n if (!options.format) {\n return value;\n }\n\n return this.chartService.format.localeAuto(\n options.format, [ value ], options.culture\n );\n };\n\n if (tmpl) {\n const templateContext = Object.assign({}, context, {\n get text() { return defaultText(); },\n value,\n format: options.format,\n culture: options.culture\n });\n\n text = tmpl(templateContext);\n } else {\n text = defaultText();\n }\n\n return text;\n }\n\n slot(from , to, limit) {\n const slot = this.getSlot(from, to, limit);\n if (slot) {\n return slot.toRect();\n }\n }\n\n contentBox() {\n const box = this.box.clone();\n const labels = this.labels;\n if (labels.length) {\n const axis = this.options.vertical ? Y : X;\n if (this.chartService.isPannable(axis)) {\n const offset = this.maxLabelOffset();\n box[axis + 1] -= offset.start;\n box[axis + 2] += offset.end;\n } else {\n if (labels[0].options.visible) {\n box.wrap(labels[0].box);\n }\n const lastLabel = labels[labels.length - 1];\n if (lastLabel.options.visible) {\n box.wrap(lastLabel.box);\n }\n }\n }\n\n return box;\n }\n\n maxLabelOffset() {\n const { vertical, reverse } = this.options;\n const labelsBetweenTicks = this.labelsBetweenTicks();\n const tickPositions = this.getLabelsTickPositions();\n const offsetField = vertical ? Y : X;\n const labels = this.labels;\n const startPosition = reverse ? 1 : 0;\n const endPosition = reverse ? 0 : 1;\n let maxStartOffset = 0;\n let maxEndOffset = 0;\n\n for (let idx = 0; idx < labels.length; idx++) {\n const label = labels[idx];\n const tickIx = this.labelTickIndex(label);\n let startTick, endTick;\n\n if (labelsBetweenTicks) {\n startTick = tickPositions[tickIx + startPosition];\n endTick = tickPositions[tickIx + endPosition];\n } else {\n startTick = endTick = tickPositions[tickIx];\n }\n\n maxStartOffset = Math.max(maxStartOffset, startTick - label.box[offsetField + 1]);\n maxEndOffset = Math.max(maxEndOffset, label.box[offsetField + 2] - endTick);\n }\n\n return {\n start: maxStartOffset,\n end: maxEndOffset\n };\n }\n\n limitRange(from, to, min, max, offset) {\n const options = this.options;\n\n if ((from < min && offset < 0 && (!defined(options.min) || options.min <= min)) || (max < to && offset > 0 && (!defined(options.max) || max <= options.max))) {\n return null;\n }\n\n if ((to < min && offset > 0) || (max < from && offset < 0)) {\n return {\n min: from,\n max: to\n };\n }\n\n const rangeSize = to - from;\n let minValue = from;\n let maxValue = to;\n\n if (from < min && offset < 0) {\n minValue = limitValue(from, min, max);\n maxValue = limitValue(from + rangeSize, min + rangeSize, max);\n } else if (to > max && offset > 0) {\n maxValue = limitValue(to, min, max);\n minValue = limitValue(to - rangeSize, min, max - rangeSize);\n }\n\n return {\n min: minValue,\n max: maxValue\n };\n }\n\n valueRange() {\n return {\n min: this.seriesMin,\n max: this.seriesMax\n };\n }\n\n lineDir() {\n /*\n * Axis line direction:\n * * Vertical: up.\n * * Horizontal: right.\n */\n\n const { vertical, reverse } = this.options;\n return (vertical ? -1 : 1) * (reverse ? -1 : 1);\n }\n\n lineInfo() {\n const { vertical } = this.options;\n const lineBox = this.lineBox();\n const lineSize = vertical ? lineBox.height() : lineBox.width();\n const axis = vertical ? Y : X;\n const axisDir = this.lineDir();\n const startEdge = axisDir === 1 ? 1 : 2;\n const axisOrigin = axis + startEdge.toString();\n const lineStart = lineBox[axisOrigin];\n\n return {\n axis,\n axisOrigin,\n axisDir,\n lineBox,\n lineSize,\n lineStart\n };\n }\n\n pointOffset(point) {\n const { axis, axisDir, axisOrigin, lineBox, lineSize } = this.lineInfo();\n const relative = axisDir > 0 ? point[axis] - lineBox[axisOrigin] : lineBox[axisOrigin] - point[axis];\n const offset = relative / lineSize;\n\n return offset;\n }\n\n // Computes the axis range change (delta) for a given scale factor.\n // The delta is subtracted from the axis range:\n // * delta > 0 reduces the axis range (zoom-in)\n // * delta < 0 expands the axis range (zoom-out)\n scaleToDelta(rawScale, range) {\n // Scale >= 1 would result in axis range of 0.\n // Scale <= -1 would reverse the scale direction.\n const MAX_SCALE = 0.999;\n const scale = limitValue(rawScale, -MAX_SCALE, MAX_SCALE);\n\n let delta;\n if (scale > 0) {\n delta = range * Math.min(1, scale);\n } else {\n delta = range - (range / (1 + scale));\n }\n\n return delta;\n }\n\n labelsBetweenTicks() {\n return !this.options.justified;\n }\n\n //add legacy fields to the options that are no longer generated by default\n prepareUserOptions() {\n }\n}\n\nsetDefaultOptions(Axis, {\n labels: {\n visible: true,\n rotation: 0,\n mirror: false,\n step: 1,\n skip: 0\n },\n line: {\n width: 1,\n color: BLACK,\n visible: true\n },\n title: {\n visible: true,\n position: CENTER\n },\n majorTicks: {\n align: OUTSIDE,\n size: 4,\n skip: 0,\n step: 1\n },\n minorTicks: {\n align: OUTSIDE,\n size: 3,\n skip: 0,\n step: 1\n },\n axisCrossingValue: 0,\n majorTickType: OUTSIDE,\n minorTickType: NONE,\n majorGridLines: {\n skip: 0,\n step: 1\n },\n minorGridLines: {\n visible: false,\n width: 1,\n color: BLACK,\n skip: 0,\n step: 1\n },\n // TODO: Move to line or labels options\n margin: 5,\n visible: true,\n reverse: false,\n justified: true,\n notes: {\n label: {\n text: \"\"\n }\n },\n\n _alignLines: true,\n _deferLabels: false\n});\n\nexport default Axis;\n","export const MILLISECONDS = \"milliseconds\";\nexport const SECONDS = \"seconds\";\nexport const MINUTES = \"minutes\";\nexport const HOURS = \"hours\";\nexport const DAYS = \"days\";\nexport const WEEKS = \"weeks\";\nexport const MONTHS = \"months\";\nexport const YEARS = \"years\";\n\nexport const TIME_PER_MILLISECOND = 1;\nexport const TIME_PER_SECOND = 1000;\nexport const TIME_PER_MINUTE = 60 * TIME_PER_SECOND;\nexport const TIME_PER_HOUR = 60 * TIME_PER_MINUTE;\nexport const TIME_PER_DAY = 24 * TIME_PER_HOUR;\nexport const TIME_PER_WEEK = 7 * TIME_PER_DAY;\nexport const TIME_PER_MONTH = 31 * TIME_PER_DAY;\nexport const TIME_PER_YEAR = 365 * TIME_PER_DAY;\nexport const TIME_PER_UNIT = {\n \"years\": TIME_PER_YEAR,\n \"months\": TIME_PER_MONTH,\n \"weeks\": TIME_PER_WEEK,\n \"days\": TIME_PER_DAY,\n \"hours\": TIME_PER_HOUR,\n \"minutes\": TIME_PER_MINUTE,\n \"seconds\": TIME_PER_SECOND,\n \"milliseconds\": TIME_PER_MILLISECOND\n};\n\n","import { TIME_PER_MINUTE } from './constants';\n\nexport default function absoluteDateDiff(a, b) {\n const diff = a.getTime() - b;\n const offsetDiff = a.getTimezoneOffset() - b.getTimezoneOffset();\n\n return diff - (offsetDiff * TIME_PER_MINUTE);\n}","export default function addTicks(date, ticks) {\n return new Date(date.getTime() + ticks);\n}","export default function toDate(value) {\n let result;\n\n if (value instanceof Date) {\n result = value;\n } else if (value) {\n result = new Date(value);\n }\n\n return result;\n}","import { MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS,\n TIME_PER_SECOND, TIME_PER_MINUTE, TIME_PER_HOUR } from './constants';\nimport addTicks from './add-ticks';\nimport toDate from './to-date';\nimport startOfWeek from './start-of-week';\n\nfunction adjustDST(date, hours) {\n if (hours === 0 && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n return true;\n }\n\n return false;\n}\n\nfunction addHours(date, hours) {\n const roundedDate = new Date(date);\n\n roundedDate.setMinutes(0, 0, 0);\n\n const tzDiff = (date.getTimezoneOffset() - roundedDate.getTimezoneOffset()) * TIME_PER_MINUTE;\n\n return addTicks(roundedDate, tzDiff + hours * TIME_PER_HOUR);\n}\n\nexport default function addDuration(dateValue, value, unit, weekStartDay) {\n let result = dateValue;\n\n if (dateValue) {\n let date = toDate(dateValue);\n const hours = date.getHours();\n\n if (unit === YEARS) {\n result = new Date(date.getFullYear() + value, 0, 1);\n adjustDST(result, 0);\n } else if (unit === MONTHS) {\n result = new Date(date.getFullYear(), date.getMonth() + value, 1);\n adjustDST(result, hours);\n } else if (unit === WEEKS) {\n result = addDuration(startOfWeek(date, weekStartDay), value * 7, DAYS);\n adjustDST(result, hours);\n } else if (unit === DAYS) {\n result = new Date(date.getFullYear(), date.getMonth(), date.getDate() + value);\n adjustDST(result, hours);\n } else if (unit === HOURS) {\n result = addHours(date, value);\n } else if (unit === MINUTES) {\n result = addTicks(date, value * TIME_PER_MINUTE);\n\n if (result.getSeconds() > 0) {\n result.setSeconds(0);\n }\n } else if (unit === SECONDS) {\n result = addTicks(date, value * TIME_PER_SECOND);\n } else if (unit === MILLISECONDS) {\n result = addTicks(date, value);\n }\n\n if (unit !== MILLISECONDS && result.getMilliseconds() > 0) {\n result.setMilliseconds(0);\n }\n }\n\n return result;\n}","import { TIME_PER_DAY } from './constants';\nimport addTicks from './add-ticks';\n\nexport default function startOfWeek(date, weekStartDay = 0) {\n let daysToSubtract = 0;\n let day = date.getDay();\n\n if (!isNaN(day)) {\n while (day !== weekStartDay) {\n if (day === 0) {\n day = 6;\n } else {\n day--;\n }\n\n daysToSubtract++;\n }\n }\n\n return addTicks(date, -daysToSubtract * TIME_PER_DAY);\n}","import addDuration from './add-duration';\nimport toDate from './to-date';\n\nexport default function floorDate(date, unit, weekStartDay) {\n return addDuration(toDate(date), 0, unit, weekStartDay);\n}","import floorDate from './floor-date';\nimport addDuration from './add-duration';\nimport toDate from './to-date';\n\nexport default function ceilDate(dateValue, unit, weekStartDay) {\n const date = toDate(dateValue);\n\n if (date && floorDate(date, unit, weekStartDay).getTime() === date.getTime()) {\n return date;\n }\n\n return addDuration(date, 1, unit, weekStartDay);\n}","export default function dateComparer(a, b) {\n if (a && b) {\n return a.getTime() - b.getTime();\n }\n\n return -1;\n}","export default function dateDiff(a, b) {\n return a.getTime() - b;\n}","import { isArray } from '../common';\nimport toDate from './to-date';\n\nexport default function toTime(value) {\n if (isArray(value)) {\n let result = [];\n for (let idx = 0; idx < value.length; idx++) {\n result.push(toTime(value[idx]));\n }\n\n return result;\n } else if (value) {\n return toDate(value).getTime();\n }\n}","import toTime from './to-time';\n\nexport default function dateEquals(a, b) {\n if (a && b) {\n return toTime(a) === toTime(b);\n }\n\n return a === b;\n}","import { DAYS, WEEKS, MONTHS, YEARS, TIME_PER_UNIT } from './constants';\nimport dateDiff from './date-diff';\nimport absoluteDateDiff from './absolute-date-diff';\nimport toDate from './to-date';\n\nfunction timeIndex(date, start, baseUnit) {\n return absoluteDateDiff(date, start) / TIME_PER_UNIT[baseUnit];\n}\n\nexport default function dateIndex(value, start, baseUnit, baseUnitStep) {\n const date = toDate(value);\n const startDate = toDate(start);\n let index;\n\n if (baseUnit === MONTHS) {\n index = (date.getMonth() - startDate.getMonth() + (date.getFullYear() - startDate.getFullYear()) * 12) +\n timeIndex(date, new Date(date.getFullYear(), date.getMonth()), DAYS) / new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate();\n } else if (baseUnit === YEARS) {\n index = date.getFullYear() - startDate.getFullYear() + dateIndex(date, new Date(date.getFullYear(), 0), MONTHS, 1) / 12;\n } else if (baseUnit === DAYS || baseUnit === WEEKS) {\n index = timeIndex(date, startDate, baseUnit);\n } else {\n index = dateDiff(date, start) / TIME_PER_UNIT[baseUnit];\n }\n\n return index / baseUnitStep;\n}\n\n","import { DAYS, MONTHS, YEARS, TIME_PER_DAY, TIME_PER_UNIT } from './constants';\nimport dateDiff from './date-diff';\n\nexport default function duration(a, b, unit) {\n let diff;\n\n if (unit === YEARS) {\n diff = b.getFullYear() - a.getFullYear();\n } else if (unit === MONTHS) {\n diff = duration(a, b, YEARS) * 12 + b.getMonth() - a.getMonth();\n } else if (unit === DAYS) {\n diff = Math.floor(dateDiff(b, a) / TIME_PER_DAY);\n } else {\n diff = Math.floor(dateDiff(b, a) / TIME_PER_UNIT[unit]);\n }\n\n return diff;\n}","import { isString } from '../common';\nimport toDate from './to-date';\n\nexport default function parseDate(intlService, date) {\n let result;\n if (isString(date)) {\n result = intlService.parseDate(date) || toDate(date);\n } else {\n result = toDate(date);\n }\n return result;\n}\n","import parseDate from './parse-date';\n\nimport { isArray } from '../common';\n\nexport default function parseDates(intlService, dates) {\n if (isArray(dates)) {\n const result = [];\n for (let idx = 0; idx < dates.length; idx++) {\n result.push(parseDate(intlService, dates[idx]));\n }\n\n return result;\n }\n\n return parseDate(intlService, dates);\n}","import { isNumber } from '../common';\n\nexport default function firstDay(options, intlService) {\n if (isNumber(options.weekStartDay)) {\n return options.weekStartDay;\n }\n\n if (intlService && intlService.firstDay) {\n return intlService.firstDay();\n }\n\n return 0;\n}\n","import Axis from './axis';\nimport AxisLabel from './axis-label';\n\nimport { BLACK, COORD_PRECISION, DEFAULT_PRECISION, X, Y } from '../common/constants';\nimport { defined, isNumber, last, limitValue, round, setDefaultOptions, valueOrDefault, HashMap } from '../common';\nimport { dateEquals } from '../date-utils';\n\nconst MIN_CATEGORY_POINTS_RANGE = 0.01;\nconst MIN_CATEGORY_RANGE = 0.1;\n\nfunction indexOf(value, arr) {\n if (value instanceof Date) {\n const length = arr.length;\n for (let idx = 0; idx < length; idx++) {\n if (dateEquals(arr[idx], value)) {\n return idx;\n }\n }\n\n return -1;\n }\n\n return arr.indexOf(value);\n}\n\nclass CategoryAxis extends Axis {\n initFields() {\n this._ticks = {};\n }\n\n categoriesHash() {\n return \"\";\n }\n\n clone() {\n const copy = new CategoryAxis(Object.assign({}, this.options, {\n categories: this.options.srcCategories\n }), this.chartService);\n copy.createLabels();\n\n return copy;\n }\n\n initUserOptions(options) {\n const categories = options.categories || [];\n const definedMin = defined(options.min);\n const definedMax = defined(options.max);\n options.srcCategories = options.categories = categories;\n\n if ((definedMin || definedMax) && categories.length) {\n const min = definedMin ? Math.floor(options.min) : 0;\n let max;\n\n if (definedMax) {\n max = options.justified ? Math.floor(options.max) + 1 : Math.ceil(options.max);\n } else {\n max = categories.length;\n }\n\n options.categories = options.categories.slice(min, max);\n }\n\n return options;\n }\n\n rangeIndices() {\n const options = this.options;\n const length = options.categories.length || 1;\n const min = isNumber(options.min) ? options.min % 1 : 0;\n let max;\n\n if (isNumber(options.max) && options.max % 1 !== 0 && options.max < this.totalRange().max) {\n max = length - (1 - options.max % 1);\n } else {\n max = length - (options.justified ? 1 : 0);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n range() {\n const options = this.options;\n const min = isNumber(options.min) ? options.min : 0;\n const max = isNumber(options.max) ? options.max : this.totalRange().max;\n\n return {\n min: min,\n max: max\n };\n }\n\n roundedRange() {\n return this.range();\n }\n\n totalRange() {\n const options = this.options;\n return { min: 0, max: Math.max(this._seriesMax || 0, options.srcCategories.length) - (options.justified ? 1 : 0) };\n }\n\n scaleOptions() {\n const { min, max } = this.rangeIndices();\n const lineBox = this.lineBox();\n const size = this.options.vertical ? lineBox.height() : lineBox.width();\n const scale = size / ((max - min) || 1);\n\n return {\n scale: scale * (this.options.reverse ? -1 : 1),\n box: lineBox,\n min: min,\n max: max\n };\n }\n\n arrangeLabels() {\n super.arrangeLabels();\n this.hideOutOfRangeLabels();\n }\n\n hideOutOfRangeLabels() {\n const { box, labels } = this;\n\n if (labels.length > 0) {\n const valueAxis = this.options.vertical ? Y : X;\n const start = box[valueAxis + 1];\n const end = box[valueAxis + 2];\n const firstLabel = labels[0];\n const lastLabel = last(labels);\n\n if (firstLabel.box[valueAxis + 1] > end || firstLabel.box[valueAxis + 2] < start) {\n firstLabel.options.visible = false;\n }\n if (lastLabel.box[valueAxis + 1] > end || lastLabel.box[valueAxis + 2] < start) {\n lastLabel.options.visible = false;\n }\n }\n }\n\n getMajorTickPositions() {\n return this.getTicks().majorTicks;\n }\n\n getMinorTickPositions() {\n return this.getTicks().minorTicks;\n }\n\n getLabelsTickPositions() {\n return this.getTicks().labelTicks;\n }\n\n tickIndices(stepSize) {\n const { min, max } = this.rangeIndices();\n const limit = Math.ceil(max);\n let current = Math.floor(min);\n const indices = [];\n\n while (current <= limit) {\n indices.push(current);\n current += stepSize;\n }\n\n return indices;\n }\n\n getTickPositions(stepSize) {\n const { vertical, reverse } = this.options;\n const { scale, box, min } = this.scaleOptions();\n const pos = box[(vertical ? Y : X) + (reverse ? 2 : 1)];\n const indices = this.tickIndices(stepSize);\n const positions = [];\n\n for (let idx = 0; idx < indices.length; idx++) {\n positions.push(pos + round(scale * (indices[idx] - min), COORD_PRECISION));\n }\n\n return positions;\n }\n\n getTicks() {\n const options = this.options;\n const cache = this._ticks;\n const range = this.rangeIndices();\n const lineBox = this.lineBox();\n const hash = lineBox.getHash() + range.min + \",\" + range.max + options.reverse + options.justified;\n\n if (cache._hash !== hash) {\n const hasMinor = options.minorTicks.visible || options.minorGridLines.visible;\n cache._hash = hash;\n cache.labelTicks = this.getTickPositions(1);\n cache.majorTicks = this.filterOutOfRangePositions(cache.labelTicks, lineBox);\n cache.minorTicks = hasMinor ? this.filterOutOfRangePositions(this.getTickPositions(0.5), lineBox) : [];\n }\n\n return cache;\n }\n\n filterOutOfRangePositions(positions, lineBox) {\n if (!positions.length) {\n return positions;\n }\n\n const axis = this.options.vertical ? Y : X;\n const inRange = (position) => lineBox[axis + 1] <= position && position <= lineBox[axis + 2];\n\n const end = positions.length - 1;\n let startIndex = 0;\n while (!inRange(positions[startIndex]) && startIndex <= end) {\n startIndex++;\n }\n\n let endIndex = end;\n\n while (!inRange(positions[endIndex]) && endIndex >= 0) {\n endIndex--;\n }\n\n return positions.slice(startIndex, endIndex + 1);\n }\n\n lineInfo() {\n const { vertical, reverse } = this.options;\n const lineBox = this.lineBox();\n const lineSize = vertical ? lineBox.height() : lineBox.width();\n const axis = vertical ? Y : X;\n const axisDir = reverse ? -1 : 1;\n const startEdge = axisDir === 1 ? 1 : 2;\n const axisOrigin = axis + startEdge.toString();\n const lineStart = lineBox[axisOrigin];\n\n return {\n axis,\n axisOrigin,\n axisDir,\n lineBox,\n lineSize,\n lineStart\n };\n }\n\n lineDir() {\n /*\n * Category axis line direction:\n * * Vertical: down.\n * * Horizontal: right.\n */\n\n const { reverse } = this.options;\n return reverse ? -1 : 1;\n }\n\n // TODO: Rename to slotBox, valueSlot, slotByIndex?\n getSlot(from, to, limit) {\n const options = this.options;\n const { reverse, justified } = options;\n const { scale, box, min } = this.scaleOptions();\n const { axis: valueAxis, lineStart } = this.lineInfo();\n\n const slotBox = box.clone();\n const singleSlot = !defined(to);\n\n const start = valueOrDefault(from, 0);\n let end = valueOrDefault(to, start);\n end = Math.max(end - 1, start);\n\n // Fixes transient bug caused by iOS 6.0 JIT\n // (one can never be too sure)\n end = Math.max(start, end);\n\n let p1 = lineStart + (start - min) * scale;\n let p2 = lineStart + (end + 1 - min) * scale;\n\n if (singleSlot && justified) {\n p2 = p1;\n }\n\n if (limit) {\n p1 = limitValue(p1, box[valueAxis + 1], box[valueAxis + 2]);\n p2 = limitValue(p2, box[valueAxis + 1], box[valueAxis + 2]);\n }\n\n slotBox[valueAxis + 1] = reverse ? p2 : p1;\n slotBox[valueAxis + 2] = reverse ? p1 : p2;\n\n return slotBox;\n }\n\n limitSlot(slot) {\n const vertical = this.options.vertical;\n const valueAxis = vertical ? Y : X;\n const lineBox = this.lineBox();\n const limittedSlot = slot.clone();\n\n limittedSlot[valueAxis + 1] = limitValue(slot[valueAxis + 1], lineBox[valueAxis + 1], lineBox[valueAxis + 2]);\n limittedSlot[valueAxis + 2] = limitValue(slot[valueAxis + 2], lineBox[valueAxis + 1], lineBox[valueAxis + 2]);\n\n return limittedSlot;\n }\n\n slot(from, to, limit) {\n const min = Math.floor(this.options.min || 0);\n let start = from;\n let end = to;\n\n if (typeof start === \"string\") {\n start = this.categoryIndex(start);\n } else if (isNumber(start)) {\n start -= min;\n }\n\n if (typeof end === \"string\") {\n end = this.categoryIndex(end);\n } else if (isNumber(end)) {\n end -= min;\n }\n\n return super.slot(start, end, limit);\n }\n\n pointCategoryIndex(point) {\n const { reverse, justified, vertical } = this.options;\n const valueAxis = vertical ? Y : X;\n const { scale, box, min, max } = this.scaleOptions();\n const startValue = reverse ? max : min;\n const lineStart = box[valueAxis + 1];\n const lineEnd = box[valueAxis + 2];\n const pos = point[valueAxis];\n\n if (pos < lineStart || pos > lineEnd) {\n return null;\n }\n\n let value = startValue + (pos - lineStart) / scale;\n const diff = value % 1;\n\n if (justified) {\n value = Math.round(value);\n } else if (diff === 0 && value > 0) {\n value--;\n }\n\n return Math.floor(value);\n }\n\n getCategory(point) {\n const index = this.pointCategoryIndex(point);\n\n if (index === null) {\n return null;\n }\n\n return this.options.categories[index];\n }\n\n categoryIndex(value) {\n return this.totalIndex(value) - Math.floor(this.options.min || 0);\n }\n\n categoryAt(index, total) {\n const options = this.options;\n\n return (total ? options.srcCategories : options.categories)[index];\n }\n\n categoriesCount() {\n return (this.options.categories || []).length;\n }\n\n translateRange(delta) {\n const options = this.options;\n const lineBox = this.lineBox();\n const size = options.vertical ? lineBox.height() : lineBox.width();\n const range = options.categories.length;\n const scale = size / range;\n const offset = round(delta / scale, DEFAULT_PRECISION);\n\n return {\n min: offset,\n max: range + offset\n };\n }\n\n scaleRange(scale, cursor) {\n const position = Math.abs(this.pointOffset(cursor));\n const rangeIndices = this.limitedRangeIndices();\n const range = rangeIndices.max - rangeIndices.min;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = position * delta;\n const maxDelta = (1 - position) * delta;\n const min = rangeIndices.min + minDelta;\n let max = rangeIndices.max - maxDelta;\n\n if (max - min < MIN_CATEGORY_RANGE) {\n max = min + MIN_CATEGORY_RANGE;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const { min: totalMin, max: totalMax } = this.totalRange();\n const range = this.scaleRange(scale, cursor);\n\n return {\n min: limitValue(range.min, totalMin, totalMax),\n max: limitValue(range.max, totalMin, totalMax)\n };\n }\n\n labelsCount() {\n const labelsRange = this.labelsRange();\n\n return labelsRange.max - labelsRange.min;\n }\n\n labelsRange() {\n const options = this.options;\n const { justified, labels: labelOptions } = options;\n let { min, max } = this.limitedRangeIndices(true);\n const start = Math.floor(min);\n\n if (!justified) {\n min = Math.floor(min);\n max = Math.ceil(max);\n } else {\n min = Math.ceil(min);\n max = Math.floor(max);\n }\n\n let skip;\n\n if (min > labelOptions.skip) {\n skip = labelOptions.skip + labelOptions.step * Math.ceil((min - labelOptions.skip) / labelOptions.step);\n } else {\n skip = labelOptions.skip;\n }\n\n return {\n min: skip - start,\n max: (options.categories.length ? max + (justified ? 1 : 0) : 0) - start\n };\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const options = this.options;\n const dataItem = options.dataItems ? options.dataItems[index] : null;\n const category = valueOrDefault(options.categories[index], \"\");\n\n labelContext.dataItem = dataItem;\n const text = this.axisLabelText(category, labelOptions, labelContext);\n\n return new AxisLabel(category, text, index, dataItem, labelOptions);\n }\n\n shouldRenderNote(value) {\n const range = this.limitedRangeIndices();\n\n return Math.floor(range.min) <= value && value <= Math.ceil(range.max);\n }\n\n noteSlot(value) {\n const options = this.options;\n const index = value - Math.floor(options.min || 0);\n return this.getSlot(index);\n }\n\n arrangeNotes() {\n super.arrangeNotes();\n this.hideOutOfRangeNotes();\n }\n\n hideOutOfRangeNotes() {\n const { notes, box } = this;\n if (notes && notes.length) {\n const valueAxis = this.options.vertical ? Y : X;\n const start = box[valueAxis + 1];\n const end = box[valueAxis + 2];\n\n for (let idx = 0; idx < notes.length; idx++) {\n const note = notes[idx];\n if (note.box && (end < note.box[valueAxis + 1] || note.box[valueAxis + 2] < start)) {\n note.hide();\n }\n }\n }\n }\n\n pan(delta) {\n const range = this.limitedRangeIndices(true);\n const { scale } = this.scaleOptions();\n const offset = round(delta / scale, DEFAULT_PRECISION);\n const totalRange = this.totalRange();\n const min = range.min + offset;\n const max = range.max + offset;\n\n return this.limitRange(min, max, 0, totalRange.max, offset);\n }\n\n pointsRange(start, end) {\n const { reverse, vertical } = this.options;\n const valueAxis = vertical ? Y : X;\n const range = this.limitedRangeIndices(true);\n const { scale, box } = this.scaleOptions();\n const lineStart = box[valueAxis + (reverse ? 2 : 1)];\n\n const diffStart = start[valueAxis] - lineStart;\n const diffEnd = end[valueAxis] - lineStart;\n\n const min = range.min + diffStart / scale;\n const max = range.min + diffEnd / scale;\n const rangeMin = Math.min(min, max);\n const rangeMax = Math.max(min, max);\n\n if (rangeMax - rangeMin >= MIN_CATEGORY_POINTS_RANGE) {\n return {\n min: rangeMin,\n max: rangeMax\n };\n }\n }\n\n valueRange() {\n return this.range();\n }\n\n totalIndex(value) {\n const options = this.options;\n const index = this._categoriesMap ?\n this._categoriesMap.get(value) : indexOf(value, options.srcCategories);\n\n return index;\n }\n\n currentRangeIndices() {\n const options = this.options;\n let min = 0;\n\n if (isNumber(options.min)) {\n min = Math.floor(options.min);\n }\n\n let max;\n if (isNumber(options.max)) {\n max = options.justified ? Math.floor(options.max) : Math.ceil(options.max) - 1;\n } else {\n max = this.totalCount() - 1;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n limitedRangeIndices(totalLimit) {\n const options = this.options;\n let min = isNumber(options.min) ? options.min : 0;\n let max;\n\n if (isNumber(options.max)) {\n max = options.max;\n } else if (isNumber(options.min)) {\n max = min + options.categories.length;\n } else {\n max = this.totalRange().max || 1;\n }\n\n if (totalLimit) {\n const totalRange = this.totalRange();\n min = limitValue(min, 0, totalRange.max);\n max = limitValue(max, 0, totalRange.max);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n totalRangeIndices() {\n return {\n min: 0,\n max: this.totalRange().max || 1\n };\n }\n\n indexCategories() {\n if (!this._categoriesMap) {\n const map = this._categoriesMap = new HashMap();\n const srcCategories = this.options.srcCategories;\n for (let idx = 0; idx < srcCategories.length; idx++) {\n map.set(srcCategories[idx], idx);\n }\n }\n }\n\n totalCount() {\n return Math.max(this.options.srcCategories.length, this._seriesMax || 0);\n }\n}\n\nsetDefaultOptions(CategoryAxis, {\n type: \"category\",\n vertical: false,\n majorGridLines: {\n visible: false,\n width: 1,\n color: BLACK\n },\n labels: {\n zIndex: 1\n },\n justified: false,\n _deferLabels: true\n});\n\nexport default CategoryAxis;\n","const COORDINATE_LIMIT = 300000;\n\nconst DateLabelFormats = {\n milliseconds: \"HH:mm:ss.fff\",\n seconds: \"HH:mm:ss\",\n minutes: \"HH:mm\",\n hours: \"HH:mm\",\n days: \"M/d\",\n weeks: \"M/d\",\n months: \"MMM 'yy\",\n years: \"yyyy\"\n};\n\nconst ZERO_THRESHOLD = 0.2;\n\nexport {\n COORDINATE_LIMIT, DateLabelFormats, ZERO_THRESHOLD\n};","import CategoryAxis from './category-axis';\nimport AxisLabel from './axis-label';\nimport Box from './box';\n\nimport { CENTER, DATE, DEFAULT_PRECISION, MAX_VALUE, OBJECT, X, Y } from '../common/constants';\nimport { deepExtend, defined, inArray, last, limitValue, round, setDefaultOptions, sparseArrayLimits } from '../common';\n\nimport { MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS,\n TIME_PER_MINUTE, TIME_PER_HOUR, TIME_PER_DAY, TIME_PER_WEEK,\n TIME_PER_MONTH, TIME_PER_YEAR, TIME_PER_UNIT } from '../date-utils/constants';\nimport { dateComparer, toDate, addTicks, addDuration, dateDiff, absoluteDateDiff,\n dateIndex, dateEquals, toTime, parseDate, parseDates, firstDay } from '../date-utils';\n\nimport { DateLabelFormats } from './constants';\n\nconst AUTO = \"auto\";\nconst BASE_UNITS = [\n MILLISECONDS, SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS, YEARS\n];\nconst FIT = \"fit\";\n\n\nfunction categoryRange(categories, clearCache) {\n if (clearCache) {\n categories._range = undefined;\n }\n\n let range = categories._range;\n if (!range) {\n range = categories._range = sparseArrayLimits(categories);\n range.min = toDate(range.min);\n range.max = toDate(range.max);\n }\n\n return range;\n}\n\nclass EmptyDateRange {\n constructor(options) {\n this.options = options;\n }\n\n displayIndices() {\n return {\n min: 0,\n max: 1\n };\n }\n\n displayRange() {\n return {};\n }\n\n total() {\n return {};\n }\n\n valueRange() {\n return {};\n }\n\n valueIndex() {\n return -1;\n }\n\n values() {\n return [];\n }\n\n totalIndex() {\n return -1;\n }\n\n valuesCount() {\n return 0;\n }\n\n totalCount() {\n return 0;\n }\n\n dateAt() {\n return null;\n }\n}\n\nclass DateRange {\n constructor(start, end, options) {\n this.options = options;\n options.baseUnitStep = options.baseUnitStep || 1;\n\n const { roundToBaseUnit, justified } = options;\n\n this.start = addDuration(start, 0, options.baseUnit, options.weekStartDay);\n const lowerEnd = this.roundToTotalStep(end);\n const expandEnd = !justified && dateEquals(end, lowerEnd) && !options.justifyEnd;\n\n this.end = this.roundToTotalStep(end, !justified, expandEnd ? 1 : 0);\n\n const min = options.min || start;\n this.valueStart = this.roundToTotalStep(min);\n this.displayStart = roundToBaseUnit ? this.valueStart : min;\n\n const max = options.max;\n if (!max) {\n this.valueEnd = lowerEnd;\n this.displayEnd = roundToBaseUnit || expandEnd ? this.end : end;\n } else {\n const next = !justified && dateEquals(max, this.roundToTotalStep(max)) ? -1 : 0;\n this.valueEnd = this.roundToTotalStep(max, false, next);\n this.displayEnd = roundToBaseUnit ? this.roundToTotalStep(max, !justified) : options.max;\n }\n\n if (this.valueEnd < this.valueStart) {\n this.valueEnd = this.valueStart;\n }\n if (this.displayEnd <= this.displayStart) {\n this.displayEnd = this.roundToTotalStep(this.displayStart, false, 1);\n }\n }\n\n displayRange() {\n return {\n min: this.displayStart,\n max: this.displayEnd\n };\n }\n\n displayIndices() {\n if (!this._indices) {\n const options = this.options;\n\n const { baseUnit, baseUnitStep } = options;\n\n const minIdx = dateIndex(this.displayStart, this.valueStart, baseUnit, baseUnitStep);\n const maxIdx = dateIndex(this.displayEnd, this.valueStart, baseUnit, baseUnitStep);\n\n this._indices = { min: minIdx, max: maxIdx };\n }\n\n return this._indices;\n }\n\n total() {\n return {\n min: this.start,\n max: this.end\n };\n }\n\n totalCount() {\n const last = this.totalIndex(this.end);\n\n return last + (this.options.justified ? 1 : 0);\n }\n\n valueRange() {\n return {\n min: this.valueStart,\n max: this.valueEnd\n };\n }\n\n valueIndex(value) {\n const options = this.options;\n return Math.floor(dateIndex(value, this.valueStart, options.baseUnit, options.baseUnitStep));\n }\n\n totalIndex(value) {\n const options = this.options;\n return Math.floor(dateIndex(value, this.start, options.baseUnit, options.baseUnitStep));\n }\n\n dateIndex(value) {\n const options = this.options;\n return dateIndex(value, this.valueStart, options.baseUnit, options.baseUnitStep);\n }\n\n valuesCount() {\n const maxIdx = this.valueIndex(this.valueEnd);\n\n return maxIdx + 1;\n }\n\n values() {\n let values = this._values;\n if (!values) {\n const options = this.options;\n const range = this.valueRange();\n this._values = values = [];\n\n for (let date = range.min; date <= range.max;) {\n values.push(date);\n date = addDuration(date, options.baseUnitStep, options.baseUnit, options.weekStartDay);\n }\n }\n\n return values;\n }\n\n dateAt(index, total) {\n const options = this.options;\n\n return addDuration(total ? this.start : this.valueStart, options.baseUnitStep * index, options.baseUnit, options.weekStartDay);\n }\n\n roundToTotalStep(value, upper, next) {\n const { baseUnit, baseUnitStep, weekStartDay } = this.options;\n const start = this.start;\n\n const step = dateIndex(value, start, baseUnit, baseUnitStep);\n let roundedStep = upper ? Math.ceil(step) : Math.floor(step);\n\n if (next) {\n roundedStep += next;\n }\n\n return addDuration(start, roundedStep * baseUnitStep, baseUnit, weekStartDay);\n }\n\n}\n\nfunction autoBaseUnit(options, startUnit, startStep) {\n const categoryLimits = categoryRange(options.categories);\n const span = (options.max || categoryLimits.max) - (options.min || categoryLimits.min);\n const { autoBaseUnitSteps, maxDateGroups } = options;\n const autoUnit = options.baseUnit === FIT;\n let autoUnitIx = startUnit ? BASE_UNITS.indexOf(startUnit) : 0;\n let baseUnit = autoUnit ? BASE_UNITS[autoUnitIx++] : options.baseUnit;\n let units = span / TIME_PER_UNIT[baseUnit];\n let totalUnits = units;\n let unitSteps, step, nextStep;\n\n while (!step || units >= maxDateGroups) {\n unitSteps = unitSteps || autoBaseUnitSteps[baseUnit].slice(0);\n\n do {\n nextStep = unitSteps.shift();\n } while (nextStep && startUnit === baseUnit && nextStep < startStep);\n\n if (nextStep) {\n step = nextStep;\n units = totalUnits / step;\n } else if (baseUnit === last(BASE_UNITS)) {\n step = Math.ceil(totalUnits / maxDateGroups);\n break;\n } else if (autoUnit) {\n baseUnit = BASE_UNITS[autoUnitIx++] || last(BASE_UNITS);\n totalUnits = span / TIME_PER_UNIT[baseUnit];\n unitSteps = null;\n } else {\n if (units > maxDateGroups) {\n step = Math.ceil(totalUnits / maxDateGroups);\n }\n break;\n }\n }\n\n options.baseUnitStep = step;\n options.baseUnit = baseUnit;\n}\n\nfunction defaultBaseUnit(options) {\n const categories = options.categories;\n const count = defined(categories) ? categories.length : 0;\n let minDiff = MAX_VALUE;\n let lastCategory, unit;\n\n for (let categoryIx = 0; categoryIx < count; categoryIx++) {\n const category = categories[categoryIx];\n\n if (category && lastCategory) {\n let diff = Math.abs(absoluteDateDiff(category, lastCategory));\n\n if (diff !== 0) {\n minDiff = Math.min(minDiff, diff);\n\n if (minDiff >= TIME_PER_YEAR) {\n unit = YEARS;\n } else if (minDiff >= TIME_PER_MONTH - TIME_PER_DAY * 3) {\n unit = MONTHS;\n } else if (minDiff >= TIME_PER_WEEK) {\n unit = WEEKS;\n } else if (minDiff >= TIME_PER_DAY) {\n unit = DAYS;\n } else if (minDiff >= TIME_PER_HOUR) {\n unit = HOURS;\n } else if (minDiff >= TIME_PER_MINUTE) {\n unit = MINUTES;\n } else {\n unit = SECONDS;\n }\n }\n }\n\n lastCategory = category;\n }\n\n options.baseUnit = unit || DAYS;\n}\n\nfunction initUnit(options) {\n const baseUnit = (options.baseUnit || \"\").toLowerCase();\n const useDefault = baseUnit !== FIT && !inArray(baseUnit, BASE_UNITS);\n\n if (useDefault) {\n defaultBaseUnit(options);\n }\n\n if (baseUnit === FIT || options.baseUnitStep === AUTO) {\n autoBaseUnit(options);\n }\n\n return options;\n}\n\nclass DateCategoryAxis extends CategoryAxis {\n\n clone() {\n const copy = new DateCategoryAxis(Object.assign({}, this.options), this.chartService);\n copy.createLabels();\n\n return copy;\n }\n\n categoriesHash() {\n const start = this.dataRange.total().min;\n return this.options.baseUnit + this.options.baseUnitStep + start;\n }\n\n initUserOptions(options) {\n return options;\n }\n\n initFields() {\n super.initFields();\n\n const chartService = this.chartService;\n const intlService = chartService.intl;\n let options = this.options;\n\n let categories = options.categories || [];\n if (!categories._parsed) {\n categories = parseDates(intlService, categories);\n categories._parsed = true;\n }\n\n options = deepExtend({\n roundToBaseUnit: true\n }, options, {\n categories: categories,\n min: parseDate(intlService, options.min),\n max: parseDate(intlService, options.max),\n weekStartDay: firstDay(options, intlService)\n });\n\n if (chartService.panning && chartService.isPannable(options.vertical ? Y : X)) {\n options.roundToBaseUnit = false;\n }\n\n options.userSetBaseUnit = options.userSetBaseUnit || options.baseUnit;\n options.userSetBaseUnitStep = options.userSetBaseUnitStep || options.baseUnitStep;\n\n this.options = options;\n options.srcCategories = categories;\n\n if (categories.length > 0) {\n const range = categoryRange(categories, true);\n const maxDivisions = options.maxDivisions;\n const safeOptions = initUnit(options);\n\n const forecast = options._forecast;\n if (forecast) {\n if (forecast.before > 0) {\n range.min = addDuration(range.min, -forecast.before, safeOptions.baseUnit, safeOptions.weekStartDay);\n }\n\n if (forecast.after > 0) {\n range.max = addDuration(range.max, forecast.after, safeOptions.baseUnit, safeOptions.weekStartDay);\n }\n }\n\n this.dataRange = new DateRange(range.min, range.max, safeOptions);\n\n if (maxDivisions) {\n const dataRange = this.dataRange.displayRange();\n\n const divisionOptions = Object.assign({}, options, {\n justified: true,\n roundToBaseUnit: false,\n baseUnit: 'fit',\n min: dataRange.min,\n max: dataRange.max,\n maxDateGroups: maxDivisions\n });\n\n const dataRangeOptions = this.dataRange.options;\n\n autoBaseUnit(divisionOptions, dataRangeOptions.baseUnit, dataRangeOptions.baseUnitStep);\n\n this.divisionRange = new DateRange(range.min, range.max, divisionOptions);\n } else {\n this.divisionRange = this.dataRange;\n }\n\n } else {\n options.baseUnit = options.baseUnit || DAYS;\n this.dataRange = this.divisionRange = new EmptyDateRange(options);\n }\n\n this.rangeLabels = [];\n }\n\n tickIndices(stepSize) {\n const { dataRange, divisionRange } = this;\n const valuesCount = divisionRange.valuesCount();\n\n if (!this.options.maxDivisions || !valuesCount) {\n return super.tickIndices(stepSize);\n }\n\n const indices = [];\n let values = divisionRange.values();\n let offset = 0;\n\n if (!this.options.justified) {\n values = values.concat(divisionRange.dateAt(valuesCount));\n offset = 0.5;//align ticks to the center of not justified categories\n }\n\n for (let idx = 0; idx < values.length; idx++) {\n indices.push(dataRange.dateIndex(values[idx]) + offset);\n if (stepSize !== 1 && idx >= 1) {\n const last = indices.length - 1;\n indices.splice(idx, 0, indices[last - 1] + (indices[last] - indices[last - 1]) * stepSize);\n }\n }\n\n return indices;\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n const categories = this.options.categories || [];\n\n return dateComparer(value, range.min) >= 0 && dateComparer(value, range.max) <= 0 && categories.length;\n }\n\n parseNoteValue(value) {\n return parseDate(this.chartService.intl, value);\n }\n\n noteSlot(value) {\n return this.getSlot(value);\n }\n\n translateRange(delta) {\n const options = this.options;\n const { baseUnit, weekStartDay, vertical } = options;\n const lineBox = this.lineBox();\n const size = vertical ? lineBox.height() : lineBox.width();\n let range = this.range();\n const scale = size / (range.max - range.min);\n const offset = round(delta / scale, DEFAULT_PRECISION);\n\n if (range.min && range.max) {\n const from = addTicks(options.min || range.min, offset);\n const to = addTicks(options.max || range.max, offset);\n\n range = {\n min: addDuration(from, 0, baseUnit, weekStartDay),\n max: addDuration(to, 0, baseUnit, weekStartDay)\n };\n }\n\n return range;\n }\n\n labelsRange() {\n return {\n min: this.options.labels.skip,\n max: this.divisionRange.valuesCount()\n };\n }\n\n pan(delta) {\n if (this.isEmpty()) {\n return null;\n }\n\n const options = this.options;\n const lineBox = this.lineBox();\n const size = options.vertical ? lineBox.height() : lineBox.width();\n const { min, max } = this.dataRange.displayRange();\n const totalLimits = this.dataRange.total();\n const scale = size / (max - min);\n const offset = round(delta / scale, DEFAULT_PRECISION) * (options.reverse ? -1 : 1);\n const from = addTicks(min, offset);\n const to = addTicks(max, offset);\n\n const panRange = this.limitRange(toTime(from), toTime(to), toTime(totalLimits.min), toTime(totalLimits.max), offset);\n\n if (panRange) {\n panRange.min = toDate(panRange.min);\n panRange.max = toDate(panRange.max);\n panRange.baseUnit = options.baseUnit;\n panRange.baseUnitStep = options.baseUnitStep || 1;\n panRange.userSetBaseUnit = options.userSetBaseUnit;\n panRange.userSetBaseUnitStep = options.userSetBaseUnitStep;\n\n return panRange;\n }\n }\n\n pointsRange(start, end) {\n if (this.isEmpty()) {\n return null;\n }\n\n const pointsRange = super.pointsRange(start, end);\n const datesRange = this.dataRange.displayRange();\n const indicesRange = this.dataRange.displayIndices();\n const scale = dateDiff(datesRange.max, datesRange.min) / (indicesRange.max - indicesRange.min);\n const options = this.options;\n\n const min = addTicks(datesRange.min, pointsRange.min * scale);\n const max = addTicks(datesRange.min, pointsRange.max * scale);\n\n return {\n min: min,\n max: max,\n baseUnit: options.userSetBaseUnit || options.baseUnit,\n baseUnitStep: options.userSetBaseUnitStep || options.baseUnitStep\n };\n }\n\n scaleRange(scale, cursor) {\n if (this.isEmpty()) {\n return {};\n }\n\n const options = this.options;\n const fit = options.userSetBaseUnit === FIT;\n const totalLimits = this.dataRange.total();\n const { min: rangeMin, max: rangeMax } = this.dataRange.displayRange();\n\n const position = Math.abs(this.pointOffset(cursor));\n const range = rangeMax - rangeMin;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = Math.round(position * delta);\n const maxDelta = Math.round((1 - position) * delta);\n\n let { baseUnit } = this.dataRange.options;\n let min = new Date(rangeMin.getTime() + minDelta);\n let max = new Date(rangeMax.getTime() - maxDelta);\n\n if (fit) {\n const { autoBaseUnitSteps, maxDateGroups } = options;\n\n const maxDiff = last(autoBaseUnitSteps[baseUnit]) * maxDateGroups * TIME_PER_UNIT[baseUnit];\n const rangeDiff = dateDiff(rangeMax, rangeMin);\n const diff = dateDiff(max, min);\n let baseUnitIndex = BASE_UNITS.indexOf(baseUnit);\n let autoBaseUnitStep, ticks;\n\n if (diff < TIME_PER_UNIT[baseUnit] && baseUnit !== MILLISECONDS) {\n baseUnit = BASE_UNITS[baseUnitIndex - 1];\n autoBaseUnitStep = last(autoBaseUnitSteps[baseUnit]);\n ticks = (rangeDiff - (maxDateGroups - 1) * autoBaseUnitStep * TIME_PER_UNIT[baseUnit]) / 2;\n min = addTicks(rangeMin, ticks);\n max = addTicks(rangeMax, -ticks);\n\n } else if (diff > maxDiff && baseUnit !== YEARS) {\n let stepIndex = 0;\n\n do {\n baseUnitIndex++;\n baseUnit = BASE_UNITS[baseUnitIndex];\n stepIndex = 0;\n ticks = 2 * TIME_PER_UNIT[baseUnit];\n do {\n autoBaseUnitStep = autoBaseUnitSteps[baseUnit][stepIndex];\n stepIndex++;\n } while (stepIndex < autoBaseUnitSteps[baseUnit].length && ticks * autoBaseUnitStep < rangeDiff);\n } while (baseUnit !== YEARS && ticks * autoBaseUnitStep < rangeDiff);\n\n ticks = (ticks * autoBaseUnitStep - rangeDiff) / 2;\n if (ticks > 0) {\n min = addTicks(rangeMin, -ticks);\n max = addTicks(rangeMax, ticks);\n min = addTicks(min, limitValue(max, totalLimits.min, totalLimits.max) - max);\n max = addTicks(max, limitValue(min, totalLimits.min, totalLimits.max) - min);\n }\n }\n }\n\n if (min && max && dateDiff(max, min) > 0) {\n return {\n min: min,\n max: max,\n baseUnit: options.userSetBaseUnit || options.baseUnit,\n baseUnitStep: options.userSetBaseUnitStep || options.baseUnitStep\n };\n }\n }\n\n zoomRange(scale, cursor) {\n const totalLimits = this.dataRange.total();\n const range = this.scaleRange(scale, cursor);\n\n if (range) {\n if (range.min < totalLimits.min) {\n range.min = totalLimits.min;\n }\n if (range.max > totalLimits.max) {\n range.max = totalLimits.max;\n }\n }\n\n return range;\n }\n\n range() {\n return this.dataRange.displayRange();\n }\n\n createLabels() {\n super.createLabels();\n this.createRangeLabels();\n }\n\n clearLabels() {\n super.clearLabels();\n this.rangeLabels = [];\n }\n\n arrangeLabels() {\n this.arrangeRangeLabels();\n super.arrangeLabels();\n }\n\n arrangeRangeLabels() {\n const { options, rangeLabels } = this;\n if (rangeLabels.length === 0) {\n return;\n }\n\n const lineBox = this.lineBox();\n const vertical = options.vertical;\n const mirror = options.rangeLabels.mirror || options.labels.mirror;\n\n const firstLabel = rangeLabels[0];\n if (firstLabel) {\n const position = vertical ? lineBox.y1 - (firstLabel.box.height() / 2) : lineBox.x1;\n this.positionLabel(firstLabel, mirror, position);\n }\n\n const lastLabel = rangeLabels[1];\n if (lastLabel) {\n const position = vertical ? lineBox.y2 - (lastLabel.box.height() / 2) : lineBox.x2;\n this.positionLabel(lastLabel, mirror, position);\n }\n }\n\n autoRotateLabels() {\n super.autoRotateLabels();\n this.autoRotateRangeLabels();\n }\n\n hideOutOfRangeLabels() {\n super.hideOutOfRangeLabels();\n this.hideOverlappingLabels();\n }\n\n hideOverlappingLabels() {\n const { rangeLabels, labels } = this;\n if (rangeLabels.length === 0) {\n return;\n }\n\n function clip(rangeLabel, label) {\n if (!label.options.visible || label.box.overlaps(rangeLabel.box)) {\n label.options.visible = false;\n return true;\n }\n\n return false;\n }\n\n const firstRangeLabel = rangeLabels[0];\n if (firstRangeLabel && firstRangeLabel.options.visible) {\n for (let i = 0; i < labels.length; i++) {\n const overlaps = clip(firstRangeLabel, labels[i]);\n if (!overlaps) {\n break;\n }\n }\n }\n\n const lastRangeLabel = rangeLabels[1];\n if (lastRangeLabel && lastRangeLabel.options.visible) {\n for (let i = labels.length - 1; i > 0; --i) {\n const overlaps = clip(lastRangeLabel, labels[i]);\n if (!overlaps) {\n break;\n }\n }\n }\n }\n\n contentBox() {\n const box = super.contentBox();\n const rangeLabels = this.rangeLabels;\n\n for (let i = 0; i < rangeLabels.length; i++) {\n const label = rangeLabels[i];\n if (label.options.visible) {\n box.wrap(label.box);\n }\n }\n\n return box;\n }\n\n createAxisLabel(index, labelOptions, labelContext = {}) {\n const options = this.options;\n const dataItem = options.dataItems && !options.maxDivisions ? options.dataItems[index] : null;\n const date = this.divisionRange.dateAt(index);\n const unitFormat = labelOptions.dateFormats[this.divisionRange.options.baseUnit];\n\n labelOptions.format = labelOptions.format || unitFormat;\n labelContext.dataItem = dataItem;\n\n const text = this.axisLabelText(date, labelOptions, labelContext);\n if (text) {\n return new AxisLabel(date, text, index, dataItem, labelOptions);\n }\n }\n\n createRangeLabels() {\n const { displayStart, displayEnd } = this.divisionRange;\n const options = this.options;\n const labelOptions = Object.assign({}, options.labels, options.rangeLabels, {\n align: CENTER,\n zIndex: options.zIndex\n });\n\n if (labelOptions.visible !== true) {\n return;\n }\n\n this.normalizeLabelRotation(labelOptions);\n labelOptions.alignRotation = CENTER;\n\n if (labelOptions.rotation === \"auto\") {\n labelOptions.rotation = 0;\n options.autoRotateRangeLabels = true;\n }\n\n const unitFormat = labelOptions.dateFormats[this.divisionRange.options.baseUnit];\n labelOptions.format = labelOptions.format || unitFormat;\n\n const createLabel = (index, date, text) => {\n if (text) {\n const label = new AxisLabel(date, text, index, null, labelOptions);\n this.append(label);\n this.rangeLabels.push(label);\n }\n };\n\n const startText = this.axisLabelText(displayStart, labelOptions, { index: 0, count: 2 });\n createLabel(0, displayStart, startText);\n\n const endText = this.axisLabelText(displayEnd, labelOptions, { index: 1, count: 2 });\n createLabel(1, displayEnd, endText);\n }\n\n autoRotateRangeLabels() {\n const labels = this.rangeLabels;\n if (!this.options.autoRotateRangeLabels || this.options.vertical || labels.length !== 2) {\n return;\n }\n\n const rotateLabel = (label, tickPositions, index) => {\n const width = Math.abs(tickPositions[index + 1] - tickPositions[index]) * 2;\n const angle = this.autoRotateLabelAngle(label.box, width);\n if (angle !== 0) {\n label.options.rotation = angle;\n label.reflow(new Box());\n }\n };\n\n const tickPositions = this.getMajorTickPositions();\n rotateLabel(labels[0], tickPositions, 0);\n rotateLabel(labels[1], tickPositions, tickPositions.length - 2);\n }\n\n categoryIndex(value) {\n return this.dataRange.valueIndex(value);\n }\n\n slot(from, to, limit) {\n const dateRange = this.dataRange;\n let start = from;\n let end = to;\n\n if (start instanceof Date) {\n start = dateRange.dateIndex(start);\n }\n\n if (end instanceof Date) {\n end = dateRange.dateIndex(end);\n }\n\n const slot = this.getSlot(start, end, limit);\n if (slot) {\n return slot.toRect();\n }\n }\n\n getSlot(a, b, limit) {\n let start = a;\n let end = b;\n\n if (typeof start === OBJECT) {\n start = this.categoryIndex(start);\n }\n\n if (typeof end === OBJECT) {\n end = this.categoryIndex(end);\n }\n\n return super.getSlot(start, end, limit);\n }\n\n valueRange() {\n const options = this.options;\n const range = categoryRange(options.srcCategories);\n\n return {\n min: toDate(range.min),\n max: toDate(range.max)\n };\n }\n\n categoryAt(index, total) {\n return this.dataRange.dateAt(index, total);\n }\n\n categoriesCount() {\n return this.dataRange.valuesCount();\n }\n\n rangeIndices() {\n return this.dataRange.displayIndices();\n }\n\n labelsBetweenTicks() {\n return !this.divisionRange.options.justified;\n }\n\n prepareUserOptions() {\n if (this.isEmpty()) {\n return;\n }\n\n this.options.categories = this.dataRange.values();\n }\n\n getCategory(point) {\n const index = this.pointCategoryIndex(point);\n\n if (index === null) {\n return null;\n }\n\n return this.dataRange.dateAt(index);\n }\n\n totalIndex(value) {\n return this.dataRange.totalIndex(value);\n }\n\n currentRangeIndices() {\n const range = this.dataRange.valueRange();\n return {\n min: this.dataRange.totalIndex(range.min),\n max: this.dataRange.totalIndex(range.max)\n };\n }\n\n totalRange() {\n return this.dataRange.total();\n }\n\n totalRangeIndices() {\n const range = this.dataRange.total();\n return {\n min: this.dataRange.totalIndex(range.min),\n max: this.dataRange.totalIndex(range.max)\n };\n }\n\n totalCount() {\n return this.dataRange.totalCount();\n }\n\n isEmpty() {\n return !this.options.srcCategories.length;\n }\n\n roundedRange() {\n if (this.options.roundToBaseUnit !== false || this.isEmpty()) {\n return this.range();\n }\n\n const options = this.options;\n const datesRange = categoryRange(options.srcCategories);\n\n const dateRange = new DateRange(datesRange.min, datesRange.max, Object.assign({}, options, {\n justified: false,\n roundToBaseUnit: true,\n justifyEnd: false\n }));\n\n return dateRange.displayRange();\n }\n}\n\nsetDefaultOptions(DateCategoryAxis, {\n type: DATE,\n labels: {\n dateFormats: DateLabelFormats\n },\n rangeLabels: {\n visible: false\n },\n autoBaseUnitSteps: {\n milliseconds: [ 1, 10, 100 ],\n seconds: [ 1, 2, 5, 15, 30 ],\n minutes: [ 1, 2, 5, 15, 30 ],\n hours: [ 1, 2, 3 ],\n days: [ 1, 2, 3 ],\n weeks: [ 1, 2 ],\n months: [ 1, 2, 3, 6 ],\n years: [ 1, 2, 3, 5, 10, 25, 50 ]\n },\n maxDateGroups: 10\n});\n\nexport default DateCategoryAxis;\n","import { DEFAULT_PRECISION } from '../../common/constants';\nimport { round } from '../../common';\n\nexport default function floor(value, step) {\n return round(Math.floor(value / step) * step, DEFAULT_PRECISION);\n}\n","import { DEFAULT_PRECISION } from '../../common/constants';\nimport { round } from '../../common';\n\nexport default function ceil(value, step) {\n return round(Math.ceil(value / step) * step, DEFAULT_PRECISION);\n}","import { COORDINATE_LIMIT } from '../constants';\n\nexport default function limitCoordinate(value) {\n return Math.max(Math.min(value, COORDINATE_LIMIT), -COORDINATE_LIMIT);\n}","\nimport Axis from './axis';\nimport AxisLabel from './axis-label';\nimport Box from './box';\n\nimport { BLACK, DEFAULT_PRECISION, COORD_PRECISION } from '../common/constants';\nimport { deepExtend, defined, limitValue, round, setDefaultOptions, valueOrDefault } from '../common';\n\nimport autoMajorUnit from './utils/auto-major-unit';\nimport autoAxisMin from './utils/auto-axis-min';\nimport autoAxisMax from './utils/auto-axis-max';\nimport floor from './utils/floor';\nimport ceil from './utils/ceil';\nimport limitCoordinate from './utils/limit-coordinate';\n\nconst MIN_VALUE_RANGE = Math.pow(10, -DEFAULT_PRECISION + 1);\n\nclass NumericAxis extends Axis {\n\n constructor(seriesMin, seriesMax, options, chartService) {\n super(Object.assign({}, options, {\n seriesMin: seriesMin,\n seriesMax: seriesMax\n }), chartService);\n }\n\n initUserOptions(options) {\n const autoOptions = autoAxisOptions(options.seriesMin, options.seriesMax, options);\n this.totalOptions = totalAxisOptions(autoOptions, options);\n\n return axisOptions(autoOptions, options);\n }\n\n initFields() {\n this.totalMin = this.totalOptions.min;\n this.totalMax = this.totalOptions.max;\n this.totalMajorUnit = this.totalOptions.majorUnit;\n this.seriesMin = this.options.seriesMin;\n this.seriesMax = this.options.seriesMax;\n }\n\n clone() {\n return new NumericAxis(\n this.seriesMin,\n this.seriesMax,\n Object.assign({}, this.options),\n this.chartService\n );\n }\n\n startValue() {\n return 0;\n }\n\n range() {\n const options = this.options;\n return { min: options.min, max: options.max };\n }\n\n getDivisions(stepValue) {\n if (stepValue === 0) {\n return 1;\n }\n\n const options = this.options;\n const range = options.max - options.min;\n\n return Math.floor(round(range / stepValue, COORD_PRECISION)) + 1;\n }\n\n getTickPositions(unit, skipUnit) {\n const options = this.options;\n const { axisDir, axisOrigin, lineBox, lineSize } = this.lineInfo();\n const range = options.max - options.min;\n const scale = lineSize / range;\n const step = unit * scale;\n const divisions = this.getDivisions(unit);\n const positions = [];\n let pos = lineBox[axisOrigin];\n let skipStep = 0;\n\n if (skipUnit) {\n skipStep = skipUnit / unit;\n }\n\n for (let idx = 0; idx < divisions; idx++) {\n if (idx % skipStep !== 0) {\n positions.push(round(pos, COORD_PRECISION));\n }\n\n pos = pos + step * axisDir;\n }\n\n return positions;\n }\n\n getMajorTickPositions() {\n return this.getTickPositions(this.options.majorUnit);\n }\n\n getMinorTickPositions() {\n return this.getTickPositions(this.options.minorUnit);\n }\n\n getSlot(a, b, limit = false) {\n const options = this.options;\n const { axis, axisDir, lineBox, lineSize, lineStart } = this.lineInfo();\n const step = axisDir * (lineSize / (options.max - options.min));\n\n let start = valueOrDefault(a, b || 0);\n let end = valueOrDefault(b, a || 0);\n\n if (limit) {\n start = limitValue(start, options.min, options.max);\n end = limitValue(end, options.min, options.max);\n }\n\n const p1 = Math.min(start, end) - options.min;\n const p2 = Math.max(start, end) - options.min;\n\n const slotBox = new Box(lineBox.x1, lineBox.y1, lineBox.x1, lineBox.y1);\n slotBox[axis + 1] = limitCoordinate(lineStart + step * (axisDir > 0 ? p1 : p2));\n slotBox[axis + 2] = limitCoordinate(lineStart + step * (axisDir > 0 ? p2 : p1));\n\n return slotBox;\n }\n\n getValue(point) {\n const options = this.options;\n const max = Number(options.max);\n const min = Number(options.min);\n const offset = this.pointOffset(point);\n const valueOffset = offset * (max - min);\n\n if (offset < 0 || offset > 1) {\n return null;\n }\n\n const value = min + valueOffset;\n return round(value, DEFAULT_PRECISION);\n }\n\n translateRange(delta) {\n const options = this.options;\n const { vertical, reverse, max, min } = options;\n const { lineSize } = this.lineInfo();\n const range = max - min;\n const scale = lineSize / range;\n let offset = round(delta / scale, DEFAULT_PRECISION);\n\n if ((vertical || reverse) && !(vertical && reverse )) {\n offset = -offset;\n }\n\n return {\n min: min + offset,\n max: max + offset,\n offset: offset\n };\n }\n\n labelsCount() {\n return this.getDivisions(this.options.majorUnit);\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const options = this.options;\n const value = round(options.min + (index * options.majorUnit), DEFAULT_PRECISION);\n const text = this.axisLabelText(value, labelOptions, labelContext);\n\n return new AxisLabel(value, text, index, null, labelOptions);\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n return range.min <= value && value <= range.max;\n }\n\n pan(delta) {\n const range = this.translateRange(delta);\n return this.limitRange(range.min, range.max, this.totalMin, this.totalMax, range.offset);\n }\n\n pointsRange(start, end) {\n const startValue = this.getValue(start);\n const endValue = this.getValue(end);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n\n if (this.isValidRange(min, max)) {\n return {\n min: min,\n max: max\n };\n }\n }\n\n scaleRange(scale, cursor) {\n const position = Math.abs(this.pointOffset(cursor));\n const range = this.options.max - this.options.min;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = position * delta;\n const maxDelta = (1 - position) * delta;\n const min = round(this.options.min + minDelta, DEFAULT_PRECISION);\n let max = round(this.options.max - maxDelta, DEFAULT_PRECISION);\n\n if (max - min < MIN_VALUE_RANGE) {\n max = min + MIN_VALUE_RANGE;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const { totalMin, totalMax } = this;\n const range = this.scaleRange(scale, cursor);\n\n return {\n min: limitValue(range.min, totalMin, totalMax),\n max: limitValue(range.max, totalMin, totalMax),\n narrowRange: false\n };\n }\n\n isValidRange(min, max) {\n return max - min > MIN_VALUE_RANGE;\n }\n}\n\nfunction autoAxisOptions(seriesMin, seriesMax, options) {\n const narrowRange = options.narrowRange;\n\n let autoMin = autoAxisMin(seriesMin, seriesMax, narrowRange);\n let autoMax = autoAxisMax(seriesMin, seriesMax, narrowRange);\n\n const majorUnit = autoMajorUnit(autoMin, autoMax);\n const autoOptions = {\n majorUnit: majorUnit\n };\n\n if (options.roundToMajorUnit !== false) {\n if (autoMin < 0 && remainderClose(autoMin, majorUnit, 1 / 3)) {\n autoMin -= majorUnit;\n }\n\n if (autoMax > 0 && remainderClose(autoMax, majorUnit, 1 / 3)) {\n autoMax += majorUnit;\n }\n }\n\n autoOptions.min = floor(autoMin, majorUnit);\n autoOptions.max = ceil(autoMax, majorUnit);\n\n return autoOptions;\n}\n\nfunction totalAxisOptions(autoOptions, options) {\n return {\n min: defined(options.min) ? Math.min(autoOptions.min, options.min) : autoOptions.min,\n max: defined(options.max) ? Math.max(autoOptions.max, options.max) : autoOptions.max,\n majorUnit: autoOptions.majorUnit\n };\n}\n\nfunction clearNullValues(options, fields) {\n for (let idx = 0; idx < fields.length; idx++) {\n const field = fields[idx];\n if (options[field] === null) {\n options[field] = undefined;\n }\n }\n}\n\nfunction axisOptions(autoOptions, userOptions) {\n let options = userOptions;\n let userSetMin, userSetMax;\n\n if (userOptions) {\n clearNullValues(userOptions, [ 'min', 'max' ]);\n\n userSetMin = defined(userOptions.min);\n userSetMax = defined(userOptions.max);\n\n const userSetLimits = userSetMin || userSetMax;\n\n if (userSetLimits) {\n if (userOptions.min === userOptions.max) {\n if (userOptions.min > 0) {\n userOptions.min = 0;\n } else {\n userOptions.max = 1;\n }\n }\n }\n\n if (userOptions.majorUnit) {\n autoOptions.min = floor(autoOptions.min, userOptions.majorUnit);\n autoOptions.max = ceil(autoOptions.max, userOptions.majorUnit);\n } else if (userSetLimits) {\n options = deepExtend(autoOptions, userOptions);\n\n // Determine an auto major unit after min/max have been set\n autoOptions.majorUnit = autoMajorUnit(options.min, options.max);\n }\n }\n\n autoOptions.minorUnit = (options.majorUnit || autoOptions.majorUnit) / 5;\n\n const result = deepExtend(autoOptions, options);\n if (result.min >= result.max) {\n if (userSetMin && !userSetMax) {\n result.max = result.min + result.majorUnit;\n } else if (!userSetMin && userSetMax) {\n result.min = result.max - result.majorUnit;\n }\n }\n\n return result;\n}\n\nfunction remainderClose(value, divisor, ratio) {\n const remainder = round(Math.abs(value % divisor), DEFAULT_PRECISION);\n const threshold = divisor * (1 - ratio);\n\n return remainder === 0 || remainder > threshold;\n}\n\nsetDefaultOptions(NumericAxis, {\n type: \"numeric\",\n min: 0,\n max: 1,\n vertical: true,\n majorGridLines: {\n visible: true,\n width: 1,\n color: BLACK\n },\n labels: {\n format: \"#.####################\"\n },\n zIndex: 1\n});\n\nexport default NumericAxis;\n","import { ZERO_THRESHOLD } from '../constants';\n\nexport default function autoAxisMin(min, max, narrow) {\n if (!min && !max) {\n return 0;\n }\n\n let axisMin;\n\n if (min >= 0 && max >= 0) {\n const minValue = min === max ? 0 : min;\n\n let diff = (max - minValue) / max;\n if (narrow === false || (!narrow && diff > ZERO_THRESHOLD)) {\n return 0;\n }\n\n axisMin = Math.max(0, minValue - ((max - minValue) / 2));\n } else {\n axisMin = min;\n }\n\n return axisMin;\n}\n","import { ZERO_THRESHOLD } from '../constants';\n\nexport default function autoAxisMax(min, max, narrow) {\n if (!min && !max) {\n return 1;\n }\n\n let axisMax;\n\n if (min <= 0 && max <= 0) {\n const maxValue = min === max ? 0 : max;\n\n let diff = Math.abs((maxValue - min) / maxValue);\n if (narrow === false || (!narrow && diff > ZERO_THRESHOLD)) {\n return 0;\n }\n\n axisMax = Math.min(0, maxValue - ((min - maxValue) / 2));\n } else {\n axisMax = max;\n }\n\n return axisMax;\n}","import Axis from './axis';\nimport NumericAxis from './numeric-axis';\nimport AxisLabel from './axis-label';\nimport { DateLabelFormats } from './constants';\n\nimport { BLACK, DATE, COORD_PRECISION, DEFAULT_PRECISION } from '../common/constants';\nimport { setDefaultOptions, deepExtend, limitValue, round } from '../common';\n\nimport autoMajorUnit from './utils/auto-major-unit';\nimport ceil from './utils/ceil';\n\nimport { toDate, toTime, floorDate, ceilDate, duration, addDuration, addTicks, dateDiff, absoluteDateDiff, dateComparer, parseDate, parseDates, firstDay } from '../date-utils';\nimport { HOURS, DAYS, WEEKS, MONTHS, YEARS, TIME_PER_DAY, TIME_PER_WEEK, TIME_PER_MONTH, TIME_PER_YEAR, TIME_PER_UNIT } from '../date-utils/constants';\n\nconst MIN_VALUE_RANGE = 1000;\n\nclass DateValueAxis extends Axis {\n constructor(seriesMin, seriesMax, axisOptions, chartService) {\n const min = toDate(seriesMin);\n const max = toDate(seriesMax);\n\n const intlService = chartService.intl;\n let options = axisOptions || {};\n options = deepExtend(options || {}, {\n min: parseDate(intlService, options.min),\n max: parseDate(intlService, options.max),\n axisCrossingValue: parseDates(intlService, options.axisCrossingValues || options.axisCrossingValue),\n weekStartDay: firstDay(options, intlService)\n });\n options = applyDefaults(min, max, options);\n\n super(options, chartService);\n\n this.intlService = intlService;\n this.seriesMin = min;\n this.seriesMax = max;\n\n const weekStartDay = options.weekStartDay || 0;\n this.totalMin = toTime(floorDate(toTime(min) - 1, options.baseUnit, weekStartDay));\n this.totalMax = toTime(ceilDate(toTime(max) + 1, options.baseUnit, weekStartDay));\n }\n\n clone() {\n return new DateValueAxis(this.seriesMin, this.seriesMax, Object.assign({}, this.options), this.chartService);\n }\n\n range() {\n const options = this.options;\n return { min: options.min, max: options.max };\n }\n\n getDivisions(stepValue) {\n const options = this.options;\n\n return Math.floor(\n duration(options.min, options.max, options.baseUnit) / stepValue + 1\n );\n }\n\n getTickPositions(step) {\n const options = this.options;\n const { axisDir: dir, lineSize, lineStart: start } = this.lineInfo();\n const divisions = this.getDivisions(step);\n const timeRange = dateDiff(options.max, options.min);\n const scale = lineSize / timeRange;\n const weekStartDay = options.weekStartDay || 0;\n\n const positions = [ start ];\n for (let i = 1; i < divisions; i++) {\n const date = addDuration(options.min, i * step, options.baseUnit, weekStartDay);\n const pos = start + dateDiff(date, options.min) * scale * dir;\n\n positions.push(round(pos, COORD_PRECISION));\n }\n\n return positions;\n }\n\n getMajorTickPositions() {\n return this.getTickPositions(this.options.majorUnit);\n }\n\n getMinorTickPositions() {\n return this.getTickPositions(this.options.minorUnit);\n }\n\n getSlot(a, b, limit) {\n return NumericAxis.prototype.getSlot.call(\n this, parseDate(this.intlService, a), parseDate(this.intlService, b), limit\n );\n }\n\n getValue(point) {\n const value = NumericAxis.prototype.getValue.call(this, point);\n\n return value !== null ? toDate(value) : null;\n }\n\n labelsCount() {\n return this.getDivisions(this.options.majorUnit);\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const options = this.options;\n const offset = index * options.majorUnit;\n const weekStartDay = options.weekStartDay || 0;\n let date = options.min;\n\n if (offset > 0) {\n date = addDuration(date, offset, options.baseUnit, weekStartDay);\n }\n\n const unitFormat = labelOptions.dateFormats[options.baseUnit];\n labelOptions.format = labelOptions.format || unitFormat;\n\n const text = this.axisLabelText(date, labelOptions, labelContext);\n return new AxisLabel(date, text, index, null, labelOptions);\n }\n\n translateRange(delta) {\n const options = this.options;\n const lineBox = this.lineBox();\n const { vertical, reverse } = options;\n const size = vertical ? lineBox.height() : lineBox.width();\n const range = this.range();\n const scale = size / dateDiff(range.max, range.min);\n\n let offset = round(delta / scale, DEFAULT_PRECISION);\n if ((vertical || reverse) && !(vertical && reverse )) {\n offset = -offset;\n }\n\n let from = addTicks(options.min, offset);\n let to = addTicks(options.max, offset);\n\n return {\n min: from,\n max: to,\n offset: offset\n };\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n\n return dateComparer(value, range.min) >= 0 && dateComparer(value, range.max) <= 0;\n }\n\n pan(delta) {\n const range = this.translateRange(delta, true);\n const limittedRange = this.limitRange(toTime(range.min), toTime(range.max), this.totalMin, this.totalMax, range.offset);\n\n if (limittedRange) {\n return {\n min: toDate(limittedRange.min),\n max: toDate(limittedRange.max)\n };\n }\n }\n\n pointsRange(start, end) {\n const startValue = this.getValue(start);\n const endValue = this.getValue(end);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n\n return {\n min: toDate(min),\n max: toDate(max)\n };\n }\n\n scaleRange(scale, cursor) {\n const position = Math.abs(this.pointOffset(cursor));\n const range = this.options.max - this.options.min;\n const delta = this.scaleToDelta(scale, range);\n const minDelta = position * delta;\n const maxDelta = (1 - position) * delta;\n const min = toDate(toTime(this.options.min) + minDelta);\n let max = toDate(toTime(this.options.max) - maxDelta);\n\n if (max - min < MIN_VALUE_RANGE) {\n max = toDate(toTime(min) + MIN_VALUE_RANGE);\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const range = this.scaleRange(scale, cursor);\n const min = toDate(limitValue(toTime(range.min), this.totalMin, this.totalMax));\n const max = toDate(limitValue(toTime(range.max), this.totalMin, this.totalMax));\n\n return {\n min,\n max\n };\n }\n}\n\nfunction timeUnits(delta) {\n let unit = HOURS;\n\n if (delta >= TIME_PER_YEAR) {\n unit = YEARS;\n } else if (delta >= TIME_PER_MONTH) {\n unit = MONTHS;\n } else if (delta >= TIME_PER_WEEK) {\n unit = WEEKS;\n } else if (delta >= TIME_PER_DAY) {\n unit = DAYS;\n }\n\n return unit;\n}\n\nfunction applyDefaults(seriesMin, seriesMax, options) {\n const min = options.min || seriesMin;\n const max = options.max || seriesMax;\n const baseUnit = options.baseUnit || (max && min ? timeUnits(absoluteDateDiff(max, min)) : HOURS);\n const baseUnitTime = TIME_PER_UNIT[baseUnit];\n const weekStartDay = options.weekStartDay || 0;\n const autoMin = floorDate(toTime(min) - 1, baseUnit, weekStartDay) || toDate(max);\n const autoMax = ceilDate(toTime(max) + 1, baseUnit, weekStartDay);\n const userMajorUnit = options.majorUnit ? options.majorUnit : undefined;\n const majorUnit = userMajorUnit || ceil(\n autoMajorUnit(autoMin.getTime(), autoMax.getTime()),\n baseUnitTime\n ) / baseUnitTime;\n const actualUnits = duration(autoMin, autoMax, baseUnit);\n const totalUnits = ceil(actualUnits, majorUnit);\n const unitsToAdd = totalUnits - actualUnits;\n const head = Math.floor(unitsToAdd / 2);\n const tail = unitsToAdd - head;\n\n if (!options.baseUnit) {\n delete options.baseUnit;\n }\n\n options.baseUnit = options.baseUnit || baseUnit;\n options.min = options.min || addDuration(autoMin, -head, baseUnit, weekStartDay);\n options.max = options.max || addDuration(autoMax, tail, baseUnit, weekStartDay);\n options.minorUnit = options.minorUnit || majorUnit / 5;\n options.majorUnit = majorUnit;\n\n return options;\n}\n\nsetDefaultOptions(DateValueAxis, {\n type: DATE,\n majorGridLines: {\n visible: true,\n width: 1,\n color: BLACK\n },\n labels: {\n dateFormats: DateLabelFormats\n }\n});\n\nexport default DateValueAxis;\n","\nimport Axis from './axis';\nimport AxisLabel from './axis-label';\nimport Box from './box';\n\nimport createAxisTick from './utils/create-axis-tick';\nimport createAxisGridLine from './utils/create-axis-grid-line';\nimport limitCoordinate from './utils/limit-coordinate';\n\nimport { DEFAULT_PRECISION, BLACK } from '../common/constants';\nimport { deepExtend, defined, inArray, limitValue, round, setDefaultOptions, valueOrDefault } from '../common';\n\nconst DEFAULT_MAJOR_UNIT = 10;\nconst MIN_VALUE_RANGE = 1e-6;\n\nclass LogarithmicAxis extends Axis {\n constructor(seriesMin, seriesMax, options, chartService) {\n\n const axisOptions = deepExtend({ majorUnit: DEFAULT_MAJOR_UNIT, min: seriesMin, max: seriesMax }, options);\n const base = axisOptions.majorUnit;\n const autoMax = autoAxisMax(seriesMax, base);\n const autoMin = autoAxisMin(seriesMin, seriesMax, axisOptions);\n const range = initRange(autoMin, autoMax, axisOptions, options);\n\n axisOptions.max = range.max;\n axisOptions.min = range.min;\n axisOptions.minorUnit = options.minorUnit || round(base - 1, DEFAULT_PRECISION);\n\n super(axisOptions, chartService);\n\n this.totalMin = defined(options.min) ? Math.min(autoMin, options.min) : autoMin;\n this.totalMax = defined(options.max) ? Math.max(autoMax, options.max) : autoMax;\n this.logMin = round(log(range.min, base), DEFAULT_PRECISION);\n this.logMax = round(log(range.max, base), DEFAULT_PRECISION);\n this.seriesMin = seriesMin;\n this.seriesMax = seriesMax;\n\n this.createLabels();\n }\n\n clone() {\n return new LogarithmicAxis(\n this.seriesMin,\n this.seriesMax,\n Object.assign({}, this.options),\n this.chartService\n );\n }\n\n startValue() {\n return this.options.min;\n }\n\n getSlot(a, b, limit) {\n const { options, logMin, logMax } = this;\n const { majorUnit: base, min, max } = options;\n const { axis, axisDir, lineBox, lineSize, lineStart } = this.lineInfo();\n const step = axisDir * (lineSize / (logMax - logMin));\n let start = valueOrDefault(a, b || 1);\n let end = valueOrDefault(b, a || 1);\n\n if (start <= 0 || end <= 0) {\n return null;\n }\n\n if (limit) {\n start = limitValue(start, min, max);\n end = limitValue(end, min, max);\n }\n\n start = log(start, base);\n end = log(end, base);\n\n const p1 = Math.min(start, end) - logMin;\n const p2 = Math.max(start, end) - logMin;\n\n const slotBox = new Box(lineBox.x1, lineBox.y1, lineBox.x1, lineBox.y1);\n slotBox[axis + 1] = limitCoordinate(lineStart + step * (axisDir > 0 ? p1 : p2));\n slotBox[axis + 2] = limitCoordinate(lineStart + step * (axisDir > 0 ? p2 : p1));\n\n return slotBox;\n }\n\n getValue(point) {\n const { options, logMin, logMax } = this;\n const { majorUnit: base } = options;\n const { axis, axisDir, lineStart, lineSize } = this.lineInfo();\n const step = ((logMax - logMin) / lineSize);\n const offset = axisDir * (point[axis] - lineStart);\n const valueOffset = offset * step;\n\n if (offset < 0 || offset > lineSize) {\n return null;\n }\n\n const value = logMin + valueOffset;\n\n return round(Math.pow(base, value), DEFAULT_PRECISION);\n }\n\n range() {\n const options = this.options;\n return { min: options.min, max: options.max };\n }\n\n translateRange(delta) {\n const { options, logMin, logMax } = this;\n const { reverse, vertical, majorUnit: base } = options;\n const lineBox = this.lineBox();\n const size = vertical ? lineBox.height() : lineBox.width();\n const scale = size / (logMax - logMin);\n let offset = round(delta / scale, DEFAULT_PRECISION);\n\n if ((vertical || reverse) && !(vertical && reverse )) {\n offset = -offset;\n }\n\n return {\n min: Math.pow(base, logMin + offset),\n max: Math.pow(base, logMax + offset),\n offset: offset\n };\n }\n\n labelsCount() {\n const floorMax = Math.floor(this.logMax);\n const count = Math.floor(floorMax - this.logMin) + 1;\n\n return count;\n }\n\n getMajorTickPositions() {\n const ticks = [];\n\n this.traverseMajorTicksPositions((position) => {\n ticks.push(position);\n }, { step: 1, skip: 0 });\n\n return ticks;\n }\n\n createTicks(lineGroup) {\n const options = this.options;\n const { majorTicks, minorTicks, vertical } = options;\n const mirror = options.labels.mirror;\n const lineBox = this.lineBox();\n const ticks = [];\n const tickLineOptions = {\n // TODO\n // _alignLines: options._alignLines,\n vertical: vertical\n };\n\n function render(tickPosition, tickOptions) {\n tickLineOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size;\n tickLineOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1;\n tickLineOptions.position = tickPosition;\n\n lineGroup.append(createAxisTick(tickLineOptions, tickOptions));\n }\n\n if (majorTicks.visible) {\n this.traverseMajorTicksPositions(render, majorTicks);\n }\n\n if (minorTicks.visible) {\n this.traverseMinorTicksPositions(render, minorTicks);\n }\n\n return ticks;\n }\n\n createGridLines(altAxis) {\n const options = this.options;\n const { minorGridLines, majorGridLines, vertical } = options;\n const lineBox = altAxis.lineBox();\n const lineOptions = {\n lineStart: lineBox[vertical ? \"x1\" : \"y1\"],\n lineEnd: lineBox[vertical ? \"x2\" : \"y2\"],\n vertical: vertical\n };\n const majorTicks = [];\n\n const container = this.gridLinesVisual();\n function render(tickPosition, gridLine) {\n if (!inArray(tickPosition, majorTicks)) {\n lineOptions.position = tickPosition;\n container.append(createAxisGridLine(lineOptions, gridLine));\n\n majorTicks.push(tickPosition);\n }\n }\n\n if (majorGridLines.visible) {\n this.traverseMajorTicksPositions(render, majorGridLines);\n }\n\n if (minorGridLines.visible) {\n this.traverseMinorTicksPositions(render, minorGridLines);\n }\n\n return container.children;\n }\n\n traverseMajorTicksPositions(callback, tickOptions) {\n const { lineStart, step } = this.lineInfo();\n const { logMin, logMax } = this;\n\n for (let power = Math.ceil(logMin) + tickOptions.skip; power <= logMax; power += tickOptions.step) {\n let position = round(lineStart + step * (power - logMin), DEFAULT_PRECISION);\n callback(position, tickOptions);\n }\n }\n\n traverseMinorTicksPositions(callback, tickOptions) {\n const { min, max, minorUnit, majorUnit: base } = this.options;\n const { lineStart, step } = this.lineInfo();\n const { logMin, logMax } = this;\n const start = Math.floor(logMin);\n\n for (let power = start; power < logMax; power++) {\n const minorOptions = this._minorIntervalOptions(power);\n for (let idx = tickOptions.skip; idx < minorUnit; idx += tickOptions.step) {\n const value = minorOptions.value + idx * minorOptions.minorStep;\n if (value > max) {\n break;\n }\n if (value >= min) {\n const position = round(lineStart + step * (log(value, base) - logMin), DEFAULT_PRECISION);\n callback(position, tickOptions);\n }\n }\n }\n }\n\n createAxisLabel(index, labelOptions, labelContext) {\n const power = Math.ceil(this.logMin + index);\n const value = Math.pow(this.options.majorUnit, power);\n const text = this.axisLabelText(value, labelOptions, labelContext);\n\n return new AxisLabel(value, text, index, null, labelOptions);\n }\n\n shouldRenderNote(value) {\n const range = this.range();\n return range.min <= value && value <= range.max;\n }\n\n pan(delta) {\n const range = this.translateRange(delta);\n return this.limitRange(range.min, range.max, this.totalMin, this.totalMax, range.offset);\n }\n\n pointsRange(start, end) {\n const startValue = this.getValue(start);\n const endValue = this.getValue(end);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n\n return {\n min: min,\n max: max\n };\n }\n\n scaleRange(scale, cursor) {\n const { majorUnit: base } = this.options;\n const logMin = log(this.options.min, base);\n const logMax = log(this.options.max, base);\n const position = Math.abs(this.pointOffset(cursor));\n const range = logMax - logMin;\n const delta = this.scaleToDelta(scale, range);\n const min = Math.pow(base, logMin + position * delta);\n let max = Math.pow(base, logMax - (1 - position) * delta);\n\n if (max - min < MIN_VALUE_RANGE) {\n max = min + MIN_VALUE_RANGE;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n zoomRange(scale, cursor) {\n const range = this.scaleRange(scale, cursor);\n const { totalMin, totalMax } = this;\n\n return {\n min: limitValue(range.min, totalMin, totalMax),\n max: limitValue(range.max, totalMin, totalMax)\n };\n }\n\n _minorIntervalOptions(power) {\n const { minorUnit, majorUnit: base } = this.options;\n const value = Math.pow(base, power);\n const nextValue = Math.pow(base, power + 1);\n const difference = nextValue - value;\n const minorStep = difference / minorUnit;\n\n return {\n value: value,\n minorStep: minorStep\n };\n }\n\n lineInfo() {\n const info = super.lineInfo();\n info.step = info.axisDir * (info.lineSize / (this.logMax - this.logMin));\n\n return info;\n }\n}\n\nfunction initRange(autoMin, autoMax, axisOptions, options) {\n let { min, max } = axisOptions;\n\n if (defined(axisOptions.axisCrossingValue) && axisOptions.axisCrossingValue <= 0) {\n throwNegativeValuesError();\n }\n\n if (!defined(options.max)) {\n max = autoMax;\n } else if (options.max <= 0) {\n throwNegativeValuesError();\n }\n\n if (!defined(options.min)) {\n min = autoMin;\n } else if (options.min <= 0) {\n throwNegativeValuesError();\n }\n\n return {\n min: min,\n max: max\n };\n}\n\nfunction autoAxisMin(min, max, options) {\n const base = options.majorUnit;\n let autoMin = min;\n if (min <= 0) {\n autoMin = max <= 1 ? Math.pow(base, -2) : 1;\n } else if (!options.narrowRange) {\n autoMin = Math.pow(base, Math.floor(log(min, base)));\n }\n return autoMin;\n}\n\nfunction autoAxisMax(max, base) {\n const logMaxRemainder = round(log(max, base), DEFAULT_PRECISION) % 1;\n let autoMax;\n if (max <= 0) {\n autoMax = base;\n } else if (logMaxRemainder !== 0 && (logMaxRemainder < 0.3 || logMaxRemainder > 0.9)) {\n autoMax = Math.pow(base, log(max, base) + 0.2);\n } else {\n autoMax = Math.pow(base, Math.ceil(log(max, base)));\n }\n\n return autoMax;\n}\n\nfunction throwNegativeValuesError() {\n throw new Error(\"Non positive values cannot be used for a logarithmic axis\");\n}\n\nfunction log(x, base) {\n return Math.log(x) / Math.log(base);\n}\n\nsetDefaultOptions(LogarithmicAxis, {\n type: \"log\",\n majorUnit: DEFAULT_MAJOR_UNIT,\n minorUnit: 1,\n axisCrossingValue: 1,\n vertical: true,\n majorGridLines: {\n visible: true,\n width: 1,\n color: BLACK\n },\n zIndex: 1,\n _deferLabels: true\n});\n\nexport default LogarithmicAxis;\n","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\n\nimport { append, map } from '../../common';\n\nconst GridLinesMixin = {\n createGridLines: function(altAxis) {\n const options = this.options;\n const radius = Math.abs(this.box.center().y - altAxis.lineBox().y1);\n let gridLines = [];\n let skipMajor = false;\n let majorAngles, minorAngles;\n\n if (options.majorGridLines.visible) {\n majorAngles = this.majorGridLineAngles(altAxis);\n skipMajor = true;\n\n gridLines = this.renderMajorGridLines(\n majorAngles, radius, options.majorGridLines\n );\n }\n\n if (options.minorGridLines.visible) {\n minorAngles = this.minorGridLineAngles(altAxis, skipMajor);\n\n append(gridLines, this.renderMinorGridLines(\n minorAngles, radius, options.minorGridLines, altAxis, skipMajor\n ));\n }\n\n return gridLines;\n },\n\n renderMajorGridLines: function(angles, radius, options) {\n return this.renderGridLines(angles, radius, options);\n },\n\n renderMinorGridLines: function(angles, radius, options, altAxis, skipMajor) {\n const radiusCallback = this.radiusCallback && this.radiusCallback(radius, altAxis, skipMajor);\n return this.renderGridLines(angles, radius, options, radiusCallback);\n },\n\n renderGridLines: function(angles, radius, options, radiusCallback) {\n const style = {\n stroke: {\n width: options.width,\n color: options.color,\n dashType: options.dashType\n }\n };\n\n const center = this.box.center();\n const circle = new geom.Circle([ center.x, center.y ], radius);\n const container = this.gridLinesVisual();\n\n for (let i = 0; i < angles.length; i++) {\n const line = new draw.Path(style);\n if (radiusCallback) {\n circle.radius = radiusCallback(angles[i]);\n }\n\n line.moveTo(circle.center)\n .lineTo(circle.pointAt(angles[i] + 180));\n\n container.append(line);\n }\n\n return container.children;\n },\n\n gridLineAngles: function(altAxis, size, skip, step, skipAngles) {\n const divs = this.intervals(size, skip, step, skipAngles);\n const options = altAxis.options;\n const altAxisVisible = options.visible && (options.line || {}).visible !== false;\n\n return map(divs, (d) => {\n const alpha = this.intervalAngle(d);\n\n if (!altAxisVisible || alpha !== 90) {\n return alpha;\n }\n });\n }\n};\n\nexport default GridLinesMixin;","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\n\nimport GridLinesMixin from './mixins/grid-lines-mixin';\nimport CategoryAxis from './category-axis';\nimport ShapeBuilder from './shape-builder';\nimport Ring from './ring';\nimport Box from './box';\n\nimport { COORD_PRECISION, ARC } from '../common/constants';\nimport { deepExtend, getSpacing, inArray, limitValue, map, rad, round, setDefaultOptions } from '../common';\n\nclass RadarCategoryAxis extends CategoryAxis {\n range() {\n return { min: 0, max: this.options.categories.length };\n }\n\n reflow(box) {\n this.box = box;\n this.reflowLabels();\n }\n\n lineBox() {\n return this.box;\n }\n\n reflowLabels() {\n const { labels, options: { labels: labelOptions } } = this;\n const skip = labelOptions.skip || 0;\n const step = labelOptions.step || 1;\n const measureBox = new Box();\n\n for (let i = 0; i < labels.length; i++) {\n labels[i].reflow(measureBox);\n const labelBox = labels[i].box;\n\n labels[i].reflow(this.getSlot(skip + i * step).adjacentBox(\n 0, labelBox.width(), labelBox.height()\n ));\n }\n }\n\n intervals(size, skipOption, stepOption, skipAngles = false) {\n const options = this.options;\n const categories = options.categories.length;\n const divCount = categories / size || 1;\n const divAngle = 360 / divCount;\n const skip = skipOption || 0;\n const step = stepOption || 1;\n const divs = [];\n let angle = 0;\n\n for (let i = skip; i < divCount; i += step) {\n if (options.reverse) {\n angle = 360 - i * divAngle;\n } else {\n angle = i * divAngle;\n }\n\n angle = round(angle, COORD_PRECISION) % 360;\n\n if (!(skipAngles && inArray(angle, skipAngles))) {\n divs.push(angle);\n }\n }\n\n return divs;\n }\n\n majorIntervals() {\n return this.intervals(1);\n }\n\n minorIntervals() {\n return this.intervals(0.5);\n }\n\n intervalAngle(interval) {\n return (360 + interval + this.options.startAngle) % 360;\n }\n\n majorAngles() {\n return map(this.majorIntervals(), (interval) => this.intervalAngle(interval));\n }\n\n createLine() {\n return [];\n }\n\n majorGridLineAngles(altAxis) {\n const majorGridLines = this.options.majorGridLines;\n return this.gridLineAngles(altAxis, 1, majorGridLines.skip, majorGridLines.step);\n }\n\n minorGridLineAngles(altAxis, skipMajor) {\n const { minorGridLines, majorGridLines } = this.options;\n const majorGridLineAngles = skipMajor ? this.intervals(1, majorGridLines.skip, majorGridLines.step) : null;\n\n return this.gridLineAngles(altAxis, 0.5, minorGridLines.skip, minorGridLines.step, majorGridLineAngles);\n }\n\n radiusCallback(radius, altAxis, skipMajor) {\n if (altAxis.options.type !== ARC) {\n const minorAngle = rad(360 / (this.options.categories.length * 2));\n const minorRadius = Math.cos(minorAngle) * radius;\n const majorAngles = this.majorAngles();\n\n const radiusCallback = function(angle) {\n if (!skipMajor && inArray(angle, majorAngles)) {\n return radius;\n }\n\n return minorRadius;\n };\n return radiusCallback;\n }\n }\n\n createPlotBands() {\n const plotBands = this.options.plotBands || [];\n\n const group = this._plotbandGroup = new draw.Group({\n zIndex: -1\n });\n\n for (let i = 0; i < plotBands.length; i++) {\n const band = plotBands[i];\n const slot = this.plotBandSlot(band);\n const singleSlot = this.getSlot(band.from);\n\n const head = band.from - Math.floor(band.from);\n slot.startAngle += head * singleSlot.angle;\n\n const tail = Math.ceil(band.to) - band.to;\n slot.angle -= (tail + head) * singleSlot.angle;\n\n const ring = ShapeBuilder.current.createRing(slot, {\n fill: {\n color: band.color,\n opacity: band.opacity\n },\n stroke: {\n opacity: band.opacity\n }\n });\n group.append(ring);\n }\n\n this.appendVisual(group);\n }\n\n plotBandSlot(band) {\n return this.getSlot(band.from, band.to - 1);\n }\n\n getSlot(from, to) {\n const options = this.options;\n const justified = options.justified;\n const box = this.box;\n const divs = this.majorAngles();\n const totalDivs = divs.length;\n const slotAngle = 360 / totalDivs;\n let fromValue = from;\n\n if (options.reverse && !justified) {\n fromValue = (fromValue + 1) % totalDivs;\n }\n\n fromValue = limitValue(Math.floor(fromValue), 0, totalDivs - 1);\n let slotStart = divs[fromValue];\n\n if (justified) {\n slotStart = slotStart - slotAngle / 2;\n\n if (slotStart < 0) {\n slotStart += 360;\n }\n }\n\n const toValue = limitValue(Math.ceil(to || fromValue), fromValue, totalDivs - 1);\n const slots = toValue - fromValue + 1;\n const angle = slotAngle * slots;\n\n return new Ring(box.center(), 0, box.height() / 2, slotStart, angle);\n }\n\n slot(from, to) {\n const slot = this.getSlot(from, to);\n const startAngle = slot.startAngle + 180;\n const endAngle = startAngle + slot.angle;\n\n return new geom.Arc([ slot.center.x, slot.center.y ], {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: slot.radius,\n radiusY: slot.radius\n });\n }\n\n pointCategoryIndex(point) {\n const length = this.options.categories.length;\n let index = null;\n\n for (let i = 0; i < length; i++) {\n const slot = this.getSlot(i);\n if (slot.containsPoint(point)) {\n index = i;\n break;\n }\n }\n\n return index;\n }\n}\n\nsetDefaultOptions(RadarCategoryAxis, {\n startAngle: 90,\n labels: {\n margin: getSpacing(10)\n },\n majorGridLines: {\n visible: true\n },\n justified: true\n});\ndeepExtend(RadarCategoryAxis.prototype, GridLinesMixin);\n\nexport default RadarCategoryAxis;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport GridLinesMixin from './mixins/grid-lines-mixin';\nimport RadarCategoryAxis from './radar-category-axis';\nimport NumericAxis from './numeric-axis';\nimport Axis from './axis';\nimport Ring from './ring';\nimport Box from './box';\n\nimport { BLACK } from '../common/constants';\nimport { deepExtend, deg, getSpacing, inArray, limitValue, setDefaultOptions } from '../common';\n\nclass PolarAxis extends Axis {\n constructor(options, chartService) {\n super(options, chartService);\n\n const instanceOptions = this.options;\n\n instanceOptions.minorUnit = instanceOptions.minorUnit || instanceOptions.majorUnit / 2;\n }\n\n getDivisions(stepValue) {\n return NumericAxis.prototype.getDivisions.call(this, stepValue) - 1;\n }\n\n reflow(box) {\n this.box = box;\n this.reflowLabels();\n }\n\n reflowLabels() {\n const { options, labels, options: { labels: labelOptions } } = this;\n const skip = labelOptions.skip || 0;\n const step = labelOptions.step || 1;\n\n const measureBox = new Box();\n const divs = this.intervals(options.majorUnit, skip, step);\n\n for (let i = 0; i < labels.length; i++) {\n labels[i].reflow(measureBox);\n const labelBox = labels[i].box;\n\n labels[i].reflow(this.getSlot(divs[i]).adjacentBox(0, labelBox.width(), labelBox.height()));\n }\n }\n\n lineBox() {\n return this.box;\n }\n\n intervals(size, skipOption, stepOption, skipAngles = false) {\n const min = this.options.min;\n const divisions = this.getDivisions(size);\n const divs = [];\n const skip = skipOption || 0;\n const step = stepOption || 1;\n\n for (let i = skip; i < divisions; i += step) {\n const current = (360 + min + i * size) % 360;\n if (!(skipAngles && inArray(current, skipAngles))) {\n divs.push(current);\n }\n }\n\n return divs;\n }\n\n majorIntervals() {\n return this.intervals(this.options.majorUnit);\n }\n\n minorIntervals() {\n return this.intervals(this.options.minorUnit);\n }\n\n intervalAngle(i) {\n return (540 - i - this.options.startAngle) % 360;\n }\n\n createLine() {\n return [];\n }\n\n majorGridLineAngles(altAxis) {\n const majorGridLines = this.options.majorGridLines;\n return this.gridLineAngles(altAxis, this.options.majorUnit, majorGridLines.skip, majorGridLines.step);\n }\n\n minorGridLineAngles(altAxis, skipMajor) {\n const options = this.options;\n const { minorGridLines, majorGridLines } = options;\n const majorGridLineAngles = skipMajor ? this.intervals(options.majorUnit, majorGridLines.skip, majorGridLines.step) : null;\n\n return this.gridLineAngles(altAxis, options.minorUnit, minorGridLines.skip, minorGridLines.step, majorGridLineAngles);\n }\n\n plotBandSlot(band) {\n return this.getSlot(band.from, band.to);\n }\n\n getSlot(a, b) {\n const { options, box } = this;\n const startAngle = options.startAngle;\n let start = limitValue(a, options.min, options.max);\n let end = limitValue(b || start, start, options.max);\n\n if (options.reverse) {\n start *= -1;\n end *= -1;\n }\n\n start = (540 - start - startAngle) % 360;\n end = (540 - end - startAngle) % 360;\n\n if (end < start) {\n const tmp = start;\n start = end;\n end = tmp;\n }\n\n return new Ring(box.center(), 0, box.height() / 2, start, end - start);\n }\n\n slot(from, to = from) {\n const options = this.options;\n const start = 360 - options.startAngle;\n const slot = this.getSlot(from, to);\n const min = Math.min(from, to);\n const max = Math.max(from, to);\n let startAngle, endAngle;\n\n if (options.reverse) {\n startAngle = min;\n endAngle = max;\n } else {\n startAngle = 360 - max;\n endAngle = 360 - min;\n }\n\n startAngle = (startAngle + start) % 360;\n endAngle = (endAngle + start) % 360;\n\n return new geom.Arc([ slot.center.x, slot.center.y ], {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: slot.radius,\n radiusY: slot.radius\n });\n }\n\n getValue(point) {\n const options = this.options;\n const center = this.box.center();\n const dx = point.x - center.x;\n const dy = point.y - center.y;\n let theta = Math.round(deg(Math.atan2(dy, dx)));\n let start = options.startAngle;\n\n if (!options.reverse) {\n theta *= -1;\n start *= -1;\n }\n\n return (theta + start + 360) % 360;\n }\n\n valueRange() {\n return {\n min: 0,\n max: Math.PI * 2\n };\n }\n}\n\nsetDefaultOptions(PolarAxis, {\n type: \"polar\",\n startAngle: 0,\n reverse: false,\n majorUnit: 60,\n min: 0,\n max: 360,\n labels: {\n margin: getSpacing(10)\n },\n majorGridLines: {\n color: BLACK,\n visible: true,\n width: 1\n },\n minorGridLines: {\n color: \"#aaa\"\n }\n});\n\ndeepExtend(PolarAxis.prototype, GridLinesMixin, {\n createPlotBands: RadarCategoryAxis.prototype.createPlotBands,\n majorAngles: RadarCategoryAxis.prototype.majorAngles,\n range: NumericAxis.prototype.range,\n labelsCount: NumericAxis.prototype.labelsCount,\n createAxisLabel: NumericAxis.prototype.createAxisLabel\n});\n\nexport default PolarAxis;","import { geometry as geom, drawing as draw } from '@progress/kendo-drawing';\n\nimport ShapeBuilder from '../shape-builder';\nimport Ring from '../ring';\nimport Point from '../point';\n\nimport { ARC } from '../../common/constants';\nimport { append, deg, rad } from '../../common';\n\nconst RadarNumericAxisMixin = {\n options: {\n majorGridLines: {\n visible: true\n }\n },\n\n createPlotBands: function() {\n const { majorGridLines: { type }, plotBands = [] } = this.options;\n const altAxis = this.plotArea.polarAxis;\n const majorAngles = altAxis.majorAngles();\n const center = altAxis.box.center();\n const group = this._plotbandGroup = new draw.Group({\n zIndex: -1\n });\n\n for (let i = 0; i < plotBands.length; i++) {\n const band = plotBands[i];\n const bandStyle = {\n fill: {\n color: band.color,\n opacity: band.opacity\n },\n stroke: {\n opacity: band.opacity\n }\n };\n\n const slot = this.getSlot(band.from, band.to, true);\n const ring = new Ring(center, center.y - slot.y2, center.y - slot.y1, 0, 360);\n\n let shape;\n if (type === ARC) {\n shape = ShapeBuilder.current.createRing(ring, bandStyle);\n } else {\n shape = draw.Path.fromPoints(this.plotBandPoints(ring, majorAngles), bandStyle).close();\n }\n\n group.append(shape);\n }\n\n this.appendVisual(group);\n },\n\n plotBandPoints: function(ring, angles) {\n const innerPoints = [];\n const outerPoints = [];\n const center = [ ring.center.x, ring.center.y ];\n const innerCircle = new geom.Circle(center, ring.innerRadius);\n const outerCircle = new geom.Circle(center, ring.radius);\n\n for (let i = 0; i < angles.length; i++) {\n innerPoints.push(innerCircle.pointAt(angles[i] + 180));\n outerPoints.push(outerCircle.pointAt(angles[i] + 180));\n }\n\n innerPoints.reverse();\n innerPoints.push(innerPoints[0]);\n outerPoints.push(outerPoints[0]);\n\n return outerPoints.concat(innerPoints);\n },\n\n createGridLines: function(altAxis) {\n const options = this.options;\n const majorTicks = this.radarMajorGridLinePositions();\n const majorAngles = altAxis.majorAngles();\n const center = altAxis.box.center();\n let gridLines = [];\n\n if (options.majorGridLines.visible) {\n gridLines = this.renderGridLines(\n center, majorTicks, majorAngles, options.majorGridLines\n );\n }\n\n if (options.minorGridLines.visible) {\n const minorTicks = this.radarMinorGridLinePositions();\n append(gridLines, this.renderGridLines(\n center, minorTicks, majorAngles, options.minorGridLines\n ));\n }\n\n return gridLines;\n },\n\n renderGridLines: function(center, ticks, angles, options) {\n const style = {\n stroke: {\n width: options.width,\n color: options.color,\n dashType: options.dashType\n }\n };\n const { skip = 0, step = 0 } = options;\n const container = this.gridLinesVisual();\n\n for (let tickIx = skip; tickIx < ticks.length; tickIx += step) {\n const tickRadius = center.y - ticks[tickIx];\n if (tickRadius > 0) {\n const circle = new geom.Circle([ center.x, center.y ], tickRadius);\n if (options.type === ARC) {\n container.append(new draw.Circle(circle, style));\n } else {\n const line = new draw.Path(style);\n for (let angleIx = 0; angleIx < angles.length; angleIx++) {\n line.lineTo(circle.pointAt(angles[angleIx] + 180));\n }\n\n line.close();\n container.append(line);\n }\n }\n }\n\n return container.children;\n },\n\n getValue: function(point) {\n const lineBox = this.lineBox();\n const altAxis = this.plotArea.polarAxis;\n const majorAngles = altAxis.majorAngles();\n const center = altAxis.box.center();\n const radius = point.distanceTo(center);\n let distance = radius;\n\n if (this.options.majorGridLines.type !== ARC && majorAngles.length > 1) {\n const dx = point.x - center.x;\n const dy = point.y - center.y;\n const theta = (deg(Math.atan2(dy, dx)) + 540) % 360;\n\n majorAngles.sort(function(a, b) {\n return angularDistance(a, theta) - angularDistance(b, theta);\n });\n\n // Solve triangle (center, point, axis X) using one side (radius) and two angles.\n // Angles are derived from triangle (center, point, gridline X)\n const midAngle = angularDistance(majorAngles[0], majorAngles[1]) / 2;\n const alpha = angularDistance(theta, majorAngles[0]);\n const gamma = 90 - midAngle;\n const beta = 180 - alpha - gamma;\n\n distance = radius * (Math.sin(rad(beta)) / Math.sin(rad(gamma)));\n }\n\n return this.axisType().prototype.getValue.call(\n this, new Point(lineBox.x1, lineBox.y2 - distance)\n );\n }\n};\n\nfunction angularDistance(a, b) {\n return 180 - Math.abs(Math.abs(a - b) - 180);\n}\n\nexport default RadarNumericAxisMixin;","import NumericAxis from './numeric-axis';\nimport RadarNumericAxisMixin from './mixins/radar-numeric-axis-mixin';\n\nimport { deepExtend } from '../common';\n\nclass RadarNumericAxis extends NumericAxis {\n radarMajorGridLinePositions() {\n return this.getTickPositions(this.options.majorUnit);\n }\n\n radarMinorGridLinePositions() {\n const options = this.options;\n let minorSkipStep = 0;\n\n if (options.majorGridLines.visible) {\n minorSkipStep = options.majorUnit;\n }\n return this.getTickPositions(options.minorUnit, minorSkipStep);\n }\n\n axisType() {\n return NumericAxis;\n }\n}\n\ndeepExtend(RadarNumericAxis.prototype, RadarNumericAxisMixin);\n\nexport default RadarNumericAxis;","import LogarithmicAxis from './logarithmic-axis';\nimport RadarNumericAxisMixin from './mixins/radar-numeric-axis-mixin';\n\nimport { deepExtend } from '../common';\n\nclass RadarLogarithmicAxis extends LogarithmicAxis {\n radarMajorGridLinePositions() {\n const positions = [];\n\n this.traverseMajorTicksPositions(function(position) {\n positions.push(position);\n }, this.options.majorGridLines);\n\n return positions;\n }\n\n radarMinorGridLinePositions() {\n const positions = [];\n\n this.traverseMinorTicksPositions(function(position) {\n positions.push(position);\n }, this.options.minorGridLines);\n\n return positions;\n }\n\n axisType() {\n return LogarithmicAxis;\n }\n}\n\ndeepExtend(RadarLogarithmicAxis.prototype, RadarNumericAxisMixin);\n\nexport default RadarLogarithmicAxis;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport { X, Y } from '../common/constants';\nimport { Class, last, round } from '../common';\n\nconst WEIGHT = 0.333;\nconst EXTREMUM_ALLOWED_DEVIATION = 0.01;\n\nclass CurveProcessor extends Class {\n\n constructor(closed) {\n super();\n\n this.closed = closed;\n }\n\n process(dataPoints) {\n const points = dataPoints.slice(0);\n const segments = [];\n let closed = this.closed;\n let length = points.length;\n\n if (length > 2) {\n this.removeDuplicates(0, points);\n length = points.length;\n }\n\n if (length < 2 || (length === 2 && points[0].equals(points[1]))) {\n return segments;\n }\n\n let p0 = points[0];\n let p1 = points[1];\n let p2 = points[2];\n\n segments.push(new geom.Segment(p0));\n\n while (p0.equals(points[length - 1])) {\n closed = true;\n points.pop();\n length--;\n }\n\n if (length === 2) {\n const tangent = this.tangent(p0,p1, X, Y);\n\n last(segments).controlOut(\n this.firstControlPoint(tangent, p0, p1, X, Y)\n );\n\n segments.push(new geom.Segment(\n p1,\n this.secondControlPoint(tangent, p0, p1, X, Y)\n ));\n\n return segments;\n }\n\n let initialControlPoint, lastControlPoint;\n\n if (closed) {\n p0 = points[length - 1]; p1 = points[0]; p2 = points[1];\n const controlPoints = this.controlPoints(p0, p1, p2);\n initialControlPoint = controlPoints[1];\n lastControlPoint = controlPoints[0];\n } else {\n const tangent = this.tangent(p0, p1, X,Y);\n initialControlPoint = this.firstControlPoint(tangent, p0, p1, X, Y);\n }\n\n let cp0 = initialControlPoint;\n for (let idx = 0; idx <= length - 3; idx++) {\n this.removeDuplicates(idx, points);\n length = points.length;\n if (idx + 3 <= length) {\n p0 = points[idx]; p1 = points[idx + 1]; p2 = points[idx + 2];\n const controlPoints = this.controlPoints(p0,p1,p2);\n\n last(segments).controlOut(cp0);\n cp0 = controlPoints[1];\n\n const cp1 = controlPoints[0];\n segments.push(new geom.Segment(p1, cp1));\n }\n }\n\n if (closed) {\n p0 = points[length - 2]; p1 = points[length - 1]; p2 = points[0];\n const controlPoints = this.controlPoints(p0, p1, p2);\n\n last(segments).controlOut(cp0);\n segments.push(new geom.Segment(\n p1,\n controlPoints[0]\n ));\n\n last(segments).controlOut(controlPoints[1]);\n segments.push(new geom.Segment(\n p2,\n lastControlPoint\n ));\n } else {\n const tangent = this.tangent(p1, p2, X, Y);\n\n last(segments).controlOut(cp0);\n segments.push(new geom.Segment(\n p2,\n this.secondControlPoint(tangent, p1, p2, X, Y)\n ));\n }\n\n return segments;\n }\n\n removeDuplicates(idx, points) {\n while (points[idx + 1] && (points[idx].equals(points[idx + 1]) || points[idx + 1].equals(points[idx + 2]))) {\n points.splice(idx + 1, 1);\n }\n }\n\n invertAxis(p0, p1, p2) {\n let invertAxis = false;\n\n if (p0.x === p1.x) {\n invertAxis = true;\n } else if (p1.x === p2.x) {\n if ((p1.y < p2.y && p0.y <= p1.y) || (p2.y < p1.y && p1.y <= p0.y)) {\n invertAxis = true;\n }\n } else {\n const fn = this.lineFunction(p0,p1);\n const y2 = this.calculateFunction(fn, p2.x);\n if (!(p0.y <= p1.y && p2.y <= y2) &&\n !(p1.y <= p0.y && p2.y >= y2)) {\n invertAxis = true;\n }\n }\n\n return invertAxis;\n }\n\n isLine(p0, p1, p2) {\n const fn = this.lineFunction(p0, p1);\n const y2 = this.calculateFunction(fn, p2.x);\n\n return (p0.x === p1.x && p1.x === p2.x) || round(y2, 1) === round(p2.y, 1);\n }\n\n lineFunction(p1, p2) {\n const a = (p2.y - p1.y) / (p2.x - p1.x);\n const b = p1.y - a * p1.x;\n\n return [ b, a ];\n }\n\n controlPoints(p0, p1, p2) {\n let xField = X;\n let yField = Y;\n let restrict = false;\n let switchOrientation = false;\n let tangent;\n\n if (this.isLine(p0, p1, p2)) {\n tangent = this.tangent(p0, p1, X, Y);\n } else {\n const monotonic = {\n x: this.isMonotonicByField(p0, p1, p2, X),\n y: this.isMonotonicByField(p0, p1, p2, Y)\n };\n\n if (monotonic.x && monotonic.y) {\n tangent = this.tangent(p0, p2, X, Y);\n restrict = true;\n } else {\n if (this.invertAxis(p0, p1, p2)) {\n xField = Y;\n yField = X;\n }\n\n if (monotonic[xField]) {\n tangent = 0;\n } else {\n let sign;\n if ((p2[yField] < p0[yField] && p0[yField] <= p1[yField]) ||\n (p0[yField] < p2[yField] && p1[yField] <= p0[yField])) {\n sign = numberSign((p2[yField] - p0[yField]) * (p1[xField] - p0[xField]));\n } else {\n sign = -numberSign((p2[xField] - p0[xField]) * (p1[yField] - p0[yField]));\n }\n\n tangent = EXTREMUM_ALLOWED_DEVIATION * sign;\n switchOrientation = true;\n }\n }\n }\n\n const secondControlPoint = this.secondControlPoint(tangent, p0, p1, xField, yField);\n\n if (switchOrientation) {\n const oldXField = xField;\n xField = yField;\n yField = oldXField;\n }\n\n const firstControlPoint = this.firstControlPoint(tangent, p1, p2, xField, yField);\n\n if (restrict) {\n this.restrictControlPoint(p0, p1, secondControlPoint, tangent);\n this.restrictControlPoint(p1, p2, firstControlPoint, tangent);\n }\n\n return [ secondControlPoint, firstControlPoint ];\n }\n\n restrictControlPoint(p1, p2, cp, tangent) {\n if (p1.y < p2.y) {\n if (p2.y < cp.y) {\n cp.x = p1.x + (p2.y - p1.y) / tangent;\n cp.y = p2.y;\n } else if (cp.y < p1.y) {\n cp.x = p2.x - (p2.y - p1.y) / tangent;\n cp.y = p1.y;\n }\n } else {\n if (cp.y < p2.y) {\n cp.x = p1.x - (p1.y - p2.y) / tangent;\n cp.y = p2.y;\n } else if (p1.y < cp.y) {\n cp.x = p2.x + (p1.y - p2.y) / tangent;\n cp.y = p1.y;\n }\n }\n }\n\n tangent(p0, p1, xField, yField) {\n const x = p1[xField] - p0[xField];\n const y = p1[yField] - p0[yField];\n let tangent;\n\n if (x === 0) {\n tangent = 0;\n } else {\n tangent = y / x;\n }\n\n return tangent;\n }\n\n isMonotonicByField(p0, p1, p2, field) {\n return (p2[field] > p1[field] && p1[field] > p0[field]) ||\n (p2[field] < p1[field] && p1[field] < p0[field]);\n }\n\n firstControlPoint(tangent, p0, p3, xField, yField) {\n const t1 = p0[xField];\n const t2 = p3[xField];\n const distance = (t2 - t1) * WEIGHT;\n\n return this.point(t1 + distance, p0[yField] + distance * tangent, xField, yField);\n }\n\n secondControlPoint(tangent, p0, p3, xField, yField) {\n const t1 = p0[xField];\n const t2 = p3[xField];\n const distance = (t2 - t1) * WEIGHT;\n\n return this.point(t2 - distance, p3[yField] - distance * tangent, xField, yField);\n }\n\n point(xValue, yValue, xField, yField) {\n const controlPoint = new geom.Point();\n controlPoint[xField] = xValue;\n controlPoint[yField] = yValue;\n\n return controlPoint;\n }\n\n calculateFunction(fn, x) {\n const length = fn.length;\n let result = 0;\n\n for (let i = 0; i < length; i++) {\n result += Math.pow(x,i) * fn[i];\n }\n return result;\n }\n}\n\nfunction numberSign(value) {\n return value <= 0 ? -1 : 1;\n}\n\nexport default CurveProcessor;","import { Class } from '../../common';\n\nclass ChartAxis extends Class {\n constructor(axis) {\n super();\n\n this._axis = axis;\n this.options = axis.options;\n }\n\n value(point) {\n const axis = this._axis;\n const value = axis.getCategory ? axis.getCategory(point) : axis.getValue(point);\n\n return value;\n }\n\n slot(from, to, limit = true) {\n return this._axis.slot(from, to, limit);\n }\n\n range() {\n return this._axis.range();\n }\n\n valueRange() {\n return this._axis.valueRange();\n }\n}\n\nexport default ChartAxis;","import ChartAxis from './chart-axis';\n\nexport default function findAxisByName(name, axes) {\n for (let idx = 0; idx < axes.length; idx++) {\n if (axes[idx].options.name === name) {\n axes[idx].prepareUserOptions();\n return new ChartAxis(axes[idx]);\n }\n }\n}","import findAxisByName from './find-axis-by-name';\n\nclass ChartPane {\n constructor(pane) {\n this.visual = pane.visual;\n this.chartsVisual = pane.chartContainer.visual;\n this._pane = pane;\n }\n\n findAxisByName(name) {\n return findAxisByName(name, this._pane.axes);\n }\n}\n\nexport default ChartPane;","import { Class } from '../../common';\n\nclass ChartPlotArea extends Class {\n constructor(plotArea) {\n super();\n\n this._plotArea = plotArea;\n this.visual = plotArea.visual;\n this.backgroundVisual = plotArea._bgVisual;\n }\n}\n\nexport default ChartPlotArea;","import { isNumber } from '../../common';\n\nexport default function countNumbers(values) {\n const length = values.length;\n let count = 0;\n\n for (let i = 0; i < length; i++) {\n const num = values[i];\n if (isNumber(num)) {\n count++;\n }\n }\n\n return count;\n}","import { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { defined, isNumber } from '../../common';\n\nimport countNumbers from '../utils/count-numbers';\n\nconst Aggregates = {\n min: function(values) {\n const length = values.length;\n let min = MAX_VALUE;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (isNumber(value)) {\n min = Math.min(min, value);\n }\n }\n\n return min === MAX_VALUE ? values[0] : min;\n },\n\n max: function(values) {\n const length = values.length;\n let max = MIN_VALUE;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (isNumber(value)) {\n max = Math.max(max, value);\n }\n }\n\n return max === MIN_VALUE ? values[0] : max;\n },\n\n sum: function(values) {\n const length = values.length;\n let sum = 0;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (isNumber(value)) {\n sum += value;\n }\n }\n\n return sum;\n },\n\n sumOrNull: function(values) {\n let result = null;\n\n if (countNumbers(values)) {\n result = Aggregates.sum(values);\n }\n\n return result;\n },\n\n count: function(values) {\n const length = values.length;\n let count = 0;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (value !== null && defined(value)) {\n count++;\n }\n }\n\n return count;\n },\n\n avg: function(values) {\n const count = countNumbers(values);\n let result = values[0];\n\n if (count > 0) {\n result = Aggregates.sum(values) / count;\n }\n\n return result;\n },\n\n first: function(values) {\n const length = values.length;\n\n for (let i = 0; i < length; i++) {\n const value = values[i];\n if (value !== null && defined(value)) {\n return value;\n }\n }\n\n return values[0];\n }\n};\n\nexport default Aggregates;","import { getter } from '../../common';\n\nexport default function getField(field, row) {\n if (row === null) {\n return row;\n }\n\n const get = getter(field, true);\n return get(row);\n}","import getField from './utils/get-field';\nimport { VALUE } from '../common/constants';\nimport { Class, defined } from '../common';\n\nclass SeriesBinder extends Class {\n\n constructor() {\n super();\n\n this._valueFields = {};\n this._otherFields = {};\n this._nullValue = {};\n this._undefinedValue = {};\n }\n\n register(seriesTypes, valueFields = [ VALUE ], otherFields = {}) {\n\n for (let i = 0; i < seriesTypes.length; i++) {\n const type = seriesTypes[i];\n\n this._valueFields[type] = valueFields;\n this._otherFields[type] = otherFields;\n this._nullValue[type] = this._makeValue(valueFields, null);\n this._undefinedValue[type] = this._makeValue(valueFields, undefined);\n }\n }\n\n canonicalFields(series) {\n return this.valueFields(series).concat(this.otherFields(series));\n }\n\n valueFields(series) {\n return this._valueFields[series.type] || [ VALUE ];\n }\n\n otherFields(series) {\n return this._otherFields[series.type] || [ VALUE ];\n }\n\n bindPoint(series, pointIx, item) {\n const data = series.data;\n const pointData = defined(item) ? item : data[pointIx];\n const result = { valueFields: { value: pointData } };\n const valueFields = this.valueFields(series);\n const otherFields = this._otherFields[series.type];\n let fields, value;\n\n if (pointData === null) {\n value = this._nullValue[series.type];\n } else if (!defined(pointData)) {\n value = this._undefinedValue[series.type];\n } else if (Array.isArray(pointData)) {\n const fieldData = pointData.slice(valueFields.length);\n value = this._bindFromArray(pointData, valueFields);\n fields = this._bindFromArray(fieldData, otherFields);\n } else if (typeof pointData === \"object\") {\n const srcValueFields = this.sourceFields(series, valueFields);\n const srcPointFields = this.sourceFields(series, otherFields);\n\n value = this._bindFromObject(pointData, valueFields, srcValueFields);\n fields = this._bindFromObject(pointData, otherFields, srcPointFields);\n }\n\n if (defined(value)) {\n if (valueFields.length === 1) {\n result.valueFields.value = value[valueFields[0]];\n } else {\n result.valueFields = value;\n }\n }\n\n result.fields = fields || {};\n\n return result;\n }\n\n _makeValue(fields, initialValue) {\n const value = {};\n const length = fields.length;\n\n for (let i = 0; i < length; i++) {\n const fieldName = fields[i];\n value[fieldName] = initialValue;\n }\n\n return value;\n }\n\n _bindFromArray(array, fields) {\n const value = {};\n\n if (fields) {\n const length = Math.min(fields.length, array.length);\n\n for (let i = 0; i < length; i++) {\n value[fields[i]] = array[i];\n }\n }\n\n return value;\n }\n\n _bindFromObject(object, fields, srcFields = fields) {\n const value = {};\n\n if (fields) {\n const length = fields.length;\n\n for (let i = 0; i < length; i++) {\n const fieldName = fields[i];\n const srcFieldName = srcFields[i];\n if (srcFieldName !== null) {\n value[fieldName] = getField(srcFieldName, object);\n }\n }\n }\n\n return value;\n }\n\n sourceFields(series, canonicalFields) {\n const sourceFields = [];\n\n if (canonicalFields) {\n const length = canonicalFields.length;\n\n for (let i = 0; i < length; i++) {\n const fieldName = canonicalFields[i];\n const sourceFieldName = fieldName === VALUE ? \"field\" : fieldName + \"Field\";\n\n sourceFields.push(series[sourceFieldName] !== null ? (series[sourceFieldName] || fieldName) : null);\n }\n }\n\n return sourceFields;\n }\n}\n\nSeriesBinder.current = new SeriesBinder();\n\nexport default SeriesBinder;","import SeriesBinder from '../series-binder';\n\nimport { OBJECT } from '../../common/constants';\nimport { Class, defined, getter, isArray, isNumber } from '../../common';\n\nconst STD_ERR = \"stderr\";\nconst STD_DEV = \"stddev\";\nconst percentRegex = /percent(?:\\w*)\\((\\d+)\\)/;\nconst standardDeviationRegex = new RegExp(\"^\" + STD_DEV + \"(?:\\\\((\\\\d+(?:\\\\.\\\\d+)?)\\\\))?$\");\n\nclass ErrorRangeCalculator extends Class {\n constructor(errorValue, series, field) {\n super();\n\n this.initGlobalRanges(errorValue, series, field);\n }\n\n initGlobalRanges(errorValue, series, field) {\n const data = series.data;\n const deviationMatch = standardDeviationRegex.exec(errorValue);\n\n if (deviationMatch) {\n this.valueGetter = this.createValueGetter(series, field);\n\n const average = this.getAverage(data);\n const deviation = this.getStandardDeviation(data, average, false);\n const multiple = deviationMatch[1] ? parseFloat(deviationMatch[1]) : 1;\n const errorRange = { low: average.value - deviation * multiple, high: average.value + deviation * multiple };\n\n this.globalRange = function() {\n return errorRange;\n };\n } else if (errorValue.indexOf && errorValue.indexOf(STD_ERR) >= 0) {\n this.valueGetter = this.createValueGetter(series, field);\n const standardError = this.getStandardError(data, this.getAverage(data));\n\n this.globalRange = function(value) {\n return { low: value - standardError, high: value + standardError };\n };\n }\n }\n\n createValueGetter(series, field) {\n const data = series.data;\n const binder = SeriesBinder.current;\n const valueFields = binder.valueFields(series);\n const item = defined(data[0]) ? data[0] : {};\n let valueGetter;\n\n if (isArray(item)) {\n const index = field ? valueFields.indexOf(field) : 0;\n valueGetter = getter(\"[\" + index + \"]\");\n } else if (isNumber(item)) {\n valueGetter = getter();\n } else if (typeof item === OBJECT) {\n const srcValueFields = binder.sourceFields(series, valueFields);\n valueGetter = getter(srcValueFields[valueFields.indexOf(field)]);\n }\n\n return valueGetter;\n }\n\n getErrorRange(pointValue, errorValue) {\n let low, high, value;\n\n if (!defined(errorValue)) {\n return null;\n }\n\n if (this.globalRange) {\n return this.globalRange(pointValue);\n }\n\n if (isArray(errorValue)) {\n low = pointValue - errorValue[0];\n high = pointValue + errorValue[1];\n } else if (isNumber(value = parseFloat(errorValue))) {\n low = pointValue - value;\n high = pointValue + value;\n } else if ((value = percentRegex.exec(errorValue))) {\n const percentValue = pointValue * (parseFloat(value[1]) / 100);\n low = pointValue - Math.abs(percentValue);\n high = pointValue + Math.abs(percentValue);\n } else {\n throw new Error(\"Invalid ErrorBar value: \" + errorValue);\n }\n\n return { low: low, high: high };\n }\n\n getStandardError(data, average) {\n return this.getStandardDeviation(data, average, true) / Math.sqrt(average.count);\n }\n\n getStandardDeviation(data, average, isSample) {\n const length = data.length;\n const total = isSample ? average.count - 1 : average.count;\n let squareDifferenceSum = 0;\n\n for (let idx = 0; idx < length; idx++) {\n const value = this.valueGetter(data[idx]);\n if (isNumber(value)) {\n squareDifferenceSum += Math.pow(value - average.value, 2);\n }\n }\n\n return Math.sqrt(squareDifferenceSum / total);\n }\n\n getAverage(data) {\n const length = data.length;\n let sum = 0;\n let count = 0;\n\n for (let idx = 0; idx < length; idx++) {\n const value = this.valueGetter(data[idx]);\n if (isNumber(value)) {\n sum += value;\n count++;\n }\n }\n\n return {\n value: sum / count,\n count: count\n };\n }\n}\n\nexport default ErrorRangeCalculator;","import { support } from '@progress/kendo-drawing';\n\nconst browser = support.browser || {};\n\nconst INITIAL_ANIMATION_DURATION = 600;\nconst FADEIN = \"fadeIn\";\n\nconst GLASS = \"glass\";\nconst BORDER_BRIGHTNESS = 0.8;\nconst TOOLTIP_OFFSET = 5;\nconst START_SCALE = browser.msie ? 0.001 : 0;\nconst ERROR_LOW_FIELD = \"errorLow\";\nconst ERROR_HIGH_FIELD = \"errorHigh\";\nconst X_ERROR_LOW_FIELD = \"xErrorLow\";\nconst X_ERROR_HIGH_FIELD = \"xErrorHigh\";\nconst Y_ERROR_LOW_FIELD = \"yErrorLow\";\nconst Y_ERROR_HIGH_FIELD = \"yErrorHigh\";\nconst LINE_MARKER_SIZE = 8;\nconst ZERO = \"zero\";\nconst INTERPOLATE = \"interpolate\";\nconst GAP = \"gap\";\nconst ABOVE = \"above\";\nconst BELOW = \"below\";\n\nconst SMOOTH = \"smooth\";\nconst STEP = \"step\";\n\nconst AREA = \"area\";\nconst BAR = \"bar\";\nconst BOX_PLOT = \"boxPlot\";\nconst BUBBLE = \"bubble\";\nconst BULLET = \"bullet\";\nconst CANDLESTICK = \"candlestick\";\nconst COLUMN = \"column\";\nconst DONUT = \"donut\";\nconst FUNNEL = \"funnel\";\nconst PYRAMID = \"pyramid\";\nconst HEATMAP = \"heatmap\";\nconst HORIZONTAL_WATERFALL = \"horizontalWaterfall\";\nconst LINE = \"line\";\nconst OHLC = \"ohlc\";\nconst PIE = \"pie\";\nconst POLAR_AREA = \"polarArea\";\nconst POLAR_LINE = \"polarLine\";\nconst POLAR_SCATTER = \"polarScatter\";\nconst RADAR_AREA = \"radarArea\";\nconst RADAR_COLUMN = \"radarColumn\";\nconst RADAR_LINE = \"radarLine\";\nconst RANGE_AREA = \"rangeArea\";\nconst RANGE_BAR = \"rangeBar\";\nconst RANGE_COLUMN = \"rangeColumn\";\nconst SCATTER = \"scatter\";\nconst SCATTER_LINE = \"scatterLine\";\nconst VERTICAL_AREA = \"verticalArea\";\nconst VERTICAL_BOX_PLOT = \"verticalBoxPlot\";\nconst VERTICAL_BULLET = \"verticalBullet\";\nconst VERTICAL_LINE = \"verticalLine\";\nconst VERTICAL_RANGE_AREA = \"verticalRangeArea\";\nconst WATERFALL = \"waterfall\";\nconst EQUALLY_SPACED_SERIES = [\n BAR, COLUMN, OHLC, CANDLESTICK, BOX_PLOT, VERTICAL_BOX_PLOT,\n BULLET, RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL\n];\n\nconst TRENDLINE_EXPONENTIAL = 'exponentialTrendline';\nconst TRENDLINE_LINEAR = 'linearTrendline';\nconst TRENDLINE_LOGARITHMIC = 'logarithmicTrendline';\nconst TRENDLINE_MOVING_AVERAGE = 'movingAverageTrendline';\nconst TRENDLINE_POLYNOMIAL = 'polynomialTrendline';\nconst TRENDLINE_POWER = 'powerTrendline';\nconst TRENDLINE_SERIES = [\n TRENDLINE_EXPONENTIAL,\n TRENDLINE_LINEAR,\n TRENDLINE_LOGARITHMIC,\n TRENDLINE_MOVING_AVERAGE,\n TRENDLINE_POLYNOMIAL,\n TRENDLINE_POWER\n];\n\nconst LEGEND_ITEM_CLICK = \"legendItemClick\";\nconst LEGEND_ITEM_HOVER = \"legendItemHover\";\nconst LEGEND_ITEM_LEAVE = \"legendItemLeave\";\nconst SERIES_CLICK = \"seriesClick\";\nconst SERIES_HOVER = \"seriesHover\";\nconst SERIES_OVER = \"seriesOver\";\nconst SERIES_LEAVE = \"seriesLeave\";\nconst PLOT_AREA_CLICK = \"plotAreaClick\";\nconst PLOT_AREA_HOVER = \"plotAreaHover\";\nconst PLOT_AREA_LEAVE = \"plotAreaLeave\";\nconst DRAG = \"drag\";\nconst DRAG_END = \"dragEnd\";\nconst DRAG_START = \"dragStart\";\nconst ZOOM_START = \"zoomStart\";\nconst ZOOM = \"zoom\";\nconst ZOOM_END = \"zoomEnd\";\nconst SELECT_START = \"selectStart\";\nconst SELECT = \"select\";\nconst SELECT_END = \"selectEnd\";\nconst RENDER = \"render\";\nconst SHOW_TOOLTIP = \"showTooltip\";\nconst HIDE_TOOLTIP = \"hideTooltip\";\nconst PANE_RENDER = \"paneRender\";\n\n\nconst CHART_POINT_ROLE = \"graphics-symbol\";\nconst CHART_POINT_CLASSNAME = \"k-chart-point\";\nconst CHART_POINT_ROLE_DESCRIPTION = \"Point\";\nconst LEGEND_ITEM_ROLE = \"checkbox\";\nconst LEGEND_ITEM_CLASSNAME = \"k-chart-legend-item\";\nconst LEGEND_ITEM_ARIA_ROLE_DESCRIPTION = \"Legend item\";\n\nconst LOGARITHMIC = \"log\";\nconst CATEGORY = \"category\";\n\nconst INSIDE_END = \"insideEnd\";\nconst INSIDE_BASE = \"insideBase\";\nconst OUTSIDE_END = \"outsideEnd\";\n\nconst MOUSEWHEEL = \"wheel\";\nconst MOUSEWHEEL_DELAY = 150;\nconst MOUSEWHEEL_ZOOM_RATE = 0.3;\n\nconst DRILLDOWN = \"drilldown\";\nconst DRILLDOWN_FIELD = \"drilldown\";\n\nconst MIN_MOVING_AVERAGE_PERIOD = 2;\n\nexport {\n INITIAL_ANIMATION_DURATION, FADEIN,\n LEGEND_ITEM_CLICK, LEGEND_ITEM_HOVER, LEGEND_ITEM_LEAVE,\n SERIES_CLICK, SERIES_HOVER, SERIES_OVER, SERIES_LEAVE,\n GLASS, BORDER_BRIGHTNESS, TOOLTIP_OFFSET,\n START_SCALE, ERROR_LOW_FIELD, ERROR_HIGH_FIELD,\n X_ERROR_LOW_FIELD, X_ERROR_HIGH_FIELD,\n Y_ERROR_LOW_FIELD, Y_ERROR_HIGH_FIELD,\n LINE_MARKER_SIZE, INTERPOLATE, ZERO,\n SMOOTH, STEP, CATEGORY, FUNNEL, PYRAMID,\n BAR, CANDLESTICK, PIE, COLUMN, AREA,\n VERTICAL_BULLET, BOX_PLOT, OHLC, WATERFALL, LINE,\n BULLET, VERTICAL_LINE, VERTICAL_AREA, RANGE_AREA, VERTICAL_RANGE_AREA,\n RANGE_COLUMN, VERTICAL_BOX_PLOT, RANGE_BAR, HORIZONTAL_WATERFALL,\n SCATTER, SCATTER_LINE, BUBBLE, RADAR_AREA, RADAR_LINE,\n RADAR_COLUMN, POLAR_LINE, POLAR_AREA, POLAR_SCATTER,\n RENDER, PLOT_AREA_CLICK, PLOT_AREA_HOVER, PLOT_AREA_LEAVE,\n LOGARITHMIC, DRAG, DRAG_START, DRAG_END, ZOOM_START, ZOOM, ZOOM_END,\n SELECT_START, SELECT, SELECT_END, PANE_RENDER, GAP,\n DONUT, INSIDE_END, INSIDE_BASE, OUTSIDE_END,\n MOUSEWHEEL, MOUSEWHEEL_DELAY, MOUSEWHEEL_ZOOM_RATE,\n SHOW_TOOLTIP, HIDE_TOOLTIP,\n EQUALLY_SPACED_SERIES, ABOVE, BELOW,\n HEATMAP,\n DRILLDOWN, DRILLDOWN_FIELD,\n MIN_MOVING_AVERAGE_PERIOD,\n TRENDLINE_SERIES,\n TRENDLINE_EXPONENTIAL,\n TRENDLINE_LINEAR,\n TRENDLINE_LOGARITHMIC,\n TRENDLINE_MOVING_AVERAGE,\n TRENDLINE_POLYNOMIAL,\n TRENDLINE_POWER,\n CHART_POINT_ROLE, CHART_POINT_CLASSNAME, CHART_POINT_ROLE_DESCRIPTION,\n LEGEND_ITEM_ROLE, LEGEND_ITEM_CLASSNAME,\n LEGEND_ITEM_ARIA_ROLE_DESCRIPTION\n};\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Point, Box } from '../../core';\n\nimport { FADEIN, INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { setDefaultOptions, alignPathToPixel } from '../../common';\n\nconst DEFAULT_ERROR_BAR_WIDTH = 4;\n\nclass ErrorBarBase extends ChartElement {\n constructor(low, high, isVertical, chart, series, options) {\n super(options);\n\n this.low = low;\n this.high = high;\n this.isVertical = isVertical;\n this.chart = chart;\n this.series = series;\n }\n\n reflow(targetBox) {\n const endCaps = this.options.endCaps;\n const isVertical = this.isVertical;\n const axis = this.getAxis();\n const valueBox = axis.getSlot(this.low, this.high);\n const centerBox = targetBox.center();\n const capsWidth = this.getCapsWidth(targetBox, isVertical);\n const capValue = isVertical ? centerBox.x : centerBox.y;\n const capStart = capValue - capsWidth;\n const capEnd = capValue + capsWidth;\n let linePoints;\n\n if (isVertical) {\n linePoints = [\n new Point(centerBox.x, valueBox.y1),\n new Point(centerBox.x, valueBox.y2)\n ];\n if (endCaps) {\n linePoints.push(new Point(capStart, valueBox.y1),\n new Point(capEnd, valueBox.y1),\n new Point(capStart, valueBox.y2),\n new Point(capEnd, valueBox.y2));\n }\n this.box = new Box(capStart, valueBox.y1, capEnd, valueBox.y2);\n } else {\n linePoints = [\n new Point(valueBox.x1, centerBox.y),\n new Point(valueBox.x2, centerBox.y)\n ];\n if (endCaps) {\n linePoints.push(new Point(valueBox.x1, capStart),\n new Point(valueBox.x1, capEnd),\n new Point(valueBox.x2, capStart),\n new Point(valueBox.x2, capEnd));\n }\n this.box = new Box(valueBox.x1, capStart, valueBox.x2, capEnd);\n }\n\n this.linePoints = linePoints;\n }\n\n getCapsWidth(box, isVertical) {\n const boxSize = isVertical ? box.width() : box.height();\n const capsWidth = Math.min(Math.floor(boxSize / 2), DEFAULT_ERROR_BAR_WIDTH) || DEFAULT_ERROR_BAR_WIDTH;\n\n return capsWidth;\n }\n\n createVisual() {\n const options = this.options;\n const visual = options.visual;\n\n if (visual) {\n this.visual = visual({\n low: this.low,\n high: this.high,\n rect: this.box.toRect(),\n sender: this.getSender(),\n options: {\n endCaps: options.endCaps,\n color: options.color,\n line: options.line\n },\n createVisual: () => {\n this.createDefaultVisual();\n const defaultVisual = this.visual;\n delete this.visual;\n return defaultVisual;\n }\n });\n } else {\n this.createDefaultVisual();\n }\n }\n\n createDefaultVisual() {\n const { options, linePoints } = this;\n const lineOptions = {\n stroke: {\n color: options.color,\n width: options.line.width,\n dashType: options.line.dashType\n }\n };\n\n super.createVisual();\n\n for (let idx = 0; idx < linePoints.length; idx += 2) {\n const line = new draw.Path(lineOptions)\n .moveTo(linePoints[idx].x, linePoints[idx].y)\n .lineTo(linePoints[idx + 1].x, linePoints[idx + 1].y);\n\n alignPathToPixel(line);\n this.visual.append(line);\n }\n }\n}\n\nsetDefaultOptions(ErrorBarBase, {\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n },\n endCaps: true,\n line: {\n width: 2\n },\n zIndex: 1\n});\n\nexport default ErrorBarBase;","import ErrorBarBase from './error-bar-base';\n\nclass CategoricalErrorBar extends ErrorBarBase {\n getAxis() {\n const axis = this.chart.seriesValueAxis(this.series);\n\n return axis;\n }\n}\n\nexport default CategoricalErrorBar;","import { defined } from '../../common';\n\nexport default function anyHasZIndex(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n if (defined(elements[idx].zIndex)) {\n return true;\n }\n }\n}","export default function appendIfNotNull(array, element) {\n if (element !== null) {\n array.push(element);\n }\n}","import countNumbers from './count-numbers';\n\nexport default function areNumbers(values) {\n return countNumbers(values) === values.length;\n}","import { defined } from '../../common';\n\nexport default function segmentVisible(series, fields, index) {\n const visible = fields.visible;\n if (defined(visible)) {\n return visible;\n }\n\n const pointVisibility = series.pointVisibility;\n if (pointVisibility) {\n return pointVisibility[index];\n }\n}\n\n","import { isNumber, isString } from '../../common';\nimport SeriesBinder from '../series-binder';\nimport segmentVisible from './segment-visible';\n\nexport default function bindSegments(series) {\n const data = series.data;\n const points = [];\n let sum = 0;\n let count = 0;\n\n for (let idx = 0; idx < data.length; idx++) {\n const pointData = SeriesBinder.current.bindPoint(series, idx);\n let value = pointData.valueFields.value;\n\n\n if (isString(value)) {\n value = parseFloat(value);\n }\n\n if (isNumber(value)) {\n pointData.visible = segmentVisible(series, pointData.fields, idx) !== false;\n\n pointData.value = Math.abs(value);\n points.push(pointData);\n\n if (pointData.visible) {\n sum += pointData.value;\n }\n\n if (value !== 0) {\n count++;\n }\n } else {\n points.push(null);\n }\n }\n\n return {\n total: sum,\n points: points,\n count: count\n };\n}","export default function categoriesCount(series) {\n const seriesCount = series.length;\n let categories = 0;\n\n for (let i = 0; i < seriesCount; i++) {\n categories = Math.max(categories, series[i].data.length);\n }\n\n return categories;\n}","export default function equalsIgnoreCase(a, b) {\n if (a && b) {\n return a.toLowerCase() === b.toLowerCase();\n }\n\n return a === b;\n}","import { inArray, isFunction, isObject, valueOrDefault, hasOwnProperty } from '../../common';\n\nconst MAX_EXPAND_DEPTH = 5;\n\nexport default function evalOptions(options, context, state = {}, dryRun = false) {\n const defaults = state.defaults = state.defaults || {};\n const depth = state.depth = state.depth || 0;\n let needsEval = false;\n\n state.excluded = state.excluded || [];\n\n if (depth > MAX_EXPAND_DEPTH) {\n return null;\n }\n\n for (let property in options) {\n if (!inArray(property, state.excluded) && hasOwnProperty(options, property)) {\n const propValue = options[property];\n if (isFunction(propValue)) {\n needsEval = true;\n if (!dryRun) {\n options[property] = valueOrDefault(propValue(context), defaults[property]);\n }\n } else if (isObject(propValue)) {\n if (!dryRun) {\n state.defaults = defaults[property];\n }\n state.depth++;\n needsEval = evalOptions(propValue, context, state, dryRun) || needsEval;\n state.depth--;\n }\n }\n }\n\n return needsEval;\n}","import { inArray } from '../../common';\n\nexport default function filterSeriesByType(series, types) {\n const result = [];\n\n const seriesTypes = [].concat(types);\n for (let idx = 0; idx < series.length; idx++) {\n const currentSeries = series[idx];\n if (inArray(currentSeries.type, seriesTypes)) {\n result.push(currentSeries);\n }\n }\n\n return result;\n}","import { parseDate } from '../../date-utils';\n\nconst dateCache = new WeakMap();\n\nexport default function parseDateCategory(category, row, intlService) {\n if (row === null || typeof row !== 'object') {\n return parseDate(intlService, category);\n }\n\n let date = dateCache.get(row);\n if (!date) {\n date = parseDate(intlService, category);\n dateCache.set(row, date);\n }\n\n return date;\n}\n","export default function hasGradientOverlay(options) {\n const overlay = options.overlay;\n\n return overlay && overlay.gradient && overlay.gradient !== \"none\";\n}","import { defined } from '../../common';\n\nexport default function hasValue(value) {\n return defined(value) && value !== null;\n}","import equalsIgnoreCase from './equals-ignore-case';\n\nimport { DATE } from '../../common/constants';\n\nexport default function isDateAxis(axisOptions, sampleCategory) {\n const type = axisOptions.type;\n const dateCategory = sampleCategory instanceof Date;\n\n return (!type && dateCategory) || equalsIgnoreCase(type, DATE);\n}","export default function singleItemOrArray(array) {\n return array.length === 1 ? array[0] : array;\n}","import { INTERPOLATE, ZERO } from '../constants';\nimport { convertableToNumber } from '../../common';\nimport SeriesBinder from '../series-binder';\n\nconst AREA_REGEX = /area/i;\n\nfunction seriesMissingValues(series) {\n if (series.missingValues) {\n return series.missingValues;\n }\n\n return AREA_REGEX.test(series.type) || series.stack ? ZERO : INTERPOLATE;\n}\n\nfunction hasValue(series, item) {\n const fields = SeriesBinder.current.bindPoint(series, null, item);\n const valueFields = fields.valueFields;\n\n for (let field in valueFields) {\n if (convertableToNumber(valueFields[field])) {\n return true;\n }\n }\n}\n\nfunction findNext({ start, dir, min, max, getter, hasItem, series }) {\n let pointHasValue, outPoint;\n let idx = start;\n do {\n idx += dir;\n //aggregating and binding the item takes too much time for large number of categories\n //will assume that if the aggregation does not create value for a missing item for one it will not create for others\n if (hasItem(idx)) {\n outPoint = getter(idx);\n pointHasValue = hasValue(series, outPoint.item);\n }\n } while (min <= idx && idx <= max && !pointHasValue);\n\n if (pointHasValue) {\n return outPoint;\n }\n}\n\nexport default function createOutOfRangePoints(series, range, count, getter, hasItem) {\n const { min, max } = range;\n const hasMinPoint = min > 0 && min < count;\n const hasMaxPoint = max + 1 < count;\n\n if (hasMinPoint || hasMaxPoint) {\n const missingValues = seriesMissingValues(series);\n let minPoint, maxPoint;\n if (missingValues !== INTERPOLATE) {\n if (hasMinPoint) {\n minPoint = getter(min - 1);\n }\n\n if (hasMaxPoint) {\n maxPoint = getter(max + 1);\n }\n } else {\n let outPoint, pointHasValue;\n if (hasMinPoint) {\n outPoint = getter(min - 1);\n pointHasValue = hasValue(series, outPoint.item);\n if (!pointHasValue) {\n minPoint = findNext({\n start: min,\n dir: -1,\n min: 0,\n max: count - 1,\n getter: getter,\n hasItem: hasItem,\n series: series\n });\n } else {\n minPoint = outPoint;\n }\n }\n\n if (hasMaxPoint) {\n outPoint = getter(max + 1);\n pointHasValue = hasValue(series, outPoint.item);\n if (!pointHasValue) {\n maxPoint = findNext({\n start: max,\n dir: 1,\n min: 0,\n max: count - 1,\n getter: getter,\n hasItem: hasItem,\n series: series\n });\n } else {\n maxPoint = outPoint;\n }\n }\n }\n\n if (minPoint) {\n series._outOfRangeMinPoint = minPoint;\n }\n\n if (maxPoint) {\n series._outOfRangeMaxPoint = maxPoint;\n }\n }\n}","import ErrorRangeCalculator from './error-bars/error-range-calculator';\nimport CategoricalErrorBar from './error-bars/categorical-error-bar';\n\nimport { ERROR_LOW_FIELD, ERROR_HIGH_FIELD } from './constants';\n\nimport { evalOptions, categoriesCount } from './utils';\n\nimport { ChartElement, Box } from '../core';\n\nimport { VALUE, STRING, MIN_VALUE, MAX_VALUE, OBJECT } from '../common/constants';\nimport { convertableToNumber, deepExtend, defined, isNumber, last, setDefaultOptions, sparseArrayLimits } from '../common';\n\nclass CategoricalChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this.categoryAxis = plotArea.seriesCategoryAxis(options.series[0]);\n\n // Value axis ranges grouped by axis name, e.g.:\n // primary: { min: 0, max: 1 }\n this.valueAxisRanges = {};\n\n this.points = [];\n this.categoryPoints = [];\n this.seriesPoints = [];\n this.seriesOptions = [];\n this._evalSeries = [];\n\n this.render();\n }\n\n render() {\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n pointOptions(series, seriesIx) {\n let options = this.seriesOptions[seriesIx];\n if (!options) {\n const defaults = this.pointType().prototype.defaults;\n this.seriesOptions[seriesIx] = options = deepExtend({ }, defaults, {\n vertical: !this.options.invertAxes\n }, series);\n }\n\n return options;\n }\n\n plotValue(point) {\n if (!point) {\n return 0;\n }\n\n if (this.options.isStacked100 && isNumber(point.value)) {\n const categoryIx = point.categoryIx;\n const categoryPoints = this.categoryPoints[categoryIx];\n const otherValues = [];\n let categorySum = 0;\n\n for (let i = 0; i < categoryPoints.length; i++) {\n const other = categoryPoints[i];\n if (other) {\n const stack = point.series.stack;\n const otherStack = other.series.stack;\n\n if ((stack && otherStack) && stack.group !== otherStack.group) {\n continue;\n }\n\n if (isNumber(other.value)) {\n categorySum += Math.abs(other.value);\n otherValues.push(Math.abs(other.value));\n }\n }\n }\n\n if (categorySum > 0) {\n return point.value / categorySum;\n }\n }\n\n return point.value;\n }\n\n plotRange(point, startValue = 0) {\n const categoryPoints = this.categoryPoints[point.categoryIx];\n\n if (this.options.isStacked) {\n let plotValue = this.plotValue(point);\n const positive = plotValue >= 0;\n let prevValue = startValue;\n let isStackedBar = false;\n const stack = defined(point.series.stack) ? point.series.stack : this.options.defaultStack;\n const isNonGroupStack = (stack) => stack === true || typeof stack === OBJECT && !stack.group;\n\n if (stack) {\n for (let i = 0; i < categoryPoints.length; i++) {\n const other = categoryPoints[i];\n\n if (point === other) {\n break;\n }\n\n const otherStack = defined(other.series.stack) ? other.series.stack : this.options.defaultStack;\n\n if (!otherStack) {\n continue;\n }\n\n if (typeof stack === STRING && stack !== otherStack) {\n continue;\n }\n\n if (isNonGroupStack(stack) && !isNonGroupStack(otherStack)) {\n continue;\n }\n\n if (stack.group && stack.group !== otherStack.group) {\n continue;\n }\n\n const otherValue = this.plotValue(other);\n if ((otherValue >= 0 && positive) ||\n (otherValue < 0 && !positive)) {\n // zero values should be skipped for log axis (startValue !== 0)\n if (startValue === 0 || otherValue !== 0) {\n prevValue += otherValue;\n plotValue += otherValue;\n isStackedBar = true;\n\n if (this.options.isStacked100) {\n plotValue = Math.min(plotValue, 1);\n }\n }\n }\n }\n }\n\n if (isStackedBar) {\n prevValue -= startValue;\n }\n\n return [ prevValue, plotValue ];\n }\n\n const series = point.series;\n const valueAxis = this.seriesValueAxis(series);\n const axisCrossingValue = this.categoryAxisCrossingValue(valueAxis);\n\n return [ axisCrossingValue, convertableToNumber(point.value) ? point.value : axisCrossingValue ];\n }\n\n stackLimits(axisName, stackName) {\n let min = MAX_VALUE;\n let max = MIN_VALUE;\n\n for (let i = 0; i < this.categoryPoints.length; i++) {\n const categoryPoints = this.categoryPoints[i];\n if (!categoryPoints) {\n continue;\n }\n\n for (let pIx = 0; pIx < categoryPoints.length; pIx++) {\n const point = categoryPoints[pIx];\n if (point) {\n if (point.series.stack === stackName || point.series.axis === axisName) {\n const to = this.plotRange(point, 0)[1];\n if (defined(to) && isFinite(to)) {\n max = Math.max(max, to);\n min = Math.min(min, to);\n }\n }\n }\n }\n }\n\n return { min: min, max: max };\n }\n\n updateStackRange() {\n const { isStacked, series: chartSeries } = this.options;\n const limitsCache = {};\n\n if (isStacked) {\n for (let i = 0; i < chartSeries.length; i++) {\n const series = chartSeries[i];\n const axisName = series.axis;\n const key = axisName + series.stack;\n\n let limits = limitsCache[key];\n if (!limits) {\n limits = this.stackLimits(axisName, series.stack);\n\n const errorTotals = this.errorTotals;\n if (errorTotals) {\n if (errorTotals.negative.length) {\n limits.min = Math.min(limits.min, sparseArrayLimits(errorTotals.negative).min);\n }\n if (errorTotals.positive.length) {\n limits.max = Math.max(limits.max, sparseArrayLimits(errorTotals.positive).max);\n }\n }\n\n if (limits.min !== MAX_VALUE || limits.max !== MIN_VALUE) {\n limitsCache[key] = limits;\n } else {\n limits = null;\n }\n }\n\n if (limits) {\n this.valueAxisRanges[axisName] = limits;\n }\n }\n }\n }\n\n addErrorBar(point, data, categoryIx) {\n const { value, series, seriesIx } = point;\n const errorBars = point.options.errorBars;\n const lowValue = data.fields[ERROR_LOW_FIELD];\n const highValue = data.fields[ERROR_HIGH_FIELD];\n let errorRange;\n\n if (isNumber(lowValue) && isNumber(highValue)) {\n errorRange = { low: lowValue, high: highValue };\n } else if (errorBars && defined(errorBars.value)) {\n this.seriesErrorRanges = this.seriesErrorRanges || [];\n this.seriesErrorRanges[seriesIx] = this.seriesErrorRanges[seriesIx] ||\n new ErrorRangeCalculator(errorBars.value, series, VALUE);\n\n errorRange = this.seriesErrorRanges[seriesIx].getErrorRange(value, errorBars.value);\n }\n\n if (errorRange) {\n point.low = errorRange.low;\n point.high = errorRange.high;\n this.addPointErrorBar(point, categoryIx);\n }\n }\n\n addPointErrorBar(point, categoryIx) {\n const isVertical = !this.options.invertAxes;\n const options = point.options.errorBars;\n let { series, low, high } = point;\n\n if (this.options.isStacked) {\n const stackedErrorRange = this.stackedErrorRange(point, categoryIx);\n low = stackedErrorRange.low;\n high = stackedErrorRange.high;\n } else {\n const fields = { categoryIx: categoryIx, series: series };\n this.updateRange({ value: low }, fields);\n this.updateRange({ value: high }, fields);\n }\n\n const errorBar = new CategoricalErrorBar(low, high, isVertical, this, series, options);\n point.errorBars = [ errorBar ];\n point.append(errorBar);\n }\n\n stackedErrorRange(point, categoryIx) {\n const plotValue = this.plotRange(point, 0)[1] - point.value;\n const low = point.low + plotValue;\n const high = point.high + plotValue;\n\n this.errorTotals = this.errorTotals || { positive: [], negative: [] };\n\n if (low < 0) {\n this.errorTotals.negative[categoryIx] = Math.min(this.errorTotals.negative[categoryIx] || 0, low);\n }\n\n if (high > 0) {\n this.errorTotals.positive[categoryIx] = Math.max(this.errorTotals.positive[categoryIx] || 0, high);\n }\n\n return { low: low, high: high };\n }\n\n addValue(data, fields) {\n const { categoryIx, series, seriesIx } = fields;\n\n let categoryPoints = this.categoryPoints[categoryIx];\n if (!categoryPoints) {\n this.categoryPoints[categoryIx] = categoryPoints = [];\n }\n\n let seriesPoints = this.seriesPoints[seriesIx];\n if (!seriesPoints) {\n this.seriesPoints[seriesIx] = seriesPoints = [];\n }\n\n const point = this.createPoint(data, fields);\n if (point) {\n Object.assign(point, fields);\n\n point.owner = this;\n point.noteText = data.fields.noteText;\n if (!defined(point.dataItem)) {\n point.dataItem = series.data[categoryIx];\n }\n this.addErrorBar(point, data, categoryIx);\n }\n\n this.points.push(point);\n seriesPoints.push(point);\n categoryPoints.push(point);\n\n this.updateRange(data.valueFields, fields);\n }\n\n evalPointOptions(options, value, fields) {\n const categoryIx = fields.categoryIx;\n const category = fields.category;\n const series = fields.series;\n const seriesIx = fields.seriesIx;\n const state = {\n defaults: series._defaults,\n excluded: [\n \"data\", \"aggregate\", \"_events\", \"tooltip\", \"content\", \"template\",\n \"visual\", \"toggle\", \"_outOfRangeMinPoint\", \"_outOfRangeMaxPoint\",\n \"drilldownSeriesFactory\", \"ariaTemplate\", \"ariaContent\"\n ]\n };\n\n let doEval = this._evalSeries[seriesIx];\n if (!defined(doEval)) {\n this._evalSeries[seriesIx] = doEval = evalOptions(options, {}, state, true);\n }\n\n let pointOptions = options;\n if (doEval) {\n pointOptions = deepExtend({}, pointOptions);\n evalOptions(pointOptions, {\n value: value,\n category: category,\n index: categoryIx,\n series: series,\n dataItem: series.data[categoryIx]\n }, state);\n }\n\n return pointOptions;\n }\n\n updateRange(data, fields) {\n const axisName = fields.series.axis;\n const value = data.value;\n let axisRange = this.valueAxisRanges[axisName];\n\n if (isFinite(value) && value !== null) {\n axisRange = this.valueAxisRanges[axisName] =\n axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange.min = Math.min(axisRange.min, value);\n axisRange.max = Math.max(axisRange.max, value);\n }\n }\n\n seriesValueAxis(series) {\n const plotArea = this.plotArea;\n const axisName = series.axis;\n const axis = axisName ? plotArea.namedValueAxes[axisName] : plotArea.valueAxis;\n\n if (!axis) {\n throw new Error(\"Unable to locate value axis with name \" + axisName);\n }\n\n return axis;\n }\n\n reflow(targetBox) {\n const categorySlots = this.categorySlots = [];\n const chartPoints = this.points;\n const categoryAxis = this.categoryAxis;\n let pointIx = 0;\n\n this.traverseDataPoints((data, fields) => {\n const { categoryIx, series: currentSeries } = fields;\n\n const valueAxis = this.seriesValueAxis(currentSeries);\n const point = chartPoints[pointIx++];\n\n let categorySlot = categorySlots[categoryIx];\n if (!categorySlot) {\n categorySlots[categoryIx] = categorySlot =\n this.categorySlot(categoryAxis, categoryIx, valueAxis);\n }\n\n if (point) {\n const plotRange = this.plotRange(point, valueAxis.startValue());\n const valueSlot = this.valueSlot(valueAxis, plotRange);\n if (valueSlot) {\n const pointSlot = this.pointSlot(categorySlot, valueSlot);\n\n point.aboveAxis = this.aboveAxis(point, valueAxis);\n point.stackValue = plotRange[1];\n\n if (this.options.isStacked100) {\n point.percentage = this.plotValue(point);\n }\n\n this.reflowPoint(point, pointSlot);\n } else {\n point.visible = false;\n }\n }\n });\n\n this.reflowCategories(categorySlots);\n if (!this.options.clip && this.options.limitPoints && this.points.length) {\n this.limitPoints();\n }\n\n this.box = targetBox;\n }\n\n valueSlot(valueAxis, plotRange) {\n return valueAxis.getSlot(plotRange[0], plotRange[1], !this.options.clip);\n }\n\n limitPoints() {\n const categoryPoints = this.categoryPoints;\n const points = categoryPoints[0].concat(last(categoryPoints));\n for (let idx = 0; idx < points.length; idx++) {\n if (points[idx]) {\n this.limitPoint(points[idx]);\n }\n }\n }\n\n limitPoint(point) {\n const limitedSlot = this.categoryAxis.limitSlot(point.box);\n if (!limitedSlot.equals(point.box)) {\n point.reflow(limitedSlot);\n }\n }\n\n aboveAxis(point, valueAxis) {\n const axisCrossingValue = this.categoryAxisCrossingValue(valueAxis);\n const value = point.value;\n\n return valueAxis.options.reverse ?\n value < axisCrossingValue : value >= axisCrossingValue;\n }\n\n categoryAxisCrossingValue(valueAxis) {\n const categoryAxis = this.categoryAxis;\n const options = valueAxis.options;\n const crossingValues = [].concat(\n options.axisCrossingValues || options.axisCrossingValue\n );\n\n return crossingValues[categoryAxis.axisIndex || 0] || 0;\n }\n\n reflowPoint(point, pointSlot) {\n point.reflow(pointSlot);\n }\n\n reflowCategories() { }\n\n pointSlot(categorySlot, valueSlot) {\n const options = this.options;\n const invertAxes = options.invertAxes;\n const slotX = invertAxes ? valueSlot : categorySlot;\n const slotY = invertAxes ? categorySlot : valueSlot;\n\n return new Box(slotX.x1, slotY.y1, slotX.x2, slotY.y2);\n }\n\n categorySlot(categoryAxis, categoryIx) {\n return categoryAxis.getSlot(categoryIx);\n }\n\n traverseDataPoints(callback) {\n const series = this.options.series;\n const count = categoriesCount(series);\n const seriesCount = series.length;\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n this._outOfRangeCallback(series[seriesIx], \"_outOfRangeMinPoint\", seriesIx, callback);\n }\n\n for (let categoryIx = 0; categoryIx < count; categoryIx++) {\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n const currentSeries = series[seriesIx];\n const currentCategory = this.categoryAxis.categoryAt(categoryIx);\n const pointData = this.plotArea.bindPoint(currentSeries, categoryIx);\n\n callback(pointData, {\n category: currentCategory,\n categoryIx: categoryIx,\n categoriesCount: count,\n series: currentSeries,\n seriesIx: seriesIx\n });\n }\n }\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n this._outOfRangeCallback(series[seriesIx], \"_outOfRangeMaxPoint\", seriesIx, callback);\n }\n }\n\n _outOfRangeCallback(series, field, seriesIx, callback) {\n const outOfRangePoint = series[field];\n if (outOfRangePoint) {\n const categoryIx = outOfRangePoint.categoryIx;\n const pointData = this.plotArea.bindPoint(series, categoryIx, outOfRangePoint.item);\n\n callback(pointData, {\n category: outOfRangePoint.category,\n categoryIx: categoryIx,\n series: series,\n seriesIx: seriesIx,\n dataItem: outOfRangePoint.item\n });\n }\n }\n\n formatPointValue(point, format) {\n if (point.value === null) {\n return \"\";\n }\n\n return this.chartService.format.auto(format, point.value);\n }\n\n pointValue(data) {\n return data.valueFields.value;\n }\n}\n\nsetDefaultOptions(CategoricalChart, {\n series: [],\n invertAxes: false,\n isStacked: false,\n clip: true,\n limitPoints: true\n});\n\nexport default CategoricalChart;\n","import { SERIES_CLICK, SERIES_HOVER, SERIES_LEAVE, SERIES_OVER } from '../constants';\nimport { eventElement } from '../../common';\n\nconst PointEventsMixin = {\n click: function(chart, e) {\n return chart.trigger(\n SERIES_CLICK,\n this.eventArgs(e)\n );\n },\n\n hover: function(chart, e) {\n return chart.trigger(\n SERIES_HOVER,\n this.eventArgs(e)\n );\n },\n\n over: function(chart, e) {\n return chart.trigger(\n SERIES_OVER,\n this.eventArgs(e)\n );\n },\n\n out: function(chart, e) {\n return chart.trigger(\n SERIES_LEAVE,\n this.eventArgs(e)\n );\n },\n\n eventArgs: function(e) {\n return {\n value: this.value,\n percentage: this.percentage,\n stackValue: this.stackValue,\n category: this.category,\n series: this.series,\n dataItem: this.dataItem,\n runningTotal: this.runningTotal,\n total: this.total,\n element: eventElement(e),\n originalEvent: e,\n point: this\n };\n }\n};\n\nexport default PointEventsMixin;","import { Note } from '../../core';\nimport { defined } from '../../common';\n\nconst NoteMixin = {\n createNote: function() {\n const options = this.options.notes;\n const text = this.noteText || options.label.text;\n\n if (options.visible !== false && defined(text) && text !== null) {\n this.note = new Note({\n value: this.value,\n text: text,\n dataItem: this.dataItem,\n category: this.category,\n series: this.series\n }, this.options.notes, this.owner.chartService);\n\n this.append(this.note);\n }\n }\n};\n\nexport default NoteMixin;","import { geometry as geom, Color } from '@progress/kendo-drawing';\n\nimport { ChartElement, TextBox, ShapeElement, Box, Point } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport { LINE_MARKER_SIZE, FADEIN, INITIAL_ANIMATION_DURATION, BORDER_BRIGHTNESS, TOOLTIP_OFFSET, ABOVE, BELOW, CHART_POINT_ROLE, CHART_POINT_CLASSNAME, CHART_POINT_ROLE_DESCRIPTION } from '../constants';\n\nimport { WHITE, CIRCLE, CENTER, TOP, BOTTOM, LEFT, HIGHLIGHT_ZINDEX } from '../../common/constants';\nimport { deepExtend, defined, getTemplate, getAriaTemplate, valueOrDefault, getSpacing } from '../../common';\nimport guid from '../../core/utils/guid';\n\nclass LinePoint extends ChartElement {\n constructor(value, options) {\n super();\n\n this.value = value;\n this.options = options;\n this.aboveAxis = valueOrDefault(this.options.aboveAxis, true);\n this.tooltipTracking = true;\n this._id = guid();\n }\n\n render() {\n const { markers } = this.options;\n\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n if (markers.visible && markers.size) {\n this.marker = this.createMarker();\n this.append(this.marker);\n }\n\n this.createLabel();\n this.createNote();\n\n if (this.errorBar) {\n this.append(this.errorBar);\n }\n }\n\n createLabel() {\n const options = this.options;\n const labels = options.labels;\n\n if (labels.visible) {\n this.label = this.createLabelElement(labels);\n this.append(this.label);\n }\n }\n\n createLabelElement(options) {\n return new TextBox(this.getLabelText(options),\n deepExtend({\n align: CENTER,\n vAlign: CENTER,\n margin: {\n left: 5,\n right: 5\n },\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex)\n }, options),\n this.pointData()\n );\n }\n\n getLabelText(options) {\n let labelTemplate = getTemplate(options);\n\n if (labelTemplate) {\n return labelTemplate(this.pointData());\n } else if (options.format) {\n return this.formatValue(options.format);\n }\n\n return this.value;\n }\n\n getAriaLabelText() {\n const labels = this.options.labels;\n const ariaTemplate = getAriaTemplate(labels);\n\n if (ariaTemplate) {\n return ariaTemplate(this.pointData());\n }\n\n return this.getLabelText(labels);\n }\n\n markerBorder() {\n const options = this.options.markers;\n const background = options.background;\n const border = deepExtend({ color: this.color }, options.border);\n\n if (!defined(border.color)) {\n border.color = new Color(background).brightness(BORDER_BRIGHTNESS).toHex();\n }\n\n return border;\n }\n\n createVisual() {}\n\n createMarker() {\n const options = this.options.markers;\n const marker = new ShapeElement({\n type: options.type,\n width: options.size,\n height: options.size,\n rotation: options.rotation,\n background: options.background,\n border: this.markerBorder(),\n opacity: options.opacity,\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex),\n animation: options.animation,\n visual: options.visual,\n accessibilityOptions: deepExtend({\n ariaLabel: this.getAriaLabelText(this.options.labels)\n }, this.options.accessibility)\n }, {\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n category: this.category\n });\n\n return marker;\n }\n\n markerBox() {\n if (!this.marker) {\n this.marker = this.createMarker();\n this.marker.reflow(this._childBox);\n }\n\n return this.marker.box;\n }\n\n reflow(targetBox) {\n const { options, aboveAxis } = this;\n const vertical = options.vertical;\n\n this.render();\n\n this.box = targetBox;\n const childBox = targetBox.clone();\n\n if (vertical) {\n if (aboveAxis) {\n childBox.y1 -= childBox.height();\n } else {\n childBox.y2 += childBox.height();\n }\n } else {\n if (aboveAxis) {\n childBox.x1 += childBox.width();\n } else {\n childBox.x2 -= childBox.width();\n }\n }\n\n this._childBox = childBox;\n if (this.marker) {\n this.marker.reflow(childBox);\n }\n\n this.reflowLabel(childBox);\n\n if (this.errorBars) {\n for (let i = 0; i < this.errorBars.length; i++) {\n this.errorBars[i].reflow(childBox);\n }\n }\n\n if (this.note) {\n let noteTargetBox = this.markerBox();\n\n if (!(options.markers.visible && options.markers.size)) {\n const center = noteTargetBox.center();\n noteTargetBox = new Box(center.x, center.y, center.x, center.y);\n }\n\n this.note.reflow(noteTargetBox);\n }\n }\n\n reflowLabel(box) {\n const { options, label } = this;\n let anchor = options.labels.position;\n\n if (label) {\n anchor = anchor === ABOVE ? TOP : anchor;\n anchor = anchor === BELOW ? BOTTOM : anchor;\n\n label.reflow(box);\n label.box.alignTo(this.markerBox(), anchor);\n label.reflow(label.box);\n }\n }\n\n createHighlight() {\n const markers = this.options.highlight.markers;\n const defaultColor = this.markerBorder().color;\n const options = this.options.markers;\n const size = options.size + (options.border.width || 0) + (markers.border.width || 0);\n\n const shadow = new ShapeElement({\n type: options.type,\n width: size,\n height: size,\n rotation: options.rotation,\n background: markers.color || defaultColor,\n border: {\n color: markers.border.color,\n width: markers.border.width,\n opacity: valueOrDefault(markers.border.opacity, 1)\n },\n opacity: valueOrDefault(markers.opacity, 1)\n });\n shadow.reflow(this._childBox);\n\n return shadow.getElement();\n }\n\n highlightVisual() {\n return (this.marker || {}).visual;\n }\n\n highlightVisualArgs() {\n const marker = this.marker;\n let visual, rect;\n\n if (marker) {\n rect = marker.paddingBox.toRect();\n visual = marker.visual;\n } else {\n const size = this.options.markers.size;\n const halfSize = size / 2;\n const center = this.box.center();\n rect = new geom.Rect([ center.x - halfSize, center.y - halfSize ], [ size, size ]);\n }\n\n return {\n options: this.options,\n rect: rect,\n visual: visual\n };\n }\n\n createFocusHighlight() {\n const markerOptions = this.options.markers;\n const highlightOptions = this.options.accessibility.highlight;\n const size = markerOptions.size + (markerOptions.border.width || 0);\n\n const highlight = new ShapeElement({\n type: markerOptions.type,\n width: size,\n height: size,\n rotation: markerOptions.rotation,\n background: highlightOptions.color,\n border: highlightOptions.border,\n opacity: highlightOptions.opacity,\n padding: highlightOptions.border.width / 2,\n zIndex: highlightOptions.zIndex\n });\n\n highlight.reflow(this._childBox);\n\n return highlight.getElement();\n }\n\n tooltipAnchor() {\n const markerBox = this.markerBox();\n const clipBox = this.owner.pane.clipBox();\n const showTooltip = !clipBox || clipBox.overlaps(markerBox);\n\n if (showTooltip) {\n const x = markerBox.x2 + TOOLTIP_OFFSET;\n const horizontalAlign = LEFT;\n let y, verticalAlign;\n\n if (this.aboveAxis) {\n y = markerBox.y1;\n verticalAlign = BOTTOM;\n } else {\n y = markerBox.y2;\n verticalAlign = TOP;\n }\n\n return {\n point: new Point(x, y),\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n overlapsBox(box) {\n const markerBox = this.markerBox();\n return markerBox.overlaps(box);\n }\n\n unclipElements() {\n if (this.label) {\n this.label.options.noclip = true;\n }\n\n if (this.note) {\n this.note.options.noclip = true;\n }\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n percentage: this.percentage,\n stackValue: this.stackValue,\n series: this.series\n };\n }\n\n focusVisual() {\n if (this.marker) {\n if (this.marker.visual) {\n this.marker.visual.options.set(\"id\", this._id);\n }\n\n this.toggleFocusHighlight(true);\n }\n }\n\n clearFocusFromVisual() {\n if (this.marker) {\n if (this.marker.visual) {\n this.marker.visual.options.set(\"id\", \"\");\n }\n\n this.toggleFocusHighlight(false);\n }\n }\n\n getIndex() {\n return defined(this.categoryIx) ? this.categoryIx : this.pointIx;\n }\n}\n\nLinePoint.prototype.defaults = {\n vertical: true,\n markers: {\n visible: true,\n background: WHITE,\n size: LINE_MARKER_SIZE,\n type: CIRCLE,\n border: {\n width: 2\n },\n opacity: 1\n },\n labels: {\n visible: false,\n position: ABOVE,\n margin: getSpacing(3),\n padding: getSpacing(4),\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n }\n },\n notes: {\n label: {}\n },\n highlight: {\n markers: {\n border: {\n color: \"#fff\",\n width: 2\n }\n },\n zIndex: HIGHLIGHT_ZINDEX\n },\n errorBars: {\n line: {\n width: 1\n }\n },\n accessibility: {\n tabIndex: 0,\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n};\n\ndeepExtend(LinePoint.prototype, PointEventsMixin);\ndeepExtend(LinePoint.prototype, NoteMixin);\n\nexport default LinePoint;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement } from '../../core';\n\nimport { defined, isFunction, setDefaultOptions } from '../../common';\n\nclass LineSegment extends ChartElement {\n constructor(linePoints, series, seriesIx) {\n super();\n\n this.linePoints = linePoints;\n this.series = series;\n this.seriesIx = seriesIx;\n }\n\n points() {\n return this.toGeometryPoints(this.linePoints);\n }\n\n toGeometryPoints(points) {\n const result = [];\n for (let i = 0, length = points.length; i < length; i++) {\n if (points[i] && points[i].visible !== false) {\n result.push(points[i]._childBox.toRect().center());\n }\n }\n\n return result;\n }\n\n createVisual() {\n const customVisual = this.series.visual;\n if (customVisual) {\n this.visual = customVisual({\n points: this.toGeometryPoints(this.linePoints),\n series: this.series,\n sender: this.getSender(),\n createVisual: () => {\n this.segmentVisual();\n\n return this.visual;\n }\n });\n if (this.visual && !defined(this.visual.options.zIndex)) {\n this.visual.options.zIndex = this.series.zIndex;\n }\n } else {\n this.segmentVisual();\n }\n }\n\n segmentVisual() {\n const { options, series } = this;\n let { color, _defaults: defaults } = series;\n\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n const line = draw.Path.fromPoints(this.points(), {\n stroke: {\n color: color,\n width: series.width,\n opacity: series.opacity,\n dashType: series.dashType\n },\n zIndex: series.zIndex\n });\n\n if (options.closed) {\n line.close();\n }\n\n this.visual = line;\n }\n\n aliasFor(e, coords) {\n return this.parent.getNearestPoint(coords.x, coords.y, this.seriesIx);\n }\n}\n\nsetDefaultOptions(LineSegment, {\n closed: false\n});\n\nexport default LineSegment;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport { last } from '../../common';\nimport { X, Y } from '../../common/constants';\n\nconst StepLineMixin = {\n calculateStepPoints: function(points) {\n const categoryAxis = this.parent.plotArea.seriesCategoryAxis(this.series);\n const { justified, vertical, reverse } = categoryAxis.options;\n\n const stepAxis = vertical ? X : Y;\n const axis = vertical ? Y : X;\n const stepDir = reverse ? 2 : 1;\n const dir = stepDir;\n\n let previousPoint = toGeometryPoint(points[0], stepAxis, stepDir, axis, dir);\n const result = [ previousPoint ];\n\n for (let idx = 1; idx < points.length; idx++) {\n const point = toGeometryPoint(points[idx], stepAxis, stepDir, axis, dir);\n\n if (previousPoint[stepAxis] !== point[stepAxis]) {\n const stepPoint = new geom.Point();\n stepPoint[stepAxis] = previousPoint[stepAxis];\n stepPoint[axis] = point[axis];\n\n result.push(stepPoint, point);\n }\n\n previousPoint = point;\n }\n\n if (!justified) {\n result.push(toGeometryPoint(last(points), stepAxis, stepDir, axis, reverse ? 1 : 2));\n } else if (previousPoint !== last(result)) {\n result.push(previousPoint);\n }\n\n return result;\n\n }\n};\n\nfunction toGeometryPoint(lintPoint, stepAxis, stepDir, axis, dir) {\n const box = lintPoint.box;\n const result = new geom.Point();\n\n result[stepAxis] = box[stepAxis + stepDir];\n result[axis] = box[axis + dir];\n\n return result;\n}\n\nexport default StepLineMixin;","import LineSegment from './line-segment';\nimport StepLineMixin from './step-line-mixin';\nimport { deepExtend } from '../../common';\n\nclass StepLineSegment extends LineSegment {\n points() {\n return this.calculateStepPoints(this.linePoints);\n }\n}\n\ndeepExtend(StepLineSegment.prototype, StepLineMixin);\n\nexport default StepLineSegment;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport LineSegment from './line-segment';\n\nimport { CurveProcessor } from '../../core';\n\nimport { isFunction } from '../../common';\n\nclass SplineSegment extends LineSegment {\n segmentVisual() {\n const series = this.series;\n const defaults = series._defaults;\n let color = series.color;\n\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n const curveProcessor = new CurveProcessor(this.options.closed);\n const segments = curveProcessor.process(this.points());\n const curve = new draw.Path({\n stroke: {\n color: color,\n width: series.width,\n opacity: series.opacity,\n dashType: series.dashType\n },\n zIndex: series.zIndex\n });\n\n curve.segments.push.apply(curve.segments, segments);\n\n this.visual = curve;\n }\n}\n\nexport default SplineSegment;","import { ZERO, INTERPOLATE } from '../constants';\n\nimport { Point } from '../../core';\nimport { MAX_VALUE } from '../../common/constants';\nimport { defined } from '../../common';\n\nconst LineChartMixin = {\n renderSegments: function() {\n const { options, seriesPoints } = this;\n const series = options.series;\n const seriesCount = seriesPoints.length;\n let lastSegment;\n\n this._segments = [];\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n const currentSeries = series[seriesIx];\n const sortedPoints = this.sortPoints(seriesPoints[seriesIx]);\n const pointCount = sortedPoints.length;\n let linePoints = [];\n\n for (let pointIx = 0; pointIx < pointCount; pointIx++) {\n const point = sortedPoints[pointIx];\n if (point) {\n linePoints.push(point);\n } else if (this.seriesMissingValues(currentSeries) !== INTERPOLATE) {\n if (linePoints.length > 1) {\n lastSegment = this.createSegment(\n linePoints, currentSeries, seriesIx, lastSegment\n );\n this._addSegment(lastSegment);\n }\n linePoints = [];\n }\n }\n\n if (linePoints.length > 1) {\n lastSegment = this.createSegment(\n linePoints, currentSeries, seriesIx, lastSegment\n );\n this._addSegment(lastSegment);\n }\n }\n\n this.children.unshift.apply(this.children, this._segments);\n },\n\n _addSegment: function(segment) {\n this._segments.push(segment);\n segment.parent = this;\n },\n\n sortPoints: function(points) {\n return points;\n },\n\n seriesMissingValues: function(series) {\n const missingValues = series.missingValues;\n const assumeZero = !missingValues && this.options.isStacked;\n\n return assumeZero ? ZERO : missingValues || INTERPOLATE;\n },\n\n getNearestPoint: function(x, y, seriesIx) {\n const target = new Point(x, y);\n const allPoints = this.seriesPoints[seriesIx];\n let nearestPointDistance = MAX_VALUE;\n let nearestPoint;\n\n for (let i = 0; i < allPoints.length; i++) {\n const point = allPoints[i];\n\n if (point && defined(point.value) && point.value !== null && point.visible !== false) {\n const pointBox = point.box;\n const pointDistance = pointBox.center().distanceTo(target);\n\n if (pointDistance < nearestPointDistance) {\n nearestPoint = point;\n nearestPointDistance = pointDistance;\n }\n }\n }\n\n return nearestPoint;\n }\n};\n\nexport default LineChartMixin;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { interpolateValue, setDefaultOptions } from '../../common';\n\nclass ClipAnimation extends draw.Animation {\n setup() {\n this._setEnd(this.options.box.x1);\n }\n\n step(pos) {\n const box = this.options.box;\n this._setEnd(interpolateValue(box.x1, box.x2, pos));\n }\n\n _setEnd(x) {\n const element = this.element;\n const segments = element.segments;\n const topRight = segments[1].anchor();\n const bottomRight = segments[2].anchor();\n\n element.suspend();\n topRight.setX(x);\n element.resume();\n bottomRight.setX(x);\n }\n}\n\nsetDefaultOptions(ClipAnimation, {\n duration: INITIAL_ANIMATION_DURATION\n});\n\ndraw.AnimationFactory.current.register(\"clip\", ClipAnimation);\n\nexport default ClipAnimation;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport ClipAnimation from '../animations/clip-animation';\nimport anyHasZIndex from '../utils/any-has-z-index';\nimport { defined } from '../../common';\n\nconst ClipAnimationMixin = {\n createAnimation: function() {\n const root = this.getRoot();\n if (root && (root.options || {}).transitions !== false) {\n const box = root.size();\n const clipPath = draw.Path.fromRect(box.toRect());\n this.visual.clip(clipPath);\n this.animation = new ClipAnimation(clipPath, {\n box: box\n });\n if (anyHasZIndex(this.options.series)) {\n this._setChildrenAnimation(clipPath);\n }\n }\n },\n\n _setChildrenAnimation: function(clipPath) {\n const points = this.animationPoints();\n\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n if (point && point.visual && defined(point.visual.options.zIndex)) {\n point.visual.clip(clipPath);\n }\n }\n }\n};\n\nexport default ClipAnimationMixin;","import CategoricalChart from '../categorical-chart';\nimport LinePoint from './line-point';\nimport LineSegment from './line-segment';\nimport StepLineSegment from './step-line-segment';\nimport SplineSegment from './spline-segment';\nimport LineChartMixin from '../mixins/line-chart-mixin';\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\n\nimport { ZERO, SMOOTH, STEP } from '../constants';\n\nimport { deepExtend, defined, isFunction } from '../../common';\n\nclass LineChart extends CategoricalChart {\n render() {\n\n super.render();\n\n this.updateStackRange();\n this.renderSegments();\n }\n\n pointType() {\n return LinePoint;\n }\n\n createPoint(data, fields) {\n const { series, seriesIx } = fields;\n const missingValues = this.seriesMissingValues(series);\n let value = data.valueFields.value;\n\n if (!defined(value) || value === null) {\n if (missingValues === ZERO) {\n value = 0;\n } else {\n return null;\n }\n }\n\n let pointOptions = this.pointOptions(series, seriesIx);\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n let color = data.fields.color || series.color;\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const point = new LinePoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n plotRange(point) {\n let plotValue = this.plotValue(point);\n\n if (this.options.isStacked) {\n const categoryIx = point.categoryIx;\n const categoryPoints = this.categoryPoints[categoryIx];\n\n for (let i = 0; i < categoryPoints.length; i++) {\n const other = categoryPoints[i];\n\n if (point === other) {\n break;\n }\n\n plotValue += this.plotValue(other);\n\n if (this.options.isStacked100) {\n plotValue = Math.min(plotValue, 1);\n }\n }\n\n }\n\n return [ plotValue, plotValue ];\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = currentSeries.style;\n let pointType;\n\n if (style === STEP) {\n pointType = StepLineSegment;\n } else if (style === SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n\n return new pointType(linePoints, currentSeries, seriesIx);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n result.push((points[idx] || {}).marker);\n }\n return result.concat(this._segments);\n }\n\n supportsPointInactiveOpacity() {\n return false;\n }\n}\n\ndeepExtend(LineChart.prototype, LineChartMixin, ClipAnimationMixin);\n\nexport default LineChart;\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\nimport LineSegment from '../line-chart/line-segment';\n\nimport { append, deepExtend, isFunction, last } from '../../common';\n\nclass AreaSegment extends LineSegment {\n constructor(linePoints, currentSeries, seriesIx, prevSegment, stackPoints) {\n super(linePoints, currentSeries, seriesIx);\n\n this.prevSegment = prevSegment;\n this.stackPoints = stackPoints;\n }\n\n createVisual() {\n const series = this.series;\n const defaults = series._defaults;\n const lineOptions = series.line || {};\n let color = series.color;\n\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n this.visual = new draw.Group({\n zIndex: series.zIndex\n });\n\n this.createFill({\n fill: {\n color: color,\n opacity: series.opacity\n },\n stroke: null\n });\n\n if (lineOptions.width > 0 && lineOptions.visible !== false) {\n this.createStroke({\n stroke: deepExtend({\n color: color,\n opacity: series.opacity,\n lineCap: \"butt\"\n }, lineOptions)\n });\n }\n }\n\n strokeSegments() {\n let segments = this._strokeSegments;\n\n if (!segments) {\n segments = this._strokeSegments = this.createStrokeSegments();\n }\n\n return segments;\n }\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.points());\n }\n\n stackSegments() {\n if (this.prevSegment) {\n return this.prevSegment.createStackSegments(this.stackPoints);\n }\n\n return this.createStackSegments(this.stackPoints);\n }\n\n createStackSegments(stackPoints) {\n return this.segmentsFromPoints(this.toGeometryPoints(stackPoints)).reverse();\n }\n\n segmentsFromPoints(points) {\n return points.map((point) => new geom.Segment(point));\n }\n\n createStroke(style) {\n const stroke = new draw.Path(style);\n stroke.segments.push.apply(stroke.segments, this.strokeSegments());\n\n this.visual.append(stroke);\n }\n\n hasStackSegment() {\n return this.prevSegment || (this.stackPoints && this.stackPoints.length);\n }\n\n createFill(style) {\n const strokeSegments = this.strokeSegments();\n const fillSegments = strokeSegments.slice(0);\n const hasStackSegments = this.hasStackSegment();\n\n if (hasStackSegments) {\n const stackSegments = this.stackSegments();\n\n append(fillSegments, stackSegments);\n }\n\n const fill = new draw.Path(style);\n fill.segments.push.apply(fill.segments, fillSegments);\n\n if (!hasStackSegments && strokeSegments.length > 1) {\n this.fillToAxes(fill);\n }\n\n this.visual.append(fill);\n }\n\n fillToAxes(fillPath) {\n const chart = this.parent;\n const invertAxes = chart.options.invertAxes;\n const valueAxis = chart.seriesValueAxis(this.series);\n const crossingValue = chart.categoryAxisCrossingValue(valueAxis);\n const endSlot = valueAxis.getSlot(crossingValue, crossingValue, true);\n const segments = this.strokeSegments();\n const firstPoint = segments[0].anchor();\n const lastPoint = last(segments).anchor();\n let end = invertAxes ? endSlot.x1 : endSlot.y1;\n\n if (invertAxes) {\n fillPath.lineTo(end, lastPoint.y)\n .lineTo(end, firstPoint.y);\n } else {\n fillPath.lineTo(lastPoint.x, end)\n .lineTo(firstPoint.x, end);\n }\n }\n}\n\nexport default AreaSegment;","import StepLineMixin from '../line-chart/step-line-mixin';\nimport AreaSegment from './area-segment';\n\nimport { deepExtend } from '../../common';\n\nclass StepAreaSegment extends AreaSegment {\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.calculateStepPoints(this.linePoints));\n }\n\n createStackSegments(stackPoints) {\n return this.segmentsFromPoints(this.calculateStepPoints(stackPoints)).reverse();\n }\n}\n\ndeepExtend(StepAreaSegment.prototype, StepLineMixin);\n\nexport default StepAreaSegment;","import { geometry as geom } from '@progress/kendo-drawing';\nimport { CurveProcessor } from '../../core';\n\nimport AreaSegment from './area-segment';\n\nclass SplineAreaSegment extends AreaSegment {\n\n createStrokeSegments() {\n const curveProcessor = new CurveProcessor(this.options.closed);\n const linePoints = this.points();\n\n return curveProcessor.process(linePoints);\n }\n\n createStackSegments() {\n const strokeSegments = this.strokeSegments();\n const stackSegments = [];\n for (let idx = strokeSegments.length - 1; idx >= 0; idx--) {\n const segment = strokeSegments[idx];\n stackSegments.push(new geom.Segment(\n segment.anchor(),\n segment.controlOut(),\n segment.controlIn()\n ));\n }\n\n return stackSegments;\n }\n}\n\nexport default SplineAreaSegment;","import LineChart from '../line-chart/line-chart';\nimport LinePoint from '../line-chart/line-point';\n\nimport AreaSegment from './area-segment';\nimport StepAreaSegment from './step-area-segment';\nimport SplineAreaSegment from './spline-area-segment';\n\nimport { STEP, SMOOTH, ZERO } from '../constants';\n\nclass AreaChart extends LineChart {\n createSegment(linePoints, currentSeries, seriesIx, prevSegment) {\n const isStacked = this.options.isStacked;\n const style = (currentSeries.line || {}).style;\n let previousSegment;\n\n let stackPoints;\n if (isStacked && seriesIx > 0 && prevSegment) {\n const missingValues = this.seriesMissingValues(currentSeries);\n if (missingValues !== \"gap\") {\n stackPoints = prevSegment.linePoints;\n previousSegment = prevSegment;\n } else {\n stackPoints = this._gapStackPoints(linePoints, seriesIx, style);\n }\n }\n\n let pointType;\n if (style === STEP) {\n pointType = StepAreaSegment;\n } else if (style === SMOOTH) {\n pointType = SplineAreaSegment;\n } else {\n pointType = AreaSegment;\n }\n\n return new pointType(linePoints, currentSeries, seriesIx, previousSegment, stackPoints);\n }\n\n reflow(targetBox) {\n super.reflow(targetBox);\n\n const stackPoints = this._stackPoints;\n if (stackPoints) {\n for (let idx = 0; idx < stackPoints.length; idx++) {\n const stackPoint = stackPoints[idx];\n const pointSlot = this.categoryAxis.getSlot(stackPoint.categoryIx);\n stackPoint.reflow(pointSlot);\n }\n }\n }\n\n _gapStackPoints(linePoints, seriesIx, style) {\n const seriesPoints = this.seriesPoints;\n let startIdx = linePoints[0].categoryIx;\n let length = linePoints.length;\n if (startIdx < 0) {\n startIdx = 0;\n length--;\n }\n\n const endIdx = startIdx + length;\n const pointOffset = this.seriesOptions[0]._outOfRangeMinPoint ? 1 : 0;\n const stackPoints = [];\n\n this._stackPoints = this._stackPoints || [];\n for (let categoryIx = startIdx; categoryIx < endIdx; categoryIx++) {\n const pointIx = categoryIx + pointOffset;\n let currentSeriesIx = seriesIx;\n let point;\n\n do {\n currentSeriesIx--;\n point = seriesPoints[currentSeriesIx][pointIx];\n } while (currentSeriesIx > 0 && !point);\n\n if (point) {\n if (style !== STEP && categoryIx > startIdx && !seriesPoints[currentSeriesIx][pointIx - 1]) {\n stackPoints.push(this._previousSegmentPoint(categoryIx, pointIx, pointIx - 1, currentSeriesIx));\n }\n\n stackPoints.push(point);\n\n if (style !== STEP && categoryIx + 1 < endIdx && !seriesPoints[currentSeriesIx][pointIx + 1]) {\n stackPoints.push(this._previousSegmentPoint(categoryIx, pointIx, pointIx + 1, currentSeriesIx));\n }\n } else {\n const gapStackPoint = this._createGapStackPoint(categoryIx);\n this._stackPoints.push(gapStackPoint);\n stackPoints.push(gapStackPoint);\n }\n }\n\n return stackPoints;\n }\n\n _previousSegmentPoint(categoryIx, pointIx, segmentIx, seriesIdx) {\n const seriesPoints = this.seriesPoints;\n let index = seriesIdx;\n let point;\n\n while (index > 0 && !point) {\n index--;\n point = seriesPoints[index][segmentIx];\n }\n\n if (!point) {\n point = this._createGapStackPoint(categoryIx);\n this._stackPoints.push(point);\n } else {\n point = seriesPoints[index][pointIx];\n }\n\n return point;\n }\n\n _createGapStackPoint(categoryIx) {\n const options = this.pointOptions({}, 0);\n const point = new LinePoint(0, options);\n point.categoryIx = categoryIx;\n point.series = {};\n\n return point;\n }\n\n seriesMissingValues(series) {\n return series.missingValues || ZERO;\n }\n\n supportsPointInactiveOpacity() {\n return false;\n }\n}\n\nexport default AreaChart;\n","import { MIN_VALUE, MAX_VALUE } from '../common/constants';\nimport { Class } from '../common';\n\nclass AxisGroupRangeTracker extends Class {\n constructor() {\n super();\n\n this.axisRanges = {};\n }\n\n update(chartAxisRanges) {\n const axisRanges = this.axisRanges;\n\n for (let axisName in chartAxisRanges) {\n const chartRange = chartAxisRanges[axisName];\n let range = axisRanges[axisName];\n axisRanges[axisName] = range = range || { min: MAX_VALUE, max: MIN_VALUE };\n\n range.min = Math.min(range.min, chartRange.min);\n range.max = Math.max(range.max, chartRange.max);\n }\n }\n\n reset(axisName) {\n this.axisRanges[axisName] = undefined;\n }\n\n query(axisName) {\n return this.axisRanges[axisName];\n }\n}\n\nexport default AxisGroupRangeTracker;","import { ChartElement, TextBox, Box } from '../../core';\nimport { FADEIN, INITIAL_ANIMATION_DURATION, INSIDE_END, INSIDE_BASE, OUTSIDE_END } from '../constants';\n\nimport { CENTER, TOP, BOTTOM, LEFT, RIGHT, X, Y, BLACK } from '../../common/constants';\nimport { getSpacing, setDefaultOptions } from '../../common';\n\nclass BarLabel extends ChartElement {\n constructor(content, options, pointData) {\n super(options);\n\n this.textBox = new TextBox(content, this.options, pointData);\n this.append(this.textBox);\n }\n\n createVisual() {\n this.textBox.options.noclip = this.options.noclip;\n }\n\n reflow(targetBox) {\n const options = this.options;\n const { vertical, aboveAxis } = options;\n const text = this.children[0];\n const textOptions = text.options;\n const box = text.box;\n const padding = text.options.padding;\n let labelBox = targetBox;\n\n textOptions.align = vertical ? CENTER : LEFT;\n textOptions.vAlign = vertical ? TOP : CENTER;\n\n if (options.position === INSIDE_END) {\n if (vertical) {\n textOptions.vAlign = TOP;\n\n if (!aboveAxis && box.height() < targetBox.height()) {\n textOptions.vAlign = BOTTOM;\n }\n } else {\n textOptions.align = aboveAxis ? RIGHT : LEFT;\n }\n } else if (options.position === CENTER) {\n textOptions.vAlign = CENTER;\n textOptions.align = CENTER;\n } else if (options.position === INSIDE_BASE) {\n if (vertical) {\n textOptions.vAlign = aboveAxis ? BOTTOM : TOP;\n } else {\n textOptions.align = aboveAxis ? LEFT : RIGHT;\n }\n } else if (options.position === OUTSIDE_END) {\n if (vertical) {\n if (aboveAxis) {\n labelBox = new Box(\n targetBox.x1, targetBox.y1 - box.height(),\n targetBox.x2, targetBox.y1\n );\n } else {\n labelBox = new Box(\n targetBox.x1, targetBox.y2,\n targetBox.x2, targetBox.y2 + box.height()\n );\n }\n } else {\n textOptions.align = CENTER;\n if (aboveAxis) {\n labelBox = new Box(\n targetBox.x2, targetBox.y1,\n targetBox.x2 + box.width(), targetBox.y2\n );\n } else {\n labelBox = new Box(\n targetBox.x1 - box.width(), targetBox.y1,\n targetBox.x1, targetBox.y2\n );\n }\n }\n }\n\n if (!options.rotation) {\n if (vertical) {\n padding.left = padding.right =\n (labelBox.width() - text.contentBox.width()) / 2;\n } else {\n padding.top = padding.bottom =\n (labelBox.height() - text.contentBox.height()) / 2;\n }\n }\n\n text.reflow(labelBox);\n }\n\n alignToClipBox(clipBox) {\n const vertical = this.options.vertical;\n const field = vertical ? Y : X;\n const start = field + \"1\";\n const end = field + \"2\";\n const text = this.children[0];\n const parentBox = this.parent.box;\n\n if (parentBox[start] < clipBox[start] || clipBox[end] < parentBox[end]) {\n const targetBox = text.paddingBox.clone();\n targetBox[start] = Math.max(parentBox[start], clipBox[start]);\n targetBox[end] = Math.min(parentBox[end], clipBox[end]);\n\n this.reflow(targetBox);\n }\n }\n}\n\nsetDefaultOptions(BarLabel, {\n position: OUTSIDE_END,\n margin: getSpacing(3),\n padding: getSpacing(4),\n color: BLACK,\n background: \"\",\n border: {\n width: 1,\n color: \"\"\n },\n aboveAxis: true,\n vertical: false,\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n },\n zIndex: 2\n});\n\nexport default BarLabel;","import addAccessibilityAttributesToVisual from \"../../core/utils/add-accessibility-attributes-to-visual\";\nimport { deepExtend, getAriaTemplate } from \"../../common\";\nimport guid from '../../core/utils/guid';\n\nconst AccessibilityAttributesMixin = {\n addAccessibilityAttributesToVisual: function() {\n this._id = this._id || guid();\n\n const accessibilityOptions = deepExtend({\n ariaLabel: this.getAriaLabelText()\n }, this.options.accessibility);\n\n addAccessibilityAttributesToVisual(this.visual, accessibilityOptions);\n },\n\n getAriaLabelText() {\n const labels = this.options.labels;\n const ariaTemplate = getAriaTemplate(labels);\n\n if (ariaTemplate) {\n return ariaTemplate(this.pointData());\n }\n\n return this.getLabelText(labels);\n },\n\n focusVisual() {\n this.visual.options.set(\"id\", this._id);\n this.toggleFocusHighlight(true);\n },\n\n clearFocusFromVisual() {\n this.visual.options.set(\"id\", \"\");\n this.toggleFocusHighlight(false);\n }\n};\n\nexport default AccessibilityAttributesMixin;\n","import { drawing as draw, Color } from '@progress/kendo-drawing';\n\nimport BarLabel from './bar-label';\n\nimport { CHART_POINT_ROLE_DESCRIPTION, CHART_POINT_CLASSNAME, CHART_POINT_ROLE, BORDER_BRIGHTNESS, TOOLTIP_OFFSET } from '../constants';\n\nimport hasGradientOverlay from '../utils/has-gradient-overlay';\n\nimport { ChartElement, Point } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport AccessibilityAttributesMixin from '../mixins/accessibility-attributes-mixin';\n\nimport { WHITE, LEFT, RIGHT, BOTTOM, TOP } from '../../common/constants';\nimport { alignPathToPixel, deepExtend, defined, getTemplate, valueOrDefault } from '../../common';\n\nconst BAR_ALIGN_MIN_WIDTH = 6;\n\nclass Bar extends ChartElement {\n constructor(value, options) {\n super();\n\n this.options = options;\n this.color = options.color || WHITE;\n this.aboveAxis = valueOrDefault(this.options.aboveAxis, true);\n this.value = value;\n }\n\n render() {\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n this.createLabel();\n this.createNote();\n\n if (this.errorBar) {\n this.append(this.errorBar);\n }\n }\n\n createLabel() {\n const options = this.options;\n const labels = options.labels;\n\n if (labels.visible) {\n this.label = this.createLabelElement(labels);\n this.append(this.label);\n }\n }\n\n createLabelElement(options) {\n return new BarLabel(this.getLabelText(options),\n deepExtend({\n vertical: this.options.vertical\n },\n options\n ), this.pointData());\n }\n\n getLabelText(options) {\n let labelTemplate = getTemplate(options);\n\n if (labelTemplate) {\n return labelTemplate(this.pointData());\n }\n\n return this.formatValue(options.format);\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n reflow(targetBox) {\n this.render();\n\n const label = this.label;\n\n this.box = targetBox;\n\n if (label) {\n label.options.aboveAxis = this.aboveAxis;\n label.reflow(targetBox);\n }\n\n if (this.note) {\n this.note.reflow(targetBox);\n }\n\n if (this.errorBars) {\n for (let i = 0; i < this.errorBars.length; i++) {\n this.errorBars[i].reflow(targetBox);\n }\n }\n }\n\n createVisual() {\n const { box, options } = this;\n const customVisual = options.visual;\n\n if (this.visible !== false) {\n super.createVisual();\n\n this.addAccessibilityAttributesToVisual();\n\n if (customVisual) {\n const visual = this.rectVisual = customVisual({\n category: this.category,\n dataItem: this.dataItem,\n value: this.value,\n sender: this.getSender(),\n series: this.series,\n percentage: this.percentage,\n stackValue: this.stackValue,\n runningTotal: this.runningTotal,\n total: this.total,\n rect: box.toRect(),\n createVisual: () => {\n const group = new draw.Group();\n this.createRect(group);\n return group;\n },\n options: options\n });\n\n if (visual) {\n this.visual.append(visual);\n }\n } else if (box.width() > 0 && box.height() > 0) {\n this.createRect(this.visual);\n }\n }\n }\n\n createRect(visual) {\n const options = this.options;\n const border = options.border;\n const strokeOpacity = defined(border.opacity) ? border.opacity : options.opacity;\n const rect = this.box.toRect();\n\n rect.size.width = Math.round(rect.size.width);\n\n const path = this.rectVisual = draw.Path.fromRect(rect, {\n fill: {\n color: this.color,\n opacity: options.opacity\n },\n stroke: {\n color: this.getBorderColor(),\n width: border.width,\n opacity: strokeOpacity,\n dashType: border.dashType\n }\n });\n\n const width = this.box.width();\n const height = this.box.height();\n\n const size = options.vertical ? width : height;\n\n if (size > BAR_ALIGN_MIN_WIDTH) {\n alignPathToPixel(path);\n\n // Fixes lineJoin issue in firefox when the joined lines are parallel\n if (width < 1 || height < 1) {\n path.options.stroke.lineJoin = \"round\";\n }\n }\n\n visual.append(path);\n\n if (hasGradientOverlay(options)) {\n const overlay = this.createGradientOverlay(path, { baseColor: this.color }, deepExtend({\n end: !options.vertical ? [ 0, 1 ] : undefined\n }, options.overlay));\n\n visual.append(overlay);\n }\n }\n\n createHighlight(style) {\n const highlight = draw.Path.fromRect(this.box.toRect(), style);\n\n return alignPathToPixel(highlight);\n }\n\n highlightVisual() {\n return this.rectVisual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n rect: this.box.toRect(),\n visual: this.rectVisual\n };\n }\n\n createFocusHighlight(style) {\n const borderWidth = this.options.accessibility.highlight.border.width;\n const highlight = draw.Path.fromRect(this.box.pad(borderWidth / 2).toRect(), style);\n\n return alignPathToPixel(highlight);\n }\n\n getBorderColor() {\n const color = this.color;\n const border = this.options.border;\n const brightness = border._brightness || BORDER_BRIGHTNESS;\n let borderColor = border.color;\n\n if (!defined(borderColor)) {\n borderColor = new Color(color).brightness(brightness).toHex();\n }\n\n return borderColor;\n }\n\n tooltipAnchor() {\n const { options, box, aboveAxis } = this;\n const clipBox = this.owner.pane.clipBox() || box;\n let horizontalAlign = LEFT;\n let verticalAlign = TOP;\n let x, y;\n\n if (options.vertical) {\n x = Math.min(box.x2, clipBox.x2) + TOOLTIP_OFFSET;\n if (aboveAxis) {\n y = Math.max(box.y1, clipBox.y1);\n } else {\n y = Math.min(box.y2, clipBox.y2);\n verticalAlign = BOTTOM;\n }\n } else {\n const x1 = Math.max(box.x1, clipBox.x1);\n const x2 = Math.min(box.x2, clipBox.x2);\n\n if (options.isStacked) {\n verticalAlign = BOTTOM;\n if (aboveAxis) {\n horizontalAlign = RIGHT;\n x = x2;\n } else {\n x = x1;\n }\n y = Math.max(box.y1, clipBox.y1) - TOOLTIP_OFFSET;\n } else {\n if (aboveAxis) {\n x = x2 + TOOLTIP_OFFSET;\n } else {\n x = x1 - TOOLTIP_OFFSET;\n horizontalAlign = RIGHT;\n }\n y = Math.max(box.y1, clipBox.y1);\n }\n }\n\n return {\n point: new Point(x, y),\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n percentage: this.percentage,\n stackValue: this.stackValue,\n runningTotal: this.runningTotal,\n total: this.total,\n series: this.series\n };\n }\n\n getIndex() {\n return this.categoryIx;\n }\n}\n\ndeepExtend(Bar.prototype, PointEventsMixin);\ndeepExtend(Bar.prototype, NoteMixin);\ndeepExtend(Bar.prototype, AccessibilityAttributesMixin);\n\nBar.prototype.defaults = {\n border: {\n width: 1\n },\n vertical: true,\n overlay: {\n gradient: \"glass\"\n },\n labels: {\n visible: false,\n format: \"{0}\"\n },\n opacity: 1,\n notes: {\n label: {}\n },\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n};\n\nexport default Bar;","export function forEach(elements, callback) {\n elements.forEach(callback);\n}\n\nexport function forEachReverse(elements, callback) {\n const length = elements.length;\n\n for (let idx = length - 1; idx >= 0; idx--) {\n callback(elements[idx], idx - length - 1);\n }\n}","import { ChartElement } from '../../core';\n\nimport { X, Y } from '../../common/constants';\nimport { setDefaultOptions } from '../../common';\nimport { forEach, forEachReverse } from './utils';\n\nclass ClusterLayout extends ChartElement {\n constructor(options) {\n super(options);\n\n this.forEach = options.rtl ? forEachReverse : forEach;\n }\n\n reflow(box) {\n const { vertical, gap, spacing } = this.options;\n const children = this.children;\n const count = children.length;\n const axis = vertical ? Y : X;\n const slots = count + gap + (spacing * (count - 1));\n const slotSize = (vertical ? box.height() : box.width()) / slots;\n let position = box[axis + 1] + slotSize * (gap / 2);\n\n this.forEach(children, (child, idx) => {\n const childBox = (child.box || box).clone();\n\n childBox[axis + 1] = position;\n childBox[axis + 2] = position + slotSize;\n\n child.reflow(childBox);\n if (idx < count - 1) {\n position += (slotSize * spacing);\n }\n\n position += slotSize;\n });\n }\n}\n\nsetDefaultOptions(ClusterLayout, {\n vertical: false,\n gap: 0,\n spacing: 0\n});\n\nexport default ClusterLayout;","import { ChartElement, Box } from '../../core';\n\nimport { X, Y } from '../../common/constants';\nimport { setDefaultOptions } from '../../common';\n\nclass StackWrap extends ChartElement {\n reflow(targetBox) {\n const positionAxis = this.options.vertical ? X : Y;\n const children = this.children;\n const childrenCount = children.length;\n let box = this.box = new Box();\n\n for (let i = 0; i < childrenCount; i++) {\n const currentChild = children[i];\n\n if (currentChild.visible !== false) {\n const childBox = currentChild.box.clone();\n childBox.snapTo(targetBox, positionAxis);\n\n if (i === 0) {\n box = this.box = childBox.clone();\n }\n\n currentChild.reflow(childBox);\n box.wrap(childBox);\n }\n }\n }\n}\n\nsetDefaultOptions(StackWrap, {\n vertical: true\n});\n\nexport default StackWrap;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport Bar from './bar';\n\nimport CategoricalChart from '../categorical-chart';\nimport ClusterLayout from '../layout/cluster-layout';\nimport StackWrap from '../layout/stack-wrap';\nimport { BAR, OUTSIDE_END, INSIDE_END } from '../constants';\n\nimport anyHasZIndex from '../utils/any-has-z-index';\n\nimport { OBJECT, STRING, X, Y } from '../../common/constants';\nimport { defined, isFunction, setDefaultOptions } from '../../common';\n\nclass BarChart extends CategoricalChart {\n\n render() {\n super.render();\n this.updateStackRange();\n }\n\n pointType() {\n return Bar;\n }\n\n clusterType() {\n return ClusterLayout;\n }\n\n stackType() {\n return StackWrap;\n }\n\n stackLimits(axisName, stackName) {\n const limits = super.stackLimits(axisName, stackName);\n\n return limits;\n }\n\n createPoint(data, fields) {\n const { categoryIx, series, seriesIx } = fields;\n const { options, children } = this;\n const stackOrDefault = defined(series.stack) ? series.stack : options.defaultStack;\n const value = this.pointValue(data);\n let pointOptions = this.pointOptions(series, seriesIx);\n\n const labelOptions = pointOptions.labels;\n if (stackOrDefault) {\n if (labelOptions.position === OUTSIDE_END) {\n labelOptions.position = INSIDE_END;\n }\n }\n\n pointOptions.isStacked = stackOrDefault;\n\n let color = data.fields.color || series.color;\n if (value < 0 && pointOptions.negativeColor) {\n color = pointOptions.negativeColor;\n }\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const pointType = this.pointType();\n const point = new pointType(value, pointOptions);\n point.color = color;\n\n let cluster = children[categoryIx];\n if (!cluster) {\n const clusterType = this.clusterType();\n cluster = new clusterType({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n if (options.isStacked) {\n const stackWrap = this.getStackWrap(stackOrDefault, cluster);\n stackWrap.append(point);\n } else {\n cluster.append(point);\n }\n\n return point;\n }\n\n getStackWrap(stack, cluster) {\n const stackGroup = (typeof stack === OBJECT) ? (stack.group || true) : stack;\n const wraps = cluster.children;\n let stackWrap;\n\n if (typeof stackGroup === STRING || stackGroup === true) {\n for (let i = 0; i < wraps.length; i++) {\n if (wraps[i]._stackGroup === stackGroup) {\n stackWrap = wraps[i];\n break;\n }\n }\n }\n\n if (!stackWrap) {\n const stackType = this.stackType();\n stackWrap = new stackType({\n vertical: !this.options.invertAxes\n });\n stackWrap._stackGroup = stackGroup;\n cluster.append(stackWrap);\n }\n\n return stackWrap;\n }\n\n categorySlot(categoryAxis, categoryIx, valueAxis) {\n const options = this.options;\n const categorySlot = categoryAxis.getSlot(categoryIx);\n const startValue = valueAxis.startValue();\n\n if (options.isStacked) {\n const zeroSlot = valueAxis.getSlot(startValue, startValue, true);\n const stackAxis = options.invertAxes ? X : Y;\n categorySlot[stackAxis + 1] = categorySlot[stackAxis + 2] = zeroSlot[stackAxis + 1];\n }\n\n return categorySlot;\n }\n\n reflowCategories(categorySlots) {\n const children = this.children;\n const childrenLength = children.length;\n\n for (let i = 0; i < childrenLength; i++) {\n children[i].reflow(categorySlots[i]);\n }\n }\n\n createAnimation() {\n this._setAnimationOptions();\n super.createAnimation();\n\n if (anyHasZIndex(this.options.series)) {\n this._setChildrenAnimation();\n }\n }\n\n _setChildrenAnimation() {\n const points = this.points;\n\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n const pointVisual = point.visual;\n if (pointVisual && defined(pointVisual.options.zIndex)) {\n point.options.animation = this.options.animation;\n point.createAnimation();\n }\n }\n }\n\n _setAnimationOptions() {\n const options = this.options;\n const animation = options.animation || {};\n let origin;\n\n if (options.isStacked) {\n const valueAxis = this.seriesValueAxis(options.series[0]);\n origin = valueAxis.getSlot(valueAxis.startValue());\n } else {\n origin = this.categoryAxis.getSlot(0);\n }\n\n animation.origin = new geom.Point(origin.x1, origin.y1);\n animation.vertical = !options.invertAxes;\n }\n}\n\nsetDefaultOptions(BarChart, {\n animation: {\n type: BAR\n }\n});\n\nexport default BarChart;\n","import { drawing as draw, Color } from '@progress/kendo-drawing';\n\nimport { ChartElement, Point } from '../../core';\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport Bar from '../bar-chart/bar';\nimport AccessibilityAttributesMixin from '../mixins/accessibility-attributes-mixin';\n\nimport { CHART_POINT_ROLE_DESCRIPTION, CHART_POINT_CLASSNAME, CHART_POINT_ROLE, TOOLTIP_OFFSET } from '../constants';\nimport hasGradientOverlay from '../utils/has-gradient-overlay';\n\nimport { WHITE, LEFT, TOP } from '../../common/constants';\nimport { alignPathToPixel, deepExtend, defined, setDefaultOptions, valueOrDefault } from '../../common';\n\nclass Candlestick extends ChartElement {\n constructor(value, options) {\n super(options);\n this.value = value;\n }\n\n getLabelText(options) {\n return this.formatValue(options.format);\n }\n\n reflow(box) {\n const { options, value, owner: chart } = this;\n const valueAxis = chart.seriesValueAxis(options);\n const ocSlot = valueAxis.getSlot(value.open, value.close);\n const lhSlot = valueAxis.getSlot(value.low, value.high);\n\n ocSlot.x1 = lhSlot.x1 = box.x1;\n ocSlot.x2 = lhSlot.x2 = box.x2;\n\n this.realBody = ocSlot;\n\n const mid = lhSlot.center().x;\n const points = [];\n\n points.push([ [ mid, lhSlot.y1 ], [ mid, ocSlot.y1 ] ]);\n points.push([ [ mid, ocSlot.y2 ], [ mid, lhSlot.y2 ] ]);\n\n this.lines = points;\n\n this.box = lhSlot.clone().wrap(ocSlot);\n\n if (!this._rendered) {\n this._rendered = true;\n this.createNote();\n }\n\n this.reflowNote();\n }\n\n reflowNote() {\n if (this.note) {\n this.note.reflow(this.box);\n }\n }\n\n createVisual() {\n super.createVisual();\n\n this.addAccessibilityAttributesToVisual();\n\n this._mainVisual = this.mainVisual(this.options);\n this.visual.append(\n this._mainVisual\n );\n\n this.createOverlay();\n }\n\n mainVisual(options) {\n const group = new draw.Group();\n\n this.createBody(group, options);\n this.createLines(group, options);\n\n return group;\n }\n\n createBody(container, options) {\n const body = draw.Path.fromRect(this.realBody.toRect(), {\n fill: {\n color: this.color,\n opacity: options.opacity\n },\n stroke: null\n });\n\n if (options.border.width > 0) {\n body.options.set(\"stroke\", {\n color: this.getBorderColor(),\n width: options.border.width,\n dashType: options.border.dashType,\n opacity: valueOrDefault(options.border.opacity, options.opacity)\n });\n }\n\n alignPathToPixel(body);\n container.append(body);\n\n if (hasGradientOverlay(options)) {\n container.append(this.createGradientOverlay(body, { baseColor: this.color }, deepExtend({\n end: !options.vertical ? [ 0, 1 ] : undefined\n }, options.overlay)));\n }\n }\n\n createLines(container, options) {\n this.drawLines(container, options, this.lines, options.line);\n }\n\n drawLines(container, options, lines, lineOptions) {\n if (!lines) {\n return;\n }\n\n const lineStyle = {\n stroke: {\n color: lineOptions.color || this.color,\n opacity: valueOrDefault(lineOptions.opacity, options.opacity),\n width: lineOptions.width,\n dashType: lineOptions.dashType,\n lineCap: \"butt\"\n }\n };\n\n for (let i = 0; i < lines.length; i++) {\n const line = draw.Path.fromPoints(lines[i], lineStyle);\n alignPathToPixel(line);\n container.append(line);\n }\n }\n\n getBorderColor() {\n const border = this.options.border;\n let borderColor = border.color;\n\n if (!defined(borderColor)) {\n borderColor = new Color(this.color).brightness(border._brightness).toHex();\n }\n\n return borderColor;\n }\n\n createOverlay() {\n const overlay = draw.Path.fromRect(this.box.toRect(), {\n fill: {\n color: WHITE,\n opacity: 0\n },\n stroke: null\n });\n\n this.visual.append(overlay);\n }\n\n createHighlight() {\n const highlight = this.options.highlight;\n const normalColor = this.color;\n\n this.color = highlight.color || this.color;\n const overlay = this.mainVisual(\n deepExtend({}, this.options, {\n line: {\n color: this.getBorderColor()\n }\n }, highlight)\n );\n this.color = normalColor;\n\n return overlay;\n }\n\n highlightVisual() {\n return this._mainVisual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n rect: this.box.toRect(),\n visual: this._mainVisual\n };\n }\n\n tooltipAnchor() {\n const box = this.box;\n const clipBox = this.owner.pane.clipBox() || box;\n\n return {\n point: new Point(box.x2 + TOOLTIP_OFFSET, Math.max(box.y1, clipBox.y1) + TOOLTIP_OFFSET),\n align: {\n horizontal: LEFT,\n vertical: TOP\n }\n };\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n value: this.value,\n meanPoints: this.meanPoints,\n medianPoints: this.medianPoints,\n whiskerPoints: this.whiskerPoints,\n stackValue: this.stackValue,\n series: this.series\n };\n }\n\n getIndex() {\n return this.categoryIx;\n }\n}\n\nCandlestick.prototype.createFocusHighlight = Bar.prototype.createFocusHighlight;\n\nsetDefaultOptions(Candlestick, {\n vertical: true,\n border: {\n _brightness: 0.8\n },\n line: {\n width: 2\n },\n overlay: {\n gradient: \"glass\"\n },\n tooltip: {\n format: \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"
{4:d}
Open:{0:C}
High:{1:C}
Low:{2:C}
Close:{3:C}
\"\n },\n labels: {\n format: \"\"\n },\n highlight: {\n opacity: 1,\n border: {\n width: 1,\n opacity: 1\n },\n line: {\n width: 1,\n opacity: 1\n }\n },\n notes: {\n visible: true,\n label: {}\n },\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n});\n\ndeepExtend(Candlestick.prototype, PointEventsMixin);\ndeepExtend(Candlestick.prototype, NoteMixin);\ndeepExtend(Candlestick.prototype, AccessibilityAttributesMixin);\n\nexport default Candlestick;","import CategoricalChart from '../categorical-chart';\nimport ClusterLayout from '../layout/cluster-layout';\nimport Candlestick from './candlestick';\n\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\nimport { CANDLESTICK, OHLC } from '../constants';\nimport areNumbers from '../utils/are-numbers';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { deepExtend, isFunction } from '../../common';\n\nclass CandlestickChart extends CategoricalChart {\n\n reflowCategories(categorySlots) {\n const children = this.children;\n const childrenLength = children.length;\n\n for (let i = 0; i < childrenLength; i++) {\n children[i].reflow(categorySlots[i]);\n }\n }\n\n addValue(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const { children, options } = this;\n const value = data.valueFields;\n const valueParts = this.splitValue(value);\n const hasValue = areNumbers(valueParts);\n const dataItem = series.data[categoryIx];\n let categoryPoints = this.categoryPoints[categoryIx];\n let point;\n\n if (!categoryPoints) {\n this.categoryPoints[categoryIx] = categoryPoints = [];\n }\n\n if (hasValue) {\n point = this.createPoint(data, fields);\n }\n\n let cluster = children[categoryIx];\n if (!cluster) {\n cluster = new ClusterLayout({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n if (point) {\n this.updateRange(value, fields);\n\n cluster.append(point);\n\n point.categoryIx = categoryIx;\n point.category = category;\n point.series = series;\n point.seriesIx = seriesIx;\n point.owner = this;\n point.dataItem = dataItem;\n point.noteText = data.fields.noteText;\n }\n\n this.points.push(point);\n categoryPoints.push(point);\n }\n\n pointType() {\n return Candlestick;\n }\n\n createPoint(data, fields) {\n const { series } = fields;\n const pointType = this.pointType();\n const value = data.valueFields;\n let pointOptions = deepExtend({}, series);\n let color = data.fields.color || series.color;\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n if (series.type === CANDLESTICK || series.type === OHLC) {\n if (value.open > value.close) {\n color = data.fields.downColor || series.downColor || series.color;\n }\n }\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n pointOptions.vertical = !this.options.invertAxes;\n\n const point = new pointType(value, pointOptions);\n point.color = color;\n\n return point;\n }\n\n splitValue(value) {\n return [ value.low, value.open, value.close, value.high ];\n }\n\n updateRange(value, fields) {\n const axisName = fields.series.axis;\n const parts = this.splitValue(value);\n let axisRange = this.valueAxisRanges[axisName] || { min: MAX_VALUE, max: MIN_VALUE };\n\n this.valueAxisRanges[axisName] = {\n min: Math.min.apply(Math, parts.concat([ axisRange.min ])),\n max: Math.max.apply(Math, parts.concat([ axisRange.max ]))\n };\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n\n return this.chartService.format.auto(format,\n value.open, value.high,\n value.low, value.close, point.category\n );\n }\n\n animationPoints() {\n return this.points;\n }\n}\n\ndeepExtend(CandlestickChart.prototype, ClipAnimationMixin);\n\nexport default CandlestickChart;\n","import { Color } from '@progress/kendo-drawing';\n\nimport Candlestick from '../candlestick-chart/candlestick';\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport { ShapeElement } from '../../core';\n\nimport { LINE_MARKER_SIZE, BORDER_BRIGHTNESS } from '../constants';\n\nimport { CROSS, CIRCLE, WHITE } from '../../common/constants';\nimport { deepExtend, defined, setDefaultOptions } from '../../common';\n\nclass BoxPlot extends Candlestick {\n constructor(value, options) {\n super(value, options);\n\n this.createNote();\n }\n\n reflow(box) {\n const { options, value, owner: chart } = this;\n const valueAxis = chart.seriesValueAxis(options);\n let whiskerSlot, boxSlot;\n\n this.boxSlot = boxSlot = valueAxis.getSlot(value.q1, value.q3);\n this.realBody = boxSlot;\n this.reflowBoxSlot(box);\n\n this.whiskerSlot = whiskerSlot = valueAxis.getSlot(value.lower, value.upper);\n this.reflowWhiskerSlot(box);\n\n const medianSlot = valueAxis.getSlot(value.median);\n\n if (value.mean) {\n const meanSlot = valueAxis.getSlot(value.mean);\n this.meanPoints = this.calcMeanPoints(box, meanSlot);\n }\n\n this.whiskerPoints = this.calcWhiskerPoints(boxSlot, whiskerSlot);\n this.medianPoints = this.calcMedianPoints(box, medianSlot);\n\n this.box = whiskerSlot.clone().wrap(boxSlot);\n this.reflowNote();\n }\n\n reflowBoxSlot(box) {\n this.boxSlot.x1 = box.x1;\n this.boxSlot.x2 = box.x2;\n }\n\n reflowWhiskerSlot(box) {\n this.whiskerSlot.x1 = box.x1;\n this.whiskerSlot.x2 = box.x2;\n }\n\n calcMeanPoints(box, meanSlot) {\n return [\n [ [ box.x1, meanSlot.y1 ], [ box.x2, meanSlot.y1 ] ]\n ];\n }\n\n calcWhiskerPoints(boxSlot, whiskerSlot) {\n const mid = whiskerSlot.center().x;\n return [ [\n [ mid - 5, whiskerSlot.y1 ], [ mid + 5, whiskerSlot.y1 ],\n [ mid, whiskerSlot.y1 ], [ mid, boxSlot.y1 ]\n ], [\n [ mid - 5, whiskerSlot.y2 ], [ mid + 5, whiskerSlot.y2 ],\n [ mid, whiskerSlot.y2 ], [ mid, boxSlot.y2 ]\n ] ];\n }\n\n calcMedianPoints(box, medianSlot) {\n return [\n [ [ box.x1, medianSlot.y1 ], [ box.x2, medianSlot.y1 ] ]\n ];\n }\n\n renderOutliers(options) {\n const value = this.value;\n const outliers = value.outliers || [];\n const outerFence = Math.abs(value.q3 - value.q1) * 3;\n const elements = [];\n let markers = options.markers || {};\n\n for (let i = 0; i < outliers.length; i++) {\n const outlierValue = outliers[i];\n if (outlierValue < value.q3 + outerFence && outlierValue > value.q1 - outerFence) {\n markers = options.outliers;\n } else {\n markers = options.extremes;\n }\n let markersBorder = deepExtend({}, markers.border);\n\n if (!defined(markersBorder.color)) {\n if (defined(this.color)) {\n markersBorder.color = this.color;\n } else {\n markersBorder.color =\n new Color(markers.background).brightness(BORDER_BRIGHTNESS).toHex();\n }\n }\n\n const shape = new ShapeElement({\n type: markers.type,\n width: markers.size,\n height: markers.size,\n rotation: markers.rotation,\n background: markers.background,\n border: markersBorder,\n opacity: markers.opacity\n });\n\n shape.value = outlierValue;\n\n elements.push(shape);\n }\n\n this.reflowOutliers(elements);\n return elements;\n }\n\n reflowOutliers(outliers) {\n const valueAxis = this.owner.seriesValueAxis(this.options);\n const center = this.box.center();\n\n for (let i = 0; i < outliers.length; i++) {\n const outlierValue = outliers[i].value;\n const markerBox = valueAxis.getSlot(outlierValue);\n\n if (this.options.vertical) {\n markerBox.move(center.x);\n } else {\n markerBox.move(undefined, center.y);\n }\n\n this.box = this.box.wrap(markerBox);\n outliers[i].reflow(markerBox);\n }\n }\n\n mainVisual(options) {\n const group = super.mainVisual(options);\n const outliers = this.renderOutliers(options);\n\n for (let i = 0; i < outliers.length; i++) {\n const element = outliers[i].getElement();\n if (element) {\n group.append(element);\n }\n }\n\n return group;\n }\n\n createLines(container, options) {\n this.drawLines(container, options, this.whiskerPoints, options.whiskers);\n this.drawLines(container, options, this.medianPoints, options.median);\n this.drawLines(container, options, this.meanPoints, options.mean);\n }\n\n getBorderColor() {\n if ((this.options.border || {}).color) {\n return this.options.border.color;\n }\n\n if (this.color) {\n return this.color;\n }\n\n return super.getBorderColor();\n }\n}\n\nsetDefaultOptions(BoxPlot, {\n border: {\n _brightness: 0.8\n },\n line: {\n width: 2\n },\n median: {\n color: \"#f6f6f6\"\n },\n mean: {\n width: 2,\n dashType: \"dash\",\n color: \"#f6f6f6\"\n },\n overlay: {\n gradient: \"glass\"\n },\n tooltip: {\n format: \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"\" +\n \"
{6:d}
Lower:{0:C}
Q1:{1:C}
Median:{2:C}
Mean:{5:C}
Q3:{3:C}
Upper:{4:C}
\"\n },\n highlight: {\n opacity: 1,\n border: {\n width: 1,\n opacity: 1\n },\n line: {\n width: 1,\n opacity: 1\n }\n },\n notes: {\n visible: true,\n label: {}\n },\n outliers: {\n visible: true,\n size: LINE_MARKER_SIZE,\n type: CROSS,\n background: WHITE,\n border: {\n width: 2,\n opacity: 1\n },\n opacity: 0\n },\n extremes: {\n visible: true,\n size: LINE_MARKER_SIZE,\n type: CIRCLE,\n background: WHITE,\n border: {\n width: 2,\n opacity: 1\n },\n opacity: 0\n }\n});\n\ndeepExtend(BoxPlot.prototype, PointEventsMixin);\n\nexport default BoxPlot;","import BoxPlot from './box-plot';\n\nclass VerticalBoxPlot extends BoxPlot {\n reflowBoxSlot(box) {\n this.boxSlot.y1 = box.y1;\n this.boxSlot.y2 = box.y2;\n }\n\n reflowWhiskerSlot(box) {\n this.whiskerSlot.y1 = box.y1;\n this.whiskerSlot.y2 = box.y2;\n }\n\n calcMeanPoints(box, meanSlot) {\n return [\n [ [ meanSlot.x1, box.y1 ], [ meanSlot.x1, box.y2 ] ]\n ];\n }\n\n calcWhiskerPoints(boxSlot, whiskerSlot) {\n const mid = whiskerSlot.center().y;\n return [ [\n [ whiskerSlot.x1, mid - 5 ], [ whiskerSlot.x1, mid + 5 ],\n [ whiskerSlot.x1, mid ], [ boxSlot.x1, mid ]\n ], [\n [ whiskerSlot.x2, mid - 5 ], [ whiskerSlot.x2, mid + 5 ],\n [ whiskerSlot.x2, mid ], [ boxSlot.x2, mid ]\n ] ];\n }\n\n calcMedianPoints(box, medianSlot) {\n return [\n [ [ medianSlot.x1, box.y1 ], [ medianSlot.x1, box.y2 ] ]\n ];\n }\n}\n\nexport default VerticalBoxPlot;","import CandlestickChart from '../candlestick-chart/candlestick-chart';\nimport VerticalBoxPlot from './vertical-box-plot';\nimport BoxPlot from './box-plot';\nimport ClusterLayout from '../layout/cluster-layout';\n\nimport areNumbers from '../utils/are-numbers';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { defined } from '../../common';\n\nclass BoxPlotChart extends CandlestickChart {\n addValue(data, fields) {\n const { categoryIx, category, series, seriesIx } = fields;\n const { children, options } = this;\n const value = data.valueFields;\n const valueParts = this.splitValue(value);\n const hasValue = areNumbers(valueParts);\n const dataItem = series.data[categoryIx];\n let categoryPoints = this.categoryPoints[categoryIx];\n let point;\n\n if (!categoryPoints) {\n this.categoryPoints[categoryIx] = categoryPoints = [];\n }\n\n if (hasValue) {\n point = this.createPoint(data, fields);\n }\n\n let cluster = children[categoryIx];\n if (!cluster) {\n cluster = new ClusterLayout({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n if (point) {\n this.updateRange(value, fields);\n\n cluster.append(point);\n\n point.categoryIx = categoryIx;\n point.category = category;\n point.series = series;\n point.seriesIx = seriesIx;\n point.owner = this;\n point.dataItem = dataItem;\n }\n\n this.points.push(point);\n categoryPoints.push(point);\n }\n\n pointType() {\n if (this.options.invertAxes) {\n return VerticalBoxPlot;\n }\n\n return BoxPlot;\n }\n\n splitValue(value) {\n return [\n value.lower, value.q1, value.median,\n value.q3, value.upper\n ];\n }\n\n updateRange(value, fields) {\n const axisName = fields.series.axis;\n let parts = this.splitValue(value).concat(this.filterOutliers(value.outliers));\n\n if (defined(value.mean)) {\n parts = parts.concat(value.mean);\n }\n\n let axisRange = this.valueAxisRanges[axisName] || { min: MAX_VALUE, max: MIN_VALUE };\n\n this.valueAxisRanges[axisName] = {\n min: Math.min.apply(Math, parts.concat([ axisRange.min ])),\n max: Math.max.apply(Math, parts.concat([ axisRange.max ]))\n };\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n\n return this.chartService.format.auto(format,\n value.lower, value.q1, value.median,\n value.q3, value.upper, value.mean, point.category\n );\n }\n\n filterOutliers(items) {\n const length = (items || []).length;\n const result = [];\n\n for (let i = 0; i < length; i++) {\n const item = items[i];\n if (defined(item) && item !== null) {\n result.push(item);\n }\n }\n\n return result;\n }\n\n supportsPointInactiveOpacity() {\n return false;\n }\n}\n\nexport default BoxPlotChart;\n","import ErrorBarBase from './error-bar-base';\n\nclass ScatterErrorBar extends ErrorBarBase {\n getAxis() {\n const axes = this.chart.seriesAxes(this.series);\n const axis = this.isVertical ? axes.y : axes.x;\n\n return axis;\n }\n}\n\nexport default ScatterErrorBar;","import { ChartElement, Box } from '../../core';\n\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\nimport ErrorRangeCalculator from '../error-bars/error-range-calculator';\nimport ScatterErrorBar from '../error-bars/scatter-error-bar';\nimport LinePoint from '../line-chart/line-point';\n\nimport { hasValue, evalOptions } from '../utils';\n\nimport { deepExtend, isNumber, isString, defined, isFunction, setDefaultOptions } from '../../common';\nimport { X, Y, MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { parseDate } from '../../date-utils';\n\nclass ScatterChart extends ChartElement {\n constructor(plotArea, options) {\n\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this._initFields();\n\n this.render();\n }\n\n _initFields() {\n // X and Y axis ranges grouped by name, e.g.:\n // primary: { min: 0, max: 1 }\n this.xAxisRanges = {};\n this.yAxisRanges = {};\n\n this.points = [];\n this.seriesPoints = [];\n this.seriesOptions = [];\n this._evalSeries = [];\n }\n\n render() {\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n addErrorBar(point, field, fields) {\n const value = point.value[field];\n const valueErrorField = field + \"Value\";\n const lowField = field + \"ErrorLow\";\n const highField = field + \"ErrorHigh\";\n const { seriesIx, series } = fields;\n const errorBars = point.options.errorBars;\n const lowValue = fields[lowField];\n const highValue = fields[highField];\n\n if (isNumber(value)) {\n let errorRange;\n if (isNumber(lowValue) && isNumber(highValue)) {\n errorRange = { low: lowValue, high: highValue };\n }\n\n if (errorBars && defined(errorBars[valueErrorField])) {\n this.seriesErrorRanges = this.seriesErrorRanges || { x: [], y: [] };\n this.seriesErrorRanges[field][seriesIx] = this.seriesErrorRanges[field][seriesIx] ||\n new ErrorRangeCalculator(errorBars[valueErrorField], series, field);\n\n errorRange = this.seriesErrorRanges[field][seriesIx].getErrorRange(value, errorBars[valueErrorField]);\n }\n\n if (errorRange) {\n this.addPointErrorBar(errorRange, point, field);\n }\n }\n }\n\n addPointErrorBar(errorRange, point, field) {\n const { low, high } = errorRange;\n const { series, options: { errorBars: options } } = point;\n const isVertical = field === Y;\n const item = {};\n\n point[field + \"Low\"] = low;\n point[field + \"High\"] = high;\n\n point.errorBars = point.errorBars || [];\n const errorBar = new ScatterErrorBar(low, high, isVertical, this, series, options);\n point.errorBars.push(errorBar);\n point.append(errorBar);\n\n item[field] = low;\n this.updateRange(item, series);\n item[field] = high;\n this.updateRange(item, series);\n }\n\n addValue(value, fields) {\n const { x, y } = value;\n const seriesIx = fields.seriesIx;\n const series = this.options.series[seriesIx];\n const missingValues = this.seriesMissingValues(series);\n const seriesPoints = this.seriesPoints[seriesIx];\n\n let pointValue = value;\n if (!(hasValue(x) && hasValue(y))) {\n pointValue = this.createMissingValue(pointValue, missingValues);\n }\n\n let point;\n if (pointValue) {\n point = this.createPoint(pointValue, fields);\n if (point) {\n Object.assign(point, fields);\n this.addErrorBar(point, X, fields);\n this.addErrorBar(point, Y, fields);\n }\n this.updateRange(pointValue, fields.series);\n }\n\n this.points.push(point);\n seriesPoints.push(point);\n }\n\n seriesMissingValues(series) {\n return series.missingValues;\n }\n\n createMissingValue() {}\n\n updateRange(value, series) {\n const intlService = this.chartService.intl;\n const { xAxis: xAxisName, yAxis: yAxisName } = series;\n let { x, y } = value;\n let xAxisRange = this.xAxisRanges[xAxisName];\n let yAxisRange = this.yAxisRanges[yAxisName];\n\n if (hasValue(x)) {\n xAxisRange = this.xAxisRanges[xAxisName] =\n xAxisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n if (isString(x)) {\n x = parseDate(intlService, x);\n }\n\n xAxisRange.min = Math.min(xAxisRange.min, x);\n xAxisRange.max = Math.max(xAxisRange.max, x);\n }\n\n if (hasValue(y)) {\n yAxisRange = this.yAxisRanges[yAxisName] =\n yAxisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n if (isString(y)) {\n y = parseDate(intlService, y);\n }\n\n yAxisRange.min = Math.min(yAxisRange.min, y);\n yAxisRange.max = Math.max(yAxisRange.max, y);\n }\n }\n\n evalPointOptions(options, value, fields) {\n const { series, seriesIx } = fields;\n const state = {\n defaults: series._defaults,\n excluded: [\n \"data\", \"tooltip\", \"content\", \"template\", \"visual\", \"toggle\",\n \"_outOfRangeMinPoint\", \"_outOfRangeMaxPoint\",\n \"drilldownSeriesFactory\", \"ariaTemplate\", \"ariaContent\"\n ]\n };\n\n let doEval = this._evalSeries[seriesIx];\n if (!defined(doEval)) {\n this._evalSeries[seriesIx] = doEval = evalOptions(options, {}, state, true);\n }\n\n let pointOptions = options;\n if (doEval) {\n pointOptions = deepExtend({}, options);\n evalOptions(pointOptions, {\n value: value,\n series: series,\n dataItem: fields.dataItem\n }, state);\n }\n\n return pointOptions;\n }\n\n pointType() {\n return LinePoint;\n }\n\n pointOptions(series, seriesIx) {\n let options = this.seriesOptions[seriesIx];\n if (!options) {\n const defaults = this.pointType().prototype.defaults;\n this.seriesOptions[seriesIx] = options = deepExtend({}, defaults, {\n markers: {\n opacity: series.opacity\n },\n tooltip: {\n format: this.options.tooltip.format\n },\n labels: {\n format: this.options.labels.format\n }\n }, series);\n }\n\n return options;\n }\n\n createPoint(value, fields) {\n const series = fields.series;\n let pointOptions = this.pointOptions(series, fields.seriesIx);\n let color = fields.color || series.color;\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const point = new LinePoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n seriesAxes(series) {\n const { xAxis: xAxisName, yAxis: yAxisName } = series;\n const plotArea = this.plotArea;\n const xAxis = xAxisName ? plotArea.namedXAxes[xAxisName] : plotArea.axisX;\n const yAxis = yAxisName ? plotArea.namedYAxes[yAxisName] : plotArea.axisY;\n\n if (!xAxis) {\n throw new Error(\"Unable to locate X axis with name \" + xAxisName);\n }\n\n if (!yAxis) {\n throw new Error(\"Unable to locate Y axis with name \" + yAxisName);\n }\n\n return {\n x: xAxis,\n y: yAxis\n };\n }\n\n reflow(targetBox) {\n const chartPoints = this.points;\n const limit = !this.options.clip;\n let pointIx = 0;\n\n\n this.traverseDataPoints((value, fields) => {\n const point = chartPoints[pointIx++];\n const seriesAxes = this.seriesAxes(fields.series);\n const slotX = seriesAxes.x.getSlot(value.x, value.x, limit);\n const slotY = seriesAxes.y.getSlot(value.y, value.y, limit);\n\n if (point) {\n if (slotX && slotY) {\n const pointSlot = this.pointSlot(slotX, slotY);\n point.reflow(pointSlot);\n } else {\n point.visible = false;\n }\n }\n });\n\n this.box = targetBox;\n }\n\n pointSlot(slotX, slotY) {\n return new Box(slotX.x1, slotY.y1, slotX.x2, slotY.y2);\n }\n\n traverseDataPoints(callback) {\n const { options: { series }, seriesPoints } = this;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const currentSeriesPoints = seriesPoints[seriesIx];\n if (!currentSeriesPoints) {\n seriesPoints[seriesIx] = [];\n }\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const { valueFields: value, fields } = this.plotArea.bindPoint(currentSeries, pointIx);\n\n callback(value, deepExtend({\n pointIx: pointIx,\n series: currentSeries,\n seriesIx: seriesIx,\n dataItem: currentSeries.data[pointIx],\n owner: this\n }, fields));\n }\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n return this.chartService.format.auto(format, value.x, value.y);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n result.push((points[idx] || {}).marker);\n }\n return result;\n }\n}\nsetDefaultOptions(ScatterChart, {\n series: [],\n tooltip: {\n format: \"{0}, {1}\"\n },\n labels: {\n format: \"{0}, {1}\"\n },\n clip: true\n});\ndeepExtend(ScatterChart.prototype, ClipAnimationMixin);\n\nexport default ScatterChart;\n","import { drawing as draw, geometry as geom, Color } from '@progress/kendo-drawing';\n\nimport LinePoint from '../line-chart/line-point';\nimport { BORDER_BRIGHTNESS } from '../constants';\n\nimport { CENTER } from '../../common/constants';\nimport { deepExtend } from '../../common';\n\nclass Bubble extends LinePoint {\n constructor(value, options) {\n super(value, options);\n\n this.category = value.category;\n }\n\n createHighlight() {\n const highlight = this.options.highlight;\n const border = highlight.border;\n const markers = this.options.markers;\n const center = this.box.center();\n const radius = (markers.size + markers.border.width + border.width) / 2;\n const highlightGroup = new draw.Group();\n const shadow = new draw.Circle(new geom.Circle([ center.x, center.y + radius / 5 + border.width / 2 ], radius + border.width / 2), {\n stroke: {\n color: 'none'\n },\n fill: this.createGradient({\n gradient: 'bubbleShadow',\n color: markers.background,\n stops: [ {\n offset: 0,\n color: markers.background,\n opacity: 0.3\n }, {\n offset: 1,\n color: markers.background,\n opacity: 0\n } ]\n })\n });\n const overlay = new draw.Circle(new geom.Circle([ center.x, center.y ], radius), {\n stroke: {\n color: border.color ||\n new Color(markers.background).brightness(BORDER_BRIGHTNESS).toHex(),\n width: border.width,\n opacity: border.opacity\n },\n fill: {\n color: markers.background,\n opacity: highlight.opacity\n }\n });\n\n highlightGroup.append(shadow, overlay);\n\n return highlightGroup;\n }\n\n createFocusHighlight(style) {\n const highlightOptions = this.options.accessibility.highlight;\n const markers = this.options.markers;\n const center = this.box.center();\n const radius = (markers.size + markers.border.width) / 2 + highlightOptions.border.width / 2;\n const highlight = new draw.Circle(new geom.Circle([ center.x, center.y ], radius), style);\n\n return highlight;\n }\n}\n\nBubble.prototype.defaults = deepExtend({}, Bubble.prototype.defaults, {\n labels: {\n position: CENTER\n },\n highlight: {\n opacity: 1,\n border: {\n color: \"#fff\",\n width: 2,\n opacity: 1\n }\n }\n});\n\nBubble.prototype.defaults.highlight.zIndex = undefined;\n\nexport default Bubble;","import ScatterChart from '../scatter-charts/scatter-chart';\nimport Bubble from './bubble';\n\nimport { INITIAL_ANIMATION_DURATION, BUBBLE } from '../constants';\n\nimport { MIN_VALUE, CIRCLE } from '../../common/constants';\nimport { deepExtend, isFunction, setDefaultOptions, valueOrDefault } from '../../common';\n\nclass BubbleChart extends ScatterChart {\n _initFields() {\n this._maxSize = MIN_VALUE;\n super._initFields();\n }\n\n addValue(value, fields) {\n if (value.size !== null && (value.size > 0 || (value.size < 0 && fields.series.negativeValues.visible))) {\n this._maxSize = Math.max(this._maxSize, Math.abs(value.size));\n super.addValue(value, fields);\n } else {\n this.points.push(null);\n this.seriesPoints[fields.seriesIx].push(null);\n }\n }\n\n reflow(box) {\n this.updateBubblesSize(box);\n super.reflow(box);\n }\n\n pointType() {\n return Bubble;\n }\n\n createPoint(value, fields) {\n const series = fields.series;\n const pointsCount = series.data.length;\n const delay = fields.pointIx * (INITIAL_ANIMATION_DURATION / pointsCount);\n const animationOptions = {\n delay: delay,\n duration: INITIAL_ANIMATION_DURATION - delay,\n type: BUBBLE\n };\n\n let color = fields.color || series.color;\n if (value.size < 0 && series.negativeValues.visible) {\n color = valueOrDefault(\n series.negativeValues.color, color\n );\n }\n\n let pointOptions = deepExtend({\n labels: {\n animation: {\n delay: delay,\n duration: INITIAL_ANIMATION_DURATION - delay\n }\n }\n }, this.pointOptions(series, fields.seriesIx), {\n markers: {\n type: CIRCLE,\n border: series.border,\n opacity: series.opacity,\n animation: animationOptions\n }\n });\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n pointOptions.markers.background = color;\n\n const point = new Bubble(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n updateBubblesSize(box) {\n const { options: { series } } = this;\n const boxSize = Math.min(box.width(), box.height());\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const seriesPoints = this.seriesPoints[seriesIx];\n const minSize = currentSeries.minSize || Math.max(boxSize * 0.02, 10);\n const maxSize = currentSeries.maxSize || boxSize * 0.2;\n const minR = minSize / 2;\n const maxR = maxSize / 2;\n const minArea = Math.PI * minR * minR;\n const maxArea = Math.PI * maxR * maxR;\n const areaRange = maxArea - minArea;\n const areaRatio = areaRange / this._maxSize;\n\n for (let pointIx = 0; pointIx < seriesPoints.length; pointIx++) {\n const point = seriesPoints[pointIx];\n if (point) {\n const area = Math.abs(point.value.size) * areaRatio;\n const radius = Math.sqrt((minArea + area) / Math.PI);\n const baseZIndex = valueOrDefault(point.options.zIndex, 0);\n const zIndex = baseZIndex + (1 - radius / maxR);\n\n deepExtend(point.options, {\n zIndex: zIndex,\n markers: {\n size: radius * 2,\n zIndex: zIndex\n },\n labels: {\n zIndex: zIndex + 1\n }\n });\n }\n }\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n return this.chartService.format.auto(format, value.x, value.y, value.size, point.category);\n }\n\n createAnimation() {}\n createVisual() {}\n}\n\nsetDefaultOptions(BubbleChart, {\n tooltip: {\n format: \"{3}\"\n },\n labels: {\n format: \"{3}\"\n }\n});\n\nexport default BubbleChart;","import { ShapeElement } from '../../core';\nimport { deepExtend } from '../../common';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nclass Target extends ShapeElement { }\n\ndeepExtend(Target.prototype, PointEventsMixin);\n\nexport default Target;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport Target from './target';\n\nimport { Box, ChartElement } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport Bar from '../bar-chart/bar';\n\nimport { WHITE, TOP, RIGHT } from '../../common/constants';\nimport { alignPathToPixel, deepExtend, defined, getTemplate, setDefaultOptions, valueOrDefault } from '../../common';\n\nimport BarLabel from '../bar-chart/bar-label';\nimport { CHART_POINT_ROLE_DESCRIPTION, CHART_POINT_CLASSNAME, CHART_POINT_ROLE } from '../constants';\nimport AccessibilityAttributesMixin from '../mixins/accessibility-attributes-mixin';\n\nclass Bullet extends ChartElement {\n constructor(value, options) {\n super(options);\n\n this.aboveAxis = this.options.aboveAxis;\n this.color = options.color || WHITE;\n this.value = value;\n }\n\n render() {\n const options = this.options;\n\n if (!this._rendered) {\n this._rendered = true;\n\n if (defined(this.value.target)) {\n this.target = new Target({\n type: options.target.shape,\n background: options.target.color || this.color,\n opacity: options.opacity,\n zIndex: options.zIndex,\n border: options.target.border,\n vAlign: TOP,\n align: RIGHT\n });\n\n this.target.value = this.value;\n this.target.dataItem = this.dataItem;\n this.target.series = this.series;\n\n this.append(this.target);\n }\n\n this.createLabel();\n this.createNote();\n }\n }\n\n createLabel() {\n const options = this.options;\n const labels = options.labels;\n\n if (labels.visible) {\n this.label = this.createLabelElement(labels);\n this.append(this.label);\n }\n }\n\n createLabelElement(options) {\n return new BarLabel(this.getLabelText(options),\n options,\n this.pointData());\n }\n\n getLabelText(options) {\n let labelTemplate = getTemplate(options);\n\n if (labelTemplate) {\n return labelTemplate(this.pointData());\n }\n\n return this.formatValue(options.format);\n }\n\n reflow(box) {\n this.render();\n\n const { options, target, owner: chart } = this;\n const invertAxes = options.invertAxes;\n const valueAxis = chart.seriesValueAxis(this.options);\n const categorySlot = chart.categorySlot(chart.categoryAxis, options.categoryIx, valueAxis);\n const targetValueSlot = valueAxis.getSlot(this.value.target);\n const targetSlotX = invertAxes ? targetValueSlot : categorySlot;\n const targetSlotY = invertAxes ? categorySlot : targetValueSlot;\n\n if (target) {\n const targetSlot = new Box(\n targetSlotX.x1, targetSlotY.y1,\n targetSlotX.x2, targetSlotY.y2\n );\n target.options.height = invertAxes ? targetSlot.height() : options.target.line.width;\n target.options.width = invertAxes ? options.target.line.width : targetSlot.width();\n target.reflow(targetSlot);\n }\n\n const label = this.label;\n if (label) {\n label.options.aboveAxis = this.aboveAxis;\n label.reflow(box);\n }\n\n if (this.note) {\n this.note.reflow(box);\n }\n\n this.box = box;\n }\n\n createVisual() {\n super.createVisual();\n\n this.addAccessibilityAttributesToVisual();\n\n const options = this.options;\n const body = draw.Path.fromRect(this.box.toRect(), {\n fill: {\n color: this.color,\n opacity: options.opacity\n },\n stroke: null\n });\n\n if (options.border.width > 0) {\n body.options.set(\"stroke\", {\n color: options.border.color || this.color,\n width: options.border.width,\n dashType: options.border.dashType,\n opacity: valueOrDefault(options.border.opacity, options.opacity)\n });\n }\n\n this.bodyVisual = body;\n\n alignPathToPixel(body);\n this.visual.append(body);\n }\n\n createAnimation() {\n if (this.bodyVisual) {\n this.animation = draw.Animation.create(\n this.bodyVisual, this.options.animation\n );\n }\n }\n\n createHighlight(style) {\n return draw.Path.fromRect(this.box.toRect(), style);\n }\n\n highlightVisual() {\n return this.bodyVisual;\n }\n\n highlightVisualArgs() {\n return {\n rect: this.box.toRect(),\n visual: this.bodyVisual,\n options: this.options\n };\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n series: this.series\n };\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n getIndex() {\n return this.categoryIx;\n }\n}\n\nBullet.prototype.tooltipAnchor = Bar.prototype.tooltipAnchor;\nBullet.prototype.createFocusHighlight = Bar.prototype.createFocusHighlight;\n\nsetDefaultOptions(Bullet, {\n border: {\n width: 1\n },\n vertical: false,\n opacity: 1,\n target: {\n shape: \"\",\n border: {\n width: 0,\n color: \"green\"\n },\n line: {\n width: 2\n }\n },\n labels: {\n visible: false\n },\n tooltip: {\n format: \"Current: {0}
Target: {1}\"\n },\n notes: {\n label: {}\n },\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n});\n\ndeepExtend(Bullet.prototype, PointEventsMixin);\ndeepExtend(Bullet.prototype, NoteMixin);\ndeepExtend(Bullet.prototype, AccessibilityAttributesMixin);\n\nexport default Bullet;","\nimport CategoricalChart from '../categorical-chart';\nimport BarChart from '../bar-chart/bar-chart';\nimport Bullet from './bullet';\nimport ClusterLayout from '../layout/cluster-layout';\nimport { BAR } from '../constants';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { deepExtend, defined, isArray, isFunction, isObject, setDefaultOptions } from '../../common';\n\nclass BulletChart extends CategoricalChart {\n constructor(plotArea, options) {\n\n wrapData(options);\n\n super(plotArea, options);\n }\n\n reflowCategories(categorySlots) {\n const children = this.children;\n const childrenLength = children.length;\n\n for (let i = 0; i < childrenLength; i++) {\n children[i].reflow(categorySlots[i]);\n }\n }\n\n plotRange(point) {\n const series = point.series;\n const valueAxis = this.seriesValueAxis(series);\n const axisCrossingValue = this.categoryAxisCrossingValue(valueAxis);\n\n return [ axisCrossingValue, point.value.current || axisCrossingValue ];\n }\n\n createPoint(data, fields) {\n const { categoryIx, series } = fields;\n const { options, children } = this;\n const value = data.valueFields;\n\n let bulletOptions = deepExtend({\n vertical: !options.invertAxes,\n overlay: series.overlay,\n categoryIx: categoryIx,\n invertAxes: options.invertAxes\n }, series);\n\n let color = data.fields.color || series.color;\n bulletOptions = this.evalPointOptions(bulletOptions, value, fields);\n if (isFunction(series.color)) {\n color = bulletOptions.color;\n }\n\n const bullet = new Bullet(value, bulletOptions);\n bullet.color = color;\n\n let cluster = children[categoryIx];\n if (!cluster) {\n cluster = new ClusterLayout({\n vertical: options.invertAxes,\n gap: options.gap,\n spacing: options.spacing,\n rtl: !options.invertAxes && (this.chartService || {}).rtl\n });\n this.append(cluster);\n }\n\n cluster.append(bullet);\n\n return bullet;\n }\n\n updateRange(value, fields) {\n const { current, target } = value;\n const axisName = fields.series.axis;\n let axisRange = this.valueAxisRanges[axisName];\n\n if (defined(current) && !isNaN(current) && defined(target && !isNaN(target))) {\n axisRange = this.valueAxisRanges[axisName] =\n axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange.min = Math.min(axisRange.min, current, target);\n axisRange.max = Math.max(axisRange.max, current, target);\n }\n }\n\n formatPointValue(point, format) {\n return this.chartService.format.auto(format, point.value.current, point.value.target);\n }\n\n pointValue(data) {\n return data.valueFields.current;\n }\n\n aboveAxis(point) {\n const value = point.value.current;\n\n return value > 0;\n }\n\n createAnimation() {\n const points = this.points;\n\n this._setAnimationOptions();\n\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n point.options.animation = this.options.animation;\n point.createAnimation();\n }\n }\n}\n\nBulletChart.prototype._setAnimationOptions = BarChart.prototype._setAnimationOptions;\n\nsetDefaultOptions(BulletChart, {\n animation: {\n type: BAR\n }\n});\n\nfunction wrapData(options) {\n const series = options.series;\n\n for (let i = 0; i < series.length; i++) {\n const seriesItem = series[i];\n const data = seriesItem.data;\n if (data && !isArray(data[0]) && !isObject(data[0])) {\n seriesItem.data = [ data ];\n }\n }\n}\n\nexport default BulletChart;\n","import { Color } from '@progress/kendo-drawing';\n\nimport { Class, defined, deepExtend, setDefaultOptions, valueOrDefault, getSpacing, styleValue } from '../../common';\nimport { SHOW_TOOLTIP, HIDE_TOOLTIP } from '../constants';\n\nclass BaseTooltip extends Class {\n constructor(chartService, options) {\n super();\n\n this.chartService = chartService;\n this.options = deepExtend({}, this.options, options);\n }\n\n getStyle(options, point) {\n let { background, border: { color: border } } = options;\n\n if (point) {\n const pointColor = point.color || point.options.color;\n background = valueOrDefault(background, pointColor);\n border = valueOrDefault(border, pointColor);\n }\n\n const padding = getSpacing(options.padding || {}, \"auto\");\n\n return {\n backgroundColor: background,\n borderColor: border,\n font: options.font,\n color: options.color,\n opacity: options.opacity,\n borderWidth: styleValue(options.border.width),\n paddingTop: styleValue(padding.top),\n paddingBottom: styleValue(padding.bottom),\n paddingLeft: styleValue(padding.left),\n paddingRight: styleValue(padding.right)\n };\n }\n\n show(options, tooltipOptions, point) {\n options.format = tooltipOptions.format;\n\n const style = this.getStyle(tooltipOptions, point);\n options.style = style;\n\n const background = new Color(style.backgroundColor);\n if (!defined(tooltipOptions.color) && !background.isDark()) {\n options.className = \"k-chart-tooltip-inverse\";\n }\n\n this.chartService.notify(SHOW_TOOLTIP, options);\n\n this.visible = true;\n }\n\n hide() {\n if (this.chartService) {\n this.chartService.notify(HIDE_TOOLTIP);\n }\n\n this.visible = false;\n }\n\n destroy() {\n delete this.chartService;\n }\n}\n\nsetDefaultOptions(BaseTooltip, {\n border: {\n width: 1\n },\n opacity: 1\n});\n\nexport default BaseTooltip;\n","import BaseTooltip from '../tooltip/base-tooltip';\n\nimport { HIDE_TOOLTIP } from '../constants';\nimport { TOP, BOTTOM, LEFT, RIGHT, CENTER, DATE } from '../../common/constants';\nimport { setDefaultOptions } from '../../common';\n\nclass CrosshairTooltip extends BaseTooltip {\n constructor(chartService, crosshair, options) {\n super(chartService, options);\n\n this.crosshair = crosshair;\n this.formatService = chartService.format;\n this.initAxisName();\n }\n\n initAxisName() {\n const axis = this.crosshair.axis;\n const plotArea = axis.plotArea;\n let name;\n if (plotArea.categoryAxis) {\n name = axis.getCategory ? \"categoryAxis\" : \"valueAxis\";\n } else {\n name = axis.options.vertical ? \"yAxis\" : \"xAxis\";\n }\n this.axisName = name;\n }\n\n showAt(point) {\n const { crosshair: { axis }, options } = this;\n let value = axis[options.stickyMode ? \"getCategory\" : \"getValue\"](point);\n let formattedValue = value;\n\n if (options.format) {\n formattedValue = this.formatService.auto(options.format, value);\n } else if (axis.options.type === DATE) {\n formattedValue = this.formatService.auto(axis.options.labels.dateFormats[axis.options.baseUnit], value);\n }\n\n this.show({\n point: point,\n anchor: this.getAnchor(),\n crosshair: this.crosshair,\n value: formattedValue,\n axisName: this.axisName,\n axisIndex: this.crosshair.axis.axisIndex\n }, this.options);\n }\n\n hide() {\n this.chartService.notify(HIDE_TOOLTIP, {\n crosshair: this.crosshair,\n axisName: this.axisName,\n axisIndex: this.crosshair.axis.axisIndex\n });\n }\n\n getAnchor() {\n const { crosshair, options: { position, padding } } = this;\n const vertical = !crosshair.axis.options.vertical;\n const lineBox = crosshair.line.bbox();\n let horizontalAlign, verticalAlign, point;\n\n if (vertical) {\n horizontalAlign = CENTER;\n if (position === BOTTOM) {\n verticalAlign = TOP;\n point = lineBox.bottomLeft().translate(0, padding);\n } else {\n verticalAlign = BOTTOM;\n point = lineBox.topLeft().translate(0, -padding);\n }\n } else {\n verticalAlign = CENTER;\n if (position === LEFT) {\n horizontalAlign = RIGHT;\n point = lineBox.topLeft().translate(-padding, 0);\n } else {\n horizontalAlign = LEFT;\n point = lineBox.topRight().translate(padding, 0);\n }\n }\n\n return {\n point: point,\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n}\n\nsetDefaultOptions(CrosshairTooltip, {\n padding: 10\n});\n\nexport default CrosshairTooltip;\n\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { ChartElement, CategoryAxis } from '../../core';\nimport CrosshairTooltip from './crosshair-tooltip';\n\nimport { BLACK, X, Y } from '../../common/constants';\nimport { deepExtend, setDefaultOptions } from '../../common';\n\nclass Crosshair extends ChartElement {\n constructor(chartService, axis, options) {\n super(options);\n\n this.axis = axis;\n this.stickyMode = axis instanceof CategoryAxis;\n\n const tooltipOptions = this.options.tooltip;\n\n if (tooltipOptions.visible) {\n this.tooltip = new CrosshairTooltip(chartService, this,\n deepExtend({}, tooltipOptions, { stickyMode: this.stickyMode })\n );\n }\n }\n\n showAt(point) {\n this.point = point;\n this.moveLine();\n this.line.visible(true);\n\n if (this.tooltip) {\n this.tooltip.showAt(point);\n }\n }\n\n hide() {\n this.line.visible(false);\n\n if (this.tooltip) {\n this.tooltip.hide();\n }\n }\n\n moveLine() {\n const { axis, point } = this;\n const vertical = axis.options.vertical;\n const box = this.getBox();\n const dim = vertical ? Y : X;\n const lineStart = new geom.Point(box.x1, box.y1);\n let lineEnd;\n\n if (vertical) {\n lineEnd = new geom.Point(box.x2, box.y1);\n } else {\n lineEnd = new geom.Point(box.x1, box.y2);\n }\n\n if (point) {\n if (this.stickyMode) {\n const slot = axis.getSlot(axis.pointCategoryIndex(point));\n lineStart[dim] = lineEnd[dim] = slot.center()[dim];\n } else {\n lineStart[dim] = lineEnd[dim] = point[dim];\n }\n }\n\n this.box = box;\n\n this.line.moveTo(lineStart).lineTo(lineEnd);\n }\n\n getBox() {\n const axis = this.axis;\n const axes = axis.pane.axes;\n const length = axes.length;\n const vertical = axis.options.vertical;\n const box = axis.lineBox().clone();\n const dim = vertical ? X : Y;\n let axisLineBox;\n\n for (let i = 0; i < length; i++) {\n const currentAxis = axes[i];\n if (currentAxis.options.vertical !== vertical) {\n if (!axisLineBox) {\n axisLineBox = currentAxis.lineBox().clone();\n } else {\n axisLineBox.wrap(currentAxis.lineBox());\n }\n }\n }\n\n box[dim + 1] = axisLineBox[dim + 1];\n box[dim + 2] = axisLineBox[dim + 2];\n\n return box;\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options;\n this.line = new draw.Path({\n stroke: {\n color: options.color,\n width: options.width,\n opacity: options.opacity,\n dashType: options.dashType\n },\n visible: false\n });\n\n this.moveLine();\n this.visual.append(this.line);\n }\n\n destroy() {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n\n super.destroy();\n }\n}\n\nsetDefaultOptions(Crosshair, {\n color: BLACK,\n width: 2,\n zIndex: -1,\n tooltip: {\n visible: false\n }\n});\n\nexport default Crosshair;","import { drawing as draw } from '@progress/kendo-drawing';\nimport { alignPathToPixel } from '../common';\n\nimport { ChartElement } from '../core';\n\nclass ChartContainer extends ChartElement {\n constructor(options, pane) {\n super(options);\n this.pane = pane;\n }\n\n shouldClip() {\n const children = this.children;\n const length = children.length;\n\n for (let i = 0; i < length; i++) {\n if (children[i].options.clip === true) {\n return true;\n }\n }\n return false;\n }\n\n _clipBox() {\n return this.pane.chartsBox();\n }\n\n createVisual() {\n this.visual = new draw.Group({\n zIndex: 0\n });\n\n if (this.shouldClip()) {\n const clipBox = this.clipBox = this._clipBox();\n const clipRect = clipBox.toRect();\n const clipPath = draw.Path.fromRect(clipRect);\n alignPathToPixel(clipPath);\n\n this.visual.clip(clipPath);\n this.unclipLabels();\n }\n }\n\n stackRoot() {\n return this;\n }\n\n unclipLabels() {\n const { children: charts, clipBox } = this;\n\n for (let i = 0; i < charts.length; i++) {\n const points = charts[i].points || {};\n const length = points.length;\n\n for (let j = 0; j < length; j++) {\n const point = points[j];\n if (point && point.visible !== false && point.overlapsBox && point.overlapsBox(clipBox)) {\n if (point.unclipElements) {\n point.unclipElements();\n } else {\n const { label, note } = point;\n\n if (label && label.options.visible) {\n if (label.alignToClipBox) {\n label.alignToClipBox(clipBox);\n }\n label.options.noclip = true;\n }\n\n if (note && note.options.visible) {\n note.options.noclip = true;\n }\n }\n }\n }\n }\n }\n\n destroy() {\n super.destroy();\n\n delete this.parent;\n }\n}\n\nChartContainer.prototype.isStackRoot = true;\n\nexport default ChartContainer;","import { ChartElement, BoxElement, Title, Box } from '../core';\nimport { ChartPane } from './api-elements';\nimport ChartContainer from './chart-container';\n\nimport { PANE_RENDER } from './constants';\nimport { TOP, LEFT, X, Y } from '../common/constants';\nimport { append, deepExtend, isObject, last, setDefaultOptions } from '../common';\n\nclass Pane extends BoxElement {\n constructor(options) {\n super(options);\n\n this.id = paneID();\n\n this.createTitle();\n\n this.content = new ChartElement();\n\n this.chartContainer = new ChartContainer({}, this);\n this.append(this.content);\n\n this.axes = [];\n this.charts = [];\n }\n\n createTitle() {\n let titleOptions = this.options.title;\n if (isObject(titleOptions)) {\n titleOptions = deepExtend({}, titleOptions, {\n align: titleOptions.position,\n position: TOP\n });\n }\n\n this.title = Title.buildTitle(titleOptions, Pane.prototype.options.title);\n if (this.title) {\n this.append(this.title);\n }\n }\n\n appendAxis(axis) {\n this.content.append(axis);\n this.axes.push(axis);\n axis.pane = this;\n }\n\n appendAxisAt(axis, pos) {\n this.content.append(axis);\n this.axes.splice(pos, 0, axis);\n axis.pane = this;\n }\n\n appendChart(chart) {\n if (this.chartContainer.parent !== this.content) {\n this.content.append(this.chartContainer);\n }\n\n this.charts.push(chart);\n this.chartContainer.append(chart);\n chart.pane = this;\n }\n\n empty() {\n const plotArea = this.parent;\n\n if (plotArea) {\n for (let i = 0; i < this.axes.length; i++) {\n plotArea.removeAxis(this.axes[i]);\n }\n\n for (let i = 0; i < this.charts.length; i++) {\n plotArea.removeChart(this.charts[i]);\n }\n }\n\n this.axes = [];\n this.charts = [];\n\n this.content.destroy();\n this.content.children = [];\n this.chartContainer.children = [];\n }\n\n reflow(targetBox) {\n // Content (such as charts) is rendered, but excluded from reflows\n let content;\n if (last(this.children) === this.content) {\n content = this.children.pop();\n }\n\n super.reflow(targetBox);\n\n if (content) {\n this.children.push(content);\n }\n\n if (this.title) {\n this.contentBox.y1 += this.title.box.height();\n }\n }\n\n visualStyle() {\n const style = super.visualStyle();\n style.zIndex = -10;\n\n return style;\n }\n\n renderComplete() {\n if (this.options.visible) {\n this.createGridLines();\n }\n }\n\n stackRoot() {\n return this;\n }\n\n clipRoot() {\n return this;\n }\n\n createGridLines() {\n const axes = this.axes;\n const allAxes = axes.concat(this.parent.axes);\n const vGridLines = [];\n const hGridLines = [];\n\n // TODO\n // Is full combination really necessary?\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const vertical = axis.options.vertical;\n const gridLines = vertical ? vGridLines : hGridLines;\n for (let j = 0; j < allAxes.length; j++) {\n if (gridLines.length === 0) {\n const altAxis = allAxes[j];\n if (vertical !== altAxis.options.vertical) {\n append(gridLines, axis.createGridLines(altAxis));\n }\n }\n }\n }\n }\n\n refresh() {\n this.visual.clear();\n\n this.content.parent = null;\n this.content.createGradient = this.createGradient.bind(this);\n this.content.renderVisual();\n this.content.parent = this;\n\n if (this.title) {\n this.visual.append(this.title.visual);\n }\n\n this.visual.append(this.content.visual);\n\n this.renderComplete();\n this.notifyRender();\n }\n\n chartsBox() {\n const axes = this.axes;\n const length = axes.length;\n const chartsBox = new Box();\n\n for (let idx = 0; idx < length; idx++) {\n const axis = axes[idx];\n const axisValueField = axis.options.vertical ? Y : X;\n const lineBox = axis.lineBox();\n chartsBox[axisValueField + 1] = lineBox[axisValueField + 1];\n chartsBox[axisValueField + 2] = lineBox[axisValueField + 2];\n }\n\n if (chartsBox.x2 === 0) {\n const allAxes = this.parent.axes;\n const length = allAxes.length;\n\n for (let idx = 0; idx < length; idx++) {\n const axis = allAxes[idx];\n if (!axis.options.vertical) {\n const lineBox = axis.lineBox();\n chartsBox.x1 = lineBox.x1;\n chartsBox.x2 = lineBox.x2;\n }\n }\n }\n return chartsBox;\n }\n\n clipBox() {\n return this.chartContainer.clipBox;\n }\n\n notifyRender() {\n const service = this.getService();\n if (service) {\n service.notify(PANE_RENDER, {\n pane: new ChartPane(this),\n index: this.paneIndex,\n name: this.options.name\n });\n }\n }\n}\n\nlet ID = 1;\n\nfunction paneID() {\n return \"pane\" + ID++;\n}\n\nPane.prototype.isStackRoot = true;\n\nsetDefaultOptions(Pane, {\n zIndex: -1,\n shrinkToFit: true,\n title: {\n align: LEFT\n },\n visible: true\n});\n\nexport default Pane;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Box } from '../../core';\nimport Crosshair from '../crosshair/crosshair';\nimport Pane from '../pane';\nimport { hasValue } from '../utils';\nimport SeriesBinder from '../series-binder';\n\nimport { WHITE, BLACK, X, Y, COORD_PRECISION, TOP, BOTTOM, LEFT, RIGHT, START, END, INHERIT } from '../../common/constants';\nimport { append, deepExtend, defined, getSpacing, getTemplate, inArray, isFunction, isString,\n limitValue, round, setDefaultOptions, last, cycleIndex } from '../../common';\nimport { TRENDLINE_SERIES } from '../constants';\n\nclass PlotAreaBase extends ChartElement {\n constructor(series, options, chartService) {\n super(options);\n\n this.initFields(series, options);\n this.series = series;\n this.initSeries();\n this.charts = [];\n this.options.legend = this.options.legend || {};\n this.options.legend.data = [];\n this.axes = [];\n this.crosshairs = [];\n this.chartService = chartService;\n this.originalOptions = options;\n this.originalSeries = series;\n this._bindCache = new WeakMap();\n\n this.createPanes();\n this.render();\n this.createCrosshairs();\n }\n\n initFields() { }\n\n initSeries() {\n const series = this.series;\n\n for (let i = 0; i < series.length; i++) {\n series[i].index = i;\n }\n }\n\n bindPoint(series, pointIx, item) {\n let cached = this._bindCache.get(series);\n if (!cached) {\n cached = [];\n this._bindCache.set(series, cached);\n }\n\n let data = cached[pointIx];\n if (!data) {\n data = cached[pointIx] = SeriesBinder.current.bindPoint(series, pointIx, item);\n }\n\n return data;\n }\n\n createPanes() {\n const titleOptions = this.options.title || {};\n const paneDefaults = this.options.paneDefaults;\n const paneOptions = this.options.panes || [];\n const panesLength = Math.max(paneOptions.length, 1);\n const panes = [];\n\n const defaults = deepExtend({\n title: {\n color: titleOptions.color\n }\n }, paneDefaults);\n\n for (let i = 0; i < panesLength; i++) {\n const options = deepExtend({}, defaults, paneOptions[i]);\n if (isString(options.title)) {\n options.title = deepExtend({ text: options.title }, defaults.title);\n }\n\n const currentPane = new Pane(options);\n currentPane.paneIndex = i;\n\n panes.push(currentPane);\n this.append(currentPane);\n }\n\n this.panes = panes;\n }\n\n crosshairOptions(axis) {\n return axis.options.crosshair;\n }\n\n createCrosshairs(panes = this.panes) {\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n for (let j = 0; j < pane.axes.length; j++) {\n const axis = pane.axes[j];\n const options = this.crosshairOptions(axis);\n if (options && options.visible) {\n const currentCrosshair = new Crosshair(this.chartService, axis, options);\n\n this.crosshairs.push(currentCrosshair);\n pane.content.append(currentCrosshair);\n }\n }\n }\n }\n\n removeCrosshairs(pane) {\n const crosshairs = this.crosshairs;\n const axes = pane.axes;\n\n for (let i = crosshairs.length - 1; i >= 0; i--) {\n for (let j = 0; j < axes.length; j++) {\n if (crosshairs[i].axis === axes[j]) {\n crosshairs.splice(i, 1);\n break;\n }\n }\n }\n }\n\n hideCrosshairs() {\n const crosshairs = this.crosshairs;\n for (let idx = 0; idx < crosshairs.length; idx++) {\n crosshairs[idx].hide();\n }\n }\n\n findPane(name) {\n const panes = this.panes;\n let matchingPane;\n\n for (let i = 0; i < panes.length; i++) {\n if (panes[i].options.name === name) {\n matchingPane = panes[i];\n break;\n }\n }\n\n return matchingPane || panes[0];\n }\n\n findPointPane(point) {\n const panes = this.panes;\n let matchingPane;\n\n for (let i = 0; i < panes.length; i++) {\n if (panes[i].box.containsPoint(point)) {\n matchingPane = panes[i];\n break;\n }\n }\n\n return matchingPane;\n }\n\n appendAxis(axis) {\n const pane = this.findPane(axis.options.pane);\n\n pane.appendAxis(axis);\n this.axes.push(axis);\n axis.plotArea = this;\n }\n\n removeAxis(axisToRemove) {\n const filteredAxes = [];\n\n for (let i = 0; i < this.axes.length; i++) {\n const axis = this.axes[i];\n if (axisToRemove !== axis) {\n filteredAxes.push(axis);\n } else {\n axis.destroy();\n }\n }\n\n this.axes = filteredAxes;\n }\n\n appendChart(chart, pane) {\n this.charts.push(chart);\n if (pane) {\n pane.appendChart(chart);\n } else {\n this.append(chart);\n }\n }\n\n removeChart(chartToRemove) {\n const filteredCharts = [];\n\n for (let i = 0; i < this.charts.length; i++) {\n const chart = this.charts[i];\n if (chart !== chartToRemove) {\n filteredCharts.push(chart);\n } else {\n chart.destroy();\n }\n }\n\n this.charts = filteredCharts;\n }\n\n addToLegend(series) {\n const count = series.length;\n const legend = this.options.legend;\n const labels = legend.labels || {};\n const inactiveItems = legend.inactiveItems || {};\n const inactiveItemsLabels = inactiveItems.labels || {};\n const data = [];\n\n for (let i = 0; i < count; i++) {\n const currentSeries = series[i];\n const seriesVisible = currentSeries.visible !== false;\n if (currentSeries.visibleInLegend === false) {\n continue;\n }\n\n let text = currentSeries.name;\n const labelTemplate = seriesVisible ? getTemplate(labels) : getTemplate(inactiveItemsLabels) || getTemplate(labels);\n if (labelTemplate) {\n text = labelTemplate({\n text: hasValue(text) ? text : \"\",\n series: currentSeries\n });\n }\n\n const defaults = currentSeries._defaults;\n let color = currentSeries.color;\n if (isFunction(color) && defaults) {\n color = defaults.color;\n }\n\n let itemLabelOptions, markerColor;\n if (seriesVisible) {\n itemLabelOptions = {};\n markerColor = color;\n } else {\n itemLabelOptions = {\n color: inactiveItemsLabels.color,\n font: inactiveItemsLabels.font\n };\n markerColor = inactiveItems.markers.color;\n }\n\n if (hasValue(text) && text !== \"\") {\n data.push({\n text: text,\n labels: itemLabelOptions,\n markerColor: markerColor,\n series: currentSeries,\n active: seriesVisible\n });\n }\n }\n\n append(legend.data, data);\n }\n\n groupAxes(panes) {\n const xAxes = [];\n const yAxes = [];\n\n for (let paneIx = 0; paneIx < panes.length; paneIx++) {\n const paneAxes = panes[paneIx].axes;\n for (let axisIx = 0; axisIx < paneAxes.length; axisIx++) {\n const axis = paneAxes[axisIx];\n if (axis.options.vertical) {\n yAxes.push(axis);\n } else {\n xAxes.push(axis);\n }\n }\n }\n\n return { x: xAxes, y: yAxes, any: xAxes.concat(yAxes) };\n }\n\n groupSeriesByPane() {\n const series = this.series;\n const seriesByPane = {};\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n const pane = this.seriesPaneName(currentSeries);\n\n if (seriesByPane[pane]) {\n seriesByPane[pane].push(currentSeries);\n } else {\n seriesByPane[pane] = [ currentSeries ];\n }\n }\n\n return seriesByPane;\n }\n\n filterVisibleSeries(series) {\n const result = [];\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n if (currentSeries.visible !== false) {\n result.push(currentSeries);\n }\n }\n\n return result;\n }\n\n reflow(targetBox) {\n const options = this.options.plotArea;\n const panes = this.panes;\n const margin = getSpacing(options.margin);\n\n this.box = targetBox.clone().unpad(margin);\n this.reflowPanes();\n\n this.detachLabels();\n this.reflowAxes(panes);\n this.reflowCharts(panes);\n }\n\n redraw(panes) {\n const panesArray = [].concat(panes);\n this.initSeries();\n\n //prevents leak during partial redraws. the cached gradients observers retain reference to the destroyed elements.\n const root = this.getRoot();\n if (root) {\n root.cleanGradients();\n }\n\n for (let i = 0; i < panesArray.length; i++) {\n this.removeCrosshairs(panesArray[i]);\n panesArray[i].empty();\n }\n\n this._bindCache = new WeakMap();\n\n this.render(panesArray);\n this.detachLabels();\n this.reflowAxes(this.panes);\n this.reflowCharts(panesArray);\n\n this.createCrosshairs(panesArray);\n\n for (let i = 0; i < panesArray.length; i++) {\n panesArray[i].refresh();\n }\n }\n\n axisCrossingValues(axis, crossingAxes) {\n const options = axis.options;\n const crossingValues = [].concat(\n options.axisCrossingValues || options.axisCrossingValue\n );\n const valuesToAdd = crossingAxes.length - crossingValues.length;\n const defaultValue = crossingValues[0] || 0;\n\n for (let i = 0; i < valuesToAdd; i++) {\n crossingValues.push(defaultValue);\n }\n\n return crossingValues;\n }\n\n alignAxisTo(axis, targetAxis, crossingValue, targetCrossingValue) {\n const slot = axis.getSlot(crossingValue, crossingValue, true);\n const slotEdge = axis.options.reverse ? 2 : 1;\n const targetSlot = targetAxis.getSlot(targetCrossingValue, targetCrossingValue, true);\n const targetEdge = targetAxis.options.reverse ? 2 : 1;\n const axisBox = axis.box.translate(\n targetSlot[X + targetEdge] - slot[X + slotEdge],\n targetSlot[Y + targetEdge] - slot[Y + slotEdge]\n );\n\n if (axis.pane !== targetAxis.pane) {\n axisBox.translate(0, axis.pane.box.y1 - targetAxis.pane.box.y1);\n }\n\n axis.reflow(axisBox);\n }\n\n alignAxes(xAxes, yAxes) {\n const xAnchor = xAxes[0];\n const yAnchor = yAxes[0];\n const xAnchorCrossings = this.axisCrossingValues(xAnchor, yAxes);\n const yAnchorCrossings = this.axisCrossingValues(yAnchor, xAxes);\n const leftAnchors = {};\n const rightAnchors = {};\n const topAnchors = {};\n const bottomAnchors = {};\n\n for (let i = 0; i < yAxes.length; i++) {\n const axis = yAxes[i];\n const pane = axis.pane;\n const paneId = pane.id;\n const visible = axis.options.visible !== false;\n\n // Locate pane anchor, if any, and use its axisCrossingValues\n const anchor = paneAnchor(xAxes, pane) || xAnchor;\n let anchorCrossings = xAnchorCrossings;\n\n if (anchor !== xAnchor) {\n anchorCrossings = this.axisCrossingValues(anchor, yAxes);\n }\n\n this.alignAxisTo(axis, anchor, yAnchorCrossings[i], anchorCrossings[i]);\n\n if (axis.options._overlap) {\n continue;\n }\n\n if (round(axis.lineBox().x1) === round(anchor.lineBox().x1)) {\n // Push the axis to the left the previous y-axis so they don't overlap\n if (leftAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(leftAnchors[paneId].box, LEFT)\n .translate(-axis.options.margin, 0)\n );\n }\n\n if (visible) {\n leftAnchors[paneId] = axis;\n }\n }\n\n if (round(axis.lineBox().x2) === round(anchor.lineBox().x2)) {\n // Flip the labels on the right if we're at the right end of the pane\n if (!axis._mirrored) {\n axis.options.labels.mirror = !axis.options.labels.mirror;\n axis._mirrored = true;\n }\n\n this.alignAxisTo(axis, anchor, yAnchorCrossings[i], anchorCrossings[i]);\n\n // Push the axis to the right the previous y-axis so they don't overlap\n if (rightAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(rightAnchors[paneId].box, RIGHT)\n .translate(axis.options.margin, 0)\n );\n }\n\n if (visible) {\n rightAnchors[paneId] = axis;\n }\n }\n\n // Locate pane anchor, if any, and align the axis to it\n const paneYAnchor = paneAnchor(yAxes, pane) || yAnchor;\n if (paneYAnchor !== axis) {\n axis.alignTo(paneYAnchor);\n axis.reflow(axis.box);\n }\n }\n\n for (let i = 0; i < xAxes.length; i++) {\n const axis = xAxes[i];\n const pane = axis.pane;\n const paneId = pane.id;\n const visible = axis.options.visible !== false;\n\n // Locate pane anchor and use its axisCrossingValues\n const anchor = paneAnchor(yAxes, pane) || yAnchor;\n let anchorCrossings = yAnchorCrossings;\n if (anchor !== yAnchor) {\n anchorCrossings = this.axisCrossingValues(anchor, xAxes);\n }\n\n this.alignAxisTo(axis, anchor, xAnchorCrossings[i], anchorCrossings[i]);\n\n if (axis.options._overlap) {\n continue;\n }\n\n if (round(axis.lineBox().y1) === round(anchor.lineBox().y1)) {\n // Flip the labels on top if we're at the top of the pane\n if (!axis._mirrored) {\n axis.options.labels.mirror = !axis.options.labels.mirror;\n axis._mirrored = true;\n }\n this.alignAxisTo(axis, anchor, xAnchorCrossings[i], anchorCrossings[i]);\n\n // Push the axis above the previous x-axis so they don't overlap\n if (topAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(topAnchors[paneId].box, TOP)\n .translate(0, -axis.options.margin)\n );\n }\n\n if (visible) {\n topAnchors[paneId] = axis;\n }\n }\n\n if (round(axis.lineBox().y2, COORD_PRECISION) === round(anchor.lineBox().y2, COORD_PRECISION)) {\n // Push the axis below the previous x-axis so they don't overlap\n if (bottomAnchors[paneId]) {\n axis.reflow(axis.box\n .alignTo(bottomAnchors[paneId].box, BOTTOM)\n .translate(0, axis.options.margin)\n );\n }\n\n if (visible) {\n bottomAnchors[paneId] = axis;\n }\n }\n\n if (i !== 0) {\n axis.alignTo(xAnchor);\n axis.reflow(axis.box);\n }\n }\n }\n\n shrinkAxisWidth(panes) {\n const axes = this.groupAxes(panes).any;\n const axisBox = axisGroupBox(axes);\n let overflowX = 0;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n\n if (currentPane.axes.length > 0) {\n overflowX = Math.max(\n overflowX,\n axisBox.width() - currentPane.contentBox.width()\n );\n }\n }\n\n if (overflowX !== 0) {\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n\n if (!currentAxis.options.vertical) {\n currentAxis.reflow(currentAxis.box.shrink(overflowX, 0));\n }\n }\n }\n }\n\n shrinkAxisHeight(panes) {\n let shrinked;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n const axes = currentPane.axes;\n const overflowY = Math.max(0, axisGroupBox(axes).height() - currentPane.contentBox.height());\n\n if (overflowY !== 0) {\n for (let j = 0; j < axes.length; j++) {\n const currentAxis = axes[j];\n\n if (currentAxis.options.vertical) {\n currentAxis.reflow(\n currentAxis.box.shrink(0, overflowY)\n );\n }\n }\n shrinked = true;\n }\n }\n\n return shrinked;\n }\n\n fitAxes(panes) {\n const axes = this.groupAxes(panes).any;\n let offsetX = 0;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n const paneAxes = currentPane.axes;\n const paneBox = currentPane.contentBox;\n\n if (paneAxes.length > 0) {\n const axisBox = axisGroupBox(paneAxes);\n // OffsetY is calculated and applied per pane\n const offsetY = Math.max(paneBox.y1 - axisBox.y1, paneBox.y2 - axisBox.y2);\n\n // OffsetX is calculated and applied globally\n offsetX = Math.max(offsetX, paneBox.x1 - axisBox.x1);\n\n\n for (let j = 0; j < paneAxes.length; j++) {\n const currentAxis = paneAxes[j];\n\n currentAxis.reflow(\n currentAxis.box.translate(0, offsetY)\n );\n }\n }\n }\n\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n\n currentAxis.reflow(\n currentAxis.box.translate(offsetX, 0)\n );\n }\n }\n\n reflowAxes(panes) {\n const axes = this.groupAxes(panes);\n\n for (let i = 0; i < panes.length; i++) {\n this.reflowPaneAxes(panes[i]);\n }\n\n if (axes.x.length > 0 && axes.y.length > 0) {\n this.alignAxes(axes.x, axes.y);\n this.shrinkAxisWidth(panes);\n\n this.autoRotateAxisLabels(axes);\n\n this.alignAxes(axes.x, axes.y);\n if (this.shrinkAxisWidth(panes)) {\n this.alignAxes(axes.x, axes.y);\n }\n\n this.shrinkAxisHeight(panes);\n this.alignAxes(axes.x, axes.y);\n\n if (this.shrinkAxisHeight(panes)) {\n this.alignAxes(axes.x, axes.y);\n }\n\n this.fitAxes(panes);\n }\n }\n\n autoRotateAxisLabels(groupedAxes) {\n const { panes } = this;\n const axes = allPaneAxes(panes);\n let rotated;\n\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n if (axis.autoRotateLabels()) {\n rotated = true;\n }\n }\n\n if (rotated) {\n for (let idx = 0; idx < panes.length; idx++) {\n this.reflowPaneAxes(panes[idx]);\n }\n\n if (groupedAxes.x.length > 0 && groupedAxes.y.length > 0) {\n this.alignAxes(groupedAxes.x, groupedAxes.y);\n this.shrinkAxisWidth(panes);\n }\n }\n }\n\n reflowPaneAxes(pane) {\n const axes = pane.axes;\n const length = axes.length;\n\n if (length > 0) {\n for (let i = 0; i < length; i++) {\n axes[i].reflow(pane.contentBox);\n }\n }\n }\n\n reflowCharts(panes) {\n const charts = this.charts;\n const count = charts.length;\n const box = this.box;\n\n for (let i = 0; i < count; i++) {\n const chartPane = charts[i].pane;\n if (!chartPane || inArray(chartPane, panes)) {\n charts[i].reflow(box);\n }\n }\n }\n\n reflowPanes() {\n const { box, panes } = this;\n const panesLength = panes.length;\n let remainingHeight = box.height();\n let autoHeightPanes = 0;\n let top = box.y1;\n\n for (let i = 0; i < panesLength; i++) {\n const currentPane = panes[i];\n const height = currentPane.options.height;\n\n currentPane.options.width = box.width();\n\n if (!currentPane.options.height) {\n autoHeightPanes++;\n } else {\n if (height.indexOf && height.indexOf(\"%\")) {\n const percents = parseInt(height, 10) / 100;\n currentPane.options.height = percents * box.height();\n }\n\n currentPane.reflow(box.clone());\n\n remainingHeight -= currentPane.options.height;\n }\n }\n\n for (let i = 0; i < panesLength; i++) {\n const currentPane = panes[i];\n\n if (!currentPane.options.height) {\n currentPane.options.height = remainingHeight / autoHeightPanes;\n }\n }\n\n for (let i = 0; i < panesLength; i++) {\n const currentPane = panes[i];\n const paneBox = box\n .clone()\n .move(box.x1, top);\n\n currentPane.reflow(paneBox);\n\n top += currentPane.options.height;\n }\n }\n\n backgroundBox() {\n const axes = this.axes;\n const axesCount = axes.length;\n let box;\n\n for (let i = 0; i < axesCount; i++) {\n const axisA = axes[i];\n\n for (let j = 0; j < axesCount; j++) {\n const axisB = axes[j];\n\n if (axisA.options.vertical !== axisB.options.vertical) {\n const lineBox = axisA.lineBox().clone().wrap(axisB.lineBox());\n\n if (!box) {\n box = lineBox;\n } else {\n box = box.wrap(lineBox);\n }\n }\n }\n }\n\n return box || this.box;\n }\n\n chartsBoxes() {\n const panes = this.panes;\n const boxes = [];\n\n for (let idx = 0; idx < panes.length; idx++) {\n boxes.push(panes[idx].chartsBox());\n }\n\n return boxes;\n }\n\n addBackgroundPaths(multipath) {\n const boxes = this.chartsBoxes();\n for (let idx = 0; idx < boxes.length; idx++) {\n multipath.paths.push(draw.Path.fromRect(boxes[idx].toRect()));\n }\n }\n\n backgroundContainsPoint(point) {\n const boxes = this.chartsBoxes();\n for (let idx = 0; idx < boxes.length; idx++) {\n if (boxes[idx].containsPoint(point)) {\n return true;\n }\n }\n }\n\n createVisual() {\n super.createVisual();\n\n const options = this.options.plotArea;\n let { opacity, background, border = {} } = options;\n if (isTransparent(background)) {\n background = WHITE;\n opacity = 0;\n }\n\n const bg = this._bgVisual = new draw.MultiPath({\n fill: {\n color: background,\n opacity: opacity\n },\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType\n },\n zIndex: -1\n });\n\n this.addBackgroundPaths(bg);\n\n this.appendVisual(bg);\n }\n\n pointsByCategoryIndex(categoryIndex) {\n const charts = this.charts;\n const result = [];\n\n if (categoryIndex !== null) {\n for (let i = 0; i < charts.length; i++) {\n const chart = charts[i];\n\n if (chart.pane.options.name === \"_navigator\") {\n continue;\n }\n\n const points = charts[i].categoryPoints[categoryIndex];\n if (points && points.length) {\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n if (point && defined(point.value) && point.value !== null) {\n result.push(point);\n }\n }\n }\n }\n }\n\n return result;\n }\n\n pointsBySeriesIndex(seriesIndex) {\n return this.filterPoints(function(point) {\n return point.series.index === seriesIndex;\n });\n }\n\n pointsByPointIndex(pointIndex) {\n return this.filterPoints(function(point) {\n return point.getIndex() === pointIndex;\n });\n }\n\n pointsBySeriesName(name) {\n return this.filterPoints(function(point) {\n return point.series.name === name;\n });\n }\n\n filterPoints(callback) {\n const charts = this.charts;\n const result = [];\n\n for (let i = 0; i < charts.length; i++) {\n const chart = charts[i];\n const points = chart.points;\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n if (point && point.visible !== false && callback(point)) {\n result.push(point);\n }\n }\n }\n\n return result;\n }\n\n findPoint(callback) {\n const charts = this.charts;\n\n for (let i = 0; i < charts.length; i++) {\n const chart = charts[i];\n const points = chart.points;\n for (let j = 0; j < points.length; j++) {\n const point = points[j];\n if (point && point.visible !== false && callback(point)) {\n return point;\n }\n }\n }\n }\n\n paneByPoint(point) {\n const panes = this.panes;\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n if (pane.box.containsPoint(point)) {\n return pane;\n }\n }\n }\n\n detachLabels() {\n const axes = this.groupAxes(this.panes);\n const xAxes = axes.x;\n const yAxes = axes.y;\n\n this.detachAxisGroupLabels(yAxes, xAxes);\n this.detachAxisGroupLabels(xAxes, yAxes);\n }\n\n detachAxisGroupLabels(axes, crossingAxes) {\n let labelAxisCount = 0;\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const pane = axis.pane;\n const anchor = paneAnchor(crossingAxes, pane) || crossingAxes[0];\n const axisIndex = i + labelAxisCount;\n const labelAxis = this.createLabelAxis(axis, axisIndex, anchor);\n\n if (labelAxis) {\n labelAxisCount++;\n\n const pos = pane.axes.indexOf(axis) + labelAxisCount;\n pane.appendAxisAt(labelAxis, pos);\n }\n }\n }\n\n createLabelAxis(axis, axisIndex, anchor) {\n const labelOptions = axis.options.labels;\n const position = labelOptions.position;\n const onAxis = position !== END && position !== START;\n const visible = labelOptions.visible;\n\n if (onAxis || visible === false) {\n return null;\n }\n\n const allAxes = this.groupAxes(this.panes);\n const crossingAxes = anchor.options.vertical ? allAxes.x : allAxes.y;\n const anchorCrossings = this.axisCrossingValues(anchor, crossingAxes);\n const end = position === END;\n const range = anchor.range();\n const edge = end ? range.max : range.min;\n const crossingValue = limitValue(anchorCrossings[axisIndex], range.min, range.max);\n\n if (crossingValue - edge === 0) {\n return null;\n }\n\n anchorCrossings.splice(axisIndex + 1, 0, edge);\n anchor.options.axisCrossingValues = anchorCrossings;\n\n const labelAxis = axis.clone();\n axis.clear();\n\n labelAxis.options.name = undefined;\n labelAxis.options.line.visible = false;\n\n labelAxis.options.crosshair = undefined;\n labelAxis.options.notes = undefined;\n labelAxis.options.plotBands = undefined;\n\n return labelAxis;\n }\n\n isTrendline(series) {\n return series && inArray(series.type, TRENDLINE_SERIES);\n }\n\n trendlineFactory() { /* abstract */ }\n\n createTrendlineSeries() {\n const modifiedSeries = [];\n\n this.series = this.series.map(series => {\n if (!this.isTrendline(series)) {\n return series;\n }\n\n const forSeries = this.seriesByName(series.for);\n if (!forSeries) {\n throw new Error('Invalid Configuration: Unable to locate linked series ' +\n `\"${series.for}\" for trendline \"${series.name}\".`);\n }\n\n const valueFields = SeriesBinder.current.valueFields(forSeries);\n const field = last(valueFields); // Use the last field for multi-field series\n\n const trendlineSeries = this.trendlineFactory(Object.assign({}, {field}, series), forSeries);\n if (trendlineSeries) {\n if (forSeries.visible === false) {\n trendlineSeries.visible = false;\n }\n\n if (trendlineSeries.color === INHERIT) {\n trendlineSeries.color = forSeries.color;\n }\n\n modifiedSeries.push(trendlineSeries);\n }\n\n return trendlineSeries;\n }).filter(series => series !== null);\n\n return modifiedSeries;\n }\n\n seriesByName(name) {\n return this.series.find(series => series.name === name);\n }\n\n getFirstPoint() {\n return this.pointsBySeriesIndex(0)[0];\n }\n\n getPointBelow(point) {\n return this._getNextPoint(point, this._pointsByVertical, 1);\n }\n\n getPointAbove(point) {\n return this._getNextPoint(point, this._pointsByVertical, -1);\n }\n\n getPointToTheRight(point) {\n return this._getNextPoint(point, this._pointsByHorizontal, 1);\n }\n\n getPointToTheLeft(point) {\n return this._getNextPoint(point, this._pointsByHorizontal, -1);\n }\n\n _getNextPoint(point, getPointsFunc, increment) {\n let points = getPointsFunc.call(this, point);\n const pointIndex = points.indexOf(point);\n let nextIndex = pointIndex + increment;\n const loopPoints = (direction) => {\n // loop over to last non-empty collection\n let result;\n let offset = 0;\n do {\n offset += direction;\n result = getPointsFunc.call(this, point, offset);\n } while (result.length === 0);\n\n return result;\n };\n\n if (nextIndex < 0) {\n points = loopPoints(-1);\n\n return points.at(-1);\n } else if (nextIndex >= points.length) {\n points = loopPoints(1);\n\n return points.at(0);\n }\n\n return points[nextIndex];\n }\n\n _pointsByVertical(basePoint) {\n return this.pointsByPointIndex(basePoint.getIndex());\n }\n\n _pointsByHorizontal(basePoint, offset = 0) {\n let index = cycleIndex(basePoint.series.index + offset, this.series.length);\n return this.pointsBySeriesIndex(index);\n }\n}\n\nfunction isSingleAxis(axis) {\n return !axis.pane.axes.some((a) =>\n a.options.vertical === axis.options.vertical && a !== axis && a.options.visible !== false\n );\n}\n\nfunction axisGroupBox(axes) {\n const length = axes.length;\n let box;\n\n for (let i = 0; i < length; i++) {\n const axis = axes[i];\n const visible = axis.options.visible !== false;\n if (visible || isSingleAxis(axis)) {\n const axisBox = visible ? axis.contentBox() : axis.lineBox();\n\n if (!box) {\n box = axisBox.clone();\n } else {\n box.wrap(axisBox);\n }\n }\n }\n\n return box || new Box();\n}\n\nfunction paneAnchor(axes, pane) {\n for (let i = 0; i < axes.length; i++) {\n const anchor = axes[i];\n if (anchor && anchor.pane === pane) {\n return anchor;\n }\n }\n}\n\nfunction isTransparent(color) {\n return color === \"\" || color === null || color === \"none\" || color === \"transparent\" || !defined(color);\n}\n\nconst allPaneAxes = (panes) => panes.reduce((acc, pane) => acc.concat(pane.axes), []);\n\nsetDefaultOptions(PlotAreaBase, {\n series: [],\n plotArea: {\n margin: {}\n },\n background: \"\",\n border: {\n color: BLACK,\n width: 0\n },\n paneDefaults: {\n title: {}\n },\n legend: {\n inactiveItems: {\n labels: {\n color: \"#919191\"\n },\n markers: {\n color: \"#919191\"\n }\n }\n }\n});\n\nexport default PlotAreaBase;\n","import { PLOT_AREA_HOVER, PLOT_AREA_CLICK } from '../constants';\n\nconst PlotAreaEventsMixin = {\n hover: function(chart, e) {\n this._dispatchEvent(chart, e, PLOT_AREA_HOVER);\n },\n\n click: function(chart, e) {\n this._dispatchEvent(chart, e, PLOT_AREA_CLICK);\n }\n};\n\nexport default PlotAreaEventsMixin;","import Aggregates from './aggregates';\n\nimport { Class, defined, inArray, isArray, isFunction, isNumber, isObject } from '../../common';\n\nclass SeriesAggregator extends Class {\n constructor(series, binder, defaultAggregates) {\n super();\n\n const canonicalFields = binder.canonicalFields(series);\n const valueFields = binder.valueFields(series);\n const sourceFields = binder.sourceFields(series, canonicalFields);\n const seriesFields = this._seriesFields = [];\n const defaults = defaultAggregates.query(series.type);\n const rootAggregate = series.aggregate || defaults;\n\n this._series = series;\n this._binder = binder;\n\n for (let i = 0; i < canonicalFields.length; i++) {\n const field = canonicalFields[i];\n let fieldAggregate;\n\n if (isObject(rootAggregate)) {\n fieldAggregate = rootAggregate[field];\n } else if (i === 0 || inArray(field, valueFields)) {\n fieldAggregate = rootAggregate;\n } else {\n break;\n }\n\n if (fieldAggregate) {\n seriesFields.push({\n canonicalName: field,\n name: sourceFields[i],\n transform: isFunction(fieldAggregate) ? fieldAggregate : Aggregates[fieldAggregate]\n });\n }\n }\n }\n\n aggregatePoints(srcPoints, group) {\n const { _series: series, _seriesFields: seriesFields } = this;\n const data = this._bindPoints(srcPoints || []);\n const firstDataItem = data.dataItems[0];\n let result = {};\n\n if (firstDataItem && !isNumber(firstDataItem) && !isArray(firstDataItem)) {\n const fn = function() {};\n fn.prototype = firstDataItem;\n result = new fn();\n }\n\n for (let i = 0; i < seriesFields.length; i++) {\n const field = seriesFields[i];\n const srcValues = this._bindField(data.values, field.canonicalName);\n const value = field.transform(srcValues, series, data.dataItems, group);\n\n if (value !== null && isObject(value) && !defined(value.length) && !(value instanceof Date)) {\n result = value;\n break;\n } else {\n if (defined(value)) {\n setValue(field.name, result, value);\n }\n }\n }\n\n return result;\n }\n\n _bindPoints(points) {\n const { _binder: binder, _series: series } = this;\n const values = [];\n const dataItems = [];\n\n for (let i = 0; i < points.length; i++) {\n const pointIx = points[i];\n\n values.push(binder.bindPoint(series, pointIx));\n dataItems.push(series.data[pointIx]);\n }\n\n return {\n values: values,\n dataItems: dataItems\n };\n }\n\n _bindField(data, field) {\n const values = [];\n const count = data.length;\n\n for (let i = 0; i < count; i++) {\n const item = data[i];\n const valueFields = item.valueFields;\n let value;\n\n if (defined(valueFields[field])) {\n value = valueFields[field];\n } else {\n value = item.fields[field];\n }\n\n values.push(value);\n }\n\n return values;\n }\n}\n\nfunction setValue(fieldName, target, value) {\n let parentObj = target;\n let field = fieldName;\n\n if (fieldName.indexOf(\".\") > -1) {\n const parts = fieldName.split(\".\");\n\n while (parts.length > 1) {\n field = parts.shift();\n if (!defined(parentObj[field])) {\n parentObj[field] = {};\n }\n parentObj = parentObj[field];\n }\n field = parts.shift();\n }\n\n parentObj[field] = value;\n}\n\nexport default SeriesAggregator;","import { Class } from '../../common';\n\nclass DefaultAggregates extends Class {\n constructor() {\n super();\n\n this._defaults = {};\n }\n\n register(seriesTypes, aggregates) {\n for (let i = 0; i < seriesTypes.length; i++) {\n this._defaults[seriesTypes[i]] = aggregates;\n }\n }\n\n query(seriesType) {\n return this._defaults[seriesType];\n }\n}\n\nDefaultAggregates.current = new DefaultAggregates();\n\nexport default DefaultAggregates;","import Bar from '../bar-chart/bar';\n\nimport { deepExtend } from '../../common';\n\nclass RangeBar extends Bar {\n createLabel() {\n const labels = this.options.labels;\n const fromOptions = deepExtend({}, labels, labels.from);\n const toOptions = deepExtend({}, labels, labels.to);\n\n if (fromOptions.visible) {\n this.labelFrom = this.createLabelElement(fromOptions);\n this.append(this.labelFrom);\n }\n\n if (toOptions.visible) {\n this.labelTo = this.createLabelElement(toOptions);\n this.append(this.labelTo);\n }\n }\n\n reflow(targetBox) {\n this.render();\n\n const { labelFrom, labelTo, value } = this;\n\n this.box = targetBox;\n\n if (labelFrom) {\n labelFrom.options.aboveAxis = value.from > value.to;\n labelFrom.reflow(targetBox);\n }\n\n if (labelTo) {\n labelTo.options.aboveAxis = value.to > value.from;\n labelTo.reflow(targetBox);\n }\n\n if (this.note) {\n this.note.reflow(targetBox);\n }\n }\n}\n\nRangeBar.prototype.defaults = deepExtend({}, RangeBar.prototype.defaults, {\n labels: {\n format: \"{0} - {1}\"\n },\n tooltip: {\n format: \"{1}\"\n }\n});\n\nexport default RangeBar;","import BarChart from '../bar-chart/bar-chart';\nimport RangeBar from './range-bar';\nimport CategoricalChart from '../categorical-chart';\n\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { isNumber } from '../../common';\n\nclass RangeBarChart extends BarChart {\n pointType() {\n return RangeBar;\n }\n\n pointValue(data) {\n return data.valueFields;\n }\n\n formatPointValue(point, format) {\n if (point.value.from === null && point.value.to === null) {\n return \"\";\n }\n\n return this.chartService.format.auto(format, point.value.from, point.value.to);\n }\n\n plotRange(point) {\n if (!point) {\n return 0;\n }\n\n return [ point.value.from, point.value.to ];\n }\n\n updateRange(value, fields) {\n const axisName = fields.series.axis;\n const { from, to } = value;\n let axisRange = this.valueAxisRanges[axisName];\n\n if (value !== null && isNumber(from) && isNumber(to)) {\n axisRange = this.valueAxisRanges[axisName] = axisRange || { min: MAX_VALUE, max: MIN_VALUE };\n\n axisRange.min = Math.min(axisRange.min, from);\n axisRange.max = Math.max(axisRange.max, from);\n\n axisRange.min = Math.min(axisRange.min, to);\n axisRange.max = Math.max(axisRange.max, to);\n }\n }\n\n aboveAxis(point) {\n const value = point.value;\n return value.from < value.to;\n }\n}\n\nRangeBarChart.prototype.plotLimits = CategoricalChart.prototype.plotLimits;\n\nexport default RangeBarChart;","import LinePoint from '../line-chart/line-point';\n\nclass RangeLinePoint extends LinePoint {\n aliasFor() {\n return this.parent;\n }\n}\n\nexport default RangeLinePoint;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Point } from '../../core';\nimport RangeLinePoint from './range-line-point';\nimport PointEventsMixin from '../mixins/point-events-mixin';\nimport NoteMixin from '../mixins/note-mixin';\n\nimport { LINE_MARKER_SIZE, FADEIN, INITIAL_ANIMATION_DURATION, TOOLTIP_OFFSET, ABOVE, BELOW, CHART_POINT_ROLE, CHART_POINT_CLASSNAME, CHART_POINT_ROLE_DESCRIPTION } from '../constants';\nimport { WHITE, CIRCLE, HIGHLIGHT_ZINDEX, LEFT, RIGHT, BOTTOM, CENTER } from '../../common/constants';\nimport { deepExtend, valueOrDefault, getSpacing } from '../../common';\nimport guid from '../../core/utils/guid';\n\nconst AUTO = 'auto';\nconst DEFAULT_FROM_FORMAT = '{0}';\nconst DEFAULT_TO_FORMAT = '{1}';\n\nclass RangeAreaPoint extends ChartElement {\n constructor(value, options) {\n super();\n\n this.value = value;\n this.options = options;\n this.aboveAxis = valueOrDefault(this.options.aboveAxis, true);\n this.tooltipTracking = true;\n this._id = guid();\n this.initLabelsFormat();\n }\n\n render() {\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n const { markers, labels } = this.options;\n const value = this.value;\n\n const fromPoint = this.fromPoint = new RangeLinePoint(value, deepExtend({}, this.options, {\n labels: labels.from,\n markers: markers.from\n }));\n\n const toPoint = this.toPoint = new RangeLinePoint(value, deepExtend({}, this.options, {\n labels: labels.to,\n markers: markers.to\n }));\n\n this.copyFields(fromPoint);\n this.copyFields(toPoint);\n\n this.append(fromPoint);\n this.append(toPoint);\n }\n\n reflow(targetBox) {\n this.render();\n\n const { from: fromBox, to: toBox } = targetBox;\n\n this.positionLabels(fromBox, toBox);\n\n this.fromPoint.reflow(fromBox);\n this.toPoint.reflow(toBox);\n\n this.box = this.fromPoint.markerBox().clone().wrap(this.toPoint.markerBox());\n }\n\n createHighlight() {\n const group = new draw.Group();\n group.append(this.fromPoint.createHighlight());\n group.append(this.toPoint.createHighlight());\n\n return group;\n }\n\n highlightVisual() {\n return this.visual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n from: this.fromPoint.highlightVisualArgs(),\n to: this.toPoint.highlightVisualArgs()\n };\n }\n\n createFocusHighlight() {\n const group = new draw.Group();\n group.append(this.fromPoint.createFocusHighlight());\n group.append(this.toPoint.createFocusHighlight());\n\n return group;\n }\n\n tooltipAnchor() {\n const clipBox = this.owner.pane.clipBox();\n const showTooltip = !clipBox || clipBox.overlaps(this.box);\n\n if (showTooltip) {\n const box = this.box;\n const center = box.center();\n const horizontalAlign = LEFT;\n let x, y, verticalAlign;\n\n if (this.options.vertical) {\n x = center.x;\n y = box.y1 - TOOLTIP_OFFSET;\n verticalAlign = BOTTOM;\n } else {\n x = box.x2 + TOOLTIP_OFFSET;\n y = center.y;\n verticalAlign = CENTER;\n }\n\n return {\n point: new Point(x, y),\n align: {\n horizontal: horizontalAlign,\n vertical: verticalAlign\n }\n };\n }\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n unclipElements() {\n this.fromPoint.unclipElements();\n this.toPoint.unclipElements();\n }\n\n initLabelsFormat() {\n const labels = this.options.labels;\n if (!labels.format) {\n if (!labels.from || !labels.from.format) {\n labels.from = Object.assign({}, labels.from, {\n format: DEFAULT_FROM_FORMAT\n });\n }\n\n if (!labels.to || !labels.to.format) {\n labels.to = Object.assign({}, labels.to, {\n format: DEFAULT_TO_FORMAT\n });\n }\n }\n }\n\n positionLabels(fromBox, toBox) {\n const { labels, vertical } = this.options;\n\n if (labels.position === AUTO) {\n let fromLabelPosition, toLabelPosition;\n if (vertical) {\n if (toBox.y1 <= fromBox.y1) {\n toLabelPosition = ABOVE;\n fromLabelPosition = BELOW;\n } else {\n toLabelPosition = BELOW;\n fromLabelPosition = ABOVE;\n }\n } else {\n if (toBox.x1 <= fromBox.x1) {\n toLabelPosition = LEFT;\n fromLabelPosition = RIGHT;\n } else {\n toLabelPosition = RIGHT;\n fromLabelPosition = LEFT;\n }\n }\n\n if (!labels.from || !labels.from.position) {\n this.fromPoint.options.labels.position = fromLabelPosition;\n }\n\n if (!labels.to || !labels.to.position) {\n this.toPoint.options.labels.position = toLabelPosition;\n }\n }\n }\n\n copyFields(point) {\n point.dataItem = this.dataItem;\n point.category = this.category;\n point.series = this.series;\n point.color = this.color;\n point.owner = this.owner;\n }\n\n focusVisual() {\n this.fromPoint.focusVisual();\n }\n\n clearFocusFromVisual() {\n this.toPoint.clearFocusFromVisual();\n }\n\n getIndex() {\n return this.categoryIx;\n }\n}\n\ndeepExtend(RangeAreaPoint.prototype, PointEventsMixin);\ndeepExtend(RangeAreaPoint.prototype, NoteMixin);\n\nRangeAreaPoint.prototype.defaults = {\n markers: {\n visible: false,\n background: WHITE,\n size: LINE_MARKER_SIZE,\n type: CIRCLE,\n border: {\n width: 2\n },\n opacity: 1\n },\n labels: {\n visible: false,\n margin: getSpacing(3),\n padding: getSpacing(4),\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n },\n position: AUTO\n },\n notes: {\n label: {}\n },\n highlight: {\n markers: {\n border: {\n color: WHITE,\n width: 2\n }\n },\n zIndex: HIGHLIGHT_ZINDEX\n },\n tooltip: {\n format: '{0} - {1}'\n },\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n};\n\nexport default RangeAreaPoint;\n","import { drawing as draw } from '@progress/kendo-drawing';\nimport AreaSegment from '../area-chart/area-segment';\n\nclass RangeAreaSegment extends AreaSegment {\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.toGeometryPoints(this.toPoints()));\n }\n\n stackSegments() {\n let fromSegments = this.fromSegments;\n if (!this.fromSegments) {\n fromSegments = this.fromSegments = this.segmentsFromPoints(this.toGeometryPoints(this.fromPoints().reverse()));\n }\n\n return fromSegments;\n }\n\n createStroke(style) {\n const toPath = new draw.Path(style);\n const fromPath = new draw.Path(style);\n\n toPath.segments.push.apply(toPath.segments, this.strokeSegments());\n fromPath.segments.push.apply(fromPath.segments, this.stackSegments());\n\n this.visual.append(toPath);\n this.visual.append(fromPath);\n }\n\n hasStackSegment() {\n return true;\n }\n\n fromPoints() {\n return this.linePoints.map(point => point.fromPoint);\n }\n\n toPoints() {\n return this.linePoints.map(point => point.toPoint);\n }\n}\n\nexport default RangeAreaSegment;","import { CurveProcessor } from '../../core';\n\nimport RangeAreaSegment from './range-area-segment';\n\nclass SplineRangeAreaSegment extends RangeAreaSegment {\n\n createStrokeSegments() {\n return this.createCurveSegments(this.toPoints());\n }\n\n stackSegments() {\n let fromSegments = this.fromSegments;\n if (!this.fromSegments) {\n fromSegments = this.fromSegments = this.createCurveSegments(this.fromPoints().reverse());\n }\n\n return fromSegments;\n }\n\n createCurveSegments(points) {\n const curveProcessor = new CurveProcessor();\n\n return curveProcessor.process(this.toGeometryPoints(points));\n }\n\n\n}\n\nexport default SplineRangeAreaSegment;","import StepLineMixin from '../line-chart/step-line-mixin';\nimport RangeAreaSegment from './range-area-segment';\nimport { deepExtend } from '../../common';\n\nclass StepRangeAreaSegment extends RangeAreaSegment {\n\n createStrokeSegments() {\n return this.segmentsFromPoints(this.calculateStepPoints(this.toPoints()));\n }\n\n stackSegments() {\n let fromSegments = this.fromSegments;\n if (!this.fromSegments) {\n fromSegments = this.fromSegments = this.segmentsFromPoints(this.calculateStepPoints(this.fromPoints()));\n fromSegments.reverse();\n }\n\n return fromSegments;\n }\n}\n\ndeepExtend(StepRangeAreaSegment.prototype, StepLineMixin);\n\nexport default StepRangeAreaSegment;","import CategoricalChart from '../categorical-chart';\nimport LineChartMixin from '../mixins/line-chart-mixin';\nimport ClipAnimationMixin from '../mixins/clip-animation-mixin';\nimport RangeAreaPoint from './range-area-point';\nimport RangeAreaSegment from './range-area-segment';\nimport SplineRangeAreaSegment from './spline-range-area-segment';\nimport StepRangeAreaSegment from './step-range-area-segment';\n\nimport { Box } from '../../core';\nimport { ZERO } from '../constants';\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\nimport { isNumber } from '../../common';\nimport { deepExtend, isFunction } from '../../common';\nimport { hasValue } from '../utils';\n\nclass RangeAreaChart extends CategoricalChart {\n\n render() {\n super.render();\n\n this.renderSegments();\n }\n\n pointType() {\n return RangeAreaPoint;\n }\n\n createPoint(data, fields) {\n const { series, seriesIx } = fields;\n let value = data.valueFields;\n\n if (!hasValue(value.from) && !hasValue(value.to)) {\n if (this.seriesMissingValues(series) === ZERO) {\n value = {\n from: 0,\n to: 0\n };\n } else {\n return null;\n }\n }\n\n let pointOptions = this.pointOptions(series, seriesIx);\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n let color = data.fields.color || series.color;\n if (isFunction(series.color)) {\n color = pointOptions.color;\n }\n\n const point = new RangeAreaPoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = (currentSeries.line || {}).style;\n let segmentType;\n if (style === \"smooth\") {\n segmentType = SplineRangeAreaSegment;\n } else if (style === \"step\") {\n segmentType = StepRangeAreaSegment;\n } else {\n segmentType = RangeAreaSegment;\n }\n\n return new segmentType(linePoints, currentSeries, seriesIx);\n }\n\n plotRange(point, startValue) {\n if (!point) {\n return [ startValue, startValue ];\n }\n\n return [ point.value.from, point.value.to ];\n }\n\n valueSlot(valueAxis, plotRange) {\n const fromSlot = valueAxis.getSlot(plotRange[0], plotRange[0], !this.options.clip);\n const toSlot = valueAxis.getSlot(plotRange[1], plotRange[1], !this.options.clip);\n if (fromSlot && toSlot) {\n return {\n from: fromSlot,\n to: toSlot\n };\n }\n }\n\n pointSlot(categorySlot, valueSlot) {\n const { from, to } = valueSlot;\n let fromSlot, toSlot;\n\n if (this.options.invertAxes) {\n fromSlot = new Box(from.x1, categorySlot.y1, from.x2, categorySlot.y2);\n toSlot = new Box(to.x1, categorySlot.y1, to.x2, categorySlot.y2);\n } else {\n fromSlot = new Box(categorySlot.x1, from.y1, categorySlot.x2, from.y2);\n toSlot = new Box(categorySlot.x1, to.y1, categorySlot.x2, to.y2);\n }\n\n return {\n from: fromSlot,\n to: toSlot\n };\n }\n\n addValue(data, fields) {\n const valueFields = data.valueFields;\n if (!isNumber(valueFields.from)) {\n valueFields.from = valueFields.to;\n }\n\n if (!isNumber(valueFields.to)) {\n valueFields.to = valueFields.from;\n }\n\n super.addValue(data, fields);\n }\n\n updateRange(value, fields) {\n if (value !== null && isNumber(value.from) && isNumber(value.to)) {\n const axisName = fields.series.axis;\n const axisRange = this.valueAxisRanges[axisName] = this.valueAxisRanges[axisName] || { min: MAX_VALUE, max: MIN_VALUE };\n const { from, to } = value;\n\n axisRange.min = Math.min(axisRange.min, from, to);\n axisRange.max = Math.max(axisRange.max, from, to);\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n\n return this.chartService.format.auto(format, value.from, value.to);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n if (point) {\n result.push((point.fromPoint || {}).marker);\n result.push((point.toPoint || {}).marker);\n }\n }\n\n return result.concat(this._segments);\n }\n}\n\ndeepExtend(RangeAreaChart.prototype, LineChartMixin, ClipAnimationMixin);\n\nexport default RangeAreaChart;\n","import Candlestick from '../candlestick-chart/candlestick';\n\nclass OHLCPoint extends Candlestick {\n reflow(box) {\n const { options, value, owner: chart } = this;\n const valueAxis = chart.seriesValueAxis(options);\n const oPoints = [];\n const cPoints = [];\n const lhPoints = [];\n\n const lhSlot = valueAxis.getSlot(value.low, value.high);\n const oSlot = valueAxis.getSlot(value.open, value.open);\n const cSlot = valueAxis.getSlot(value.close, value.close);\n\n oSlot.x1 = cSlot.x1 = lhSlot.x1 = box.x1;\n oSlot.x2 = cSlot.x2 = lhSlot.x2 = box.x2;\n\n const mid = lhSlot.center().x;\n\n oPoints.push([ oSlot.x1, oSlot.y1 ]);\n oPoints.push([ mid, oSlot.y1 ]);\n cPoints.push([ mid, cSlot.y1 ]);\n cPoints.push([ cSlot.x2, cSlot.y1 ]);\n lhPoints.push([ mid, lhSlot.y1 ]);\n lhPoints.push([ mid, lhSlot.y2 ]);\n\n this.lines = [\n oPoints, cPoints, lhPoints\n ];\n\n this.box = lhSlot.clone().wrap(oSlot.clone().wrap(cSlot));\n\n this.reflowNote();\n }\n\n createBody() {}\n}\n\nexport default OHLCPoint;","import CandlestickChart from '../candlestick-chart/candlestick-chart';\nimport OHLCPoint from './ohlc-point';\n\nclass OHLCChart extends CandlestickChart {\n pointType() {\n return OHLCPoint;\n }\n}\n\nexport default OHLCChart;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement } from '../../core';\n\nimport { FADEIN, INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { alignPathToPixel, setDefaultOptions } from '../../common';\n\nclass WaterfallSegment extends ChartElement {\n constructor(from, to, series) {\n super();\n\n this.from = from;\n this.to = to;\n this.series = series;\n }\n\n linePoints() {\n const from = this.from;\n const { from: { box: fromBox }, to: { box: toBox } } = this;\n const points = [];\n\n if (from.isVertical) {\n const y = from.aboveAxis ? fromBox.y1 : fromBox.y2;\n points.push(\n [ fromBox.x1, y ],\n [ toBox.x2, y ]\n );\n } else {\n const x = from.aboveAxis ? fromBox.x2 : fromBox.x1;\n points.push(\n [ x, fromBox.y1 ],\n [ x, toBox.y2 ]\n );\n }\n\n return points;\n }\n\n createVisual() {\n super.createVisual();\n\n const line = this.series.line || {};\n\n const path = draw.Path.fromPoints(this.linePoints(), {\n stroke: {\n color: line.color,\n width: line.width,\n opacity: line.opacity,\n dashType: line.dashType\n }\n });\n\n alignPathToPixel(path);\n this.visual.append(path);\n }\n}\n\nsetDefaultOptions(WaterfallSegment, {\n animation: {\n type: FADEIN,\n delay: INITIAL_ANIMATION_DURATION\n }\n});\n\nexport default WaterfallSegment;","import BarChart from '../bar-chart/bar-chart';\nimport SeriesBinder from '../series-binder';\nimport WaterfallSegment from './waterfall-segment';\n\nimport categoriesCount from '../utils/categories-count';\n\nimport { isNumber } from '../../common';\n\nclass WaterfallChart extends BarChart {\n render() {\n super.render();\n this.createSegments();\n }\n\n traverseDataPoints(callback) {\n const series = this.options.series;\n const totalCategories = categoriesCount(series);\n const isVertical = !this.options.invertAxes;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n let total = 0;\n let runningTotal = 0;\n\n for (let categoryIx = 0; categoryIx < totalCategories; categoryIx++) {\n const data = SeriesBinder.current.bindPoint(currentSeries, categoryIx);\n const value = data.valueFields.value;\n const summary = data.fields.summary;\n let from = total;\n let to;\n\n if (summary) {\n if (summary.toLowerCase() === \"total\") {\n data.valueFields.value = total;\n from = 0;\n to = total;\n } else {\n data.valueFields.value = runningTotal;\n to = from - runningTotal;\n runningTotal = 0;\n }\n } else if (isNumber(value)) {\n runningTotal += value;\n total += value;\n to = total;\n }\n\n callback(data, {\n category: this.categoryAxis.categoryAt(categoryIx),\n categoryIx: categoryIx,\n series: currentSeries,\n seriesIx: seriesIx,\n total: total,\n runningTotal: runningTotal,\n from: from,\n to: to,\n isVertical: isVertical\n });\n }\n }\n }\n\n updateRange(value, fields) {\n super.updateRange({ value: fields.to }, fields);\n }\n\n aboveAxis(point) {\n return point.value >= 0;\n }\n\n plotRange(point) {\n return [ point.from, point.to ];\n }\n\n createSegments() {\n const series = this.options.series;\n const seriesPoints = this.seriesPoints;\n const segments = this.segments = [];\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const points = seriesPoints[seriesIx];\n\n if (points) {\n let prevPoint;\n for (let pointIx = 0; pointIx < points.length; pointIx++) {\n const point = points[pointIx];\n\n if (point && prevPoint) {\n const segment = new WaterfallSegment(prevPoint, point, currentSeries);\n segments.push(segment);\n this.append(segment);\n }\n\n prevPoint = point;\n }\n }\n }\n }\n}\n\nexport default WaterfallChart;","function trendlineFactory(registry, type, context) {\n const impl = registry[String(type)];\n if (impl) {\n return impl(context);\n }\n\n return null;\n}\n\nexport default trendlineFactory;\n","// Optimized version of calculatePolynomial for order = 1\nfunction calculateSlope(sourceValues, valueGetter) {\n let x = 0;\n let y = 0;\n let x2 = 0;\n let xy = 0;\n let count = 0;\n let slope, intercept;\n let xMin = Number.MAX_VALUE;\n let xMax = Number.MIN_VALUE;\n\n for (let i = 0; i < sourceValues.length; i++) {\n const value = sourceValues[i];\n const { xValue, yValue } = valueGetter(value);\n\n if (isFinite(xValue) && xValue !== null && isFinite(yValue) && yValue !== null) {\n xMin = Math.min(xValue, xMin);\n xMax = Math.max(xValue, xMax);\n\n count++;\n x += xValue;\n y += yValue;\n x2 += Math.pow(xValue, 2);\n xy += xValue * yValue;\n }\n }\n\n if (count > 0) {\n slope = (count * xy - x * y) / (count * x2 - Math.pow(x, 2));\n intercept = (y - slope * x) / count;\n }\n\n return { slope, intercept, count, xMin, xMax };\n}\n\nexport default calculateSlope;\n","import { hasValue } from '../utils';\n\nconst checkAllPositive = (sourceValues, fieldName) =>\n sourceValues.every(({ valueFields }) => !hasValue(valueFields[fieldName]) || valueFields[fieldName] > 0);\n\nexport default checkAllPositive;\n","function getTrendlineData(valueMapper, categoryAxis) {\n const data = [];\n const totalRange = categoryAxis.totalRangeIndices();\n const currentRange = categoryAxis.currentRangeIndices();\n const range = {\n min: Math.floor(Math.max(currentRange.min - 1, totalRange.min)),\n max: Math.ceil(Math.min(currentRange.max + 2, totalRange.max))\n };\n\n for (let i = range.min; i < range.max; i++) {\n const x = (i + 1);\n data[i] = {\n category: categoryAxis.categoryAt(i, true),\n value: valueMapper(x)\n };\n }\n\n return data;\n}\n\nexport default getTrendlineData;\n","import { MIN_MOVING_AVERAGE_PERIOD } from '../constants';\n\nfunction calculateMovingAverage(sourceValues, valueGetter, period) {\n const averagePoints = [];\n const values = [];\n const start = Math.max(MIN_MOVING_AVERAGE_PERIOD, period) - 1;\n\n let end = 0;\n let sum = 0;\n\n for (let i = 0; i < sourceValues.length; i++) {\n const value = sourceValues[i];\n const { xValue, yValue } = valueGetter(value);\n\n if (isFinite(yValue) && yValue !== null) {\n values.push(yValue);\n sum += yValue;\n end = Math.max(i, end);\n } else {\n values.push(null);\n }\n\n if (i >= start) {\n const count = values.filter(value => value !== null).length;\n const lastValue = values.shift() || 0;\n\n if (count > 0) {\n const average = sum / count;\n averagePoints.push([xValue, average]);\n\n sum -= lastValue;\n continue;\n }\n }\n\n averagePoints.push([xValue, null]);\n }\n\n return averagePoints.slice(0, end + 1);\n}\n\nexport default calculateMovingAverage;\n","import { Matrix } from '../../common';\n\nconst MIN_ORDER = 1;\nconst MAX_ORDER = 6;\n\nfunction calculatePolynomial(sourceValues, valueGetter, order) {\n let k = Math.min(Math.max(order || MIN_ORDER, MIN_ORDER), MAX_ORDER) + 1;\n let X = new Matrix();\n let Y = new Matrix();\n let count = 0;\n let xMin = Number.MAX_VALUE;\n let xMax = Number.MIN_VALUE;\n let valueMapper = x => x;\n let coefficients = [];\n\n for (let i = 0; i < sourceValues.length; i++) {\n const value = sourceValues[i];\n let { xValue, yValue } = valueGetter(value);\n\n if (isFinite(xValue) && xValue !== null && isFinite(yValue) && yValue !== null) {\n xMin = Math.min(xValue, xMin);\n xMax = Math.max(xValue, xMax);\n count++;\n\n // Set Y value in matrix\n Y.set(i, 0, yValue);\n\n // Set indicator column to 1 for valid values\n X.set(i, 0, 1);\n X.set(i, 1, xValue);\n for (let pow = 2; pow <= k; pow++) {\n X.set(i, pow, Math.pow(X.get(i, 1), pow));\n }\n } else {\n // Set indicator column to 0 for missing values\n X.set(i, 0, 0);\n }\n }\n\n // Limit order to number of values.\n X.width = Math.min(k, count);\n\n if (count > 0) {\n // Polynomial trendline equation:\n // y = aN * x^N + ... + a2 * x^2 + a1 * x + a0\n coefficients = linearRegression(X, Y);\n valueMapper = x => coefficients.reduce((y, a, n) => y + a * Math.pow(x, n), 0);\n }\n\n return {\n coefficients,\n count,\n valueMapper,\n xMin,\n xMax\n };\n}\n\nfunction linearRegression(X, Y) {\n const Xt = X.transpose();\n const B = Xt.multiply(X).inverse().multiply(Xt).multiply(Y); // the last square estimate of the coefficients\n\n const coefficients = [];\n for (let i = 0; i < B.height; i++) {\n coefficients.push(B.get(i, 0));\n }\n\n // y_intercept and regression coefficients ('slopes')\n return coefficients;\n\n // It's possible to calculate statistics for the regression based on\n // the LINEST function implementation in kendo-spreadsheet-common/src/calc.js\n //\n // * The standard errors (of coefficients and y-intercept)\n // * The coefficient of determination (R^2)\n // * The standard error for the y estimate\n // * The F statistic\n // * The degrees of freedom\n // * The regression sum of squares (SSR)\n // * The residual sum of squares (SSE)\n}\n\nexport default calculatePolynomial;\n","import {\n TRENDLINE_EXPONENTIAL,\n TRENDLINE_LINEAR,\n TRENDLINE_LOGARITHMIC,\n TRENDLINE_MOVING_AVERAGE,\n TRENDLINE_POLYNOMIAL,\n TRENDLINE_POWER\n} from '../constants';\nimport exponentialTrendline from './exponential-trendline';\nimport linearTrendline from './linear-trendline';\nimport logarithmicTrendline from './logarithmic-trendline';\nimport movingAverageTrendline from './moving-average';\nimport polynomialTrendline from './polynomial-trendline';\nimport powerTrendline from './power-trendline';\n\nconst registry = {};\nregistry[TRENDLINE_EXPONENTIAL] = exponentialTrendline;\nregistry[TRENDLINE_LINEAR] = linearTrendline;\nregistry[TRENDLINE_LOGARITHMIC] = logarithmicTrendline;\nregistry[TRENDLINE_MOVING_AVERAGE] = movingAverageTrendline;\nregistry[TRENDLINE_POLYNOMIAL] = polynomialTrendline;\nregistry[TRENDLINE_POWER] = powerTrendline;\n\nexport default registry;\n","import calculateSlope from './calculate-slope';\nimport checkAllPositive from './check-all-positive';\nimport getTrendlineData from './get-trendline-data';\n\nfunction exponentialTrendline(context) {\n const {\n options,\n categoryAxis,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, categoryAxis, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'line',\n data,\n categoryField: 'category',\n field: 'value'});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ categoryIx, valueFields }) =>\n ({ xValue: categoryIx + 1, yValue: Math.log(valueFields[fieldName]) });\n\nfunction getData({ seriesValues, categoryAxis, options }) {\n const sourceValues = seriesValues();\n if (!checkAllPositive(sourceValues, options.field)) {\n return null;\n }\n\n let { slope, intercept, count } = calculateSlope(sourceValues, valueGetter(options.field));\n if (count > 0) {\n // Exponential trendline equation:\n // y = a * e ^ (b * x)\n const a = Math.exp(intercept);\n const b = slope;\n\n return getTrendlineData(x => a * Math.exp(b * x), categoryAxis);\n }\n\n return null;\n}\n\nexport default exponentialTrendline;\n","import calculateSlope from './calculate-slope';\nimport getTrendlineData from './get-trendline-data';\n\nfunction linearTrendline(context) {\n const {\n options,\n categoryAxis,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, categoryAxis, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'line',\n data,\n categoryField: 'category',\n field: 'value'});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ categoryIx, valueFields }) =>\n ({ xValue: categoryIx + 1, yValue: valueFields[fieldName] });\n\nfunction getData({ seriesValues, categoryAxis, options }) {\n const { slope, intercept, count } = calculateSlope(seriesValues(), valueGetter(options.field));\n\n if (count > 0) {\n return getTrendlineData(x => slope * x + intercept, categoryAxis);\n }\n\n return null;\n}\n\nexport default linearTrendline;\n","import calculateSlope from './calculate-slope';\nimport getTrendlineData from './get-trendline-data';\n\nfunction logarithmicTrendline(context) {\n const {\n options,\n categoryAxis,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, categoryAxis, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'line',\n data,\n categoryField: 'category',\n field: 'value'});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ categoryIx, valueFields }) =>\n ({ xValue: Math.log(categoryIx + 1), yValue: valueFields[fieldName] });\n\nfunction getData({ seriesValues, categoryAxis, options }) {\n let { slope, intercept, count } = calculateSlope(seriesValues(), valueGetter(options.field));\n if (count > 0) {\n // Logarithmic trendline equation:\n // y = a * ln (x) + b\n const a = slope;\n const b = intercept;\n return getTrendlineData(x => a * Math.log(x) + b, categoryAxis);\n }\n\n return null;\n}\n\nexport default logarithmicTrendline;\n","import { MIN_MOVING_AVERAGE_PERIOD } from '../constants';\nimport calculateMovingAverage from './calculate-moving-average';\n\nfunction movingAverageTrendline(context) {\n const { options } = context;\n\n const data = getData(context);\n if (data) {\n return Object.assign({}, options,\n\n {type: 'line',\n data,\n categoryField: 'category',\n field: 'value'});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ categoryIx, valueFields }) =>\n ({ xValue: categoryIx, yValue: valueFields[fieldName] });\n\nfunction calculatePoints({ options, categoryAxis, seriesValues }) {\n const period = (options.trendline || {}).period || MIN_MOVING_AVERAGE_PERIOD;\n const totalRange = categoryAxis.totalRangeIndices();\n const currentRange = categoryAxis.currentRangeIndices();\n const range = {\n min: Math.floor(Math.max(currentRange.min - period, totalRange.min)),\n max: Math.ceil(Math.min(currentRange.max + period + 2, totalRange.max))\n };\n\n return calculateMovingAverage(seriesValues(range), valueGetter(options.field), period);\n}\n\nfunction getData(context) {\n const { categoryAxis } = context;\n const points = calculatePoints(context);\n const data = [];\n points.forEach(([categoryIx, value]) => {\n data[categoryIx] = {\n category: categoryAxis.categoryAt(categoryIx, true),\n value\n };\n });\n\n if (data.length > 0) {\n return data;\n }\n\n return null;\n}\n\nexport default movingAverageTrendline;\n","import getTrendlineData from './get-trendline-data';\nimport calculatePolynomial from './calculate-polynomial';\n\nfunction polynomialTrendline(context) {\n const {\n options,\n categoryAxis,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, categoryAxis, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'line',\n data,\n categoryField: 'category',\n field: 'value'});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ categoryIx, valueFields }) =>\n ({ xValue: categoryIx + 1, yValue: valueFields[fieldName] });\n\nfunction getData({ seriesValues, categoryAxis, options }) {\n const order = (options.trendline || {}).order;\n const { count, valueMapper } = calculatePolynomial(seriesValues(), valueGetter(options.field), order);\n\n if (count > 0) {\n // Polynomial trendline equation:\n // y = aN * x^N + ... + a2 * x^2 + a1 * x + a0\n\n return getTrendlineData(x => valueMapper(x), categoryAxis);\n }\n\n return null;\n}\n\nexport default polynomialTrendline;\n","import calculateSlope from './calculate-slope';\nimport checkAllPositive from './check-all-positive';\nimport getTrendlineData from './get-trendline-data';\n\nfunction powerTrendline(context) {\n const {\n options,\n categoryAxis,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, categoryAxis, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'line',\n data,\n categoryField: 'category',\n field: 'value'});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ categoryIx, valueFields }) =>\n ({ xValue: Math.log(categoryIx + 1), yValue: Math.log(valueFields[fieldName]) });\n\nfunction getData({ seriesValues, categoryAxis, options }) {\n const sourceValues = seriesValues();\n if (!checkAllPositive(sourceValues, options.field)) {\n return null;\n }\n\n let { slope, intercept, count } = calculateSlope(sourceValues, valueGetter(options.field));\n if (count > 0) {\n // Power trendline equation:\n // y = a * x ^ b\n const a = Math.exp(intercept);\n const b = slope;\n\n return getTrendlineData(x => a * Math.pow(x, b), categoryAxis);\n }\n\n return null;\n}\n\nexport default powerTrendline;\n","import PlotAreaBase from './plotarea-base';\nimport AxisGroupRangeTracker from '../axis-group-range-tracker';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\nimport SeriesAggregator from '../aggregates/series-aggregator';\nimport DefaultAggregates from '../aggregates/default-aggregates';\nimport SeriesBinder from '../series-binder';\nimport BarChart from '../bar-chart/bar-chart';\nimport RangeBarChart from '../range-bar-chart/range-bar-chart';\nimport BulletChart from '../bullet-chart/bullet-chart';\nimport LineChart from '../line-chart/line-chart';\nimport AreaChart from '../area-chart/area-chart';\nimport RangeAreaChart from '../range-area-chart/range-area-chart';\nimport OHLCChart from '../ohlc-chart/ohlc-chart';\nimport CandlestickChart from '../candlestick-chart/candlestick-chart';\nimport BoxPlotChart from '../box-plot-chart/box-plot-chart';\nimport WaterfallChart from '../waterfall-chart/waterfall-chart';\nimport trendlineFactory from '../trendlines/trendline-factory';\nimport trendlineRegistry from '../trendlines/trendline-registry';\n\nimport { CategoryAxis, DateCategoryAxis, NumericAxis, LogarithmicAxis, Point } from '../../core';\n\nimport { appendIfNotNull, categoriesCount, createOutOfRangePoints, equalsIgnoreCase, filterSeriesByType,\n isDateAxis, parseDateCategory, singleItemOrArray } from '../utils';\n\nimport { BAR, COLUMN, BULLET, VERTICAL_BULLET, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA,\n RANGE_AREA, VERTICAL_RANGE_AREA, RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL,\n BOX_PLOT, VERTICAL_BOX_PLOT, OHLC, CANDLESTICK, LOGARITHMIC, STEP, EQUALLY_SPACED_SERIES, RADAR_LINE, RADAR_AREA } from '../constants';\n\nimport { DATE, MAX_VALUE } from '../../common/constants';\nimport { setDefaultOptions, inArray, deepExtend, defined, eventElement, grep, cycleIndex, hasOwnProperty } from '../../common';\n\nconst AREA_SERIES = [ AREA, VERTICAL_AREA, RANGE_AREA, VERTICAL_RANGE_AREA ];\nconst OUT_OF_RANGE_SERIES = [ LINE, VERTICAL_LINE ].concat(AREA_SERIES);\n\nclass CategoricalPlotArea extends PlotAreaBase {\n\n initFields(series) {\n this.namedCategoryAxes = {};\n this.namedValueAxes = {};\n this.valueAxisRangeTracker = new AxisGroupRangeTracker();\n this._seriesPointsCache = {};\n this._currentPointsCache = {};\n\n if (series.length > 0) {\n this.invertAxes = inArray(\n series[0].type, [ BAR, BULLET, VERTICAL_LINE, VERTICAL_AREA, VERTICAL_RANGE_AREA,\n RANGE_BAR, HORIZONTAL_WATERFALL, VERTICAL_BOX_PLOT ]\n );\n\n for (let i = 0; i < series.length; i++) {\n const stack = series[i].stack;\n if (stack && stack.type === \"100%\") {\n this.stack100 = true;\n break;\n }\n }\n }\n }\n\n render(panes = this.panes) {\n this.series = [...this.originalSeries];\n this.createCategoryAxes(panes);\n\n this.aggregateCategories(panes);\n this.createTrendlineSeries(panes);\n\n this.createCategoryAxesLabels(panes);\n this.createCharts(panes);\n this.createValueAxes(panes);\n }\n\n removeAxis(axis) {\n const axisName = axis.options.name;\n\n super.removeAxis(axis);\n\n if (axis instanceof CategoryAxis) {\n delete this.namedCategoryAxes[axisName];\n } else {\n this.valueAxisRangeTracker.reset(axisName);\n delete this.namedValueAxes[axisName];\n }\n\n if (axis === this.categoryAxis) {\n delete this.categoryAxis;\n }\n\n if (axis === this.valueAxis) {\n delete this.valueAxis;\n }\n }\n\n trendlineFactory(options, series) {\n const categoryAxis = this.seriesCategoryAxis(options);\n const seriesValues = this.seriesValues.bind(this, series.index);\n\n const trendline = trendlineFactory(trendlineRegistry, options.type, {\n options,\n categoryAxis,\n seriesValues\n });\n\n if (trendline) {\n // Inherit settings\n trendline.categoryAxis = series.categoryAxis;\n trendline.valueAxis = series.valueAxis;\n\n return this.filterSeries(trendline, categoryAxis);\n }\n\n return trendline;\n }\n\n trendlineAggregateForecast() {\n return this.series\n .map(series => (series.trendline || {}).forecast)\n .filter(forecast => forecast !== undefined)\n .reduce((result, forecast) => ({\n before: Math.max(result.before, forecast.before || 0),\n after: Math.max(result.after, forecast.after || 0)\n }), { before: 0, after: 0 });\n }\n\n seriesValues(seriesIx, range) {\n const result = [];\n\n let series = this.srcSeries[seriesIx];\n const categoryAxis = this.seriesCategoryAxis(series);\n const dateAxis = equalsIgnoreCase(categoryAxis.options.type, DATE);\n if (dateAxis) {\n this._seriesPointsCache = {};\n this._currentPointsCache = {};\n categoryAxis.options.dataItems = [];\n series = this.aggregateSeries(series, categoryAxis, categoryAxis.totalRangeIndices());\n }\n\n const min = range ? range.min : 0;\n const max = range ? range.max : series.data.length;\n for (let categoryIx = min; categoryIx < max; categoryIx++) {\n const data = this.bindPoint(series, categoryIx);\n result.push({ categoryIx, category: data.fields.category, valueFields: data.valueFields });\n }\n\n return result;\n }\n\n createCharts(panes) {\n const seriesByPane = this.groupSeriesByPane();\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n const paneSeries = seriesByPane[pane.options.name || \"default\"] || [];\n this.addToLegend(paneSeries);\n\n const visibleSeries = this.filterVisibleSeries(paneSeries);\n if (!visibleSeries) {\n continue;\n }\n\n const groups = this.groupSeriesByCategoryAxis(visibleSeries);\n for (let groupIx = 0; groupIx < groups.length; groupIx++) {\n this.createChartGroup(groups[groupIx], pane);\n }\n }\n }\n\n createChartGroup(series, pane) {\n this.createAreaChart(\n filterSeriesByType(series, [ AREA, VERTICAL_AREA ]), pane\n );\n\n this.createRangeAreaChart(\n filterSeriesByType(series, [ RANGE_AREA, VERTICAL_RANGE_AREA ]), pane\n );\n\n this.createBarChart(\n filterSeriesByType(series, [ COLUMN, BAR ]), pane\n );\n\n this.createRangeBarChart(\n filterSeriesByType(series, [ RANGE_COLUMN, RANGE_BAR ]), pane\n );\n\n this.createBulletChart(\n filterSeriesByType(series, [ BULLET, VERTICAL_BULLET ]), pane\n );\n\n this.createCandlestickChart(\n filterSeriesByType(series, CANDLESTICK), pane\n );\n\n this.createBoxPlotChart(\n filterSeriesByType(series, [ BOX_PLOT, VERTICAL_BOX_PLOT ]), pane\n );\n\n this.createOHLCChart(\n filterSeriesByType(series, OHLC), pane\n );\n\n this.createWaterfallChart(\n filterSeriesByType(series, [ WATERFALL, HORIZONTAL_WATERFALL ]), pane\n );\n\n this.createLineChart(\n filterSeriesByType(series, [ LINE, VERTICAL_LINE ]), pane\n );\n }\n\n aggregateCategories(panes) {\n const series = [...this.series];\n const processedSeries = [];\n this._currentPointsCache = {};\n this._seriesPointsCache = this._seriesPointsCache || {};\n\n for (let i = 0; i < series.length; i++) {\n let currentSeries = series[i];\n\n if (!this.isTrendline(currentSeries)) {\n const categoryAxis = this.seriesCategoryAxis(currentSeries);\n const axisPane = this.findPane(categoryAxis.options.pane);\n const dateAxis = equalsIgnoreCase(categoryAxis.options.type, DATE);\n\n if ((dateAxis || currentSeries.categoryField) && inArray(axisPane, panes)) {\n currentSeries = this.aggregateSeries(currentSeries, categoryAxis, categoryAxis.currentRangeIndices());\n } else {\n currentSeries = this.filterSeries(currentSeries, categoryAxis);\n }\n }\n\n processedSeries.push(currentSeries);\n }\n\n this._seriesPointsCache = this._currentPointsCache;\n this._currentPointsCache = null;\n\n this.srcSeries = series;\n this.series = processedSeries;\n }\n\n filterSeries(series, categoryAxis) {\n const dataLength = (series.data || {}).length;\n categoryAxis._seriesMax = Math.max(categoryAxis._seriesMax || 0, dataLength);\n\n if (!(defined(categoryAxis.options.min) || defined(categoryAxis.options.max))) {\n return series;\n }\n\n const range = categoryAxis.currentRangeIndices();\n const outOfRangePoints = inArray(series.type, OUT_OF_RANGE_SERIES);\n const currentSeries = deepExtend({}, series);\n\n currentSeries.data = (currentSeries.data || []).slice(range.min, range.max + 1);\n\n if (outOfRangePoints) {\n createOutOfRangePoints(currentSeries, range, dataLength, (idx) => ({\n item: series.data[idx],\n category: categoryAxis.categoryAt(idx, true),\n categoryIx: idx - range.min\n }), (idx) => defined(series.data[idx]));\n }\n\n return currentSeries;\n }\n\n clearSeriesPointsCache() {\n this._seriesPointsCache = {};\n }\n\n seriesSourcePoints(series, categoryAxis) {\n const key = `${ series.index };${ categoryAxis.categoriesHash() }`;\n if (this._seriesPointsCache && this._seriesPointsCache[key]) {\n this._currentPointsCache[key] = this._seriesPointsCache[key];\n return this._seriesPointsCache[key];\n }\n\n const axisOptions = categoryAxis.options;\n const srcCategories = axisOptions.srcCategories;\n const dateAxis = equalsIgnoreCase(axisOptions.type, DATE);\n const srcData = series.data;\n const result = [];\n if (!dateAxis) {\n categoryAxis.indexCategories();\n }\n\n for (let idx = 0; idx < srcData.length; idx++) {\n let category = SeriesBinder.current.bindPoint(series, idx).fields.category;\n if (dateAxis) {\n category = parseDateCategory(category, srcData[idx], this.chartService.intl);\n }\n\n if (!defined(category)) {\n category = srcCategories[idx];\n }\n\n if (defined(category) && category !== null) {\n const categoryIx = categoryAxis.totalIndex(category);\n result[categoryIx] = result[categoryIx] || { items: [], category: category };\n result[categoryIx].items.push(idx);\n }\n }\n\n this._currentPointsCache[key] = result;\n\n return result;\n }\n\n aggregateSeries(series, categoryAxis, range) {\n const srcData = series.data;\n if (!srcData.length) {\n return series;\n }\n\n const srcPoints = this.seriesSourcePoints(series, categoryAxis);\n const result = deepExtend({}, series);\n const aggregator = new SeriesAggregator(deepExtend({}, series), SeriesBinder.current, DefaultAggregates.current);\n const data = result.data = [];\n\n const dataItems = categoryAxis.options.dataItems || [];\n\n const categoryItem = (idx) => {\n const categoryIdx = idx - range.min;\n let point = srcPoints[idx];\n if (!point) {\n point = srcPoints[idx] = {};\n }\n\n point.categoryIx = categoryIdx;\n\n if (!point.item) {\n const category = categoryAxis.categoryAt(idx, true);\n point.category = category;\n point.item = aggregator.aggregatePoints(point.items, category);\n }\n\n return point;\n };\n\n for (let idx = range.min; idx <= range.max; idx++) {\n const point = categoryItem(idx);\n data[point.categoryIx] = point.item;\n\n if (point.items && point.items.length) {\n dataItems[point.categoryIx] = point.item;\n }\n }\n\n if (inArray(result.type, OUT_OF_RANGE_SERIES)) {\n createOutOfRangePoints(result, range, categoryAxis.totalCount(), categoryItem, (idx) => srcPoints[idx]);\n }\n\n categoryAxis.options.dataItems = dataItems;\n\n return result;\n }\n\n appendChart(chart, pane) {\n const series = chart.options.series;\n const categoryAxis = this.seriesCategoryAxis(series[0]);\n let categories = categoryAxis.options.categories;\n let categoriesToAdd = Math.max(0, categoriesCount(series) - categories.length);\n\n if (categoriesToAdd > 0) {//consider setting an option to axis instead of adding fake categories\n categories = categoryAxis.options.categories = categoryAxis.options.categories.slice(0);\n while (categoriesToAdd--) {\n categories.push(\"\");\n }\n }\n\n this.valueAxisRangeTracker.update(chart.valueAxisRanges);\n\n super.appendChart(chart, pane);\n }\n\n // TODO: Refactor, optionally use series.pane option\n seriesPaneName(series) {\n const options = this.options;\n const axisName = series.axis;\n const axisOptions = [].concat(options.valueAxis);\n const axis = grep(axisOptions, function(a) { return a.name === axisName; })[0];\n const panes = options.panes || [ {} ];\n const defaultPaneName = (panes[0] || {}).name || \"default\";\n const paneName = (axis || {}).pane || defaultPaneName;\n\n return paneName;\n }\n\n seriesCategoryAxis(series) {\n const axisName = series.categoryAxis;\n const axis = axisName ? this.namedCategoryAxes[axisName] : this.categoryAxis;\n\n if (!axis) {\n throw new Error(\"Unable to locate category axis with name \" + axisName);\n }\n\n return axis;\n }\n\n stackableChartOptions(series, pane) {\n const anyStackedSeries = series.some(s => s.stack);\n const isStacked100 = series.some(s => s.stack && s.stack.type === \"100%\");\n const clip = pane.options.clip;\n\n return {\n defaultStack: series[0].stack,\n isStacked: anyStackedSeries,\n isStacked100: isStacked100,\n clip: clip\n };\n }\n\n groupSeriesByCategoryAxis(series) {\n const categoryAxes = [];\n const unique = {};\n for (let idx = 0; idx < series.length; idx++) {\n const name = series[idx].categoryAxis || \"$$default$$\";\n if (!hasOwnProperty(unique, name)) {\n unique[name] = true;\n categoryAxes.push(name);\n }\n }\n\n const groups = [];\n for (let axisIx = 0; axisIx < categoryAxes.length; axisIx++) {\n const axis = categoryAxes[axisIx];\n const axisSeries = groupSeries(series, axis, axisIx);\n if (axisSeries.length === 0) {\n continue;\n }\n\n groups.push(axisSeries);\n }\n\n return groups;\n }\n\n createBarChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const barChart = new BarChart(this, Object.assign({\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing\n }, this.stackableChartOptions(series, pane)));\n\n this.appendChart(barChart, pane);\n }\n\n createRangeBarChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const rangeColumnChart = new RangeBarChart(this, {\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing\n });\n\n this.appendChart(rangeColumnChart, pane);\n }\n\n createBulletChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const bulletChart = new BulletChart(this, {\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(bulletChart, pane);\n }\n\n createLineChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const lineChart = new LineChart(this, Object.assign({\n invertAxes: this.invertAxes,\n series: series\n }, this.stackableChartOptions(series, pane)));\n\n this.appendChart(lineChart, pane);\n }\n\n createAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const areaChart = new AreaChart(this, Object.assign({\n invertAxes: this.invertAxes,\n series: series\n }, this.stackableChartOptions(series, pane)));\n\n this.appendChart(areaChart, pane);\n }\n\n createRangeAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const rangeAreaChart = new RangeAreaChart(this, {\n invertAxes: this.invertAxes,\n series: series,\n clip: pane.options.clip\n });\n\n this.appendChart(rangeAreaChart, pane);\n }\n\n createOHLCChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const chart = new OHLCChart(this, {\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n series: series,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(chart, pane);\n }\n\n createCandlestickChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const chart = new CandlestickChart(this, {\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n series: series,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(chart, pane);\n }\n\n createBoxPlotChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const chart = new BoxPlotChart(this, {\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n series: series,\n spacing: firstSeries.spacing,\n clip: pane.options.clip\n });\n\n this.appendChart(chart, pane);\n }\n\n createWaterfallChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const waterfallChart = new WaterfallChart(this, {\n series: series,\n invertAxes: this.invertAxes,\n gap: firstSeries.gap,\n spacing: firstSeries.spacing\n });\n\n this.appendChart(waterfallChart, pane);\n }\n\n axisRequiresRounding(categoryAxisName, categoryAxisIndex) {\n const centeredSeries = filterSeriesByType(this.series, EQUALLY_SPACED_SERIES);\n\n for (let seriesIx = 0; seriesIx < this.series.length; seriesIx++) {\n const currentSeries = this.series[seriesIx];\n if (inArray(currentSeries.type, AREA_SERIES)) {\n const line = currentSeries.line;\n if (line && line.style === STEP) {\n centeredSeries.push(currentSeries);\n }\n }\n }\n\n for (let seriesIx = 0; seriesIx < centeredSeries.length; seriesIx++) {\n const seriesAxis = centeredSeries[seriesIx].categoryAxis || \"\";\n if (seriesAxis === categoryAxisName || (!seriesAxis && categoryAxisIndex === 0)) {\n return true;\n }\n }\n }\n\n aggregatedAxis(categoryAxisName, categoryAxisIndex) {\n const series = this.series;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const seriesAxis = series[seriesIx].categoryAxis || \"\";\n if ((seriesAxis === categoryAxisName || (!seriesAxis && categoryAxisIndex === 0)) && series[seriesIx].categoryField) {\n return true;\n }\n }\n }\n\n createCategoryAxesLabels() {\n const axes = this.axes;\n for (let i = 0; i < axes.length; i++) {\n if (axes[i] instanceof CategoryAxis) {\n axes[i].createLabels();\n }\n }\n }\n\n createCategoryAxes(panes) {\n const invertAxes = this.invertAxes;\n const definitions = [].concat(this.options.categoryAxis);\n const axes = [];\n\n for (let i = 0; i < definitions.length; i++) {\n let axisOptions = definitions[i];\n const axisPane = this.findPane(axisOptions.pane);\n\n if (inArray(axisPane, panes)) {\n const { name, categories = [] } = axisOptions;\n axisOptions = deepExtend({\n vertical: invertAxes,\n reverse: !invertAxes && this.chartService.rtl,\n axisCrossingValue: invertAxes ? MAX_VALUE : 0\n }, axisOptions);\n\n if (!defined(axisOptions.justified)) {\n axisOptions.justified = this.isJustified();\n }\n\n if (this.axisRequiresRounding(name, i)) {\n axisOptions.justified = false;\n }\n\n let categoryAxis;\n\n if (isDateAxis(axisOptions, categories[0])) {\n axisOptions._forecast = this.trendlineAggregateForecast();\n categoryAxis = new DateCategoryAxis(axisOptions, this.chartService);\n } else {\n categoryAxis = new CategoryAxis(axisOptions, this.chartService);\n }\n\n definitions[i].categories = categoryAxis.options.srcCategories;\n\n if (name) {\n if (this.namedCategoryAxes[name]) {\n throw new Error(`Category axis with name ${ name } is already defined`);\n }\n this.namedCategoryAxes[name] = categoryAxis;\n }\n\n categoryAxis.axisIndex = i;\n axes.push(categoryAxis);\n this.appendAxis(categoryAxis);\n }\n }\n\n const primaryAxis = this.categoryAxis || axes[0];\n this.categoryAxis = primaryAxis;\n\n if (invertAxes) {\n this.axisY = primaryAxis;\n } else {\n this.axisX = primaryAxis;\n }\n }\n\n isJustified() {\n const series = this.series;\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n if (!inArray(currentSeries.type, AREA_SERIES)) {\n return false;\n }\n }\n\n return true;\n }\n\n createValueAxes(panes) {\n const tracker = this.valueAxisRangeTracker;\n const defaultRange = tracker.query();\n const definitions = [].concat(this.options.valueAxis);\n const invertAxes = this.invertAxes;\n const baseOptions = { vertical: !invertAxes, reverse: invertAxes && this.chartService.rtl };\n const axes = [];\n\n if (this.stack100) {\n baseOptions.roundToMajorUnit = false;\n baseOptions.labels = { format: \"P0\" };\n }\n\n for (let i = 0; i < definitions.length; i++) {\n const axisOptions = definitions[i];\n const axisPane = this.findPane(axisOptions.pane);\n\n if (inArray(axisPane, panes)) {\n const name = axisOptions.name;\n const defaultAxisRange = equalsIgnoreCase(axisOptions.type, LOGARITHMIC) ? { min: 0.1, max: 1 } : { min: 0, max: 1 };\n const range = tracker.query(name) || defaultRange || defaultAxisRange;\n\n if (i === 0 && range && defaultRange) {\n range.min = Math.min(range.min, defaultRange.min);\n range.max = Math.max(range.max, defaultRange.max);\n }\n\n let axisType;\n if (equalsIgnoreCase(axisOptions.type, LOGARITHMIC)) {\n axisType = LogarithmicAxis;\n } else {\n axisType = NumericAxis;\n }\n\n const valueAxis = new axisType(range.min, range.max,\n deepExtend({}, baseOptions, axisOptions),\n this.chartService\n );\n\n if (name) {\n if (this.namedValueAxes[name]) {\n throw new Error(`Value axis with name ${ name } is already defined`);\n }\n this.namedValueAxes[name] = valueAxis;\n }\n valueAxis.axisIndex = i;\n\n axes.push(valueAxis);\n this.appendAxis(valueAxis);\n }\n }\n\n const primaryAxis = this.valueAxis || axes[0];\n this.valueAxis = primaryAxis;\n\n if (invertAxes) {\n this.axisX = primaryAxis;\n } else {\n this.axisY = primaryAxis;\n }\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const pane = this.pointPane(point);\n const categories = [];\n const values = [];\n\n if (!pane) {\n return;\n }\n\n const allAxes = pane.axes;\n for (let i = 0; i < allAxes.length; i++) {\n const axis = allAxes[i];\n if (axis.getValue) {\n appendIfNotNull(values, axis.getValue(point));\n } else {\n appendIfNotNull(categories, axis.getCategory(point));\n }\n }\n\n if (categories.length === 0) {\n appendIfNotNull(categories, this.categoryAxis.getCategory(point));\n }\n\n if (categories.length > 0 && values.length > 0) {\n chart.trigger(eventType, {\n element: eventElement(e),\n originalEvent: e,\n category: singleItemOrArray(categories),\n value: singleItemOrArray(values)\n });\n }\n }\n\n pointPane(point) {\n const panes = this.panes;\n\n for (let i = 0; i < panes.length; i++) {\n const currentPane = panes[i];\n if (currentPane.contentBox.containsPoint(point)) {\n return currentPane;\n }\n }\n }\n\n updateAxisOptions(axis, options) {\n updateAxisOptions(this.options, axis, options);\n updateAxisOptions(this.originalOptions, axis, options);\n }\n\n _pointsByVertical(basePoint, offset = 0) {\n if (this.invertAxes) {\n return this._siblingsBySeriesIndex(basePoint.series.index, offset);\n }\n\n return this._siblingsByPointIndex(basePoint.getIndex());\n }\n\n _pointsByHorizontal(basePoint, offset = 0) {\n if (this.invertAxes) {\n return this._siblingsByPointIndex(basePoint.getIndex());\n }\n\n const siblings = this._siblingsBySeriesIndex(basePoint.series.index, offset);\n\n if (this.chartService.rtl) {\n return siblings.reverse();\n }\n\n return siblings;\n }\n\n _siblingsByPointIndex(pointIndex) {\n const charts = this.charts;\n const result = [];\n\n for (let i = 0; i < charts.length; i++) {\n let chart = charts[i];\n\n if (chart.pane && chart.pane.options.name === \"_navigator\") {\n continue;\n }\n\n let chartPoints = chart.points\n .filter(point =>\n point && point.visible !== false && point.getIndex() === pointIndex\n );\n\n result.push(...chartPoints.sort(this._getSeriesCompareFn(chartPoints[0])));\n }\n\n return result;\n }\n\n _siblingsBySeriesIndex(seriesIndex, offset) {\n const index = cycleIndex(seriesIndex + offset, this.series.length);\n\n return this.pointsBySeriesIndex(index);\n }\n\n _getSeriesCompareFn(point) {\n const isStacked = this._isInStackedSeries(point);\n\n if (isStacked && this.invertAxes || !isStacked && !this.invertAxes) {\n return (a, b) => a.box.center().x - b.box.center().x;\n }\n\n return (a, b) => a.box.center().y - b.box.center().y;\n }\n\n _isInStackedSeries(point) {\n const sortableSeries = inArray(point.series.type,\n [ AREA, VERTICAL_AREA, RANGE_AREA, VERTICAL_RANGE_AREA, LINE, VERTICAL_LINE, RADAR_LINE, RADAR_AREA]);\n\n const stackableSeries = inArray(point.series.type, [ COLUMN, BAR]);\n\n return sortableSeries || stackableSeries && point.options.isStacked;\n }\n}\n\nfunction updateAxisOptions(targetOptions, axis, options) {\n const axesOptions = axis instanceof CategoryAxis ? [].concat(targetOptions.categoryAxis) : [].concat(targetOptions.valueAxis);\n deepExtend(axesOptions[axis.axisIndex], options);\n}\n\nfunction groupSeries(series, axis, axisIx) {\n return grep(series, function(s) {\n return (axisIx === 0 && !s.categoryAxis) || (s.categoryAxis === axis);\n });\n}\n\nsetDefaultOptions(CategoricalPlotArea, {\n categoryAxis: {},\n valueAxis: {}\n});\n\ndeepExtend(CategoricalPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default CategoricalPlotArea;\n","import { Class } from '../common';\n\nclass Highlight extends Class {\n constructor() {\n super();\n\n this._points = [];\n }\n\n destroy() {\n this._points = [];\n }\n\n show(points, opacity) {\n const arrayPoints = [].concat(points);\n this.hide();\n\n for (let i = 0; i < arrayPoints.length; i++) {\n const point = arrayPoints[i];\n if (point && point.toggleHighlight && point.hasHighlight()) {\n this.togglePointHighlight(point, true, opacity);\n this._points.push(point);\n }\n }\n }\n\n togglePointHighlight(point, show, opacity) {\n const toggleHandler = (point.options.highlight || {}).toggle;\n if (toggleHandler) {\n const eventArgs = {\n category: point.category,\n series: point.series,\n dataItem: point.dataItem,\n value: point.value,\n stackValue: point.stackValue,\n preventDefault: preventDefault,\n visual: point.highlightVisual(),\n show: show\n };\n toggleHandler(eventArgs);\n if (!eventArgs._defaultPrevented) {\n point.toggleHighlight(show, opacity);\n }\n } else {\n point.toggleHighlight(show, opacity);\n }\n }\n\n hide() {\n const points = this._points;\n while (points.length) {\n this.togglePointHighlight(points.pop(), false);\n }\n }\n\n isHighlighted(element) {\n const points = this._points;\n\n for (let i = 0; i < points.length; i++) {\n const point = points[i];\n if (element === point) {\n return true;\n }\n }\n\n return false;\n }\n}\n\nfunction preventDefault() {\n this._defaultPrevented = true;\n}\n\nexport default Highlight;\n","export default function acceptKey(e, mouseKey) {\n const key = (mouseKey || \"\").toLowerCase();\n const event = e.event;\n const accept = (key === \"none\" && !(event.ctrlKey || event.shiftKey || event.altKey)) || event[key + \"Key\"];\n\n return accept;\n}","export default function toChartAxisRanges(axisRanges) {\n const ranges = {};\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const axisRange = axisRanges[idx];\n if (axisRange.axis.options.name) {\n ranges[axisRange.axis.options.name] = {\n min: axisRange.range.min,\n max: axisRange.range.max\n };\n }\n }\n return ranges;\n}","import acceptKey from './accept-key';\nimport toChartAxisRanges from './to-chart-axis-ranges';\n\nimport { X, Y } from '../../common/constants';\nimport { Class, deepExtend } from '../../common';\n\nclass Pannable extends Class {\n constructor(plotArea, options) {\n super();\n\n this.plotArea = plotArea;\n this.options = deepExtend({}, this.options, options);\n }\n\n start(e) {\n this._active = acceptKey(e, this.options.key);\n return this._active;\n }\n\n move(e) {\n if (this._active) {\n const axisRanges = this.axisRanges = this._panAxes(e, X).concat(this._panAxes(e, Y));\n if (axisRanges.length) {\n this.axisRanges = axisRanges;\n return toChartAxisRanges(axisRanges);\n }\n }\n }\n\n end() {\n const active = this._active;\n this._active = false;\n\n return active;\n }\n\n pan() {\n const { plotArea, axisRanges } = this;\n if (axisRanges.length) {\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const range = axisRanges[idx];\n plotArea.updateAxisOptions(range.axis, range.range);\n }\n plotArea.redraw(plotArea.panes);\n }\n }\n\n destroy() {\n delete this.plotArea;\n }\n\n _panAxes(e, position) {\n const plotArea = this.plotArea;\n const delta = -e[position].delta;\n const lock = (this.options.lock || \"\").toLowerCase();\n const updatedAxes = [];\n\n if (delta !== 0 && (lock || \"\").toLowerCase() !== position) {\n const axes = plotArea.axes;\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n\n if (position === X && !axis.options.vertical || position === Y && axis.options.vertical) {\n const range = axis.pan(delta);\n\n if (range) {\n range.limitRange = true;\n updatedAxes.push({\n axis: axis,\n range: range\n });\n }\n }\n }\n }\n\n return updatedAxes;\n }\n}\n\nPannable.prototype.options = {\n key: \"none\",\n lock: \"none\"\n};\n\nexport default Pannable;","import acceptKey from './accept-key';\nimport toChartAxisRanges from './to-chart-axis-ranges';\n\nimport { X, Y } from '../../common/constants';\nimport { Class, deepExtend, elementStyles, elementOffset, defined } from '../../common';\n\nclass ZoomSelection extends Class {\n constructor(chart, options) {\n super();\n\n this.chart = chart;\n this.options = deepExtend({}, this.options, options);\n this.createElement();\n }\n\n createElement() {\n const marquee = this._marquee = document.createElement(\"div\");\n marquee.className = \"k-marquee\";\n const marqueeColor = document.createElement(\"div\");\n marqueeColor.className = \"k-marquee-color\";\n marquee.appendChild(marqueeColor);\n }\n\n removeElement() {\n if (this._marquee.parentNode) {\n this._marquee.parentNode.removeChild(this._marquee);\n }\n }\n\n setStyles(styles) {\n elementStyles(this._marquee, styles);\n }\n\n start(e) {\n if (acceptKey(e, this.options.key)) {\n const chart = this.chart;\n const point = chart._eventCoordinates(e);\n const zoomPane = this._zoomPane = chart._plotArea.paneByPoint(point);\n const clipBox = zoomPane ? zoomPane.chartsBox().clone() : null;\n\n if (zoomPane && clipBox) {\n const offset = this._elementOffset();\n\n clipBox.translate(offset.left, offset.top);\n this._zoomPaneClipBox = clipBox;\n\n document.body.appendChild(this._marquee);\n this.setStyles({\n left: e.pageX + 1,\n top: e.pageY + 1,\n width: 0,\n height: 0\n });\n\n return true;\n }\n }\n return false;\n }\n\n _elementOffset() {\n const chartElement = this.chart.element;\n const { paddingLeft, paddingTop } = elementStyles(chartElement, [ \"paddingLeft\", \"paddingTop\" ]);\n const offset = elementOffset(chartElement);\n\n return {\n left: paddingLeft + offset.left,\n top: paddingTop + offset.top\n };\n }\n\n move(e) {\n const zoomPane = this._zoomPane;\n if (zoomPane) {\n this.setStyles(this._selectionPosition(e));\n }\n }\n\n end(e) {\n const zoomPane = this._zoomPane;\n if (zoomPane) {\n const elementOffset = this._elementOffset();\n const selectionPosition = this._selectionPosition(e);\n selectionPosition.left -= elementOffset.left;\n selectionPosition.top -= elementOffset.top;\n\n const start = { x: selectionPosition.left, y: selectionPosition.top };\n const end = { x: selectionPosition.left + selectionPosition.width, y: selectionPosition.top + selectionPosition.height };\n this._updateAxisRanges(start, end);\n\n this.removeElement();\n delete this._zoomPane;\n\n return toChartAxisRanges(this.axisRanges);\n }\n }\n\n zoom() {\n const axisRanges = this.axisRanges;\n if (axisRanges && axisRanges.length) {\n const plotArea = this.chart._plotArea;\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const axisRange = axisRanges[idx];\n plotArea.updateAxisOptions(axisRange.axis, axisRange.range);\n }\n plotArea.redraw(plotArea.panes);\n }\n }\n\n destroy() {\n this.removeElement();\n delete this._marquee;\n delete this.chart;\n }\n\n _updateAxisRanges(start, end) {\n const lock = (this.options.lock || \"\").toLowerCase();\n const axisRanges = [];\n\n const axes = this._zoomPane.axes;\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n const vertical = axis.options.vertical;\n if (!(lock === X && !vertical) && !(lock === Y && vertical) && defined(axis.axisIndex)) {\n const range = axis.pointsRange(start, end);\n if (range) {\n axisRanges.push({\n axis: axis,\n range: range\n });\n }\n }\n }\n\n this.axisRanges = axisRanges;\n }\n\n _selectionPosition(e) {\n const clipBox = this._zoomPaneClipBox;\n const startLocation = {\n x: e.x.startLocation,\n y: e.y.startLocation\n };\n const { x: { location: pageX }, y: { location: pageY } } = e;\n const lock = (this.options.lock || \"\").toLowerCase();\n let left = Math.min(startLocation.x, pageX);\n let top = Math.min(startLocation.y, pageY);\n let width = Math.abs(startLocation.x - pageX);\n let height = Math.abs(startLocation.y - pageY);\n\n if (lock === X) {\n left = clipBox.x1;\n width = clipBox.width();\n }\n if (lock === Y) {\n top = clipBox.y1;\n height = clipBox.height();\n }\n\n if (pageX > clipBox.x2) {\n width = clipBox.x2 - startLocation.x;\n }\n\n if (pageX < clipBox.x1) {\n width = startLocation.x - clipBox.x1;\n }\n\n if (pageY > clipBox.y2) {\n height = clipBox.y2 - startLocation.y;\n }\n\n if (pageY < clipBox.y1) {\n height = startLocation.y - clipBox.y1;\n }\n\n return {\n left: Math.max(left, clipBox.x1),\n top: Math.max(top, clipBox.y1),\n width: width,\n height: height\n };\n }\n}\n\nZoomSelection.prototype.options = {\n key: \"shift\",\n lock: \"none\"\n};\n\nexport default ZoomSelection;","\nimport toChartAxisRanges from './to-chart-axis-ranges';\n\nimport { X, Y } from '../../common/constants';\nimport { Class, deepExtend } from '../../common';\nimport { limitValue } from '../../drawing-utils';\n\n// Limit the zoom rate between 1% and 90% per mousewheel event.\n// At zoom rates close to 100% the axis range quickly becomes 0.\nconst MIN_RATE = 0.01;\nconst MAX_RATE = 0.9;\nconst DEFAULT_RATE = 0.3;\n\nclass MousewheelZoom extends Class {\n constructor(chart, options) {\n super();\n\n this.chart = chart;\n this.options = deepExtend({\n rate: DEFAULT_RATE\n }, this.options, options);\n }\n\n updateRanges(delta, coords) {\n const lock = (this.options.lock || \"\").toLowerCase();\n const axisRanges = [];\n const axes = this.chart._plotArea.axes;\n\n for (let idx = 0; idx < axes.length; idx++) {\n const axis = axes[idx];\n const vertical = axis.options.vertical;\n\n if (!(lock === X && !vertical) && !(lock === Y && vertical) && axis.zoomRange) {\n const rate = limitValue(this.options.rate, MIN_RATE, MAX_RATE);\n const range = axis.zoomRange(-delta * rate, coords);\n\n if (range) {\n axisRanges.push({\n axis: axis,\n range: range\n });\n }\n }\n }\n\n this.axisRanges = axisRanges;\n return toChartAxisRanges(axisRanges);\n }\n\n zoom() {\n const axisRanges = this.axisRanges;\n const plotArea = this.chart._plotArea;\n\n if (axisRanges && axisRanges.length && plotArea.updateAxisOptions) {\n for (let idx = 0; idx < axisRanges.length; idx++) {\n const axisRange = axisRanges[idx];\n plotArea.updateAxisOptions(axisRange.axis, axisRange.range);\n }\n plotArea.redraw(plotArea.panes);\n }\n }\n\n destroy() {\n delete this.chart;\n }\n}\n\nexport default MousewheelZoom;\n","\nexport default function alignStart(size, rect, align, axis, sizeField) {\n let start;\n if (align === \"start\") {\n start = rect.origin[axis];\n } else if (align === \"end\") {\n start = rect.origin[axis] + rect.size[sizeField] - size;\n } else {\n start = rect.origin[axis] + (rect.size[sizeField] - size) / 2;\n }\n\n return start;\n}","\nexport default function alignStartReverse(size, rect, align, axis, sizeField) {\n let start;\n if (align === \"start\") {\n start = rect.origin[axis] + rect.size[sizeField] - size;\n } else if (align === \"end\") {\n start = rect.origin[axis];\n } else {\n start = rect.origin[axis] + (rect.size[sizeField] - size) / 2;\n }\n\n return start;\n}","import Group from './group';\nimport Size from '../geometry/size';\nimport Rect from '../geometry/rect';\nimport Point from '../geometry/point';\nimport createTransform from '../geometry/transform';\nimport translateToPoint from '../alignment/translate-to-point';\nimport alignStart from '../alignment/align-start';\nimport alignStartReverse from '../alignment/align-start-reverse';\n\nconst DEFAULT_OPTIONS = {\n alignContent: \"start\",\n justifyContent: \"start\",\n alignItems: \"start\",\n spacing: 0,\n orientation: \"horizontal\",\n lineSpacing: 0,\n wrap: true,\n revers: false\n};\n\nconst forEach = (elements, callback) => {\n elements.forEach(callback);\n};\n\nconst forEachReverse = (elements, callback) => {\n const length = elements.length;\n\n for (let idx = length - 1; idx >= 0; idx--) {\n callback(elements[idx], idx);\n }\n};\n\nclass Layout extends Group {\n\n constructor(rect, options) {\n super(Object.assign({}, DEFAULT_OPTIONS, options));\n this._rect = rect;\n this._fieldMap = {};\n }\n\n rect(value) {\n if (value) {\n this._rect = value;\n return this;\n }\n\n return this._rect;\n }\n\n _initMap() {\n const options = this.options;\n const fieldMap = this._fieldMap;\n if (options.orientation === \"horizontal\") {\n fieldMap.sizeField = \"width\";\n fieldMap.groupsSizeField = \"height\";\n fieldMap.groupAxis = \"x\";\n fieldMap.groupsAxis = \"y\";\n } else {\n fieldMap.sizeField = \"height\";\n fieldMap.groupsSizeField = \"width\";\n fieldMap.groupAxis = \"y\";\n fieldMap.groupsAxis = \"x\";\n }\n\n if (options.reverse) {\n this.forEach = forEachReverse;\n this.justifyAlign = alignStartReverse;\n } else {\n this.forEach = forEach;\n this.justifyAlign = alignStart;\n }\n }\n\n reflow() {\n if (!this._rect || this.children.length === 0) {\n return;\n }\n this._initMap();\n\n if (this.options.transform) {\n this.transform(null);\n }\n\n const options = this.options;\n const rect = this._rect;\n const { groups, groupsSize } = this._initGroups();\n const { sizeField, groupsSizeField, groupAxis, groupsAxis } = this._fieldMap;\n const groupOrigin = new Point();\n const elementOrigin = new Point();\n const size = new Size();\n let groupStart = alignStart(groupsSize, rect, options.alignContent, groupsAxis, groupsSizeField);\n let elementStart, group, groupBox;\n\n const arrangeElements = (bbox, idx) => {\n const element = group.elements[idx];\n\n elementOrigin[groupAxis] = elementStart;\n elementOrigin[groupsAxis] = alignStart(bbox.size[groupsSizeField], groupBox, options.alignItems, groupsAxis, groupsSizeField);\n translateToPoint(elementOrigin, bbox, element);\n elementStart += bbox.size[sizeField] + options.spacing;\n };\n\n for (let groupIdx = 0; groupIdx < groups.length; groupIdx++) {\n group = groups[groupIdx];\n groupOrigin[groupAxis] = elementStart = this.justifyAlign(group.size, rect, options.justifyContent, groupAxis, sizeField);\n groupOrigin[groupsAxis] = groupStart;\n size[sizeField] = group.size;\n size[groupsSizeField] = group.lineSize;\n groupBox = new Rect(groupOrigin, size);\n this.forEach(group.bboxes, arrangeElements);\n\n groupStart += group.lineSize + options.lineSpacing;\n }\n\n if (!options.wrap && group.size > rect.size[sizeField]) {\n const scale = rect.size[sizeField] / groupBox.size[sizeField];\n const scaledStart = groupBox.topLeft().scale(scale, scale);\n const scaledSize = groupBox.size[groupsSizeField] * scale;\n const newStart = alignStart(scaledSize, rect, options.alignContent, groupsAxis, groupsSizeField);\n const transform = createTransform();\n if (groupAxis === \"x\") {\n transform.translate(rect.origin.x - scaledStart.x, newStart - scaledStart.y);\n } else {\n transform.translate(newStart - scaledStart.x, rect.origin.y - scaledStart.y);\n }\n transform.scale(scale, scale);\n\n this.transform(transform);\n }\n }\n\n _initGroups() {\n const { options, children } = this;\n const { lineSpacing, wrap, spacing } = options;\n const sizeField = this._fieldMap.sizeField;\n let group = this._newGroup();\n const groups = [];\n const addGroup = function() {\n groups.push(group);\n groupsSize += group.lineSize + lineSpacing;\n };\n let groupsSize = -lineSpacing;\n\n for (let idx = 0; idx < children.length; idx++) {\n let element = children[idx];\n let bbox = children[idx].clippedBBox();\n if (element.visible() && bbox) {\n if (wrap && group.size + bbox.size[sizeField] + spacing > this._rect.size[sizeField]) {\n if (group.bboxes.length === 0) {\n this._addToGroup(group, bbox, element);\n addGroup();\n group = this._newGroup();\n } else {\n addGroup();\n group = this._newGroup();\n this._addToGroup(group, bbox, element);\n }\n } else {\n this._addToGroup(group, bbox, element);\n }\n }\n }\n\n if (group.bboxes.length) {\n addGroup();\n }\n\n return {\n groups: groups,\n groupsSize: groupsSize\n };\n }\n\n _addToGroup(group, bbox, element) {\n group.size += bbox.size[this._fieldMap.sizeField] + this.options.spacing;\n group.lineSize = Math.max(bbox.size[this._fieldMap.groupsSizeField], group.lineSize);\n group.bboxes.push(bbox);\n group.elements.push(element);\n }\n\n _newGroup() {\n return {\n lineSize: 0,\n size: -this.options.spacing,\n bboxes: [],\n elements: []\n };\n }\n}\n\nexport default Layout;","import createTransform from '../geometry/transform';\n\nexport default function translateToPoint(point, bbox, element) {\n const transofrm = element.transform() || createTransform();\n const matrix = transofrm.matrix();\n matrix.e += point.x - bbox.origin.x;\n matrix.f += point.y - bbox.origin.y;\n\n transofrm.matrix(matrix);\n element.transform(transofrm);\n}","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Box, rectToBox } from '../../core';\nimport { CENTER, HORIZONTAL, START, END, VERTICAL } from '../../common/constants';\n\nconst alignItems = rtl => (rtl ? END : START);\n\nclass LegendLayout extends ChartElement {\n\n constructor(options, chartService) {\n super(options);\n\n this.chartService = chartService;\n }\n\n render() {\n const { children, options } = this;\n const vertical = options.vertical;\n\n this.visual = new draw.Layout(null, {\n spacing: vertical ? 0 : options.spacing,\n lineSpacing: vertical ? options.spacing : 0,\n orientation: vertical ? VERTICAL : HORIZONTAL,\n reverse: options.rtl,\n alignItems: vertical ? alignItems(options.rtl) : CENTER\n });\n\n for (let idx = 0; idx < children.length; idx++) {\n let legendItem = children[idx];\n legendItem.reflow(new Box());\n legendItem.renderVisual();\n }\n }\n\n reflow(box) {\n this.visual.rect(box.toRect());\n this.visual.reflow();\n const bbox = this.visual.clippedBBox();\n\n if (bbox) {\n this.box = rectToBox(bbox);\n } else {\n this.box = new Box();\n }\n }\n\n renderVisual() {\n this.addVisual();\n }\n\n createVisual() {}\n}\n\nexport default LegendLayout;\n","import { ShapeElement } from '../../core';\nimport { deepExtend, setDefaultOptions } from '../../common';\nimport { CROSS, LEFT, TOP, WHITE } from '../../common/constants';\nimport { valueOrDefault } from '../../drawing-utils';\n\nexport const DEFAULT_MARKER_SIZE = 10;\nexport const DEFAULT_MARKER_BORDER_WIDTH = 2;\n\nclass LegendItemMarker extends ShapeElement {\n visualStyle() {\n const options = this.markerOptions();\n const border = options.border;\n\n return {\n stroke: {\n width: border.width,\n color: border.color,\n opacity: valueOrDefault(border.opacity, options.opacity),\n dashType: border.dashType\n },\n fill: {\n color: options.background,\n opacity: options.opacity\n },\n cursor: options.cursor\n };\n }\n\n markerOptions() {\n return this.options;\n }\n\n markerHighlightOptions() {\n const options = this.markerOptions();\n const borderWidth = options.highlight.border.width;\n\n return deepExtend(\n {},\n options,\n { background: options.border.color },\n options.highlight,\n options.type === CROSS ? {\n background: options.highlight.border.color,\n border: { color: options.highlight.background, width: borderWidth / 2 },\n width: options.width,\n height: options.height,\n margin: { top: 0, left: 0 }\n } : {}\n );\n }\n\n createHighlight() {\n const highlight = new ShapeElement(this.markerHighlightOptions());\n const box = this.paddingBox.clone();\n highlight.reflow(box.pad(highlight.options.border.width));\n this.highlight = [ highlight.getElement() ];\n\n return this.highlight;\n }\n}\n\nsetDefaultOptions(LegendItemMarker, {\n border: {\n width: DEFAULT_MARKER_BORDER_WIDTH\n },\n width: DEFAULT_MARKER_SIZE - DEFAULT_MARKER_BORDER_WIDTH,\n height: DEFAULT_MARKER_SIZE - DEFAULT_MARKER_BORDER_WIDTH,\n background: WHITE,\n margin: {\n top: -1,\n left: -1\n },\n vAlign: TOP,\n align: LEFT,\n highlight: {\n width: DEFAULT_MARKER_SIZE,\n height: DEFAULT_MARKER_SIZE,\n border: {\n color: WHITE,\n width: DEFAULT_MARKER_BORDER_WIDTH\n }\n }\n});\n\nexport default LegendItemMarker;\n","import { drawing as draw } from '@progress/kendo-drawing';\nimport ShapeElement from \"../../core/shape-element\";\nimport { setDefaultOptions } from '../../common';\nimport { BOTTOM, RIGHT } from '../../common/constants';\n\nclass MarkerLineArea extends ShapeElement {\n getElement() {\n const group = new draw.Group();\n const element = new draw.MultiPath(this.visualStyle());\n const { paddingBox: box } = this;\n const halfHeight = box.height() / 2;\n\n element\n .moveTo(box.x1, box.y1 + halfHeight)\n .lineTo(box.x1, box.y2)\n .lineTo(box.x2, box.y2);\n\n group.append(element);\n\n return group;\n }\n}\n\nsetDefaultOptions(MarkerLineArea, {\n width: 15,\n height: 15,\n align: RIGHT,\n vAlign: BOTTOM,\n margin: {\n right: -2,\n bottom: 2\n }\n});\n\nexport default MarkerLineArea;\n","import { drawing as draw } from '@progress/kendo-drawing';\nimport ShapeElement from \"../../core/shape-element\";\nimport { deepExtend, setDefaultOptions } from '../../common';\nimport { CENTER, CIRCLE, LEFT, RECT, TOP, WHITE } from \"../../common/constants\";\nimport MarkerLineArea from \"./legend-item-line-area\";\nimport { DEFAULT_MARKER_BORDER_WIDTH, DEFAULT_MARKER_SIZE } from \"./legend-item-marker\";\n\nclass LegendItemLine extends ShapeElement {\n getElement() {\n const group = new draw.Group();\n const element = new draw.MultiPath({\n stroke: {\n color: this.options.border.color,\n opacity: this.options.opacity,\n width: this.options.height,\n dashType: this.options.dashType\n }\n });\n const box = this.paddingBox;\n const centerY = box.center().y;\n\n element\n .moveTo(box.x1, centerY)\n .lineTo(box.x2, centerY);\n\n group.append(element);\n\n return group;\n }\n\n createHighlight() {\n this.highlight = [ this.createHighlightLine(), this.createHighlightMarker() ];\n return this.highlight;\n }\n\n createHighlightLine() {\n const options = deepExtend({}, {\n border: {\n color: this.options.border.color,\n opacity: this.options.border.opacity,\n dashType: this.options.border.dashType\n }\n }, this.options.highlight);\n const highlightLine = new MarkerLineArea(options);\n highlightLine.reflow(this.parent.paddingBox.clone());\n\n this.highlightLine = highlightLine.getElement();\n\n return this.highlightLine;\n }\n\n createHighlightMarker() {\n const options = deepExtend({}, {\n background: this.options.background,\n }, this.options.highlight.markers);\n const highlightMarker = new ShapeElement(options);\n const paddingBox = this.parent.paddingBox;\n const borderWidth = options.border.width;\n const box = this.parent.box.clone();\n\n box.pad({\n left: borderWidth - paddingBox.x1,\n top: borderWidth - paddingBox.y1\n });\n\n highlightMarker.reflow(box);\n this.highlightMarker = highlightMarker.getElement();\n\n return this.highlightMarker;\n }\n}\n\nsetDefaultOptions(LegendItemLine, {\n border: {\n width: 0\n },\n type: RECT,\n align: LEFT,\n vAlign: CENTER,\n highlight: {\n border: {\n width: DEFAULT_MARKER_BORDER_WIDTH\n },\n markers: {\n type: CIRCLE,\n width: DEFAULT_MARKER_SIZE,\n height: DEFAULT_MARKER_SIZE,\n border: {\n width: DEFAULT_MARKER_BORDER_WIDTH,\n color: WHITE\n },\n align: LEFT,\n vAlign: TOP\n }\n }\n});\n\nexport default LegendItemLine;\n","import ShapeElement from \"../../core/shape-element\";\nimport { deepExtend, setDefaultOptions } from '../../common';\nimport { CIRCLE, LEFT, TOP, WHITE, X, Y } from \"../../common/constants\";\nimport { DEFAULT_MARKER_BORDER_WIDTH, DEFAULT_MARKER_SIZE } from \"./legend-item-marker\";\n\nclass LegendItemSquare extends ShapeElement {\n createHighlight() {\n const options = deepExtend({}, {\n background: this.options.background,\n }, this.options.highlight.markers);\n const highlight = new ShapeElement(options);\n\n const box = this.paddingBox.clone();\n const targetBox = this.parent.box.clone();\n box.align(targetBox, X, LEFT);\n box.align(targetBox, Y, TOP);\n highlight.reflow(box);\n\n this.highlight = [ highlight.getElement() ];\n\n return this.highlight;\n }\n}\n\nsetDefaultOptions(LegendItemSquare, {\n highlight: {\n markers: {\n type: CIRCLE,\n width: DEFAULT_MARKER_SIZE,\n height: DEFAULT_MARKER_SIZE,\n border: {\n width: DEFAULT_MARKER_BORDER_WIDTH,\n color: WHITE\n },\n margin: {\n top: -3,\n left: -3\n }\n }\n }\n});\n\nexport default LegendItemSquare;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { BoxElement, FloatElement, TextBox } from '../../core';\nimport { AREA, LEGEND_ITEM_ARIA_ROLE_DESCRIPTION, LEGEND_ITEM_CLASSNAME, LEGEND_ITEM_CLICK, LEGEND_ITEM_HOVER, LEGEND_ITEM_LEAVE, LEGEND_ITEM_ROLE, LINE } from '../constants';\nimport { BOTTOM, CENTER, WHITE } from '../../common/constants';\nimport { deepExtend, eventElement, setDefaultOptions } from '../../common';\nimport addAccessibilityAttributesToVisual from '../../core/utils/add-accessibility-attributes-to-visual';\nimport guid from '../../core/utils/guid';\nimport LegendItemMarker from './legend-item-marker';\nimport MarkerLineArea from './legend-item-line-area';\nimport LegendItemLine from './legend-item-line';\nimport LegendItemSquare from './legend-item-square';\n\nclass LegendItem extends BoxElement {\n constructor(options) {\n super(options);\n\n this.createContainer();\n if (!options.rtl) {\n this.createMarker();\n this.createLabel();\n } else {\n this.createLabel();\n this.createMarker();\n }\n\n this._id = guid();\n this.options.accessibility.ariaChecked = options.active;\n }\n\n createContainer() {\n this.container = new FloatElement({ vertical: false, wrap: false, align: CENTER, spacing: this.options.spacing });\n this.append(this.container);\n }\n\n createMarker() {\n this.markerWrap = new BoxElement({ vertical: false, shrinkToFit: true, wrap: false, margin: 1, width: 22, height: 22 });\n this.container.append(this.markerWrap);\n\n this.createMarkerArea();\n\n if (this.options.markers.visible) {\n this._marker = this._createMarker();\n this.markerWrap.append(this._marker);\n }\n }\n\n createMarkerArea() {\n const options = this.options;\n const { markerColor, line = {} } = options;\n const lineOptions = {\n border: {\n color: line.color || markerColor,\n opacity: line.opacity,\n dashType: line.dashType\n }\n };\n return this._createLine(lineOptions) ||\n this._createMarkerLine(lineOptions, line) ||\n this._createSquare();\n }\n\n markerOptions() {\n const options = this.options;\n const { markers = {}, markerColor } = options;\n const { border = {} } = markers;\n markers.zIndex = undefined;\n\n return deepExtend({}, markers, {\n border: { color: border.color || markerColor },\n highlight: options.highlight.markers\n });\n }\n\n _highlightOptions() {\n const options = this.options;\n return deepExtend(\n { markers: { type: options.markers.type } },\n options.highlight\n );\n }\n\n _createLine(lineOptions) {\n const options = this.options;\n if (options.type === LINE && !options.markers.visible) {\n this._line = new LegendItemLine(deepExtend({}, {\n background: options.markerColor,\n highlight: this._highlightOptions(),\n }, lineOptions, options.line));\n\n this.markerWrap.append(this._line);\n }\n return this._line;\n }\n\n _createMarkerLine(lineOptions, line) {\n const options = this.options;\n if (options.type === LINE) {\n this._markerLineArea = new MarkerLineArea(deepExtend({}, {\n border: {\n width: line.height\n }\n }, lineOptions));\n\n this.markerWrap.append(this._markerLineArea);\n }\n\n return this._markerLineArea;\n }\n\n _createSquare() {\n const options = this.options;\n if (options.type === AREA) {\n this._square = new LegendItemSquare(Object.assign({}, {border: options.border,\n vAlign: options.markers.visible ? BOTTOM : CENTER,\n highlight: this._highlightOptions()},\n options.area,\n {background: options.area.background || options.markerColor}));\n this.markerWrap.append(this._square);\n }\n return this._square;\n }\n\n _createMarker() {\n return new LegendItemMarker(this.markerOptions());\n }\n\n _highlightMarkers() {\n if (this.options.active) {\n this._toggleHighlight(true);\n }\n }\n\n _restoreMarkers() {\n this._toggleHighlight(false);\n }\n\n _toggleHighlight(show) {\n if (!this.options.highlight.visible) {\n return;\n }\n\n const element = this._marker || this._square || this._line;\n\n if (element && element === this._line) {\n this._line.visual.visible(!show);\n }\n\n if (element) {\n let highlight = element.highlight;\n\n if (!highlight) {\n highlight = element.createHighlight();\n highlight.forEach(h => h && this.markerWrap.appendVisual(h));\n }\n\n highlight.forEach(h => h && h.visible(show));\n }\n }\n\n createLabel() {\n const options = this.options;\n const labelOptions = deepExtend({}, options.labels);\n\n this.container.append(new TextBox(options.text, labelOptions));\n }\n\n getAriaLabelText() {\n return this.options.text;\n }\n\n focusVisual() {\n this.visual.options.set(\"id\", this._id);\n this.toggleFocusHighlight(true);\n this._highlightMarkers();\n }\n\n clearFocusFromVisual() {\n this.visual.options.set(\"id\", \"\");\n this.toggleFocusHighlight(false);\n this._restoreMarkers();\n }\n\n renderComplete() {\n super.renderComplete();\n\n const cursor = this.options.cursor || {};\n const eventSink = this._itemOverlay = draw.Path.fromRect(this.container.box.toRect(), {\n fill: {\n color: WHITE,\n opacity: 0\n },\n stroke: null,\n cursor: cursor.style || cursor\n });\n\n this.appendVisual(eventSink);\n }\n\n click(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(LEGEND_ITEM_CLICK, args) && e && e.type === 'contextmenu') {\n e.preventDefault();\n }\n }\n\n over(widget, e) {\n const args = this.eventArgs(e);\n\n if (!widget.trigger(LEGEND_ITEM_HOVER, args)) {\n widget._legendItemHover(args.seriesIndex, args.pointIndex);\n this._highlightMarkers();\n }\n\n // Don't trigger point hover for legend items\n return true;\n }\n\n out(widget, e) {\n widget._unsetActivePoint();\n this._restoreMarkers();\n\n widget.trigger(LEGEND_ITEM_LEAVE, this.eventArgs(e));\n }\n\n eventArgs(e) {\n const options = this.options;\n\n return {\n element: eventElement(e),\n text: options.text,\n series: options.series,\n seriesIndex: options.series.index,\n pointIndex: options.pointIndex\n };\n }\n\n createVisual() {\n super.createVisual();\n const options = this.options;\n\n if (this.options.visible) {\n const accessibilityOptions = deepExtend({\n ariaLabel: options.accessibility.ariaLabel !== undefined ? options.accessibility.ariaLabel : options.text\n }, options.accessibility);\n\n addAccessibilityAttributesToVisual(this.visual, accessibilityOptions);\n }\n }\n\n renderVisual() {\n const options = this.options;\n const customVisual = options.visual;\n\n if (customVisual) {\n this.visual = customVisual({\n active: options.active,\n series: options.series,\n sender: this.getSender(),\n pointIndex: options.pointIndex,\n options: {\n type: options.type,\n // Passing the markerColor as a background option for backwards compatibility.\n // Example in jq docs - https://docs.telerik.com/kendo-ui/api/javascript/dataviz/ui/chart/configuration/legend.item#legenditemvisual\n markers: deepExtend({ background: this.options.markerColor }, this.markerOptions()),\n labels: options.labels\n },\n createVisual: () => {\n this.createVisual();\n this.renderChildren();\n this.renderComplete();\n\n const defaultVisual = this.visual;\n\n delete this.visual;\n\n return defaultVisual;\n }\n });\n this._marker = this._markerLineArea = this._square = this._line = null;\n this.addVisual();\n } else {\n super.renderVisual();\n }\n }\n\n createFocusHighlight(style) {\n const borderWidth = style.stroke.width;\n return draw.Path.fromRect(this.container.box.pad(borderWidth / 2).toRect(), style);\n }\n}\n\nsetDefaultOptions(LegendItem, {\n accessibility: {\n role: LEGEND_ITEM_ROLE,\n className: LEGEND_ITEM_CLASSNAME,\n ariaRoleDescription: LEGEND_ITEM_ARIA_ROLE_DESCRIPTION\n },\n markers: {},\n highlight: {\n visible: true,\n markers: {}\n }\n});\n\nexport default LegendItem;\n","\nimport { ChartElement, BoxElement, Box, TextBox, FloatElement } from '../../core';\nimport LegendLayout from './legend-layout';\nimport LegendItem from './legend-item';\n\nimport { TOP, RIGHT, BOTTOM, LEFT, CENTER, X, Y, BLACK, CIRCLE, POINTER, START, END, HORIZONTAL, SQUARE } from '../../common/constants';\nimport { deepExtend, defined, getTemplate, getSpacing, inArray, setDefaultOptions } from '../../common';\n\nconst CUSTOM = \"custom\";\n\nclass Legend extends ChartElement {\n constructor(options, chartService = {}) {\n super(options);\n\n this.chartService = chartService;\n\n if (!inArray(this.options.position, [ TOP, RIGHT, BOTTOM, LEFT, CUSTOM ])) {\n this.options.position = RIGHT;\n }\n\n this.createContainers();\n\n this.createLegendTitle(options.title);\n\n this.createItems();\n }\n\n createContainers() {\n const options = this.options;\n const { position, align: userAlign } = options;\n let align = position;\n let vAlign = CENTER;\n\n if (position === CUSTOM) {\n align = LEFT;\n } else if (inArray(position, [ TOP, BOTTOM ])) {\n if (userAlign === START) {\n align = LEFT;\n } else if (userAlign === END) {\n align = RIGHT;\n } else {\n align = CENTER;\n }\n vAlign = position;\n } else if (userAlign) {\n if (userAlign === START) {\n vAlign = TOP;\n } else if (userAlign === END) {\n vAlign = BOTTOM;\n }\n }\n\n this.container = new BoxElement({\n margin: options.margin,\n padding: options.padding,\n background: options.background,\n border: options.border,\n vAlign: vAlign,\n align: align,\n zIndex: options.zIndex,\n shrinkToFit: true\n });\n\n if (this.hasTitle()) {\n this.itemsContainer = new BoxElement({\n vAlign: vAlign,\n align: align,\n zIndex: options.zIndex,\n shrinkToFit: true\n });\n } else {\n this.itemsContainer = this.container;\n }\n\n this.append(this.container);\n }\n\n createItems() {\n const chartService = this.getService();\n const options = this.options;\n const vertical = this.isVertical();\n const innerElement = new LegendLayout({\n vertical: vertical,\n spacing: options.spacing,\n rtl: chartService.rtl\n }, chartService);\n let data = options.data;\n\n if (options.reverse) {\n data = data.slice(0).reverse();\n }\n\n const count = data.length;\n\n for (let i = 0; i < count; i++) {\n let dataItem = data[i];\n const { markers = {}, dashType, legendItem, opacity } = dataItem.series || {};\n const markersOptions = deepExtend({ visible: markers.visible !== false, type: CIRCLE }, markers);\n delete markersOptions.size;\n\n const itemOptions = deepExtend({},\n {\n markers: markersOptions,\n labels: options.labels,\n rtl: chartService.rtl,\n line: Object.assign({}, {dashType: dashType},\n options.line),\n area: Object.assign({}, {opacity: opacity},\n options.area),\n opacity: opacity,\n accessibility: options.accessibility\n },\n options.item,\n legendItem,\n dataItem,\n { markers: options.markers }\n );\n\n innerElement.append(new LegendItem(itemOptions));\n }\n\n innerElement.render();\n this.itemsContainer.append(innerElement);\n }\n\n isVertical() {\n const { orientation, position } = this.options;\n const vertical = (position === CUSTOM && orientation !== HORIZONTAL) ||\n (defined(orientation) ? orientation !== HORIZONTAL : inArray(position, [ LEFT, RIGHT ]));\n\n return vertical;\n }\n\n hasItems() {\n return this.container.children[0].children.length > 0;\n }\n\n getItems() {\n return this.itemsContainer.children[0].children;\n }\n\n reflow(targetBox) {\n const options = this.options;\n const legendBox = targetBox.clone();\n\n if (!this.hasItems()) {\n this.box = legendBox;\n return;\n }\n\n if (options.position === CUSTOM) {\n this.containerCustomReflow(legendBox);\n this.box = legendBox;\n } else {\n this.containerReflow(legendBox);\n }\n\n if (this.hasTitle()) {\n this.title.reflow(new Box(this.container.box.x1, this.title.box.y1, this.container.box.x2, this.title.box.y2));\n }\n }\n\n containerReflow(targetBox) {\n const { options, container } = this;\n const { position, width, height } = options;\n const pos = position === TOP || position === BOTTOM ? X : Y;\n const vertical = this.isVertical();\n const alignTarget = targetBox.clone();\n let containerBox = targetBox.clone();\n\n if (position === LEFT || position === RIGHT) {\n containerBox.y1 = alignTarget.y1 = 0;\n }\n\n if (vertical && height) {\n containerBox.y2 = containerBox.y1 + height;\n containerBox.align(alignTarget, Y, container.options.vAlign);\n } else if (!vertical && width) {\n containerBox.x2 = containerBox.x1 + width;\n containerBox.align(alignTarget, X, container.options.align);\n }\n\n container.reflow(containerBox);\n containerBox = container.box;\n\n const box = containerBox.clone();\n\n if (options.offsetX || options.offsetY) {\n containerBox.translate(options.offsetX, options.offsetY);\n container.reflow(containerBox);\n }\n\n box[pos + 1] = targetBox[pos + 1];\n box[pos + 2] = targetBox[pos + 2];\n\n this.box = box;\n }\n\n containerCustomReflow(targetBox) {\n const { options, container } = this;\n const { offsetX, offsetY, width, height } = options;\n const vertical = this.isVertical();\n let containerBox = targetBox.clone();\n\n if (vertical && height) {\n containerBox.y2 = containerBox.y1 + height;\n } else if (!vertical && width) {\n containerBox.x2 = containerBox.x1 + width;\n }\n container.reflow(containerBox);\n containerBox = container.box;\n\n container.reflow(new Box(\n offsetX, offsetY,\n offsetX + containerBox.width(), offsetY + containerBox.height()\n ));\n }\n\n renderVisual() {\n if (this.hasItems()) {\n super.renderVisual();\n }\n }\n\n createLegendTitle(title) {\n let titleOptions = deepExtend({}, {\n color: BLACK,\n position: TOP,\n align: CENTER\n }, title);\n let text = titleOptions.text;\n\n if (!title || title.visible === false || !title.text) {\n return;\n }\n\n if (defined(titleOptions) && titleOptions.visible) {\n const labelTemplate = getTemplate(titleOptions);\n if (labelTemplate) {\n text = labelTemplate({ text: text });\n } else if (titleOptions.format) {\n text = this.chartService.format.auto(titleOptions.format, text);\n }\n }\n\n this.title = new TextBox(text, titleOptions);\n\n this.createTitleLayout();\n\n this.appendTitleLayoutContent();\n }\n\n createTitleLayout() {\n this.layout = new FloatElement({\n vertical: true,\n wrap: false\n });\n\n this.container.append(this.layout);\n }\n\n hasTitle() {\n return Boolean(this.options.title && this.options.title.visible !== false && this.options.title.text);\n }\n\n appendTitleLayoutContent() {\n const options = this.options;\n\n if (options.title.position === BOTTOM) {\n this.layout.append(this.itemsContainer);\n this.layout.append(this.title);\n } else {\n this.layout.append(this.title);\n this.layout.append(this.itemsContainer);\n }\n }\n}\n\nsetDefaultOptions(Legend, {\n position: RIGHT,\n data: [],\n offsetX: 0,\n offsetY: 0,\n margin: getSpacing(2),\n padding: getSpacing(5),\n border: {\n color: BLACK,\n width: 0\n },\n item: {\n cursor: POINTER,\n spacing: 6\n },\n spacing: 6,\n background: \"\",\n zIndex: 1,\n markers: {},\n line: {\n width: 20,\n height: 2,\n cursor: POINTER,\n opacity: 1\n },\n area: {\n type: SQUARE,\n align: RIGHT,\n width: 15,\n height: 15,\n }\n});\n\nexport default Legend;\n","import filterSeriesByType from '../utils/filter-series-by-type';\nimport { Class } from '../../common';\nimport { TRENDLINE_SERIES } from '../constants';\n\nclass PlotAreaFactory extends Class {\n\n constructor() {\n super();\n\n this._registry = [];\n }\n\n register(type, seriesTypes) {\n this._registry.push({\n type: type,\n seriesTypes: seriesTypes\n });\n }\n\n create(srcSeries, options, chartService) {\n const registry = this._registry;\n let match = registry[0];\n let series;\n\n for (let idx = 0; idx < registry.length; idx++) {\n const entry = registry[idx];\n series = filterSeriesByType(srcSeries, entry.seriesTypes);\n const trendlines = filterSeriesByType(srcSeries, TRENDLINE_SERIES);\n\n if ((series.length - trendlines.length) > 0) {\n match = entry;\n break;\n }\n }\n\n return new match.type(series, options, chartService);\n }\n}\n\nPlotAreaFactory.current = new PlotAreaFactory();\n\nexport default PlotAreaFactory;\n","import { DomEventsBuilder } from '../services';\n\nimport { DateCategoryAxis, Point } from '../core';\n\nimport { MOUSEWHEEL_DELAY, MOUSEWHEEL, SELECT_START, SELECT, SELECT_END } from './constants';\n\nimport { LEFT, RIGHT, MIN_VALUE, MAX_VALUE, X } from '../common/constants';\nimport { addClass, Class, removeClass, eventCoordinates, deepExtend, elementStyles, eventElement, setDefaultOptions, limitValue, round, bindEvents, unbindEvents, mousewheelDelta, hasClasses } from '../common';\nimport { parseDate } from '../date-utils';\n\nconst ZOOM_ACCELERATION = 3;\nconst SELECTOR_HEIGHT_ADJUST = 0.1;\n\nfunction createDiv(classNames) {\n const element = document.createElement(\"div\");\n if (classNames) {\n element.className = classNames;\n }\n\n return element;\n}\n\nfunction closestHandle(element) {\n let current = element;\n while (current && !hasClasses(current, \"k-handle\")) {\n current = current.parentNode;\n }\n\n return current;\n}\n\nclass Selection extends Class {\n constructor(chart, categoryAxis, options, observer) {\n super();\n\n const chartElement = chart.element;\n\n this.options = deepExtend({}, this.options, options);\n this.chart = chart;\n this.observer = observer;\n this.chartElement = chartElement;\n this.categoryAxis = categoryAxis;\n this._dateAxis = this.categoryAxis instanceof DateCategoryAxis;\n\n this.initOptions();\n\n this.visible = this.options.visible && chartElement.offsetHeight;\n\n if (this.visible) {\n this.createElements();\n\n this.set(this._index(this.options.from), this._index(this.options.to));\n\n this.bindEvents();\n }\n }\n\n onPane(pane) {\n return this.categoryAxis.pane === pane;\n }\n\n createElements() {\n const options = this.options;\n const wrapper = this.wrapper = createDiv(\"k-selector k-pointer-events-none\");\n elementStyles(wrapper, {\n top: options.offset.top,\n left: options.offset.left,\n width: options.width,\n height: options.height,\n direction: 'ltr'\n });\n\n const selection = this.selection = createDiv(\"k-selection k-pointer-events-none\");\n\n this.leftMask = createDiv(\"k-mask k-pointer-events-none\");\n this.rightMask = createDiv(\"k-mask k-pointer-events-none\");\n\n wrapper.appendChild(this.leftMask);\n wrapper.appendChild(this.rightMask);\n wrapper.appendChild(selection);\n\n const body = this.body = createDiv(\"k-selection-bg k-pointer-events-none\");\n selection.appendChild(body);\n\n const leftHandle = this.leftHandle = createDiv(\"k-handle k-left-handle k-pointer-events-auto\");\n const rightHandle = this.rightHandle = createDiv(\"k-handle k-right-handle k-pointer-events-auto\");\n leftHandle.appendChild(createDiv());\n rightHandle.appendChild(createDiv());\n\n selection.appendChild(leftHandle);\n selection.appendChild(rightHandle);\n\n this.chartElement.appendChild(wrapper);\n const selectionStyles = elementStyles(selection, [ \"borderLeftWidth\", \"borderRightWidth\", \"height\" ]);\n const leftHandleHeight = elementStyles(leftHandle, \"height\").height;\n const rightHandleHeight = elementStyles(rightHandle, \"height\").height;\n\n options.selection = {\n border: {\n left: selectionStyles.borderLeftWidth,\n right: selectionStyles.borderRightWidth\n }\n };\n\n elementStyles(leftHandle, {\n top: (selectionStyles.height - leftHandleHeight) / 2\n });\n\n elementStyles(rightHandle, {\n top: (selectionStyles.height - rightHandleHeight) / 2\n });\n\n /* eslint no-self-assign: \"off\" */\n wrapper.style.cssText = wrapper.style.cssText;\n }\n\n bindEvents() {\n if (this.options.mousewheel !== false) {\n this._mousewheelHandler = this._mousewheel.bind(this);\n bindEvents(this.chartElement, {\n [ MOUSEWHEEL ]: this._mousewheelHandler\n });\n }\n\n this._domEvents = DomEventsBuilder.create(this.chartElement, {\n stopPropagation: true, // applicable for the jQuery UserEvents\n start: this._start.bind(this),\n move: this._move.bind(this),\n end: this._end.bind(this),\n tap: this._tap.bind(this),\n press: this._press.bind(this),\n gesturestart: this._gesturestart.bind(this),\n gesturechange: this._gesturechange.bind(this),\n gestureend: this._gestureend.bind(this)\n });\n }\n\n initOptions() {\n const { options, categoryAxis } = this;\n const box = categoryAxis.pane.chartsBox();\n const intlService = this.chart.chartService.intl;\n\n if (this._dateAxis) {\n deepExtend(options, {\n min: parseDate(intlService, options.min),\n max: parseDate(intlService, options.max),\n from: parseDate(intlService, options.from),\n to: parseDate(intlService, options.to)\n });\n }\n\n const { paddingLeft, paddingTop } = elementStyles(this.chartElement, [ \"paddingLeft\", \"paddingTop\" ]);\n\n this.options = deepExtend({}, {\n width: box.width(),\n height: box.height() + SELECTOR_HEIGHT_ADJUST, //workaround for sub-pixel hover on the paths in chrome\n padding: {\n left: paddingLeft,\n top: paddingTop\n },\n offset: {\n left: box.x1 + paddingLeft,\n top: box.y1 + paddingTop\n },\n from: options.min,\n to: options.max\n }, options);\n }\n\n destroy() {\n if (this._domEvents) {\n this._domEvents.destroy();\n delete this._domEvents;\n }\n\n clearTimeout(this._mwTimeout);\n this._state = null;\n\n if (this.wrapper) {\n if (this._mousewheelHandler) {\n unbindEvents(this.chartElement, {\n [ MOUSEWHEEL ]: this._mousewheelHandler\n });\n this._mousewheelHandler = null;\n }\n\n this.chartElement.removeChild(this.wrapper);\n this.wrapper = null;\n }\n }\n\n _rangeEventArgs(range) {\n\n return {\n axis: this.categoryAxis.options,\n from: this._value(range.from),\n to: this._value(range.to)\n };\n }\n\n _pointInPane(x, y) {\n const paneBox = this.categoryAxis.pane.box;\n const modelCoords = this.chart._toModelCoordinates(x, y);\n return paneBox.containsPoint(modelCoords);\n }\n\n _start(e) {\n const options = this.options;\n const target = eventElement(e);\n if (this._state || !target) {\n return;\n }\n\n const coords = eventCoordinates(e);\n const inPane = this._pointInPane(coords.x, coords.y);\n if (!inPane) {\n return;\n }\n\n const handle = closestHandle(target);\n const bodyRect = this.body.getBoundingClientRect();\n const inBody = !handle && coords.x >= bodyRect.x && coords.x <= bodyRect.x + bodyRect.width &&\n coords.y >= bodyRect.y && coords.y <= bodyRect.y + bodyRect.height;\n\n this.chart._unsetActivePoint();\n this._state = {\n moveTarget: handle,\n startLocation: e.x ? e.x.location : 0,\n inBody,\n range: {\n from: this._index(options.from),\n to: this._index(options.to)\n }\n };\n\n const args = this._rangeEventArgs({\n from: this._index(options.from),\n to: this._index(options.to)\n });\n\n if (this.trigger(SELECT_START, args)) {\n this._state = null;\n }\n }\n\n _press(e) {\n let handle;\n if (this._state) {\n handle = this._state.moveTarget;\n } else {\n handle = closestHandle(eventElement(e));\n }\n if (handle) {\n addClass(handle, \"k-handle-active\");\n }\n }\n\n _move(e) {\n if (!this._state) {\n return;\n }\n\n const { _state: state, options, categoryAxis } = this;\n const { range, moveTarget: target } = state;\n const reverse = categoryAxis.options.reverse;\n const from = this._index(options.from);\n const to = this._index(options.to);\n const min = this._index(options.min);\n const max = this._index(options.max);\n const delta = state.startLocation - e.x.location;\n const oldRange = { from: range.from, to: range.to };\n const span = range.to - range.from;\n const scale = elementStyles(this.wrapper, \"width\").width / (categoryAxis.categoriesCount() - 1);\n const offset = Math.round(delta / scale) * (reverse ? -1 : 1);\n\n if (!target && !state.inBody) {\n return;\n }\n\n const leftHandle = target && hasClasses(target, \"k-left-handle\");\n const rightHandle = target && hasClasses(target, \"k-right-handle\");\n\n if (state.inBody) {\n range.from = Math.min(\n Math.max(min, from - offset),\n max - span\n );\n range.to = Math.min(\n range.from + span,\n max\n );\n } else if ((leftHandle && !reverse) || (rightHandle && reverse)) {\n range.from = Math.min(\n Math.max(min, from - offset),\n max - 1\n );\n range.to = Math.max(range.from + 1, range.to);\n } else if ((leftHandle && reverse) || (rightHandle && !reverse)) {\n range.to = Math.min(\n Math.max(min + 1, to - offset),\n max\n );\n range.from = Math.min(range.to - 1, range.from);\n }\n\n if (range.from !== oldRange.from || range.to !== oldRange.to) {\n this.move(range.from, range.to);\n this.trigger(SELECT, this._rangeEventArgs(range));\n }\n }\n\n _end() {\n if (this._state) {\n const moveTarget = this._state.moveTarget;\n if (moveTarget) {\n removeClass(moveTarget, \"k-handle-active\");\n }\n\n const range = this._state.range;\n this.set(range.from, range.to);\n this.trigger(SELECT_END, this._rangeEventArgs(range));\n\n delete this._state;\n }\n }\n\n _tap(e) {\n const { options, categoryAxis } = this;\n const coords = this.chart._eventCoordinates(e);\n const categoryIx = categoryAxis.pointCategoryIndex(new Point(coords.x, categoryAxis.box.y1));\n const from = this._index(options.from);\n const to = this._index(options.to);\n const min = this._index(options.min);\n const max = this._index(options.max);\n const span = to - from;\n const mid = from + span / 2;\n const range = {};\n const rightClick = e.event.which === 3;\n let offset = Math.round(mid - categoryIx);\n\n if (this._state || rightClick) {\n return;\n }\n\n\n this.chart._unsetActivePoint();\n\n if (!categoryAxis.options.justified) {\n offset--;\n }\n\n range.from = Math.min(\n Math.max(min, from - offset),\n max - span\n );\n\n range.to = Math.min(range.from + span, max);\n\n this._start(e);\n\n if (this._state) {\n this._state.range = range;\n this.trigger(SELECT, this._rangeEventArgs(range));\n this._end();\n }\n }\n\n _mousewheel(e) {\n let delta = mousewheelDelta(e);\n\n this._start(e);\n\n if (this._state) {\n const range = this._state.range;\n\n e.preventDefault();\n e.stopPropagation();\n\n if (Math.abs(delta) > 1) {\n delta *= ZOOM_ACCELERATION;\n }\n\n if (this.options.mousewheel.reverse) {\n delta *= -1;\n }\n\n if (this.expand(delta)) {\n this.trigger(SELECT, {\n axis: this.categoryAxis.options,\n delta: delta,\n originalEvent: e,\n from: this._value(range.from),\n to: this._value(range.to)\n });\n }\n\n if (this._mwTimeout) {\n clearTimeout(this._mwTimeout);\n }\n\n this._mwTimeout = setTimeout(() => {\n this._end();\n }, MOUSEWHEEL_DELAY);\n }\n }\n\n _gesturestart(e) {\n const options = this.options;\n const touch = e.touches[0];\n const inPane = this._pointInPane(touch.pageX, touch.pageY);\n\n if (!inPane) {\n return;\n }\n\n this._state = {\n range: {\n from: this._index(options.from),\n to: this._index(options.to)\n }\n };\n const args = this._rangeEventArgs(this._state.range);\n\n if (this.trigger(SELECT_START, args)) {\n this._state = null;\n } else {\n e.preventDefault();\n }\n }\n\n _gestureend() {\n if (this._state) {\n this.trigger(SELECT_END, this._rangeEventArgs(this._state.range));\n delete this._state;\n }\n }\n\n _gesturechange(e) {\n if (!this._state) {\n return;\n }\n\n const { chart, _state: state, options, categoryAxis } = this;\n const range = state.range;\n const p0 = chart._toModelCoordinates(e.touches[0].x.location).x;\n const p1 = chart._toModelCoordinates(e.touches[1].x.location).x;\n const left = Math.min(p0, p1);\n const right = Math.max(p0, p1);\n\n e.preventDefault();\n\n range.from = categoryAxis.pointCategoryIndex(new Point(left)) || options.min;\n\n range.to = categoryAxis.pointCategoryIndex(new Point(right)) || options.max;\n\n this.move(range.from, range.to);\n\n this.trigger(SELECT, this._rangeEventArgs(range));\n }\n\n _index(value) {\n let index = value;\n\n if (value instanceof Date) {\n index = this.categoryAxis.categoryIndex(value);\n }\n\n return index;\n }\n\n _value(index) {\n let value = index;\n if (this._dateAxis) {\n value = this.categoryAxis.categoryAt(index);\n if (value > this.options.max) {\n value = this.options.max;\n }\n }\n\n return value;\n }\n\n _slot(value) {\n const categoryAxis = this.categoryAxis;\n const index = this._index(value);\n\n return categoryAxis.getSlot(index, index, true);\n }\n\n move(from, to) {\n const options = this.options;\n const reverse = this.categoryAxis.options.reverse;\n const { offset, padding, selection: { border } } = options;\n const left = reverse ? to : from;\n const right = reverse ? from : to;\n const edge = 'x' + (reverse ? 2 : 1);\n\n let box = this._slot(left);\n const leftMaskWidth = round(box[edge] - offset.left + padding.left);\n\n elementStyles(this.leftMask, {\n width: leftMaskWidth\n });\n elementStyles(this.selection, {\n left: leftMaskWidth\n });\n\n box = this._slot(right);\n\n const rightMaskWidth = round(options.width - (box[edge] - offset.left + padding.left));\n elementStyles(this.rightMask, {\n width: rightMaskWidth\n });\n\n let distance = options.width - rightMaskWidth;\n if (distance !== options.width) {\n distance += border.right;\n }\n\n elementStyles(this.rightMask, {\n left: distance\n });\n elementStyles(this.selection, {\n width: Math.max(options.width - (leftMaskWidth + rightMaskWidth) - border.right, 0)\n });\n }\n\n set(from, to) {\n const options = this.options;\n const min = this._index(options.min);\n const max = this._index(options.max);\n const fromValue = limitValue(this._index(from), min, max);\n const toValue = limitValue(this._index(to), fromValue + 1, max);\n\n if (options.visible) {\n this.move(fromValue, toValue);\n }\n\n options.from = this._value(fromValue);\n options.to = this._value(toValue);\n }\n\n expand(delta) {\n const options = this.options;\n const min = this._index(options.min);\n const max = this._index(options.max);\n const zDir = options.mousewheel.zoom;\n const from = this._index(options.from);\n const to = this._index(options.to);\n let range = { from: from, to: to };\n const oldRange = deepExtend({}, range);\n\n if (this._state) {\n range = this._state.range;\n }\n\n if (zDir !== RIGHT) {\n range.from = limitValue(\n limitValue(from - delta, 0, to - 1),\n min, max\n );\n }\n\n if (zDir !== LEFT) {\n range.to = limitValue(\n limitValue(to + delta, range.from + 1, max),\n min,\n max\n );\n }\n\n if (range.from !== oldRange.from || range.to !== oldRange.to) {\n this.set(range.from, range.to);\n return true;\n }\n }\n\n zoom(delta, coords) {\n const options = this.options;\n const min = this._index(options.min);\n const max = this._index(options.max);\n const from = this._index(options.from);\n const to = this._index(options.to);\n let range = { from: from, to: to };\n const oldRange = deepExtend({}, range);\n\n const { reverse } = this.categoryAxis.options;\n const origin = X + (reverse ? '2' : '1');\n const lineBox = this.categoryAxis.lineBox();\n const relative = Math.abs(lineBox[origin] - coords[X]);\n const size = lineBox.width();\n const position = round(relative / size, 2);\n const minDelta = round(position * delta);\n const maxDelta = round((1 - position) * delta);\n\n if (this._state) {\n range = this._state.range;\n }\n\n range.from = limitValue(\n limitValue(from - minDelta, 0, to - 1),\n min, max\n );\n\n range.to = limitValue(\n limitValue(to + maxDelta, range.from + 1, max),\n min,\n max\n );\n\n if (range.from !== oldRange.from || range.to !== oldRange.to) {\n this.set(range.from, range.to);\n return true;\n }\n }\n\n trigger(name, args) {\n return (this.observer || this.chart).trigger(name, args);\n }\n}\n\nsetDefaultOptions(Selection, {\n visible: true,\n mousewheel: {\n zoom: \"both\"\n },\n min: MIN_VALUE,\n max: MAX_VALUE\n});\n\nexport default Selection;\n","import BaseTooltip from './base-tooltip';\n\nimport { deepExtend } from '../../common';\n\nclass Tooltip extends BaseTooltip {\n show(point) {\n if (!point || !point.tooltipAnchor || (this._current && this._current === point)) {\n return;\n }\n\n const options = deepExtend({}, this.options, point.options.tooltip);\n const anchor = point.tooltipAnchor();\n\n if (anchor) {\n this._current = point;\n super.show({\n point: point,\n anchor: anchor\n }, options, point);\n } else {\n this.hide();\n }\n }\n\n hide() {\n delete this._current;\n super.hide();\n }\n}\n\nexport default Tooltip;","import BaseTooltip from './base-tooltip';\nimport { Point } from '../../core';\n\nimport { grep, setDefaultOptions } from '../../common';\n\nclass SharedTooltip extends BaseTooltip {\n constructor(plotArea, options) {\n super(plotArea.chartService, options);\n\n this.plotArea = plotArea;\n this.formatService = plotArea.chartService.format;\n }\n\n showAt(points, coords) {\n const tooltipPoints = grep(points, function(point) {\n const tooltip = point.series.tooltip;\n const excluded = tooltip && tooltip.visible === false;\n\n return !excluded;\n });\n\n if (tooltipPoints.length > 0) {\n const point = tooltipPoints[0];\n const slot = this.plotArea.categoryAxis.getSlot(point.categoryIx);\n\n const anchor = coords ? this._slotAnchor(coords, slot) : this._defaultAnchor(point, slot);\n\n this.show({\n anchor: anchor,\n shared: true,\n points: points,\n category: point.category,\n categoryText: this.formatService.auto(this.options.categoryFormat, point.category),\n series: this.plotArea.series\n }, this.options);\n }\n }\n\n _slotAnchor(point, slot) {\n const axis = this.plotArea.categoryAxis;\n const align = {\n horizontal: \"left\",\n vertical: \"center\"\n };\n\n if (!axis.options.vertical) {\n point.x = slot.center().x;\n }\n\n return {\n point: point,\n align: align\n };\n }\n\n _defaultAnchor(point, slot) {\n const box = point.owner.pane.chartsBox();\n const vertical = this.plotArea.categoryAxis.options.vertical;\n const center = box.center();\n const slotCenter = slot.center();\n const align = {\n horizontal: \"center\",\n vertical: \"center\"\n };\n\n let centerPoint;\n if (vertical) {\n centerPoint = new Point(center.x, slotCenter.y);\n } else {\n centerPoint = new Point(slotCenter.x, center.y);\n }\n\n return {\n point: centerPoint,\n align: align\n };\n }\n}\n\nsetDefaultOptions(SharedTooltip, {\n categoryFormat: '{0:d}'\n});\n\nexport default SharedTooltip;","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { INITIAL_ANIMATION_DURATION, BAR, START_SCALE } from '../constants';\n\nimport { X, Y } from '../../common/constants';\nimport { interpolateValue, setDefaultOptions } from '../../common';\n\nclass BarChartAnimation extends draw.Animation {\n\n setup() {\n const { element, options } = this;\n const bbox = element.bbox();\n\n if (bbox) {\n this.origin = options.origin;\n const axis = options.vertical ? Y : X;\n\n const fromScale = this.fromScale = new geom.Point(1, 1);\n fromScale[axis] = START_SCALE;\n\n element.transform(geom.transform()\n .scale(fromScale.x, fromScale.y)\n );\n } else {\n this.abort();\n }\n }\n\n step(pos) {\n const scaleX = interpolateValue(this.fromScale.x, 1, pos);\n const scaleY = interpolateValue(this.fromScale.y, 1, pos);\n\n this.element.transform(geom.transform()\n .scale(scaleX, scaleY, this.origin)\n );\n }\n\n abort() {\n super.abort();\n this.element.transform(null);\n }\n}\n\nsetDefaultOptions(BarChartAnimation, {\n duration: INITIAL_ANIMATION_DURATION\n});\n\ndraw.AnimationFactory.current.register(BAR, BarChartAnimation);\n\nexport default BarChartAnimation;","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { START_SCALE, BUBBLE } from '../constants';\n\nimport { setDefaultOptions } from '../../common';\n\nclass BubbleAnimation extends draw.Animation {\n setup() {\n const center = this.center = this.element.bbox().center();\n this.element.transform(geom.transform()\n .scale(START_SCALE, START_SCALE, center)\n );\n }\n\n step(pos) {\n this.element.transform(geom.transform()\n .scale(pos, pos, this.center)\n );\n }\n}\n\nsetDefaultOptions(BubbleAnimation, {\n easing: \"easeOutElastic\"\n});\n\ndraw.AnimationFactory.current.register(BUBBLE, BubbleAnimation);\n\nexport default BubbleAnimation;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { FADEIN } from '../constants';\n\nimport { setDefaultOptions } from '../../common';\n\nclass FadeInAnimation extends draw.Animation {\n setup() {\n this.fadeTo = this.element.opacity();\n this.element.opacity(0);\n }\n\n step(pos) {\n this.element.opacity(pos * this.fadeTo);\n }\n}\n\nsetDefaultOptions(FadeInAnimation, {\n duration: 200,\n easing: \"linear\"\n});\n\ndraw.AnimationFactory.current.register(FADEIN, FadeInAnimation);\n\nexport default FadeInAnimation;","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { START_SCALE, INITIAL_ANIMATION_DURATION, PIE } from '../constants';\n\nimport { setDefaultOptions } from '../../common';\n\nclass PieAnimation extends draw.Animation {\n setup() {\n this.element.transform(geom.transform()\n .scale(START_SCALE, START_SCALE, this.options.center)\n );\n }\n\n step(pos) {\n this.element.transform(geom.transform()\n .scale(pos, pos, this.options.center)\n );\n }\n}\n\nsetDefaultOptions(PieAnimation, {\n easing: \"easeOutElastic\",\n duration: INITIAL_ANIMATION_DURATION\n});\n\ndraw.AnimationFactory.current.register(PIE, PieAnimation);\n\nexport default PieAnimation;","import ScatterChart from './scatter-chart';\nimport LineChartMixin from '../mixins/line-chart-mixin';\nimport LineSegment from '../line-chart/line-segment';\nimport SplineSegment from '../line-chart/spline-segment';\n\nimport { SMOOTH, ZERO } from '../constants';\n\nimport hasValue from '../utils/has-value';\n\nimport { deepExtend } from '../../common';\n\nclass ScatterLineChart extends ScatterChart {\n render() {\n super.render();\n\n this.renderSegments();\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = currentSeries.style;\n let pointType;\n\n if (style === SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n\n return new pointType(linePoints, currentSeries, seriesIx);\n }\n\n animationPoints() {\n const points = super.animationPoints();\n return points.concat(this._segments);\n }\n\n createMissingValue(value, missingValues) {\n if (missingValues === ZERO) {\n const missingValue = {\n x: value.x,\n y: value.y\n };\n if (!hasValue(missingValue.x)) {\n missingValue.x = 0;\n }\n if (!hasValue(missingValue.y)) {\n missingValue.y = 0;\n }\n return missingValue;\n }\n }\n}\n\ndeepExtend(ScatterLineChart.prototype, LineChartMixin);\n\nexport default ScatterLineChart;","import autoMajorUnit from '../../core/utils/auto-major-unit';\nimport { valueOrDefault } from '../../common';\n\nfunction getScatterTrendlineData(valueMapper, range, options) {\n const data = [];\n let { xMin, xMax } = range;\n\n const forecast = (options || {}).forecast;\n if (forecast) {\n if (forecast.before > 0) {\n xMin -= forecast.before;\n }\n\n if (forecast.after > 0) {\n xMax += forecast.after;\n }\n }\n\n const samplingInterval = (options || {}).samplingInterval;\n let delta = valueOrDefault(samplingInterval, autoMajorUnit(xMin, xMax) / 10);\n if (samplingInterval <= 0) {\n delta = xMax - xMin;\n }\n\n for (let x = xMin; x <= xMax; x += delta) {\n data.push([\n x,\n valueMapper(x)\n ]);\n }\n\n return data;\n}\n\nexport default getScatterTrendlineData;\n","const scatterValueGetter = fieldName => ({ valueFields }) =>\n ({ xValue: valueFields.x, yValue: valueFields[fieldName] });\n\nexport default scatterValueGetter;\n","function xValueLimits(sourceValues, valueGetter) {\n let xMin = Number.MAX_VALUE;\n let xMax = Number.MIN_VALUE;\n\n for (let i = 0; i < sourceValues.length; i++) {\n const value = sourceValues[i];\n const { xValue, yValue } = valueGetter(value);\n\n if (isFinite(xValue) && xValue !== null && isFinite(yValue) && yValue !== null) {\n xMin = Math.min(xValue, xMin);\n xMax = Math.max(xValue, xMax);\n }\n }\n\n return { xMin, xMax };\n}\n\nexport default xValueLimits;\n","import {\n TRENDLINE_EXPONENTIAL,\n TRENDLINE_LINEAR,\n TRENDLINE_LOGARITHMIC,\n TRENDLINE_MOVING_AVERAGE,\n TRENDLINE_POLYNOMIAL,\n TRENDLINE_POWER\n} from '../constants';\nimport scatterExponentialTrendline from './scatter-exponential-trendline';\nimport scatterLinearTrendline from './scatter-linear-trendline';\nimport scatterLogarithmicTrendline from './scatter-logarithmic-trendline';\nimport scatterMovingAverageTrendline from './scatter-moving-average';\nimport scatterPolynomialTrendline from './scatter-polynomial-trendline';\nimport scatterPowerTrendline from './scatter-power-trendline';\n\nconst scatterRegistry = {};\nscatterRegistry[TRENDLINE_EXPONENTIAL] = scatterExponentialTrendline;\nscatterRegistry[TRENDLINE_LINEAR] = scatterLinearTrendline;\nscatterRegistry[TRENDLINE_LOGARITHMIC] = scatterLogarithmicTrendline;\nscatterRegistry[TRENDLINE_MOVING_AVERAGE] = scatterMovingAverageTrendline;\nscatterRegistry[TRENDLINE_POLYNOMIAL] = scatterPolynomialTrendline;\nscatterRegistry[TRENDLINE_POWER] = scatterPowerTrendline;\n\nexport default scatterRegistry;\n","import calculateSlope from './calculate-slope';\nimport checkAllPositive from './check-all-positive';\nimport getScatterTrendlineData from './get-scatter-trendline-data';\n\nfunction scatterExponentialTrendline(context) {\n const {\n options,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'scatterLine',\n data});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ valueFields }) =>\n ({ xValue: valueFields.x, yValue: Math.log(valueFields[fieldName]) });\n\nfunction getData({ seriesValues, options }) {\n const sourceValues = seriesValues();\n if (!checkAllPositive(sourceValues, options.field)) {\n return null;\n }\n\n let { slope, intercept, count, xMin, xMax } = calculateSlope(sourceValues, valueGetter(options.field));\n const range = { xMin, xMax };\n\n if (count > 0) {\n // Exponential trendline equation:\n // y = a * e ^ (b * x)\n const a = Math.exp(intercept);\n const b = slope;\n\n return getScatterTrendlineData(x => a * Math.exp(b * x), range, options.trendline);\n }\n\n return null;\n}\n\nexport default scatterExponentialTrendline;\n","import calculateSlope from './calculate-slope';\nimport getScatterTrendlineData from './get-scatter-trendline-data';\nimport scatterValueGetter from './scatter-value-getter';\n\nfunction scatterLinearTrendline(context) {\n const {\n options,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'scatterLine',\n data});\n }\n\n return null;\n}\n\nfunction getData({ seriesValues, options }) {\n let { slope, intercept, count, xMin, xMax } = calculateSlope(seriesValues(), scatterValueGetter(options.field));\n const range = { xMin, xMax };\n\n if (count > 0) {\n return getScatterTrendlineData(x => slope * x + intercept, range, options.trendline);\n }\n\n return null;\n}\n\nexport default scatterLinearTrendline;\n","import calculateSlope from './calculate-slope';\nimport checkAllPositive from './check-all-positive';\nimport getScatterTrendlineData from './get-scatter-trendline-data';\nimport xValueLimits from './x-value-limits';\n\nfunction scatterLogarithmicTrendline(context) {\n const {\n options,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'scatterLine',\n data});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ valueFields }) =>\n ({ xValue: valueFields.x, yValue: valueFields[fieldName] });\n\nconst logValueGetter = fieldName => ({ valueFields }) =>\n ({ xValue: Math.log(valueFields.x), yValue: valueFields[fieldName] });\n\nfunction getData({ seriesValues, options }) {\n const sourceValues = seriesValues();\n if (!checkAllPositive(sourceValues, 'x')) {\n return null;\n }\n\n let { slope, intercept, count } = calculateSlope(sourceValues, logValueGetter(options.field));\n let range = xValueLimits(sourceValues, valueGetter(options.field));\n\n if (count > 0) {\n // Logarithmic trendline equation:\n // y = a * ln (x) + b\n const a = slope;\n const b = intercept;\n\n return getScatterTrendlineData(x => a * Math.log(x) + b, range, options.trendline);\n }\n\n return null;\n}\n\nexport default scatterLogarithmicTrendline;\n","import calculateMovingAverage from './calculate-moving-average';\nimport { MIN_MOVING_AVERAGE_PERIOD } from '../constants';\nimport scatterValueGetter from './scatter-value-getter';\n\nfunction scatterMovingAverageTrendline(context) {\n const { options } = context;\n\n const data = getData(context);\n if (data) {\n return Object.assign({}, options,\n\n {type: 'scatterLine',\n data});\n }\n\n return null;\n}\n\nfunction getData({ options, seriesValues }) {\n const period = (options.trendline || {}).period || MIN_MOVING_AVERAGE_PERIOD;\n const range = { before: period, after: period };\n const data = calculateMovingAverage(seriesValues(range), scatterValueGetter(options.field), period);\n\n if (data.length > 0) {\n return data;\n }\n\n return null;\n}\n\nexport default scatterMovingAverageTrendline;\n","import getScatterTrendlineData from './get-scatter-trendline-data';\nimport scatterValueGetter from './scatter-value-getter';\nimport calculatePolynomial from './calculate-polynomial';\n\nfunction scatterPolynomialTrendline(context) {\n const {\n options,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'scatterLine',\n data});\n }\n\n return null;\n}\n\nfunction getData({ seriesValues, options }) {\n const order = (options.trendline || {}).order;\n const valueGetter = scatterValueGetter(options.field);\n const { count, valueMapper, xMin, xMax } = calculatePolynomial(seriesValues(), valueGetter, order);\n const range = { xMin, xMax };\n\n if (count > 0) {\n // Polynomial trendline equation:\n // y = aN * x^N + ... + a2 * x^2 + a1 * x + a0\n return getScatterTrendlineData(valueMapper, range, options.trendline);\n }\n\n return null;\n}\n\nexport default scatterPolynomialTrendline;\n","import calculateSlope from './calculate-slope';\nimport checkAllPositive from './check-all-positive';\nimport getScatterTrendlineData from './get-scatter-trendline-data';\nimport scatterValueGetter from './scatter-value-getter';\nimport xValueLimits from './x-value-limits';\n\nfunction scatterPowerTrendline(context) {\n const {\n options,\n seriesValues\n } = context;\n\n const data = getData({ seriesValues, options });\n if (data) {\n return Object.assign({}, options,\n\n {type: 'scatterLine',\n data});\n }\n\n return null;\n}\n\nconst valueGetter = fieldName => ({ valueFields }) =>\n ({ xValue: Math.log(valueFields.x), yValue: Math.log(valueFields[fieldName]) });\n\nfunction getData({ seriesValues, options }) {\n const sourceValues = seriesValues();\n if (!checkAllPositive(sourceValues, 'x')) {\n return null;\n }\n\n let { slope, intercept, count } = calculateSlope(sourceValues, valueGetter(options.field));\n let range = xValueLimits(sourceValues, scatterValueGetter(options.field));\n\n if (count > 0) {\n // Power trendline equation:\n // y = a * x ^ b\n const a = Math.exp(intercept);\n const b = slope;\n return getScatterTrendlineData(x => a * Math.pow(x, b), range, options.trendline);\n }\n\n return null;\n}\n\nexport default scatterPowerTrendline;\n","import PlotAreaBase from './plotarea-base';\nimport AxisGroupRangeTracker from '../axis-group-range-tracker';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\nimport ScatterChart from '../scatter-charts/scatter-chart';\nimport ScatterLineChart from '../scatter-charts/scatter-line-chart';\nimport BubbleChart from '../bubble-chart/bubble-chart';\nimport SeriesBinder from '../series-binder';\nimport trendlineFactory from '../trendlines/trendline-factory';\nimport scatterTrendlineRegistry from '../trendlines/scatter-trendline-registry';\n\nimport { NumericAxis, LogarithmicAxis, DateValueAxis, Point } from '../../core';\n\nimport { filterSeriesByType, equalsIgnoreCase, singleItemOrArray } from '../utils';\n\nimport { SCATTER, SCATTER_LINE, BUBBLE, LOGARITHMIC } from '../constants';\n\nimport { DATE } from '../../common/constants';\nimport { deepExtend, eventElement, grep, inArray, setDefaultOptions } from '../../common';\n\nclass XYPlotArea extends PlotAreaBase {\n initFields() {\n this.namedXAxes = {};\n this.namedYAxes = {};\n\n this.xAxisRangeTracker = new AxisGroupRangeTracker();\n this.yAxisRangeTracker = new AxisGroupRangeTracker();\n }\n\n render(panes = this.panes) {\n this.series = [...this.originalSeries];\n this.createTrendlineSeries();\n\n const seriesByPane = this.groupSeriesByPane();\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n const paneSeries = seriesByPane[pane.options.name || \"default\"] || [];\n this.addToLegend(paneSeries);\n const filteredSeries = this.filterVisibleSeries(paneSeries);\n\n if (!filteredSeries) {\n continue;\n }\n\n this.createScatterChart(\n filterSeriesByType(filteredSeries, SCATTER),\n pane\n );\n\n this.createScatterLineChart(\n filterSeriesByType(filteredSeries, SCATTER_LINE),\n pane\n );\n\n this.createBubbleChart(\n filterSeriesByType(filteredSeries, BUBBLE),\n pane\n );\n }\n\n this.createAxes(panes);\n }\n\n appendChart(chart, pane) {\n this.xAxisRangeTracker.update(chart.xAxisRanges);\n this.yAxisRangeTracker.update(chart.yAxisRanges);\n\n super.appendChart(chart, pane);\n }\n\n removeAxis(axis) {\n const axisName = axis.options.name;\n\n super.removeAxis(axis);\n\n if (axis.options.vertical) {\n this.yAxisRangeTracker.reset(axisName);\n delete this.namedYAxes[axisName];\n } else {\n this.xAxisRangeTracker.reset(axisName);\n delete this.namedXAxes[axisName];\n }\n\n if (axis === this.axisX) {\n delete this.axisX;\n }\n\n if (axis === this.axisY) {\n delete this.axisY;\n }\n }\n\n // TODO: Refactor, optionally use series.pane option\n seriesPaneName(series) {\n const options = this.options;\n const xAxisName = series.xAxis;\n const xAxisOptions = [].concat(options.xAxis);\n const xAxis = grep(xAxisOptions, function(a) { return a.name === xAxisName; })[0];\n const yAxisName = series.yAxis;\n const yAxisOptions = [].concat(options.yAxis);\n const yAxis = grep(yAxisOptions, function(a) { return a.name === yAxisName; })[0];\n const panes = options.panes || [ {} ];\n const defaultPaneName = panes[0].name || \"default\";\n const paneName = (xAxis || {}).pane || (yAxis || {}).pane || defaultPaneName;\n\n return paneName;\n }\n\n createScatterChart(series, pane) {\n if (series.length > 0) {\n this.appendChart(\n new ScatterChart(this, { series: series, clip: pane.options.clip }),\n pane\n );\n }\n }\n\n createScatterLineChart(series, pane) {\n if (series.length > 0) {\n this.appendChart(\n new ScatterLineChart(this, { series: series, clip: pane.options.clip }),\n pane\n );\n }\n }\n\n createBubbleChart(series, pane) {\n if (series.length > 0) {\n this.appendChart(\n new BubbleChart(this, { series: series, clip: pane.options.clip }),\n pane\n );\n }\n }\n\n createXYAxis(options, vertical, axisIndex) {\n const axisName = options.name;\n const namedAxes = vertical ? this.namedYAxes : this.namedXAxes;\n const tracker = vertical ? this.yAxisRangeTracker : this.xAxisRangeTracker;\n const axisOptions = deepExtend({ reverse: !vertical && this.chartService.rtl }, options, { vertical: vertical });\n const isLog = equalsIgnoreCase(axisOptions.type, LOGARITHMIC);\n const defaultRange = tracker.query();\n const defaultAxisRange = isLog ? { min: 0.1, max: 1 } : { min: 0, max: 1 };\n const range = tracker.query(axisName) || defaultRange || defaultAxisRange;\n const typeSamples = [ axisOptions.min, axisOptions.max ];\n const series = this.series;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const seriesAxisName = currentSeries[vertical ? \"yAxis\" : \"xAxis\"];\n if ((seriesAxisName === axisOptions.name) || (axisIndex === 0 && !seriesAxisName)) {\n const firstPointValue = SeriesBinder.current.bindPoint(currentSeries, 0).valueFields;\n typeSamples.push(firstPointValue[vertical ? \"y\" : \"x\"]);\n\n break;\n }\n }\n\n if (axisIndex === 0 && defaultRange) {\n range.min = Math.min(range.min, defaultRange.min);\n range.max = Math.max(range.max, defaultRange.max);\n }\n\n let inferredDate;\n\n for (let i = 0; i < typeSamples.length; i++) {\n if (typeSamples[i] instanceof Date) {\n inferredDate = true;\n break;\n }\n }\n\n let axisType;\n if (equalsIgnoreCase(axisOptions.type, DATE) || (!axisOptions.type && inferredDate)) {\n axisType = DateValueAxis;\n } else if (isLog) {\n axisType = LogarithmicAxis;\n } else {\n axisType = NumericAxis;\n }\n\n const axis = new axisType(range.min, range.max, axisOptions, this.chartService);\n axis.axisIndex = axisIndex;\n\n if (axisName) {\n if (namedAxes[axisName]) {\n throw new Error(`${ vertical ? \"Y\" : \"X\" } axis with name ${ axisName } is already defined`);\n }\n namedAxes[axisName] = axis;\n }\n\n this.appendAxis(axis);\n\n return axis;\n }\n\n createAxes(panes) {\n const options = this.options;\n const xAxesOptions = [].concat(options.xAxis);\n const xAxes = [];\n const yAxesOptions = [].concat(options.yAxis);\n const yAxes = [];\n\n for (let idx = 0; idx < xAxesOptions.length; idx++) {\n const axisPane = this.findPane(xAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n xAxes.push(this.createXYAxis(xAxesOptions[idx], false, idx));\n }\n }\n\n for (let idx = 0; idx < yAxesOptions.length; idx++) {\n const axisPane = this.findPane(yAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n yAxes.push(this.createXYAxis(yAxesOptions[idx], true, idx));\n }\n }\n\n this.axisX = this.axisX || xAxes[0];\n this.axisY = this.axisY || yAxes[0];\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const allAxes = this.axes;\n const length = allAxes.length;\n const xValues = [];\n const yValues = [];\n\n for (let i = 0; i < length; i++) {\n const axis = allAxes[i];\n const values = axis.options.vertical ? yValues : xValues;\n const currentValue = axis.getValue(point);\n if (currentValue !== null) {\n values.push(currentValue);\n }\n }\n\n if (xValues.length > 0 && yValues.length > 0) {\n chart.trigger(eventType, {\n element: eventElement(e),\n originalEvent: e,\n x: singleItemOrArray(xValues),\n y: singleItemOrArray(yValues)\n });\n }\n }\n\n updateAxisOptions(axis, options) {\n const vertical = axis.options.vertical;\n const axes = this.groupAxes(this.panes);\n const index = (vertical ? axes.y : axes.x).indexOf(axis);\n\n updateAxisOptions(this.options, index, vertical, options);\n updateAxisOptions(this.originalOptions, index, vertical, options);\n }\n\n trendlineFactory(options, series) {\n const seriesValues = this.seriesValues.bind(this, series.index);\n\n const trendline = trendlineFactory(scatterTrendlineRegistry, options.type, {\n options,\n seriesValues\n });\n\n if (trendline) {\n // Inherit settings\n trendline.xAxis = series.xAxis;\n trendline.yAxis = series.yAxis;\n }\n\n return trendline;\n }\n\n seriesValues(seriesIx) {\n const result = [];\n const currentSeries = this.series[seriesIx];\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const data = this.bindPoint(currentSeries, pointIx);\n result.push({ pointIx, valueFields: data.valueFields });\n }\n\n return result;\n }\n}\n\nfunction updateAxisOptions(targetOptions, axisIndex, vertical, options) {\n const axisOptions = ([].concat(vertical ? targetOptions.yAxis : targetOptions.xAxis))[axisIndex];\n deepExtend(axisOptions, options);\n}\n\nsetDefaultOptions(XYPlotArea, {\n xAxis: {},\n yAxis: {}\n});\n\ndeepExtend(XYPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default XYPlotArea;\n","import { drawing as draw, geometry as geom } from '@progress/kendo-drawing';\n\nimport { ChartElement, ShapeBuilder, TextBox, Box } from '../../core';\n\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nimport { OUTSIDE_END, INSIDE_END, PIE, FADEIN, TOOLTIP_OFFSET, CHART_POINT_ROLE, CHART_POINT_CLASSNAME, CHART_POINT_ROLE_DESCRIPTION } from '../constants';\nimport hasGradientOverlay from '../utils/has-gradient-overlay';\n\nimport { TOP, BOTTOM, LEFT, RIGHT, DEFAULT_FONT, CIRCLE, WHITE, CENTER, DEFAULT_PRECISION } from '../../common/constants';\nimport { autoTextColor, setDefaultOptions, getSpacing, getTemplate, deepExtend, round, rad } from '../../common';\nimport AccessibilityAttributesMixin from '../mixins/accessibility-attributes-mixin';\n\nclass PieSegment extends ChartElement {\n constructor(value, sector, options) {\n super(options);\n\n this.value = value;\n this.sector = sector;\n }\n\n render() {\n if (this._rendered || this.visible === false) {\n return;\n }\n this._rendered = true;\n\n this.createLabel();\n }\n\n createLabel() {\n const labels = this.options.labels;\n const chartService = this.owner.chartService;\n let labelText = this.getLabelText(labels);\n\n if (labels.visible && (labelText || labelText === 0)) {\n if (labels.position === CENTER || labels.position === INSIDE_END) {\n if (!labels.color) {\n labels.color = autoTextColor(this.options.color);\n }\n if (!labels.background) {\n labels.background = this.options.color;\n }\n } else {\n const themeLabels = chartService.theme.seriesDefaults.labels;\n labels.color = labels.color || themeLabels.color;\n labels.background = labels.background || themeLabels.background;\n }\n\n\n this.label = new TextBox(labelText, deepExtend({}, labels, {\n align: CENTER,\n vAlign: \"\",\n animation: {\n type: FADEIN,\n delay: this.animationDelay\n }\n }), this.pointData());\n\n this.append(this.label);\n }\n }\n\n getLabelText(options) {\n let labelTemplate = getTemplate(options);\n\n if (labelTemplate) {\n return labelTemplate(this.pointData());\n }\n\n return this.owner.chartService.format.auto(options.format, this.value);\n }\n\n reflow(targetBox) {\n this.render();\n this.box = targetBox;\n this.reflowLabel();\n }\n\n reflowLabel() {\n const { options: { labels: labelsOptions }, label } = this;\n const sector = this.sector.clone();\n const labelsDistance = labelsOptions.distance;\n const angle = sector.middle();\n\n if (label) {\n const labelHeight = label.box.height();\n const labelWidth = label.box.width();\n let lp;\n\n if (labelsOptions.position === CENTER) {\n sector.radius = Math.abs((sector.radius - labelHeight) / 2) + labelHeight;\n lp = sector.point(angle);\n label.reflow(new Box(lp.x, lp.y - labelHeight / 2, lp.x, lp.y));\n } else if (labelsOptions.position === INSIDE_END) {\n sector.radius = sector.radius - labelHeight / 2;\n lp = sector.point(angle);\n label.reflow(new Box(lp.x, lp.y - labelHeight / 2, lp.x, lp.y));\n } else {\n let x1;\n lp = sector.clone().expand(labelsDistance).point(angle);\n if (lp.x >= sector.center.x) {\n x1 = lp.x + labelWidth;\n label.orientation = RIGHT;\n } else {\n x1 = lp.x - labelWidth;\n label.orientation = LEFT;\n }\n label.reflow(new Box(x1, lp.y - labelHeight, lp.x, lp.y));\n }\n }\n }\n\n createVisual() {\n const { sector, options } = this;\n\n super.createVisual();\n\n this.addAccessibilityAttributesToVisual();\n\n if (this.value) {\n if (options.visual) {\n const startAngle = (sector.startAngle + 180) % 360;\n const visual = options.visual({\n category: this.category,\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n percentage: this.percentage,\n center: new geom.Point(sector.center.x, sector.center.y),\n radius: sector.radius,\n innerRadius: sector.innerRadius,\n startAngle: startAngle,\n endAngle: startAngle + sector.angle,\n options: options,\n sender: this.getSender(),\n createVisual: () => {\n const group = new draw.Group();\n this.createSegmentVisual(group);\n\n return group;\n }\n });\n\n if (visual) {\n this.visual.append(visual);\n }\n } else {\n this.createSegmentVisual(this.visual);\n }\n }\n }\n\n createSegmentVisual(group) {\n const { sector, options } = this;\n const borderOptions = options.border || {};\n const border = borderOptions.width > 0 ? {\n stroke: {\n color: borderOptions.color,\n width: borderOptions.width,\n opacity: borderOptions.opacity,\n dashType: borderOptions.dashType\n }\n } : {};\n const color = options.color;\n const fill = {\n color: color,\n opacity: options.opacity\n };\n const visual = this.createSegment(sector, deepExtend({\n fill: fill,\n stroke: {\n opacity: options.opacity\n },\n zIndex: options.zIndex\n }, border));\n\n group.append(visual);\n\n if (hasGradientOverlay(options)) {\n group.append(this.createGradientOverlay(visual, {\n baseColor: color,\n fallbackFill: fill\n }, deepExtend({\n center: [ sector.center.x, sector.center.y ],\n innerRadius: sector.innerRadius,\n radius: sector.radius,\n userSpace: true\n }, options.overlay)));\n }\n }\n\n createSegment(sector, options) {\n if (options.singleSegment) {\n return new draw.Circle(new geom.Circle(new geom.Point(sector.center.x, sector.center.y), sector.radius), options);\n }\n\n return ShapeBuilder.current.createRing(sector, options);\n }\n\n createAnimation() {\n const { options, sector: { center } } = this;\n\n deepExtend(options, {\n animation: {\n center: [ center.x, center.y ],\n delay: this.animationDelay\n }\n });\n\n super.createAnimation();\n }\n\n createHighlight(options) {\n const highlight = this.options.highlight || {};\n const border = highlight.border || {};\n\n return this.createSegment(this.sector, deepExtend({}, options, {\n fill: {\n color: highlight.color,\n opacity: highlight.opacity\n },\n stroke: {\n opacity: border.opacity,\n width: border.width,\n color: border.color\n }\n }));\n }\n\n highlightVisual() {\n return this.visual.children[0];\n }\n\n highlightVisualArgs() {\n const sector = this.sector;\n\n return {\n options: this.options,\n radius: sector.radius,\n innerRadius: sector.innerRadius,\n center: new geom.Point(sector.center.x, sector.center.y),\n startAngle: sector.startAngle,\n endAngle: sector.angle + sector.startAngle,\n visual: this.visual\n };\n }\n\n createFocusHighlight(style) {\n const borderWidth = this.options.accessibility.highlight.border.width;\n const result = this.createSegment(this.sector, deepExtend({}, style, {\n stroke: {\n width: borderWidth * 2\n }\n }));\n\n const clipPath = new draw.MultiPath();\n\n clipPath.paths.push(draw.Path.fromRect(result.bbox()));\n clipPath.paths.push(this.createSegment(this.sector, {}));\n\n result.clip(clipPath);\n\n return result;\n }\n\n tooltipAnchor() {\n const sector = this.sector.clone().expand(TOOLTIP_OFFSET);\n const midAndle = sector.middle();\n const midPoint = sector.point(midAndle);\n\n return {\n point: midPoint,\n align: tooltipAlignment(midAndle + 180)\n };\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n series: this.series,\n percentage: this.percentage\n };\n }\n\n getIndex() {\n return this.index;\n }\n}\n\nconst RAD_30 = round(rad(30), DEFAULT_PRECISION);\nconst RAD_60 = round(rad(60), DEFAULT_PRECISION);\n\nfunction tooltipAlignment(angle) {\n const radians = rad(angle);\n const sine = round(Math.sin(radians), DEFAULT_PRECISION);\n const cosine = round(Math.cos(radians), DEFAULT_PRECISION);\n\n\n let horizontal;\n if (Math.abs(sine) > RAD_60) {\n horizontal = CENTER;\n } else if (cosine < 0) {\n horizontal = RIGHT;\n } else {\n horizontal = LEFT;\n }\n\n let vertical;\n if (Math.abs(sine) < RAD_30) {\n vertical = CENTER;\n } else if (sine < 0) {\n vertical = BOTTOM;\n } else {\n vertical = TOP;\n }\n\n return {\n horizontal: horizontal,\n vertical: vertical\n };\n}\n\nsetDefaultOptions(PieSegment, {\n color: WHITE,\n overlay: {\n gradient: \"roundedBevel\"\n },\n border: {\n width: 0.5\n },\n labels: {\n visible: false,\n distance: 35,\n font: DEFAULT_FONT,\n margin: getSpacing(0.5),\n align: CIRCLE,\n zIndex: 1,\n position: OUTSIDE_END\n },\n animation: {\n type: PIE\n },\n highlight: {\n visible: true,\n border: {\n width: 1\n }\n },\n visible: true,\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n});\n\ndeepExtend(PieSegment.prototype, PointEventsMixin);\ndeepExtend(PieSegment.prototype, AccessibilityAttributesMixin);\n\nexport default PieSegment;\n","import { getTemplate } from '../../common';\nimport { hasValue } from '../utils';\n\nconst PieChartMixin = {\n createLegendItem: function(value, point, options) {\n const legendOptions = this.options.legend || {};\n const labelsOptions = legendOptions.labels || {};\n const inactiveItems = legendOptions.inactiveItems || {};\n const inactiveItemsLabels = inactiveItems.labels || {};\n\n if (options && options.visibleInLegend !== false) {\n const pointVisible = options.visible !== false;\n const labelTemplate = pointVisible ? getTemplate(labelsOptions) :\n getTemplate(inactiveItemsLabels) || getTemplate(labelsOptions);\n let text = options.category;\n\n if (labelTemplate) {\n text = labelTemplate({\n text: text,\n series: options.series,\n dataItem: options.dataItem,\n percentage: options.percentage,\n value: value\n });\n }\n\n let itemLabelOptions, markerColor;\n if (pointVisible) {\n itemLabelOptions = {};\n markerColor = point.color;\n } else {\n itemLabelOptions = {\n color: inactiveItemsLabels.color,\n font: inactiveItemsLabels.font\n };\n markerColor = (inactiveItems.markers || {}).color;\n }\n\n if (hasValue(text) && text !== \"\") {\n this.legendItems.push({\n active: pointVisible,\n pointIndex: options.index,\n text: text,\n series: options.series,\n markerColor: markerColor,\n labels: itemLabelOptions\n });\n }\n }\n }\n};\n\nexport default PieChartMixin;","import { drawing as draw, geometry } from '@progress/kendo-drawing';\n\nimport PieSegment from './pie-segment';\nimport PieChartMixin from '../mixins/pie-chart-mixin';\nimport { ChartElement, Ring, Box, Point } from '../../core';\n\nimport { OUTSIDE_END, FADEIN, COLUMN } from '../constants';\nimport { bindSegments, evalOptions } from '../utils';\n\nimport { CIRCLE, RIGHT, CENTER } from '../../common/constants';\nimport { deepExtend, defined, find, isFunction, last, round, setDefaultOptions, valueOrDefault } from '../../common';\n\nconst PIE_SECTOR_ANIM_DELAY = 70;\n\nclass PieChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this.points = [];\n this.legendItems = [];\n this.render();\n }\n\n render() {\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n traverseDataPoints(callback) {\n const { options, plotArea: { options: { seriesColors = [] } } } = this;\n const colorsCount = seriesColors.length;\n const series = options.series;\n const seriesCount = series.length;\n\n for (let seriesIx = 0; seriesIx < seriesCount; seriesIx++) {\n const currentSeries = series[seriesIx];\n const data = currentSeries.data;\n const { total, points, count } = bindSegments(currentSeries);\n const anglePerValue = 360 / total;\n let constantAngle;\n if (!isFinite(anglePerValue)) {\n constantAngle = 360 / count;\n }\n let currentAngle;\n\n if (defined(currentSeries.startAngle)) {\n currentAngle = currentSeries.startAngle;\n } else {\n currentAngle = options.startAngle;\n }\n\n if (seriesIx !== seriesCount - 1) {\n if (currentSeries.labels.position === OUTSIDE_END) {\n currentSeries.labels.position = CENTER;\n }\n }\n\n for (let i = 0; i < points.length; i++) {\n const pointData = points[i];\n if (!pointData) {\n continue;\n }\n\n const { fields, value, visible } = pointData;\n const angle = value !== 0 ? (constantAngle || (value * anglePerValue)) : 0;\n const explode = data.length !== 1 && Boolean(fields.explode);\n\n if (!isFunction(currentSeries.color)) {\n currentSeries.color = fields.color || seriesColors[i % colorsCount];\n }\n\n callback(value, new Ring(null, 0, 0, currentAngle, angle), {\n owner: this,\n category: defined(fields.category) ? fields.category : \"\",\n index: i,\n series: currentSeries,\n seriesIx: seriesIx,\n dataItem: data[i],\n percentage: total !== 0 ? value / total : 0,\n explode: explode,\n visibleInLegend: fields.visibleInLegend,\n visible: visible,\n zIndex: seriesCount - seriesIx,\n animationDelay: this.animationDelay(i, seriesIx, seriesCount)\n });\n\n if (visible !== false) {\n currentAngle += angle;\n }\n }\n }\n }\n\n evalSegmentOptions(options, value, fields) {\n const series = fields.series;\n\n evalOptions(options, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n category: fields.category,\n percentage: fields.percentage\n }, { defaults: series._defaults, excluded: [\n \"data\", \"content\", \"template\", \"visual\", \"toggle\",\n \"ariaTemplate\", \"ariaContent\"\n ] });\n }\n\n addValue(value, sector, fields) {\n const segmentOptions = deepExtend({}, fields.series, { index: fields.index });\n this.evalSegmentOptions(segmentOptions, value, fields);\n\n this.createLegendItem(value, segmentOptions, fields);\n\n if (fields.visible === false) {\n return;\n }\n\n const segment = new PieSegment(value, sector, segmentOptions);\n Object.assign(segment, fields);\n this.append(segment);\n this.points.push(segment);\n }\n\n reflow(targetBox) {\n const { options, points, seriesConfigs = [] } = this;\n const count = points.length;\n const box = targetBox.clone();\n const space = 5;\n const minWidth = Math.min(box.width(), box.height());\n const halfMinWidth = minWidth / 2;\n const defaultPadding = minWidth - minWidth * 0.85;\n const newBox = new Box(box.x1, box.y1, box.x1 + minWidth, box.y1 + minWidth);\n const newBoxCenter = newBox.center();\n const boxCenter = box.center();\n const seriesCount = options.series.length;\n const leftSideLabels = [];\n const rightSideLabels = [];\n let padding = valueOrDefault(options.padding, defaultPadding);\n\n this.targetBox = targetBox;\n\n padding = padding > halfMinWidth - space ? halfMinWidth - space : padding;\n newBox.translate(boxCenter.x - newBoxCenter.x, boxCenter.y - newBoxCenter.y);\n\n const radius = halfMinWidth - padding;\n const center = new Point(\n radius + newBox.x1 + padding,\n radius + newBox.y1 + padding\n );\n\n for (let i = 0; i < count; i++) {\n const segment = points[i];\n const sector = segment.sector;\n const seriesIndex = segment.seriesIx;\n sector.radius = radius;\n sector.center = center;\n\n if (seriesConfigs.length) {\n const seriesConfig = seriesConfigs[seriesIndex];\n sector.innerRadius = seriesConfig.innerRadius;\n sector.radius = seriesConfig.radius;\n }\n\n if (seriesIndex === seriesCount - 1 && segment.explode) {\n sector.center = sector.clone().setRadius(sector.radius * 0.15).point(sector.middle());\n }\n\n segment.reflow(newBox);\n\n const label = segment.label;\n if (label) {\n if (label.options.position === OUTSIDE_END) {\n if (seriesIndex === seriesCount - 1) {\n if (label.orientation === RIGHT) {\n rightSideLabels.push(label);\n } else {\n leftSideLabels.push(label);\n }\n }\n }\n }\n }\n\n if (leftSideLabels.length > 0) {\n leftSideLabels.sort(this.labelComparator(true));\n this.leftLabelsReflow(leftSideLabels);\n }\n\n if (rightSideLabels.length > 0) {\n rightSideLabels.sort(this.labelComparator(false));\n this.rightLabelsReflow(rightSideLabels);\n }\n\n this.box = newBox;\n }\n\n leftLabelsReflow(labels) {\n const distances = this.distanceBetweenLabels(labels);\n\n this.distributeLabels(distances, labels);\n }\n\n rightLabelsReflow(labels) {\n const distances = this.distanceBetweenLabels(labels);\n\n this.distributeLabels(distances, labels);\n }\n\n distanceBetweenLabels(labels) {\n const segment = last(this.points);\n const sector = segment.sector;\n const count = labels.length - 1;\n const lr = sector.radius + segment.options.labels.distance;\n const distances = [];\n let firstBox = labels[0].box;\n let distance = round(firstBox.y1 - (sector.center.y - lr - firstBox.height() - firstBox.height() / 2));\n\n distances.push(distance);\n\n for (let i = 0; i < count; i++) {\n const secondBox = labels[i + 1].box;\n\n firstBox = labels[i].box;\n distance = round(secondBox.y1 - firstBox.y2);\n distances.push(distance);\n }\n distance = round(sector.center.y + lr - labels[count].box.y2 - labels[count].box.height() / 2);\n distances.push(distance);\n\n return distances;\n }\n\n distributeLabels(distances, labels) {\n const count = distances.length;\n let left, right, remaining;\n\n for (let i = 0; i < count; i++) {\n remaining = -distances[i];\n left = right = i;\n\n while (remaining > 0 && (left >= 0 || right < count)) {\n remaining = this._takeDistance(distances, i, --left, remaining);\n remaining = this._takeDistance(distances, i, ++right, remaining);\n }\n }\n\n this.reflowLabels(distances, labels);\n }\n\n _takeDistance(distances, anchor, position, amount) {\n let result = amount;\n if (distances[position] > 0) {\n const available = Math.min(distances[position], result);\n result -= available;\n distances[position] -= available;\n distances[anchor] += available;\n }\n\n return result;\n }\n\n reflowLabels(distances, labels) {\n const segment = last(this.points);\n const sector = segment.sector;\n const labelOptions = segment.options.labels;\n const labelsCount = labels.length;\n const labelDistance = labelOptions.distance;\n let boxY = sector.center.y - (sector.radius + labelDistance) - labels[0].box.height();\n let boxX;\n\n distances[0] += 2;\n for (let i = 0; i < labelsCount; i++) {\n const label = labels[i];\n const box = label.box;\n\n boxY += distances[i];\n boxX = this.hAlignLabel(\n box.x2,\n sector.clone().expand(labelDistance),\n boxY,\n boxY + box.height(),\n label.orientation === RIGHT);\n\n if (label.orientation === RIGHT) {\n if (labelOptions.align !== CIRCLE) {\n boxX = sector.radius + sector.center.x + labelDistance;\n }\n label.reflow(new Box(boxX + box.width(), boxY, boxX, boxY));\n } else {\n if (labelOptions.align !== CIRCLE) {\n boxX = sector.center.x - sector.radius - labelDistance;\n }\n label.reflow(new Box(boxX - box.width(), boxY, boxX, boxY));\n }\n\n boxY += box.height();\n }\n }\n\n createVisual() {\n const { options: { connectors }, points } = this;\n const count = points.length;\n const space = 4;\n\n super.createVisual();\n\n this._connectorLines = [];\n\n for (let i = 0; i < count; i++) {\n const segment = points[i];\n const { sector, label } = segment;\n const angle = sector.middle();\n const connectorsColor = (segment.options.connectors || {}).color || connectors.color;\n\n if (label) {\n const connectorLine = new draw.Path({\n stroke: {\n color: connectorsColor,\n width: connectors.width\n },\n animation: {\n type: FADEIN,\n delay: segment.animationDelay\n }\n });\n\n if (label.options.position === OUTSIDE_END) {\n const box = label.box;\n const centerPoint = sector.center;\n let start = sector.point(angle);\n let middle = new Point(box.x1, box.center().y);\n let sr, end, crossing;\n\n start = sector.clone().expand(connectors.padding).point(angle);\n connectorLine.moveTo(start.x, start.y);\n // TODO: Extract into a method to remove duplication\n if (label.orientation === RIGHT) {\n end = new Point(box.x1 - connectors.padding, box.center().y);\n crossing = intersection(centerPoint, start, middle, end);\n middle = new Point(end.x - space, end.y);\n crossing = crossing || middle;\n crossing.x = Math.min(crossing.x, middle.x);\n\n if (this.pointInCircle(crossing, sector.center, sector.radius + space) ||\n crossing.x < sector.center.x) {\n sr = sector.center.x + sector.radius + space;\n if (segment.options.labels.align !== COLUMN) {\n if (sr < middle.x) {\n connectorLine.lineTo(sr, start.y);\n } else {\n connectorLine.lineTo(start.x + space * 2, start.y);\n }\n } else {\n connectorLine.lineTo(sr, start.y);\n }\n connectorLine.lineTo(middle.x, end.y);\n } else {\n crossing.y = end.y;\n connectorLine.lineTo(crossing.x, crossing.y);\n }\n } else {\n end = new Point(box.x2 + connectors.padding, box.center().y);\n crossing = intersection(centerPoint, start, middle, end);\n middle = new Point(end.x + space, end.y);\n crossing = crossing || middle;\n crossing.x = Math.max(crossing.x, middle.x);\n\n if (this.pointInCircle(crossing, sector.center, sector.radius + space) ||\n crossing.x > sector.center.x) {\n sr = sector.center.x - sector.radius - space;\n if (segment.options.labels.align !== COLUMN) {\n if (sr > middle.x) {\n connectorLine.lineTo(sr, start.y);\n } else {\n connectorLine.lineTo(start.x - space * 2, start.y);\n }\n } else {\n connectorLine.lineTo(sr, start.y);\n }\n connectorLine.lineTo(middle.x, end.y);\n } else {\n crossing.y = end.y;\n connectorLine.lineTo(crossing.x, crossing.y);\n }\n }\n\n connectorLine.lineTo(end.x, end.y);\n\n this._connectorLines.push(connectorLine);\n this.visual.append(connectorLine);\n }\n }\n }\n }\n\n renderVisual() {\n super.renderVisual();\n\n if (find(this.options.series, options => options.autoFit)) {\n const targetBox = this.targetBox;\n const pieCenter = this.box.center();\n const bbox = this.visual.bbox();\n if (!bbox) {\n return;\n }\n\n const bboxBottom = bbox.bottomRight();\n\n const scale = Math.min(\n (pieCenter.y - targetBox.y1) / (pieCenter.y - bbox.origin.y),\n (targetBox.y2 - pieCenter.y) / (bboxBottom.y - pieCenter.y),\n (pieCenter.x - targetBox.x1) / (pieCenter.x - bbox.origin.x),\n (targetBox.x2 - pieCenter.x) / (bboxBottom.x - pieCenter.x)\n );\n\n if (scale < 1) {\n this.visual.transform(geometry.transform().scale(scale, scale, [ pieCenter.x, pieCenter.y ]));\n }\n }\n }\n\n labelComparator(reverse) {\n const reverseValue = reverse ? -1 : 1;\n\n return function(a, b) {\n const first = (a.parent.sector.middle() + 270) % 360;\n const second = (b.parent.sector.middle() + 270) % 360;\n return (first - second) * reverseValue;\n };\n }\n\n hAlignLabel(originalX, sector, y1, y2, direction) {\n const { radius, center: { x: cx, y: cy } } = sector;\n const t = Math.min(Math.abs(cy - y1), Math.abs(cy - y2));\n\n if (t > radius) {\n return originalX;\n }\n\n return cx + Math.sqrt((radius * radius) - (t * t)) * (direction ? 1 : -1);\n }\n\n pointInCircle(point, center, radius) {\n return Math.pow(center.x - point.x, 2) + Math.pow(center.y - point.y, 2) < Math.pow(radius, 2);\n }\n\n formatPointValue(point, format) {\n return this.chartService.format.auto(format, point.value);\n }\n\n animationDelay(categoryIndex) {\n return categoryIndex * PIE_SECTOR_ANIM_DELAY;\n }\n\n stackRoot() {\n return this;\n }\n}\n\nfunction intersection(a1, a2, b1, b2) {\n const uat = (b2.x - b1.x) * (a1.y - b1.y) - (b2.y - b1.y) * (a1.x - b1.x);\n const ub = (b2.y - b1.y) * (a2.x - a1.x) - (b2.x - b1.x) * (a2.y - a1.y);\n\n let result;\n if (ub !== 0) {\n const ua = (uat / ub);\n\n result = new Point(\n a1.x + ua * (a2.x - a1.x),\n a1.y + ua * (a2.y - a1.y)\n );\n }\n\n return result;\n}\n\nsetDefaultOptions(PieChart, {\n startAngle: 90,\n connectors: {\n width: 2,\n color: \"#939393\",\n padding: 8\n },\n inactiveItems: {\n markers: {},\n labels: {}\n }\n});\n\ndeepExtend(PieChart.prototype, PieChartMixin);\n\nPieChart.prototype.isStackRoot = true;\n\nexport default PieChart;\n","import PlotAreaBase from './plotarea-base';\nimport PieChart from '../pie-chart/pie-chart';\n\nimport { append } from '../../common';\n\nclass PiePlotArea extends PlotAreaBase {\n render() {\n this.createPieChart(this.series);\n }\n\n createPieChart(series) {\n const firstSeries = series[0];\n const pieChart = new PieChart(this, {\n series: series,\n padding: firstSeries.padding,\n startAngle: firstSeries.startAngle,\n connectors: firstSeries.connectors,\n legend: this.options.legend\n });\n\n this.appendChart(pieChart);\n }\n\n appendChart(chart, pane) {\n super.appendChart(chart, pane);\n append(this.options.legend.data, chart.legendItems);\n }\n\n getPointBelow(point) {\n return this.getPointToTheRight(point);\n }\n\n getPointAbove(point) {\n return this.getPointToTheLeft(point);\n }\n}\n\nexport default PiePlotArea;\n","import PieSegment from '../pie-chart/pie-segment';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nimport { PIE } from '../constants';\n\nimport { ShapeBuilder, Box } from '../../core';\n\nimport { CENTER } from '../../common/constants';\nimport { deepExtend, setDefaultOptions } from '../../common';\n\nclass DonutSegment extends PieSegment {\n reflowLabel() {\n const { options: { labels: labelsOptions }, label } = this;\n const sector = this.sector.clone();\n const angle = sector.middle();\n\n if (label) {\n const labelHeight = label.box.height();\n if (labelsOptions.position === CENTER) {\n sector.radius -= (sector.radius - sector.innerRadius) / 2;\n\n const lp = sector.point(angle);\n\n label.reflow(new Box(lp.x, lp.y - labelHeight / 2, lp.x, lp.y));\n } else {\n super.reflowLabel();\n }\n }\n }\n\n createSegment(sector, options) {\n return ShapeBuilder.current.createRing(sector, options);\n }\n}\n\nsetDefaultOptions(DonutSegment, {\n overlay: {\n gradient: \"roundedGlass\"\n },\n labels: {\n position: CENTER\n },\n animation: {\n type: PIE\n }\n});\n\ndeepExtend(DonutSegment.prototype, PointEventsMixin);\n\n\nexport default DonutSegment;\n","import PieChart from '../pie-chart/pie-chart';\nimport DonutSegment from './donut-segment';\n\nimport { INITIAL_ANIMATION_DURATION } from '../constants';\n\nimport { deepExtend, defined, setDefaultOptions, valueOrDefault } from '../../common';\n\nconst DONUT_SECTOR_ANIM_DELAY = 50;\n\nclass DonutChart extends PieChart {\n addValue(value, sector, fields) {\n const segmentOptions = deepExtend({}, fields.series, { index: fields.index });\n this.evalSegmentOptions(segmentOptions, value, fields);\n\n this.createLegendItem(value, segmentOptions, fields);\n\n if (fields.visible === false) {\n return;\n }\n\n const segment = new DonutSegment(value, sector, segmentOptions);\n\n Object.assign(segment, fields);\n this.append(segment);\n this.points.push(segment);\n }\n\n reflow(targetBox) {\n const options = this.options;\n const box = targetBox.clone();\n const space = 5;\n const minWidth = Math.min(box.width(), box.height());\n const halfMinWidth = minWidth / 2;\n const defaultPadding = minWidth - minWidth * 0.85;\n const series = options.series;\n const seriesCount = series.length;\n\n let padding = valueOrDefault(options.padding, defaultPadding);\n padding = padding > halfMinWidth - space ? halfMinWidth - space : padding;\n\n let totalSize = halfMinWidth - padding;\n let seriesWithoutSize = 0;\n let holeSize;\n\n for (let i = 0; i < seriesCount; i++) {\n const currentSeries = series[i];\n if (i === 0) {\n if (defined(currentSeries.holeSize)) {\n holeSize = currentSeries.holeSize;\n totalSize -= currentSeries.holeSize;\n }\n }\n\n if (defined(currentSeries.size)) {\n totalSize -= currentSeries.size;\n } else {\n seriesWithoutSize++;\n }\n\n if (defined(currentSeries.margin) && i !== seriesCount - 1) {\n totalSize -= currentSeries.margin;\n }\n }\n\n if (!defined(holeSize)) {\n const currentSize = (halfMinWidth - padding) / (seriesCount + 0.75);\n holeSize = currentSize * 0.75;\n totalSize -= holeSize;\n }\n\n let innerRadius = holeSize;\n let margin = 0;\n let size, radius;\n\n this.seriesConfigs = [];\n\n for (let i = 0; i < seriesCount; i++) {\n const currentSeries = series[i];\n size = valueOrDefault(currentSeries.size, totalSize / seriesWithoutSize);\n innerRadius += margin;\n radius = innerRadius + size;\n this.seriesConfigs.push({ innerRadius: innerRadius, radius: radius });\n margin = currentSeries.margin || 0;\n innerRadius = radius;\n }\n\n super.reflow(targetBox);\n }\n\n animationDelay(categoryIndex, seriesIndex, seriesCount) {\n return categoryIndex * DONUT_SECTOR_ANIM_DELAY +\n (INITIAL_ANIMATION_DURATION * (seriesIndex + 1) / (seriesCount + 1));\n }\n}\n\n\nsetDefaultOptions(DonutChart, {\n startAngle: 90,\n connectors: {\n width: 2,\n color: \"#939393\",\n padding: 8\n }\n});\n\nexport default DonutChart;\n","import PlotAreaBase from './plotarea-base';\nimport AxisGroupRangeTracker from '../axis-group-range-tracker';\nimport { RadarLogarithmicAxis, RadarNumericAxis } from '../../core';\n\nimport { LOGARITHMIC } from '../constants';\n\nimport { getSpacing } from '../../common';\nimport { Y, CENTER } from '../../common/constants';\n\nconst DEFAULT_PADDING = 0.15;\n\nclass PolarPlotAreaBase extends PlotAreaBase {\n initFields() {\n this.valueAxisRangeTracker = new AxisGroupRangeTracker();\n }\n\n render() {\n this.addToLegend(this.series);\n this.createPolarAxis();\n this.createCharts();\n this.createValueAxis();\n }\n\n alignAxes() {\n const axis = this.valueAxis;\n const range = axis.range();\n const crossingValue = axis.options.reverse ? range.max : range.min;\n const slot = axis.getSlot(crossingValue);\n const center = this.polarAxis.getSlot(0).center;\n const axisBox = axis.box.translate(\n center.x - slot.x1,\n center.y - slot.y1\n );\n\n axis.reflow(axisBox);\n }\n\n createValueAxis() {\n const tracker = this.valueAxisRangeTracker;\n const defaultRange = tracker.query();\n const axisOptions = this.valueAxisOptions({\n roundToMajorUnit: false,\n zIndex: -1\n });\n let axisType, axisDefaultRange;\n\n if (axisOptions.type === LOGARITHMIC) {\n axisType = RadarLogarithmicAxis;\n axisDefaultRange = { min: 0.1, max: 1 };\n } else {\n axisType = RadarNumericAxis;\n axisDefaultRange = { min: 0, max: 1 };\n }\n\n const range = tracker.query(name) || defaultRange || axisDefaultRange;\n\n if (range && defaultRange) {\n range.min = Math.min(range.min, defaultRange.min);\n range.max = Math.max(range.max, defaultRange.max);\n }\n\n const valueAxis = new axisType(\n range.min, range.max,\n axisOptions,\n this.chartService\n );\n\n this.valueAxis = valueAxis;\n this.appendAxis(valueAxis);\n }\n\n reflowAxes() {\n const { options: { plotArea: options }, valueAxis, polarAxis, box } = this;\n const defaultPadding = Math.min(box.width(), box.height()) * DEFAULT_PADDING;\n const padding = getSpacing(options.padding || {}, defaultPadding);\n const paddingBox = box.clone().unpad(padding);\n const axisBox = paddingBox.clone();\n\n axisBox.y2 = axisBox.y1 + Math.min(axisBox.width(), axisBox.height());\n axisBox.align(paddingBox, Y, CENTER);\n\n const valueAxisBox = axisBox.clone().shrink(0, axisBox.height() / 2);\n\n polarAxis.reflow(axisBox);\n valueAxis.reflow(valueAxisBox);\n const heightDiff = valueAxis.lineBox().height() - valueAxis.box.height();\n valueAxis.reflow(valueAxis.box.unpad({ top: heightDiff }));\n\n this.axisBox = axisBox;\n this.alignAxes(axisBox);\n }\n\n backgroundBox() {\n return this.box;\n }\n\n detachLabels() {}\n}\n\nexport default PolarPlotAreaBase;\n","import ScatterChart from '../scatter-charts/scatter-chart';\n\nimport { Point, Box } from '../../core';\n\nimport { setDefaultOptions } from '../../common';\n\nclass PolarScatterChart extends ScatterChart {\n pointSlot(slotX, slotY) {\n const valueRadius = slotX.center.y - slotY.y1;\n const slot = Point.onCircle(slotX.center, slotX.startAngle, valueRadius);\n\n return new Box(slot.x, slot.y, slot.x, slot.y);\n }\n}\n\nsetDefaultOptions(PolarScatterChart, {\n clip: false\n});\n\nexport default PolarScatterChart;","import ScatterLineChart from '../scatter-charts/scatter-line-chart';\nimport PolarScatterChart from '../polar-scatter-chart/polar-scatter-chart';\n\nimport { setDefaultOptions } from '../../common';\n\nclass PolarLineChart extends ScatterLineChart {\n}\n\nPolarLineChart.prototype.pointSlot = PolarScatterChart.prototype.pointSlot;\n\nsetDefaultOptions(PolarLineChart, {\n clip: false\n});\n\nexport default PolarLineChart;","import SplineAreaSegment from '../area-chart/spline-area-segment';\nimport { CurveProcessor } from '../../core';\n\nclass SplinePolarAreaSegment extends SplineAreaSegment {\n fillToAxes(fillPath) {\n const center = this._polarAxisCenter();\n fillPath.lineTo(center.x, center.y);\n }\n\n _polarAxisCenter() {\n const polarAxis = this.parent.plotArea.polarAxis;\n const center = polarAxis.box.center();\n return center;\n }\n\n strokeSegments() {\n let segments = this._strokeSegments;\n\n if (!segments) {\n const center = this._polarAxisCenter();\n const curveProcessor = new CurveProcessor(false);\n const linePoints = this.points();\n\n linePoints.push(center);\n segments = this._strokeSegments = curveProcessor.process(linePoints);\n segments.pop();\n }\n\n return segments;\n }\n}\n\nexport default SplinePolarAreaSegment;","import { geometry as geom } from '@progress/kendo-drawing';\nimport AreaSegment from '../area-chart/area-segment';\n\nclass PolarAreaSegment extends AreaSegment {\n fillToAxes(fillPath) {\n const polarAxis = this.parent.plotArea.polarAxis;\n const center = polarAxis.box.center();\n const centerSegment = new geom.Segment([ center.x, center.y ]);\n\n fillPath.segments.unshift(centerSegment);\n fillPath.segments.push(centerSegment);\n }\n}\n\nexport default PolarAreaSegment;","import PolarLineChart from '../polar-line-chart/polar-line-chart';\nimport SplinePolarAreaSegment from './spline-polar-area-segment';\nimport PolarAreaSegment from './polar-area-segment';\n\nimport { SMOOTH, INTERPOLATE, ZERO, GAP } from '../constants';\n\nimport hasValue from '../utils/has-value';\n\nclass PolarAreaChart extends PolarLineChart {\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = (currentSeries.line || {}).style;\n let segment;\n\n if (style === SMOOTH) {\n segment = new SplinePolarAreaSegment(linePoints, currentSeries, seriesIx);\n } else {\n segment = new PolarAreaSegment(linePoints, currentSeries, seriesIx);\n }\n return segment;\n }\n\n createMissingValue(value, missingValues) {\n let missingValue;\n\n if (hasValue(value.x) && missingValues !== INTERPOLATE) {\n missingValue = {\n x: value.x,\n y: value.y\n };\n if (missingValues === ZERO) {\n missingValue.y = 0;\n }\n }\n\n return missingValue;\n }\n\n seriesMissingValues(series) {\n return series.missingValues || ZERO;\n }\n\n _hasMissingValuesGap() {\n const series = this.options.series;\n\n for (let idx = 0; idx < series.length; idx++) {\n if (this.seriesMissingValues(series[idx]) === GAP) {\n return true;\n }\n }\n }\n\n sortPoints(points) {\n points.sort(xComparer);\n\n if (this._hasMissingValuesGap()) {\n for (let idx = 0; idx < points.length; idx++) {\n const point = points[idx];\n if (point) {\n const value = point.value;\n if (!hasValue(value.y) && this.seriesMissingValues(point.series) === GAP) {\n delete points[idx];\n }\n }\n }\n }\n\n return points;\n }\n}\n\nfunction xComparer(a, b) {\n return a.value.x - b.value.x;\n}\n\nexport default PolarAreaChart;","import PolarPlotAreaBase from './polar-plotarea-base';\nimport PlotAreaBase from './plotarea-base';\nimport PolarLineChart from '../polar-line-chart/polar-line-chart';\nimport PolarScatterChart from '../polar-scatter-chart/polar-scatter-chart';\nimport PolarAreaChart from '../polar-area-chart/polar-area-chart';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\n\nimport { PolarAxis, Point } from '../../core';\n\nimport { POLAR_AREA, POLAR_LINE, POLAR_SCATTER } from '../constants';\n\nimport filterSeriesByType from '../utils/filter-series-by-type';\n\nimport { ARC } from '../../common/constants';\nimport { deepExtend, eventElement, setDefaultOptions } from '../../common';\nimport XYPlotArea from './xy-plotarea';\n\nclass PolarPlotArea extends PolarPlotAreaBase {\n createPolarAxis() {\n const polarAxis = new PolarAxis(this.options.xAxis, this.chartService);\n\n this.polarAxis = polarAxis;\n this.axisX = polarAxis;\n this.appendAxis(polarAxis);\n }\n\n render() {\n this.series = [...this.originalSeries];\n this.createTrendlineSeries();\n\n super.render();\n }\n\n valueAxisOptions(defaults) {\n return deepExtend(defaults, {\n majorGridLines: { type: ARC },\n minorGridLines: { type: ARC }\n }, this.options.yAxis);\n }\n\n createValueAxis() {\n super.createValueAxis();\n this.axisY = this.valueAxis;\n }\n\n trendlineFactory(options, series) {\n const trendline = XYPlotArea.prototype.trendlineFactory.call(this, options, series);\n if (trendline) {\n trendline.type = POLAR_LINE;\n }\n\n return trendline;\n }\n\n appendChart(chart, pane) {\n this.valueAxisRangeTracker.update(chart.yAxisRanges);\n\n PlotAreaBase.prototype.appendChart.call(this, chart, pane);\n }\n\n createCharts() {\n const series = this.filterVisibleSeries(this.series);\n const pane = this.panes[0];\n\n this.createLineChart(\n filterSeriesByType(series, [ POLAR_LINE ]),\n pane\n );\n\n this.createScatterChart(\n filterSeriesByType(series, [ POLAR_SCATTER ]),\n pane\n );\n\n this.createAreaChart(\n filterSeriesByType(series, [ POLAR_AREA ]),\n pane\n );\n }\n\n createLineChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const lineChart = new PolarLineChart(this, { series: series });\n\n this.appendChart(lineChart, pane);\n }\n\n createScatterChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const scatterChart = new PolarScatterChart(this, { series: series });\n\n this.appendChart(scatterChart, pane);\n }\n\n createAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const areaChart = new PolarAreaChart(this, { series: series });\n\n this.appendChart(areaChart, pane);\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const xValue = this.axisX.getValue(point);\n const yValue = this.axisY.getValue(point);\n\n if (xValue !== null && yValue !== null) {\n chart.trigger(eventType, {\n element: eventElement(e),\n x: xValue,\n y: yValue\n });\n }\n }\n\n createCrosshairs() {}\n}\n\nsetDefaultOptions(PolarPlotArea, {\n xAxis: {},\n yAxis: {}\n});\n\ndeepExtend(PolarPlotArea.prototype, PlotAreaEventsMixin, {\n seriesValues: XYPlotArea.prototype.seriesValues\n});\n\nexport default PolarPlotArea;\n","import LineChart from '../line-chart/line-chart';\nimport SplineSegment from '../line-chart/spline-segment';\nimport LineSegment from '../line-chart/line-segment';\n\nimport { Point, Box } from '../../core';\n\nimport { SMOOTH, INTERPOLATE } from '../constants';\n\nimport { setDefaultOptions, last } from '../../common';\n\nfunction groupBySeriesIx(segments) {\n const seriesSegments = [];\n for (let idx = 0; idx < segments.length; idx++) {\n const segment = segments[idx];\n seriesSegments[segment.seriesIx] = seriesSegments[segment.seriesIx] || [];\n seriesSegments[segment.seriesIx].push(segment);\n }\n\n return seriesSegments;\n}\n\nclass RadarLineChart extends LineChart {\n\n pointSlot(categorySlot, valueSlot) {\n const valueRadius = categorySlot.center.y - valueSlot.y1;\n const slot = Point.onCircle(categorySlot.center, categorySlot.middle(), valueRadius);\n\n return new Box(slot.x, slot.y, slot.x, slot.y);\n }\n\n renderSegments() {\n super.renderSegments();\n\n if (this._segments && this._segments.length > 1) {\n const seriesSegments = groupBySeriesIx(this._segments);\n\n for (let idx = 0; idx < seriesSegments.length; idx++) {\n const segments = seriesSegments[idx];\n if (segments && segments.length > 1) {\n const firstPoint = segments[0].linePoints[0];\n const lastSegment = last(segments);\n const lastPoint = last(lastSegment.linePoints);\n const isFirstDataPoint = firstPoint.categoryIx === 0;\n const isLastDataPoint = lastPoint.categoryIx === lastPoint.categoriesCount - 1;\n if (isFirstDataPoint && isLastDataPoint) {\n last(segments).linePoints.push(firstPoint);\n }\n }\n }\n }\n }\n\n createSegment(linePoints, currentSeries, seriesIx) {\n const style = currentSeries.style;\n let pointType;\n\n if (style === SMOOTH) {\n pointType = SplineSegment;\n } else {\n pointType = LineSegment;\n }\n\n const segment = new pointType(linePoints, currentSeries, seriesIx);\n const missingValues = this.seriesMissingValues(currentSeries);\n\n if (linePoints.length === currentSeries.data.length || missingValues === INTERPOLATE) {\n segment.options.closed = true;\n }\n\n return segment;\n }\n}\n\nsetDefaultOptions(RadarLineChart, {\n clip: false,\n limitPoints: false\n});\n\nexport default RadarLineChart;\n","import SplineAreaSegment from '../area-chart/spline-area-segment';\n\nclass SplineRadarAreaSegment extends SplineAreaSegment {\n fillToAxes() {}\n}\n\nexport default SplineRadarAreaSegment;","import AreaSegment from '../area-chart/area-segment';\n\nclass RadarAreaSegment extends AreaSegment {\n fillToAxes() {}\n}\n\nexport default RadarAreaSegment;","import RadarLineChart from '../radar-line-chart/radar-line-chart';\nimport SplineRadarAreaSegment from './spline-radar-area-segment';\nimport RadarAreaSegment from './radar-area-segment';\n\nimport { SMOOTH, ZERO } from '../constants';\n\nclass RadarAreaChart extends RadarLineChart {\n createSegment(linePoints, currentSeries, seriesIx, prevSegment) {\n const isStacked = this.options.isStacked;\n const style = (currentSeries.line || {}).style;\n let previousSegment;\n let stackPoints;\n let segment;\n\n if (isStacked && seriesIx > 0 && prevSegment) {\n stackPoints = prevSegment.linePoints.slice(0);\n previousSegment = prevSegment;\n }\n\n if (style === SMOOTH) {\n segment = new SplineRadarAreaSegment(linePoints, currentSeries, seriesIx, previousSegment, stackPoints);\n segment.options.closed = true;\n } else {\n linePoints.push(linePoints[0]);\n segment = new RadarAreaSegment(linePoints, currentSeries, seriesIx, previousSegment, stackPoints);\n }\n\n return segment;\n }\n\n seriesMissingValues(series) {\n return series.missingValues || ZERO;\n }\n}\n\nexport default RadarAreaChart;","import DonutSegment from '../donut-chart/donut-segment';\n\nimport { setDefaultOptions } from '../../common';\n\nclass RadarSegment extends DonutSegment {\n constructor(value, options) {\n super(value, null, options);\n }\n\n getIndex() {\n return this.categoryIx;\n }\n}\n\nsetDefaultOptions(RadarSegment, {\n overlay: {\n gradient: \"none\"\n },\n labels: {\n distance: 10\n }\n});\n\nexport default RadarSegment;","import { ChartElement } from '../../core';\n\nimport { setDefaultOptions } from '../../common';\n\nimport { forEach, forEachReverse } from './utils';\n\nclass RadarClusterLayout extends ChartElement {\n constructor(options) {\n super(options);\n\n this.forEach = options.rtl ? forEachReverse : forEach;\n }\n\n reflow(sector) {\n const { options, children } = this;\n const { gap, spacing } = options;\n const count = children.length;\n const slots = count + gap + (spacing * (count - 1));\n const slotAngle = sector.angle / slots;\n let angle = sector.startAngle + slotAngle * (gap / 2);\n\n this.forEach(children, (child) => {\n const slotSector = sector.clone();\n slotSector.startAngle = angle;\n slotSector.angle = slotAngle;\n\n if (child.sector) {\n slotSector.radius = child.sector.radius;\n }\n\n child.reflow(slotSector);\n child.sector = slotSector;\n\n angle += slotAngle + (slotAngle * spacing);\n });\n }\n}\n\nsetDefaultOptions(RadarClusterLayout, {\n gap: 1,\n spacing: 0\n});\n\nexport default RadarClusterLayout;","import { ChartElement, Box } from '../../core';\n\nclass RadarStackLayout extends ChartElement {\n reflow(sector) {\n const { options: { reverse }, children } = this;\n const childrenCount = children.length;\n const first = reverse ? childrenCount - 1 : 0;\n const step = reverse ? -1 : 1;\n\n this.box = new Box();\n\n for (let i = first; i >= 0 && i < childrenCount; i += step) {\n const childSector = children[i].sector;\n childSector.startAngle = sector.startAngle;\n childSector.angle = sector.angle;\n }\n }\n}\n\nexport default RadarStackLayout;","import BarChart from '../bar-chart/bar-chart';\nimport RadarSegment from './radar-segment';\nimport RadarClusterLayout from '../layout/radar-cluster-layout';\nimport RadarStackLayout from '../layout/radar-stack-layout';\nimport CategoricalChart from '../categorical-chart';\n\nimport { setDefaultOptions } from '../../common';\n\nclass RadarBarChart extends BarChart {\n pointType() {\n return RadarSegment;\n }\n\n clusterType() {\n return RadarClusterLayout;\n }\n\n stackType() {\n return RadarStackLayout;\n }\n\n categorySlot(categoryAxis, categoryIx) {\n return categoryAxis.getSlot(categoryIx);\n }\n\n pointSlot(categorySlot, valueSlot) {\n const slot = categorySlot.clone();\n const y = categorySlot.center.y;\n\n slot.radius = y - valueSlot.y1;\n slot.innerRadius = y - valueSlot.y2;\n\n return slot;\n }\n\n reflowPoint(point, pointSlot) {\n point.sector = pointSlot;\n point.reflow();\n }\n\n createAnimation() {\n this.options.animation.center = this.box.toRect().center();\n super.createAnimation();\n }\n}\n\nRadarBarChart.prototype.reflow = CategoricalChart.prototype.reflow;\n\nsetDefaultOptions(RadarBarChart, {\n clip: false,\n limitPoints: false,\n animation: {\n type: \"pie\"\n }\n});\n\nexport default RadarBarChart;","import PolarPlotAreaBase from './polar-plotarea-base';\nimport CategoricalPlotArea from './categorical-plotarea';\nimport RadarAreaChart from '../radar-area-chart/radar-area-chart';\nimport RadarLineChart from '../radar-line-chart/radar-line-chart';\nimport RadarBarChart from '../radar-bar-chart/radar-bar-chart';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\n\nimport { RadarCategoryAxis, Point } from '../../core';\n\nimport { RADAR_AREA, RADAR_LINE, RADAR_COLUMN } from '../constants';\n\nimport filterSeriesByType from '../utils/filter-series-by-type';\n\nimport { ARC } from '../../common/constants';\nimport { eventElement, deepExtend, setDefaultOptions } from '../../common';\n\nclass RadarPlotArea extends PolarPlotAreaBase {\n createPolarAxis() {\n const categoryAxis = new RadarCategoryAxis(this.options.categoryAxis, this.chartService);\n\n this.polarAxis = categoryAxis;\n this.categoryAxis = categoryAxis;\n this.appendAxis(categoryAxis);\n this.aggregateCategories();\n this.createTrendlineSeries();\n this.createCategoryAxesLabels();\n }\n\n valueAxisOptions(defaults) {\n if (this._hasBarCharts) {\n deepExtend(defaults, {\n majorGridLines: { type: ARC },\n minorGridLines: { type: ARC }\n });\n }\n\n if (this._isStacked100) {\n deepExtend(defaults, {\n roundToMajorUnit: false,\n labels: { format: \"P0\" }\n });\n }\n\n return deepExtend(defaults, this.options.valueAxis);\n }\n\n aggregateCategories() {\n // No separate panes in radar charts\n CategoricalPlotArea.prototype.aggregateCategories.call(this, this.panes);\n }\n\n createCategoryAxesLabels() {\n CategoricalPlotArea.prototype.createCategoryAxesLabels.call(this, this.panes);\n }\n\n filterSeries(currentSeries) {\n // Not supported for radar charts\n return currentSeries;\n }\n\n trendlineFactory(options, series) {\n const trendline = CategoricalPlotArea.prototype.trendlineFactory.call(this, options, series);\n if (trendline) {\n trendline.type = RADAR_LINE;\n }\n\n return trendline;\n }\n\n createCharts() {\n const series = this.filterVisibleSeries(this.series);\n const pane = this.panes[0];\n\n this.createAreaChart(\n filterSeriesByType(series, [ RADAR_AREA ]),\n pane\n );\n\n this.createLineChart(\n filterSeriesByType(series, [ RADAR_LINE ]),\n pane\n );\n\n this.createBarChart(\n filterSeriesByType(series, [ RADAR_COLUMN ]),\n pane\n );\n }\n\n chartOptions(series) {\n const options = { series: series };\n const firstSeries = series[0];\n if (firstSeries) {\n const filteredSeries = this.filterVisibleSeries(series);\n const stack = firstSeries.stack;\n options.isStacked = stack && filteredSeries.length > 1;\n options.isStacked100 = stack && stack.type === \"100%\" && filteredSeries.length > 1;\n\n if (options.isStacked100) {\n this._isStacked100 = true;\n }\n }\n\n return options;\n }\n\n createAreaChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const areaChart = new RadarAreaChart(this, this.chartOptions(series));\n this.appendChart(areaChart, pane);\n }\n\n createLineChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const lineChart = new RadarLineChart(this, this.chartOptions(series));\n this.appendChart(lineChart, pane);\n }\n\n createBarChart(series, pane) {\n if (series.length === 0) {\n return;\n }\n\n const firstSeries = series[0];\n const options = this.chartOptions(series);\n const filteredSeries = this.filterVisibleSeries(series);\n const anyStackedSeries = filteredSeries.some(s => s.stack);\n const isStacked100 = filteredSeries.some(s => s.stack && s.stack.type === \"100%\");\n options.gap = firstSeries.gap;\n options.spacing = firstSeries.spacing;\n options.defaultStack = firstSeries.stack && filteredSeries.length > 1;\n options.isStacked = anyStackedSeries && filteredSeries.length > 1;\n options.isStacked100 = isStacked100 && filteredSeries.length > 1;\n\n const barChart = new RadarBarChart(this, options);\n this.appendChart(barChart, pane);\n\n this._hasBarCharts = true;\n }\n\n seriesCategoryAxis() {\n return this.categoryAxis;\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const category = this.categoryAxis.getCategory(point);\n const value = this.valueAxis.getValue(point);\n\n if (category !== null && value !== null) {\n chart.trigger(eventType, {\n element: eventElement(e),\n category: category,\n value: value\n });\n }\n }\n\n createCrosshairs() {}\n\n _pointsByVertical(basePoint) {\n return super._pointsByVertical(basePoint).sort(this._getSeriesCompareFn());\n }\n\n _getSeriesCompareFn() {\n return (a, b) => b.value - a.value;\n }\n}\n\ndeepExtend(RadarPlotArea.prototype, PlotAreaEventsMixin, {\n appendChart: CategoricalPlotArea.prototype.appendChart,\n aggregateSeries: CategoricalPlotArea.prototype.aggregateSeries,\n seriesSourcePoints: CategoricalPlotArea.prototype.seriesSourcePoints,\n seriesValues: CategoricalPlotArea.prototype.seriesValues\n});\n\nsetDefaultOptions(RadarPlotArea, {\n categoryAxis: {\n categories: []\n },\n valueAxis: {}\n});\n\nexport default RadarPlotArea;\n","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { ChartElement, Box, Point } from '../../core';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nimport { WHITE } from '../../common/constants';\nimport { deepExtend, setDefaultOptions, getTemplate } from '../../common';\nimport AccessibilityAttributesMixin from '../mixins/accessibility-attributes-mixin';\nimport { CHART_POINT_CLASSNAME, CHART_POINT_ROLE, CHART_POINT_ROLE_DESCRIPTION } from '../constants';\n\nclass FunnelSegment extends ChartElement {\n constructor(value, options, segmentOptions) {\n super(options);\n\n this.value = value;\n this.options.index = segmentOptions.index;\n }\n\n getLabelText(options) {\n let labelTemplate = getTemplate(options);\n\n if (labelTemplate) {\n return labelTemplate(this.pointData());\n } else if (options.format) {\n return this.formatValue(options.format);\n }\n\n return this.value;\n }\n\n reflow(chartBox) {\n const points = this.points;\n const label = this.children[0];\n const x1 = Math.min(points[0].x, points[3].x);\n const x2 = Math.max(points[1].x, points[2].x);\n\n this.box = new Box(x1, points[0].y, x2, points[2].y);\n\n if (label) {\n label.reflow(new Box(chartBox.x1, points[0].y, chartBox.x2, points[2].y));\n }\n }\n\n createVisual() {\n const options = this.options;\n let visual;\n\n super.createVisual();\n\n this.addAccessibilityAttributesToVisual();\n\n if (options.visual) {\n visual = options.visual({\n category: this.category,\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n percentage: this.percentage,\n points: this.points,\n options: options,\n sender: this.getSender(),\n createVisual: () => this.createPath()\n });\n } else {\n visual = this.createPath();\n }\n\n if (visual) {\n this.visual.append(visual);\n }\n }\n\n createPath() {\n const options = this.options;\n const border = options.border;\n const path = draw.Path.fromPoints(this.points, {\n fill: {\n color: options.color,\n opacity: options.opacity\n },\n stroke: {\n color: border.color,\n opacity: border.opacity,\n width: border.width\n }\n }).close();\n\n return path;\n }\n\n createHighlight(style) {\n return draw.Path.fromPoints(this.points, style);\n }\n\n highlightVisual() {\n return this.visual.children[0];\n }\n\n highlightVisualArgs() {\n const path = draw.Path.fromPoints(this.points).close();\n\n return {\n options: this.options,\n path: path\n };\n }\n\n createFocusHighlight(style) {\n const borderWidth = this.options.accessibility.highlight.border.width;\n const result = draw.Path.fromPoints(this.points, deepExtend({}, style, {\n stroke: {\n width: borderWidth * 2\n }\n })).close();\n\n const clipPath = new draw.MultiPath();\n\n clipPath.paths.push(draw.Path.fromRect(this.box.clone().pad(borderWidth).toRect()));\n clipPath.paths.push(draw.Path.fromPoints(this.points));\n\n result.clip(clipPath);\n\n return result;\n }\n\n tooltipAnchor() {\n const box = this.box;\n return {\n point: new Point(box.center().x, box.y1),\n align: {\n horizontal: \"center\",\n vertical: \"top\"\n }\n };\n }\n\n formatValue(format) {\n const point = this;\n return point.owner.formatPointValue(point, format);\n }\n\n pointData() {\n return {\n dataItem: this.dataItem,\n category: this.category,\n value: this.value,\n series: this.series,\n percentage: this.percentage\n };\n }\n\n getIndex() {\n return this.index;\n }\n}\n\nsetDefaultOptions(FunnelSegment, {\n color: WHITE,\n border: {\n width: 1\n },\n labels: {\n format: \"\"\n },\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n});\n\ndeepExtend(FunnelSegment.prototype, PointEventsMixin);\ndeepExtend(FunnelSegment.prototype, AccessibilityAttributesMixin);\n\nexport default FunnelSegment;","import { geometry as geom } from '@progress/kendo-drawing';\n\nimport { ChartElement, TextBox } from '../../core';\nimport PieChartMixin from '../mixins/pie-chart-mixin';\nimport FunnelSegment from './funnel-segment';\n\nimport { bindSegments, evalOptions } from '../utils';\n\nimport { CENTER, LEFT } from '../../common/constants';\nimport { autoTextColor, deepExtend, isFunction, getTemplate, limitValue, setDefaultOptions } from '../../common';\n\nclass FunnelChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this.points = [];\n this.labels = [];\n this.legendItems = [];\n this.render();\n }\n\n formatPointValue(point, format) {\n return this.plotArea.chartService.format.auto(format,point.value);\n }\n\n render() {\n const seriesIx = 0;\n const { options, plotArea: { options: { seriesColors = [] } } } = this;\n const series = options.series[seriesIx];\n const data = series.data;\n\n if (!data) {\n return;\n }\n\n const { total, points } = bindSegments(series);\n\n for (let i = 0; i < points.length; i++) {\n const pointData = points[i];\n\n if (!pointData) {\n continue;\n }\n\n let fields = pointData.fields;\n\n if (!isFunction(series.color)) {\n series.color = fields.color || seriesColors[i % seriesColors.length];\n }\n\n fields = deepExtend({\n index: i,\n owner: this,\n series: series,\n seriesIx: seriesIx,\n dataItem: data[i],\n percentage: pointData.value / total\n }, fields, { visible: pointData.visible });\n\n const value = pointData.valueFields.value;\n const segment = this.createSegment(value, fields);\n const label = this.createLabel(value, fields);\n\n if (segment && label) {\n segment.append(label);\n }\n }\n }\n\n evalSegmentOptions(options, value, fields) {\n const series = fields.series;\n\n evalOptions(options, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n index: fields.index\n }, { defaults: series._defaults, excluded: [\n \"data\", \"content\", \"template\", \"toggle\", \"visual\",\n \"ariaTemplate\", \"ariaContent\"\n ] });\n }\n\n createSegment(value, fields) {\n const seriesOptions = deepExtend({}, fields.series);\n this.evalSegmentOptions(seriesOptions, value, fields);\n\n this.createLegendItem(value, seriesOptions, fields);\n\n if (fields.visible !== false) {\n\n const segment = new FunnelSegment(value, seriesOptions, fields);\n Object.assign(segment, fields);\n\n this.append(segment);\n this.points.push(segment);\n\n return segment;\n }\n }\n\n createLabel(value, fields) {\n const { series, dataItem } = fields;\n const labels = deepExtend({}, this.options.labels, series.labels);\n let text = value;\n\n if (labels.visible) {\n const labelTemplate = getTemplate(labels);\n const data = {\n dataItem: dataItem,\n value: value,\n percentage: fields.percentage,\n category: fields.category,\n series: series\n };\n if (labelTemplate) {\n text = labelTemplate(data);\n } else if (labels.format) {\n text = this.chartService.format.auto(labels.format, text);\n }\n\n if (!labels.color) {\n labels.color = autoTextColor(series.color);\n if (!labels.background) {\n labels.background = series.color;\n }\n }\n\n this.evalSegmentOptions(labels, value, fields);\n const textBox = new TextBox(text, deepExtend({\n vAlign: labels.position\n }, labels), data);\n\n this.labels.push(textBox);\n\n return textBox;\n }\n }\n\n labelPadding() {\n const labels = this.labels;\n const padding = { left: 0, right: 0 };\n\n for (let i = 0; i < labels.length; i++) {\n const label = labels[i];\n const align = label.options.align;\n if (align !== CENTER) {\n const width = labels[i].box.width();\n\n if (align === LEFT) {\n padding.left = Math.max(padding.left, width);\n } else {\n padding.right = Math.max(padding.right, width);\n }\n }\n }\n\n return padding;\n }\n\n dynamicSlopeReflow(box, width, totalHeight) {\n const { options, points: segments } = this;\n const count = segments.length;\n const firstSegment = segments[0];\n let maxSegment = firstSegment;\n\n for (let idx = 0; idx < segments.length; idx++) {\n if (segments[idx].percentage > maxSegment.percentage) {\n maxSegment = segments[idx];\n }\n }\n\n let lastUpperSide = (firstSegment.percentage / maxSegment.percentage) * width;\n let previousOffset = (width - lastUpperSide) / 2;\n let previousHeight = 0;\n\n for (let idx = 0; idx < count; idx++) {\n const percentage = segments[idx].percentage;\n const nextSegment = segments[idx + 1];\n const nextPercentage = (nextSegment ? nextSegment.percentage : percentage);\n const points = segments[idx].points = [];\n const height = (options.dynamicHeight) ? (totalHeight * percentage) : (totalHeight / count);\n let offset;\n\n if (!percentage) {\n offset = nextPercentage ? 0 : width / 2;\n } else {\n offset = (width - lastUpperSide * (nextPercentage / percentage)) / 2;\n }\n\n offset = limitValue(offset, 0, width);\n\n points.push(new geom.Point(box.x1 + previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - offset, box.y1 + height + previousHeight));\n points.push(new geom.Point(box.x1 + offset, box.y1 + height + previousHeight));\n\n previousOffset = offset;\n previousHeight += height + options.segmentSpacing;\n lastUpperSide = limitValue(width - 2 * offset, 0, width);\n }\n }\n\n constantSlopeReflow(box, width, totalHeight) {\n const { options, points: segments } = this;\n const count = segments.length;\n const decreasingWidth = options.neckRatio <= 1;\n const neckRatio = decreasingWidth ? options.neckRatio * width : width;\n let previousOffset = decreasingWidth ? 0 : (width - width / options.neckRatio) / 2;\n const topMostWidth = decreasingWidth ? width : width - previousOffset * 2;\n const finalNarrow = (topMostWidth - neckRatio) / 2;\n let previousHeight = 0;\n\n for (let idx = 0; idx < count; idx++) {\n const points = segments[idx].points = [];\n const percentage = segments[idx].percentage;\n const offset = (options.dynamicHeight) ? (finalNarrow * percentage) : (finalNarrow / count);\n const height = (options.dynamicHeight) ? (totalHeight * percentage) : (totalHeight / count);\n\n points.push(new geom.Point(box.x1 + previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset, box.y1 + previousHeight));\n points.push(new geom.Point(box.x1 + width - previousOffset - offset, box.y1 + height + previousHeight));\n points.push(new geom.Point(box.x1 + previousOffset + offset,box.y1 + height + previousHeight));\n previousOffset += offset;\n previousHeight += height + options.segmentSpacing;\n }\n }\n\n reflow(chartBox) {\n const points = this.points;\n const count = points.length;\n\n if (!count) {\n return;\n }\n\n const options = this.options;\n const box = chartBox.clone().unpad(this.labelPadding());\n const totalHeight = box.height() - options.segmentSpacing * (count - 1);\n const width = box.width();\n\n if (options.dynamicSlope) {\n this.dynamicSlopeReflow(box, width, totalHeight);\n } else {\n this.constantSlopeReflow(box, width, totalHeight);\n }\n\n for (let idx = 0; idx < count; idx++) {\n points[idx].reflow(chartBox);\n }\n }\n}\n\nsetDefaultOptions(FunnelChart, {\n neckRatio: 0.3,\n width: 300,\n dynamicSlope: false,\n dynamicHeight: true,\n segmentSpacing: 0,\n labels: {\n visible: false,\n align: CENTER,\n position: CENTER,\n zIndex: 1\n }\n});\n\ndeepExtend(FunnelChart.prototype, PieChartMixin);\n\nexport default FunnelChart;\n","import FunnelChart from './funnel-chart';\n\nconst MAX_NECK_RATIO = 1e6;\n\nclass PyramidChart extends FunnelChart {\n constructor(plotArea, options) {\n options.dynamicSlope = false;\n options.neckRatio = MAX_NECK_RATIO;\n\n super(plotArea, options);\n }\n}\n\nexport default PyramidChart;\n","import { autoTextColor, deepExtend, getTemplate, valueOrDefault } from '../../common';\nimport { CENTER, ROUNDED_RECT, BOTTOM, WHITE } from '../../common/constants';\nimport { ChartElement, Point, rectToBox, ShapeElement, TextBox } from '../../core';\nimport { CHART_POINT_CLASSNAME, CHART_POINT_ROLE, CHART_POINT_ROLE_DESCRIPTION, TOOLTIP_OFFSET } from '../constants';\nimport AccessibilityAttributesMixin from '../mixins/accessibility-attributes-mixin';\nimport NoteMixin from '../mixins/note-mixin';\nimport PointEventsMixin from '../mixins/point-events-mixin';\n\nclass HeatmapPoint extends ChartElement {\n constructor(value, options) {\n super();\n\n this.options = options;\n this.color = options.color || WHITE;\n this.value = value;\n }\n\n render() {\n if (this._rendered) {\n return;\n }\n\n this._rendered = true;\n\n this.createMarker();\n this.createLabel();\n this.createNote();\n }\n\n createLabel() {\n const options = this.options;\n const labels = options.labels;\n\n if (labels.visible) {\n this.label = this.createLabelElement(labels);\n this.append(this.label);\n }\n }\n\n createLabelElement(options) {\n let labelColor = options.color;\n\n if (!labelColor) {\n labelColor = autoTextColor(this.color);\n }\n\n return new TextBox(this.getLabelText(options),\n deepExtend({\n align: CENTER,\n vAlign: CENTER,\n margin: {\n left: 5,\n right: 5\n },\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex)\n },\n options, {\n color: labelColor\n }),\n this.pointData()\n );\n }\n\n getLabelText(options) {\n let labelTemplate = getTemplate(options);\n\n if (labelTemplate) {\n return labelTemplate(this.pointData());\n }\n\n return this.formatValue(options.format);\n }\n\n formatValue(format) {\n return this.owner.formatPointValue(this, format);\n }\n\n reflow(targetBox) {\n this.render();\n\n const label = this.label;\n\n this.box = targetBox;\n\n if (label) {\n label.reflow(this.markerBox());\n }\n\n if (this.note) {\n this.note.reflow(targetBox);\n }\n\n this.marker.reflow(this.markerBox());\n }\n\n createVisual() {\n super.createVisual();\n\n this.addAccessibilityAttributesToVisual();\n }\n\n markerBox() {\n const options = this.options;\n const markers = options.markers;\n const border = markers.border;\n const rect = this.box.toRect();\n const type = valueOrDefault(markers.type, 'rect');\n const isRoundRect = type === ROUNDED_RECT;\n let borderWidth = valueOrDefault(border.width, isRoundRect ? 1 : 0);\n const halfBorderWidth = Math.round(borderWidth / 2);\n\n if (markers.size) {\n const center = rect.center();\n rect.size.width = rect.size.height = markers.size;\n rect.origin.x = Math.round(center.x - rect.size.width / 2);\n rect.origin.y = Math.round(center.y - rect.size.height / 2);\n }\n\n rect.size.width -= borderWidth;\n rect.size.height -= borderWidth;\n rect.origin.y += halfBorderWidth + 0.5;\n rect.origin.x += halfBorderWidth + 0.5;\n\n return rectToBox(rect);\n }\n\n markerBorder() {\n const options = this.options;\n const markers = options.markers;\n const border = markers.border;\n const opacity = valueOrDefault(border.opacity, options.opacity);\n\n return {\n color: border.color || this.color,\n width: border.width,\n opacity: opacity,\n dashType: border.dashType\n };\n }\n\n createMarker() {\n const options = this.options;\n const markerOptions = options.markers;\n const marker = new ShapeElement({\n type: valueOrDefault(markerOptions.type, 'rect'),\n width: markerOptions.size,\n height: markerOptions.size,\n rotation: markerOptions.rotation,\n background: this.color,\n border: this.markerBorder(),\n borderRadius: markerOptions.borderRadius,\n opacity: this.series.opacity || options.opacity,\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex),\n animation: options.animation,\n visual: options.visual\n }, {\n dataItem: this.dataItem,\n value: this.value,\n series: this.series,\n category: this.category\n });\n\n this.marker = marker;\n this.append(marker);\n }\n\n createHighlight(style) {\n const options = this.options;\n const markerOptions = this.options.highlight.markers || this.options.markers;\n\n const highlight = new ShapeElement({\n type: valueOrDefault(markerOptions.type, 'rect'),\n width: markerOptions.size,\n height: markerOptions.size,\n rotation: markerOptions.rotation,\n background: markerOptions.color || this.color,\n border: this.markerBorder(),\n borderRadius: markerOptions.borderRadius,\n opacity: this.series.opacity || options.opacity,\n zIndex: valueOrDefault(options.zIndex, this.series.zIndex)\n });\n\n highlight.reflow(this.markerBox());\n const visual = highlight.getElement();\n\n visual.options.fill = style.fill;\n visual.options.stroke = style.stroke;\n\n return visual;\n }\n\n highlightVisual() {\n return this.rectVisual;\n }\n\n highlightVisualArgs() {\n return {\n options: this.options,\n rect: this.box.toRect(),\n visual: this.rectVisual\n };\n }\n\n createFocusHighlight() {\n const markerOptions = this.options.markers;\n const highlightOptions = this.options.accessibility.highlight;\n\n const highlight = new ShapeElement({\n type: valueOrDefault(markerOptions.type, 'rect'),\n width: markerOptions.size,\n height: markerOptions.size,\n rotation: markerOptions.rotation,\n background: highlightOptions.color,\n border: highlightOptions.border,\n borderRadius: markerOptions.borderRadius,\n padding: highlightOptions.border.width / 2,\n zIndex: highlightOptions.zIndex\n });\n\n highlight.reflow(this.markerBox());\n\n return highlight.getElement();\n }\n\n tooltipAnchor() {\n const left = this.box.center().x;\n const top = this.box.y1 - TOOLTIP_OFFSET;\n\n return {\n point: new Point(left, top),\n align: {\n horizontal: CENTER,\n vertical: BOTTOM\n }\n };\n }\n\n overlapsBox(box) {\n return this.box.overlaps(box);\n }\n\n unclipElements() {\n /* noop, clip labels */\n }\n\n pointData() {\n return {\n x: this.value.x,\n y: this.value.y,\n value: this.value.value,\n dataItem: this.dataItem,\n series: this.series\n };\n }\n}\n\ndeepExtend(HeatmapPoint.prototype, PointEventsMixin);\ndeepExtend(HeatmapPoint.prototype, NoteMixin);\ndeepExtend(HeatmapPoint.prototype, AccessibilityAttributesMixin);\n\nHeatmapPoint.prototype.defaults = {\n markers: {\n type: 'rect',\n borderRadius: 4,\n border: {\n color: 'transparent'\n }\n },\n padding: { top: 1 },\n labels: {\n visible: false,\n padding: 3\n },\n opacity: 1,\n notes: {\n label: {}\n },\n accessibility: {\n role: CHART_POINT_ROLE,\n className: CHART_POINT_CLASSNAME,\n ariaRoleDescription: CHART_POINT_ROLE_DESCRIPTION\n }\n};\n\nexport default HeatmapPoint;\n","import { deepExtend, defined, isFunction, setDefaultOptions } from '../../common';\nimport { MAX_VALUE, MIN_VALUE } from '../../common/constants';\nimport { Box, ChartElement } from '../../core';\nimport evalOptions from '../utils/eval-options';\nimport colorScale from './color-scale';\nimport HeatmapPoint from './heatmap-point';\n\nclass HeatmapChart extends ChartElement {\n constructor(plotArea, options) {\n super(options);\n\n this.plotArea = plotArea;\n this.chartService = plotArea.chartService;\n this._initFields();\n\n this.render();\n }\n\n _initFields() {\n this.points = [];\n this.seriesOptions = [];\n this.valueRange = { min: MAX_VALUE, max: MIN_VALUE };\n this._evalSeries = [];\n }\n\n render() {\n this.setRange();\n this.traverseDataPoints(this.addValue.bind(this));\n }\n\n setRange() {\n const { options: { series } } = this;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const { valueFields } = this.plotArea.bindPoint(currentSeries, pointIx);\n if (defined(valueFields.value) && valueFields.value !== null) {\n this.valueRange.min = Math.min(this.valueRange.min, valueFields.value);\n this.valueRange.max = Math.max(this.valueRange.max, valueFields.value);\n }\n }\n }\n }\n\n addValue(value, fields) {\n let point;\n if (value && defined(value.value) && value.value !== null) {\n point = this.createPoint(value, fields);\n if (point) {\n Object.assign(point, fields);\n }\n }\n\n this.points.push(point);\n }\n\n evalPointOptions(options, value, fields) {\n const { series, seriesIx } = fields;\n const state = {\n defaults: series._defaults,\n excluded: [\n \"data\", \"tooltip\", \"content\", \"template\",\n \"visual\", \"toggle\", \"drilldownSeriesFactory\",\n \"ariaTemplate\", \"ariaContent\"\n ]\n };\n\n let doEval = this._evalSeries[seriesIx];\n if (!defined(doEval)) {\n this._evalSeries[seriesIx] = doEval = evalOptions(options, {}, state, true);\n }\n\n let pointOptions = options;\n if (doEval) {\n pointOptions = deepExtend({}, options);\n evalOptions(pointOptions, {\n value: value,\n series: series,\n dataItem: fields.dataItem,\n min: this.valueRange.min,\n max: this.valueRange.max\n }, state);\n }\n\n return pointOptions;\n }\n\n pointType() {\n return HeatmapPoint;\n }\n\n pointOptions(series, seriesIx) {\n let options = this.seriesOptions[seriesIx];\n if (!options) {\n const defaults = this.pointType().prototype.defaults;\n this.seriesOptions[seriesIx] = options = deepExtend({}, defaults, {\n markers: {\n opacity: series.opacity\n },\n tooltip: {\n format: this.options.tooltip.format\n },\n labels: {\n format: this.options.labels.format\n }\n }, series);\n }\n\n return options;\n }\n\n createPoint(value, fields) {\n const series = fields.series;\n let pointOptions = this.pointOptions(series, fields.seriesIx);\n let color = fields.color || series.color;\n\n pointOptions = this.evalPointOptions(pointOptions, value, fields);\n\n if (isFunction(series.color)) {\n color = pointOptions.color;\n } else if (this.valueRange.max !== 0) {\n const scale = colorScale(color);\n color = scale(value.value / this.valueRange.max);\n }\n\n const point = new HeatmapPoint(value, pointOptions);\n point.color = color;\n\n this.append(point);\n\n return point;\n }\n\n seriesAxes(series) {\n const { xAxis: xAxisName, yAxis: yAxisName } = series;\n const plotArea = this.plotArea;\n const xAxis = xAxisName ? plotArea.namedXAxes[xAxisName] : plotArea.axisX;\n const yAxis = yAxisName ? plotArea.namedYAxes[yAxisName] : plotArea.axisY;\n\n if (!xAxis) {\n throw new Error(\"Unable to locate X axis with name \" + xAxisName);\n }\n\n if (!yAxis) {\n throw new Error(\"Unable to locate Y axis with name \" + yAxisName);\n }\n\n return { xAxis, yAxis };\n }\n\n reflow(targetBox) {\n const chartPoints = this.points;\n const limit = !this.options.clip;\n let pointIx = 0;\n\n\n this.traverseDataPoints((value, fields) => {\n const point = chartPoints[pointIx++];\n const { xAxis, yAxis } = this.seriesAxes(fields.series);\n const indexX = xAxis.categoryIndex(value.x);\n const indexY = yAxis.categoryIndex(value.y);\n const slotX = xAxis.getSlot(indexX, indexX, limit);\n const slotY = yAxis.getSlot(indexY, indexY, limit);\n\n if (point) {\n if (slotX && slotY) {\n const pointSlot = this.pointSlot(slotX, slotY);\n point.reflow(pointSlot);\n } else {\n point.visible = false;\n }\n }\n });\n\n this.box = targetBox;\n }\n\n pointSlot(slotX, slotY) {\n return new Box(slotX.x1, slotY.y1, slotX.x2, slotY.y2);\n }\n\n traverseDataPoints(callback) {\n const { options: { series } } = this;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const { xAxis, yAxis } = this.seriesAxes(currentSeries);\n const xRange = xAxis.currentRangeIndices();\n const yRange = yAxis.currentRangeIndices();\n\n for (let pointIx = 0; pointIx < currentSeries.data.length; pointIx++) {\n const { valueFields: value, fields } = this.plotArea.bindPoint(currentSeries, pointIx);\n const xIndex = xAxis.totalIndex(value.x);\n const yIndex = yAxis.totalIndex(value.y);\n const xIn = xRange.min <= xIndex && xIndex <= xRange.max;\n const yIn = yRange.min <= yIndex && yIndex <= yRange.max;\n\n if (xIn && yIn) {\n callback(value, deepExtend({\n pointIx: pointIx,\n series: currentSeries,\n seriesIx: seriesIx,\n dataItem: currentSeries.data[pointIx],\n owner: this\n }, fields));\n }\n }\n }\n }\n\n formatPointValue(point, format) {\n const value = point.value;\n return this.chartService.format.auto(format, value.x, value.y, value.value);\n }\n\n animationPoints() {\n const points = this.points;\n const result = [];\n for (let idx = 0; idx < points.length; idx++) {\n result.push((points[idx] || {}).marker);\n }\n return result;\n }\n}\nsetDefaultOptions(HeatmapChart, {\n series: [],\n tooltip: {\n format: \"{0}, {1}: {2}\"\n },\n labels: {\n format: \"{2}\"\n },\n clip: true\n});\n\nexport default HeatmapChart;\n","import { parseColor } from '@progress/kendo-drawing';\n\n// Linear color scale from the given color to white minus minimum lightness offset.\nconst colorScale = (color, minLightnessOffset = 0.05) => {\n const baseColor = parseColor(color);\n const offset = 1 - minLightnessOffset;\n\n return (value) => {\n const hsl = baseColor.toHSL();\n const range = 100 - hsl.l;\n const point = offset - value;\n hsl.l += Math.min(point * range, range);\n\n return hsl.toCss();\n };\n};\n\nexport default colorScale;\n","import { deepExtend, eventElement, grep, inArray, setDefaultOptions, createHashSet, cycleIndex } from '../../common';\nimport { DATE } from '../../common/constants';\nimport { CategoryAxis, DateCategoryAxis, Point } from '../../core';\nimport { dateEquals } from '../../date-utils';\nimport { HEATMAP } from '../constants';\nimport HeatmapChart from '../heatmap-chart/heatmap-chart';\nimport PlotAreaEventsMixin from '../mixins/plotarea-events-mixin';\nimport SeriesBinder from '../series-binder';\nimport { appendIfNotNull, equalsIgnoreCase, filterSeriesByType, singleItemOrArray } from '../utils';\nimport PlotAreaBase from './plotarea-base';\n\n\nclass HeatmapPlotArea extends PlotAreaBase {\n initFields() {\n this.namedXAxes = {};\n this.namedYAxes = {};\n }\n\n render(panes = this.panes) {\n this.bindCategories();\n this.createAxes(panes);\n this.createCharts(panes);\n this.createAxisLabels();\n }\n\n bindCategories() {\n const series = this.srcSeries || this.series;\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n const data = currentSeries.data || [];\n const { xAxis, yAxis } = this.seriesAxes(currentSeries);\n\n const xCategories = createHashSet(xAxis.categories || []);\n const yCategories = createHashSet(yAxis.categories || []);\n\n for (let pointIndex = 0; pointIndex < data.length; pointIndex++) {\n const { x, y } = SeriesBinder.current.bindPoint(currentSeries, pointIndex).valueFields;\n\n if (!xCategories.has(x)) {\n xCategories.add(x);\n }\n\n if (!yCategories.has(y)) {\n yCategories.add(y);\n }\n }\n\n xAxis.categories = xCategories.values();\n yAxis.categories = yCategories.values();\n }\n }\n\n createCharts(panes) {\n const seriesByPane = this.groupSeriesByPane();\n\n for (let i = 0; i < panes.length; i++) {\n const pane = panes[i];\n const paneSeries = seriesByPane[pane.options.name || \"default\"] || [];\n this.addToLegend(paneSeries);\n const filteredSeries = this.filterVisibleSeries(paneSeries);\n\n if (!filteredSeries) {\n continue;\n }\n\n this.createHeatmapChart(\n filterSeriesByType(filteredSeries, [ HEATMAP ]),\n pane\n );\n }\n }\n\n createHeatmapChart(series, pane) {\n const chart = new HeatmapChart(this, {\n series: series\n });\n\n this.appendChart(chart, pane);\n }\n\n seriesPaneName(series) {\n const options = this.options;\n const xAxisName = series.xAxis;\n const xAxisOptions = [].concat(options.xAxis);\n const xAxis = grep(xAxisOptions, function(a) { return a.name === xAxisName; })[0];\n const yAxisName = series.yAxis;\n const yAxisOptions = [].concat(options.yAxis);\n const yAxis = grep(yAxisOptions, function(a) { return a.name === yAxisName; })[0];\n const panes = options.panes || [ {} ];\n const defaultPaneName = panes[0].name || \"default\";\n const paneName = (xAxis || {}).pane || (yAxis || {}).pane || defaultPaneName;\n\n return paneName;\n }\n\n seriesAxes(series) {\n let xAxis;\n let yAxis;\n\n const options = this.options;\n\n const xAxisOptions = [].concat(options.xAxis);\n const xAxisName = series.xAxis;\n if (xAxisName) {\n xAxis = xAxisOptions.find(axis => axis.name === xAxisName);\n } else {\n xAxis = xAxisOptions[0];\n }\n\n const yAxisOptions = [].concat(options.yAxis);\n const yAxisName = series.yAxis;\n if (yAxisName) {\n yAxis = yAxisOptions.find(axis => axis.name === yAxisName);\n } else {\n yAxis = yAxisOptions[0];\n }\n\n if (!xAxis) {\n throw new Error(\"Unable to locate X axis with name \" + xAxisName);\n }\n\n if (!yAxis) {\n throw new Error(\"Unable to locate Y axis with name \" + yAxisName);\n }\n\n return { xAxis, yAxis };\n }\n\n createAxisLabels() {\n const axes = this.axes;\n for (let i = 0; i < axes.length; i++) {\n axes[i].createLabels();\n }\n }\n\n createXYAxis(options, vertical, axisIndex) {\n const axisName = options.name;\n const namedAxes = vertical ? this.namedYAxes : this.namedXAxes;\n const axisOptions = Object.assign({\n axisCrossingValue: 0\n }, options, {\n vertical: vertical,\n reverse: (vertical || this.chartService.rtl) ? !options.reverse : options.reverse,\n justified: false\n });\n const firstCategory = axisOptions.categories ? axisOptions.categories[0] : null;\n const typeSamples = [ axisOptions.min, axisOptions.max, firstCategory ];\n const series = this.series;\n\n for (let seriesIx = 0; seriesIx < series.length; seriesIx++) {\n const currentSeries = series[seriesIx];\n const seriesAxisName = currentSeries[vertical ? \"yAxis\" : \"xAxis\"];\n if ((seriesAxisName === axisOptions.name) || (axisIndex === 0 && !seriesAxisName)) {\n const firstPointValue = SeriesBinder.current.bindPoint(currentSeries, 0).valueFields;\n typeSamples.push(firstPointValue[vertical ? \"y\" : \"x\"]);\n\n break;\n }\n }\n\n let inferredDate;\n\n for (let i = 0; i < typeSamples.length; i++) {\n if (typeSamples[i] instanceof Date) {\n inferredDate = true;\n break;\n }\n }\n\n let axisType;\n if (equalsIgnoreCase(axisOptions.type, DATE) || (!axisOptions.type && inferredDate)) {\n axisType = DateCategoryAxis;\n } else {\n axisType = CategoryAxis;\n }\n\n const axis = new axisType(axisOptions, this.chartService);\n axis.axisIndex = axisIndex;\n\n if (axisName) {\n if (namedAxes[axisName]) {\n throw new Error(`${ vertical ? \"Y\" : \"X\" } axis with name ${ axisName } is already defined`);\n }\n namedAxes[axisName] = axis;\n }\n\n this.appendAxis(axis);\n axis.indexCategories();\n\n return axis;\n }\n\n createAxes(panes) {\n const options = this.options;\n const xAxesOptions = [].concat(options.xAxis);\n const xAxes = [];\n const yAxesOptions = [].concat(options.yAxis);\n const yAxes = [];\n\n for (let idx = 0; idx < xAxesOptions.length; idx++) {\n const axisPane = this.findPane(xAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n xAxes.push(this.createXYAxis(xAxesOptions[idx], false, idx));\n }\n }\n\n for (let idx = 0; idx < yAxesOptions.length; idx++) {\n const axisPane = this.findPane(yAxesOptions[idx].pane);\n if (inArray(axisPane, panes)) {\n yAxes.push(this.createXYAxis(yAxesOptions[idx], true, idx));\n }\n }\n\n this.axisX = this.axisX || xAxes[0];\n this.axisY = this.axisY || yAxes[0];\n }\n\n removeAxis(axis) {\n const axisName = axis.options.name;\n\n super.removeAxis(axis);\n\n if (axis.options.vertical) {\n delete this.namedYAxes[axisName];\n } else {\n delete this.namedXAxes[axisName];\n }\n\n if (axis === this.axisX) {\n delete this.axisX;\n }\n\n if (axis === this.axisY) {\n delete this.axisY;\n }\n }\n\n _dispatchEvent(chart, e, eventType) {\n const coords = chart._eventCoordinates(e);\n const point = new Point(coords.x, coords.y);\n const allAxes = this.axes;\n const length = allAxes.length;\n const xValues = [];\n const yValues = [];\n\n for (let i = 0; i < length; i++) {\n const axis = allAxes[i];\n const values = axis.options.vertical ? yValues : xValues;\n appendIfNotNull(values, axis.getCategory(point));\n }\n\n if (xValues.length > 0 && yValues.length > 0) {\n chart.trigger(eventType, {\n element: eventElement(e),\n originalEvent: e,\n x: singleItemOrArray(xValues),\n y: singleItemOrArray(yValues)\n });\n }\n }\n\n updateAxisOptions(axis, options) {\n const vertical = axis.options.vertical;\n const axes = this.groupAxes(this.panes);\n const index = (vertical ? axes.y : axes.x).indexOf(axis);\n\n updateAxisOptions(this.options, index, vertical, options);\n updateAxisOptions(this.originalOptions, index, vertical, options);\n }\n\n crosshairOptions(axis) {\n // Stack the crosshair above the series points.\n return Object.assign({}, axis.options.crosshair, { zIndex: 0 });\n }\n\n _pointsByVertical(basePoint, offset = 0) {\n const normalizedOffset = this.axisX.options.reverse ? offset * -1 : offset;\n const axisXItems = this.axisX.children;\n let xIndex = this._getPointAxisXIndex(basePoint) + normalizedOffset;\n\n xIndex = cycleIndex(xIndex, axisXItems.length);\n const targetXValue = axisXItems[xIndex].value;\n\n const points = this\n .filterPoints(point => compareValues(point.pointData().x, targetXValue))\n .sort((a, b) => this._getPointAxisYIndex(a) - this._getPointAxisYIndex(b));\n\n if (this.axisY.options.reverse) {\n return points.reverse();\n }\n\n return points;\n }\n\n _pointsByHorizontal(basePoint, offset = 0) {\n const normalizedOffset = this.axisY.options.reverse ? offset * -1 : offset;\n const axisYItems = this.axisY.children;\n let yIndex = this._getPointAxisYIndex(basePoint) + normalizedOffset;\n\n yIndex = cycleIndex(yIndex, axisYItems.length);\n const targetYValue = axisYItems[yIndex].value;\n\n const points = this\n .filterPoints(point => compareValues(point.pointData().y, targetYValue))\n .sort((a, b) => this._getPointAxisXIndex(a) - this._getPointAxisXIndex(b));\n\n if (this.axisX.options.reverse) {\n return points.reverse();\n }\n\n return points;\n }\n\n _getPointAxisXIndex(point) {\n return this._getPointAxisIndex(this.axisX, point.pointData().x);\n }\n\n _getPointAxisYIndex(point) {\n return this._getPointAxisIndex(this.axisY, point.pointData().y);\n }\n\n _getPointAxisIndex(axis, pointValue) {\n return axis.children.findIndex(axisItem => compareValues(pointValue, axisItem.value));\n }\n}\n\nfunction compareValues(a, b) {\n if (a instanceof Date && b instanceof Date) {\n return dateEquals(a, b);\n }\n\n return a === b;\n}\n\nfunction updateAxisOptions(targetOptions, axisIndex, vertical, options) {\n const axisOptions = ([].concat(vertical ? targetOptions.yAxis : targetOptions.xAxis))[axisIndex];\n deepExtend(axisOptions, options);\n}\n\nsetDefaultOptions(HeatmapPlotArea, {\n xAxis: {},\n yAxis: {}\n});\n\ndeepExtend(HeatmapPlotArea.prototype, PlotAreaEventsMixin);\n\nexport default HeatmapPlotArea;\n","import PlotAreaFactory from './plotarea/plotarea-factory';\nimport SeriesBinder from './series-binder';\nimport DefaultAggregates from './aggregates/default-aggregates';\nimport CategoricalPlotArea from './plotarea/categorical-plotarea';\nimport XYPlotArea from './plotarea/xy-plotarea';\nimport PiePlotArea from './plotarea/pie-plotarea';\nimport DonutPlotArea from './plotarea/donut-plotarea';\nimport PolarPlotArea from './plotarea/polar-plotarea';\nimport RadarPlotArea from './plotarea/radar-plotarea';\nimport FunnelPlotArea from './plotarea/funnel-plotarea';\nimport HeatmapPlotArea from './plotarea/heatmap-plotarea';\n\nimport { COLUMN, DONUT, PIE, FUNNEL, PYRAMID, BAR, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA,\n CANDLESTICK, OHLC, BULLET, VERTICAL_BULLET, BOX_PLOT, VERTICAL_BOX_PLOT, RANGE_COLUMN,\n RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL, SCATTER, SCATTER_LINE, BUBBLE,\n POLAR_AREA, POLAR_LINE, POLAR_SCATTER, RADAR_AREA, RADAR_COLUMN, RADAR_LINE, CATEGORY,\n RANGE_AREA, VERTICAL_RANGE_AREA, X_ERROR_LOW_FIELD, X_ERROR_HIGH_FIELD, Y_ERROR_LOW_FIELD, Y_ERROR_HIGH_FIELD,\n ERROR_LOW_FIELD, ERROR_HIGH_FIELD, HEATMAP, DRILLDOWN_FIELD, TRENDLINE_SERIES } from './constants';\nimport { X, Y, VALUE } from '../common/constants';\n\nconst COLOR = \"color\";\nconst FIRST = \"first\";\nconst FROM = \"from\";\nconst MAX = \"max\";\nconst MIN = \"min\";\nconst NOTE_TEXT = \"noteText\";\nconst SUMMARY_FIELD = \"summary\";\nconst TO = \"to\";\n\nPlotAreaFactory.current.register(CategoricalPlotArea, [\n BAR, COLUMN, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA,\n CANDLESTICK, OHLC, BULLET, VERTICAL_BULLET, BOX_PLOT, VERTICAL_BOX_PLOT,\n RANGE_COLUMN, RANGE_BAR, WATERFALL, HORIZONTAL_WATERFALL, RANGE_AREA, VERTICAL_RANGE_AREA,\n ...TRENDLINE_SERIES\n]);\n\nPlotAreaFactory.current.register(XYPlotArea, [\n SCATTER, SCATTER_LINE, BUBBLE,\n ...TRENDLINE_SERIES\n]);\n\nPlotAreaFactory.current.register(PiePlotArea, [ PIE ]);\nPlotAreaFactory.current.register(DonutPlotArea, [ DONUT ]);\nPlotAreaFactory.current.register(FunnelPlotArea, [ FUNNEL, PYRAMID ]);\n\nPlotAreaFactory.current.register(PolarPlotArea, [\n POLAR_AREA, POLAR_LINE, POLAR_SCATTER,\n ...TRENDLINE_SERIES\n]);\n\nPlotAreaFactory.current.register(RadarPlotArea, [\n RADAR_AREA, RADAR_COLUMN, RADAR_LINE,\n ...TRENDLINE_SERIES\n]);\n\nPlotAreaFactory.current.register(HeatmapPlotArea, [ HEATMAP ]);\n\nSeriesBinder.current.register(\n [ BAR, COLUMN, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA ],\n [ VALUE ], [ CATEGORY, COLOR, NOTE_TEXT, ERROR_LOW_FIELD, ERROR_HIGH_FIELD, DRILLDOWN_FIELD ]\n);\n\nSeriesBinder.current.register(\n [ RANGE_COLUMN, RANGE_BAR, RANGE_AREA, VERTICAL_RANGE_AREA ],\n [ FROM, TO ], [ CATEGORY, COLOR, NOTE_TEXT, DRILLDOWN_FIELD ]\n);\n\nSeriesBinder.current.register(\n [ WATERFALL, HORIZONTAL_WATERFALL ],\n [ VALUE ], [ CATEGORY, COLOR, NOTE_TEXT, SUMMARY_FIELD, DRILLDOWN_FIELD ]\n);\n\nSeriesBinder.current.register([ POLAR_AREA, POLAR_LINE, POLAR_SCATTER ], [ X, Y ], [ COLOR, DRILLDOWN_FIELD ]);\nSeriesBinder.current.register([ RADAR_AREA, RADAR_COLUMN, RADAR_LINE ], [ VALUE ], [ CATEGORY, COLOR, DRILLDOWN_FIELD ]);\n\nSeriesBinder.current.register(\n [ FUNNEL, PYRAMID ],\n [ VALUE ], [ CATEGORY, COLOR, \"visibleInLegend\", \"visible\", DRILLDOWN_FIELD ]\n);\n\nDefaultAggregates.current.register(\n [ BAR, COLUMN, LINE, VERTICAL_LINE, AREA, VERTICAL_AREA, WATERFALL, HORIZONTAL_WATERFALL ],\n { value: MAX, color: FIRST, noteText: FIRST, errorLow: MIN, errorHigh: MAX }\n);\n\nDefaultAggregates.current.register(\n [ RANGE_COLUMN, RANGE_BAR, RANGE_AREA, VERTICAL_RANGE_AREA ],\n { from: MIN, to: MAX, color: FIRST, noteText: FIRST }\n);\n\nDefaultAggregates.current.register(\n [ RADAR_AREA, RADAR_COLUMN, RADAR_LINE ],\n { value: MAX, color: FIRST }\n);\n\nSeriesBinder.current.register(\n [ SCATTER, SCATTER_LINE, BUBBLE ],\n [ X, Y ], [ COLOR, NOTE_TEXT, X_ERROR_LOW_FIELD, X_ERROR_HIGH_FIELD, Y_ERROR_LOW_FIELD, Y_ERROR_HIGH_FIELD ]\n);\n\nSeriesBinder.current.register(\n [ BUBBLE ], [ X, Y, \"size\" ], [ COLOR, CATEGORY, NOTE_TEXT ]\n);\n\nSeriesBinder.current.register(\n [ HEATMAP ],\n [ X, Y, VALUE ], [ COLOR, NOTE_TEXT ]\n);\n\nSeriesBinder.current.register(\n [ CANDLESTICK, OHLC ],\n [ \"open\", \"high\", \"low\", \"close\" ], [ CATEGORY, COLOR, \"downColor\", NOTE_TEXT ]\n);\n\nDefaultAggregates.current.register(\n [ CANDLESTICK, OHLC ],\n { open: MAX, high: MAX, low: MIN, close: MAX,\n color: FIRST, downColor: FIRST, noteText: FIRST }\n);\n\nSeriesBinder.current.register(\n [ BOX_PLOT, VERTICAL_BOX_PLOT ],\n [ \"lower\", \"q1\", \"median\", \"q3\", \"upper\", \"mean\", \"outliers\" ], [ CATEGORY, COLOR, NOTE_TEXT, DRILLDOWN_FIELD ]\n);\n\nDefaultAggregates.current.register(\n [ BOX_PLOT, VERTICAL_BOX_PLOT ],\n { lower: MAX, q1: MAX, median: MAX, q3: MAX, upper: MAX, mean: MAX, outliers: FIRST,\n color: FIRST, noteText: FIRST }\n);\n\nSeriesBinder.current.register(\n [ BULLET, VERTICAL_BULLET ],\n [ \"current\", \"target\" ], [ CATEGORY, COLOR, \"visibleInLegend\", NOTE_TEXT, DRILLDOWN_FIELD ]\n);\n\nDefaultAggregates.current.register(\n [ BULLET, VERTICAL_BULLET ],\n { current: MAX, target: MAX, color: FIRST, noteText: FIRST }\n);\n\nSeriesBinder.current.register(\n [ PIE, DONUT ],\n [ VALUE ], [ CATEGORY, COLOR, \"explode\", \"visibleInLegend\", \"visible\", DRILLDOWN_FIELD ]\n);\n","import PiePlotArea from './pie-plotarea';\nimport DonutChart from '../donut-chart/donut-chart';\n\nclass DonutPlotArea extends PiePlotArea {\n render() {\n this.createDonutChart(this.series);\n }\n\n createDonutChart(series) {\n const firstSeries = series[0];\n const donutChart = new DonutChart(this, {\n series: series,\n padding: firstSeries.padding,\n connectors: firstSeries.connectors,\n legend: this.options.legend\n });\n\n this.appendChart(donutChart);\n }\n\n // These were overriden in the Pie, so revert to original behavior\n getPointBelow(point) {\n return this._getNextPoint(point, this._pointsByVertical, -1);\n }\n\n getPointAbove(point) {\n return this._getNextPoint(point, this._pointsByVertical, 1);\n }\n}\n\nexport default DonutPlotArea;","import PlotAreaBase from './plotarea-base';\nimport FunnelChart from '../funnel-chart/funnel-chart';\nimport PyramidChart from '../funnel-chart/pyramid-chart';\n\nimport { append } from '../../common';\nimport { filterSeriesByType } from '../utils';\n\nimport { FUNNEL, PYRAMID } from '../constants';\n\nclass FunnelPlotArea extends PlotAreaBase {\n render() {\n this.createChart(FunnelChart, filterSeriesByType(this.series, [ FUNNEL ]));\n this.createChart(PyramidChart, filterSeriesByType(this.series, [ PYRAMID ]));\n }\n\n createChart(chartType, series) {\n const firstSeries = series[0];\n if (!firstSeries) {\n return;\n }\n\n const chart = new chartType(this, {\n series: series,\n legend: this.options.legend,\n neckRatio: firstSeries.neckRatio,\n dynamicHeight: firstSeries.dynamicHeight,\n dynamicSlope: firstSeries.dynamicSlope,\n segmentSpacing: firstSeries.segmentSpacing,\n highlight: firstSeries.highlight\n });\n\n this.appendChart(chart);\n }\n\n appendChart(chart, pane) {\n super.appendChart(chart, pane);\n append(this.options.legend.data, chart.legendItems);\n }\n\n _pointsByVertical(basePoint) {\n return this.pointsBySeriesIndex(basePoint.series.index);\n }\n\n getPointToTheRight(point) {\n return this.getPointBelow(point);\n }\n\n getPointToTheLeft(point) {\n return this.getPointAbove(point);\n }\n}\n\nexport default FunnelPlotArea;\n","import { drawing as draw, throttle, geometry } from '@progress/kendo-drawing';\n\nimport { RootElement, Title, CategoryAxis, Point } from '../core';\n\nimport Highlight from './highlight';\nimport Pannable from './pan-and-zoom/pannable';\nimport ZoomSelection from './pan-and-zoom/zoom-selection';\nimport MousewheelZoom from './pan-and-zoom/mousewheel-zoom';\nimport Legend from './legend/legend';\nimport PlotAreaFactory from './plotarea/plotarea-factory';\nimport Selection from './selection';\nimport SeriesBinder from './series-binder';\nimport Tooltip from './tooltip/tooltip';\nimport SharedTooltip from './tooltip/shared-tooltip';\nimport CategoricalPlotArea from './plotarea/categorical-plotarea';\nimport PlotAreaBase from './plotarea/plotarea-base';\nimport { ChartService, DomEventsBuilder } from '../services';\nimport isDateAxis from './utils/is-date-axis';\nimport { ChartPane, ChartPlotArea, findAxisByName } from './api-elements';\n\nimport { X, Y, VALUE, DEFAULT_WIDTH, DEFAULT_HEIGHT, DEFAULT_SERIES_OPACITY,\n ARROW_DOWN, ARROW_UP, ARROW_LEFT, ARROW_RIGHT, ARIA_ACTIVE_DESCENDANT, TAB, TOP, LEFT, BLACK,\n ENTER, ESCAPE } from '../common/constants';\nimport { addClass, Class, setDefaultOptions, deepExtend, defined, find, isObject, isFunction, elementSize, elementOffset,\n elementScale, elementStyles, eventCoordinates, bindEvents, unbindEvents, mousewheelDelta, FontLoader, inArray, round,\n valueOrDefault, isString, cycleUp, cycleDown, hasOwnProperty } from '../common';\n\nimport { DRAG_START, DRAG, DRAG_END, ZOOM_START, ZOOM, ZOOM_END, SELECT_START, SELECT, SELECT_END, PLOT_AREA_HOVER, PLOT_AREA_LEAVE,\n RENDER, CATEGORY, PIE, DONUT, FUNNEL, PYRAMID, COLUMN, MOUSEWHEEL, MOUSEWHEEL_DELAY, MOUSEWHEEL_ZOOM_RATE, SHOW_TOOLTIP, SERIES_HOVER,\n SERIES_OVER, SERIES_LEAVE, SERIES_CLICK, DRILLDOWN, LEGEND_ITEM_CLICK } from './constants';\n\nimport './animations';\nimport './register-charts';\nimport { parseDateCategory } from './utils';\n\nconst AXIS_NAMES = [ CATEGORY, VALUE, X, Y ];\n\nconst MOUSEDOWN = \"mousedown\";\nconst MOUSEMOVE = \"mousemove\";\nconst CONTEXTMENU = \"contextmenu\";\nconst MOUSELEAVE = \"mouseleave\";\nconst KEYDOWN = \"keydown\";\nconst FOCUS = \"focus\";\nconst BLUR = \"blur\";\nconst MOUSEMOVE_DELAY = 20;\n\nclass Chart extends Class {\n constructor(element, userOptions, themeOptions, context = {}) {\n super();\n\n this.observers = [];\n this.addObserver(context.observer);\n this.chartService = new ChartService(this, context);\n this.chartService.theme = themeOptions;\n\n this._initElement(element);\n\n const options = deepExtend({}, this.options, userOptions);\n this._originalOptions = deepExtend({}, options);\n this._theme = themeOptions;\n this._initTheme(options, themeOptions);\n this._focusState = {};\n\n this._initHandlers();\n this._initSurface();\n\n this.bindCategories();\n FontLoader.preloadFonts(userOptions, () => {\n this.fontLoaded = true;\n if (!this._destroyed) {\n this.trigger('init');\n this._redraw();\n this._attachEvents();\n }\n });\n }\n\n _initElement(element) {\n this._setElementClass(element);\n element.style.position = \"relative\";\n element.tabIndex = element.getAttribute(\"tabindex\") ? element.getAttribute(\"tabindex\") : 0;\n // To support user agents and assistive technologies based on the ARIA 1.0 specification, authors may wish to include the document role as a fallback value, in the form role=\"graphics-document document\".\n element.setAttribute(\"role\", \"graphics-document document\");\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n this.element = element;\n }\n\n _setElementClass(element) {\n addClass(element, \"k-chart\");\n }\n\n _initTheme(options, themeOptions) {\n const seriesCopies = [];\n const series = options.series || [];\n\n for (let i = 0; i < series.length; i++) {\n seriesCopies.push(Object.assign({}, series[i]));\n }\n options.series = seriesCopies;\n\n resolveAxisAliases(options);\n this.applyDefaults(options, themeOptions);\n\n // Clean up default if not overriden by data attributes\n if (options.seriesColors === null) {\n delete options.seriesColors;\n }\n\n if (isString(options.title)) {\n options.title = { text: options.title };\n }\n\n this.options = deepExtend({}, themeOptions, options);\n this.applySeriesColors();\n }\n\n getSize() {\n const chartArea = this.options.chartArea || {};\n const width = chartArea.width ? parseInt(chartArea.width, 10) : Math.floor(this.element.offsetWidth);\n const height = chartArea.height ? parseInt(chartArea.height, 10) : Math.floor(this.element.offsetHeight);\n\n return {\n width: width,\n height: height\n };\n }\n\n resize(force) {\n const size = this.getSize();\n const currentSize = this._size;\n const hasSize = size.width > 0 || size.height > 0;\n\n if (force || hasSize && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) {\n this._size = size;\n this._resize(size, force);\n this.trigger(\"resize\", size);\n } else if (hasSize && this._selections && find(this._selections, s => !s.visible)) {\n this._destroySelections();\n this._setupSelection();\n }\n }\n\n _resize() {\n this._noTransitionsRedraw();\n }\n\n redraw(paneName) {\n this.applyDefaults(this.options);\n this.applySeriesColors();\n\n if (paneName) {\n const plotArea = this._model._plotArea;\n const pane = plotArea.findPane(paneName);\n plotArea.redraw(pane);\n } else {\n this._redraw();\n }\n }\n\n getAxis(name) {\n return findAxisByName(name, this._plotArea.axes);\n }\n\n findAxisByName(name) {\n return this.getAxis(name);\n }\n\n findPaneByName(name) {\n const panes = this._plotArea.panes;\n\n for (let idx = 0; idx < panes.length; idx++) {\n if (panes[idx].options.name === name) {\n return new ChartPane(panes[idx]);\n }\n }\n }\n\n findPaneByIndex(idx) {\n const panes = this._plotArea.panes;\n if (panes[idx]) {\n return new ChartPane(panes[idx]);\n }\n }\n\n plotArea() {\n return new ChartPlotArea(this._plotArea);\n }\n\n toggleHighlight(show, filter) {\n const plotArea = this._plotArea;\n const firstSeries = (plotArea.srcSeries || plotArea.series || [])[0];\n let points;\n\n if (isFunction(filter)) {\n points = plotArea.filterPoints(filter);\n } else {\n let seriesName, categoryName;\n if (isObject(filter)) {\n seriesName = filter.series;\n categoryName = filter.category;\n } else {\n seriesName = categoryName = filter;\n }\n\n if (firstSeries.type === DONUT) {\n points = pointByCategoryName(plotArea.pointsBySeriesName(seriesName), categoryName);\n } else if (inArray(firstSeries.type, [ PIE, FUNNEL, PYRAMID ])) {\n points = pointByCategoryName((plotArea.charts[0] || {}).points, categoryName);\n } else {\n points = plotArea.pointsBySeriesName(seriesName);\n }\n }\n\n if (points) {\n this.togglePointsHighlight(show, points);\n }\n }\n\n togglePointsHighlight(show, points) {\n const highlight = this._highlight;\n for (let idx = 0; idx < points.length; idx++) {\n highlight.togglePointHighlight(points[idx], show);\n }\n }\n\n showTooltip(filter) {\n const shared = this._sharedTooltip();\n const { _tooltip: tooltip, _plotArea: plotArea } = this;\n let point, categoryIndex;\n\n if (isFunction(filter)) {\n point = plotArea.findPoint(filter);\n if (point && shared) {\n categoryIndex = point.categoryIx;\n }\n } else if (shared && defined(filter)) {\n categoryIndex = plotArea.categoryAxis.categoryIndex(filter);\n }\n\n if (shared) {\n if (categoryIndex >= 0) {\n const points = this._plotArea.pointsByCategoryIndex(categoryIndex);\n tooltip.showAt(points);\n }\n } else if (point) {\n tooltip.show(point);\n }\n }\n\n hideTooltip() {\n this._tooltip.hide();\n }\n\n _initSurface() {\n const surface = this.surface;\n const wrap = this._surfaceWrap();\n\n const chartArea = this.options.chartArea || {};\n if (chartArea.width) {\n elementSize(wrap, { width: chartArea.width });\n }\n if (chartArea.height) {\n elementSize(wrap, { height: chartArea.height });\n }\n\n if (!surface || surface.options.type !== this.options.renderAs) {\n this._destroySurface();\n\n this.surface = draw.Surface.create(wrap, {\n type: this.options.renderAs\n });\n\n this.surface.bind(\"mouseenter\", this._surfaceMouseenterHandler);\n this.surface.bind(\"mouseleave\", this._surfaceMouseleaveHandler);\n\n } else {\n this.surface.clear();\n this.surface.resize();\n }\n\n // Override the surface _kendoExportVisual in order to accept export options with size.\n this.element._kendoExportVisual = this._kendoExportVisual.bind(this);\n }\n\n _surfaceWrap() {\n return this.element;\n }\n\n _redraw() {\n const model = this._getModel();\n this._size = {\n width: model.options.width,\n height: model.options.height\n };\n\n this._destroyView();\n\n this._setElementAccessibilityAttributes();\n\n this._model = model;\n this._plotArea = model._plotArea;\n this._legend = model._legend;\n\n model.renderVisual();\n\n if (this.options.transitions !== false) {\n model.traverse(function(element) {\n if (element.animation) {\n element.animation.setup();\n }\n });\n }\n\n this._initSurface();\n this.surface.draw(model.visual);\n\n if (this.options.transitions !== false) {\n model.traverse(function(element) {\n if (element.animation) {\n element.animation.play();\n }\n });\n }\n\n this._tooltip = this._createTooltip();\n this._highlight = new Highlight();\n this._setupSelection();\n this._createPannable();\n this._createZoomSelection();\n this._createMousewheelZoom();\n\n this.trigger(RENDER);\n triggerPaneRender(this._plotArea.panes);\n\n if (!this._navState) {\n this._cancelDomEvents();\n }\n\n this._redrawFocusHighlight();\n }\n\n _redrawFocusHighlight() {\n const { _focusState: { legendInFocus, preserveHighlight } } = this;\n\n if (legendInFocus && preserveHighlight) {\n this._focusElement(this._getFocusedLegendItem(), false);\n this._focusState.preserveHighlight = false;\n }\n }\n\n _setElementAccessibilityAttributes() {\n let titleOptions = this.options.title;\n let title = isString(titleOptions) ? titleOptions : (titleOptions.description || titleOptions.text);\n\n if (title) {\n this.element.setAttribute(\"aria-roledescription\", title);\n }\n }\n\n _kendoExportVisual(size) {\n if (size && size.width && size.height) {\n const chartArea = this._originalOptions.chartArea || {};\n const exportOptions = {\n width: chartArea.width || size.width,\n height: chartArea.height || size.height\n };\n\n return this.exportVisual(exportOptions);\n }\n\n return this.exportVisual();\n }\n\n exportVisual(exportOptions) {\n let visual;\n if (exportOptions && (exportOptions.width || exportOptions.height || exportOptions.options)) {\n const currentOptions = this.options;\n const options = deepExtend({}, exportOptions.options, {\n chartArea: {\n width: exportOptions.width,\n height: exportOptions.height\n }\n });\n\n clearMissingValues(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions, options);\n this._initTheme(this.options, this._theme);\n this.bindCategories();\n\n const model = this._getModel();\n\n model.renderVisual();\n triggerPaneRender(model._plotArea.panes);\n\n visual = model.visual;\n\n this.options = currentOptions;\n } else {\n visual = this.surface.exportVisual();\n }\n\n return visual;\n }\n\n _sharedTooltip() {\n return this._plotArea instanceof CategoricalPlotArea && this.options.tooltip && this.options.tooltip.shared;\n }\n\n _createPannable() {\n const options = this.options;\n if (options.pannable !== false) {\n this._pannable = new Pannable(this._plotArea, options.pannable);\n }\n }\n\n _createZoomSelection() {\n const zoomable = this.options.zoomable;\n const selection = (zoomable || {}).selection;\n if (zoomable !== false && selection !== false) {\n this._zoomSelection = new ZoomSelection(this, selection);\n }\n }\n\n _createMousewheelZoom() {\n const zoomable = this.options.zoomable;\n const mousewheel = (zoomable || {}).mousewheel;\n if (zoomable !== false && mousewheel !== false) {\n this._mousewheelZoom = new MousewheelZoom(this, mousewheel);\n }\n }\n\n _toggleDragZoomEvents() {\n const pannable = this.options.pannable;\n const zoomable = this.options.zoomable;\n const selection = (zoomable || {}).selection;\n const mousewheel = (zoomable || {}).mousewheel;\n const allowDrag = !pannable && (zoomable === false || selection === false) && !this.requiresHandlers([ DRAG_START, DRAG, DRAG_END ]);\n const allowZoom = (zoomable === false || mousewheel === false) && !this.requiresHandlers([ ZOOM_START, ZOOM, ZOOM_END ]);\n const element = this.element;\n\n if (this._dragZoomEnabled && allowDrag && allowZoom) {\n element.style.touchAction = this._touchAction || '';\n this._dragZoomEnabled = false;\n } else if (!this._dragZoomEnabled && !(allowDrag && allowZoom)) {\n element.style.touchAction = \"none\";\n\n this._dragZoomEnabled = true;\n }\n\n this._toggleDomEvents(!allowDrag, !allowZoom);\n }\n\n _toggleDomEvents(drag, zoom) {\n const domEvents = this.domEvents;\n if (!domEvents) {\n return;\n }\n\n if (domEvents.toggleDrag) {\n domEvents.toggleDrag(drag);\n }\n\n if (domEvents.toggleZoom) {\n domEvents.toggleZoom(zoom);\n }\n }\n\n _createTooltip() {\n const { options: { tooltip: tooltipOptions } } = this;\n let tooltip;\n\n if (this._sharedTooltip()) {\n tooltip = this._createSharedTooltip(tooltipOptions);\n } else {\n tooltip = new Tooltip(this.chartService, tooltipOptions);\n }\n\n return tooltip;\n }\n\n _createSharedTooltip(options) {\n return new SharedTooltip(this._plotArea, options);\n }\n\n applyDefaults(options, themeOptions) {\n applyAxisDefaults(options, themeOptions);\n applySeriesDefaults(options, themeOptions);\n }\n\n applySeriesColors() {\n const options = this.options;\n const series = options.series;\n const colors = options.seriesColors || [];\n\n for (let i = 0; i < series.length; i++) {\n const currentSeries = series[i];\n const seriesColor = colors[i % colors.length];\n const defaults = currentSeries._defaults;\n\n currentSeries.color = currentSeries.color || seriesColor;\n if (defaults) {\n defaults.color = defaults.color || seriesColor;\n }\n }\n }\n\n _getModel() {\n const options = this.options;\n const plotArea = this._createPlotArea();\n const model = new RootElement(this._modelOptions());\n model.chart = this;\n model._plotArea = plotArea;\n\n const title = Title.buildTitle(options.title);\n const subtitle = Title.buildTitle(options.subtitle, {\n align: options.title.align,\n position: options.title.position\n });\n model.append.apply(model, Title.orderTitles([title, subtitle]));\n\n if (options.legend && options.legend.visible) {\n const legend = new Legend(plotArea.options.legend, this.chartService);\n model.append(legend);\n model._legend = legend;\n }\n model.append(plotArea);\n model.reflow();\n\n return model;\n }\n\n _modelOptions() {\n const options = this.options;\n const size = this.getSize();\n\n return deepExtend({\n transitions: options.transitions,\n width: size.width || DEFAULT_WIDTH,\n height: size.height || DEFAULT_HEIGHT\n }, options.chartArea);\n }\n\n _createPlotArea(skipSeries) {\n const options = this.options;\n\n const plotArea = PlotAreaFactory.current.create(skipSeries ? [] : options.series, options, this.chartService);\n\n return plotArea;\n }\n\n _setupSelection() {\n const { _plotArea: { axes } } = this;\n const selections = this._selections = [];\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const options = axis.options;\n if (axis instanceof CategoryAxis && options.select && !options.vertical) {\n const range = axis.range();\n\n const selection = new Selection(this, axis,\n deepExtend({ min: range.min, max: range.max }, options.select)\n );\n\n selections.push(selection);\n }\n }\n }\n\n _selectStart(e) {\n return this.trigger(SELECT_START, e);\n }\n\n _select(e) {\n return this.trigger(SELECT, e);\n }\n\n _selectEnd(e) {\n return this.trigger(SELECT_END, e);\n }\n\n _initHandlers() {\n this._clickHandler = this._click.bind(this);\n this._keydownHandler = this._keydown.bind(this);\n this._focusHandler = this._focus.bind(this);\n this._blurHandler = this._blur.bind(this);\n this._mousedownHandler = this._mousedown.bind(this);\n this._mousewheelHandler = this._mousewheel.bind(this);\n this._mouseleaveHandler = this._mouseleave.bind(this);\n this._surfaceMouseenterHandler = this._mouseover.bind(this);\n this._surfaceMouseleaveHandler = this._mouseout.bind(this);\n\n this._mousemove = throttle(\n this._mousemove.bind(this),\n MOUSEMOVE_DELAY\n );\n }\n\n addObserver(observer) {\n if (observer) {\n this.observers.push(observer);\n }\n }\n\n removeObserver(observer) {\n const index = this.observers.indexOf(observer);\n if (index >= 0) {\n this.observers.splice(index, 1);\n }\n }\n\n requiresHandlers(eventNames) {\n const observers = this.observers;\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].requiresHandlers(eventNames)) {\n return true;\n }\n }\n }\n\n trigger(name, args = {}) {\n args.sender = this;\n\n if (name === SHOW_TOOLTIP) {\n args.anchor.point = this._toDocumentCoordinates(args.anchor.point);\n } else if (name === SERIES_OVER) {\n this._updateDrilldownPoint(args.point);\n } else if (name === SERIES_LEAVE) {\n this._resetDrilldownPoint();\n } else if (name === SERIES_CLICK) {\n this._focusPoint(args.point);\n this._startDrilldown(args.point);\n } else if (name === LEGEND_ITEM_CLICK) {\n this._focusLegendItem(args);\n }\n\n const observers = this.observers;\n let isDefaultPrevented = false;\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].trigger(name, args)) {\n isDefaultPrevented = true;\n }\n }\n\n return isDefaultPrevented;\n }\n\n _attachEvents() {\n const element = this.element;\n\n this._touchAction = element.style.touchAction;\n\n bindEvents(element, {\n [ CONTEXTMENU ]: this._clickHandler,\n [ MOUSEWHEEL ]: this._mousewheelHandler,\n [ MOUSELEAVE ]: this._mouseleaveHandler,\n [ KEYDOWN ]: this._keydownHandler,\n [ MOUSEDOWN ]: this._mousedownHandler,\n [ FOCUS ]: this._focusHandler,\n [ BLUR]: this._blurHandler\n });\n\n if (this._shouldAttachMouseMove()) {\n bindEvents(element, { [ MOUSEMOVE ]: this._mousemove });\n }\n\n this.domEvents = DomEventsBuilder.create(this.element, {\n start: this._start.bind(this),\n move: this._move.bind(this),\n end: this._end.bind(this),\n tap: this._tap.bind(this),\n gesturestart: this._gesturestart.bind(this),\n gesturechange: this._gesturechange.bind(this),\n gestureend: this._gestureend.bind(this)\n });\n\n this._toggleDragZoomEvents();\n }\n\n _mouseleave(e) {\n if (this._hoveredPoint) {\n this._hoveredPoint.out(this, e);\n this._hoveredPoint = null;\n }\n\n if (this._plotAreaHovered) {\n this._plotAreaHovered = false;\n this.trigger(PLOT_AREA_LEAVE);\n }\n\n if (this._hasInactiveOpacity() && this._activeChartInstance) {\n this._applySeriesOpacity(this._activeChartInstance.children, null, true);\n this._updateSeriesOpacity(null, true);\n }\n }\n\n _cancelDomEvents() {\n if (this.domEvents && this.domEvents.cancel) {\n this.domEvents.cancel();\n }\n }\n\n _gesturestart(e) {\n if (this._mousewheelZoom && !this._stopChartHandlers(e)) {\n this._gestureDistance = e.distance;\n this._unsetActivePoint();\n this._clearFocusedElement();\n this.surface.suspendTracking();\n }\n }\n\n _gestureend(e) {\n if (this._zooming && !this._stopChartHandlers(e)) {\n if (this.surface) {\n this.surface.resumeTracking();\n }\n this._zooming = false;\n this.trigger(ZOOM_END, {});\n }\n }\n\n _gesturechange(e) {\n const mousewheelZoom = this._mousewheelZoom;\n\n if (mousewheelZoom && !this._stopChartHandlers(e)) {\n e.preventDefault();\n const previousGestureDistance = this._gestureDistance;\n let scaleDelta = -e.distance / previousGestureDistance + 1;\n\n if (Math.abs(scaleDelta) >= 0.1) {\n scaleDelta = Math.round(scaleDelta * 10);\n\n this._gestureDistance = e.distance;\n const args = { delta: scaleDelta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e };\n if (this._zooming || !this.trigger(ZOOM_START, args)) {\n const coords = this._eventCoordinates(e);\n\n if (!this._zooming) {\n this._zooming = true;\n }\n\n const ranges = args.axisRanges = mousewheelZoom.updateRanges(scaleDelta, coords);\n if (ranges && !this.trigger(ZOOM, args)) {\n mousewheelZoom.zoom();\n }\n }\n }\n }\n }\n\n _mouseout(e) {\n if (e.element) {\n const element = this._drawingChartElement(e.element, e);\n\n if (element && element.leave) {\n element.leave(this, e.originalEvent);\n }\n }\n }\n\n _start(e) {\n const coords = this._eventCoordinates(e);\n\n if (this._stopChartHandlers(e) || !this._plotArea.backgroundContainsPoint(coords)) {\n return;\n }\n\n\n if (this.requiresHandlers([ DRAG_START, DRAG, DRAG_END ])) {\n this._startNavigation(e, coords, DRAG_START);\n }\n\n if (this._pannable && this._pannable.start(e)) {\n this.surface.suspendTracking();\n this._unsetActivePoint();\n this._clearFocusedElement();\n this._suppressHover = true;\n this.chartService.panning = true;\n }\n\n if (this._zoomSelection) {\n if (this._zoomSelection.start(e)) {\n this.trigger(ZOOM_START, { axisRanges: axisRanges(this._plotArea.axes), originalEvent: e });\n }\n }\n }\n\n _move(e) {\n let { _navState: state, _pannable: pannable } = this;\n\n if (this._stopChartHandlers(e)) {\n return;\n }\n\n if (pannable) {\n const ranges = pannable.move(e);\n\n if (ranges && !this.trigger(DRAG, { axisRanges: ranges, originalEvent: e })) {\n pannable.pan();\n }\n } else if (state) {\n const ranges = {};\n const axes = state.axes;\n\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n const axisName = currentAxis.options.name;\n if (axisName) {\n const axis = currentAxis.options.vertical ? e.y : e.x;\n const delta = axis.startLocation - axis.location;\n\n if (delta !== 0) {\n ranges[currentAxis.options.name] = currentAxis.translateRange(delta);\n }\n }\n }\n\n state.axisRanges = ranges;\n this.trigger(DRAG, {\n axisRanges: ranges,\n originalEvent: e\n });\n }\n\n if (this._zoomSelection) {\n this._zoomSelection.move(e);\n }\n }\n\n _end(e) {\n if (this._stopChartHandlers(e)) {\n return;\n }\n\n const pannable = this._pannable;\n if (pannable && pannable.end(e)) {\n this.surface.resumeTracking();\n this.trigger(DRAG_END, {\n axisRanges: axisRanges(this._plotArea.axes),\n originalEvent: e\n });\n this._suppressHover = false;\n this.chartService.panning = false;\n } else {\n this._endNavigation(e, DRAG_END);\n }\n\n if (this._zoomSelection) {\n const ranges = this._zoomSelection.end(e);\n if (ranges && !this.trigger(ZOOM, { axisRanges: ranges, originalEvent: e })) {\n this._zoomSelection.zoom();\n this.trigger(ZOOM_END, { axisRanges: ranges, originalEvent: e });\n }\n }\n }\n\n _stopChartHandlers(e) {\n const selections = this._selections || [];\n if (!selections.length) {\n return false;\n }\n\n const coords = this._eventCoordinates(e);\n const pane = this._plotArea.paneByPoint(coords);\n if (pane) {\n for (let idx = 0; idx < selections.length; idx++) {\n if (selections[idx].onPane(pane)) {\n return true;\n }\n }\n }\n }\n\n _mousewheelZoomRate() {\n const zoomable = this.options.zoomable;\n const mousewheel = (zoomable || {}).mousewheel || {};\n return valueOrDefault(mousewheel.rate, MOUSEWHEEL_ZOOM_RATE);\n }\n\n _mousewheel(e) {\n const delta = mousewheelDelta(e);\n const mousewheelZoom = this._mousewheelZoom;\n const coords = this._eventCoordinates(e);\n\n if (this._stopChartHandlers(e) || !this._plotArea.backgroundContainsPoint(coords)) {\n return;\n }\n\n if (mousewheelZoom) {\n const args = { delta: delta, axisRanges: axisRanges(this._plotArea.axes), originalEvent: e };\n if (this._zooming || !this.trigger(ZOOM_START, args)) {\n e.preventDefault();\n\n if (!this._zooming) {\n this._unsetActivePoint();\n this._clearFocusedElement();\n this.surface.suspendTracking();\n this._zooming = true;\n }\n\n if (this._mwTimeout) {\n clearTimeout(this._mwTimeout);\n }\n\n args.axisRanges = mousewheelZoom.updateRanges(delta, coords);\n if (args.axisRanges && !this.trigger(ZOOM, args)) {\n mousewheelZoom.zoom();\n }\n\n this._mwTimeout = setTimeout(() => {\n this.trigger(ZOOM_END, args);\n this._zooming = false;\n if (this.surface) {\n this.surface.resumeTracking();\n }\n }, MOUSEWHEEL_DELAY);\n }\n } else {\n let state = this._navState;\n if (!state) {\n const prevented = this._startNavigation(e, coords, ZOOM_START);\n if (!prevented) {\n state = this._navState;\n }\n }\n\n if (state) {\n const totalDelta = state.totalDelta || delta;\n state.totalDelta = totalDelta + delta;\n\n const axes = this._navState.axes;\n const ranges = {};\n\n for (let i = 0; i < axes.length; i++) {\n const currentAxis = axes[i];\n const axisName = currentAxis.options.name;\n if (axisName) {\n ranges[axisName] = currentAxis.scaleRange(-totalDelta * this._mousewheelZoomRate(), coords);\n }\n }\n\n this.trigger(ZOOM, {\n delta: delta,\n axisRanges: ranges,\n originalEvent: e\n });\n\n if (this._mwTimeout) {\n clearTimeout(this._mwTimeout);\n }\n\n this._mwTimeout = setTimeout(() => {\n this._endNavigation(e, ZOOM_END);\n }, MOUSEWHEEL_DELAY);\n }\n }\n }\n\n _startNavigation(e, coords, chartEvent) {\n const plotArea = this._model._plotArea;\n const pane = plotArea.findPointPane(coords);\n const axes = plotArea.axes.slice(0);\n\n if (!pane) {\n return;\n }\n\n const ranges = axisRanges(axes);\n\n const prevented = this.trigger(chartEvent, {\n axisRanges: ranges,\n originalEvent: e\n });\n\n if (prevented) {\n this._cancelDomEvents();\n } else {\n this._suppressHover = true;\n this._unsetActivePoint();\n this._clearFocusedElement();\n this._navState = {\n axisRanges: ranges,\n pane: pane,\n axes: axes\n };\n }\n }\n\n _endNavigation(e, chartEvent) {\n if (this._navState) {\n this.trigger(chartEvent, {\n axisRanges: this._navState.axisRanges,\n originalEvent: e\n });\n this._suppressHover = false;\n this._navState = null;\n }\n }\n\n _getChartElement(e, match) {\n const element = this.surface.eventTarget(e);\n if (element) {\n return this._drawingChartElement(element, e, match);\n }\n }\n\n _drawingChartElement(element, e, match) {\n let current = element;\n let chartElement;\n while (current && !chartElement) {\n chartElement = current.chartElement;\n current = current.parent;\n }\n\n if (chartElement) {\n if (chartElement.aliasFor) {\n chartElement = chartElement.aliasFor(e, this._eventCoordinates(e));\n }\n\n if (match) {\n chartElement = chartElement.closest(match);\n if (chartElement && chartElement.aliasFor) {\n chartElement = chartElement.aliasFor();\n }\n }\n\n return chartElement;\n }\n }\n\n _eventCoordinates(e) {\n const coordinates = eventCoordinates(e);\n return this._toModelCoordinates(coordinates.x, coordinates.y);\n }\n\n _elementPadding() {\n if (!this._padding) {\n const { paddingLeft, paddingTop } = elementStyles(this.element, [ \"paddingLeft\", \"paddingTop\" ]);\n this._padding = {\n top: paddingTop,\n left: paddingLeft\n };\n }\n\n return this._padding;\n }\n\n _toDocumentCoordinates(point) {\n const padding = this._elementPadding();\n const offset = elementOffset(this.element);\n\n return {\n left: round(point.x + padding.left + offset.left),\n top: round(point.y + padding.top + offset.top)\n };\n }\n\n // TODO: Breaking change due to peer version change\n // Reuse by exposing _surfacePoint on Surface\n _toModelCoordinates(clientX, clientY) {\n const element = this.element;\n const offset = elementOffset(element);\n const padding = this._elementPadding();\n const inverseTransform = elementScale(element).invert();\n const point = new geometry.Point(\n clientX - offset.left - padding.left,\n clientY - offset.top - padding.top\n ).transform(inverseTransform);\n\n return new Point(point.x, point.y);\n }\n\n _tap(e) {\n const drawingElement = this.surface.eventTarget(e);\n const element = this._drawingChartElement(drawingElement, e);\n const sharedTooltip = this._sharedTooltip();\n\n if (!this._startHover(drawingElement, e) && !sharedTooltip) {\n this._unsetActivePoint();\n }\n\n if (sharedTooltip) {\n this._trackSharedTooltip(this._eventCoordinates(e), e, true);\n }\n\n this._propagateClick(element, e);\n\n //part of fix for hover issue on windows touch\n this.handlingTap = true;\n setTimeout(() => {\n this.handlingTap = false;\n }, 0);\n }\n\n _click(e) {\n const element = this._getChartElement(e);\n this._propagateClick(element, e);\n }\n\n _propagateClick(element, e) {\n let current = element;\n while (current) {\n if (current.click) {\n current.click(this, e);\n }\n\n current = current.parent;\n }\n }\n\n _isLegendBeforeChart() {\n const { options: { legend: { position: legendPosition } }, _legend: legend } = this;\n\n return legend && legend.hasItems() && (legendPosition === TOP || legendPosition === LEFT);\n }\n\n _focus() {\n if (!this._preventInitialPointFocus) {\n if (this._isLegendBeforeChart()) {\n this._focusFirstLegendItem();\n } else {\n this._focusFirstPoint();\n }\n }\n\n this._preventInitialPointFocus = false;\n }\n\n _keydown(e) {\n const { _focusState: { legendInFocus, focusedElement }, _legend: legend } = this;\n\n if (e.key === TAB) {\n this._clearFocusedElement();\n const isLegendBeforeChart = this._isLegendBeforeChart();\n\n if (legendInFocus && isLegendBeforeChart !== e.shiftKey) {\n this._navigatePoints(e);\n } else if (!legendInFocus && isLegendBeforeChart === e.shiftKey && legend.hasItems()) {\n this._navigateLegend(e);\n }\n } else if (e.key === ESCAPE) {\n if (focusedElement) {\n e.stopPropagation();\n }\n\n if (this._tooltip && this._tooltip.visible) {\n this._hideTooltip();\n } else {\n this._blur();\n }\n } else if (e.key === ENTER) {\n if (focusedElement) {\n this._focusState.preserveHighlight = true;\n this._propagateClick(focusedElement, e);\n this._focusElement(focusedElement);\n }\n } else if (!legendInFocus) {\n this._navigatePoints(e);\n } else {\n this._navigateLegend(e);\n }\n }\n\n _navigatePoints(e) {\n const { _focusState: focusState, _plotArea: plotArea } = this;\n\n focusState.legendInFocus = false;\n\n if (!focusState.focusedElement) {\n this._focusFirstPoint();\n e.preventDefault();\n return;\n }\n\n const moveFocus = (point) => {\n focusState.focusedPoint = point;\n\n this._focusElement(focusState.focusedPoint);\n this._displayTooltip(point);\n e.preventDefault();\n };\n\n switch (e.key) {\n case ARROW_RIGHT:\n moveFocus(plotArea.getPointToTheRight(focusState.focusedPoint));\n break;\n case ARROW_LEFT:\n moveFocus(plotArea.getPointToTheLeft(focusState.focusedPoint));\n break;\n case ARROW_DOWN:\n moveFocus(plotArea.getPointBelow(focusState.focusedPoint));\n break;\n case ARROW_UP:\n moveFocus(plotArea.getPointAbove(focusState.focusedPoint));\n break;\n default:\n break;\n }\n }\n\n _navigateLegend(e) {\n const { _focusState: focusState, _legend: legend, chartService: { rtl: rtl } } = this;\n\n focusState.legendInFocus = true;\n\n if (!focusState.focusedElement) {\n this._focusFirstLegendItem();\n e.preventDefault();\n return;\n }\n\n const itemsLength = legend.getItems().length;\n const moveFocus = (cycleFunc) => {\n focusState.focusedLegendItemIndex = cycleFunc(\n focusState.focusedLegendItemIndex,\n itemsLength\n );\n this._focusElement(this._getFocusedLegendItem());\n e.preventDefault();\n };\n\n switch (e.key) {\n case ARROW_UP:\n case ARROW_LEFT:\n moveFocus(rtl ? cycleUp : cycleDown);\n break;\n case ARROW_DOWN:\n case ARROW_RIGHT:\n moveFocus(rtl ? cycleDown : cycleUp);\n break;\n default:\n break;\n }\n }\n\n _focusFirstPoint() {\n const point = this._focusState.focusedPoint = this._plotArea.getFirstPoint();\n\n if (point) {\n this._focusElement(point);\n this._displayTooltip(point);\n }\n }\n\n _hasFocus() {\n return this.element.ownerDocument.activeElement === this.element;\n }\n\n _mousedown() {\n if (!this._hasFocus()) {\n this._preventInitialPointFocus = true;\n }\n }\n\n _focusChart() {\n if (!this._hasFocus()) {\n this._preventInitialPointFocus = true;\n this.element.focus();\n }\n }\n\n _focusPoint(point) {\n this._focusState.focusedPoint = point;\n\n this._focusChart();\n\n this._focusElement(point, true);\n }\n\n _focusFirstLegendItem() {\n const { _focusState: focusState } = this;\n\n focusState.focusedLegendItemIndex = 0;\n this._focusElement(this._getFocusedLegendItem());\n focusState.legendInFocus = true;\n\n this._hideTooltip();\n }\n\n _focusLegendItem(args) {\n const { _focusState: focusState } = this;\n\n focusState.focusedLegendItemIndex = this._legend\n .getItems()\n .findIndex(x => x.options.series.index === args.seriesIndex\n && x.options.pointIndex === args.pointIndex);\n\n focusState.legendInFocus = true;\n\n this._focusChart();\n\n this._focusElement(this._getFocusedLegendItem(), true);\n }\n\n _getFocusedLegendItem() {\n const { _focusState: focusState, _legend: legend } = this;\n\n return legend.getItems()[focusState.focusedLegendItemIndex];\n }\n\n _focusElement(element, omitHighlight) {\n const { _focusState: focusState } = this;\n\n this._clearFocusedElement();\n\n if (!element) {\n return;\n }\n\n focusState.focusedElement = element;\n\n this._setElementActiveDescendant(element);\n\n if (!omitHighlight) {\n element.focusVisual();\n\n if (focusState.legendInFocus) {\n const options = element.options;\n\n this._showSeriesInactiveOpacity(options.series.index, options.pointIndex);\n } else {\n this._showInactiveOpacity(element);\n }\n }\n }\n\n _clearFocusedElement() {\n const { _focusState: focusState } = this;\n\n if (!focusState) {\n return;\n }\n\n if (focusState.focusedElement) {\n focusState.focusedElement.clearFocusFromVisual();\n this._clearElementActiveDescendant();\n }\n\n focusState.focusedElement = null;\n }\n\n _setElementActiveDescendant(element) {\n if (this.options.renderAs === \"canvas\") {\n this._pseudoFocusedElement = this._createPseudoFocusedElement(element);\n this.element.append(this._pseudoFocusedElement);\n }\n\n this.element.setAttribute(ARIA_ACTIVE_DESCENDANT, element._id);\n }\n\n _clearElementActiveDescendant() {\n if (this._pseudoFocusedElement) {\n this._pseudoFocusedElement.remove();\n this._pseudoFocusedElement = null;\n }\n\n this.element.removeAttribute(ARIA_ACTIVE_DESCENDANT);\n }\n\n _createPseudoFocusedElement(element) {\n const pseudoElement = document.createElement(\"div\");\n const accessibilityOptions = element.options.accessibility;\n\n pseudoElement.id = element._id;\n pseudoElement.setAttribute(\"aria-label\", element.getAriaLabelText());\n pseudoElement.setAttribute(\"role\", accessibilityOptions.role);\n pseudoElement.setAttribute(\"aria-roledescription\", accessibilityOptions.ariaRoleDescription);\n\n const checked = accessibilityOptions.ariaChecked;\n if (defined(checked)) {\n pseudoElement.setAttribute(\"aria-checked\", checked);\n }\n\n return pseudoElement;\n }\n\n _blur() {\n this._focusState.legendInFocus = false;\n this._clearFocusedElement();\n this._hideInactiveOpacity();\n }\n\n _startHover(element, e) {\n if (this._suppressHover) {\n return false;\n }\n\n let point = this._drawingChartElement(element, e, function(element) {\n return (element.hover || element.over) && !(element instanceof PlotAreaBase);\n });\n\n const activePoint = this._activePoint;\n\n this._updateHoveredPoint(point, e);\n\n if (point && activePoint !== point && point.hover) {\n this._activePoint = point;\n\n if (!this._sharedTooltip() && !point.hover(this, e)) {\n this._displayTooltip(point);\n\n this._showInactiveOpacity(point);\n }\n }\n\n return point;\n }\n\n _displayTooltip(point) {\n const tooltipOptions = deepExtend({}, this.options.tooltip, point.options.tooltip);\n if (tooltipOptions.visible) {\n this._tooltip.show(point);\n }\n }\n\n _hideTooltip() {\n if (this._tooltip) {\n this._tooltip.hide();\n }\n }\n\n _displayInactiveOpacity(activePoint, multipleSeries, highlightPoints) {\n const chartInstance = this._activeChartInstance = this._chartInstanceFromPoint(activePoint);\n if (!chartInstance) {\n return;\n }\n\n if (multipleSeries) {\n this._updateSeriesOpacity(activePoint);\n this._applySeriesOpacity(chartInstance.children, null, true);\n this._applySeriesOpacity(chartInstance.children, activePoint.series);\n this._highlight.show(highlightPoints || activePoint);\n } else {\n let inactivePoints;\n\n if (!chartInstance.supportsPointInactiveOpacity()) {\n this._highlight.show(activePoint);\n return;\n }\n\n inactivePoints = this._getInactivePoints(activePoint, chartInstance);\n\n if (inactivePoints && inactivePoints.length) {\n this._highlight.show(inactivePoints, 1 - this._getInactiveOpacityForSeries(activePoint.series));\n }\n }\n }\n\n _getInactivePoints(activePoint, chartInstance) {\n let allPoints = this._getAllPointsOfType(chartInstance, activePoint.constructor);\n\n return allPoints.filter(point => point !== activePoint);\n }\n\n _getAllPointsOfType(container, type) {\n let points = [];\n\n for (let i = 0; i < container.children.length; i++) {\n const element = container.children[i];\n\n if (element.constructor === type) {\n points.push(element);\n } else if (element.children && element.children.length) {\n points = points.concat(this._getAllPointsOfType(element, type));\n }\n }\n\n return points;\n }\n\n _updateHoveredPoint(point, e) {\n const hoveredPoint = this._hoveredPoint;\n\n if (hoveredPoint && hoveredPoint !== point) {\n hoveredPoint.out(this, e);\n this._hoveredPoint = null;\n }\n\n if (point && hoveredPoint !== point && point.over) {\n this._hoveredPoint = point;\n point.over(this, e);\n }\n }\n\n _updateDrilldownPoint(point) {\n if (!point || !point.series) {\n return;\n }\n\n const { fields } = SeriesBinder.current.bindPoint(point.series, null, point.dataItem);\n if (fields.drilldown) {\n this._drilldownState = { cursor: this.element.style.cursor };\n this.element.style.cursor = 'pointer';\n }\n }\n\n _resetDrilldownPoint() {\n if (this._drilldownState) {\n this.element.style.cursor = this._drilldownState.cursor;\n this._drilldownState = null;\n }\n }\n\n _startDrilldown(point) {\n if (!point || !point.series) {\n return;\n }\n\n const series = point.series;\n const { fields } = SeriesBinder.current.bindPoint(series, null, point.dataItem);\n const value = fields.drilldown;\n if (value) {\n const args = { series, point, value, sender: this };\n this.trigger(DRILLDOWN, args);\n }\n }\n\n _updateSeriesOpacity(point, resetOpacity) {\n const plotArea = this._plotArea;\n const length = plotArea.series.length;\n\n for (let i = 0; i < length; i++) {\n const currSeries = plotArea.series[i];\n const defaultOpacity = this._getDefaultOpacityForSeries(currSeries);\n const inactiveOpacity = this._getInactiveOpacityForSeries(currSeries);\n\n if (!resetOpacity && currSeries !== point.series) {\n currSeries.defaultOpacity = defaultOpacity;\n currSeries.opacity = inactiveOpacity;\n\n if (currSeries.line) {\n currSeries.line.opacity = inactiveOpacity;\n }\n } else {\n currSeries.opacity = defaultOpacity;\n\n if (currSeries.line) {\n currSeries.line.opacity = defaultOpacity;\n }\n }\n }\n }\n\n _applySeriesOpacity(elements, activeSeries, reset, series) {\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n const currSeries = element.series || series;\n const shouldHighlight = currSeries && (currSeries.highlight || {}).visible;\n\n if (shouldHighlight && element.visual) {\n const opacity = series ? series.opacity : element.series.opacity;\n if (currSeries !== activeSeries || reset) {\n element.visual.opacity(reset ? 1 : opacity);\n }\n }\n\n if (element.children && element.children.length) {\n this._applySeriesOpacity(element.children, activeSeries, reset, element.series);\n }\n }\n }\n\n _chartInstanceFromPoint(point) {\n let chartInstance = point.parent;\n\n while (chartInstance && !chartInstance.plotArea) {\n chartInstance = chartInstance.parent;\n }\n\n return chartInstance;\n }\n\n _showInactiveOpacity(point) {\n const multipleSeries = this._plotArea.series.length > 1;\n const hasInactiveOpacity = this._hasInactiveOpacity();\n\n if (hasInactiveOpacity) {\n this._displayInactiveOpacity(point, multipleSeries);\n } else {\n this._highlight.show(point);\n }\n }\n\n _hideInactiveOpacity(point) {\n const multipleSeries = this._plotArea.series.length > 1;\n const hasInactiveOpacity = this._hasInactiveOpacity();\n if (hasInactiveOpacity) {\n if (multipleSeries && this._activeChartInstance) {\n this._updateSeriesOpacity(point, true);\n this._applySeriesOpacity(this._activeChartInstance.children, null, true);\n this._activeChartInstance = null;\n }\n this._highlight && this._highlight.hide();\n this._activePoint = null;\n }\n }\n\n _hasInactiveOpacity() {\n let hasDefaultInactiveOpacity = this.options.seriesDefaults.highlight.inactiveOpacity !== undefined;\n let hasInactiveOpacity = this.options.series.filter(s => s.highlight.inactiveOpacity !== undefined ).length > 0;\n return hasDefaultInactiveOpacity || hasInactiveOpacity;\n }\n\n _getInactiveOpacityForSeries(series) {\n let defaultInactiveOpacity = this.options.seriesDefaults.highlight.inactiveOpacity;\n let seriesInactiveOpacity = series.highlight.inactiveOpacity;\n return seriesInactiveOpacity || defaultInactiveOpacity || series.opacity || DEFAULT_SERIES_OPACITY;\n }\n\n _getDefaultOpacityForSeries(series) {\n return series.defaultOpacity || series.opacity || DEFAULT_SERIES_OPACITY;\n }\n\n _mouseover(e) {\n const point = this._startHover(e.element, e.originalEvent);\n\n if (point && point.tooltipTracking && !this._mouseMoveTrackHandler && !this._sharedTooltip()) {\n this._mouseMoveTrackHandler = this._mouseMoveTracking.bind(this);\n bindEvents(document, {\n [ MOUSEMOVE ]: this._mouseMoveTrackHandler\n });\n }\n }\n\n _mouseMoveTracking(e) {\n const { options, _tooltip: tooltip, _highlight: highlight, _activePoint: point } = this;\n const coords = this._eventCoordinates(e);\n\n if (this._plotArea.box.containsPoint(coords)) {\n if (point && point.tooltipTracking && point.series && point.parent.getNearestPoint) {\n const seriesPoint = point.parent.getNearestPoint(coords.x, coords.y, point.seriesIx);\n if (seriesPoint && seriesPoint !== point) {\n this._activePoint = seriesPoint;\n\n if (!seriesPoint.hover(this, e)) {\n const tooltipOptions = deepExtend({}, options.tooltip, seriesPoint.options.tooltip);\n if (tooltipOptions.visible) {\n tooltip.show(seriesPoint);\n }\n\n highlight.show(seriesPoint);\n }\n }\n }\n } else {\n unbindEvents(document, {\n [ MOUSEMOVE ]: this._mouseMoveTrackHandler\n });\n this._unsetActivePoint();\n this._clearFocusedElement();\n this._mouseMoveTrackHandler = null;\n\n this._hideInactiveOpacity(point);\n }\n }\n\n _mousemove(e) {\n const coords = this._eventCoordinates(e);\n const plotArea = this._plotArea;\n\n this._trackCrosshairs(coords);\n\n if (plotArea.hover) {\n const overPlotArea = plotArea.backgroundContainsPoint(coords);\n if (overPlotArea) {\n this._plotAreaHovered = true;\n this._plotArea.hover(this, e);\n } else if (this._plotAreaHovered && !overPlotArea) {\n this._plotAreaHovered = false;\n this.trigger(PLOT_AREA_LEAVE);\n }\n }\n\n if (this._sharedTooltip()) {\n this._trackSharedTooltip(coords, e);\n }\n }\n\n _trackCrosshairs(coords) {\n const crosshairs = this._plotArea.crosshairs;\n\n for (let i = 0; i < crosshairs.length; i++) {\n const current = crosshairs[i];\n\n if (current.box.containsPoint(coords)) {\n current.showAt(coords);\n } else {\n current.hide();\n }\n }\n }\n\n _trackSharedTooltip(coords, e, toggle) {\n if (this._suppressHover) {\n return;\n }\n\n const { options: { tooltip: tooltipOptions }, _plotArea: plotArea, _plotArea: { categoryAxis }, _tooltip: tooltip, _highlight: highlight } = this;\n\n if (plotArea.backgroundContainsPoint(coords)) {\n const index = categoryAxis.pointCategoryIndex(coords);\n if (index !== this._tooltipCategoryIx || (!this._sharedHighlight && toggle)) {\n const points = plotArea.pointsByCategoryIndex(index);\n const pointArgs = points.map(function(point) {\n return point.eventArgs(e);\n });\n const hoverArgs = pointArgs[0] || {};\n hoverArgs.categoryPoints = pointArgs;\n\n if (points.length > 0 && !this.trigger(SERIES_HOVER, hoverArgs)) {\n if (tooltipOptions.visible) {\n tooltip.showAt(points, coords);\n }\n\n highlight.show(points);\n\n this._sharedHighlight = true;\n } else {\n tooltip.hide();\n }\n\n this._tooltipCategoryIx = index;\n } else if (toggle && this._sharedHighlight) {\n highlight.hide();\n tooltip.hide();\n this._sharedHighlight = false;\n }\n } else if (this._sharedHighlight) {\n highlight.hide();\n tooltip.hide();\n this._tooltipCategoryIx = null;\n this._sharedHighlight = false;\n }\n }\n\n hideElements(options) {\n const plotArea = this._plotArea;\n this._mousemove.cancel();\n\n plotArea.hideCrosshairs();\n\n this._unsetActivePoint(options);\n }\n\n _unsetActivePoint(options) {\n const { _highlight: highlight } = this;\n\n this._activePoint = null;\n this._hoveredPoint = null;\n\n if (!options || !options.keepTooltipOpen) {\n this._hideTooltip();\n }\n\n this._tooltipCategoryIx = null;\n this._sharedHighlight = false;\n\n if (highlight) {\n highlight.hide();\n }\n }\n\n _deferRedraw() {\n this._redraw();\n }\n\n _clearRedrawTimeout() {\n if (this._redrawTimeout) {\n clearInterval(this._redrawTimeout);\n this._redrawTimeout = null;\n }\n }\n\n bindCategories() {\n const options = this.options;\n const definitions = [].concat(options.categoryAxis);\n\n for (let axisIx = 0; axisIx < definitions.length; axisIx++) {\n const axis = definitions[axisIx];\n if (axis.autoBind !== false) {\n this.bindCategoryAxisFromSeries(axis, axisIx);\n }\n }\n }\n\n bindCategoryAxisFromSeries(axis, axisIx) {\n const uniqueCategories = new Set();\n const seriesOnAxis = this.options.series.filter(series => series.categoryAxis === axis.name || (!series.categoryAxis && axisIx === 0));\n const hasCategoryBinding = seriesOnAxis.some(series => Boolean(series.categoryField));\n const seriesWithData = seriesOnAxis.filter(series => series.data && series.data.length > 0);\n const categorySamples = seriesWithData.map(series => SeriesBinder.current.bindPoint(series, 0).fields.category);\n const dateAxis = categorySamples.reduce((result, firstCategory) => result || isDateAxis(axis, firstCategory), false);\n const seriesWithBinding = seriesWithData.filter((series, seriesIx) => series.categoryField || defined(categorySamples[seriesIx]));\n\n seriesWithBinding.forEach((series) => series.data.forEach((row, index) => {\n let category = SeriesBinder.current.bindPoint(series, index).fields.category;\n if (dateAxis) {\n const date = parseDateCategory(category, row, this.chartService.intl);\n category = date ? date.getTime() : undefined;\n }\n\n uniqueCategories.add(category);\n }));\n\n if (uniqueCategories.size > 0) {\n let categories = Array.from(uniqueCategories.values());\n if (dateAxis) {\n categories = categories.sort().map(time => time && new Date(time));\n }\n\n axis.categories = categories;\n } else if (hasCategoryBinding) {\n axis.categories = [];\n }\n }\n\n _isBindable(series) {\n const valueFields = SeriesBinder.current.valueFields(series);\n let result = true;\n\n for (let i = 0; i < valueFields.length; i++) {\n let field = valueFields[i];\n if (field === VALUE) {\n field = \"field\";\n } else {\n field = field + \"Field\";\n }\n\n if (!defined(series[field])) {\n result = false;\n break;\n }\n }\n\n return result;\n }\n\n _noTransitionsRedraw() {\n const options = this.options;\n let transitionsState;\n\n if (options.transitions !== false) {\n options.transitions = false;\n transitionsState = true;\n }\n\n this._redraw();\n\n if (transitionsState) {\n options.transitions = true;\n }\n }\n\n _legendItemHover(seriesIndex, pointIndex) {\n this._showSeriesInactiveOpacity(seriesIndex, pointIndex);\n }\n\n _showSeriesInactiveOpacity(seriesIndex, pointIndex) {\n const { _plotArea: plotArea, _highlight: highlight } = this;\n const currentSeries = (plotArea.srcSeries || plotArea.series)[seriesIndex];\n let items;\n\n if (inArray(currentSeries.type, [ PIE, DONUT, FUNNEL, PYRAMID ])) {\n items = plotArea.findPoint(function(point) {\n return point.series.index === seriesIndex && point.index === pointIndex;\n });\n } else {\n items = plotArea.pointsBySeriesIndex(seriesIndex);\n }\n\n if (this._hasInactiveOpacity() && currentSeries.visible && items) {\n const multipleSeries = plotArea.series.length > 1;\n const point = items.length ? items[0] : items;\n\n this._displayInactiveOpacity(point, multipleSeries, items);\n } else {\n highlight.show(items);\n }\n }\n\n _shouldAttachMouseMove() {\n return this._plotArea.crosshairs.length || (this._tooltip && this._sharedTooltip()) || this.requiresHandlers([ PLOT_AREA_HOVER, PLOT_AREA_LEAVE ]);\n }\n\n updateMouseMoveHandler() {\n unbindEvents(this.element, {\n [ MOUSEMOVE ]: this._mousemove\n });\n\n if (this._shouldAttachMouseMove()) {\n bindEvents(this.element, {\n [ MOUSEMOVE ]: this._mousemove\n });\n }\n }\n\n applyOptions(options, theme) {\n clearMissingValues(this._originalOptions, options);\n this._originalOptions = deepExtend(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions);\n\n if (theme) {\n this._theme = theme;\n this.chartService.theme = theme;\n }\n this._initTheme(this.options, this._theme);\n\n this._toggleDragZoomEvents();\n }\n\n setOptions(options, theme) {\n this.applyOptions(options, theme);\n this.bindCategories();\n this.redraw();\n this.updateMouseMoveHandler();\n }\n\n setDirection(rtl) {\n this.chartService.rtl = Boolean(rtl);\n if (this.surface && this.surface.type === 'svg') {\n this._destroySurface();\n }\n }\n\n setIntlService(intl) {\n this.chartService.intl = intl;\n }\n\n noTransitionsRedraw() {\n this._noTransitionsRedraw();\n }\n\n destroy() {\n this._destroyed = true;\n\n unbindEvents(this.element, {\n [ CONTEXTMENU ]: this._clickHandler,\n [ MOUSEWHEEL ]: this._mousewheelHandler,\n [ MOUSEMOVE ]: this._mousemove,\n [ MOUSELEAVE ]: this._mouseleaveHandler,\n [ KEYDOWN ]: this._keydownHandler,\n [ FOCUS ]: this._focusHandler,\n [ BLUR]: this._blurHandler\n });\n\n if (this.domEvents) {\n this.domEvents.destroy();\n delete this.domEvents;\n }\n\n if (this._mouseMoveTrackHandler) {\n unbindEvents(document, {\n [ MOUSEMOVE ]: this._mouseMoveTrackHandler\n });\n }\n\n this._focusState = null;\n\n this._destroyView();\n\n this._destroySurface();\n\n this._clearRedrawTimeout();\n }\n\n _destroySurface() {\n const surface = this.surface;\n if (surface) {\n surface.unbind(\"mouseenter\", this._surfaceMouseenterHandler);\n surface.unbind(\"mouseleave\", this._surfaceMouseleaveHandler);\n surface.destroy();\n\n this.surface = null;\n }\n }\n\n _destroySelections() {\n const selections = this._selections;\n\n if (selections) {\n while (selections.length > 0) {\n selections.shift().destroy();\n }\n }\n }\n\n _destroyView() {\n const model = this._model;\n\n if (model) {\n model.destroy();\n this._model = null;\n }\n\n this._unsetActivePoint();\n this._clearFocusedElement();\n this._resetDrilldownPoint();\n this._destroySelections();\n\n if (this._tooltip) {\n this._tooltip.destroy();\n }\n\n if (this._highlight) {\n this._highlight.destroy();\n }\n\n if (this._zoomSelection) {\n this._zoomSelection.destroy();\n delete this._zoomSelection;\n }\n\n if (this._pannable) {\n this._pannable.destroy();\n delete this._pannable;\n }\n\n if (this._mousewheelZoom) {\n this._mousewheelZoom.destroy();\n delete this._mousewheelZoom;\n }\n }\n}\n\nfunction resolveAxisAliases(options) {\n const aliases = AXIS_NAMES;\n\n for (let idx = 0; idx < aliases.length; idx++) {\n const alias = aliases[idx] + \"Axes\";\n if (options[alias]) {\n options[aliases[idx] + \"Axis\"] = options[alias];\n delete options[alias];\n }\n }\n}\n\nfunction pointByCategoryName(points, name) {\n if (points) {\n for (let idx = 0; idx < points.length; idx++) {\n if (points[idx].category === name) {\n return [ points[idx] ];\n }\n }\n }\n}\n\nfunction applyAxisDefaults(options, themeOptions) {\n const themeAxisDefaults = ((themeOptions || {}).axisDefaults) || {};\n let axisName, axisDefaults, axes;\n\n function mapAxisOptions(axisOptions) {\n const axisColor = (axisOptions || {}).color || axisDefaults.color;\n const result = deepExtend({},\n themeAxisDefaults,\n themeAxisDefaults[axisName],\n axisDefaults,\n axisDefaults[axisName], {\n line: { color: axisColor },\n labels: { color: axisColor },\n title: { color: axisColor }\n },\n axisOptions\n );\n\n delete result[axisName];\n\n return result;\n }\n\n for (let idx = 0; idx < AXIS_NAMES.length; idx++) {\n axisName = AXIS_NAMES[idx] + \"Axis\";\n axisDefaults = options.axisDefaults || {};\n axes = [].concat(options[axisName]);\n\n axes = axes.map(mapAxisOptions);\n\n options[axisName] = axes.length > 1 ? axes : axes[0];\n }\n}\n\nfunction applySeriesDefaults(options, themeOptions) {\n const series = options.series;\n const seriesLength = series.length;\n const seriesDefaults = options.seriesDefaults;\n const commonDefaults = deepExtend({}, options.seriesDefaults);\n const themeSeriesDefaults = themeOptions ? deepExtend({}, themeOptions.seriesDefaults) : {};\n const commonThemeDefaults = deepExtend({}, themeSeriesDefaults);\n\n cleanupNestedSeriesDefaults(commonDefaults);\n cleanupNestedSeriesDefaults(commonThemeDefaults);\n\n for (let i = 0; i < seriesLength; i++) {\n const seriesType = series[i].type || options.seriesDefaults.type;\n\n const baseOptions = deepExtend(\n { data: [] },\n commonThemeDefaults,\n themeSeriesDefaults[seriesType],\n { tooltip: options.tooltip },\n commonDefaults,\n seriesDefaults[seriesType]\n );\n\n series[i]._defaults = baseOptions;\n series[i] = deepExtend({}, baseOptions, series[i]);\n series[i].data = series[i].data || [];\n }\n}\n\nfunction cleanupNestedSeriesDefaults(seriesDefaults) {\n delete seriesDefaults.bar;\n delete seriesDefaults.column;\n delete seriesDefaults.rangeColumn;\n delete seriesDefaults.line;\n delete seriesDefaults.verticalLine;\n delete seriesDefaults.pie;\n delete seriesDefaults.donut;\n delete seriesDefaults.area;\n delete seriesDefaults.verticalArea;\n delete seriesDefaults.scatter;\n delete seriesDefaults.scatterLine;\n delete seriesDefaults.bubble;\n delete seriesDefaults.candlestick;\n delete seriesDefaults.ohlc;\n delete seriesDefaults.boxPlot;\n delete seriesDefaults.bullet;\n delete seriesDefaults.verticalBullet;\n delete seriesDefaults.polarArea;\n delete seriesDefaults.polarLine;\n delete seriesDefaults.radarArea;\n delete seriesDefaults.radarLine;\n delete seriesDefaults.waterfall;\n}\n\n\nfunction axisRanges(axes) {\n const ranges = {};\n\n for (let i = 0; i < axes.length; i++) {\n const axis = axes[i];\n const axisName = axis.options.name;\n if (axisName) {\n ranges[axisName] = axis.range();\n }\n }\n\n return ranges;\n}\n\nconst DATA_FIELDS = [ 'data', 'categories' ];\n\nfunction clearMissingValues(originalOptions, options) {\n for (let field in options) {\n if (!inArray(field, DATA_FIELDS) && hasOwnProperty(options, field)) {\n const fieldValue = options[field];\n const originalValue = originalOptions[field];\n if (defined(originalValue)) {\n const nullValue = fieldValue === null;\n if ((nullValue || !defined(fieldValue))) {\n delete originalOptions[field];\n if (nullValue) {\n delete options[field];\n }\n } else if (originalValue && isObject(fieldValue)) {\n if (isObject(originalValue)) {\n clearMissingValues(originalValue, fieldValue);\n }\n }\n }\n }\n }\n}\n\nfunction triggerPaneRender(panes) {\n for (let idx = 0; idx < panes.length; idx++) {\n panes[idx].notifyRender();\n }\n}\n\nsetDefaultOptions(Chart, {\n renderAs: \"\",\n chartArea: {},\n legend: {\n visible: true,\n labels: {},\n accessibility: {\n highlight: {\n border: {\n opacity: 1,\n color: BLACK,\n width: 2\n }\n }\n }\n },\n categoryAxis: {},\n seriesDefaults: {\n type: COLUMN,\n data: [],\n highlight: {\n visible: true\n },\n labels: {},\n negativeValues: {\n visible: false\n },\n accessibility: {\n highlight: {\n border: {\n opacity: 1,\n width: 2\n },\n zIndex: 200\n }\n }\n },\n series: [],\n seriesColors: null,\n tooltip: {\n visible: false\n },\n transitions: true,\n valueAxis: {},\n plotArea: {},\n title: {},\n xAxis: {},\n yAxis: {},\n panes: [ {} ],\n pannable: false,\n zoomable: false\n});\n\nexport default Chart;\n","import { SharedTooltip as ChartSharedTooltip } from '../chart';\nimport { Point } from '../core';\nconst TOP_OFFSET = -2;\n\nclass SharedTooltip extends ChartSharedTooltip {\n _slotAnchor(coords, slot) {\n const axis = this.plotArea.categoryAxis;\n const vertical = axis.options.vertical;\n const align = vertical ? {\n horizontal: \"left\",\n vertical: \"center\"\n } : {\n horizontal: \"center\",\n vertical: \"bottom\"\n };\n\n let point;\n\n if (vertical) {\n point = new Point(this.plotArea.box.x2, slot.center().y);\n } else {\n point = new Point(slot.center().x, TOP_OFFSET);\n }\n\n return {\n point: point,\n align: align\n };\n }\n\n _defaultAnchor(point, slot) {\n return this._slotAnchor({}, slot);\n }\n}\n\nexport default SharedTooltip;","import { Chart } from '../chart';\nimport { BAR, BULLET, PIE, COLUMN, VERTICAL_BULLET } from '../chart/constants';\nimport { addClass, deepExtend, elementSize, getSpacing, inArray, isArray, isNumber, setDefaultOptions } from '../common';\nimport SharedTooltip from './shared-tooltip';\n\nconst DEAULT_BAR_WIDTH = 150;\nconst DEAULT_BULLET_WIDTH = 150;\nconst NO_CROSSHAIR = [ BAR, BULLET ];\n\nfunction hide(children) {\n const state = [];\n for (let idx = 0; idx < children.length; idx++) {\n const child = children[idx];\n state[idx] = child.style.display;\n child.style.display = \"none\";\n }\n\n return state;\n}\n\nfunction show(children, state) {\n for (let idx = 0; idx < children.length; idx++) {\n children[idx].style.display = state[idx];\n }\n}\n\nfunction wrapNumber(value) {\n return isNumber(value) ? [ value ] : value;\n}\n\nclass Sparkline extends Chart {\n _setElementClass(element) {\n addClass(element, 'k-sparkline');\n }\n\n _initElement(element) {\n super._initElement(element);\n\n this._initialWidth = Math.floor(elementSize(element).width);\n }\n\n _resize() {\n const element = this.element;\n const state = hide(element.childNodes);\n\n this._initialWidth = Math.floor(elementSize(element).width);\n\n show(element.childNodes, state);\n\n super._resize();\n }\n\n _modelOptions() {\n const chartOptions = this.options;\n const stage = this._surfaceWrap();\n const displayState = hide(stage.childNodes);\n\n const space = document.createElement('span');\n space.innerHTML = ' ';\n\n stage.appendChild(space);\n\n const options = deepExtend({\n width: this._autoWidth,\n height: elementSize(stage).height,\n transitions: chartOptions.transitions\n }, chartOptions.chartArea, {\n inline: true,\n align: false\n });\n\n elementSize(stage, {\n width: options.width,\n height: options.height\n });\n\n stage.removeChild(space);\n\n show(stage.childNodes, displayState);\n\n if (this.surface) {\n this.surface.resize();\n }\n\n return options;\n }\n\n _surfaceWrap() {\n if (!this.stage) {\n const stage = this.stage = document.createElement('span');\n this.element.appendChild(stage);\n }\n return this.stage;\n }\n\n _createPlotArea(skipSeries) {\n const plotArea = super._createPlotArea(skipSeries);\n this._autoWidth = this._initialWidth || this._calculateWidth(plotArea);\n\n return plotArea;\n }\n\n _calculateWidth(plotArea) {\n const options = this.options;\n const margin = getSpacing(options.chartArea.margin);\n const charts = plotArea.charts;\n const stage = this._surfaceWrap();\n let total = 0;\n\n\n for (let i = 0; i < charts.length; i++) {\n const currentChart = charts[i];\n const firstSeries = (currentChart.options.series || [])[0];\n if (!firstSeries) {\n continue;\n }\n\n if (firstSeries.type === BAR) {\n return DEAULT_BAR_WIDTH;\n }\n\n if (firstSeries.type === BULLET) {\n return DEAULT_BULLET_WIDTH;\n }\n\n if (firstSeries.type === PIE) {\n return elementSize(stage).height;\n }\n\n const categoryAxis = currentChart.categoryAxis;\n if (categoryAxis) {\n const pointsCount = categoryAxis.categoriesCount() *\n (!currentChart.options.isStacked && inArray(firstSeries.type, [ COLUMN, VERTICAL_BULLET ]) ? currentChart.seriesOptions.length : 1);\n\n total = Math.max(total, pointsCount);\n }\n }\n\n let size = total * options.pointWidth;\n if (size > 0) {\n size += margin.left + margin.right;\n }\n\n return size;\n }\n\n _createSharedTooltip(options) {\n return new SharedTooltip(this._plotArea, options);\n }\n\n static normalizeOptions(userOptions) {\n let options = wrapNumber(userOptions);\n\n if (isArray(options)) {\n options = { seriesDefaults: { data: options } };\n } else {\n options = deepExtend({}, options);\n }\n\n if (!options.series) {\n options.series = [ { data: wrapNumber(options.data) } ];\n }\n\n deepExtend(options, {\n seriesDefaults: {\n type: options.type\n }\n });\n\n if (inArray(options.series[0].type, NO_CROSSHAIR) ||\n inArray(options.seriesDefaults.type, NO_CROSSHAIR)) {\n options = deepExtend({}, {\n categoryAxis: {\n crosshair: {\n visible: false\n }\n }\n }, options);\n }\n\n return options;\n }\n}\n\nsetDefaultOptions(Sparkline, {\n chartArea: {\n margin: 2\n },\n axisDefaults: {\n visible: false,\n majorGridLines: {\n visible: false\n },\n valueAxis: {\n narrowRange: true\n }\n },\n seriesDefaults: {\n type: \"line\",\n area: {\n line: {\n width: 0.5\n }\n },\n bar: {\n stack: true\n },\n padding: 2,\n width: 0.5,\n overlay: {\n gradient: null\n },\n highlight: {\n visible: false\n },\n border: {\n width: 0\n },\n markers: {\n size: 2,\n visible: false\n }\n },\n tooltip: {\n visible: true,\n shared: true\n },\n categoryAxis: {\n crosshair: {\n visible: true,\n tooltip: {\n visible: false\n }\n }\n },\n legend: {\n visible: false\n },\n transitions: false,\n\n pointWidth: 5,\n\n panes: [ { clip: false } ]\n});\n\nexport default Sparkline;","import { drawing as draw } from '@progress/kendo-drawing';\n\nimport { interpolateValue, elementStyles } from '../common';\n\nclass FadeOutAnimation extends draw.Animation {\n\n setup() {\n this._initialOpacity = parseFloat(elementStyles(this.element, 'opacity').opacity);\n }\n\n step(pos) {\n elementStyles(this.element, {\n opacity: String(interpolateValue(this._initialOpacity, 0, pos))\n });\n }\n\n abort() {\n super.abort();\n elementStyles(this.element, {\n display: 'none',\n opacity: String(this._initialOpacity)\n });\n }\n\n cancel() {\n super.abort();\n elementStyles(this.element, {\n opacity: String(this._initialOpacity)\n });\n }\n}\n\nexport default FadeOutAnimation;","import { Class, deepExtend, elementStyles, getTemplate, setDefaultOptions } from '../common';\nimport { toDate, toTime } from '../date-utils';\nimport FadeOutAnimation from './fade-out-animation';\n\nfunction createDiv(className, style) {\n const div = document.createElement(\"div\");\n div.className = className;\n if (style) {\n div.style.cssText = style;\n }\n\n return div;\n}\n\nclass NavigatorHint extends Class {\n constructor(container, chartService, options) {\n super();\n\n this.options = deepExtend({}, this.options, options);\n this.container = container;\n this.chartService = chartService;\n\n const padding = elementStyles(container, [ \"paddingLeft\", \"paddingTop\" ]);\n this.chartPadding = {\n top: padding.paddingTop,\n left: padding.paddingLeft\n };\n\n this.createElements();\n container.appendChild(this.element);\n }\n\n createElements() {\n const element = this.element = createDiv('k-navigator-hint', 'display: none; position: absolute; top: 1px; left: 1px;');\n const tooltip = this.tooltip = createDiv('k-tooltip k-chart-tooltip');\n const scroll = this.scroll = createDiv('k-scroll');\n\n tooltip.innerHTML = ' ';\n\n element.appendChild(tooltip);\n element.appendChild(scroll);\n }\n\n show(from, to, bbox) {\n const { element, options, scroll, tooltip } = this;\n const middle = toDate(toTime(from) + toTime(to - from) / 2);\n const scrollWidth = bbox.width() * 0.4;\n const minPos = bbox.center().x - scrollWidth;\n const maxPos = bbox.center().x;\n const posRange = maxPos - minPos;\n const range = options.max - options.min;\n const scale = posRange / range;\n const offset = middle - options.min;\n let text = this.chartService.intl.format(options.format, from, to);\n const template = getTemplate(options);\n\n this.clearHideTimeout();\n\n if (!this._visible) {\n elementStyles(element, {\n visibility: 'hidden',\n display: 'block'\n });\n this._visible = true;\n }\n\n if (template) {\n text = template({\n from: from,\n to: to\n });\n }\n\n tooltip.innerHTML = text;\n elementStyles(tooltip, {\n left: bbox.center().x - tooltip.offsetWidth / 2,\n top: bbox.y1\n });\n\n const tooltipStyle = elementStyles(tooltip, [ 'marginTop', 'borderTopWidth', 'height' ]);\n\n elementStyles(scroll, {\n width: scrollWidth,\n left: minPos + offset * scale,\n top: bbox.y1 + tooltipStyle.marginTop + tooltipStyle.borderTopWidth + tooltipStyle.height / 2\n });\n\n elementStyles(element, {\n visibility: 'visible'\n });\n }\n\n clearHideTimeout() {\n if (this._hideTimeout) {\n clearTimeout(this._hideTimeout);\n }\n\n if (this._hideAnimation) {\n this._hideAnimation.cancel();\n }\n }\n\n hide() {\n this.clearHideTimeout();\n\n this._hideTimeout = setTimeout(() => {\n this._visible = false;\n this._hideAnimation = new FadeOutAnimation(this.element);\n this._hideAnimation.setup();\n this._hideAnimation.play();\n }, this.options.hideDelay);\n }\n\n destroy() {\n this.clearHideTimeout();\n if (this.container) {\n this.container.removeChild(this.element);\n }\n delete this.container;\n delete this.chartService;\n delete this.element;\n delete this.tooltip;\n delete this.scroll;\n }\n}\n\nsetDefaultOptions(NavigatorHint, {\n format: \"{0:d} - {1:d}\",\n hideDelay: 500\n});\n\nexport default NavigatorHint;","const NAVIGATOR_PANE = \"_navigator\";\nconst NAVIGATOR_AXIS = NAVIGATOR_PANE;\nconst DEFAULT_PANE = \"_default\";\n\nexport { NAVIGATOR_AXIS, NAVIGATOR_PANE, DEFAULT_PANE };\n","import NavigatorHint from './navigator-hint';\nimport { Selection, filterSeriesByType } from '../chart';\nimport { DRAG, DRAG_END, EQUALLY_SPACED_SERIES, ZOOM, ZOOM_END } from '../chart/constants';\nimport { DateCategoryAxis } from '../core';\nimport { addDuration, parseDate, toDate, toTime } from '../date-utils';\nimport { Class, deepExtend, defined, getTemplate, InstanceObserver, last, limitValue, valueOrDefault } from '../common';\nimport { NAVIGATOR_AXIS, NAVIGATOR_PANE, DEFAULT_PANE } from './constants';\n\nconst ZOOM_ACCELERATION = 3;\n\nclass Navigator extends Class {\n constructor(chart) {\n super();\n\n this.chart = chart;\n const options = this.options = deepExtend({}, this.options, chart.options.navigator);\n const select = options.select;\n if (select) {\n select.from = this.parseDate(select.from);\n select.to = this.parseDate(select.to);\n }\n\n if (!defined(options.hint.visible)) {\n options.hint.visible = options.visible;\n }\n\n this.chartObserver = new InstanceObserver(this, {\n [DRAG]: '_drag',\n [DRAG_END]: '_dragEnd',\n [ZOOM]: '_zoom',\n [ZOOM_END]: '_zoomEnd'\n });\n chart.addObserver(this.chartObserver);\n }\n\n parseDate(value) {\n return parseDate(this.chart.chartService.intl, value);\n }\n\n clean() {\n if (this.selection) {\n this.selection.destroy();\n this.selection = null;\n }\n\n if (this.hint) {\n this.hint.destroy();\n this.hint = null;\n }\n }\n\n destroy() {\n if (this.chart) {\n this.chart.removeObserver(this.chartObserver);\n delete this.chart;\n }\n\n this.clean();\n }\n\n redraw() {\n this._redrawSelf();\n this.initSelection();\n }\n\n initSelection() {\n const { chart, options } = this;\n const axis = this.mainAxis();\n const { min, max } = axis.roundedRange();\n const { from, to, mousewheel } = options.select;\n const axisClone = clone(axis);\n\n if (axis.categoriesCount() === 0) {\n return;\n }\n\n this.clean();\n\n // \"Freeze\" the selection axis position until the next redraw\n axisClone.box = axis.box;\n\n this.selection = new Selection(chart, axisClone, {\n min: min,\n max: max,\n from: from || min,\n to: to || max,\n mousewheel: valueOrDefault(mousewheel, { zoom: \"left\" }),\n visible: options.visible\n }, new InstanceObserver(this, {\n selectStart: '_selectStart',\n select: '_select',\n selectEnd: '_selectEnd'\n }));\n\n if (options.hint.visible) {\n this.hint = new NavigatorHint(chart.element, chart.chartService, {\n min: min,\n max: max,\n template: getTemplate(options.hint),\n format: options.hint.format\n });\n }\n }\n\n setRange() {\n const plotArea = this.chart._createPlotArea(true);\n const axis = plotArea.namedCategoryAxes[NAVIGATOR_AXIS];\n\n const { min, max } = axis.roundedRange();\n\n const select = this.options.select || {};\n let from = select.from || min;\n if (from < min) {\n from = min;\n }\n\n let to = select.to || max;\n if (to > max) {\n to = max;\n }\n\n this.options.select = deepExtend({}, select, {\n from: from,\n to: to\n });\n\n this.filterAxes();\n }\n\n _redrawSelf(silent) {\n const plotArea = this.chart._plotArea;\n\n if (plotArea) {\n plotArea.redraw(last(plotArea.panes), silent);\n }\n }\n\n redrawSlaves() {\n const chart = this.chart;\n const plotArea = chart._plotArea;\n const slavePanes = plotArea.panes.filter(pane => pane.options.name !== NAVIGATOR_PANE);\n\n // Update the original series and categoryAxis before partial refresh.\n plotArea.srcSeries = chart.options.series;\n plotArea.options.categoryAxis = chart.options.categoryAxis;\n plotArea.clearSeriesPointsCache();\n\n plotArea.redraw(slavePanes);\n }\n\n _drag(e) {\n const { chart, selection } = this;\n const coords = chart._eventCoordinates(e.originalEvent);\n const navigatorAxis = this.mainAxis();\n const naviRange = navigatorAxis.roundedRange();\n const inNavigator = navigatorAxis.pane.box.containsPoint(coords);\n const axis = chart._plotArea.categoryAxis;\n const range = e.axisRanges[axis.options.name];\n const select = this.options.select;\n let duration;\n\n if (!range || inNavigator || !selection) {\n return;\n }\n\n if (select.from && select.to) {\n duration = toTime(select.to) - toTime(select.from);\n } else {\n duration = toTime(selection.options.to) - toTime(selection.options.from);\n }\n\n const from = toDate(limitValue(\n toTime(range.min),\n naviRange.min, toTime(naviRange.max) - duration\n ));\n\n const to = toDate(limitValue(\n toTime(from) + duration,\n toTime(naviRange.min) + duration, naviRange.max\n ));\n\n this.options.select = { from: from, to: to };\n\n if (this.options.liveDrag) {\n this.filterAxes();\n this.redrawSlaves();\n }\n\n selection.set(from, to);\n\n this.showHint(from, to);\n }\n\n _dragEnd() {\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n\n if (this.hint) {\n this.hint.hide();\n }\n }\n\n readSelection() {\n const { selection: { options: { from, to } }, options: { select } } = this;\n\n select.from = from;\n select.to = to;\n }\n\n filterAxes() {\n const { options: { select = { } }, chart } = this;\n const allAxes = chart.options.categoryAxis;\n const { from, to } = select;\n\n for (let idx = 0; idx < allAxes.length; idx++) {\n const axis = allAxes[idx];\n if (axis.pane !== NAVIGATOR_PANE) {\n axis.min = from;\n axis.max = to;\n }\n }\n }\n\n filter() {\n const { chart, options: { select } } = this;\n\n if (!chart.requiresHandlers([ \"navigatorFilter\" ])) {\n return;\n }\n\n const mainAxis = this.mainAxis();\n const args = {\n from: select.from,\n to: select.to\n };\n\n if (mainAxis.options.type !== 'category') {\n const axisOptions = new DateCategoryAxis(deepExtend({\n baseUnit: \"fit\"\n }, chart.options.categoryAxis[0], {\n categories: [ select.from, select.to ]\n }), chart.chartService).options;\n\n args.from = addDuration(axisOptions.min, -axisOptions.baseUnitStep, axisOptions.baseUnit);\n args.to = addDuration(axisOptions.max, axisOptions.baseUnitStep, axisOptions.baseUnit);\n }\n\n this.chart.trigger(\"navigatorFilter\", args);\n }\n\n _zoom(e) {\n const { chart: { _plotArea: { categoryAxis: axis } }, selection, options: { select, liveDrag } } = this;\n const mainAxis = this.mainAxis();\n let delta = e.delta;\n\n if (!selection) {\n return;\n }\n\n const fromIx = mainAxis.categoryIndex(selection.options.from);\n const toIx = mainAxis.categoryIndex(selection.options.to);\n const coords = this.chart._eventCoordinates(e.originalEvent);\n\n e.originalEvent.preventDefault();\n\n if (Math.abs(delta) > 1) {\n delta *= ZOOM_ACCELERATION;\n }\n\n if (toIx - fromIx > 1) {\n selection.zoom(delta, coords);\n this.readSelection();\n } else {\n axis.options.min = select.from;\n select.from = axis.scaleRange(-e.delta * this.chart._mousewheelZoomRate(), coords).min;\n }\n\n if (liveDrag) {\n this.filterAxes();\n this.redrawSlaves();\n }\n\n selection.set(select.from, select.to);\n\n this.showHint(this.options.select.from, this.options.select.to);\n }\n\n _zoomEnd(e) {\n this._dragEnd(e);\n }\n\n showHint(from, to) {\n const plotArea = this.chart._plotArea;\n\n if (this.hint) {\n this.hint.show(from, to, plotArea.backgroundBox());\n }\n }\n\n _selectStart(e) {\n return this.chart._selectStart(e);\n }\n\n _select(e) {\n this.showHint(e.from, e.to);\n\n return this.chart._select(e);\n }\n\n _selectEnd(e) {\n if (this.hint) {\n this.hint.hide();\n }\n\n this.readSelection();\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n\n return this.chart._selectEnd(e);\n }\n\n mainAxis() {\n const plotArea = this.chart._plotArea;\n\n if (plotArea) {\n return plotArea.namedCategoryAxes[NAVIGATOR_AXIS];\n }\n }\n\n select(from, to) {\n const select = this.options.select;\n\n if (from && to) {\n select.from = this.parseDate(from);\n select.to = this.parseDate(to);\n\n this.filterAxes();\n this.filter();\n this.redrawSlaves();\n\n this.selection.set(from, to);\n }\n\n return {\n from: select.from,\n to: select.to\n };\n }\n\n static setup(options = {}, themeOptions = {}) {\n if (options.__navi) {\n return;\n }\n options.__navi = true;\n\n const naviOptions = deepExtend({}, themeOptions.navigator, options.navigator);\n const panes = options.panes = [].concat(options.panes);\n const paneOptions = deepExtend({}, naviOptions.pane, { name: NAVIGATOR_PANE });\n\n if (!naviOptions.visible) {\n paneOptions.visible = false;\n paneOptions.height = 0.1;\n }\n\n if (options.navigator.position !== 'top') {\n panes.push(paneOptions);\n } else {\n panes.unshift(paneOptions);\n }\n\n panes.forEach(pane => {\n pane.name = pane.name || DEFAULT_PANE;\n });\n\n Navigator.attachAxes(options, naviOptions);\n Navigator.attachSeries(options, naviOptions, themeOptions);\n }\n\n static attachAxes(options, naviOptions) {\n const series = naviOptions.series || [];\n const categoryAxes = options.categoryAxis = [].concat(options.categoryAxis);\n const valueAxes = options.valueAxis = [].concat(options.valueAxis);\n const allAxes = categoryAxes.concat(valueAxes);\n allAxes.forEach(axis => {\n axis.pane = axis.pane || DEFAULT_PANE;\n });\n\n const equallySpacedSeries = filterSeriesByType(series, EQUALLY_SPACED_SERIES);\n const justifyAxis = equallySpacedSeries.length === 0;\n\n const base = deepExtend({\n type: \"date\",\n pane: NAVIGATOR_PANE,\n roundToBaseUnit: !justifyAxis,\n justified: justifyAxis,\n _collapse: false,\n majorTicks: { visible: true },\n tooltip: { visible: false },\n labels: { step: 1 },\n autoBind: naviOptions.autoBindElements,\n autoBaseUnitSteps: {\n minutes: [ 1 ],\n hours: [ 1, 2 ],\n days: [ 1, 2 ],\n weeks: [],\n months: [ 1 ],\n years: [ 1 ]\n }\n });\n const user = naviOptions.categoryAxis;\n\n categoryAxes.push(\n deepExtend({}, base, {\n maxDateGroups: 200\n }, user, {\n name: NAVIGATOR_AXIS,\n title: null,\n baseUnit: \"fit\",\n baseUnitStep: \"auto\",\n labels: { visible: false },\n majorTicks: { visible: false }\n }), deepExtend({}, base, user, {\n name: NAVIGATOR_AXIS + \"_labels\",\n maxDateGroups: 20,\n baseUnitStep: \"auto\",\n labels: { position: \"\" },\n plotBands: [],\n autoBaseUnitSteps: {\n minutes: []\n },\n _overlap: true\n }), deepExtend({}, base, user, {\n name: NAVIGATOR_AXIS + \"_ticks\",\n maxDateGroups: 200,\n majorTicks: {\n width: 0.5\n },\n plotBands: [],\n title: null,\n labels: { visible: false, mirror: true },\n _overlap: true\n })\n );\n\n valueAxes.push(deepExtend({\n name: NAVIGATOR_AXIS,\n pane: NAVIGATOR_PANE,\n majorGridLines: {\n visible: false\n },\n visible: false\n }, naviOptions.valueAxis));\n }\n\n static attachSeries(options, naviOptions, themeOptions) {\n const series = options.series = options.series || [];\n const navigatorSeries = [].concat(naviOptions.series || []);\n const seriesColors = themeOptions.seriesColors;\n const defaults = naviOptions.seriesDefaults;\n\n for (let idx = 0; idx < navigatorSeries.length; idx++) {\n series.push(\n deepExtend({\n color: seriesColors[idx % seriesColors.length],\n categoryField: naviOptions.dateField,\n visibleInLegend: false,\n tooltip: {\n visible: false\n }\n }, defaults, navigatorSeries[idx], {\n axis: NAVIGATOR_AXIS,\n categoryAxis: NAVIGATOR_AXIS,\n autoBind: naviOptions.autoBindElements\n })\n );\n }\n }\n}\n\nfunction ClonedObject() { }\nfunction clone(obj) {\n ClonedObject.prototype = obj;\n return new ClonedObject();\n}\n\nexport default Navigator;\n","import { Chart } from '../chart';\n\nimport Navigator from './navigator';\nimport { DEFAULT_WIDTH } from '../common/constants';\nimport { addClass, deepExtend, elementSize, grep, setDefaultOptions } from '../common';\nimport { NAVIGATOR_AXIS, NAVIGATOR_PANE } from './constants';\n\nconst AUTO_CATEGORY_WIDTH = 28;\n\nclass StockChart extends Chart {\n\n applyDefaults(options, themeOptions) {\n const width = elementSize(this.element).width || DEFAULT_WIDTH;\n let theme = themeOptions;\n\n const stockDefaults = {\n seriesDefaults: {\n categoryField: options.dateField\n },\n axisDefaults: {\n categoryAxis: {\n name: \"default\",\n majorGridLines: {\n visible: false\n },\n labels: {\n step: 2\n },\n majorTicks: {\n visible: false\n },\n maxDateGroups: Math.floor(width / AUTO_CATEGORY_WIDTH)\n }\n }\n };\n\n if (theme) {\n theme = deepExtend({}, theme, stockDefaults);\n }\n\n Navigator.setup(options, theme);\n\n super.applyDefaults(options, theme);\n }\n\n _setElementClass(element) {\n addClass(element, 'k-chart k-stockchart');\n }\n\n setOptions(options) {\n this.destroyNavigator();\n super.setOptions(options);\n }\n\n noTransitionsRedraw() {\n const transitions = this.options.transitions;\n\n this.options.transitions = false;\n this._fullRedraw();\n this.options.transitions = transitions;\n }\n\n _resize() {\n this.noTransitionsRedraw();\n }\n\n _redraw() {\n const navigator = this.navigator;\n\n if (!this._dirty() && navigator && navigator.options.partialRedraw) {\n navigator.redrawSlaves();\n } else {\n this._fullRedraw();\n }\n }\n\n _dirty() {\n const options = this.options;\n const series = [].concat(options.series, options.navigator.series);\n const seriesCount = grep(series, function(s) { return s && s.visible; }).length;\n const dirty = this._seriesCount !== seriesCount;\n this._seriesCount = seriesCount;\n\n return dirty;\n }\n\n _fullRedraw() {\n let navigator = this.navigator;\n\n if (!navigator) {\n navigator = this.navigator = new Navigator(this);\n this.trigger(\"navigatorCreated\", { navigator: navigator });\n }\n\n navigator.clean();\n navigator.setRange();\n\n super._redraw();\n\n navigator.initSelection();\n }\n\n _trackSharedTooltip(coords) {\n const plotArea = this._plotArea;\n const pane = plotArea.paneByPoint(coords);\n\n if (pane && pane.options.name === NAVIGATOR_PANE) {\n this._unsetActivePoint();\n } else {\n super._trackSharedTooltip(coords);\n }\n }\n\n bindCategories() {\n super.bindCategories();\n this.copyNavigatorCategories();\n }\n\n copyNavigatorCategories() {\n const definitions = [].concat(this.options.categoryAxis);\n let categories;\n\n for (let axisIx = 0; axisIx < definitions.length; axisIx++) {\n const axis = definitions[axisIx];\n if (axis.name === NAVIGATOR_AXIS) {\n categories = axis.categories;\n } else if (categories && axis.pane === NAVIGATOR_PANE) {\n axis.categories = categories;\n }\n }\n }\n\n destroyNavigator() {\n if (this.navigator) {\n this.navigator.destroy();\n this.navigator = null;\n }\n }\n\n destroy() {\n this.destroyNavigator();\n super.destroy();\n }\n\n _stopChartHandlers(e) {\n const coords = this._eventCoordinates(e);\n const pane = this._plotArea.paneByPoint(coords);\n\n return super._stopChartHandlers(e) || (pane && pane.options.name === NAVIGATOR_PANE);\n }\n\n _toggleDragZoomEvents() {\n if (!this._dragZoomEnabled) {\n this.element.style.touchAction = \"none\";\n\n this._dragZoomEnabled = true;\n }\n }\n}\n\nsetDefaultOptions(StockChart, {\n dateField: \"date\",\n axisDefaults: {\n categoryAxis: {\n type: \"date\",\n baseUnit: \"fit\",\n justified: true\n },\n valueAxis: {\n narrowRange: true,\n labels: {\n format: \"C\"\n }\n }\n },\n navigator: {\n select: {},\n seriesDefaults: {\n markers: {\n visible: false\n },\n tooltip: {\n visible: false\n },\n highlight: {\n visible: false\n },\n line: {\n width: 2\n }\n },\n hint: {},\n visible: true\n },\n tooltip: {\n visible: true\n },\n legend: {\n visible: false\n }\n});\n\nexport default StockChart;\n","import GeometryArc from '../geometry/arc';\nimport Element from './element';\nimport { Path } from './path';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport withGeometry from '../mixins/with-geometry';\nimport { defined } from '../util';\n\n\nconst DEFAULT_STROKE = \"#000\";\n\nclass Arc extends paintable(measurable(withGeometry(Element))) {\n get nodeType() {\n return \"Arc\";\n }\n\n constructor(geometry = new GeometryArc(), options = {}) {\n super(options);\n\n this.geometry(geometry);\n\n if (!defined(this.options.stroke)) {\n this.stroke(DEFAULT_STROKE);\n }\n }\n\n _bbox(matrix) {\n return this._geometry.bbox(matrix);\n }\n\n rawBBox() {\n return this.geometry().bbox();\n }\n\n toPath() {\n const path = new Path();\n const curvePoints = this.geometry().curvePoints();\n\n if (curvePoints.length > 0) {\n path.moveTo(curvePoints[0].x, curvePoints[0].y);\n\n for (let i = 1; i < curvePoints.length; i += 3) {\n path.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]);\n }\n }\n\n return path;\n }\n\n _containsPoint(point) {\n return this.geometry().containsPoint(point);\n }\n\n _isOnPath(point) {\n return this.geometry()._isOnPath(point, this.options.stroke.width / 2);\n }\n}\n\nexport default Arc;\n","const ANGULAR_SPEED = 150;\nconst LINEAR_SPEED = 250;\nconst ARROW = \"arrow\";\nconst ARROW_POINTER = \"arrowPointer\";\nconst BAR_POINTER = \"barPointer\";\nconst DEFAULT_HEIGHT = 200;\nconst DEFAULT_LINE_WIDTH = 0.5;\nconst DEFAULT_WIDTH = 200;\nconst DEGREE = Math.PI / 180;\nconst INSIDE = \"inside\";\nconst LINEAR = \"linear\";\nconst OUTSIDE = \"outside\";\nconst RADIAL_POINTER = \"radialPointer\";\nconst RADIAL_RANGE_POINTER = \"radialRangePointer\";\n\nexport {\n ANGULAR_SPEED, LINEAR_SPEED, ARROW, ARROW_POINTER, BAR_POINTER,\n DEFAULT_HEIGHT, DEFAULT_LINE_WIDTH, DEFAULT_WIDTH,\n DEGREE, INSIDE, LINEAR, OUTSIDE, RADIAL_POINTER, RADIAL_RANGE_POINTER\n};","import { getSpacing } from '../../common';\n\nexport default function pad(bbox, value) {\n const origin = bbox.getOrigin();\n const size = bbox.getSize();\n const spacing = getSpacing(value);\n\n bbox.setOrigin([ origin.x - spacing.left, origin.y - spacing.top ]);\n bbox.setSize([ size.width + (spacing.left + spacing.right), size.height + (spacing.top + spacing.bottom) ]);\n\n return bbox;\n}","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport pad from './pad';\n\nconst { Group, Path, Text } = drawing;\n\nexport default function buildLabelElement(label, options) {\n const labelBox = label.box;\n const textBox = label.children[0].box;\n const border = options.border || {};\n const background = options.background || \"\";\n\n const wrapper = Path.fromRect(new geo.Rect([ labelBox.x1, labelBox.y1 ], [ labelBox.width(), labelBox.height() ]), {\n stroke: {}\n });\n\n const text = new Text(label.text, new geo.Point(textBox.x1, textBox.y1), {\n font: options.font,\n fill: { color: options.color }\n });\n\n const styleGeometry = pad(text.bbox().clone(), options.padding);\n\n const styleBox = Path.fromRect(styleGeometry, {\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n opacity: border.opacity,\n dashType: border.dashType,\n lineJoin: \"round\",\n lineCap: \"round\"\n },\n fill: {\n color: background\n }\n });\n\n const elements = new Group();\n elements.append(wrapper);\n elements.append(styleBox);\n elements.append(text);\n\n return elements;\n}","import { defined } from '../../common';\nimport { MIN_VALUE, MAX_VALUE } from '../../common/constants';\n\nexport default function getRange(range, min, max) {\n const from = defined(range.from) ? range.from : MIN_VALUE;\n const to = defined(range.to) ? range.to : MAX_VALUE;\n\n range.from = Math.max(Math.min(to, from), min);\n range.to = Math.min(Math.max(to, from), max);\n\n return range;\n}","import { getSpacing } from '../../common';\nimport pad from './pad';\n\nexport default function unpad(bbox, value) {\n const spacing = getSpacing(value);\n\n spacing.left = -spacing.left; spacing.top = -spacing.top;\n spacing.right = -spacing.right; spacing.bottom = -spacing.bottom;\n\n return pad(bbox, spacing);\n}","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { Class, elementSize, setDefaultOptions, deepExtend, isArray, isNumber } from '../common';\nimport { DEFAULT_WIDTH, DEFAULT_HEIGHT } from './constants';\nimport { ChartService } from '../services';\nimport { unpad } from './utils';\n\nconst DEFAULT_MARGIN = 5;\nconst { Path, Surface } = drawing;\n\nclass Gauge extends Class {\n\n constructor(element, userOptions, theme, context = {}) {\n super();\n\n this.element = element;\n this.theme = theme;\n this.contextService = new ChartService(this, context);\n this._originalOptions = deepExtend({}, this.options, userOptions);\n this.options = deepExtend({}, this._originalOptions);\n this._initTheme(theme);\n\n this.redraw();\n }\n\n destroy() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n }\n\n delete this.element;\n delete this.surfaceElement;\n }\n\n value(pointerValue) {\n const pointer = this.pointers[0];\n\n if (arguments.length === 0) {\n return pointer.value();\n }\n\n pointer.value(pointerValue);\n this._setValueOptions(pointerValue);\n }\n\n _draw() {\n const surface = this.surface;\n\n surface.clear();\n surface.draw(this._visuals);\n }\n\n exportVisual() {\n return this._visuals;\n }\n\n allValues(values) {\n const pointers = this.pointers;\n const allValues = [];\n\n if (arguments.length === 0) {\n for (let i = 0; i < pointers.length; i++) {\n allValues.push(pointers[i].value());\n }\n\n return allValues;\n }\n\n if (isArray(values)) {\n for (let i = 0; i < values.length; i++) {\n if (isNumber(values[i])) {\n pointers[i].value(values[i]);\n }\n }\n }\n\n this._setValueOptions(values);\n }\n\n _setValueOptions(values) {\n const pointers = [].concat(this.options.pointer);\n const arrayValues = [].concat(values);\n\n for (let i = 0; i < arrayValues.length; i++) {\n pointers[i].value = arrayValues[i];\n }\n }\n\n resize() {\n this.noTransitionsRedraw();\n }\n\n noTransitionsRedraw() {\n const transitions = this.options.transitions;\n\n this._toggleTransitions(false);\n\n this.redraw();\n\n this._toggleTransitions(transitions);\n }\n\n redraw() {\n const size = this._surfaceSize();\n const wrapper = new geo.Rect([ 0, 0 ], [ size.width, size.height ]);\n\n this._initSurface();\n\n this.gaugeArea = this._createGaugeArea();\n\n this._createModel();\n\n const bbox = unpad(wrapper.bbox(), this._gaugeAreaMargin);\n this.reflow(bbox);\n }\n\n setOptions(options, theme) {\n this._originalOptions = deepExtend(this._originalOptions, options);\n this.options = deepExtend({}, this._originalOptions);\n\n this._initTheme(theme);\n\n this.redraw();\n }\n\n setDirection(rtl) {\n this.contextService.rtl = Boolean(rtl);\n if (this.surface && this.surface.type === 'svg') {\n this.surface.destroy();\n this.surface = null;\n }\n }\n\n setIntlService(intl) {\n this.contextService.intl = intl;\n }\n\n _initTheme(theme) {\n let currentTheme = theme || this.theme || {};\n this.theme = currentTheme;\n\n this.options = deepExtend({}, currentTheme, this.options);\n const options = this.options;\n const pointer = options.pointer;\n\n if (isArray(pointer)) {\n const pointers = [];\n for (let i = 0; i < pointer.length; i++) {\n pointers.push(deepExtend({}, currentTheme.pointer, pointer[i]));\n }\n options.pointer = pointers;\n }\n }\n\n _createGaugeArea() {\n const options = this.options.gaugeArea;\n const size = this.surface.size();\n const border = options.border || {};\n let areaGeometry = new geo.Rect([ 0, 0 ], [ size.width, size.height ]);\n\n this._gaugeAreaMargin = options.margin || DEFAULT_MARGIN;\n\n if (border.width > 0) {\n areaGeometry = unpad(areaGeometry, border.width);\n }\n\n const gaugeArea = Path.fromRect(areaGeometry, {\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n opacity: border.opacity,\n dashType: border.dashType,\n lineJoin: \"round\",\n lineCap: \"round\"\n },\n fill: {\n color: options.background\n }\n });\n\n return gaugeArea;\n }\n\n _initSurface() {\n const { options, surface } = this;\n const element = this._surfaceElement();\n const size = this._surfaceSize();\n\n elementSize(element, size);\n\n if (!surface || surface.options.type !== options.renderAs) {\n if (surface) {\n surface.destroy();\n }\n\n this.surface = Surface.create(element, {\n type: options.renderAs\n });\n } else {\n this.surface.clear();\n this.surface.resize();\n }\n }\n\n _surfaceSize() {\n const options = this.options;\n const size = this._getSize();\n\n if (options.gaugeArea) {\n deepExtend(size, options.gaugeArea);\n }\n\n return size;\n }\n\n _surfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.element.appendChild(this.surfaceElement);\n }\n\n return this.surfaceElement;\n }\n\n getSize() {\n return this._getSize();\n }\n\n _getSize() {\n const element = this.element;\n const defaultSize = this._defaultSize();\n let width = element.offsetWidth;\n let height = element.offsetHeight;\n\n if (!width) {\n width = defaultSize.width;\n }\n\n if (!height) {\n height = defaultSize.height;\n }\n\n return { width: width, height: height };\n }\n\n _defaultSize() {\n return {\n width: DEFAULT_WIDTH,\n height: DEFAULT_HEIGHT\n };\n }\n\n _toggleTransitions(value) {\n this.options.transitions = value;\n for (let i = 0; i < this.pointers.length; i++) {\n this.pointers[i].options.animation.transitions = value;\n }\n }\n}\n\nsetDefaultOptions(Gauge, {\n plotArea: {},\n theme: \"default\",\n renderAs: \"\",\n pointer: {},\n scale: {},\n gaugeArea: {}\n});\n\nexport default Gauge;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { setDefaultOptions, deepExtend, defined } from '../../common';\nimport { BLACK } from '../../common/constants';\nimport { NumericAxis } from '../../core';\nimport { DEFAULT_LINE_WIDTH, INSIDE } from '../constants';\nimport { autoMajorUnit } from '../../core';\nimport { buildLabelElement, getRange } from '../utils';\n\nconst { Path, Group } = drawing;\nconst Point = geo.Point;\n\nfunction renderAxisTick(tickRenderOptions, tickOptions) {\n const { position, tickX, tickY } = tickRenderOptions;\n let start, end;\n\n if (tickRenderOptions.vertical) {\n start = new Point(tickX, position);\n end = new Point(tickX + tickOptions.size, position);\n } else {\n start = new Point(position, tickY);\n end = new Point(position, tickY + tickOptions.size);\n }\n\n const tickPath = new Path({\n stroke: {\n color: tickOptions.color,\n width: tickOptions.width\n }\n }).moveTo(start).lineTo(end);\n\n return tickPath;\n}\n\nfunction renderTicks(tickGroup, tickPositions, tickRenderOptions, tickOptions) {\n const count = tickPositions.length;\n\n if (tickOptions.visible) {\n const { mirror, lineBox } = tickRenderOptions;\n for (let i = tickOptions.skip; i < count; i += tickOptions.step) {\n if (i % tickOptions.skipUnit === 0) {\n continue;\n }\n\n tickRenderOptions.tickX = mirror ? lineBox.x2 : lineBox.x2 - tickOptions.size;\n tickRenderOptions.tickY = mirror ? lineBox.y1 - tickOptions.size : lineBox.y1;\n tickRenderOptions.position = tickPositions[i];\n\n tickGroup.append(renderAxisTick(tickRenderOptions, tickOptions));\n }\n }\n}\n\nclass LinearScale extends NumericAxis {\n constructor(options, service) {\n let scaleOptions = options || {};\n if (!defined(scaleOptions.reverse) && scaleOptions.vertical === false && (service || {}).rtl) {\n scaleOptions = Object.assign({}, scaleOptions, {\n reverse: true\n });\n }\n\n super(0, 1, scaleOptions, service);\n\n this.options.minorUnit = this.options.minorUnit || this.options.majorUnit / 10;\n }\n\n initUserOptions(options) {\n let scaleOptions = deepExtend({}, this.options, options);\n scaleOptions = deepExtend({}, scaleOptions , { labels: { mirror: scaleOptions.mirror } });\n scaleOptions.majorUnit = scaleOptions.majorUnit || autoMajorUnit(scaleOptions.min, scaleOptions.max);\n\n return scaleOptions;\n }\n\n initFields() {\n }\n\n render() {\n const elements = this.elements = new Group();\n const labels = this.renderLabels();\n const scaleLine = this.renderLine();\n const scaleTicks = this.renderTicks();\n const ranges = this.renderRanges();\n\n elements.append(scaleLine, labels, scaleTicks, ranges);\n\n return elements;\n }\n\n renderRanges() {\n const options = this.options;\n const { min, max, vertical, labels: { mirror } } = options;\n const ranges = options.ranges || [];\n const elements = new Group();\n const count = ranges.length;\n const rangeSize = options.rangeSize || options.minorTicks.size / 2;\n\n for (let i = 0; i < count; i++) {\n const range = getRange(ranges[i], min, max);\n const slot = this.getSlot(range.from, range.to);\n const slotX = vertical ? this.lineBox() : slot;\n const slotY = vertical ? slot : this.lineBox();\n if (vertical) {\n slotX.x1 -= rangeSize * (mirror ? -1 : 1);\n } else {\n slotY.y2 += rangeSize * (mirror ? -1 : 1);\n }\n\n elements.append(Path.fromRect(new geo.Rect([ slotX.x1, slotY.y1 ], [ slotX.x2 - slotX.x1, slotY.y2 - slotY.y1 ]), {\n fill: { color: range.color, opacity: range.opacity },\n stroke: { }\n }));\n }\n\n return elements;\n }\n\n renderLabels() {\n const { labels, options } = this;\n const elements = new Group();\n\n for (let i = 0; i < labels.length; i++) {\n elements.append(buildLabelElement(labels[i], options.labels));\n }\n\n return elements;\n }\n\n renderLine() {\n const line = this.options.line;\n const lineBox = this.lineBox();\n const elements = new Group();\n\n if (line.width > 0 && line.visible) {\n const linePath = new Path({\n stroke: {\n color: line.color,\n dashType: line.dashType,\n width: line.width\n }\n });\n\n linePath.moveTo(lineBox.x1, lineBox.y1).lineTo(lineBox.x2, lineBox.y2);\n elements.append(linePath);\n }\n\n return elements;\n }\n\n renderTicks() {\n const ticks = new Group();\n const options = this.options;\n const majorUnit = options.majorTicks.visible ? options.majorUnit : 0;\n const tickRenderOptions = {\n vertical: options.vertical,\n mirror: options.labels.mirror,\n lineBox: this.lineBox()\n };\n\n renderTicks(ticks, this.getMajorTickPositions(), tickRenderOptions, options.majorTicks);\n renderTicks(ticks, this.getMinorTickPositions(), tickRenderOptions, deepExtend({}, {\n skipUnit: majorUnit / options.minorUnit\n }, options.minorTicks));\n\n return ticks;\n }\n}\n\nsetDefaultOptions(LinearScale, {\n min: 0,\n max: 50,\n\n majorTicks: {\n size: 15,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n minorTicks: {\n size: 10,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n line: {\n width: DEFAULT_LINE_WIDTH\n },\n\n labels: {\n position: INSIDE,\n padding: 2\n },\n mirror: false,\n _alignLines: false\n});\n\nexport default LinearScale;","import { Class, setDefaultOptions, defined, deepExtend, limitValue } from '../common';\nimport { BLACK } from '../common/constants';\n\nclass Pointer extends Class {\n constructor(scale, userOptions) {\n super();\n\n const { min, max } = scale.options;\n const options = this.options = deepExtend({}, this.options, userOptions);\n\n options.fill = options.color;\n\n this.scale = scale;\n\n if (defined(options.value)) {\n options.value = limitValue(options.value, min, max);\n } else {\n options.value = min;\n }\n }\n\n value(newValue) {\n const options = this.options;\n const value = options.value;\n\n if (arguments.length === 0) {\n return value;\n }\n\n const { min, max } = this.scale.options;\n\n options._oldValue = defined(options._oldValue) ? options.value : min;\n options.value = limitValue(newValue, min, max);\n\n if (this.elements) {\n this.repaint();\n }\n }\n}\n\nsetDefaultOptions(Pointer, {\n color: BLACK\n});\n\nexport default Pointer;","import { setDefaultOptions, deepExtend, defined, getSpacing } from '../../common';\nimport { Box } from '../../core';\nimport { BLACK } from '../../common/constants';\nimport { BAR_POINTER } from '../constants';\nimport Pointer from '../pointer';\n\nclass LinearPointer extends Pointer {\n constructor(scale, options) {\n super(scale, options);\n\n this.options = deepExtend({\n track: {\n visible: defined(options.track)\n }\n }, this.options);\n }\n\n reflow() {\n const { options, scale } = this;\n const { mirror, vertical } = scale.options;\n const scaleLine = scale.lineBox();\n const trackSize = options.track.size || options.size;\n const pointerHalfSize = options.size / 2;\n const margin = getSpacing(options.margin);\n let space = vertical ?\n margin[mirror ? \"left\" : \"right\"] :\n margin[mirror ? \"bottom\" : \"top\"];\n let pointerBox, pointerRangeBox, trackBox;\n\n space = mirror ? -space : space;\n\n if (vertical) {\n trackBox = new Box(\n scaleLine.x1 + space, scaleLine.y1,\n scaleLine.x1 + space, scaleLine.y2);\n\n if (mirror) {\n trackBox.x1 -= trackSize;\n } else {\n trackBox.x2 += trackSize;\n }\n\n if (options.shape !== BAR_POINTER) {\n pointerRangeBox = new Box(\n scaleLine.x2 + space, scaleLine.y1 - pointerHalfSize,\n scaleLine.x2 + space, scaleLine.y2 + pointerHalfSize\n );\n pointerBox = pointerRangeBox;\n }\n } else {\n trackBox = new Box(\n scaleLine.x1, scaleLine.y1 - space,\n scaleLine.x2, scaleLine.y1 - space);\n\n if (mirror) {\n trackBox.y2 += trackSize;\n } else {\n trackBox.y1 -= trackSize;\n }\n\n if (options.shape !== BAR_POINTER) {\n pointerRangeBox = new Box(\n scaleLine.x1 - pointerHalfSize, scaleLine.y1 - space,\n scaleLine.x2 + pointerHalfSize, scaleLine.y1 - space\n );\n pointerBox = pointerRangeBox;\n }\n }\n\n this.trackBox = trackBox;\n this.pointerRangeBox = pointerRangeBox;\n this.box = pointerBox || trackBox.clone().pad(options.border.width);\n }\n\n getElementOptions() {\n const options = this.options;\n\n return {\n fill: {\n color: options.color,\n opacity: options.opacity\n },\n stroke: defined(options.border) ? {\n color: options.border.width ? options.border.color || options.color : \"\",\n width: options.border.width,\n dashType: options.border.dashType,\n opacity: options.opacity\n } : null\n };\n }\n\n _margin() {\n const { scale, options } = this;\n const { mirror, vertical } = scale.options;\n const margin = getSpacing(options.margin);\n\n const space = vertical ?\n margin[mirror ? \"left\" : \"right\"] :\n margin[mirror ? \"bottom\" : \"top\"];\n\n return space;\n }\n}\n\nsetDefaultOptions(LinearPointer, {\n shape: BAR_POINTER,\n\n track: {\n border: {\n width: 1\n }\n },\n\n color: BLACK,\n border: {\n width: 1\n },\n opacity: 1,\n\n margin: getSpacing(3),\n animation: {\n type: BAR_POINTER\n },\n visible: true\n});\n\nexport default LinearPointer;","import { geometry, drawing } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions } from '../../common';\nimport { ARROW_POINTER, LINEAR_SPEED, LINEAR } from '../constants';\n\nclass ArrowLinearPointerAnimation extends drawing.Animation {\n\n setup() {\n const options = this.options;\n const { margin, from, to, vertical } = options;\n const axis = vertical ? \"x1\" : \"y1\";\n\n if (options.mirror === vertical) {\n from[axis] -= margin; to[axis] -= margin;\n } else {\n from[axis] += margin; to[axis] += margin;\n }\n\n const fromScale = this.fromScale = new geometry.Point(from.x1, from.y1);\n const toScale = this.toScale = new geometry.Point(to.x1, to.y1);\n\n if (options.duration !== 0) {\n options.duration = Math.max((fromScale.distanceTo(toScale) / options.duration) * 1000, 1);\n }\n }\n\n step(pos) {\n const translateX = interpolateValue(this.fromScale.x, this.toScale.x, pos);\n const translateY = interpolateValue(this.fromScale.y, this.toScale.y, pos);\n\n this.element.transform(geometry.transform().translate(translateX, translateY));\n }\n}\n\nsetDefaultOptions(ArrowLinearPointerAnimation, {\n easing: LINEAR,\n duration: LINEAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(ARROW_POINTER, ArrowLinearPointerAnimation);\n\nexport default ArrowLinearPointerAnimation;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { deepExtend, defined } from '../../common';\nimport { ARROW_POINTER } from '../constants';\nimport LinearPointer from './linear-pointer';\nimport ArrowLinearPointerAnimation from './arrow-linear-pointer-animation';\n\nconst Point = geo.Point;\nconst Path = drawing.Path;\n\nclass ArrowLinearPointer extends LinearPointer {\n constructor(scale, options) {\n super(scale, options);\n\n if (!defined(this.options.size)) {\n this.options.size = this.scale.options.majorTicks.size * 0.6;\n }\n }\n\n pointerShape() {\n const { scale, options: { size } } = this;\n const halfSize = size / 2;\n const sign = (scale.options.mirror ? -1 : 1);\n let shape;\n\n if (scale.options.vertical) {\n shape = [\n new Point(0, 0 - halfSize), new Point(0 - sign * size, 0), new Point(0, 0 + halfSize)\n ];\n } else {\n shape = [\n new Point(0 - halfSize, 0), new Point(0, 0 + sign * size), new Point(0 + halfSize, 0)\n ];\n }\n\n return shape;\n }\n\n repaint() {\n const { scale, options } = this;\n const animation = new ArrowLinearPointerAnimation(this.elements, deepExtend(options.animation, {\n vertical: scale.options.vertical,\n mirror: scale.options.mirror,\n margin: this._margin(options.margin),\n from: scale.getSlot(options._oldValue),\n to: scale.getSlot(options.value)\n }));\n\n if (options.animation.transitions === false) {\n animation.options.duration = 0;\n }\n\n animation.setup();\n animation.play();\n }\n\n render() {\n const { scale, options } = this;\n const elementOptions = this.getElementOptions();\n const shape = this.pointerShape(options.value);\n\n options.animation.type = ARROW_POINTER;\n\n const elements = new Path({\n stroke: elementOptions.stroke,\n fill: elementOptions.fill\n }).moveTo(shape[0]).lineTo(shape[1]).lineTo(shape[2]).close();\n\n const slot = scale.getSlot(options.value);\n elements.transform(geo.transform().translate(slot.x1, slot.y1));\n\n this.elements = elements;\n\n return elements;\n }\n}\n\nexport default ArrowLinearPointer;","import { drawing } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions } from '../../common';\nimport { X, Y } from '../../common/constants';\nimport { BAR_POINTER, LINEAR_SPEED, LINEAR } from '../constants';\n\nclass BarLinearPointerAnimation extends drawing.Animation {\n\n setup() {\n const options = this.options;\n const axis = this.axis = options.vertical ? Y : X;\n const to = this.to = options.newPoints[0][axis];\n const from = this.from = options.oldPoints[0][axis];\n\n if (options.duration !== 0) {\n options.duration = Math.max((Math.abs(to - from) / options.speed) * 1000, 1);\n }\n\n this._set(from);\n }\n\n step(pos) {\n const value = interpolateValue(this.from, this.to, pos);\n this._set(value);\n }\n\n _set(value) {\n const setter = \"set\" + this.axis.toUpperCase();\n const points = this.options.newPoints;\n\n points[0][setter](value);\n points[1][setter](value);\n }\n}\n\nsetDefaultOptions(BarLinearPointerAnimation, {\n easing: LINEAR,\n speed: LINEAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(BAR_POINTER, BarLinearPointerAnimation);\n\nexport default BarLinearPointerAnimation;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { deepExtend, defined } from '../../common';\nimport { X, Y } from '../../common/constants';\nimport LinearPointer from './linear-pointer';\nimport BarLinearPointerAnimation from './bar-linear-pointer-animation';\n\nconst { Group, Path } = drawing;\n\nclass BarLinearPointer extends LinearPointer {\n constructor(scale, options) {\n super(scale, options);\n\n if (!defined(this.options.size)) {\n this.options.size = this.scale.options.majorTicks.size * 0.3;\n }\n }\n\n pointerShape(value) {\n const { scale, options } = this;\n const { mirror, vertical } = scale.options;\n const dir = mirror === vertical ? -1 : 1;\n const size = options.size * dir;\n const minSlot = scale.getSlot(scale.options.min);\n const slot = scale.getSlot(value);\n const axis = vertical ? Y : X;\n const sizeAxis = vertical ? X : Y;\n const margin = this._margin() * dir;\n\n const p1 = new geo.Point();\n p1[axis] = minSlot[axis + \"1\"];\n p1[sizeAxis] = minSlot[sizeAxis + \"1\"];\n\n const p2 = new geo.Point();\n p2[axis] = slot[axis + \"1\"];\n p2[sizeAxis] = slot[sizeAxis + \"1\"];\n\n if (vertical) {\n p1.translate(margin, 0);\n p2.translate(margin, 0);\n } else {\n p1.translate(0, margin);\n p2.translate(0, margin);\n }\n\n const p3 = p2.clone();\n const p4 = p1.clone();\n\n if (vertical) {\n p3.translate(size, 0);\n p4.translate(size, 0);\n } else {\n p3.translate(0, size);\n p4.translate(0, size);\n }\n\n return [ p1, p2, p3, p4 ];\n }\n\n repaint() {\n const { scale, options } = this;\n const shape = this.pointerShape(options.value);\n const pointerPath = this.pointerPath;\n const oldShape = this.pointerShape(options._oldValue);\n\n pointerPath.moveTo(shape[0]).lineTo(shape[1]).lineTo(shape[2]).lineTo(shape[3]).close();\n\n const animation = new BarLinearPointerAnimation(pointerPath, deepExtend(options.animation, {\n reverse: scale.options.reverse,\n vertical: scale.options.vertical,\n oldPoints: [ oldShape[1], oldShape[2] ],\n newPoints: [ shape[1], shape[2] ]\n }));\n\n if (options.animation.transitions === false) {\n animation.options.duration = 0;\n }\n\n animation.setup();\n animation.play();\n }\n\n render() {\n const group = new Group();\n const elementOptions = this.getElementOptions();\n\n if (this.options.track.visible) {\n group.append(this.renderTrack());\n }\n\n const pointer = this.pointerPath = new Path({\n stroke: elementOptions.stroke,\n fill: elementOptions.fill\n });\n\n group.append(pointer);\n\n this.elements = group;\n\n return group;\n }\n\n renderTrack() {\n const trackOptions = this.options.track;\n const border = trackOptions.border || {};\n const trackBox = this.trackBox.clone().pad(border.width || 0);\n\n return new Path.fromRect(trackBox.toRect(), {\n fill: {\n color: trackOptions.color,\n opacity: trackOptions.opacity\n },\n stroke: {\n color: border.width ? border.color || trackOptions.color : \"\",\n width: border.width,\n dashType: border.dashType\n }\n });\n }\n}\n\nexport default BarLinearPointer;","import { drawing } from '@progress/kendo-drawing';\nimport { Box } from '../../core';\nimport { setDefaultOptions, deepExtend, isArray } from '../../common';\nimport { ARROW, DEFAULT_WIDTH, DEFAULT_HEIGHT } from '../constants';\nimport Gauge from '../gauge';\nimport LinearScale from './linear-scale';\nimport ArrowLinearPointer from './arrow-linear-pointer';\nimport BarLinearPointer from './bar-linear-pointer';\n\nconst DEFAULT_MIN_WIDTH = 60;\nconst DEFAULT_MIN_HEIGHT = 60;\n\nconst Group = drawing.Group;\n\nclass LinearGauge extends Gauge {\n\n reflow(bbox) {\n const pointers = this.pointers;\n const bboxX = bbox.origin.x;\n const bboxY = bbox.origin.y;\n\n const box = new Box(bboxX, bboxY, bboxX + bbox.width(), bboxY + bbox.height());\n\n this.scale.reflow(box);\n this._shrinkScaleWidth(box);\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow();\n }\n\n this.bbox = this._getBox(box);\n this._alignElements();\n this._shrinkElements();\n this._buildVisual();\n this._draw();\n }\n\n _buildVisual() {\n const visuals = new Group();\n const scaleElements = this.scale.render();\n const pointers = this.pointers;\n\n visuals.append(this.gaugeArea);\n visuals.append(scaleElements);\n\n for (let i = 0; i < pointers.length; i++) {\n const current = pointers[i];\n visuals.append(current.render());\n current.value(current.options.value);\n }\n\n this._visuals = visuals;\n }\n\n _createModel() {\n const options = this.options;\n const scale = this.scale = new LinearScale(options.scale, this.contextService);\n\n this.pointers = [];\n\n let pointers = options.pointer;\n pointers = isArray(pointers) ? pointers : [ pointers ];\n\n for (let i = 0; i < pointers.length; i++) {\n const currentOptions = deepExtend({}, pointers[i], {\n animation: {\n transitions: options.transitions\n }\n });\n const pointerType = currentOptions.shape === ARROW ? ArrowLinearPointer : BarLinearPointer;\n\n this.pointers.push(new pointerType(scale, currentOptions));\n }\n }\n\n _defaultSize() {\n const vertical = this.options.scale.vertical;\n\n return {\n width: vertical ? DEFAULT_MIN_WIDTH : DEFAULT_WIDTH,\n height: vertical ? DEFAULT_HEIGHT : DEFAULT_MIN_HEIGHT\n };\n }\n\n _getBox(box) {\n const { scale, pointers } = this;\n const boxCenter = box.center();\n let plotAreaBox = pointers[0].box.clone().wrap(scale.box);\n\n for (let i = 0; i < pointers.length; i++) {\n plotAreaBox.wrap(pointers[i].box.clone());\n }\n\n let size;\n if (scale.options.vertical) {\n size = plotAreaBox.width() / 2;\n plotAreaBox = new Box(\n boxCenter.x - size, box.y1,\n boxCenter.x + size, box.y2\n );\n } else {\n size = plotAreaBox.height() / 2;\n plotAreaBox = new Box(\n box.x1, boxCenter.y - size,\n box.x2, boxCenter.y + size\n );\n }\n\n return plotAreaBox;\n }\n\n _alignElements() {\n const { scale, pointers } = this;\n const scaleBox = scale.box;\n const box = pointers[0].box.clone().wrap(scale.box);\n const plotAreaBox = this.bbox;\n\n for (let i = 0; i < pointers.length; i++) {\n box.wrap(pointers[i].box.clone());\n }\n\n let diff;\n if (scale.options.vertical) {\n diff = plotAreaBox.center().x - box.center().x;\n scale.reflow(new Box(\n scaleBox.x1 + diff, plotAreaBox.y1,\n scaleBox.x2 + diff, plotAreaBox.y2\n ));\n } else {\n diff = plotAreaBox.center().y - box.center().y;\n scale.reflow(new Box(\n scaleBox.x1, scaleBox.y1 + diff,\n scaleBox.x2, scaleBox.y2 + diff\n ));\n }\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(this.bbox);\n }\n }\n\n _shrinkScaleWidth(bbox) {\n const { scale } = this;\n if (!scale.options.vertical) {\n const overflow = scale.contentBox().width() - bbox.width();\n if (overflow > 0) {\n scale.box.shrink(overflow, 0);\n scale.box.alignTo(bbox, 'center');\n scale.reflow(scale.box);\n }\n }\n }\n\n _shrinkElements() {\n const { scale, pointers } = this;\n const scaleBox = scale.box.clone();\n const pos = scale.options.vertical ? \"y\" : \"x\";\n const pointerBox = pointers[0].box;\n\n for (let i = 0; i < pointers.length; i++) {\n pointerBox.wrap(pointers[i].box.clone());\n }\n\n scaleBox[pos + 1] += Math.max(scaleBox[pos + 1] - pointerBox[pos + 1], 0);\n scaleBox[pos + 2] -= Math.max(pointerBox[pos + 2] - scaleBox[pos + 2], 0);\n\n scale.reflow(scaleBox);\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(this.bbox);\n }\n }\n}\n\nsetDefaultOptions(LinearGauge, {\n transitions: true,\n gaugeArea: {\n background: \"\"\n },\n scale: {\n vertical: true\n }\n});\n\nexport default LinearGauge;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { setDefaultOptions, deepExtend, defined, round, getSpacing } from '../../common';\nimport { BLACK, COORD_PRECISION } from '../../common/constants';\nimport { autoMajorUnit, Box, NumericAxis } from '../../core';\nimport { buildLabelElement, getRange } from '../utils';\n\nimport { DEGREE, DEFAULT_LINE_WIDTH, INSIDE, OUTSIDE } from '../constants';\n\nconst GEO_ARC_ADJUST_ANGLE = 180;\n\nconst { Arc, Path, Group } = drawing;\n\nfunction drawTicks(arc, tickAngles, unit, tickOptions) {\n const ticks = new Group();\n const center = arc.center;\n const radius = arc.getRadiusX();\n\n if (tickOptions.visible) {\n for (let i = 0; i < tickAngles.length; i++) {\n const tickStart = arc.pointAt(tickAngles[i]);\n const tickEnd = new geo.Point(center.x + radius - tickOptions.size, center.y).rotate(tickAngles[i], center);\n\n ticks.append(new Path({\n stroke: {\n color: tickOptions.color,\n width: tickOptions.width\n }\n }).moveTo(tickStart).lineTo(tickEnd));\n }\n }\n\n return ticks;\n}\n\nfunction rangeSegment(from, to, color, opacity) {\n return { from: from, to: to, color: color, opacity: opacity };\n}\n\nclass RadialScale extends NumericAxis {\n constructor(options, service) {\n super(0, 1, options, service);\n }\n\n initUserOptions(options) {\n const scaleOptions = deepExtend({}, this.options, options);\n scaleOptions.majorUnit = scaleOptions.majorUnit || autoMajorUnit(scaleOptions.min, scaleOptions.max);\n scaleOptions.minorUnit = scaleOptions.minorUnit || scaleOptions.majorUnit / 10;\n\n return scaleOptions;\n }\n\n initFields() {\n }\n\n render(center, radius) {\n const arc = this.renderArc(center, radius);\n\n this.bbox = arc.bbox();\n this.labelElements = this.renderLabels();\n this.ticks = this.renderTicks();\n this.ranges = this.renderRanges();\n }\n\n reflow(bbox) {\n const center = bbox.center();\n const radius = Math.min(bbox.height(), bbox.width()) / 2;\n\n if (defined(this.bbox)) {\n this.bbox = this.arc.bbox();\n this.radius(this.arc.getRadiusX());\n this.repositionRanges();\n this.renderLabels();\n } else {\n return this.render(center, radius);\n }\n }\n\n slotAngle(value) {\n const { min, max, reverse, startAngle, endAngle } = this.options;\n const angle = endAngle - startAngle;\n let result;\n\n if (reverse) {\n result = endAngle - (value - min) / (max - min) * angle;\n } else {\n result = ((value - min) / (max - min) * angle) + startAngle;\n }\n\n return result + GEO_ARC_ADJUST_ANGLE;\n }\n\n hasRanges() {\n const ranges = this.options.ranges;\n\n return ranges && ranges.length;\n }\n\n ticksSize() {\n const { majorTicks, minorTicks } = this.options;\n let size = 0;\n if (majorTicks.visible) {\n size = majorTicks.size;\n }\n\n if (minorTicks.visible) {\n size = Math.max(minorTicks.size, size);\n }\n\n return size;\n }\n\n labelsCount() {\n let count = super.labelsCount();\n const options = this.options;\n const angle = options.endAngle - options.startAngle;\n\n if (angle >= 360 && (options.max % options.majorUnit === 0)) {\n count -= 1;\n }\n\n return count;\n }\n\n renderLabels() {\n const options = this.options;\n const arc = this.arc.clone();\n let radius = arc.getRadiusX();\n const tickAngles = this.tickAngles(arc, options.majorUnit);\n const rangeSize = options.rangeSize = options.rangeSize || radius * 0.1;\n const labelsGroup = new Group();\n\n let rangeDistance = radius * 0.05;\n if (defined(options.rangeDistance)) {\n rangeDistance = options.rangeDistance;\n } else {\n options.rangeDistance = rangeDistance;\n }\n\n const labelsOptions = options.labels;\n const isInside = labelsOptions.position === INSIDE;\n const hasLabelElements = defined(this.labelElements);\n\n if (isInside) {\n radius -= this.ticksSize();\n\n if (this.hasRanges() && !hasLabelElements) {\n radius -= rangeSize + rangeDistance;\n }\n arc.setRadiusX(radius).setRadiusY(radius);\n }\n\n const labels = this.labels;\n const count = labels.length;\n const padding = getSpacing(labelsOptions.padding);\n const paddingWidth = (padding.left + padding.right) / 2;\n const paddingHeight = (padding.top + padding.bottom) / 2;\n\n for (let i = 0; i < count; i++) {\n const label = labels[i];\n const halfWidth = label.box.width() / 2;\n const halfHeight = label.box.height() / 2;\n const angle = tickAngles[i];\n const labelAngle = (angle - GEO_ARC_ADJUST_ANGLE) * DEGREE;\n\n const lp = arc.pointAt(angle);\n const cx = lp.x + (Math.cos(labelAngle) * (halfWidth + paddingWidth) * (isInside ? 1 : -1));\n const cy = lp.y + (Math.sin(labelAngle) * (halfHeight + paddingHeight) * (isInside ? 1 : -1));\n\n label.reflow(new Box(cx - halfWidth, cy - halfHeight, cx + halfWidth, cy + halfHeight));\n const labelPos = new geo.Point(label.box.x1, label.box.y1);\n\n let labelElement;\n if (!hasLabelElements) {\n labelElement = buildLabelElement(label, options.labels);\n labelsGroup.append(labelElement);\n } else {\n labelElement = this.labelElements.children[i];\n const prevLabelPos = labelElement.bbox().origin;\n\n const labelTransform = labelElement.transform() || geo.transform();\n labelTransform.translate(labelPos.x - prevLabelPos.x, labelPos.y - prevLabelPos.y);\n labelElement.transform(labelTransform);\n }\n\n this.bbox = geo.Rect.union(this.bbox, labelElement.bbox());\n }\n\n return labelsGroup;\n }\n\n repositionRanges() {\n const ranges = this.ranges.children;\n\n if (ranges.length > 0) {\n const { rangeDistance, rangeSize } = this.options;\n let rangeRadius = this.getRangeRadius();\n\n if (this.options.labels.position === INSIDE) {\n rangeRadius += rangeSize + rangeDistance;\n }\n\n const newRadius = rangeRadius + (rangeSize / 2);\n\n for (let i = 0; i < ranges.length; i++) {\n ranges[i]._geometry.setRadiusX(newRadius).setRadiusY(newRadius);\n }\n\n this.bbox = geo.Rect.union(this.bbox, this.ranges.bbox());\n }\n }\n\n renderRanges() {\n const segments = this.rangeSegments();\n const segmentsCount = segments.length;\n const result = new Group();\n\n if (segmentsCount) {\n const { rangeSize, reverse, rangeDistance } = this.options;\n const rangeRadius = this.getRangeRadius();\n\n // move the ticks with a range distance and a range size\n this.radius(this.radius() - rangeSize - rangeDistance);\n\n for (let i = 0; i < segmentsCount; i++) {\n const segment = segments[i];\n const from = this.slotAngle(segment[reverse ? \"to\" : \"from\"]);\n const to = this.slotAngle(segment[!reverse ? \"to\" : \"from\"]);\n\n if (to - from !== 0) {\n result.append(this.createRange(from, to, rangeRadius, segment));\n }\n }\n }\n\n return result;\n }\n\n createRange(startAngle, endAngle, rangeRadius, options) {\n const rangeSize = this.options.rangeSize;\n const rangeGeom = new geo.Arc(this.arc.center, {\n radiusX: rangeRadius + (rangeSize / 2),\n radiusY: rangeRadius + (rangeSize / 2),\n startAngle: startAngle,\n endAngle: endAngle\n });\n\n return new Arc(rangeGeom, {\n stroke: {\n width: rangeSize,\n color: options.color,\n opacity: options.opacity,\n lineCap: options.lineCap\n }\n });\n }\n\n rangeSegments() {\n const options = this.options;\n const ranges = options.ranges || [];\n const count = ranges.length;\n const segments = [];\n\n if (count) {\n const { min, max, rangePlaceholderColor: defaultColor } = options;\n segments.push(rangeSegment(min, max, defaultColor));\n\n for (let i = 0; i < count; i++) {\n const range = getRange(ranges[i], min, max);\n const segmentsCount = segments.length;\n\n for (let j = 0; j < segmentsCount; j++) {\n const segment = segments[j];\n\n if (segment.from <= range.from && range.from <= segment.to) {\n segments.push(rangeSegment(range.from, range.to, range.color, range.opacity));\n\n if (segment.from <= range.to && range.to <= segment.to) {\n segments.push(rangeSegment(range.to, segment.to, defaultColor, range.opacity));\n }\n\n segment.to = range.from;\n\n break;\n }\n }\n }\n }\n\n return segments;\n }\n\n getRangeRadius() {\n const { arc, options } = this;\n const { rangeSize, rangeDistance, majorTicks: { size: majorTickSize } } = options;\n let radius;\n\n if (options.labels.position === OUTSIDE) {\n radius = arc.getRadiusX() - majorTickSize - rangeDistance - rangeSize;\n } else {\n radius = arc.getRadiusX() - rangeSize;\n }\n\n return radius;\n }\n\n renderArc(center, radius) {\n const options = this.options;\n\n const arc = this.arc = new geo.Arc(center, {\n radiusX: radius,\n radiusY: radius,\n startAngle: options.startAngle + GEO_ARC_ADJUST_ANGLE,\n endAngle: options.endAngle + GEO_ARC_ADJUST_ANGLE\n });\n\n return arc;\n }\n\n renderTicks() {\n const { arc, options } = this;\n const tickArc = arc.clone();\n\n this.majorTickAngles = this.tickAngles(arc, options.majorUnit);\n this.majorTicks = drawTicks(tickArc, this.majorTickAngles, options.majorUnit, options.majorTicks);\n\n const allTicks = new Group();\n allTicks.append(this.majorTicks);\n\n const majorTickSize = options.majorTicks.size;\n const minorTickSize = options.minorTicks.size;\n\n this._tickDifference = majorTickSize - minorTickSize;\n\n if (options.labels.position === OUTSIDE) {\n const radius = tickArc.getRadiusX();\n tickArc.setRadiusX(radius - majorTickSize + minorTickSize)\n .setRadiusY(radius - majorTickSize + minorTickSize);\n }\n\n this.minorTickAngles = this.normalizeTickAngles(this.tickAngles(arc, options.minorUnit));\n this.minorTicks = drawTicks(tickArc, this.minorTickAngles, options.minorUnit, options.minorTicks);\n allTicks.append(this.minorTicks);\n\n return allTicks;\n }\n\n normalizeTickAngles(angles) {\n const options = this.options;\n const skip = options.majorUnit / options.minorUnit;\n\n for (let i = angles.length - 1; i >= 0; i--) {\n if (i % skip === 0) {\n angles.splice(i, 1);\n }\n }\n\n return angles;\n }\n\n tickAngles(ring, stepValue) {\n const options = this.options;\n const reverse = options.reverse;\n const range = options.max - options.min;\n const angle = ring.endAngle - ring.startAngle;\n let tickCount = range / stepValue;\n let pos = ring.startAngle;\n let step = angle / tickCount;\n\n if (reverse) {\n pos += angle;\n step = -step;\n }\n\n if (angle >= 360 && (options.max % stepValue === 0)) {\n tickCount -= 1;\n }\n\n const positions = [];\n for (let i = 0; i < tickCount; i++) {\n positions.push(round(pos, COORD_PRECISION));\n pos += step;\n }\n\n if (round(pos) <= ring.endAngle) {\n positions.push(pos);\n }\n\n return positions;\n }\n\n radius(value) {\n if (value) {\n this.arc.setRadiusX(value).setRadiusY(value);\n this.repositionTicks(this.majorTicks.children, this.majorTickAngles);\n this.repositionTicks(this.minorTicks.children, this.minorTickAngles, true);\n } else {\n return this.arc.getRadiusX();\n }\n }\n\n repositionTicks(ticks, tickAngles, minor) {\n const diff = minor ? (this._tickDifference || 0) : 0;\n let tickArc = this.arc;\n const radius = tickArc.getRadiusX();\n\n if (minor && this.options.labels.position === OUTSIDE && diff !== 0) {\n tickArc = this.arc.clone();\n tickArc.setRadiusX(radius - diff).setRadiusY(radius - diff);\n }\n\n for (let i = 0; i < ticks.length; i++) {\n const newPoint = tickArc.pointAt(tickAngles[i]);\n const segments = ticks[i].segments;\n const xDiff = newPoint.x - segments[0].anchor().x;\n const yDiff = newPoint.y - segments[0].anchor().y;\n\n ticks[i].transform(new geo.transform().translate(xDiff, yDiff));\n }\n }\n}\n\nsetDefaultOptions(RadialScale, {\n min: 0,\n max: 100,\n\n majorTicks: {\n size: 15,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n minorTicks: {\n size: 10,\n align: INSIDE,\n color: BLACK,\n width: DEFAULT_LINE_WIDTH,\n visible: true\n },\n\n startAngle: -30,\n endAngle: 210,\n\n labels: {\n position: INSIDE,\n padding: 2\n }\n});\n\nexport default RadialScale;\n","import { geometry, drawing } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions } from '../../common';\nimport { ANGULAR_SPEED, LINEAR, RADIAL_POINTER } from '../constants';\n\nclass RadialPointerAnimation extends drawing.Animation {\n constructor(element, options) {\n super(element, options);\n\n const animationOptions = this.options;\n\n animationOptions.duration = Math.max((Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000, 1);\n }\n\n step(pos) {\n const options = this.options;\n const angle = interpolateValue(options.oldAngle, options.newAngle, pos);\n\n this.element.transform(geometry.transform().rotate(angle, options.center));\n }\n}\n\nsetDefaultOptions(RadialPointerAnimation, {\n easing: LINEAR,\n duration: ANGULAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(RADIAL_POINTER, RadialPointerAnimation);\n\nexport default RadialPointerAnimation;","import { geometry as geo, drawing } from '@progress/kendo-drawing';\n\nimport { setDefaultOptions, deepExtend, limitValue } from '../../common';\nimport { ANGULAR_SPEED, DEGREE, DEFAULT_LINE_WIDTH, RADIAL_POINTER } from '../constants';\nimport Pointer from '../pointer';\nimport RadialPointerAnimation from './radial-pointer-animation';\n\nconst CAP_SIZE = 0.05;\nconst { Circle, Group, Path } = drawing;\n\nclass RadialPointer extends Pointer {\n\n setAngle(angle) {\n this.elements.transform(geo.transform().rotate(angle, this.center));\n }\n\n repaint() {\n const { scale, options } = this;\n const oldAngle = scale.slotAngle(options._oldValue);\n const newAngle = scale.slotAngle(options.value);\n\n if (options.animation.transitions === false) {\n this.setAngle(newAngle);\n } else {\n new RadialPointerAnimation(this.elements, deepExtend(options.animation, {\n oldAngle: oldAngle,\n newAngle: newAngle\n })).play();\n }\n }\n\n render() {\n const { scale, options } = this;\n const elements = new Group();\n\n if (options.animation !== false) {\n deepExtend(options.animation, {\n startAngle: 0,\n center: scale.arc.center,\n reverse: scale.options.reverse\n });\n }\n\n elements.append(this._renderNeedle(), this._renderCap());\n\n this.elements = elements;\n this.setAngle(DEGREE);\n\n return elements;\n }\n\n reflow(arc) {\n const center = this.center = arc.center;\n const length = limitValue(this.options.length || 1, 0.1, 1.5);\n const radius = this.radius = arc.getRadiusX() * length;\n const capSize = this.capSize = Math.round(radius * this.options.cap.size);\n\n this.bbox = geo.Rect.fromPoints(new geo.Point(center.x - capSize, center.y - capSize),\n new geo.Point(center.x + capSize, center.y + capSize));\n }\n\n _renderNeedle() {\n const minorTickSize = this.scale.options.minorTicks.size;\n const center = this.center;\n const needleColor = this.options.color;\n\n const needlePath = new Path({\n fill: { color: needleColor },\n stroke: { color: needleColor, width: DEFAULT_LINE_WIDTH }\n });\n\n needlePath.moveTo(center.x + this.radius - minorTickSize, center.y)\n .lineTo(center.x, center.y - (this.capSize / 2))\n .lineTo(center.x, center.y + (this.capSize / 2))\n .close();\n\n return needlePath;\n }\n\n _renderCap() {\n const options = this.options;\n const capColor = options.cap.color || options.color;\n const circle = new geo.Circle(this.center, this.capSize);\n\n const cap = new Circle(circle, {\n fill: { color: capColor },\n stroke: { color: capColor }\n });\n\n return cap;\n }\n}\n\nsetDefaultOptions(RadialPointer, {\n cap: {\n size: CAP_SIZE\n },\n arrow: {\n width: 16,\n height: 14\n },\n animation: {\n type: RADIAL_POINTER,\n duration: ANGULAR_SPEED\n }\n});\n\nexport default RadialPointer;\n","import { geometry as geo, drawing } from '@progress/kendo-drawing';\nimport { setDefaultOptions, deepExtend, round, isArray } from '../../common';\nimport { COORD_PRECISION } from '../../common/constants';\nimport Gauge from '../gauge';\nimport RadialScale from './radial-scale';\nimport RadialPointer from './radial-pointer';\n\nconst Group = drawing.Group;\n\nclass RadialGauge extends Gauge {\n\n reflow(bbox) {\n const pointers = this.pointers;\n this.scale.reflow(bbox);\n this._initialPlotArea = this.scale.bbox;\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(this.scale.arc);\n this._initialPlotArea = geo.Rect.union(this._initialPlotArea, pointers[i].bbox);\n }\n\n this.fitScale(bbox);\n this.alignScale(bbox);\n this._buildVisual(this.gaugeArea, pointers, this.scale);\n this._draw();\n }\n\n _buildVisual(gaugeArea, pointers, scale) {\n const visuals = this._visuals = new Group();\n\n visuals.append(gaugeArea);\n visuals.append(scale.ticks);\n visuals.append(scale.ranges);\n this._buildPointers(pointers);\n visuals.append(scale.labelElements);\n }\n\n _buildPointers(pointers) {\n for (let i = 0; i < pointers.length; i++) {\n const current = pointers[i];\n current.render();\n this._visuals.append(current.elements);\n\n current.value(current.options.value);\n }\n }\n\n fitScale(bbox) {\n const arc = this.scale.arc;\n const plotAreaBox = this._initialPlotArea;\n const step = Math.abs(this.getDiff(plotAreaBox, bbox));\n let min = round(step, COORD_PRECISION);\n let max = round(-step, COORD_PRECISION);\n let minDiff, midDiff, maxDiff, mid, oldDiff;\n let staleFlag = 0;\n let i = 0;\n\n while (i++ < 100) {\n staleFlag = (oldDiff === maxDiff) ? (staleFlag + 1) : 0;\n\n if (staleFlag > 5) {\n break;\n }\n\n if (min !== mid) {\n minDiff = this.getPlotBox(min, bbox, arc);\n if (0 <= minDiff && minDiff <= 2) {\n break;\n }\n }\n\n if (max !== mid) {\n maxDiff = this.getPlotBox(max, bbox, arc);\n if (0 <= maxDiff && maxDiff <= 2) {\n break;\n }\n }\n\n if (minDiff > 0 && maxDiff > 0) {\n mid = min * 2;\n } else if (minDiff < 0 && maxDiff < 0) {\n mid = max * 2;\n } else {\n mid = round(((min + max) / 2) || 1, COORD_PRECISION);\n }\n\n midDiff = this.getPlotBox(mid, bbox, arc);\n if (0 <= midDiff && midDiff <= 2) {\n break;\n }\n\n oldDiff = maxDiff;\n\n if (midDiff > 0) {\n max = mid;\n maxDiff = midDiff;\n } else {\n min = mid;\n minDiff = midDiff;\n }\n }\n }\n\n getPlotBox(step, bbox, arc) {\n const scale = this.scale;\n const pointers = this.pointers;\n const radius = arc.getRadiusX();\n const scaleArc = arc.clone();\n\n scaleArc.setRadiusX(radius + step).setRadiusY(radius + step);\n\n scale.arc = scaleArc;\n scale.reflow(bbox);\n this.plotBbox = scale.bbox;\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(scaleArc);\n this.plotBbox = geo.Rect.union(this.plotBbox, pointers[i].bbox);\n }\n\n return this.getDiff(this.plotBbox, bbox);\n }\n\n getDiff(plotBox, box) {\n return Math.min(box.width() - plotBox.width(), box.height() - plotBox.height());\n }\n\n alignScale(bbox) {\n const plotBoxCenter = this.plotBbox.center();\n const boxCenter = bbox.center();\n const paddingX = plotBoxCenter.x - boxCenter.x;\n const paddingY = plotBoxCenter.y - boxCenter.y;\n const { scale, pointers } = this;\n\n scale.arc.center.x -= paddingX;\n scale.arc.center.y -= paddingY;\n\n scale.reflow(bbox);\n\n for (let i = 0; i < pointers.length; i++) {\n pointers[i].reflow(scale.arc);\n this.plotBbox = geo.Rect.union(scale.bbox, pointers[i].bbox);\n }\n }\n\n _createModel() {\n const options = this.options;\n const pointers = options.pointer;\n const scale = this.scale = new RadialScale(options.scale, this.contextService);\n\n this.pointers = [];\n\n const pointersArr = isArray(pointers) ? pointers : [ pointers ];\n for (let i = 0; i < pointersArr.length; i++) {\n const current = new RadialPointer(scale, deepExtend({}, pointersArr[i], {\n animation: {\n transitions: options.transitions\n }\n }));\n\n this.pointers.push(current);\n }\n }\n}\n\nsetDefaultOptions(RadialGauge, {\n transitions: true,\n gaugeArea: {\n background: \"\"\n }\n});\n\nexport default RadialGauge;","import RadialScale from '../radial/radial-scale';\nimport { setDefaultOptions } from '../../common';\n\nclass ArcScale extends RadialScale {\n\n rangeSegments() {\n const { min, max, rangePlaceholderColor, rangeLineCap } = this.options;\n\n return [ { from: min, to: max, color: rangePlaceholderColor, lineCap: rangeLineCap } ];\n }\n\n hasRanges() {\n return true;\n }\n\n placeholderRangeAngle(angle) {\n const geometry = this.ranges.children[0].geometry();\n\n if (this.options.reverse) {\n geometry.setEndAngle(angle);\n } else {\n geometry.setStartAngle(angle);\n }\n }\n\n addRange(from, to, options) {\n const reverse = this.options.reverse;\n\n const startAngle = this.slotAngle(reverse ? to : from);\n const endAngle = this.slotAngle(reverse ? from : to);\n\n const range = this.createRange(startAngle, endAngle, this.getRangeRadius(), options);\n\n this.ranges.append(range);\n\n return range;\n }\n}\n\nsetDefaultOptions(ArcScale, {\n min: 0,\n max: 100,\n\n majorTicks: {\n visible: false\n },\n\n minorTicks: {\n visible: false\n },\n\n labels: {\n visible: false\n },\n\n startAngle: 0,\n endAngle: 180,\n rangeLineCap: 'round'\n});\n\nexport default ArcScale;","import { drawing, Color } from '@progress/kendo-drawing';\nimport { interpolateValue, setDefaultOptions, round, limitValue } from '../../common';\nimport { ANGULAR_SPEED, LINEAR, RADIAL_RANGE_POINTER } from '../constants';\n\nconst MAX_DURATION = 800;\n\nclass RangePointerAnimation extends drawing.Animation {\n constructor(element, options) {\n super(element, options);\n\n const animationOptions = this.options;\n const duration = (Math.abs(animationOptions.newAngle - animationOptions.oldAngle) / animationOptions.duration) * 1000;\n animationOptions.duration = limitValue(duration, ANGULAR_SPEED, MAX_DURATION);\n\n const startColor = element.elements.options.get(\"stroke.color\");\n const color = element.currentColor();\n if (startColor !== color) {\n this.startColor = new Color(startColor);\n this.color = new Color(color);\n }\n }\n\n step(pos) {\n const { options, startColor, color } = this;\n const angle = interpolateValue(options.oldAngle, options.newAngle, pos);\n this.element.angle(angle);\n\n if (color) {\n const r = round(interpolateValue(startColor.r, color.r, pos));\n const g = round(interpolateValue(startColor.g, color.g, pos));\n const b = round(interpolateValue(startColor.b, color.b, pos));\n\n this.element.stroke(new Color(r, g, b).toHex());\n }\n }\n}\n\nsetDefaultOptions(RangePointerAnimation, {\n easing: LINEAR,\n duration: ANGULAR_SPEED\n});\n\ndrawing.AnimationFactory.current.register(RADIAL_RANGE_POINTER, RangePointerAnimation);\n\nexport default RangePointerAnimation;","import { setDefaultOptions, deepExtend, isNumber } from '../../common';\nimport { ANGULAR_SPEED, RADIAL_RANGE_POINTER } from '../constants';\nimport Pointer from '../pointer';\nimport RangePointerAnimation from './range-pointer-animation';\n\nclass RangePointer extends Pointer {\n\n repaint() {\n const { scale, options } = this;\n const oldAngle = scale.slotAngle(options._oldValue);\n const newAngle = scale.slotAngle(options.value);\n\n if (this.animation) {\n this.animation.abort();\n }\n\n if (options.animation.transitions === false) {\n this.angle(newAngle);\n this.stroke(this.currentColor());\n } else {\n this.animation = new RangePointerAnimation(this, deepExtend(options.animation, {\n oldAngle: oldAngle,\n newAngle: newAngle\n }));\n\n this.animation.play();\n }\n }\n\n angle(value) {\n const geometry = this.elements.geometry();\n if (this.scale.options.reverse) {\n geometry.setStartAngle(value);\n } else {\n geometry.setEndAngle(value);\n }\n this.scale.placeholderRangeAngle(value);\n }\n\n stroke(value) {\n this.elements.stroke(value);\n }\n\n render() {\n if (this.elements) {\n return;\n }\n\n const { scale, options } = this;\n\n if (options.animation !== false) {\n deepExtend(options.animation, {\n startAngle: 0,\n center: scale.arc.center,\n reverse: scale.options.reverse\n });\n }\n\n this.elements = scale.addRange(scale.options.min, this.options.value, {\n color: this.currentColor(),\n opacity: options.opacity,\n lineCap: scale.options.rangeLineCap\n });\n }\n\n currentColor() {\n const { min, max } = this.scale.options;\n const { colors, color, value } = this.options;\n const currentValue = isNumber(value) ? value : min;\n\n if (colors) {\n for (let idx = 0; idx < colors.length; idx++) {\n const { color: rangeColor, from = min, to = max } = colors[idx];\n\n if (from <= currentValue && currentValue <= to) {\n return rangeColor;\n }\n }\n }\n\n return color;\n }\n\n reflow() {\n this.render();\n\n this.bbox = this.elements.bbox();\n }\n}\n\nsetDefaultOptions(RangePointer, {\n animation: {\n type: RADIAL_RANGE_POINTER,\n duration: ANGULAR_SPEED\n }\n});\n\nexport default RangePointer;\n","import RadialGauge from '../radial/radial-gauge';\nimport ArcScale from './arc-scale';\nimport RangePointer from './range-pointer';\n\nimport { deepExtend } from '../../common';\n\n\nclass ArcGauge extends RadialGauge {\n\n _initTheme(theme) {\n super._initTheme(theme);\n\n this.options.color = this.options.color || (this.theme.pointer || {}).color;\n }\n\n _createModel() {\n const options = this.options;\n const scale = this.scale = new ArcScale(options.scale, this.contextService);\n\n const pointer = new RangePointer(scale, deepExtend({}, {\n colors: options.colors,\n color: options.color,\n value: options.value,\n opacity: options.opacity,\n animation: {\n transitions: options.transitions\n }\n }));\n\n this.pointers = [ pointer ];\n }\n\n _buildPointers(pointers) {\n for (let i = 0; i < pointers.length; i++) {\n const current = pointers[i];\n current.render();\n\n current.value(current.options.value);\n }\n }\n\n _setValueOptions(value) {\n this.options.value = value;\n }\n\n currentColor() {\n const pointer = this.pointers[0];\n if (pointer) {\n return pointer.currentColor();\n }\n }\n\n centerLabelPosition(width, height) {\n const size = this.getSize();\n const center = this.scale.arc.center;\n\n let left = center.x - width / 2;\n let top = center.y - height / 2;\n\n if (width < size.width) {\n const right = left + width;\n\n left = Math.max(left, 0);\n\n if (right > size.width) {\n left -= right - size.width;\n }\n }\n\n if (height < size.height) {\n const bbox = this.scale.bbox;\n const yLimit = bbox.bottomRight().y;\n const bottom = top + height;\n\n top = Math.max(top, bbox.origin.y);\n\n if (bottom > yLimit) {\n top -= bottom - yLimit;\n }\n }\n\n return {\n left: left,\n top: top\n };\n }\n}\n\nexport default ArcGauge;","import ArcGauge from '../arc/arc-gauge';\n\nconst defaultStartAngle = 90;\n\nclass CircularGauge extends ArcGauge {\n _createModel() {\n const scaleOptions = this.options.scale;\n if (typeof scaleOptions.startAngle !== 'number') {\n scaleOptions.startAngle = defaultStartAngle;\n }\n\n scaleOptions.endAngle = scaleOptions.startAngle + 360;\n\n super._createModel();\n }\n}\n\nexport default CircularGauge;\n","import {\n Class,\n defined,\n setDefaultOptions\n} from '../../common';\n\nconst DEFAULT_QUIET_ZONE_LENGTH = 10;\n\nexport class Encoding extends Class {\n constructor(options) {\n super();\n this.setOptions(options);\n this.initProperties();\n }\n\n initProperties() { }\n\n setOptions(options) {\n this.options = Object.assign({}, this.options, options);\n this.quietZoneLength = this.options.addQuietZone ? 2 * this.options.quietZoneLength : 0;\n }\n\n encode(value, width, height) {\n const convertedValue = defined(value) ? String(value) : value;\n\n this.initValue(convertedValue, width, height);\n\n if (this.options.addQuietZone) {\n this.addQuietZone();\n }\n\n this.addData();\n\n if (this.options.addQuietZone) {\n this.addQuietZone();\n }\n\n return {\n baseUnit: this.baseUnit,\n pattern: this.pattern\n };\n }\n\n initValue() { }\n\n addQuietZone() {\n this.pattern.push(this.options.quietZoneLength || DEFAULT_QUIET_ZONE_LENGTH);\n }\n\n addData() { }\n\n invalidCharacterError(character) {\n throw new Error(`Character \"${character}\" is not valid for symbology ${this.name}.`);\n }\n}\n\nsetDefaultOptions(Encoding, {\n quietZoneLength: DEFAULT_QUIET_ZONE_LENGTH,\n addQuietZone: true,\n addCheckSum: true\n});\n","import { Encoding } from './encoding';\nimport { setDefaultOptions } from '../../common';\n\nconst extend = Object.assign;\n\nexport class Code11 extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 11\",\n characterMap: [\"111121\", \"211121\", \"121121\", \"221111\", \"112121\", \"212111\", \"122111\", \"111221\", \"211211\", \"211111\", \"112111\"],\n cCheckSumTotal: 10,\n kCheckSumTotal: 9,\n kCheckSumMinLength: 10,\n checkSumMod: 11,\n DASH_VALUE: 10,\n DASH: \"-\",\n START: \"112211\",\n STOP: \"11221\"\n });\n }\n\n initValue(value, width) {\n this.pattern = [];\n this.value = value;\n this.width = width;\n this.totalUnits = 0;\n }\n\n addData() {\n const value = this.value;\n\n this.addPattern(this.START);\n\n for (let i = 0; i < value.length; i++) {\n this.addCharacter(value.charAt(i));\n }\n\n if (this.options.addCheckSum) {\n this.addCheckSum();\n }\n\n this.addPattern(this.STOP);\n this.setBaseUnit();\n }\n\n setBaseUnit() {\n this.baseUnit = this.width / (this.totalUnits + this.quietZoneLength);\n }\n\n addCheckSum() {\n const value = this.value;\n let length = value.length;\n const cValue = this.getWeightedSum(value, length, this.cCheckSumTotal) % this.checkSumMod;\n\n this.checksum = String(cValue);\n this.addPattern(this.characterMap[cValue]);\n\n length++;\n\n if (length >= this.kCheckSumMinLength) {\n let kValue = (cValue + this.getWeightedSum(value, length, this.kCheckSumTotal)) % this.checkSumMod;\n this.checksum += kValue;\n this.addPattern(this.characterMap[kValue]);\n }\n }\n\n getWeightedSum(value, length, total) {\n let weightedSum = 0;\n\n for (let i = 0; i < value.length; i++) {\n weightedSum += this.weightedValue(this.getValue(value.charAt(i)), length, i, total);\n }\n\n return weightedSum;\n }\n\n weightedValue(value, length, index, total) {\n const weight = (length - index) % total || total;\n return weight * value;\n }\n\n getValue(character) {\n if (!isNaN(character)) {\n return parseInt(character, 10);\n } else if (character !== this.DASH) {\n this.invalidCharacterError(character);\n }\n\n return this.DASH_VALUE;\n }\n\n addCharacter(character) {\n const value = this.getValue(character);\n const pattern = this.characterMap[value];\n\n this.addPattern(pattern);\n }\n\n addPattern(pattern) {\n let value;\n\n for (let i = 0; i < pattern.length; i++) {\n value = parseInt(pattern.charAt(i), 10);\n this.pattern.push(value);\n this.totalUnits += value;\n }\n }\n}\n\nsetDefaultOptions(Code11, {\n addCheckSum: true\n});\n","import { setDefaultOptions } from '../../common';\nimport { Encoding } from './encoding';\n\nconst extend = Object.assign;\n\nexport class Code39Base extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n minBaseUnitLength: 0.7\n });\n }\n\n addData() {\n const value = this.value;\n\n this.addStart();\n\n for (let idx = 0; idx < value.length; idx++) {\n this.addCharacter(value.charAt(idx));\n }\n\n if (this.options.addCheckSum) {\n this.pushCheckSum();\n }\n\n this.addStop();\n this.prepareValues();\n }\n\n addCharacter(character) {\n const characterData = this.characterMap[character];\n\n if (!characterData) {\n this.invalidCharacterError(character);\n }\n\n this.addBase(characterData);\n }\n\n addBase() { }\n}\n\nexport class Code39 extends Code39Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 39\",\n checkSumMod: 43,\n minRatio: 2.5,\n maxRatio: 3,\n gapWidth: 1,\n splitCharacter: \"|\",\n patternMappings: {\n \"b\": \"1|\",\n \"w\": \"1|\",\n \"B\": \"ratio|\",\n \"W\": \"ratio|\"\n },\n characterMap: {\n \"0\": { \"pattern\": \"bwbWBwBwb\", \"value\": 0 },\n \"1\": { \"pattern\": \"BwbWbwbwB\", \"value\": 1 },\n \"2\": { \"pattern\": \"bwBWbwbwB\", \"value\": 2 },\n \"3\": { \"pattern\": \"BwBWbwbwb\", \"value\": 3 },\n \"4\": { \"pattern\": \"bwbWBwbwB\", \"value\": 4 },\n \"5\": { \"pattern\": \"BwbWBwbwb\", \"value\": 5 },\n \"6\": { \"pattern\": \"bwBWBwbwb\", \"value\": 6 },\n \"7\": { \"pattern\": \"bwbWbwBwB\", \"value\": 7 },\n \"8\": { \"pattern\": \"BwbWbwBwb\", \"value\": 8 },\n \"9\": { \"pattern\": \"bwBWbwBwb\", \"value\": 9 },\n \"A\": { \"pattern\": \"BwbwbWbwB\", \"value\": 10 },\n \"B\": { \"pattern\": \"bwBwbWbwB\", \"value\": 11 },\n \"C\": { \"pattern\": \"BwBwbWbwb\", \"value\": 12 },\n \"D\": { \"pattern\": \"bwbwBWbwB\", \"value\": 13 },\n \"E\": { \"pattern\": \"BwbwBWbwb\", \"value\": 14 },\n \"F\": { \"pattern\": \"bwBwBWbwb\", \"value\": 15 },\n \"G\": { \"pattern\": \"bwbwbWBwB\", \"value\": 16 },\n \"H\": { \"pattern\": \"BwbwbWBwb\", \"value\": 17 },\n \"I\": { \"pattern\": \"bwBwbWBwb\", \"value\": 18 },\n \"J\": { \"pattern\": \"bwbwBWBwb\", \"value\": 19 },\n \"K\": { \"pattern\": \"BwbwbwbWB\", \"value\": 20 },\n \"L\": { \"pattern\": \"bwBwbwbWB\", \"value\": 21 },\n \"M\": { \"pattern\": \"BwBwbwbWb\", \"value\": 22 },\n \"N\": { \"pattern\": \"bwbwBwbWB\", \"value\": 23 },\n \"O\": { \"pattern\": \"BwbwBwbWb\", \"value\": 24 },\n \"P\": { \"pattern\": \"bwBwBwbWb\", \"value\": 25 },\n \"Q\": { \"pattern\": \"bwbwbwBWB\", \"value\": 26 },\n \"R\": { \"pattern\": \"BwbwbwBWb\", \"value\": 27 },\n \"S\": { \"pattern\": \"bwBwbwBWb\", \"value\": 28 },\n \"T\": { \"pattern\": \"bwbwBwBWb\", \"value\": 29 },\n \"U\": { \"pattern\": \"BWbwbwbwB\", \"value\": 30 },\n \"V\": { \"pattern\": \"bWBwbwbwB\", \"value\": 31 },\n \"W\": { \"pattern\": \"BWBwbwbwb\", \"value\": 32 },\n \"X\": { \"pattern\": \"bWbwBwbwB\", \"value\": 33 },\n \"Y\": { \"pattern\": \"BWbwBwbwb\", \"value\": 34 },\n \"Z\": { \"pattern\": \"bWBwBwbwb\", \"value\": 35 },\n \"-\": { \"pattern\": \"bWbwbwBwB\", \"value\": 36 },\n \".\": { \"pattern\": \"BWbwbwBwb\", \"value\": 37 },\n \" \": { \"pattern\": \"bWBwbwBwb\", \"value\": 38 },\n \"$\": { \"pattern\": \"bWbWbWbwb\", \"value\": 39 },\n \"/\": { \"pattern\": \"bWbWbwbWb\", \"value\": 40 },\n \"+\": { \"pattern\": \"bWbwbWbWb\", \"value\": 41 },\n \"%\": { \"pattern\": \"bwbWbWbWb\", \"value\": 42 },\n START: { pattern: \"bWbwBwBwb\" }\n }\n });\n }\n\n initValue(value, width, height) {\n this.width = width;\n this.height = height;\n this.value = value;\n this.dataLength = value.length;\n this.pattern = [];\n this.patternString = \"\";\n }\n\n prepareValues() {\n const minBaseUnit = this.minBaseUnitLength;\n const minRatio = this.minRatio;\n const minHeight = Math.ceil(Math.max(0.15 * this.width, 24));\n let baseUnit;\n let ratio = this.maxRatio;\n\n if (this.height < minHeight) {\n throw new Error(`Insufficient height for Code39 encoding: the current height is ${this.height}px and the minimum height is ${minHeight}px.`);\n }\n\n baseUnit = this.getBaseUnit(ratio);\n\n while (baseUnit < minBaseUnit && ratio > minRatio) {\n ratio = parseFloat((ratio - 0.1).toFixed(1));\n baseUnit = this.getBaseUnit(ratio);\n }\n\n if (baseUnit < minBaseUnit) {\n let minWidth = Math.ceil(this.getBaseWidth(minRatio) * minBaseUnit);\n throw new Error(`Insufficient width for Code39 encoding: the current width is ${this.width}px and the minimum width for value \"${this.value}\" is ${minWidth}px.`);\n }\n\n this.ratio = ratio;\n this.baseUnit = baseUnit;\n this.patternString = this.patternString.substring(0, this.patternString.length - 1);\n this.pattern = this.pattern.concat(this.patternString.replace(/ratio/g, ratio).split(this.splitCharacter));\n }\n\n getBaseUnit(ratio) {\n return this.width / this.getBaseWidth(ratio);\n }\n\n getBaseWidth(ratio) {\n const characterLength = 3 * (ratio + 2);\n return this.quietZoneLength + characterLength * (this.dataLength + 2) + this.gapWidth * (this.dataLength + 1);\n }\n\n addStart() {\n this.addPattern(this.characterMap.START.pattern);\n this.addCharacterGap();\n }\n\n addBase(character) {\n this.addPattern(character.pattern);\n this.addCharacterGap();\n }\n\n addStop() {\n this.addPattern(this.characterMap.START.pattern);\n }\n\n addPattern(pattern) {\n for (let i = 0; i < pattern.length; i++) {\n this.patternString += this.patternMappings[pattern.charAt(i)];\n }\n }\n\n addCharacterGap() {\n this.patternString += this.gapWidth + this.splitCharacter;\n }\n}\n\nsetDefaultOptions(Code39, {\n addCheckSum: false\n});\n","import { Code39 } from './code39';\nimport deepExtend from '../../common/deep-extend';\n\nexport const Code39ExtendedBase = {\n addCharacter(character) {\n if (this.characterMap[character]) {\n this.addBase(this.characterMap[character]);\n } else if (character.charCodeAt(0) > 127) {\n this.invalidCharacterError(character);\n } else {\n this.addExtended(character.charCodeAt(0));\n }\n },\n\n addExtended(code) {\n let patterns;\n\n for (let i = 0; i < this.extendedMappings.length; i++) {\n patterns = this.extendedMappings[i].call(this, code);\n\n if (patterns) {\n for (let patternIndex = 0; patternIndex < patterns.length; patternIndex++) {\n const pattern = patterns[patternIndex];\n this.addBase(pattern);\n }\n\n this.dataLength += patterns.length - 1;\n return;\n }\n }\n },\n\n extendedMappings: [\n function(code) {\n if (97 <= code && code <= 122) {\n return [this.characterMap[this.shiftCharacters[0]], this.characterMap[String.fromCharCode(code - 32)]];\n }\n },\n function(code) {\n if (33 <= code && code <= 58) {\n return [this.characterMap[this.shiftCharacters[1]], this.characterMap[String.fromCharCode(code + 32)]];\n }\n },\n function(code) {\n if (1 <= code && code <= 26) {\n return [this.characterMap[this.shiftCharacters[2]], this.characterMap[String.fromCharCode(code + 64)]];\n }\n },\n function(code) {\n let result;\n let dataCharacter;\n\n if (!this.specialAsciiCodes[code]) {\n dataCharacter = Math.floor(code / 32) * 6 + (code - 27) % 32 + 64;\n result = [this.characterMap[this.shiftCharacters[3]], this.characterMap[String.fromCharCode(dataCharacter)]];\n } else {\n result = [];\n\n for (let i = 0; i < this.specialAsciiCodes[code].length; i++) {\n result.push(this.characterMap[this.shiftCharacters[3]]);\n result.push(this.characterMap[this.specialAsciiCodes[code][i]]);\n }\n }\n\n return result;\n }\n ],\n specialAsciiCodes: {\n \"0\": [\"U\"],\n \"64\": [\"V\"],\n \"96\": [\"W\"],\n \"127\": [\"T\", \"X\", \"Y\", \"Z\"]\n },\n shiftValuesAsciiCodes: {\n \"39\": 36,\n \"40\": 47,\n \"41\": 43,\n \"42\": 37\n },\n characterMap: {\n \"+\": false,\n \"/\": false,\n \"$\": false,\n \"%\": false\n },\n shiftCharacters: [\"SHIFT0\", \"SHIFT1\", \"SHIFT2\", \"SHIFT3\"]\n};\n\nexport class Code39Extended extends Code39 {\n initProperties() {\n super.initProperties();\n\n deepExtend(this, Code39ExtendedBase, {\n name: \"Code 39 extended\",\n characterMap: {\n SHIFT0: { \"pattern\": \"bWbwbWbWb\", \"value\": 41 },\n SHIFT1: { \"pattern\": \"bWbWbwbWb\", \"value\": 40 },\n SHIFT2: { \"pattern\": \"bWbWbWbwb\", \"value\": 39 },\n SHIFT3: { \"pattern\": \"bwbWbWbWb\", \"value\": 42 }\n }\n });\n }\n}\n","import { Code39Base } from './code39';\n\nconst extend = Object.assign;\n\nexport class Code93 extends Code39Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 93\",\n cCheckSumTotal: 20,\n kCheckSumTotal: 15,\n checkSumMod: 47,\n characterMap: {\n \"0\": { \"pattern\": \"131112\", \"value\": 0 },\n \"1\": { \"pattern\": \"111213\", \"value\": 1 },\n \"2\": { \"pattern\": \"111312\", \"value\": 2 },\n \"3\": { \"pattern\": \"111411\", \"value\": 3 },\n \"4\": { \"pattern\": \"121113\", \"value\": 4 },\n \"5\": { \"pattern\": \"121212\", \"value\": 5 },\n \"6\": { \"pattern\": \"121311\", \"value\": 6 },\n \"7\": { \"pattern\": \"111114\", \"value\": 7 },\n \"8\": { \"pattern\": \"131211\", \"value\": 8 },\n \"9\": { \"pattern\": \"141111\", \"value\": 9 },\n \"A\": { \"pattern\": \"211113\", \"value\": 10 },\n \"B\": { \"pattern\": \"211212\", \"value\": 11 },\n \"C\": { \"pattern\": \"211311\", \"value\": 12 },\n \"D\": { \"pattern\": \"221112\", \"value\": 13 },\n \"E\": { \"pattern\": \"221211\", \"value\": 14 },\n \"F\": { \"pattern\": \"231111\", \"value\": 15 },\n \"G\": { \"pattern\": \"112113\", \"value\": 16 },\n \"H\": { \"pattern\": \"112212\", \"value\": 17 },\n \"I\": { \"pattern\": \"112311\", \"value\": 18 },\n \"J\": { \"pattern\": \"122112\", \"value\": 19 },\n \"K\": { \"pattern\": \"132111\", \"value\": 20 },\n \"L\": { \"pattern\": \"111123\", \"value\": 21 },\n \"M\": { \"pattern\": \"111222\", \"value\": 22 },\n \"N\": { \"pattern\": \"111321\", \"value\": 23 },\n \"O\": { \"pattern\": \"121122\", \"value\": 24 },\n \"P\": { \"pattern\": \"131121\", \"value\": 25 },\n \"Q\": { \"pattern\": \"212112\", \"value\": 26 },\n \"R\": { \"pattern\": \"212211\", \"value\": 27 },\n \"S\": { \"pattern\": \"211122\", \"value\": 28 },\n \"T\": { \"pattern\": \"211221\", \"value\": 29 },\n \"U\": { \"pattern\": \"221121\", \"value\": 30 },\n \"V\": { \"pattern\": \"222111\", \"value\": 31 },\n \"W\": { \"pattern\": \"112122\", \"value\": 32 },\n \"X\": { \"pattern\": \"112221\", \"value\": 33 },\n \"Y\": { \"pattern\": \"122121\", \"value\": 34 },\n \"Z\": { \"pattern\": \"123111\", \"value\": 35 },\n \"-\": { \"pattern\": \"121131\", \"value\": 36 },\n \".\": { \"pattern\": \"311112\", \"value\": 37 },\n \" \": { \"pattern\": \"311211\", \"value\": 38 },\n \"$\": { \"pattern\": \"321111\", \"value\": 39 },\n \"/\": { \"pattern\": \"112131\", \"value\": 40 },\n \"+\": { \"pattern\": \"113121\", \"value\": 41 },\n \"%\": { \"pattern\": \"211131\", \"value\": 42 },\n SHIFT0: { \"pattern\": \"122211\", \"value\": 46 },\n SHIFT1: { \"pattern\": \"311121\", \"value\": 45 },\n SHIFT2: { \"pattern\": \"121221\", \"value\": 43 },\n SHIFT3: { \"pattern\": \"312111\", \"value\": 44 },\n START: { \"pattern\": \"111141\" },\n TERMINATION_BAR: \"1\"\n }\n });\n }\n\n initValue(value, width, height) {\n this.value = value;\n this.width = width;\n this.height = height;\n this.pattern = [];\n this.values = [];\n this.dataLength = value.length;\n }\n\n prepareValues() {\n let minHeight = Math.ceil(Math.max(0.15 * this.width, 24));\n\n if (this.height < minHeight) {\n throw new Error(`Insufficient height for Code93 encoding: the current height is ${this.height}px, the minimum required height is ${minHeight}px.`);\n }\n\n this.setBaseUnit();\n\n if (this.baseUnit < this.minBaseUnitLength) {\n const minWidth = Math.ceil(this.minBaseUnitLength * (this.width / this.baseUnit));\n throw new Error(`Insufficient width for Code93 encoding: the current width is ${this.width}px and the minimum required width for value \"${this.value}\" is ${minWidth}px.`);\n }\n }\n\n setBaseUnit() {\n const checkSumLength = 2;\n\n this.baseUnit = this.width / (9 * (this.dataLength + 2 + checkSumLength) + this.quietZoneLength + 1);\n }\n\n addStart() {\n let pattern = this.characterMap.START.pattern;\n this.addPattern(pattern);\n }\n\n addStop() {\n this.addStart();\n this.pattern.push(this.characterMap.TERMINATION_BAR);\n }\n\n addBase(charData) {\n this.addPattern(charData.pattern);\n this.values.push(charData.value);\n }\n\n pushCheckSum() {\n const checkValues = this._getCheckValues();\n let charData;\n\n this.checksum = checkValues.join(\"\");\n\n for (let i = 0; i < checkValues.length; i++) {\n charData = this.characterMap[this._findCharacterByValue(checkValues[i])];\n this.addPattern(charData.pattern);\n }\n }\n\n _getCheckValues() {\n const values = this.values;\n const length = values.length;\n let wightedSum = 0;\n let cValue;\n let kValue;\n let idx;\n\n for (idx = length - 1; idx >= 0; idx--) {\n wightedSum += this.weightedValue(values[idx], length - idx, this.cCheckSumTotal);\n }\n\n cValue = wightedSum % this.checkSumMod;\n\n wightedSum = this.weightedValue(cValue, 1, this.kCheckSumTotal);\n\n for (idx = length - 1; idx >= 0; idx--) {\n wightedSum += this.weightedValue(values[idx], length - idx + 1, this.kCheckSumTotal);\n }\n\n kValue = wightedSum % this.checkSumMod;\n return [cValue, kValue];\n }\n\n _findCharacterByValue(value) {\n for (let character in this.characterMap) {\n if (this.characterMap[character].value === value) {\n return character;\n }\n }\n }\n\n weightedValue(value, index, total) {\n return (index % total || total) * value;\n }\n\n addPattern(pattern) {\n let value;\n\n for (let i = 0; i < pattern.length; i++) {\n value = parseInt(pattern.charAt(i), 10);\n this.pattern.push(value);\n }\n }\n}\n","import { Encoding } from './encoding';\nimport inArray from '../../common/in-array';\n\nconst numberRegex = /^\\d+$/;\nconst extend = Object.assign;\n\nexport class Postnet extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Postnet\",\n START: \"2\",\n VALID_CODE_LENGTHS: [5, 9, 11],\n DIGIT_SEPARATOR: \"-\",\n characterMap: [\"22111\", \"11122\", \"11212\", \"11221\", \"12112\", \"12121\", \"12211\", \"21112\", \"21121\", \"21211\"]\n });\n }\n\n initValue(value, width, height) {\n this.height = height;\n this.width = width;\n this.baseHeight = height / 2;\n this.value = value.replace(new RegExp(this.DIGIT_SEPARATOR, \"g\"), \"\");\n this.pattern = [];\n this.validate(this.value);\n this.checkSum = 0;\n this.setBaseUnit();\n }\n\n addData() {\n const value = this.value;\n\n this.addPattern(this.START);\n\n for (let i = 0; i < value.length; i++) {\n this.addCharacter(value.charAt(i));\n }\n\n if (this.options.addCheckSum) {\n this.addCheckSum();\n }\n\n this.addPattern(this.START);\n this.pattern.pop();\n }\n\n addCharacter(character) {\n const pattern = this.characterMap[character];\n this.checkSum += parseInt(character, 10);\n this.addPattern(pattern);\n }\n\n addCheckSum() {\n this.checksum = (10 - (this.checkSum % 10)) % 10;\n this.addCharacter(this.checksum);\n }\n\n setBaseUnit() {\n const startStopLength = 3;\n\n this.baseUnit = this.width / ((this.value.length + 1) * 10 + startStopLength + this.quietZoneLength);\n }\n\n validate(value) {\n if (!numberRegex.test(value)) {\n this.invalidCharacterError(value.match(/[^0-9]/)[0]);\n }\n\n if (!inArray(value.length, this.VALID_CODE_LENGTHS)) {\n throw new Error(\"Invalid value length. Valid lengths for the Postnet symbology are \" + this.VALID_CODE_LENGTHS.join(\",\") + \".\");\n }\n }\n\n addPattern(pattern) {\n let y1;\n\n for (let i = 0; i < pattern.length; i++) {\n y1 = this.height - this.baseHeight * pattern.charAt(i);\n this.pattern.push({ width: 1, y1: y1, y2: this.height });\n this.pattern.push(1);\n }\n }\n}\n","import { Class } from '../../common';\nimport { Encoding } from './encoding';\nimport deepExtend from '../../common/deep-extend';\nimport inArray from '../../common/in-array';\n\nconst numberRegex = /^\\d+$/;\nconst alphanumericRegex = /^[a-z0-9]+$/i;\nconst extend = Object.assign;\n\nexport class State128 extends Class {\n constructor(encoding) {\n super();\n this.encoding = encoding;\n this.initProperties();\n }\n\n initProperties() { }\n\n addStart() { }\n\n is() { }\n\n isCode() {\n return false;\n }\n\n move() { }\n\n pushState() { }\n}\n\nexport class State128AB extends State128 {\n constructor(encoding, states) {\n super(encoding);\n this.states = states;\n this._initMoves(states);\n }\n\n initProperties() {\n super.initProperties();\n\n deepExtend(this, {\n FNC4: \"FNC4\",\n SHIFT: 98\n });\n }\n\n addStart() {\n this.encoding.addPattern(this.START);\n }\n\n is(value, index) {\n let code = value.charCodeAt(index);\n return this.isCode(code);\n }\n\n move(encodingState) {\n let idx = 0;\n\n while (!this._moves[idx].call(this, encodingState) && idx < this._moves.length) {\n idx++;\n }\n }\n\n pushState(encodingState) {\n let states = this.states,\n value = encodingState.value,\n maxLength = value.length,\n code;\n\n if (inArray(\"C\", states)) {\n let numberMatch = value.substr(encodingState.index).match(/\\d{4,}/g);\n\n if (numberMatch) {\n maxLength = value.indexOf(numberMatch[0], encodingState.index);\n }\n }\n\n while ((code = encodingState.value.charCodeAt(encodingState.index)) >= 0 &&\n this.isCode(code) &&\n encodingState.index < maxLength) {\n this.encoding.addPattern(this.getValue(code));\n encodingState.index++;\n }\n }\n\n _initMoves(states) {\n this._moves = [];\n\n if (inArray(this.FNC4, states)) {\n this._moves.push(this._moveFNC);\n }\n\n if (inArray(this.shiftKey, states)) {\n this._moves.push(this._shiftState);\n }\n\n this._moves.push(this._moveState);\n }\n\n _moveFNC(encodingState) {\n if (encodingState.fnc) {\n encodingState.fnc = false;\n return encodingState.previousState === this.key;\n }\n }\n\n _shiftState(encodingState) {\n if (encodingState.previousState === this.shiftKey &&\n (encodingState.index + 1 >= encodingState.value.length ||\n this.encoding[this.shiftKey].is(encodingState.value, encodingState.index + 1))) {\n this.encoding.addPattern(this.SHIFT);\n encodingState.shifted = true;\n return true;\n }\n }\n\n _moveState() {\n this.encoding.addPattern(this.MOVE);\n return true;\n }\n}\n\nconst states128 = {};\n\nstates128.A = class State128A extends State128AB {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"A\",\n shiftKey: \"B\",\n MOVE: 101,\n START: 103\n });\n }\n\n isCode(code) {\n return 0 <= code && code < 96;\n }\n\n getValue(code) {\n if (code < 32) {\n return code + 64;\n }\n\n return code - 32;\n }\n};\n\nstates128.B = class State128B extends State128AB {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"B\",\n shiftKey: \"A\",\n MOVE: 100,\n START: 104\n });\n }\n\n isCode(code) {\n return 32 <= code && code < 128;\n }\n\n getValue(code) {\n return code - 32;\n }\n};\n\nstates128.C = class State128C extends State128 {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"C\",\n MOVE: 99,\n START: 105\n });\n }\n\n addStart() {\n this.encoding.addPattern(this.START);\n }\n\n is(value, index) {\n let next4 = getSubstring(value, index, 4);\n return (index + 4 <= value.length || value.length === 2) && numberRegex.test(next4);\n }\n\n move() {\n this.encoding.addPattern(this.MOVE);\n }\n\n pushState(encodingState) {\n let code;\n\n while ((code = getSubstring(encodingState.value, encodingState.index, 2)) &&\n numberRegex.test(code) && code.length === 2) {\n this.encoding.addPattern(parseInt(code, 10));\n encodingState.index += 2;\n }\n }\n\n getValue(code) {\n return code;\n }\n};\n\nstates128.FNC4 = class State128FNC4 extends State128 {\n constructor(encoding, states) {\n super(encoding);\n this._initSubStates(states);\n }\n\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"FNC4\",\n dependentStates: [\"A\", \"B\"]\n });\n }\n\n addStart(encodingState) {\n let code = encodingState.value.charCodeAt(0) - 128,\n subState = this._getSubState(code);\n\n this.encoding[subState].addStart();\n }\n\n is(value, index) {\n let code = value.charCodeAt(index);\n return this.isCode(code);\n }\n\n isCode(code) {\n return 128 <= code && code < 256;\n }\n\n pushState(encodingState) {\n let subState = this._initSubState(encodingState),\n encoding = this.encoding,\n length = subState.value.length;\n let code;\n\n encodingState.index += length;\n\n if (length < 3) {\n for (; subState.index < length; subState.index++) {\n code = subState.value.charCodeAt(subState.index);\n subState.state = this._getSubState(code);\n\n if (subState.previousState !== subState.state) {\n subState.previousState = subState.state;\n encoding[subState.state].move(subState);\n }\n\n encoding.addPattern(encoding[subState.state].MOVE);\n encoding.addPattern(encoding[subState.state].getValue(code));\n }\n } else {\n if (subState.state !== subState.previousState) {\n encoding[subState.state].move(subState);\n }\n\n this._pushStart(subState);\n encoding.pushData(subState, this.subStates);\n\n if (encodingState.index < encodingState.value.length) {\n this._pushStart(subState);\n }\n }\n\n encodingState.fnc = true;\n encodingState.state = subState.state;\n }\n\n _pushStart(subState) {\n this.encoding.addPattern(this.encoding[subState.state].MOVE);\n this.encoding.addPattern(this.encoding[subState.state].MOVE);\n }\n\n _initSubState(encodingState) {\n const subState = {\n value: this._getAll(encodingState.value, encodingState.index),\n index: 0\n };\n\n subState.state = this._getSubState(subState.value.charCodeAt(0));\n subState.previousState = encodingState.previousState === this.key ?\n subState.state :\n encodingState.previousState;\n\n return subState;\n }\n\n _initSubStates(states) {\n this.subStates = [];\n\n for (let i = 0; i < states.length; i++) {\n if (inArray(states[i], this.dependentStates)) {\n this.subStates.push(states[i]);\n }\n }\n }\n\n _getSubState(code) {\n for (let i = 0; i < this.subStates.length; i++) {\n if (this.encoding[this.subStates[i]].isCode(code)) {\n return this.subStates[i];\n }\n }\n }\n\n _getAll(value, index) {\n let code;\n let result = \"\";\n let i = index;\n\n while ((code = value.charCodeAt(i++)) && this.isCode(code)) {\n result += String.fromCharCode(code - 128);\n }\n\n return result;\n }\n};\n\nstates128.FNC1 = class States128FNC1 extends State128 {\n constructor(encoding, states) {\n super(encoding);\n this.states = states;\n }\n\n initProperties() {\n super.initProperties();\n\n extend(this, {\n key: \"FNC1\",\n startState: \"C\",\n startAI: \"(\",\n endAI: \")\",\n dependentStates: [\"C\", \"B\"],\n applicationIdentifiers: {\n \"22\": { max: 29, type: \"alphanumeric\" },\n \"402\": { length: 17 },\n \"7004\": { max: 4, type: \"alphanumeric\" },\n \"242\": { max: 6, type: \"alphanumeric\" },\n \"8020\": { max: 25, type: \"alphanumeric\" },\n \"703\": { min: 3, max: 30, type: \"alphanumeric\" },\n \"8008\": { min: 8, max: 12, type: \"alphanumeric\" },\n \"253\": { min: 13, max: 17, type: \"alphanumeric\" },\n \"8003\": { min: 14, max: 30, type: \"alphanumeric\" },\n multiKey: [{\n ids: [\"15\", \"17\", \"8005\", \"8100\"],\n ranges: [\n [11, 13],\n [310, 316],\n [320, 336],\n [340, 369]\n ],\n type: { length: 6 }\n }, {\n ids: [\"240\", \"241\", \"250\", \"251\", \"400\", \"401\", \"403\", \"7002\", \"8004\", \"8007\", \"8110\"],\n ranges: [[90 - 99]],\n type: { max: 30, type: \"alphanumeric\" }\n }, {\n ids: [\"7001\"],\n ranges: [[410, 414]],\n type: { length: 13 }\n }, {\n ids: [\"10\", \"21\", \"254\", \"420\", \"8002\"],\n type: { max: 20, type: \"alphanumeric\" }\n }, {\n ids: [\"00\", \"8006\", \"8017\", \"8018\"],\n type: { length: 18 }\n }, {\n ids: [\"01\", \"02\", \"8001\"],\n type: { length: 14 }\n }, {\n ids: [\"422\"],\n ranges: [\n [424, 426]\n ],\n type: { length: 3 }\n }, {\n ids: [\"20\", \"8102\"],\n type: { length: 2 }\n }, {\n ids: [\"30\", \"37\"],\n type: { max: 8, type: \"alphanumeric\" }\n }, {\n ids: [\"390\", \"392\"],\n type: { max: 15, type: \"alphanumeric\" }\n }, {\n ids: [\"421\", \"423\"],\n type: { min: 3, max: 15, type: \"alphanumeric\" }\n }, {\n ids: [\"391\", \"393\"],\n type: { min: 3, max: 18, type: \"alphanumeric\" }\n }, {\n ids: [\"7003\", \"8101\"],\n type: { length: 10 }\n }]\n },\n START: 102\n });\n }\n\n\n addStart() {\n this.encoding[this.startState].addStart();\n }\n\n is() {\n return inArray(this.key, this.states);\n }\n\n pushState(encodingState) {\n let encoding = this.encoding,\n value = encodingState.value.replace(/\\s/g, \"\"),\n regexSeparators = new RegExp(\"[\" + this.startAI + this.endAI + \"]\", \"g\"),\n index = encodingState.index,\n subState = {\n state: this.startState\n },\n current,\n nextStart,\n separatorLength;\n\n encoding.addPattern(this.START);\n\n const trueCondition = true;\n\n while (trueCondition) {\n subState.index = 0;\n\n separatorLength = value.charAt(index) === this.startAI ? 2 : 0;\n current = separatorLength > 0 ? this.getBySeparator(value, index) : this.getByLength(value, index);\n\n if (current.ai.length) {\n nextStart = index + separatorLength + current.id.length + current.ai.length;\n } else {\n nextStart = value.indexOf(this.startAI, index + 1);\n\n if (nextStart < 0) {\n if (index + current.ai.max + current.id.length + separatorLength < value.length) {\n throw new Error(\"Separators are required after variable length identifiers\");\n }\n\n nextStart = value.length;\n }\n }\n\n subState.value = value.substring(index, nextStart).replace(regexSeparators, \"\");\n this.validate(current, subState.value);\n encoding.pushData(subState, this.dependentStates);\n\n if (nextStart >= value.length) {\n break;\n }\n\n index = nextStart;\n\n if (subState.state !== this.startState) {\n encoding[this.startState].move(subState);\n subState.state = this.startState;\n }\n\n if (!current.ai.length) {\n encoding.addPattern(this.START);\n }\n }\n\n encodingState.index = encodingState.value.length;\n }\n\n validate(current, value) {\n let code = value.substr(current.id.length),\n ai = current.ai;\n\n if (!ai.type && !numberRegex.test(code)) {\n throw new Error(\"Application identifier \" + current.id + \" is numeric only but contains non numeric character(s).\");\n }\n\n if (ai.type === \"alphanumeric\" && !alphanumericRegex.test(code)) {\n throw new Error(\"Application identifier \" + current.id + \" is alphanumeric only but contains non alphanumeric character(s).\");\n }\n\n if (ai.length && ai.length !== code.length) {\n throw new Error(\"Application identifier \" + current.id + \" must be \" + ai.length + \" characters long.\");\n }\n\n if (ai.min && ai.min > code.length) {\n throw new Error(\"Application identifier \" + current.id + \" must be at least \" + ai.min + \" characters long.\");\n }\n\n if (ai.max && ai.max < code.length) {\n throw new Error(\"Application identifier \" + current.id + \" must be at most \" + ai.max + \" characters long.\");\n }\n }\n\n getByLength(value, index) {\n let id;\n let applicationIdentifier;\n\n for (let i = 2; i <= 4; i++) {\n id = getSubstring(value, index, i);\n applicationIdentifier = this.getApplicationIdentifier(id) || this.getApplicationIdentifier(id.substring(0, id.length - 1));\n if (applicationIdentifier) {\n return {\n id: id,\n ai: applicationIdentifier\n };\n }\n }\n this.unsupportedAIError(id);\n }\n\n unsupportedAIError(id) {\n throw new Error(\"'\" + id + \"' is not a supported Application Identifier\");\n }\n\n getBySeparator(value, index) {\n let start = value.indexOf(this.startAI, index),\n end = value.indexOf(this.endAI, start),\n id = value.substring(start + 1, end),\n ai = this.getApplicationIdentifier(id) || this.getApplicationIdentifier(id.substr(id.length - 1));\n\n if (!ai) {\n this.unsupportedAIError(id);\n }\n\n return {\n ai: ai,\n id: id\n };\n }\n\n getApplicationIdentifier(id) {\n let applicationIdentifier = this.applicationIdentifiers,\n multiKey = applicationIdentifier.multiKey;\n\n if (applicationIdentifier[id]) {\n return applicationIdentifier[id];\n }\n\n for (let i = 0; i < multiKey.length; i++) {\n if (multiKey[i].ids && inArray(id, multiKey[i].ids)) {\n return multiKey[i].type;\n } else if (multiKey[i].ranges) {\n let ranges = multiKey[i].ranges;\n\n for (let j = 0; j < ranges.length; j++) {\n if (ranges[j][0] <= id && id <= ranges[j][1]) {\n return multiKey[i].type;\n }\n }\n }\n }\n }\n};\n\nexport class Code128Base extends Encoding {\n constructor(options) {\n super(options);\n this._initStates();\n }\n\n initProperties() {\n super.initProperties();\n\n extend(this, {\n characterMap: [\n 212222, 222122, 222221, 121223, 121322, 131222, 122213, 122312, 132212, 221213,\n 221312, 231212, 112232, 122132, 122231, 113222, 123122, 123221, 223211, 221132,\n 221231, 213212, 223112, 312131, 311222, 321122, 321221, 312212, 322112, 322211,\n 212123, 212321, 232121, 111323, 131123, 131321, 112313, 132113, 132311, 211313,\n 231113, 231311, 112133, 112331, 132131, 113123, 113321, 133121, 313121, 211331,\n 231131, 213113, 213311, 213131, 311123, 311321, 331121, 312113, 312311, 332111,\n 314111, 221411, 431111, 111224, 111422, 121124, 121421, 141122, 141221, 112214,\n 112412, 122114, 122411, 142112, 142211, 241211, 221114, 413111, 241112, 134111,\n 111242, 121142, 121241, 114212, 124112, 124211, 411212, 421112, 421211, 212141,\n 214121, 412121, 111143, 111341, 131141, 114113, 114311, 411113, 411311, 113141,\n 114131, 311141, 411131, 211412, 211214, 211232, 2331112\n ],\n STOP: 106\n });\n }\n\n _initStates() {\n for (let i = 0; i < this.states.length; i++) {\n this[this.states[i]] = new states128[this.states[i]](this, this.states);\n }\n }\n\n initValue(value, width, height) {\n this.pattern = [];\n this.value = value;\n this.width = width;\n this.height = height;\n this.checkSum = 0;\n this.totalUnits = 0;\n this.index = 0;\n this.position = 1;\n }\n\n addData() {\n let encodingState = {\n value: this.value,\n index: 0,\n state: \"\"\n };\n\n if (this.value.length === 0) {\n return;\n }\n\n encodingState.state =\n encodingState.previousState = this.getNextState(encodingState, this.states);\n\n this.addStart(encodingState);\n\n this.pushData(encodingState, this.states);\n\n this.addCheckSum();\n this.addStop();\n this.setBaseUnit();\n }\n\n pushData(encodingState, states) {\n const trueCondition = true;\n\n while (trueCondition) {\n this[encodingState.state].pushState(encodingState);\n\n if (encodingState.index >= encodingState.value.length) {\n break;\n }\n\n if (!encodingState.shifted) {\n encodingState.previousState = encodingState.state;\n encodingState.state = this.getNextState(encodingState, states);\n this[encodingState.state].move(encodingState);\n } else {\n let temp = encodingState.state;\n encodingState.state = encodingState.previousState;\n encodingState.previousState = temp;\n encodingState.shifted = false;\n }\n }\n }\n\n addStart(encodingState) {\n this[encodingState.state].addStart(encodingState);\n this.position = 1;\n }\n\n addCheckSum() {\n this.checksum = this.checkSum % 103;\n this.addPattern(this.checksum);\n }\n\n addStop() {\n this.addPattern(this.STOP);\n }\n\n setBaseUnit() {\n this.baseUnit = this.width / (this.totalUnits + this.quietZoneLength);\n }\n\n addPattern(code) {\n const pattern = this.characterMap[code].toString();\n let value;\n\n for (let i = 0; i < pattern.length; i++) {\n value = parseInt(pattern.charAt(i), 10);\n this.pattern.push(value);\n this.totalUnits += value;\n }\n this.checkSum += code * this.position++;\n }\n\n getNextState(encodingState, states) {\n for (let i = 0; i < states.length; i++) {\n if (this[states[i]].is(encodingState.value, encodingState.index)) {\n return states[i];\n }\n }\n\n this.invalidCharacterError(encodingState.value.charAt(encodingState.index));\n }\n}\n\nexport class Code128a extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128 A\",\n states: [\"A\"]\n });\n }\n}\n\nexport class Code128b extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128 B\",\n states: [\"B\"]\n });\n }\n}\n\nexport class Code128c extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128 C\",\n states: [\"C\"]\n });\n }\n}\n\nexport class Code128 extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code 128\",\n states: [\"C\", \"B\", \"A\", \"FNC4\"]\n });\n }\n}\n\nexport class CodeGS1128 extends Code128Base {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"Code GS1-128\",\n states: [\"FNC1\", \"C\", \"B\"]\n });\n }\n}\n\nfunction getSubstring(value, index, count) {\n return value.substring(index, index + count);\n}\n","import { Encoding } from './encoding';\n\nconst extend = Object.assign;\n\nexport class MsiBase extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n characterMap: [\n \"12121212\",\n \"12121221\",\n \"12122112\",\n \"12122121\",\n \"12211212\",\n \"12211221\",\n \"12212112\",\n \"12212121\",\n \"21121212\",\n \"21121221\"\n ],\n START: \"21\",\n STOP: \"121\",\n checkSumType: \"\",\n checkSums: checkSums\n });\n }\n\n initValue(value, width) {\n this.pattern = [];\n this.value = value;\n this.checkSumLength = 0;\n this.width = width;\n }\n\n setBaseUnit() {\n const startStopLength = 7;\n\n this.baseUnit = this.width /\n (12 * (this.value.length + this.checkSumLength) + this.quietZoneLength + startStopLength);\n }\n\n addData() {\n const value = this.value;\n\n this.addPattern(this.START);\n\n for (let i = 0; i < value.length; i++) {\n this.addCharacter(value.charAt(i));\n }\n\n if (this.options.addCheckSum) {\n this.addCheckSum();\n }\n\n this.addPattern(this.STOP);\n this.setBaseUnit();\n }\n\n addCharacter(character) {\n const pattern = this.characterMap[character];\n\n if (!pattern) {\n this.invalidCharacterError(character);\n }\n\n this.addPattern(pattern);\n }\n\n addPattern(pattern) {\n for (let i = 0; i < pattern.length; i++) {\n this.pattern.push(parseInt(pattern.charAt(i), 10));\n }\n }\n\n addCheckSum() {\n const checkSumFunction = this.checkSums[this.checkSumType];\n const checkValues = checkSumFunction.call(this.checkSums, this.value);\n\n this.checksum = checkValues.join(\"\");\n\n for (let i = 0; i < checkValues.length; i++) {\n this.checkSumLength++;\n this.addPattern(this.characterMap[checkValues[i]]);\n }\n }\n}\n\nexport class MsiMod10 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo10\",\n checkSumType: \"Modulo10\"\n });\n }\n}\n\nexport class MsiMod11 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo11\",\n checkSumType: \"Modulo11\"\n });\n }\n}\n\nexport class MsiMod1010 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo10 Modulo10\",\n checkSumType: \"Modulo10Modulo10\"\n });\n }\n}\n\nexport class MsiMod1110 extends MsiBase {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"MSI Modulo11 Modulo10\",\n checkSumType: \"Modulo11Modulo10\"\n });\n }\n}\n\nconst checkSums = {\n Modulo10(value) {\n let checkValues = [0, \"\"],\n odd = value.length % 2,\n idx,\n evenSum,\n oddSum;\n\n for (idx = 0; idx < value.length; idx++) {\n checkValues[(idx + odd) % 2] += parseInt(value.charAt(idx), 10);\n }\n\n oddSum = checkValues[0];\n evenSum = (checkValues[1] * 2).toString();\n\n for (idx = 0; idx < evenSum.length; idx++) {\n oddSum += parseInt(evenSum.charAt(idx), 10);\n }\n\n return [(10 - (oddSum % 10)) % 10];\n },\n Modulo11(value) {\n let weightedSum = 0,\n mod = 11,\n length = value.length,\n weight,\n checkValue;\n\n for (let i = 0; i < length; i++) {\n weight = ((length - i) % 6 || 6) + 1;\n weightedSum += weight * value.charAt(i);\n }\n\n checkValue = (mod - weightedSum % mod) % mod;\n\n if (checkValue !== 10) {\n return [checkValue];\n }\n\n return [1, 0];\n },\n Modulo11Modulo10(value) {\n let checkValues = this.Modulo11(value),\n mod11Value;\n mod11Value = value + checkValues[0];\n\n return checkValues.concat(this.Modulo10(mod11Value));\n },\n Modulo10Modulo10(value) {\n let checkValues = this.Modulo10(value),\n mod10Value;\n mod10Value = value + checkValues[0];\n\n return checkValues.concat(this.Modulo10(mod10Value));\n }\n};\n","import { Encoding } from './encoding';\n\nconst extend = Object.assign;\n\nexport class Ean13 extends Encoding {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"EAN 13\",\n keyTable: [\n '000000',\n '001011',\n '001101',\n '001110',\n '010011',\n '011001',\n '011100',\n '010101',\n '010110',\n '011010'\n ],\n characterMap: {\n digits: [\n [3, 2, 1, 1],\n [2, 2, 2, 1],\n [2, 1, 2, 2],\n [1, 4, 1, 1],\n [1, 1, 3, 2],\n [1, 2, 3, 1],\n [1, 1, 1, 4],\n [1, 3, 1, 2],\n [1, 2, 1, 3],\n [3, 1, 1, 2]\n ],\n start: [1, 1, 1],\n middle: [1, 1, 1, 1, 1]\n }\n });\n }\n\n initValue(value, width, height) {\n const valueAsString = String(value);\n\n if (valueAsString.length !== 12 || /\\D/.test(valueAsString)) {\n throw new Error('The value of the \"EAN13\" encoding should be 12 symbols');\n }\n\n this.pattern = [];\n this.options.height = height;\n this.baseUnit = width / (95 + this.quietZoneLength);\n this.value = valueAsString;\n this.checksum = this.calculateChecksum();\n this.leftKey = valueAsString[0];\n this.leftPart = valueAsString.substr(1, 6);\n this.rightPart = valueAsString.substr(7) + this.checksum;\n }\n\n addData() {\n this.addPieces(this.characterMap.start);\n this.addSide(this.leftPart, this.leftKey);\n this.addPieces(this.characterMap.middle);\n this.addSide(this.rightPart);\n this.addPieces(this.characterMap.start);\n }\n\n addSide(leftPart, key) {\n for (let i = 0; i < leftPart.length; i++) {\n if (key && parseInt(this.keyTable[key].charAt(i), 10)) {\n this.addPieces(Array.prototype.slice.call(this.characterMap.digits[leftPart.charAt(i)]).reverse(), true);\n } else {\n this.addPieces(this.characterMap.digits[leftPart.charAt(i)], true);\n }\n }\n }\n\n addPieces(arrToAdd, limitedHeight) {\n for (let i = 0; i < arrToAdd.length; i++) {\n if (limitedHeight) {\n this.pattern.push({\n y1: 0,\n y2: this.options.height * 0.95,\n width: arrToAdd[i]\n });\n } else {\n this.pattern.push(arrToAdd[i]);\n }\n }\n }\n\n calculateChecksum() {\n let odd = 0,\n even = 0,\n value = this.value.split(\"\").reverse().join(\"\");\n\n for (let i = 0; i < value.length; i++) {\n if (i % 2) {\n even += parseInt(value.charAt(i), 10);\n } else {\n odd += parseInt(value.charAt(i), 10);\n }\n }\n\n let checksum = (10 - ((3 * odd + even) % 10)) % 10;\n\n return checksum;\n }\n}\n","import { Ean13 } from './ean13';\n\nconst extend = Object.assign;\n\nexport class Ean8 extends Ean13 {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n name: \"EAN 8\"\n });\n }\n\n initValue(value, width, height) {\n if (value.length !== 7 || /\\D/.test(value)) {\n throw new Error('Invalid value provided');\n }\n\n this.value = value;\n this.options.height = height;\n this.checksum = this.calculateChecksum(this.value);\n this.leftPart = this.value.substr(0, 4);\n this.rightPart = this.value.substr(4) + this.checksum;\n this.pattern = [];\n this.baseUnit = width / (67 + this.quietZoneLength);\n }\n}\n","import { Code11 } from './code11';\nimport { Code39 } from './code39';\nimport { Code39Extended } from './code39-extended';\nimport { Code93 } from './code93';\nimport { Code93Extended } from './code93-extended';\nimport { Postnet } from './postnet';\n\nimport {\n Code128,\n Code128a,\n Code128b,\n Code128c,\n CodeGS1128\n} from './code128';\n\nimport {\n MsiMod10,\n MsiMod11,\n MsiMod1010,\n MsiMod1110\n} from './msi';\n\nimport { Ean8 } from './ean8';\nimport { Ean13 } from './ean13';\n\nexport const Encodings = {\n code11: Code11,\n\n code39: Code39,\n code39extended: Code39Extended,\n\n code93: Code93,\n code93extended: Code93Extended,\n\n code128: Code128,\n code128a: Code128a,\n code128b: Code128b,\n code128c: Code128c,\n [\"gs1-128\"]: CodeGS1128,\n\n msimod10: MsiMod10,\n msimod11: MsiMod11,\n msimod1010: MsiMod1010,\n msimod1110: MsiMod1110,\n\n postnet: Postnet,\n\n ean8: Ean8,\n ean13: Ean13\n};\n","import { Code93 } from './code93';\nimport { Code39ExtendedBase } from './code39-extended';\nimport deepExtend from '../../common/deep-extend';\n\nexport class Code93Extended extends Code93 {\n initProperties() {\n super.initProperties();\n\n deepExtend(this, Code39ExtendedBase, {\n name: \"Code 93 extended\",\n pushCheckSum: function() {\n const checkValues = this._getCheckValues();\n let value;\n\n this.checksum = checkValues.join(\"\");\n\n for (let i = 0; i < checkValues.length; i++) {\n value = checkValues[i];\n\n if (this.shiftValuesAsciiCodes[value]) {\n this.addExtended(this.shiftValuesAsciiCodes[value]);\n } else {\n const characterByValue = this._findCharacterByValue(value);\n this.addPattern(this.characterMap[characterByValue].pattern);\n }\n }\n }\n });\n }\n}\n","export function surfaceSize(element, surfaceType) {\n const display = element.style.display;\n if (surfaceType === 'canvas') {\n // The Canvas default size is different from SVG for\n // inline-block containers such as the Barcode and QR Code.\n //\n // Switch to display: block to get same dimensions.\n element.style.display = 'block';\n }\n\n const size = {\n width: element.clientWidth,\n height: element.clientHeight\n };\n\n element.style.display = display;\n\n return size;\n}\n","import {\n geometry as geom,\n drawing as draw\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n defined,\n addClass,\n setDefaultOptions,\n deepExtend,\n getSpacing,\n isObject,\n defaultErrorHandler\n} from '../common';\n\nimport {\n Box,\n TextBox\n} from '../core';\n\nimport { Encodings } from './encodings/main';\nimport { surfaceSize } from './surface-size';\n\nconst DEFAULT_BARCODE_WIDTH = 300;\nconst DEFAULT_BARCODE_HEIGHT = 100;\n\nclass Barcode extends Class {\n constructor(element, options, errorHandler = defaultErrorHandler) {\n super();\n\n this.options = deepExtend({}, this.options, options);\n this.element = element;\n this.onError = errorHandler;\n\n this._initElement();\n this._initSurface();\n this._setOptions(options);\n\n if (options && defined(options.value)) {\n this.redraw();\n }\n }\n\n destroy() {\n this._destroySurface();\n }\n\n _initElement() {\n addClass(this.element, \"k-barcode\");\n }\n\n _initSurface() {\n const { options, surface } = this;\n\n if (!surface || surface.options.type !== options.renderAs) {\n this._destroySurface();\n this._initSurfaceElement();\n this.surface = this._createSurface();\n }\n }\n\n _createSurface() {\n return draw.Surface.create(this.surfaceElement, {\n type: this.options.renderAs\n });\n }\n\n _destroySurface() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n this._destroySurfaceElement();\n }\n }\n\n _initSurfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.surfaceElement.style.position = 'relative';\n this.element.appendChild(this.surfaceElement);\n }\n }\n\n _destroySurfaceElement() {\n if (this.surfaceElement && this.surfaceElement.parentNode) {\n this.surfaceElement.parentNode.removeChild(this.surfaceElement);\n this.surfaceElement = null;\n }\n }\n\n setOptions(options) {\n this._setOptions(options);\n this._initSurface();\n this.redraw();\n }\n\n redraw() {\n let size = this._getSize();\n\n this.surface.clear();\n\n this.surface.setSize({\n width: size.width,\n height: size.height\n });\n\n this.createVisual();\n\n this.surface.draw(this.visual);\n }\n\n getSize() {\n return {\n width: this.element.offsetWidth,\n height: this.element.offsetHeight\n };\n }\n\n _resize() {\n this.redraw();\n }\n\n createVisual() {\n this.visual = this._render();\n }\n\n _render() {\n const options = this.options;\n const value = options.value;\n const textOptions = options.text;\n const textMargin = getSpacing(textOptions.margin);\n const size = this._getSize();\n const border = options.border || {};\n const encoding = this.encoding;\n const contentBox = new Box(0, 0, size.width, size.height).unpad(border.width).unpad(options.padding);\n let barHeight = contentBox.height();\n let encodedValue;\n let textToDisplay;\n let textHeight;\n const visual = new draw.Group();\n\n this.contentBox = contentBox;\n visual.append(this._getBackground(size));\n\n if (textOptions.visible) {\n textHeight = draw.util.measureText(value, { font: textOptions.font }).height;\n barHeight -= textHeight + textMargin.top + textMargin.bottom;\n }\n\n try {\n encodedValue = encoding.encode(value, contentBox.width(), barHeight);\n } catch (error) {\n this.onError(error);\n return visual;\n }\n\n if (textOptions.visible) {\n textToDisplay = value;\n\n if (options.checksum && defined(encoding.checksum)) {\n textToDisplay += \" \" + encoding.checksum;\n }\n\n visual.append(this._getText(textToDisplay));\n }\n\n this.barHeight = barHeight;\n this._bandsGroup = this._getBands(encodedValue.pattern, encodedValue.baseUnit);\n visual.append(this._bandsGroup);\n\n return visual;\n }\n\n exportVisual() {\n return this._render();\n }\n\n _getSize() {\n const element = this.element;\n const elementSize = surfaceSize(element, this.options.renderAs);\n const size = new geom.Size(DEFAULT_BARCODE_WIDTH, DEFAULT_BARCODE_HEIGHT);\n\n if (elementSize.width > 0) {\n size.width = elementSize.width;\n }\n\n if (elementSize.height > 0) {\n size.height = elementSize.height;\n }\n\n if (this.options.width) {\n size.width = this.options.width;\n }\n\n if (this.options.height) {\n size.height = this.options.height;\n }\n\n return size;\n }\n\n value(value) {\n if (!defined(value)) {\n return this.options.value;\n }\n\n this.options.value = String(value);\n this.redraw();\n }\n\n _getBands(pattern, baseUnit) {\n const contentBox = this.contentBox;\n let offsetX = contentBox.x1;\n let stepX;\n let patternItem;\n const group = new draw.Group();\n\n for (let i = 0; i < pattern.length; i++) {\n patternItem = isObject(pattern[i]) ? pattern[i] : {\n width: pattern[i],\n y1: 0,\n y2: this.barHeight\n };\n\n stepX = patternItem.width * baseUnit;\n\n if (i % 2) {\n const rect = geom.Rect.fromPoints(\n new geom.Point(offsetX, patternItem.y1 + contentBox.y1),\n new geom.Point(offsetX + stepX, patternItem.y2 + contentBox.y1)\n );\n\n const path = draw.Path.fromRect(rect, {\n fill: {\n color: this.options.color\n },\n stroke: null\n });\n\n group.append(path);\n }\n\n offsetX += stepX;\n }\n\n return group;\n }\n\n _getBackground(size) {\n const options = this.options;\n const border = options.border || {};\n const box = new Box(0, 0, size.width, size.height).unpad(border.width / 2);\n const path = draw.Path.fromRect(box.toRect(), {\n fill: {\n color: options.background\n },\n stroke: {\n color: border.width ? border.color : \"\",\n width: border.width,\n dashType: border.dashType\n }\n });\n\n return path;\n }\n\n _getText(value) {\n const textOptions = this.options.text;\n const text = this._textbox = new TextBox(value, {\n font: textOptions.font,\n color: textOptions.color,\n align: \"center\",\n vAlign: \"bottom\",\n margin: textOptions.margin\n });\n\n text.reflow(this.contentBox);\n text.renderVisual();\n\n return text.visual;\n }\n\n _setOptions(options) {\n this.type = (options.type || this.options.type).toLowerCase();\n\n if (this.type === \"upca\") {\n this.type = \"ean13\";\n options.value = '0' + options.value;\n }\n\n if (this.type === \"upce\") {\n this.type = \"ean8\";\n options.value = '0' + options.value;\n }\n\n if (!Encodings[this.type]) {\n throw new Error(`Encoding '${this.type}' is not supported.`);\n }\n\n this.encoding = new Encodings[this.type]();\n\n this.options = deepExtend({}, this.options, options);\n }\n}\n\nsetDefaultOptions(Barcode, {\n name: \"Barcode\",\n renderAs: \"svg\",\n value: \"\",\n type: \"code39\",\n checksum: false,\n width: 0,\n height: 0,\n color: \"black\",\n background: \"white\",\n text: {\n visible: true,\n font: \"16px Consolas, Monaco, Sans Mono, monospace, sans-serif\",\n color: \"black\",\n margin: {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }\n },\n border: {\n width: 0,\n dashType: \"solid\",\n color: \"black\"\n },\n padding: {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0\n }\n});\n\nexport default Barcode;\n","export const extend = Object.assign;\n\nexport function splitInto(str, chunkLength) {\n let result = [];\n let idx = 0;\n\n while (idx < str.length) {\n result.push(str.substring(idx, idx + chunkLength));\n idx += chunkLength;\n }\n\n return result;\n}\n\nexport function toBitsString(value, length) {\n let bitString = Number(value).toString(2);\n\n if (bitString.length < length) {\n bitString = new Array(length - bitString.length + 1).join(0) + bitString;\n }\n\n return bitString;\n}\n\nexport function toDecimal(value) {\n return parseInt(value, 2);\n}\n\n","import { Class } from '../../common';\n\nexport class FreeCellVisitor extends Class {\n constructor(matrix) {\n super();\n\n this.matrix = matrix;\n this.row = matrix.length - 1;\n this.column = matrix.length - 1;\n this.startColumn = this.column;\n this.dir = -1;\n this.c = 0;\n }\n\n move() {\n this.row += this.dir * this.c;\n this.c ^= 1;\n this.column = this.startColumn - this.c;\n }\n\n getNextCell() {\n while (this.matrix[this.row][this.column] !== undefined) {\n this.move();\n\n if (this.row < 0 || this.row >= this.matrix.length) {\n this.dir = -this.dir;\n this.startColumn -= this.startColumn !== 8 ? 2 : 3;\n this.column = this.startColumn;\n this.row = this.dir < 0 ? this.matrix.length - 1 : 0;\n }\n }\n\n return {\n row: this.row,\n column: this.column\n };\n }\n\n getNextRemainderCell() {\n this.move();\n\n if (this.matrix[this.row][this.column] === undefined) {\n return {\n row: this.row,\n column: this.column\n };\n }\n }\n}\n","import { Class } from '../../common';\n\nexport class EncodingResult extends Class {\n constructor(dataString, version) {\n super();\n\n this.dataString = dataString;\n this.version = version;\n }\n}\n","import { Class } from '../../../common';\nimport { EncodingResult } from '../encoding-result';\nimport {\n getModes,\n getVersion,\n getDataCodewordsCount,\n getDataString\n} from '../encoding';\n\nexport class IsoEncoder extends Class {\n getEncodingResult(inputString, errorCorrectionLevel) {\n let modes = getModes(inputString),\n dataCodewordsCount = getDataCodewordsCount(modes),\n version = getVersion(dataCodewordsCount, errorCorrectionLevel),\n dataString = getDataString(modes, version);\n\n return new EncodingResult(dataString, version);\n }\n}\n","import {\n toBitsString,\n toDecimal\n} from '../utils';\nimport { FreeCellVisitor } from './free-cell-visitor';\nimport { IsoEncoder } from './encoders/iso-encoder';\nimport { Utf8Encoder } from './encoders/utf8-encoder';\nimport { VersionsCodewordsInformation } from './version-codewords';\nimport { DataModeInstances } from './data-modes/data-mode-instances';\n\nlet terminator = \"0000\",\n NUMERIC = \"numeric\",\n ALPHA_NUMERIC = \"alphanumeric\",\n BYTE = \"byte\",\n powersOfTwo = { \"1\": 0 },\n powersOfTwoResult = { \"0\": 1 },\n irregularAlignmentPatternsStartDistance = {\n 15: 20, 16: 20, 18: 24, 19: 24, 22: 20,\n 24: 22, 26: 24, 28: 20, 30: 20, 31: 24,\n 32: 28, 33: 24, 36: 18, 37: 22, 39: 20, 40: 24\n },\n finderPattern = [1, 0, 1, 1, 1],\n alignmentPattern = [1, 0, 1],\n errorCorrectionPatterns = { L: \"01\", M: \"00\", Q: \"11\", H: \"10\" },\n formatMaskPattern = \"101010000010010\",\n formatGeneratorPolynomial = \"10100110111\",\n versionGeneratorPolynomial = \"1111100100101\",\n paddingCodewords = [\"11101100\", \"00010001\"],\n finderPatternValue = 93,\n /* eslint-disable arrow-body-style */\n /* eslint-disable no-unused-vars */\n maskPatternConditions = [\n (row, column) => { return (row + column) % 2 === 0; },\n (row, column) => { return row % 2 === 0; },\n (row, column) => { return column % 3 === 0; },\n (row, column) => { return (row + column) % 3 === 0; },\n (row, column) => { return (Math.floor(row / 2) + Math.floor(column / 3)) % 2 === 0; },\n (row, column) => { return ((row * column) % 2) + ((row * column) % 3) === 0; },\n (row, column) => { return (((row * column) % 2) + ((row * column) % 3)) % 2 === 0; },\n (row, column) => { return (((row + column) % 2) + ((row * column) % 3)) % 2 === 0; }\n ],\n /* eslint-enable no-unused-vars */\n /* eslint-enable arrow-body-style */\n numberRegex = /^\\d+/,\n alphaPattern = \"A-Z0-9 $%*+./:-\",\n alphaExclusiveSet = \"A-Z $%*+./:-\",\n alphaRegex = new RegExp(\"^[\" + alphaExclusiveSet + \"]+\"),\n alphaNumericRegex = new RegExp(\"^[\" + alphaPattern + \"]+\"),\n byteRegex = new RegExp(\"^[^\" + alphaPattern + \"]+\"),\n initMinNumericBeforeAlpha = 8,\n initMinNumericBeforeByte = 5,\n initMinAlphaBeforeByte = 8,\n minNumericBeforeAlpha = 17,\n minNumericBeforeByte = 9,\n minAlphaBeforeByte = 16;\n\nexport const generatorPolynomials = [[1, 0], [1, 25, 0]];\n\nexport function fillFunctionCell(matrices, bit, x, y) {\n for (let i = 0; i < matrices.length; i++) {\n matrices[i][x][y] = bit;\n }\n}\n\nexport function fillDataCell(matrices, bit, x, y) {\n for (let i = 0; i < maskPatternConditions.length; i++) {\n matrices[i][x][y] = maskPatternConditions[i](x, y) ? bit ^ 1 : parseInt(bit, 10);\n }\n}\n\nexport function fillData(matrices, blocks) {\n let cellVisitor = new FreeCellVisitor(matrices[0]),\n block,\n codewordIdx,\n cell;\n\n for (let blockIdx = 0; blockIdx < blocks.length; blockIdx++) {\n block = blocks[blockIdx];\n codewordIdx = 0;\n\n while (block.length > 0) {\n for (let i = 0; i < block.length; i++) {\n for (let j = 0; j < 8; j++) {\n cell = cellVisitor.getNextCell();\n fillDataCell(matrices, block[i][codewordIdx].charAt(j), cell.row, cell.column);\n }\n }\n\n codewordIdx++;\n\n while (block[0] && codewordIdx === block[0].length) {\n block.splice(0, 1);\n }\n }\n }\n\n while ((cell = cellVisitor.getNextRemainderCell())) {\n fillDataCell(matrices, 0, cell.row, cell.column);\n }\n}\n\nexport function padDataString(initialDataString, totalDataCodewords) {\n let dataBitsCount = totalDataCodewords * 8,\n terminatorIndex = 0,\n paddingCodewordIndex = 0;\n let dataString = initialDataString;\n\n while (dataString.length < dataBitsCount && terminatorIndex < terminator.length) {\n dataString += terminator.charAt(terminatorIndex++);\n }\n\n if (dataString.length % 8 !== 0) {\n dataString += new Array(9 - dataString.length % 8).join(\"0\");\n }\n\n while (dataString.length < dataBitsCount) {\n dataString += paddingCodewords[paddingCodewordIndex];\n paddingCodewordIndex ^= 1;\n }\n\n return dataString;\n}\n\nexport function generatePowersOfTwo() {\n let result;\n let power;\n\n for (power = 1; power < 255; power++) {\n result = powersOfTwoResult[power - 1] * 2;\n if (result > 255) {\n result = result ^ 285;\n }\n\n powersOfTwoResult[power] = result;\n powersOfTwo[result] = power;\n }\n\n result = (powersOfTwoResult[power - 1] * 2) ^ 285;\n powersOfTwoResult[power] = result;\n powersOfTwoResult[-1] = 0;\n}\n\nexport function xorPolynomials(x, y) {\n let result = [],\n idx = x.length - 2;\n\n for (let i = idx; i >= 0; i--) {\n result[i] = x[i] ^ y[i];\n }\n\n return result;\n}\n\nexport function multiplyPolynomials(x, y) {\n let result = [];\n\n for (let i = 0; i < x.length; i++) {\n for (let j = 0; j < y.length; j++) {\n if (result[i + j] === undefined) {\n result[i + j] = (x[i] + (y[j] >= 0 ? y[j] : 0)) % 255;\n } else {\n result[i + j] = powersOfTwo[powersOfTwoResult[result[i + j]] ^ powersOfTwoResult[(x[i] + y[j]) % 255]];\n }\n }\n }\n\n return result;\n}\n\nexport function generateGeneratorPolynomials() {\n let maxErrorCorrectionCodeWordsCount = 68;\n\n for (let idx = 2; idx <= maxErrorCorrectionCodeWordsCount; idx++) {\n let firstPolynomial = generatorPolynomials[idx - 1],\n secondPolynomial = [idx, 0];\n\n generatorPolynomials[idx] = multiplyPolynomials(firstPolynomial, secondPolynomial);\n }\n}\n\n//possibly generate on demand\ngeneratePowersOfTwo();\ngenerateGeneratorPolynomials();\n\nexport function multiplyByConstant(polynomial, power) {\n let result = [],\n idx = polynomial.length - 1;\n\n do {\n result[idx] = powersOfTwoResult[(polynomial[idx] + power) % 255];\n idx--;\n }\n while (polynomial[idx] !== undefined);\n\n return result;\n}\n\nexport function generateErrorCodewords(data, errorCodewordsCount) {\n let generator = generatorPolynomials[errorCodewordsCount - 1],\n result = new Array(errorCodewordsCount).concat(data),\n generatorPolynomial = new Array(result.length - generator.length).concat(generator),\n steps = data.length,\n errorCodewords = [],\n divisor,\n idx;\n\n for (idx = 0; idx < steps; idx++) {\n divisor = multiplyByConstant(generatorPolynomial, powersOfTwo[result[result.length - 1]]);\n generatorPolynomial.splice(0, 1);\n\n result = xorPolynomials(divisor, result);\n }\n\n for (idx = result.length - 1; idx >= 0; idx--) {\n errorCodewords[errorCodewordsCount - 1 - idx] = toBitsString(result[idx], 8);\n }\n\n return errorCodewords;\n}\n\nexport function getBlocks(dataStream, versionCodewordsInformation) {\n let codewordStart = 0,\n dataBlocks = [],\n errorBlocks = [],\n dataBlock,\n versionGroups = versionCodewordsInformation.groups,\n blockCodewordsCount,\n groupBlocksCount,\n messagePolynomial,\n codeword;\n\n for (let groupIdx = 0; groupIdx < versionGroups.length; groupIdx++) {\n groupBlocksCount = versionGroups[groupIdx][0];\n\n for (let blockIdx = 0; blockIdx < groupBlocksCount; blockIdx++) {\n blockCodewordsCount = versionGroups[groupIdx][1];\n dataBlock = [];\n messagePolynomial = [];\n\n for (let codewordIdx = 1; codewordIdx <= blockCodewordsCount; codewordIdx++) {\n codeword = dataStream.substring(codewordStart, codewordStart + 8);\n dataBlock.push(codeword);\n messagePolynomial[blockCodewordsCount - codewordIdx] = toDecimal(codeword);\n codewordStart += 8;\n }\n\n dataBlocks.push(dataBlock);\n errorBlocks.push(generateErrorCodewords(messagePolynomial,\n versionCodewordsInformation.errorCodewordsPerBlock));\n }\n }\n return [dataBlocks, errorBlocks];\n}\n\nexport function chooseMode(str, minNumericBeforeAlpha, minNumericBeforeByte, minAlphaBeforeByte, previousMode) {\n let numeric = numberRegex.exec(str),\n numericMatch = numeric ? numeric[0] : \"\",\n alpha = alphaRegex.exec(str),\n alphaMatch = alpha ? alpha[0] : \"\",\n alphaNumeric = alphaNumericRegex.exec(str),\n alphaNumericMatch = alphaNumeric ? alphaNumeric[0] : \"\",\n mode,\n modeString;\n\n if (numericMatch &&\n (numericMatch.length >= minNumericBeforeAlpha || str.length === numericMatch.length ||\n (numericMatch.length >= minNumericBeforeByte && !alphaNumericRegex.test(str.charAt(numericMatch.length))))) {\n mode = NUMERIC;\n modeString = numericMatch;\n } else if (alphaNumericMatch && (str.length === alphaNumericMatch.length ||\n alphaNumericMatch.length >= minAlphaBeforeByte || previousMode === ALPHA_NUMERIC)) {\n mode = ALPHA_NUMERIC;\n modeString = numericMatch || alphaMatch;\n } else {\n mode = BYTE;\n\n if (alphaNumericMatch) {\n modeString = alphaNumericMatch + byteRegex.exec(str.substring(alphaNumericMatch.length))[0];\n } else {\n modeString = byteRegex.exec(str)[0];\n }\n }\n\n return {\n mode: mode,\n modeString: modeString\n };\n}\n\nexport function getModes(inputString) {\n let modes = [],\n previousMode,\n idx = 0;\n let str = inputString;\n\n modes.push(chooseMode(str, initMinNumericBeforeAlpha, initMinNumericBeforeByte, initMinAlphaBeforeByte, previousMode));\n previousMode = modes[0].mode;\n str = str.substr(modes[0].modeString.length);\n\n while (str.length > 0) {\n let nextMode = chooseMode(str, minNumericBeforeAlpha, minNumericBeforeByte, minAlphaBeforeByte, previousMode);\n\n if (nextMode.mode !== previousMode) {\n previousMode = nextMode.mode;\n modes.push(nextMode);\n idx++;\n } else {\n modes[idx].modeString += nextMode.modeString;\n }\n\n str = str.substr(nextMode.modeString.length);\n }\n\n return modes;\n}\n\nexport function getDataCodewordsCount(modes) {\n let length = 0,\n mode;\n\n for (let i = 0; i < modes.length; i++) {\n mode = DataModeInstances[modes[i].mode];\n length += mode.getStringBitsLength(modes[i].modeString.length);\n }\n\n return Math.ceil(length / 8);\n}\n\nexport function getVersion(dataCodewordsCount, errorCorrectionLevel) {\n let x = 0,\n y = VersionsCodewordsInformation.length - 1,\n version = Math.floor(VersionsCodewordsInformation.length / 2);\n\n do {\n if (dataCodewordsCount < VersionsCodewordsInformation[version][errorCorrectionLevel].totalDataCodewords) {\n y = version;\n } else {\n x = version;\n }\n\n version = x + Math.floor((y - x) / 2);\n } while (y - x > 1);\n\n if (dataCodewordsCount <= VersionsCodewordsInformation[x][errorCorrectionLevel].totalDataCodewords) {\n return version + 1;\n }\n\n return y + 1;\n}\n\nexport function getDataString(modes, version) {\n let dataString = \"\",\n mode;\n\n for (let i = 0; i < modes.length; i++) {\n mode = DataModeInstances[modes[i].mode];\n dataString += mode.encode(modes[i].modeString, version);\n }\n\n return dataString;\n}\n\n//fix case all zeros\nexport function encodeFormatInformation(format) {\n let formatNumber = toDecimal(format),\n encodedString,\n result = \"\";\n\n if (formatNumber === 0) {\n return \"101010000010010\";\n }\n\n encodedString = encodeBCH(toDecimal(format), formatGeneratorPolynomial, 15);\n\n for (let i = 0; i < encodedString.length; i++) {\n result += encodedString.charAt(i) ^ formatMaskPattern.charAt(i);\n }\n\n return result;\n}\n\nexport function encodeBCH(value, generatorPolynomial, codeLength) {\n let generatorNumber = toDecimal(generatorPolynomial),\n polynomialLength = generatorPolynomial.length - 1,\n valueNumber = value << polynomialLength,\n length = codeLength - polynomialLength,\n valueString = toBitsString(value, length),\n result = dividePolynomials(valueNumber, generatorNumber);\n\n result = valueString + toBitsString(result, polynomialLength);\n\n return result;\n}\n\nexport function dividePolynomials(numberX, numberY) {\n let yLength = numberY.toString(2).length,\n xLength = numberX.toString(2).length;\n let x = numberX;\n\n do {\n x ^= numberY << xLength - yLength;\n xLength = x.toString(2).length;\n }\n while (xLength >= yLength);\n\n return x;\n}\n\nexport function getNumberAt(str, idx) {\n return parseInt(str.charAt(idx), 10);\n}\n\nexport function initMatrices(version) {\n let matrices = [],\n modules = 17 + 4 * version;\n\n for (let i = 0; i < maskPatternConditions.length; i++) {\n matrices[i] = new Array(modules);\n\n for (let j = 0; j < modules; j++) {\n matrices[i][j] = new Array(modules);\n }\n }\n\n return matrices;\n}\n\nexport function addFormatInformation(matrices, formatString) {\n let matrix = matrices[0],\n x,\n y,\n idx = 0,\n length = formatString.length;\n\n for (x = 0, y = 8; x <= 8; x++) {\n if (x !== 6) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n }\n\n for (x = 8, y = 7; y >= 0; y--) {\n if (y !== 6) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n }\n\n idx = 0;\n\n for (y = matrix.length - 1, x = 8; y >= matrix.length - 8; y--) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n\n fillFunctionCell(matrices, 1, matrix.length - 8, 8);\n\n for (x = matrix.length - 7, y = 8; x < matrix.length; x++) {\n fillFunctionCell(matrices, getNumberAt(formatString, length - 1 - idx++), x, y);\n }\n}\n\nexport function encodeVersionInformation(version) {\n return encodeBCH(version, versionGeneratorPolynomial, 18);\n}\n\nexport function addVersionInformation(matrices, dataString) {\n let matrix = matrices[0],\n modules = matrix.length,\n x1 = 0,\n y1 = modules - 11,\n x2 = modules - 11,\n y2 = 0,\n quotient,\n mod,\n value;\n\n for (let idx = 0; idx < dataString.length; idx++) {\n quotient = Math.floor(idx / 3);\n mod = idx % 3;\n value = getNumberAt(dataString, dataString.length - idx - 1);\n\n fillFunctionCell(matrices, value, x1 + quotient, y1 + mod);\n fillFunctionCell(matrices, value, x2 + mod, y2 + quotient);\n }\n}\n\nexport function addCentricPattern(matrices, pattern, x, y) {\n let size = pattern.length + 2,\n length = pattern.length + 1,\n value;\n\n for (let i = 0; i < pattern.length; i++) {\n for (let j = i; j < size - i; j++) {\n value = pattern[i];\n\n fillFunctionCell(matrices, value, x + j, y + i);\n fillFunctionCell(matrices, value, x + i, y + j);\n fillFunctionCell(matrices, value, x + length - j, y + length - i);\n fillFunctionCell(matrices, value, x + length - i, y + length - j);\n }\n }\n}\n\nexport function addFinderSeparator(matrices, direction, x, y) {\n let nextX = x,\n nextY = y,\n matrix = matrices[0];\n\n do {\n fillFunctionCell(matrices, 0, nextX, y);\n fillFunctionCell(matrices, 0, x, nextY);\n nextX += direction[0];\n nextY += direction[1];\n }\n while (nextX >= 0 && nextX < matrix.length);\n}\n\nexport function addFinderPatterns(matrices) {\n let modules = matrices[0].length;\n\n addCentricPattern(matrices, finderPattern, 0, 0);\n addFinderSeparator(matrices, [-1, -1], 7, 7);\n addCentricPattern(matrices, finderPattern, modules - 7, 0);\n addFinderSeparator(matrices, [1, -1], modules - 8, 7);\n addCentricPattern(matrices, finderPattern, 0, modules - 7);\n addFinderSeparator(matrices, [-1, 1], 7, modules - 8);\n}\n\nexport function addAlignmentPatterns(matrices, version) {\n if (version < 2) {\n return;\n }\n\n let matrix = matrices[0],\n modules = matrix.length,\n pointsCount = Math.floor(version / 7),\n points = [6],\n startDistance,\n distance,\n idx = 0;\n\n if ((startDistance = irregularAlignmentPatternsStartDistance[version])) {\n distance = (modules - 13 - startDistance) / pointsCount;\n } else {\n startDistance = distance = (modules - 13) / (pointsCount + 1);\n }\n\n points.push(points[idx++] + startDistance);\n\n while ((points[idx] + distance) < modules) {\n points.push(points[idx++] + distance);\n }\n\n for (let i = 0; i < points.length; i++) {\n for (let j = 0; j < points.length; j++) {\n if (matrix[points[i]][points[j]] === undefined) {\n addCentricPattern(matrices, alignmentPattern, points[i] - 2, points[j] - 2);\n }\n }\n }\n}\n\nexport function addTimingFunctions(matrices) {\n let row = 6,\n column = 6,\n value = 1,\n modules = matrices[0].length;\n\n for (let i = 8; i < modules - 8; i++) {\n fillFunctionCell(matrices, value, row, i);\n fillFunctionCell(matrices, value, i, column);\n value ^= 1;\n }\n}\n\nexport function scoreMaskMatrixes(matrices) {\n let scores = [],\n previousBits = [],\n darkModules = [],\n patterns = [],\n adjacentSameBits = [],\n matrix,\n i,\n row = 0,\n column = 1,\n modulesLength = matrices[0].length;\n\n for (i = 0; i < matrices.length; i++) {\n scores[i] = 0;\n darkModules[i] = 0;\n adjacentSameBits[i] = [0, 0];\n patterns[i] = [0, 0];\n previousBits[i] = [];\n }\n\n for (let rowIndex = 0; rowIndex < modulesLength; rowIndex++) {\n for (let columnIndex = 0; columnIndex < modulesLength; columnIndex++) {\n for (let matrixIndex = 0; matrixIndex < matrices.length; matrixIndex++) {\n matrix = matrices[matrixIndex];\n darkModules[matrixIndex] += parseInt(matrix[rowIndex][columnIndex], 10);\n\n if (previousBits[matrixIndex][row] === matrix[rowIndex][columnIndex] &&\n rowIndex + 1 < modulesLength &&\n columnIndex - 1 >= 0 &&\n matrix[rowIndex + 1][columnIndex] === previousBits[matrixIndex][row] &&\n matrix[rowIndex + 1][columnIndex - 1] === previousBits[matrixIndex][row]) {\n scores[matrixIndex] += 3;\n }\n\n scoreFinderPatternOccurance(matrixIndex, patterns, scores, row, matrix[rowIndex][columnIndex]);\n scoreFinderPatternOccurance(matrixIndex, patterns, scores, column, matrix[columnIndex][rowIndex]);\n scoreAdjacentSameBits(matrixIndex, scores, previousBits, matrix[rowIndex][columnIndex], adjacentSameBits, row);\n scoreAdjacentSameBits(matrixIndex, scores, previousBits, matrix[columnIndex][rowIndex], adjacentSameBits, column);\n }\n }\n }\n\n let total = modulesLength * modulesLength,\n minIdx,\n min = Number.MAX_VALUE;\n\n for (i = 0; i < scores.length; i++) {\n scores[i] += calculateDarkModulesRatioScore(darkModules[i], total);\n\n if (scores[i] < min) {\n min = scores[i];\n minIdx = i;\n }\n }\n\n return minIdx;\n}\n\nexport function scoreFinderPatternOccurance(idx, patterns, scores, rowColumn, bit) {\n patterns[idx][rowColumn] = ((patterns[idx][rowColumn] << 1) ^ bit) % 128;\n\n if (patterns[idx][rowColumn] === finderPatternValue) {\n scores[idx] += 40;\n }\n}\n\nexport function scoreAdjacentSameBits(idx, scores, previousBits, bit, adjacentBits, rowColumn) {\n if (previousBits[idx][rowColumn] === bit) {\n adjacentBits[idx][rowColumn]++;\n } else {\n previousBits[idx][rowColumn] = bit;\n\n if (adjacentBits[idx][rowColumn] >= 5) {\n scores[idx] += 3 + adjacentBits[idx][rowColumn] - 5;\n }\n\n adjacentBits[idx][rowColumn] = 1;\n }\n}\n\nexport function calculateDarkModulesRatioScore(darkModules, total) {\n let percent = Math.floor((darkModules / total) * 100),\n mod5 = percent % 5,\n previous = Math.abs(percent - mod5 - 50),\n next = Math.abs(percent + 5 - mod5 - 50),\n score = 10 * Math.min(previous / 5, next / 5);\n\n return score;\n}\n\nexport function createQRCodeDataEncoder(encoding) {\n if (encoding && encoding.toLowerCase().indexOf(\"utf_8\") >= 0) {\n return new Utf8Encoder();\n }\n\n return new IsoEncoder();\n}\n\nexport function encodeData(inputString, errorCorrectionLevel, encoding) {\n let encoder = createQRCodeDataEncoder(encoding),\n encodingResult = encoder.getEncodingResult(inputString, errorCorrectionLevel),\n version = encodingResult.version,\n versionInformation = VersionsCodewordsInformation[version - 1][errorCorrectionLevel],\n dataString = padDataString(encodingResult.dataString, versionInformation.totalDataCodewords),\n blocks = getBlocks(dataString, versionInformation),\n matrices = initMatrices(version);\n\n addFinderPatterns(matrices);\n addAlignmentPatterns(matrices, version);\n addTimingFunctions(matrices);\n\n if (version >= 7) {\n addVersionInformation(matrices, toBitsString(0, 18));\n }\n\n addFormatInformation(matrices, toBitsString(0, 15));\n fillData(matrices, blocks);\n\n let minIdx = scoreMaskMatrixes(matrices),\n optimalMatrix = matrices[minIdx];\n\n if (version >= 7) {\n addVersionInformation([optimalMatrix], encodeVersionInformation(version));\n }\n\n let formatString = errorCorrectionPatterns[errorCorrectionLevel] + toBitsString(minIdx, 3);\n addFormatInformation([optimalMatrix], encodeFormatInformation(formatString));\n\n return optimalMatrix;\n}\n","import { Class } from '../../../common';\nimport { extend } from '../../utils';\nimport {\n toBitsString\n} from '../../utils';\n\nexport class QRDataMode extends Class {\n constructor() {\n super();\n\n this.initProperties();\n }\n\n initProperties() {\n extend(this, {\n modeIndicator: \"\",\n bitsInCharacterCount: []\n });\n }\n\n getVersionIndex(version) {\n if (version < 10) {\n return 0;\n } else if (version > 26) {\n return 2;\n }\n\n return 1;\n }\n\n getBitsCharacterCount(version) {\n return this.bitsInCharacterCount[this.getVersionIndex(version || 40)];\n }\n\n getModeCountString(length, version) {\n return this.modeIndicator + toBitsString(length, this.getBitsCharacterCount(version));\n }\n\n encode() { }\n\n getStringBitsLength() { }\n\n getValue() { }\n}\n","import { NumericQRDataMode } from './numeric-data-mode';\nimport { AlphaNumericQRDataMode } from './alpha-numeric-data-mode';\nimport { ByteQRDataMode } from './byte-data-mode';\n\nconst NUMERIC = \"numeric\";\nconst ALPHA_NUMERIC = \"alphanumeric\";\nconst BYTE = \"byte\";\n\nexport let DataModeInstances = {\n [NUMERIC]: new NumericQRDataMode(),\n [ALPHA_NUMERIC]: new AlphaNumericQRDataMode(),\n [BYTE]: new ByteQRDataMode()\n};\n","import { QRDataMode } from './qr-data-mode';\nimport { extend } from '../../utils';\nimport {\n toBitsString,\n splitInto\n} from '../../utils';\n\nexport class NumericQRDataMode extends QRDataMode {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n bitsInCharacterCount: [10, 12, 14],\n modeIndicator: \"0001\"\n });\n }\n\n getValue(character) {\n return parseInt(character, 10);\n }\n\n encode(str, version) {\n let mode = this,\n parts = splitInto(str, 3),\n result = mode.getModeCountString(str.length, version);\n let i;\n\n for (i = 0; i < parts.length - 1; i++) {\n result += toBitsString(parts[i], 10);\n }\n\n return result + toBitsString(parts[i], 1 + 3 * parts[i].length);\n }\n\n getStringBitsLength(inputLength, version) {\n let mod3 = inputLength % 3;\n return 4 + this.getBitsCharacterCount(version) + 10 * Math.floor(inputLength / 3) + 3 * mod3 + (mod3 === 0 ? 0 : 1);\n }\n}\n","import { QRDataMode } from './qr-data-mode';\nimport { extend } from '../../utils';\nimport {\n toBitsString,\n splitInto\n} from '../../utils';\n\nexport class AlphaNumericQRDataMode extends QRDataMode {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n characters: {\n \"0\": 0,\n \"1\": 1,\n \"2\": 2,\n \"3\": 3,\n \"4\": 4,\n \"5\": 5,\n \"6\": 6,\n \"7\": 7,\n \"8\": 8,\n \"9\": 9,\n \"A\": 10,\n \"B\": 11,\n \"C\": 12,\n \"D\": 13,\n \"E\": 14,\n \"F\": 15,\n \"G\": 16,\n \"H\": 17,\n \"I\": 18,\n \"J\": 19,\n \"K\": 20,\n \"L\": 21,\n \"M\": 22,\n \"N\": 23,\n \"O\": 24,\n \"P\": 25,\n \"Q\": 26,\n \"R\": 27,\n \"S\": 28,\n \"T\": 29,\n \"U\": 30,\n \"V\": 31,\n \"W\": 32,\n \"X\": 33,\n \"Y\": 34,\n \"Z\": 35,\n \" \": 36,\n \"$\": 37,\n \"%\": 38,\n \"*\": 39,\n \"+\": 40,\n \"-\": 41,\n \".\": 42,\n \"/\": 43,\n \":\": 44\n },\n bitsInCharacterCount: [9, 11, 13],\n modeIndicator: \"0010\"\n });\n }\n\n getValue(character) {\n return this.characters[character];\n }\n\n encode(str, version) {\n let\n parts = splitInto(str, 2),\n result = this.getModeCountString(str.length, version),\n value;\n let i;\n\n for (i = 0; i < parts.length - 1; i++) {\n value = 45 * this.getValue(parts[i].charAt(0)) + this.getValue(parts[i].charAt(1));\n result += toBitsString(value, 11);\n }\n\n value = parts[i].length === 2 ?\n 45 * this.getValue(parts[i].charAt(0)) + this.getValue(parts[i].charAt(1)) :\n this.getValue(parts[i].charAt(0));\n\n return result + toBitsString(value, 1 + 5 * parts[i].length);\n }\n\n getStringBitsLength(inputLength, version) {\n return 4 + this.getBitsCharacterCount(version) + 11 * Math.floor(inputLength / 2) + 6 * (inputLength % 2);\n }\n}\n","import { QRDataMode } from './qr-data-mode';\nimport { extend } from '../../utils';\nimport {\n toBitsString\n} from '../../utils';\n\nexport class ByteQRDataMode extends QRDataMode {\n initProperties() {\n super.initProperties();\n\n extend(this, {\n bitsInCharacterCount: [8, 16, 16],\n modeIndicator: \"0100\"\n });\n }\n\n getValue(character) {\n let code = character.charCodeAt(0);\n\n if (code <= 127 || (160 <= code && code <= 255)) {\n return code;\n }\n\n throw new Error(`Unsupported character in QR Code: \"${character}\".`);\n }\n\n encode(str, version) {\n let mode = this,\n result = mode.getModeCountString(str.length, version);\n\n for (let i = 0; i < str.length; i++) {\n result += toBitsString(mode.getValue(str.charAt(i)), 8);\n }\n\n return result;\n }\n\n getStringBitsLength(inputLength, version) {\n return 4 + this.getBitsCharacterCount(version) + 8 * inputLength;\n }\n}\n","import { Class } from '../../../common';\nimport { EncodingResult } from '../encoding-result';\nimport { DataModeInstances } from '../data-modes/data-mode-instances';\nimport { extend } from '../../utils';\nimport { toBitsString } from '../../utils';\nimport { getVersion } from '../encoding';\n\nconst BYTE = \"byte\";\n\nexport class Utf8Encoder extends Class {\n constructor() {\n super();\n\n this.initProperties();\n\n this.mode = DataModeInstances[this.encodingMode];\n }\n\n initProperties() {\n extend(this, {\n encodingMode: BYTE,\n utfBOM: \"111011111011101110111111\",\n initialModeCountStringLength: 20,\n ranges: [128, 2048, 65536, 2097152, 67108864]\n });\n }\n\n getEncodingResult(inputString, errorCorrectionLevel) {\n let data = this.encode(inputString),\n dataCodewordsCount = this.getDataCodewordsCount(data),\n version = getVersion(dataCodewordsCount, errorCorrectionLevel),\n dataString = this.mode.getModeCountString(data.length / 8, version) + data;\n\n return new EncodingResult(dataString, version);\n }\n\n getDataCodewordsCount(data) {\n let dataLength = data.length,\n dataCodewordsCount = Math.ceil((this.initialModeCountStringLength + dataLength) / 8);\n\n return dataCodewordsCount;\n }\n\n encode(str) {\n let result = this.utfBOM;\n\n for (let i = 0; i < str.length; i++) {\n result += this.encodeCharacter(str.charCodeAt(i));\n }\n\n return result;\n }\n\n encodeCharacter(code) {\n let bytesCount = this.getBytesCount(code),\n bc = bytesCount - 1,\n result = \"\";\n\n if (bytesCount === 1) {\n result = toBitsString(code, 8);\n } else {\n let significantOnes = 8 - bytesCount;\n\n for (let i = 0; i < bc; i++) {\n result = toBitsString(code >> (i * 6) & 63 | 128, 8) + result;\n }\n\n result = ((code >> bc * 6) | ((255 >> significantOnes) << significantOnes)).toString(2) + result;\n }\n\n return result;\n }\n\n getBytesCount(code) {\n let ranges = this.ranges;\n\n for (let i = 0; i < ranges.length; i++) {\n if (code < ranges[i]) {\n return i + 1;\n }\n }\n }\n}\n","export const VersionsCodewordsInformation = [{\n L: {\n groups: [\n [1, 19]\n ],\n totalDataCodewords: 19,\n errorCodewordsPerBlock: 7\n },\n M: {\n groups: [\n [1, 16]\n ],\n totalDataCodewords: 16,\n errorCodewordsPerBlock: 10\n },\n Q: {\n groups: [\n [1, 13]\n ],\n totalDataCodewords: 13,\n errorCodewordsPerBlock: 13\n },\n H: {\n groups: [\n [1, 9]\n ],\n totalDataCodewords: 9,\n errorCodewordsPerBlock: 17\n }\n}, {\n L: {\n groups: [\n [1, 34]\n ],\n totalDataCodewords: 34,\n errorCodewordsPerBlock: 10\n },\n M: {\n groups: [\n [1, 28]\n ],\n totalDataCodewords: 28,\n errorCodewordsPerBlock: 16\n },\n Q: {\n groups: [\n [1, 22]\n ],\n totalDataCodewords: 22,\n errorCodewordsPerBlock: 22\n },\n H: {\n groups: [\n [1, 16]\n ],\n totalDataCodewords: 16,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [1, 55]\n ],\n totalDataCodewords: 55,\n errorCodewordsPerBlock: 15\n },\n M: {\n groups: [\n [1, 44]\n ],\n totalDataCodewords: 44,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [2, 17]\n ],\n totalDataCodewords: 34,\n errorCodewordsPerBlock: 18\n },\n H: {\n groups: [\n [2, 13]\n ],\n totalDataCodewords: 26,\n errorCodewordsPerBlock: 22\n }\n}, {\n L: {\n groups: [\n [1, 80]\n ],\n totalDataCodewords: 80,\n errorCodewordsPerBlock: 20\n },\n M: {\n groups: [\n [2, 32]\n ],\n totalDataCodewords: 64,\n errorCodewordsPerBlock: 18\n },\n Q: {\n groups: [\n [2, 24]\n ],\n totalDataCodewords: 48,\n errorCodewordsPerBlock: 26\n },\n H: {\n groups: [\n [4, 9]\n ],\n totalDataCodewords: 36,\n errorCodewordsPerBlock: 16\n }\n}, {\n L: {\n groups: [\n [1, 108]\n ],\n totalDataCodewords: 108,\n errorCodewordsPerBlock: 26\n },\n M: {\n groups: [\n [2, 43]\n ],\n totalDataCodewords: 86,\n errorCodewordsPerBlock: 24\n },\n Q: {\n groups: [\n [2, 15],\n [2, 16]\n ],\n totalDataCodewords: 62,\n errorCodewordsPerBlock: 18\n },\n H: {\n groups: [\n [2, 11],\n [2, 12]\n ],\n totalDataCodewords: 46,\n errorCodewordsPerBlock: 22\n }\n}, {\n L: {\n groups: [\n [2, 68]\n ],\n totalDataCodewords: 136,\n errorCodewordsPerBlock: 18\n },\n M: {\n groups: [\n [4, 27]\n ],\n totalDataCodewords: 108,\n errorCodewordsPerBlock: 16\n },\n Q: {\n groups: [\n [4, 19]\n ],\n totalDataCodewords: 76,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [4, 15]\n ],\n totalDataCodewords: 60,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [2, 78]\n ],\n totalDataCodewords: 156,\n errorCodewordsPerBlock: 20\n },\n M: {\n groups: [\n [4, 31]\n ],\n totalDataCodewords: 124,\n errorCodewordsPerBlock: 18\n },\n Q: {\n groups: [\n [2, 14],\n [4, 15]\n ],\n totalDataCodewords: 88,\n errorCodewordsPerBlock: 18\n },\n H: {\n groups: [\n [4, 13],\n [1, 14]\n ],\n totalDataCodewords: 66,\n errorCodewordsPerBlock: 26\n }\n}, {\n L: {\n groups: [\n [2, 97]\n ],\n totalDataCodewords: 194,\n errorCodewordsPerBlock: 24\n },\n M: {\n groups: [\n [2, 38],\n [2, 39]\n ],\n totalDataCodewords: 154,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [4, 18],\n [2, 19]\n ],\n totalDataCodewords: 110,\n errorCodewordsPerBlock: 22\n },\n H: {\n groups: [\n [4, 14],\n [2, 15]\n ],\n totalDataCodewords: 86,\n errorCodewordsPerBlock: 26\n }\n}, {\n L: {\n groups: [\n [2, 116]\n ],\n totalDataCodewords: 232,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [3, 36],\n [2, 37]\n ],\n totalDataCodewords: 182,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [4, 16],\n [4, 17]\n ],\n totalDataCodewords: 132,\n errorCodewordsPerBlock: 20\n },\n H: {\n groups: [\n [4, 12],\n [4, 13]\n ],\n totalDataCodewords: 100,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [2, 68],\n [2, 69]\n ],\n totalDataCodewords: 274,\n errorCodewordsPerBlock: 18\n },\n M: {\n groups: [\n [4, 43],\n [1, 44]\n ],\n totalDataCodewords: 216,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [6, 19],\n [2, 20]\n ],\n totalDataCodewords: 154,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [6, 15],\n [2, 16]\n ],\n totalDataCodewords: 122,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [4, 81]\n ],\n totalDataCodewords: 324,\n errorCodewordsPerBlock: 20\n },\n M: {\n groups: [\n [1, 50],\n [4, 51]\n ],\n totalDataCodewords: 254,\n errorCodewordsPerBlock: 30\n },\n Q: {\n groups: [\n [4, 22],\n [4, 23]\n ],\n totalDataCodewords: 180,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [3, 12],\n [8, 13]\n ],\n totalDataCodewords: 140,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [2, 92],\n [2, 93]\n ],\n totalDataCodewords: 370,\n errorCodewordsPerBlock: 24\n },\n M: {\n groups: [\n [6, 36],\n [2, 37]\n ],\n totalDataCodewords: 290,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [4, 20],\n [6, 21]\n ],\n totalDataCodewords: 206,\n errorCodewordsPerBlock: 26\n },\n H: {\n groups: [\n [7, 14],\n [4, 15]\n ],\n totalDataCodewords: 158,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [4, 107]\n ],\n totalDataCodewords: 428,\n errorCodewordsPerBlock: 26\n },\n M: {\n groups: [\n [8, 37],\n [1, 38]\n ],\n totalDataCodewords: 334,\n errorCodewordsPerBlock: 22\n },\n Q: {\n groups: [\n [8, 20],\n [4, 21]\n ],\n totalDataCodewords: 244,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [12, 11],\n [4, 12]\n ],\n totalDataCodewords: 180,\n errorCodewordsPerBlock: 22\n }\n}, {\n L: {\n groups: [\n [3, 115],\n [1, 116]\n ],\n totalDataCodewords: 461,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [4, 40],\n [5, 41]\n ],\n totalDataCodewords: 365,\n errorCodewordsPerBlock: 24\n },\n Q: {\n groups: [\n [11, 16],\n [5, 17]\n ],\n totalDataCodewords: 261,\n errorCodewordsPerBlock: 20\n },\n H: {\n groups: [\n [11, 12],\n [5, 13]\n ],\n totalDataCodewords: 197,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [5, 87],\n [1, 88]\n ],\n totalDataCodewords: 523,\n errorCodewordsPerBlock: 22\n },\n M: {\n groups: [\n [5, 41],\n [5, 42]\n ],\n totalDataCodewords: 415,\n errorCodewordsPerBlock: 24\n },\n Q: {\n groups: [\n [5, 24],\n [7, 25]\n ],\n totalDataCodewords: 295,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [11, 12],\n [7, 13]\n ],\n totalDataCodewords: 223,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [5, 98],\n [1, 99]\n ],\n totalDataCodewords: 589,\n errorCodewordsPerBlock: 24\n },\n M: {\n groups: [\n [7, 45],\n [3, 46]\n ],\n totalDataCodewords: 453,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [15, 19],\n [2, 20]\n ],\n totalDataCodewords: 325,\n errorCodewordsPerBlock: 24\n },\n H: {\n groups: [\n [3, 15],\n [13, 16]\n ],\n totalDataCodewords: 253,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [1, 107],\n [5, 108]\n ],\n totalDataCodewords: 647,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [10, 46],\n [1, 47]\n ],\n totalDataCodewords: 507,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [1, 22],\n [15, 23]\n ],\n totalDataCodewords: 367,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [2, 14],\n [17, 15]\n ],\n totalDataCodewords: 283,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [5, 120],\n [1, 121]\n ],\n totalDataCodewords: 721,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [9, 43],\n [4, 44]\n ],\n totalDataCodewords: 563,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [17, 22],\n [1, 23]\n ],\n totalDataCodewords: 397,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [2, 14],\n [19, 15]\n ],\n totalDataCodewords: 313,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [3, 113],\n [4, 114]\n ],\n totalDataCodewords: 795,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [3, 44],\n [11, 45]\n ],\n totalDataCodewords: 627,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [17, 21],\n [4, 22]\n ],\n totalDataCodewords: 445,\n errorCodewordsPerBlock: 26\n },\n H: {\n groups: [\n [9, 13],\n [16, 14]\n ],\n totalDataCodewords: 341,\n errorCodewordsPerBlock: 26\n }\n}, {\n L: {\n groups: [\n [3, 107],\n [5, 108]\n ],\n totalDataCodewords: 861,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [3, 41],\n [13, 42]\n ],\n totalDataCodewords: 669,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [15, 24],\n [5, 25]\n ],\n totalDataCodewords: 485,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [15, 15],\n [10, 16]\n ],\n totalDataCodewords: 385,\n errorCodewordsPerBlock: 28\n }\n}, {\n L: {\n groups: [\n [4, 116],\n [4, 117]\n ],\n totalDataCodewords: 932,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [17, 42]\n ],\n totalDataCodewords: 714,\n errorCodewordsPerBlock: 26\n },\n Q: {\n groups: [\n [17, 22],\n [6, 23]\n ],\n totalDataCodewords: 512,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [19, 16],\n [6, 17]\n ],\n totalDataCodewords: 406,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [2, 111],\n [7, 112]\n ],\n totalDataCodewords: 1006,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [17, 46]\n ],\n totalDataCodewords: 782,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [7, 24],\n [16, 25]\n ],\n totalDataCodewords: 568,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [34, 13]\n ],\n totalDataCodewords: 442,\n errorCodewordsPerBlock: 24\n }\n}, {\n L: {\n groups: [\n [4, 121],\n [5, 122]\n ],\n totalDataCodewords: 1094,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [4, 47],\n [14, 48]\n ],\n totalDataCodewords: 860,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [11, 24],\n [14, 25]\n ],\n totalDataCodewords: 614,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [16, 15],\n [14, 16]\n ],\n totalDataCodewords: 464,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [6, 117],\n [4, 118]\n ],\n totalDataCodewords: 1174,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [6, 45],\n [14, 46]\n ],\n totalDataCodewords: 914,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [11, 24],\n [16, 25]\n ],\n totalDataCodewords: 664,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [30, 16],\n [2, 17]\n ],\n totalDataCodewords: 514,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [8, 106],\n [4, 107]\n ],\n totalDataCodewords: 1276,\n errorCodewordsPerBlock: 26\n },\n M: {\n groups: [\n [8, 47],\n [13, 48]\n ],\n totalDataCodewords: 1000,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [7, 24],\n [22, 25]\n ],\n totalDataCodewords: 718,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [22, 15],\n [13, 16]\n ],\n totalDataCodewords: 538,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [10, 114],\n [2, 115]\n ],\n totalDataCodewords: 1370,\n errorCodewordsPerBlock: 28\n },\n M: {\n groups: [\n [19, 46],\n [4, 47]\n ],\n totalDataCodewords: 1062,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [28, 22],\n [6, 23]\n ],\n totalDataCodewords: 754,\n errorCodewordsPerBlock: 28\n },\n H: {\n groups: [\n [33, 16],\n [4, 17]\n ],\n totalDataCodewords: 596,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [8, 122],\n [4, 123]\n ],\n totalDataCodewords: 1468,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [22, 45],\n [3, 46]\n ],\n totalDataCodewords: 1128,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [8, 23],\n [26, 24]\n ],\n totalDataCodewords: 808,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [12, 15],\n [28, 16]\n ],\n totalDataCodewords: 628,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [3, 117],\n [10, 118]\n ],\n totalDataCodewords: 1531,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [3, 45],\n [23, 46]\n ],\n totalDataCodewords: 1193,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [4, 24],\n [31, 25]\n ],\n totalDataCodewords: 871,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [11, 15],\n [31, 16]\n ],\n totalDataCodewords: 661,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [7, 116],\n [7, 117]\n ],\n totalDataCodewords: 1631,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [21, 45],\n [7, 46]\n ],\n totalDataCodewords: 1267,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [1, 23],\n [37, 24]\n ],\n totalDataCodewords: 911,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [19, 15],\n [26, 16]\n ],\n totalDataCodewords: 701,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [5, 115],\n [10, 116]\n ],\n totalDataCodewords: 1735,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [19, 47],\n [10, 48]\n ],\n totalDataCodewords: 1373,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [15, 24],\n [25, 25]\n ],\n totalDataCodewords: 985,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [23, 15],\n [25, 16]\n ],\n totalDataCodewords: 745,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [13, 115],\n [3, 116]\n ],\n totalDataCodewords: 1843,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [2, 46],\n [29, 47]\n ],\n totalDataCodewords: 1455,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [42, 24],\n [1, 25]\n ],\n totalDataCodewords: 1033,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [23, 15],\n [28, 16]\n ],\n totalDataCodewords: 793,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [17, 115]\n ],\n totalDataCodewords: 1955,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [10, 46],\n [23, 47]\n ],\n totalDataCodewords: 1541,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [10, 24],\n [35, 25]\n ],\n totalDataCodewords: 1115,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [19, 15],\n [35, 16]\n ],\n totalDataCodewords: 845,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [17, 115],\n [1, 116]\n ],\n totalDataCodewords: 2071,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [14, 46],\n [21, 47]\n ],\n totalDataCodewords: 1631,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [29, 24],\n [19, 25]\n ],\n totalDataCodewords: 1171,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [11, 15],\n [46, 16]\n ],\n totalDataCodewords: 901,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [13, 115],\n [6, 116]\n ],\n totalDataCodewords: 2191,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [14, 46],\n [23, 47]\n ],\n totalDataCodewords: 1725,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [44, 24],\n [7, 25]\n ],\n totalDataCodewords: 1231,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [59, 16],\n [1, 17]\n ],\n totalDataCodewords: 961,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [12, 121],\n [7, 122]\n ],\n totalDataCodewords: 2306,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [12, 47],\n [26, 48]\n ],\n totalDataCodewords: 1812,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [39, 24],\n [14, 25]\n ],\n totalDataCodewords: 1286,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [22, 15],\n [41, 16]\n ],\n totalDataCodewords: 986,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [6, 121],\n [14, 122]\n ],\n totalDataCodewords: 2434,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [6, 47],\n [34, 48]\n ],\n totalDataCodewords: 1914,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [46, 24],\n [10, 25]\n ],\n totalDataCodewords: 1354,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [2, 15],\n [64, 16]\n ],\n totalDataCodewords: 1054,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [17, 122],\n [4, 123]\n ],\n totalDataCodewords: 2566,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [29, 46],\n [14, 47]\n ],\n totalDataCodewords: 1992,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [49, 24],\n [10, 25]\n ],\n totalDataCodewords: 1426,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [24, 15],\n [46, 16]\n ],\n totalDataCodewords: 1096,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [4, 122],\n [18, 123]\n ],\n totalDataCodewords: 2702,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [13, 46],\n [32, 47]\n ],\n totalDataCodewords: 2102,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [48, 24],\n [14, 25]\n ],\n totalDataCodewords: 1502,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [42, 15],\n [32, 16]\n ],\n totalDataCodewords: 1142,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [20, 117],\n [4, 118]\n ],\n totalDataCodewords: 2812,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [40, 47],\n [7, 48]\n ],\n totalDataCodewords: 2216,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [43, 24],\n [22, 25]\n ],\n totalDataCodewords: 1582,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [10, 15],\n [67, 16]\n ],\n totalDataCodewords: 1222,\n errorCodewordsPerBlock: 30\n }\n}, {\n L: {\n groups: [\n [19, 118],\n [6, 119]\n ],\n totalDataCodewords: 2956,\n errorCodewordsPerBlock: 30\n },\n M: {\n groups: [\n [18, 47],\n [31, 48]\n ],\n totalDataCodewords: 2334,\n errorCodewordsPerBlock: 28\n },\n Q: {\n groups: [\n [34, 24],\n [34, 25]\n ],\n totalDataCodewords: 1666,\n errorCodewordsPerBlock: 30\n },\n H: {\n groups: [\n [20, 15],\n [61, 16]\n ],\n totalDataCodewords: 1276,\n errorCodewordsPerBlock: 30\n }\n}];\n","import {\n geometry as geom,\n drawing as draw\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n addClass,\n setDefaultOptions,\n deepExtend,\n defaultErrorHandler\n} from '../common';\n\nimport { Box } from '../core';\nimport { encodeData } from './encodings/encoding';\nimport { extend } from './utils';\n\nimport { surfaceSize } from '../barcode/surface-size';\n\nconst round = Math.round;\nconst crossPattern = [[0, 1], [1, 1], [1, 2], [2, 2], [2, 1], [3, 1], [3, 0], [2, 0], [2, -1], [1, -1], [1, 0]];\nconst squarePattern = [[0, 1], [1, 1], [1, 0]];\n\nconst QRCodeDefaults = {\n DEFAULT_SIZE: 200,\n QUIET_ZONE_LENGTH: 4,\n DEFAULT_ERROR_CORRECTION_LEVEL: \"L\",\n DEFAULT_BACKGROUND: \"#fff\",\n DEFAULT_DARK_MODULE_COLOR: \"#000\",\n MIN_BASE_UNIT_SIZE: 1,\n DEFAULT_LOGO_SIZE: 7\n};\n\nclass QRCode extends Class {\n constructor(element, options, errorHandler = defaultErrorHandler) {\n super();\n\n this.options = deepExtend({}, this.options, options);\n this.element = element;\n this.wrapper = this.element;\n this.onError = errorHandler;\n\n this._initElement();\n this._initSurface();\n\n this.setOptions(options);\n }\n\n destroy() {\n this._destroySurface();\n }\n\n _initElement() {\n addClass(this.element, \"k-qrcode\");\n }\n\n _initSurface() {\n const { options, surface } = this;\n\n if (!surface || surface.options.type !== options.renderAs) {\n this._destroySurface();\n this._initSurfaceElement();\n this.surface = this._createSurface();\n }\n }\n\n _createSurface() {\n return draw.Surface.create(this.surfaceElement, {\n type: this.options.renderAs\n });\n }\n\n _destroySurface() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n this._destroySurfaceElement();\n }\n }\n\n _initSurfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.surfaceElement.style.position = \"relative\";\n this.element.appendChild(this.surfaceElement);\n }\n }\n\n _destroySurfaceElement() {\n if (this.surfaceElement && this.surfaceElement.parentNode) {\n this.surfaceElement.parentNode.removeChild(this.surfaceElement);\n this.surfaceElement = null;\n }\n }\n\n redraw() {\n let size = this._getSize();\n\n this.surface.clear();\n\n this.surface.setSize({\n width: size,\n height: size\n });\n\n this.createVisual();\n\n this.surface.draw(this.visual);\n }\n\n getSize() {\n const element = this.element;\n const elementWidth = element.clientWidth;\n const elementHeight = element.clientHeight;\n const size = { width: 0, height: 0 };\n\n if (elementWidth > 0) {\n size.width = elementWidth;\n }\n\n if (elementHeight) {\n size.height = elementHeight;\n }\n\n return size;\n }\n\n _resize() {\n this.redraw();\n }\n\n createVisual() {\n this.visual = this._render();\n }\n\n exportVisual() {\n return this._render();\n }\n\n _render() {\n let value = this._value,\n baseUnit,\n border = this.options.border || {},\n padding = this.options.padding || 0,\n borderWidth = border.width || 0,\n quietZoneSize,\n matrix,\n size,\n dataSize,\n contentSize;\n\n border.width = borderWidth;\n\n let visual = new draw.Group();\n\n try {\n if (value) {\n matrix = encodeData(value, this.options.errorCorrection, this.options.encoding);\n size = this._getSize();\n contentSize = size - 2 * (borderWidth + padding);\n baseUnit = this._calculateBaseUnit(contentSize, matrix.length);\n dataSize = matrix.length * baseUnit;\n quietZoneSize = borderWidth + padding + (contentSize - dataSize) / 2;\n\n visual.append(this._renderBackground(size, border));\n visual.append(this._renderMatrix(matrix, baseUnit, quietZoneSize));\n\n if (this._hasCustomLogo()) {\n visual.append(this._renderLogo(size, baseUnit));\n } else if (this._isSwiss()) {\n visual.append(this._renderSwissCode(size, baseUnit));\n }\n }\n } catch (error) {\n this.onError(error);\n }\n\n return visual;\n }\n\n _renderLogo(qrSize, baseUnit) {\n let image;\n let imageRect;\n let center = round(qrSize / 2);\n let logoSize = this._getLogoSize(baseUnit * QRCodeDefaults.DEFAULT_LOGO_SIZE);\n let logoUrl = this.options.overlay.imageUrl;\n let position = {\n x: center - logoSize.width / 2,\n y: center - logoSize.height / 2\n };\n\n imageRect = new geom.Rect(\n new geom.Point(position.x, position.y),\n new geom.Size(logoSize.width, logoSize.height)\n );\n\n image = new draw.Image(logoUrl, imageRect);\n\n return image;\n }\n\n _renderSwissCode(qrSize, baseUnit) {\n let logoSize = this._getLogoSize(baseUnit * QRCodeDefaults.DEFAULT_LOGO_SIZE);\n logoSize = Math.max(logoSize.width, logoSize.height);\n let crossSize = logoSize / 4;\n let crossOffset = crossSize / 2;\n let center = qrSize / 2;\n let start = {};\n let visual = new draw.Group();\n\n start.x = start.y = Math.ceil(center - baseUnit - logoSize / 2);\n visual.append(this._renderShape(start, Math.ceil(logoSize + baseUnit * 2), squarePattern, \"#fff\"));\n\n start.x = start.y = center - logoSize / 2;\n visual.append(this._renderShape(start, logoSize, squarePattern, this.options.color));\n\n start.x = center + crossOffset - logoSize / 2;\n start.y = center + crossOffset + crossSize - logoSize / 2;\n visual.append(this._renderShape(start, crossSize, crossPattern, \"#fff\"));\n\n return visual;\n }\n\n _renderShape(start, step, pattern, color) {\n let path = new draw.MultiPath({\n fill: {\n color: color\n },\n stroke: null\n });\n\n path.moveTo(start.x, start.y);\n\n for (let i = 0; i < pattern.length; i++) {\n path.lineTo(start.x + step * pattern[i][0], start.y + step * pattern[i][1]);\n }\n\n path.close();\n\n return path;\n }\n\n _getSize() {\n let size;\n\n if (this.options.size) {\n size = parseInt(this.options.size, 10);\n } else {\n const element = this.element;\n const elementSize = surfaceSize(element, this.options.renderAs);\n const min = Math.min(elementSize.width, elementSize.height);\n\n if (min > 0) {\n size = min;\n } else {\n size = QRCodeDefaults.DEFAULT_SIZE;\n }\n }\n\n return size;\n }\n\n _calculateBaseUnit(size, matrixSize) {\n let baseUnit = Math.floor(size / matrixSize);\n\n if (baseUnit < QRCodeDefaults.MIN_BASE_UNIT_SIZE) {\n const minSize = Math.ceil(matrixSize * QRCodeDefaults.MIN_BASE_UNIT_SIZE);\n this.onError(new Error(\n `Insufficient size for QR Code: the current size is ${size}px and the minimum size is ${minSize}px.`\n ));\n } else if (baseUnit * matrixSize >= size &&\n baseUnit - 1 >= QRCodeDefaults.MIN_BASE_UNIT_SIZE) {\n baseUnit--;\n }\n\n return baseUnit;\n }\n\n _renderMatrix(matrix, baseUnit, quietZoneSize) {\n let path = new draw.MultiPath({\n fill: {\n color: this.options.color\n },\n stroke: null\n });\n\n for (let row = 0; row < matrix.length; row++) {\n let y = quietZoneSize + row * baseUnit;\n let column = 0;\n\n while (column < matrix.length) {\n while (matrix[row][column] === 0 && column < matrix.length) {\n column++;\n }\n\n if (column < matrix.length) {\n let x = column;\n while (matrix[row][column] === 1) {\n column++;\n }\n\n let x1 = round(quietZoneSize + x * baseUnit);\n let y1 = round(y);\n let x2 = round(quietZoneSize + column * baseUnit);\n let y2 = round(y + baseUnit);\n\n path.moveTo(x1, y1)\n .lineTo(x1, y2)\n .lineTo(x2, y2)\n .lineTo(x2, y1)\n .close();\n }\n }\n }\n\n return path;\n }\n\n _renderBackground(size, border) {\n const box = new Box(0, 0, size, size).unpad(border.width / 2);\n const background = draw.Path.fromRect(box.toRect(), {\n fill: {\n color: this.options.background\n },\n stroke: {\n color: border.color,\n width: border.width\n }\n });\n\n return background;\n }\n\n setOptions(options) {\n let newOptions = options || {};\n this.options = extend(this.options, newOptions);\n\n if (options.value !== undefined) {\n this._value = String(this.options.value);\n }\n\n this._initSurface();\n this.redraw();\n }\n\n value(value) {\n if (value === undefined) {\n return this._value;\n }\n\n this._value = String(value);\n\n this.redraw();\n }\n\n _hasCustomLogo() {\n return Boolean(this.options.overlay.imageUrl);\n }\n\n _isSwiss() {\n return this.options.overlay.type === \"swiss\";\n }\n\n _getLogoSize(defautLogoSize) {\n let width = this.options.overlay.width;\n let height = this.options.overlay.height;\n\n if (!width && !height) {\n width = height = defautLogoSize;\n } else if (width && !height) {\n height = width;\n } else if (!width && height) {\n width = height;\n }\n\n return {\n width: width,\n height: height\n };\n }\n}\n\nsetDefaultOptions(QRCode, {\n name: \"QRCode\",\n renderAs: \"svg\",\n encoding: \"ISO_8859_1\",\n value: \"\",\n errorCorrection: QRCodeDefaults.DEFAULT_ERROR_CORRECTION_LEVEL,\n background: QRCodeDefaults.DEFAULT_BACKGROUND,\n color: QRCodeDefaults.DEFAULT_DARK_MODULE_COLOR,\n size: \"\",\n padding: 0,\n border: {\n color: \"\",\n width: 0\n },\n overlay: {\n type: \"image\",\n imageUrl: \"\",\n width: 0,\n height: 0\n }\n});\n\nexport default QRCode;\n","import { encodeData } from './encodings/encoding';\n\nconst ISO = 'ISO_8859_1';\n\nfunction qrcodeValidator(encoding = ISO) {\n return function(value) {\n try {\n encodeData(value, 'L', encoding);\n } catch (error) {\n return {\n valid: false,\n error\n };\n }\n\n return {\n valid: true\n };\n };\n}\n\nexport default qrcodeValidator;\n","// Coordinate reference system\n// World Geodetic System of 1984\nconst WGS84 = {\n a: 6378137, // Semi-major radius\n b: 6356752.314245179, // Semi-minor radius\n f: 0.0033528106647474805, // Flattening\n e: 0.08181919084262149 // Eccentricity\n};\n\n// Geographic coordinate systems use a spheroid to calculate positions on the earth.\n// A datum defines the position of the spheroid relative to the center of the earth\n// it provides a frame of reference for measuring locations on the surface of the earth\n// and defines the origin and orientation of latitude and longitude lines.\nexport const datums = {\n WGS84\n};\n","import {\n Class,\n deepExtend,\n deg,\n rad,\n round,\n defined\n} from '../common';\n\nimport {\n datums\n} from './datums';\n\nfunction toSquare(value) {\n return value * value;\n}\n\n\nlet math = Math,\n abs = math.abs,\n atan = math.atan,\n atan2 = math.atan2,\n cos = math.cos,\n sin = math.sin,\n tan = math.tan;\n\nexport class Location extends Class {\n constructor(lat, lng) {\n super();\n\n this.initProperties();\n\n if (arguments.length === 1) {\n this.lat = lat[0];\n this.lng = lat[1];\n } else {\n this.lat = lat;\n this.lng = lng;\n }\n }\n\n initProperties() {\n deepExtend(this, {\n DISTANCE_ITERATIONS: 100,\n DISTANCE_CONVERGENCE: 1e-12,\n DISTANCE_PRECISION: 2,\n FORMAT: '{0:N6}{1:N6}'\n });\n }\n\n toArray() {\n return [\n this.lat,\n this.lng\n ];\n }\n\n equals(loc) {\n return loc && loc.lat === this.lat && loc.lng === this.lng;\n }\n\n clone() {\n return new Location(this.lat, this.lng);\n }\n\n round(precision) {\n this.lng = round(this.lng, precision);\n this.lat = round(this.lat, precision);\n return this;\n }\n\n wrap() {\n this.lng = this.lng % 180;\n this.lat = this.lat % 90;\n return this;\n }\n\n distanceTo(dest, datum) {\n return this.greatCircleTo(dest, datum).distance;\n }\n\n destination(distance, initialBearing, initialDatum) {\n let bearing = rad(initialBearing);\n let datum = initialDatum || datums.WGS84;\n let fromLat = rad(this.lat);\n let fromLng = rad(this.lng);\n let dToR = distance / datum.a;\n let lat = math.asin(sin(fromLat) * cos(dToR) + cos(fromLat) * sin(dToR) * cos(bearing));\n let lng = fromLng + atan2(sin(bearing) * sin(dToR) * cos(fromLat), cos(dToR) - sin(fromLat) * sin(lat));\n\n return new Location(deg(lat), deg(lng));\n }\n\n greatCircleTo(initialDest, initialDatum) {\n let dest = Location.create(dest);\n let datum = initialDatum || datums.WGS84;\n\n if (!dest || this.clone().round(8).equals(dest.clone().round(8))) {\n return {\n distance: 0,\n azimuthFrom: 0,\n azimuthTo: 0\n };\n }\n\n // See http://en.wikipedia.org/wiki/Vincenty's_formulae#Notation\n // o == sigma\n // A == alpha\n\n let a = datum.a;\n let b = datum.b;\n let f = datum.f;\n let L = rad(dest.lng - this.lng);\n let U1 = atan((1 - f) * tan(rad(this.lat)));\n let sinU1 = sin(U1);\n let cosU1 = cos(U1);\n let U2 = atan((1 - f) * tan(rad(dest.lat)));\n let sinU2 = sin(U2);\n let cosU2 = cos(U2);\n let lambda = L;\n let prevLambda;\n let i = this.DISTANCE_ITERATIONS;\n let converged = false;\n let sinLambda;\n let cosLambda;\n let sino;\n let cosA2;\n let coso;\n let cos2om;\n let sigma;\n\n while (!converged && i-- > 0) {\n sinLambda = sin(lambda);\n cosLambda = cos(lambda);\n sino = math.sqrt(toSquare(cosU2 * sinLambda) + toSquare(cosU1 * sinU2 - sinU1 * cosU2 * cosLambda));\n coso = sinU1 * sinU2 + cosU1 * cosU2 * cosLambda;\n sigma = atan2(sino, coso);\n\n let sinA = cosU1 * cosU2 * sinLambda / sino;\n cosA2 = 1 - toSquare(sinA);\n cos2om = 0;\n\n if (cosA2 !== 0) {\n cos2om = coso - 2 * sinU1 * sinU2 / cosA2;\n }\n\n prevLambda = lambda;\n let C = f / 16 * cosA2 * (4 + f * (4 - 3 * cosA2));\n lambda = L + (1 - C) * f * sinA * (sigma + C * sino * (cos2om + C * coso * (-1 + 2 * toSquare(cos2om))));\n converged = abs(lambda - prevLambda) <= this.DISTANCE_CONVERGENCE;\n }\n\n let u2 = cosA2 * (toSquare(a) - toSquare(b)) / toSquare(b);\n let A = 1 + u2 / 16384 * (4096 + u2 * (-768 + u2 * (320 - 175 * u2)));\n let B = u2 / 1024 * (256 + u2 * (-128 + u2 * (74 - 47 * u2)));\n let deltao = B * sino * (cos2om + B / 4 * (coso * (-1 + 2 * toSquare(cos2om)) - B / 6 * cos2om * (-3 + 4 * toSquare(sino)) * (-3 + 4 * toSquare(cos2om))));\n\n let azimuthFrom = atan2(cosU2 * sinLambda, cosU1 * sinU2 - sinU1 * cosU2 * cosLambda);\n let azimuthTo = atan2(cosU1 * sinLambda, -sinU1 * cosU2 + cosU1 * sinU2 * cosLambda);\n\n return {\n distance: round(b * A * (sigma - deltao), this.DISTANCE_PRECISION),\n azimuthFrom: deg(azimuthFrom),\n azimuthTo: deg(azimuthTo)\n };\n }\n\n // IE < 9 doesn't allow to override toString on definition\n toString() {\n // return kendo.format(this.FORMAT, this.lat, this.lng);\n return String(this.lat) + \",\" + String(this.lng);\n }\n\n static fromLngLat(lngAndLat) {\n return new Location(lngAndLat[1], lngAndLat[0]);\n }\n\n static fromLatLng(lngAndLat) {\n return new Location(lngAndLat[0], lngAndLat[1]);\n }\n\n static create(a, b) {\n if (defined(a)) {\n if (a instanceof Location) {\n return a.clone();\n } else if (arguments.length === 1 && a.length === 2) {\n return Location.fromLatLng(a);\n }\n\n return new Location(a, b);\n }\n }\n}\n","import {\n geometry as g\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n setDefaultOptions,\n limitValue,\n rad,\n deg,\n deepExtend\n} from '../common';\n\nimport {\n Location\n} from './location';\n\nimport {\n datums\n} from './datums';\n\n\nlet math = Math,\n atan = math.atan,\n exp = math.exp,\n pow = math.pow,\n sin = math.sin,\n log = math.log,\n tan = math.tan,\n Point = g.Point;\n\nlet PI = math.PI,\n PI_DIV_2 = PI / 2,\n PI_DIV_4 = PI / 4,\n DEG_TO_RAD = PI / 180;\n\nlet WGS84 = datums.WGS84;\n\n// WGS 84 / World Mercator\nexport class Mercator extends Class {\n constructor(options) {\n super();\n this.initProperties();\n this._initOptions(options);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n initProperties() {\n // super.initProperties();\n\n deepExtend(this, {\n MAX_LNG: 180,\n MAX_LAT: 85.0840590501,\n INVERSE_ITERATIONS: 15,\n INVERSE_CONVERGENCE: 1e-12\n });\n }\n\n forward(loc, clamp) {\n let proj = this,\n options = proj.options,\n datum = options.datum,\n r = datum.a,\n lng0 = options.centralMeridian,\n lat = limitValue(loc.lat, -proj.MAX_LAT, proj.MAX_LAT),\n lng = clamp ? limitValue(loc.lng, -proj.MAX_LNG, proj.MAX_LNG) : loc.lng,\n x = rad(lng - lng0) * r,\n y = proj._projectLat(lat);\n return new Point(x, y);\n }\n _projectLat(lat) {\n let datum = this.options.datum,\n ecc = datum.e,\n r = datum.a,\n y = rad(lat),\n ts = tan(PI_DIV_4 + y / 2),\n con = ecc * sin(y),\n p = pow((1 - con) / (1 + con), ecc / 2);\n\n // See: http://en.wikipedia.org/wiki/Mercator_projection#Generalization_to_the_ellipsoid\n return r * log(ts * p);\n }\n inverse(point, clamp) {\n let proj = this,\n options = proj.options,\n datum = options.datum,\n r = datum.a,\n lng0 = options.centralMeridian,\n lng = point.x / (DEG_TO_RAD * r) + lng0,\n lat = limitValue(proj._inverseY(point.y), -proj.MAX_LAT, proj.MAX_LAT);\n if (clamp) {\n lng = limitValue(lng, -proj.MAX_LNG, proj.MAX_LNG);\n }\n return new Location(lat, lng);\n }\n _inverseY(y) {\n let proj = this,\n datum = proj.options.datum,\n r = datum.a,\n ecc = datum.e,\n ecch = ecc / 2,\n ts = exp(-y / r),\n phi = PI_DIV_2 - 2 * atan(ts),\n i;\n for (i = 0; i <= proj.INVERSE_ITERATIONS; i++) {\n let con = ecc * sin(phi),\n p = pow((1 - con) / (1 + con), ecch),\n dphi = PI_DIV_2 - 2 * atan(ts * p) - phi;\n phi += dphi;\n if (math.abs(dphi) <= proj.INVERSE_CONVERGENCE) {\n break;\n }\n }\n return deg(phi);\n }\n}\n\nsetDefaultOptions(Mercator, {\n centralMeridian: 0,\n datum: WGS84\n});\n\n\n// WGS 84 / Pseudo-Mercator\n// Used by Google Maps, Bing, OSM, etc.\n// Spherical projection of ellipsoidal coordinates.\nexport class SphericalMercator extends Mercator {\n initProperties() {\n super.initProperties();\n\n deepExtend(this, {\n MAX_LAT: 85.0511287798\n });\n }\n\n _projectLat(lat) {\n let r = this.options.datum.a,\n y = rad(lat),\n ts = tan(PI_DIV_4 + y / 2);\n return r * log(ts);\n }\n\n _inverseY(y) {\n let r = this.options.datum.a,\n ts = exp(-y / r);\n return deg(PI_DIV_2 - 2 * atan(ts));\n }\n}\n\nexport class Equirectangular extends Class {\n forward(loc) {\n return new Point(loc.lng, loc.lat);\n }\n inverse(point) {\n return new Location(point.y, point.x);\n }\n}\n\n// This is the projected coordinate system used for rendering maps in Google Maps, OpenStreetMap, etc\n// Unit: metre\n// Geodetic CRS: WGS 84\n// Scope: Certain Web mapping and visualisation applications. It is not a recognised geodetic system: for that see ellipsoidal Mercator CRS code 3395 (WGS 84 / World Mercator).\n// Remarks: Uses spherical development of ellipsoidal coordinates. Relative to WGS 84 / World Mercator (CRS code 3395) errors of 0.7 percent in scale and differences in northing of up to 43km in the map (equivalent to 21km on the ground) may arise.\n// Area of use: World between 85.06°S and 85.06°N.\n// Coordinate system: Cartesian 2D CS. Axes: easting, northing (X,Y). Orientations: east, north. UoM: m.\n// https://epsg.io/3857\nexport class EPSG3857 extends Class {\n constructor() {\n super();\n let crs = this,\n proj = crs._proj = new SphericalMercator();\n let c = this.c = 2 * PI * proj.options.datum.a;\n\n // transfrom matrix\n // Scale circumference to 1, mirror Y and shift origin to top left\n this._tm = g.transform().translate(0.5, 0.5).scale(1 / c, -1 / c);\n\n // Inverse transform matrix\n this._itm = g.transform().scale(c, -c).translate(-0.5, -0.5);\n }\n\n // Location <-> Point (screen coordinates for a given scale)\n toPoint(loc, scale, clamp) {\n let point = this._proj.forward(loc, clamp);\n return point.transform(this._tm).scale(scale || 1);\n }\n toLocation(point, scale, clamp) {\n let newPoint = point.clone().scale(1 / (scale || 1)).transform(this._itm);\n return this._proj.inverse(newPoint, clamp);\n }\n}\n\n// Unit: metre\n// Geodetic CRS: WGS 84\n// Scope: Very small scale mapping.\n// Remarks: Euro-centric view of world excluding polar areas.\n// Area of use: World between 80°S and 84°N.\n// Coordinate system: Cartesian 2D CS. Axes: easting, northing (E,N). Orientations: east, north. UoM: m.\n// https://epsg.io/3395\nexport class EPSG3395 extends Class {\n constructor() {\n super();\n this._proj = new Mercator();\n }\n toPoint(loc) {\n return this._proj.forward(loc);\n }\n toLocation(point) {\n return this._proj.inverse(point);\n }\n}\n\n// Unit: degree\n// Geodetic CRS: WGS 84\n// Scope: Horizontal component of 3D system. Used by the GPS satellite navigation system and for NATO military geodetic surveying.\n// Area of use: World.\n// Coordinate system: Ellipsoidal 2D CS. Axes: latitude, longitude. Orientations: north, east. UoM: degree\n// https://epsg.io/4326\nexport class EPSG4326 extends Class {\n constructor() {\n super();\n this._proj = new Equirectangular();\n }\n toPoint(loc) {\n return this._proj.forward(loc);\n }\n toLocation(point) {\n return this._proj.inverse(point);\n }\n}\n","import { getSupportedFeatures } from '../common';\n\n/* eslint-disable arrow-body-style, no-useless-escape */\n\nexport const extend = Object.assign;\n\nexport const proxy = (method, context) => {\n return method.bind(context);\n};\n\nexport let convertToHtml = (html) => {\n const div = document.createElement(\"div\");\n div.innerHTML = html;\n return div.firstChild;\n};\n\nexport let appendHtml = (html, element) => {\n const div = document.createElement('div');\n div.innerHTML = html;\n\n // use childNodes instead of children\n // to cover text nodes as well\n while (div.childNodes.length > 0) {\n element.appendChild(div.childNodes[0]);\n }\n};\n\nexport let removeChildren = (element) => {\n while (element.firstChild) {\n element.removeChild(element.firstChild);\n }\n};\n\nexport let prepend = (element, originElement) => {\n originElement.insertBefore(element, originElement.firstChild);\n};\n\nexport let wrapInner = (parent, wrapper) => {\n parent.appendChild(wrapper);\n\n while (parent.firstChild !== wrapper) {\n wrapper.appendChild(parent.firstChild);\n }\n};\n\nexport let toHyphens = (str) => {\n const result = str.replace(/([a-z][A-Z])/g, function(g) {\n return g.charAt(0) + '-' + g.charAt(1).toLowerCase();\n });\n\n return result;\n};\n\nexport let toPixels = (value) => {\n let result;\n\n if (value && String(value).endsWith(\"px\")) {\n result = value;\n } else {\n result = String(value) + \"px\";\n }\n\n return result;\n};\n\nexport let hasNativeScrolling = (userAgent) => {\n const { mobileOS } = getSupportedFeatures(userAgent);\n return mobileOS.ios || mobileOS.android;\n};\n\nexport const setDefaultEvents = (type, events) => {\n const proto = type.prototype;\n\n if (proto.events) {\n events.forEach(event => {\n if (proto.events.indexOf(event) < 0) {\n proto.events.push(event);\n }\n });\n } else {\n proto.events = events;\n }\n};\n\nexport const wheelDeltaY = (e) => {\n const deltaY = e.wheelDeltaY;\n let delta;\n\n if (e.wheelDelta) { // Webkit and IE\n if (deltaY === undefined || deltaY) { // IE does not have deltaY, thus always scroll (horizontal scrolling is treated as vertical)\n delta = e.wheelDelta;\n }\n } else if (e.detail && e.axis === e.VERTICAL_AXIS) { // Firefox and Opera\n delta = (-e.detail) * 10;\n }\n\n return delta;\n};\n\nexport const renderPos = (pos) => {\n let result = [];\n\n if (pos) {\n let parts = toHyphens(pos).split(\"-\");\n\n for (let i = 0; i < parts.length; i++) {\n result.push(\"k-pos-\" + parts[i]);\n }\n }\n\n return result.join(\" \");\n};\n\n/* eslint-enable arrow-body-style, no-useless-escape */\n","import {\n addClass,\n defined,\n Observable,\n valueOrDefault,\n deepExtend,\n setDefaultOptions\n} from '../common';\n\nimport {\n appendHtml,\n removeChildren\n} from './utils';\n\nexport class Attribution extends Observable {\n constructor(element, options) {\n super();\n this.element = element;\n\n this._initOptions(options);\n this.items = [];\n\n addClass(this.element, 'k-widget k-attribution');\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n filter(extent, zoom) {\n this._extent = extent;\n this._zoom = zoom;\n this._render();\n }\n\n add(item) {\n let newItem = item;\n\n if (defined(item)) {\n if (typeof item === 'string') {\n newItem = {\n text: item\n };\n }\n\n this.items.push(newItem);\n this._render();\n }\n }\n\n remove(text) {\n let result = [];\n\n for (let i = 0; i < this.items.length; i++) {\n let item = this.items[i];\n\n if (item.text !== text) {\n result.push(item);\n }\n }\n\n this.items = result;\n this._render();\n }\n\n clear() {\n this.items = [];\n removeChildren(this.element);\n }\n\n _render() {\n let result = [];\n\n for (let i = 0; i < this.items.length; i++) {\n let item = this.items[i];\n let text = this._itemText(item);\n\n if (text !== '') {\n result.push(text);\n }\n }\n\n if (result.length > 0) {\n removeChildren(this.element);\n\n const html = result.join(this.options.separator);\n appendHtml(html, this.element);\n\n this.showElement();\n } else {\n this.hideElement();\n }\n }\n\n hideElement() {\n this.element.style.display = \"none\";\n }\n\n showElement() {\n this.element.style.display = \"\";\n }\n\n _itemText(item) {\n let text = '';\n let inZoomLevel = this._inZoomLevel(item.minZoom, item.maxZoom);\n let inArea = this._inArea(item.extent);\n\n if (inZoomLevel && inArea) {\n text += item.text;\n }\n\n return text;\n }\n\n _inZoomLevel(min, max) {\n let result = true;\n let newMin = valueOrDefault(min, -Number.MAX_VALUE);\n let newMax = valueOrDefault(max, Number.MAX_VALUE);\n\n result = this._zoom > newMin && this._zoom < newMax;\n return result;\n }\n\n _inArea(area) {\n let result = true;\n\n if (area) {\n result = area.contains(this._extent);\n }\n\n return result;\n }\n}\n\nsetDefaultOptions(Attribution, {\n name: 'Attribution',\n separator: ' | '\n});\n","import {\n deepExtend,\n addClass,\n Observable,\n keys,\n setDefaultOptions,\n renderIcon,\n on,\n off,\n} from '../common';\n\nimport {\n proxy,\n setDefaultEvents,\n convertToHtml\n} from './utils';\n\nconst PAN = \"pan\";\n\nconst directionsMap = {\n up: {\n className: \"k-navigator-n\",\n iconClass: \"k-i-caret-alt-up\"\n },\n down: {\n className: \"k-navigator-s\",\n iconClass: \"k-i-caret-alt-down\"\n },\n right: {\n className: \"k-navigator-e\",\n iconClass: \"k-i-caret-alt-right\"\n },\n left: {\n className: \"k-navigator-w\",\n iconClass: \"k-i-caret-alt-left\"\n }\n};\n\nfunction createButton(direction, iconOptions) {\n const html =\n '';\n\n return convertToHtml(html);\n}\n\nexport class Navigator extends Observable {\n constructor(element, options) {\n super();\n\n this.element = element;\n this._initOptions(options);\n\n const navigateUpButton = createButton(\"up\", options.icons);\n const navigateRightlButton = createButton(\"right\", options.icons);\n const navigateDownButton = createButton(\"down\", options.icons);\n const navigateLeftButton = createButton(\"left\", options.icons);\n\n this.element.appendChild(navigateUpButton);\n this.element.appendChild(navigateRightlButton);\n this.element.appendChild(navigateDownButton);\n this.element.appendChild(navigateLeftButton);\n\n addClass(this.element, 'k-widget k-navigator');\n\n on(this.element, \"click\", \".k-button\", proxy(this._click, this));\n\n let parentElement = this.element.parentNode.closest(\"[data-role]\");\n\n this._keyroot = parentElement ? parentElement : this.element;\n this._tabindex(this._keyroot);\n\n this._keydownHandler = proxy(this._keydown, this);\n on(this._keyroot, \"keydown\", this._keydownHandler);\n }\n\n destroy() {\n this.dispose();\n }\n\n // originates from the kendo.jquery version\n dispose() {\n off(this._keyroot, \"keydown\", this._keydownHandler);\n }\n\n _tabindex(target) {\n const targetElement = target || this.wrapper || this.element;\n\n let element = this.element,\n TABINDEX = \"tabindex\",\n tabindex = targetElement.getAttribute(TABINDEX) || element.getAttribute(TABINDEX);\n\n element.removeAttribute(TABINDEX);\n\n targetElement.setAttribute(TABINDEX, !isNaN(tabindex) ? tabindex : 0);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _pan(x, y) {\n let panStep = this.options.panStep;\n\n this.trigger(PAN, {\n x: x * panStep,\n y: y * panStep\n });\n }\n\n _click(e) {\n let x = 0;\n let y = 0;\n let button = e.currentTarget;\n\n if (button.matches('.k-navigator-n')) {\n y = 1;\n } else if (button.matches('.k-navigator-s')) {\n y = -1;\n } else if (button.matches('.k-navigator-e')) {\n x = 1;\n } else if (button.matches('.k-navigator-w')) {\n x = -1;\n }\n\n this._pan(x, y);\n\n e.preventDefault();\n }\n\n _keydown(e) {\n switch (e.which) {\n case keys.UP:\n this._pan(0, 1);\n e.preventDefault();\n break;\n case keys.DOWN:\n this._pan(0, -1);\n e.preventDefault();\n break;\n case keys.RIGHT:\n this._pan(1, 0);\n e.preventDefault();\n break;\n case keys.LEFT:\n this._pan(-1, 0);\n e.preventDefault();\n break;\n default:\n break;\n }\n }\n}\n\nsetDefaultOptions(Navigator, {\n name: 'Navigator',\n panStep: 1\n});\n\n\nsetDefaultEvents(Navigator, [\n PAN\n]);\n","let keys = {\n INSERT: 45,\n DELETE: 46,\n BACKSPACE: 8,\n TAB: 9,\n ENTER: 13,\n ESC: 27,\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n END: 35,\n HOME: 36,\n SPACEBAR: 32,\n PAGEUP: 33,\n PAGEDOWN: 34,\n F2: 113,\n F10: 121,\n F12: 123,\n NUMPAD_PLUS: 107,\n NUMPAD_MINUS: 109,\n NUMPAD_DOT: 110\n};\n\nexport default keys;\n","import {\n deepExtend,\n addClass,\n Observable,\n keys,\n hasClasses,\n setDefaultOptions,\n renderIcon,\n on,\n off,\n} from '../common';\n\nimport {\n setDefaultEvents,\n convertToHtml\n} from './utils';\n\nfunction createButton(direction, icon, iconOptions) {\n const html =\n '';\n\n return convertToHtml(html);\n}\n\nlet PLUS = 187;\nlet MINUS = 189;\nlet FF_PLUS = 61;\nlet FF_MINUS = 173;\nconst CHANGE = \"change\";\n\nexport class ZoomControl extends Observable {\n constructor(element, options, iconOptions) {\n super();\n this.element = element;\n this._initOptions(options);\n\n const zoomInButton = createButton('in', 'plus', iconOptions);\n const zoomOutButton = createButton('out', 'minus', iconOptions);\n\n this.element.appendChild(zoomInButton);\n this.element.appendChild(zoomOutButton);\n this.element.setAttribute(\"role\", \"group\");\n\n addClass(this.element, 'k-widget k-zoom-control k-button-group k-group-horizontal');\n\n this._clickHandler = this._click.bind(this);\n on(this.element, \"click\", \".k-button\", this._clickHandler);\n\n let parentElement = this.element.parentNode.closest(\"[data-role]\");\n\n this._keyroot = parentElement ? parentElement : this.element;\n\n this._tabindex(this._keyroot);\n\n this._keydownHandler = this._keydown.bind(this);\n on(this._keyroot, \"keydown\", this._keydownHandler);\n }\n\n destroy() {\n if (this.element) {\n off(this.element, \"click\", this._clickHandler);\n }\n\n if (this._keyroot) {\n off(this._keyroot, 'keydown', this._keydownHandler);\n }\n }\n\n _tabindex(target) {\n const targetElement = target || this.wrapper || this.element;\n\n let element = this.element,\n TABINDEX = \"tabindex\",\n tabindex = targetElement.getAttribute(TABINDEX) || element.getAttribute(TABINDEX);\n\n element.removeAttribute(TABINDEX);\n\n targetElement.setAttribute(TABINDEX, !isNaN(tabindex) ? tabindex : 0);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _change(direction) {\n let zoomStep = this.options.zoomStep;\n this.trigger(CHANGE, { delta: direction * zoomStep });\n }\n\n _click(e) {\n let button = e.currentTarget;\n let direction = 1;\n\n if (hasClasses(button, 'k-zoom-out')) {\n direction = -1;\n }\n\n this._change(direction);\n e.preventDefault();\n }\n\n _keydown(e) {\n switch (e.which) {\n case keys.NUMPAD_PLUS:\n case PLUS:\n case FF_PLUS:\n this._change(1);\n break;\n case keys.NUMPAD_MINUS:\n case MINUS:\n case FF_MINUS:\n this._change(-1);\n break;\n default:\n break;\n }\n }\n}\n\nsetDefaultOptions(ZoomControl, {\n name: 'ZoomControl',\n zoomStep: 1\n});\n\nsetDefaultEvents(ZoomControl, [\n CHANGE\n]);\n","import {\n Class,\n valueOrDefault\n} from '../common';\n\nimport { Location } from './location';\n\nlet math = Math,\n max = math.max,\n min = math.min;\n\nexport class Extent extends Class {\n constructor(initialNw, initialSe) {\n super();\n let nw = Location.create(initialNw);\n let se = Location.create(initialSe);\n\n if (nw.lng + 180 > se.lng + 180 && nw.lat + 90 < se.lat + 90) {\n this.se = nw;\n this.nw = se;\n } else {\n this.se = se;\n this.nw = nw;\n }\n }\n\n contains(loc) {\n let nw = this.nw, se = this.se, lng = valueOrDefault(loc.lng, loc[1]), lat = valueOrDefault(loc.lat, loc[0]);\n\n return loc &&\n lng + 180 >= nw.lng + 180 && lng + 180 <= se.lng + 180 &&\n lat + 90 >= se.lat + 90 && lat + 90 <= nw.lat + 90;\n }\n\n center() {\n let nw = this.nw;\n let se = this.se;\n let lng = nw.lng + (se.lng - nw.lng) / 2;\n let lat = nw.lat + (se.lat - nw.lat) / 2;\n\n return new Location(lat, lng);\n }\n\n containsAny(locs) {\n let result = false;\n\n for (let i = 0; i < locs.length; i++) {\n result = result || this.contains(locs[i]);\n }\n\n return result;\n }\n\n include(loc) {\n let nw = this.nw, se = this.se, lng = valueOrDefault(loc.lng, loc[1]), lat = valueOrDefault(loc.lat, loc[0]);\n\n nw.lng = min(nw.lng, lng);\n nw.lat = max(nw.lat, lat);\n se.lng = max(se.lng, lng);\n se.lat = min(se.lat, lat);\n }\n\n includeAll(locs) {\n for (let i = 0; i < locs.length; i++) {\n this.include(locs[i]);\n }\n }\n\n edges() {\n let nw = this.nw, se = this.se;\n\n return {\n nw: this.nw,\n ne: new Location(nw.lat, se.lng),\n se: this.se,\n sw: new Location(se.lat, nw.lng)\n };\n }\n\n toArray() {\n let nw = this.nw, se = this.se;\n\n return [\n nw,\n new Location(nw.lat, se.lng),\n se,\n new Location(se.lat, nw.lng)\n ];\n }\n\n overlaps(extent) {\n return this.containsAny(extent.toArray()) ||\n extent.containsAny(this.toArray());\n }\n\n static create(a, b) {\n if (a instanceof Extent) {\n return a;\n } else if (a && b) {\n return new Extent(a, b);\n } else if (a && a.length === 4 && !b) {\n return new Extent([\n a[0],\n a[1]\n ], [\n a[2],\n a[3]\n ]);\n }\n }\n\n static get World() {\n return new Extent([ 90, -180 ], [ -90, 180 ]);\n }\n}\n","export const SHOW_TOOLTIP = 'showTooltip';\nexport const HIDE_TOOLTIP = 'hideTooltip';\nexport const CENTER_CHANGE = 'centerChange';\nexport const ZOOM_CHANGE = 'zoomChange';\nexport const INIT = 'init';\n","import { Class, deepExtend, setDefaultOptions } from '../../common';\nimport { SHOW_TOOLTIP, HIDE_TOOLTIP } from '../constants';\n\nexport class Tooltip extends Class {\n constructor(widgetService, options) {\n super();\n\n this.widgetService = widgetService;\n this.options = deepExtend({}, this.options, options);\n this.offset = { x: 0, y: 0 };\n }\n\n show(anchor, args) {\n if (this.location === args.location) {\n return;\n }\n\n this.anchor = anchor;\n this.location = args.location;\n\n this.widgetService.notify(SHOW_TOOLTIP,\n Object.assign({ anchor: this.anchor }, args)\n );\n\n this.visible = true;\n }\n\n hide() {\n if (this.widgetService) {\n this.widgetService.notify(HIDE_TOOLTIP);\n }\n\n this.visible = false;\n this.location = null;\n }\n\n get anchor() {\n return this._anchor;\n }\n\n set anchor(anchor) {\n const documentPoint = this.widgetService.widget._toDocumentCoordinates({\n x: anchor.left - this.offset.x,\n y: anchor.top - this.offset.y\n });\n\n this._anchor = {\n left: documentPoint.left,\n top: documentPoint.top\n };\n }\n\n destroy() {\n this.widgetService = null;\n }\n}\n\nsetDefaultOptions(Tooltip, {\n border: {\n width: 1\n },\n opacity: 1\n});\n","import {\n Class,\n addClass,\n deepExtend,\n defined,\n getSupportedFeatures\n} from '../../common';\n\nimport {\n Extent\n} from './../extent';\n\nexport class Layer extends Class {\n constructor(map, options) {\n super();\n\n this.support = getSupportedFeatures();\n\n this._initOptions(options);\n this.map = map;\n\n let element = document.createElement(\"div\");\n addClass(element, \"k-layer\");\n element.style.zIndex = this.options.zIndex;\n element.style.opacity = this.options.opacity;\n\n this.element = element;\n\n map.scrollElement.appendChild(this.element);\n\n this._beforeReset = this._beforeReset.bind(this);\n this._reset = this._reset.bind(this);\n this._resize = this._resize.bind(this);\n this._panEnd = this._panEnd.bind(this);\n\n this._activate();\n this._updateAttribution();\n }\n\n destroy() {\n this._deactivate();\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n show() {\n this.reset();\n this._activate();\n this._applyExtent(true);\n }\n\n hide() {\n this._deactivate();\n this._setVisibility(false);\n }\n\n reset() {\n this._beforeReset();\n this._reset();\n }\n\n _reset() {\n this._applyExtent();\n }\n\n _beforeReset() {\n\n }\n\n _resize() {\n\n }\n\n _panEnd() {\n this._applyExtent();\n }\n\n _applyExtent() {\n let options = this.options;\n let zoom = this.map.zoom();\n let matchMinZoom = !defined(options.minZoom) || zoom >= options.minZoom;\n let matchMaxZoom = !defined(options.maxZoom) || zoom <= options.maxZoom;\n let extent = Extent.create(options.extent);\n let inside = !extent || extent.overlaps(this.map.extent());\n\n this._setVisibility(matchMinZoom && matchMaxZoom && inside);\n }\n\n _setVisibility(visible) {\n this.element.style.display = visible ? '' : 'none';\n }\n\n _activate() {\n let map = this.map;\n\n this._deactivate();\n\n map.bind('beforeReset', this._beforeReset);\n map.bind('reset', this._reset);\n map.bind('resize', this._resize);\n map.bind('panEnd', this._panEnd);\n }\n\n _deactivate() {\n let map = this.map;\n\n map.unbind('beforeReset', this._beforeReset);\n map.unbind('reset', this._reset);\n map.unbind('resize', this._resize);\n map.unbind('panEnd', this._panEnd);\n }\n\n _updateAttribution() {\n const attribution = this.map.attribution;\n\n if (attribution) {\n attribution.add(this.options.attribution);\n }\n }\n\n _readData() {\n const data = this.options.data || [];\n return data;\n }\n\n _hasData() {\n return this._data && this._data.length > 0;\n }\n\n _layerIndex() {\n const layers = this.map.layers || [];\n return layers.indexOf(this);\n }\n}\n","import {\n geometry as g,\n throttle\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n deepExtend,\n round,\n limitValue,\n hashKey,\n setDefaultOptions,\n isFunction\n} from '../../common';\n\nimport { removeChildren } from '../utils';\n\nimport { Layer } from './layer';\n\nimport TemplateService from '../../services/template-service';\n\nlet math = Math,\n Point = g.Point;\n\nfunction compileTemplate(template) {\n if (isFunction(template)) {\n return template;\n }\n\n return TemplateService.compile(template);\n}\n\nfunction roundPoint(point) {\n return new Point(round(point.x), round(point.y));\n}\n\nfunction renderSize(size) {\n let newSize = size;\n\n if (typeof(size) !== \"string\") {\n newSize += \"px\";\n }\n\n return newSize;\n}\n\nexport class TileLayer extends Layer {\n constructor(map, options) {\n super(map, options);\n\n if (typeof this.options.subdomains === 'string') {\n this.options.subdomains = this.options.subdomains.split('');\n }\n\n let viewType = this._viewType();\n this._view = new viewType(this.element, this.options);\n }\n\n destroy() {\n super.destroy();\n this._view.destroy();\n this._view = null;\n }\n\n _beforeReset() {\n let map = this.map;\n let origin = map.locationToLayer(map.extent().nw).round();\n this._view.viewOrigin(origin);\n }\n\n _reset() {\n super._reset();\n this._updateView();\n this._view.reset();\n }\n\n _viewType() {\n return TileView;\n }\n\n _activate() {\n super._activate();\n\n if (!this.support.mobileOS) {\n if (!this._pan) {\n this._pan = throttle(this._render.bind(this), 100);\n }\n\n this.map.bind('pan', this._pan);\n }\n }\n\n _deactivate() {\n super._deactivate();\n\n if (this._pan) {\n this.map.unbind('pan', this._pan);\n }\n }\n\n _updateView() {\n let view = this._view,\n map = this.map,\n extent = map.extent(),\n extentToPoint = {\n nw: map.locationToLayer(extent.nw).round(),\n se: map.locationToLayer(extent.se).round()\n };\n\n view.center(map.locationToLayer(map.center()));\n view.extent(extentToPoint);\n view.zoom(map.zoom());\n }\n\n _resize() {\n this._render();\n }\n\n _panEnd(e) {\n super._panEnd(e);\n this._render();\n }\n\n _render() {\n this._updateView();\n this._view.render();\n }\n}\n\nsetDefaultOptions(TileLayer, {\n tileSize: 256,\n subdomains: ['a', 'b', 'c'],\n urlTemplate: '',\n zIndex: 1\n});\n\nexport class TileView extends Class {\n constructor(element, options) {\n super();\n this.element = element;\n this._initOptions(options);\n this.pool = new TilePool();\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n center(center) {\n this._center = center;\n }\n\n extent(extent) {\n this._extent = extent;\n }\n\n viewOrigin(origin) {\n this._viewOrigin = origin;\n }\n\n zoom(zoom) {\n this._zoom = zoom;\n }\n\n pointToTileIndex(point) {\n return new Point(math.floor(point.x / this.options.tileSize), math.floor(point.y / this.options.tileSize));\n }\n\n tileCount() {\n let size = this.size(),\n firstTileIndex = this.pointToTileIndex(this._extent.nw),\n nw = this._extent.nw,\n point = this.indexToPoint(firstTileIndex).translate(-nw.x, -nw.y);\n\n return {\n x: math.ceil((math.abs(point.x) + size.width) / this.options.tileSize),\n y: math.ceil((math.abs(point.y) + size.height) / this.options.tileSize)\n };\n }\n\n size() {\n let nw = this._extent.nw,\n se = this._extent.se,\n diff = se.clone().translate(-nw.x, -nw.y);\n\n return {\n width: diff.x,\n height: diff.y\n };\n }\n\n indexToPoint(index) {\n let x = index.x,\n y = index.y;\n\n return new Point(x * this.options.tileSize, y * this.options.tileSize);\n }\n\n subdomainText() {\n let subdomains = this.options.subdomains;\n return subdomains[this.subdomainIndex++ % subdomains.length];\n }\n\n destroy() {\n removeChildren(this.element);\n this.pool.empty();\n }\n\n reset() {\n this.pool.reset();\n this.subdomainIndex = 0;\n this.render();\n }\n\n render() {\n let size = this.tileCount(),\n firstTileIndex = this.pointToTileIndex(this._extent.nw),\n tile, x, y;\n\n for (x = 0; x < size.x; x++) {\n for (y = 0; y < size.y; y++) {\n tile = this.createTile({\n x: firstTileIndex.x + x,\n y: firstTileIndex.y + y\n });\n\n if (!tile.visible) {\n tile.show();\n }\n }\n }\n }\n\n createTile(currentIndex) {\n let options = this.tileOptions(currentIndex);\n let tile = this.pool.get(this._center, options);\n\n if (!tile.element.parentNode) {\n this.element.append(tile.element);\n }\n\n return tile;\n }\n\n tileOptions(currentIndex) {\n let index = this.wrapIndex(currentIndex),\n point = this.indexToPoint(currentIndex),\n origin = this._viewOrigin,\n offset = point.clone().translate(-origin.x, -origin.y);\n\n return {\n index: index,\n currentIndex: currentIndex,\n point: point,\n offset: roundPoint(offset),\n zoom: this._zoom,\n size: this.options.tileSize,\n subdomain: this.subdomainText(),\n urlTemplate: this.options.urlTemplate,\n errorUrlTemplate: this.options.errorUrlTemplate\n };\n }\n\n wrapIndex(index) {\n let boundary = math.pow(2, this._zoom);\n\n return {\n x: this.wrapValue(index.x, boundary),\n y: limitValue(index.y, 0, boundary - 1)\n };\n }\n\n wrapValue(value, boundary) {\n let remainder = math.abs(value) % boundary;\n let wrappedValue = value;\n\n if (value >= 0) {\n wrappedValue = remainder;\n } else {\n wrappedValue = boundary - (remainder === 0 ? boundary : remainder);\n }\n\n return wrappedValue;\n }\n}\n\nexport class ImageTile extends Class {\n constructor(id, options) {\n super();\n this.id = id;\n this.visible = true;\n this._initOptions(options);\n this.createElement();\n this.show();\n }\n\n destroy() {\n const element = this.element;\n const parentNode = element ? element.parentNode : null;\n\n if (element) {\n if (parentNode) {\n parentNode.removeChild(element);\n }\n\n this.element = null;\n }\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n createElement() {\n let el = document.createElement(\"img\");\n const size = this.options.size + \"px\";\n el.setAttribute(\"alt\", \"\");\n el.style.position = \"absolute\";\n el.style.display = \"block\";\n el.style.width = el.style.maxWidth = size;\n el.style.height = el.style.maxHeight = size;\n\n this.element = el;\n\n // todo\n // add on error handler\n\n // this.element =\n // $('\\'\\'')\n // .css({\n // width: this.options.size,\n // height: this.options.size\n // })\n // .on('error', proxy(function(e) {\n // if (this.errorUrl()) {\n // e.target.setAttribute('src', this.errorUrl());\n // } else {\n // e.target.removeAttribute('src');\n // }\n // }, this));\n }\n\n show() {\n let element = this.element;\n element.style.top = renderSize(this.options.offset.y);\n element.style.left = renderSize(this.options.offset.x);\n\n let url = this.url();\n\n if (url) {\n element.setAttribute('src', url);\n }\n\n element.style.visibility = 'visible';\n this.visible = true;\n }\n\n hide() {\n this.element.style.visibility = 'hidden';\n this.visible = false;\n }\n\n url() {\n let urlResult = compileTemplate(this.options.urlTemplate);\n return urlResult(this.urlOptions());\n }\n\n errorUrl() {\n let urlResult = compileTemplate(this.options.errorUrlTemplate);\n return urlResult(this.urlOptions());\n }\n\n urlOptions() {\n let options = this.options;\n\n return {\n zoom: options.zoom,\n subdomain: options.subdomain,\n z: options.zoom,\n x: options.index.x,\n y: options.index.y,\n s: options.subdomain,\n quadkey: options.quadkey,\n q: options.quadkey,\n culture: options.culture,\n c: options.culture\n };\n }\n}\n\nsetDefaultOptions(ImageTile, {\n urlTemplate: '',\n errorUrlTemplate: ''\n});\n\nexport class TilePool extends Class {\n constructor() {\n super();\n this._items = [];\n }\n\n get(center, options) {\n if (this._items.length >= this.options.maxSize) {\n this._remove(center);\n }\n\n return this._create(options);\n }\n\n empty() {\n let items = this._items;\n\n for (let i = 0; i < items.length; i++) {\n items[i].destroy();\n }\n\n this._items = [];\n }\n\n reset() {\n let items = this._items;\n\n for (let i = 0; i < items.length; i++) {\n items[i].hide();\n }\n }\n\n _create(options) {\n let items = this._items;\n let tile;\n let id = hashKey(options.point.toString() + options.offset.toString() + options.zoom + options.urlTemplate);\n\n for (let i = 0; i < items.length; i++) {\n if (items[i].id === id) {\n tile = items[i];\n break;\n }\n }\n\n if (tile) {\n tile.show();\n } else {\n tile = new ImageTile(id, options);\n this._items.push(tile);\n }\n\n return tile;\n }\n\n _remove(center) {\n let items = this._items;\n let maxDist = -1;\n let index = -1;\n\n for (let i = 0; i < items.length; i++) {\n let dist = items[i].options.point.distanceTo(center);\n\n if (dist > maxDist && !items[i].visible) {\n index = i;\n maxDist = dist;\n }\n }\n\n if (index !== -1) {\n items[index].destroy();\n items.splice(index, 1);\n }\n }\n}\n\nsetDefaultOptions(TilePool, {\n maxSize: 100\n});\n","import {\n Class,\n Observable,\n elementOffset,\n eventMap\n} from '../../common';\n\nimport {\n proxy\n} from '../utils';\n\nconst extend = Object.assign;\n\nconst CHANGE = 'change';\n\nexport class TapCapture extends Observable {\n constructor(element, options) {\n super();\n let that = this,\n domElement = element[0] || element;\n\n that.capture = false;\n\n if (domElement.addEventListener) {\n eventMap.down.split(' ').forEach(function(event) {\n domElement.addEventListener(event, proxy(that._press, that), true);\n });\n eventMap.up.split(' ').forEach(function(event) {\n domElement.addEventListener(event, proxy(that._release, that), true);\n });\n } else {\n eventMap.down.split(' ').forEach(function(event) {\n domElement.attachEvent(event, proxy(that._press, that));\n });\n eventMap.up.split(' ').forEach(function(event) {\n domElement.attachEvent(event, proxy(that._release, that));\n });\n }\n\n that.bind([\n 'press',\n 'release'\n ], options || {});\n }\n\n captureNext() {\n this.capture = true;\n }\n\n cancelCapture() {\n this.capture = false;\n }\n\n _press(e) {\n let that = this;\n\n that.trigger('press');\n\n if (that.capture) {\n e.preventDefault();\n }\n }\n\n _release(e) {\n let that = this;\n\n that.trigger('release');\n\n if (that.capture) {\n e.preventDefault();\n that.cancelCapture();\n }\n }\n}\n\nexport class PaneDimension extends Observable {\n constructor(options) {\n super();\n let that = this;\n that.forcedEnabled = false;\n extend(that, options);\n that.scale = 1;\n\n if (that.horizontal) {\n that.measure = 'offsetWidth';\n that.scrollSize = 'scrollWidth';\n that.axis = 'x';\n } else {\n that.measure = 'offsetHeight';\n that.scrollSize = 'scrollHeight';\n that.axis = 'y';\n }\n }\n\n makeVirtual() {\n extend(this, {\n virtual: true,\n forcedEnabled: true,\n _virtualMin: 0,\n _virtualMax: 0\n });\n }\n\n virtualSize(min, max) {\n if (this._virtualMin !== min || this._virtualMax !== max) {\n this._virtualMin = min;\n this._virtualMax = max;\n this.update();\n }\n }\n\n outOfBounds(offset) {\n return offset > this.max || offset < this.min;\n }\n\n forceEnabled() {\n this.forcedEnabled = true;\n }\n\n getSize() {\n return this.container[this.measure];\n }\n\n getTotal() {\n return this.element[this.scrollSize];\n }\n\n rescale(scale) {\n this.scale = scale;\n }\n\n update(silent) {\n let that = this,\n total = that.virtual ? that._virtualMax : that.getTotal(),\n scaledTotal = total * that.scale,\n size = that.getSize();\n\n if (total === 0 && !that.forcedEnabled) {\n return;\n }\n\n that.max = that.virtual ? -that._virtualMin : 0;\n that.size = size;\n that.total = scaledTotal;\n that.min = Math.min(that.max, size - scaledTotal);\n that.minScale = size / total;\n that.centerOffset = (scaledTotal - size) / 2;\n that.enabled = that.forcedEnabled || scaledTotal > size;\n\n if (!silent) {\n that.trigger(CHANGE, that);\n }\n }\n}\n\nexport class PaneDimensions extends Observable {\n constructor(options) {\n super();\n let that = this;\n\n that.x = new PaneDimension(extend({\n horizontal: true\n }, options));\n\n that.y = new PaneDimension(extend({\n horizontal: false\n }, options));\n\n that.container = options.container;\n that.forcedMinScale = options.minScale;\n that.maxScale = options.maxScale || 100;\n that.bind(CHANGE, options);\n }\n\n rescale(newScale) {\n this.x.rescale(newScale);\n this.y.rescale(newScale);\n this.refresh();\n }\n\n centerCoordinates() {\n return {\n x: Math.min(0, -this.x.centerOffset),\n y: Math.min(0, -this.y.centerOffset)\n };\n }\n\n refresh() {\n let that = this;\n that.x.update();\n that.y.update();\n that.enabled = that.x.enabled || that.y.enabled;\n that.minScale = that.forcedMinScale || Math.min(that.x.minScale, that.y.minScale);\n that.fitScale = Math.max(that.x.minScale, that.y.minScale);\n that.trigger(CHANGE);\n }\n}\n\nexport class PaneAxis extends Observable {\n constructor(options) {\n super();\n extend(this, options);\n }\n\n outOfBounds() {\n return this.dimension.outOfBounds(this.movable[this.axis]);\n }\n\n dragMove(delta) {\n let that = this,\n dimension = that.dimension,\n axis = that.axis,\n movable = that.movable,\n position = movable[axis] + delta;\n\n if (!dimension.enabled) {\n return;\n }\n\n let dragDelta = delta;\n\n if (position < dimension.min && delta < 0 || position > dimension.max && delta > 0) {\n dragDelta *= that.resistance;\n }\n\n movable.translateAxis(axis, dragDelta);\n that.trigger(CHANGE, that);\n }\n}\n\nexport class Pane extends Class {\n constructor(options) {\n super();\n\n let that = this,\n x, y,\n resistance,\n movable;\n\n extend(that, {\n elastic: true\n }, options);\n\n resistance = that.elastic ? 0.5 : 0;\n movable = that.movable;\n\n that.x = x = new PaneAxis({\n axis: 'x',\n dimension: that.dimensions.x,\n resistance: resistance,\n movable: movable\n });\n\n that.y = y = new PaneAxis({\n axis: 'y',\n dimension: that.dimensions.y,\n resistance: resistance,\n movable: movable\n });\n\n that.userEvents.bind([\n 'press',\n 'move',\n 'end',\n 'gesturestart',\n 'gesturechange'\n ], {\n gesturestart(e) {\n that.gesture = e;\n\n that.offset = elementOffset(that.dimensions.container);\n },\n press(e) {\n const closestAnchor = e.event.target.closest('a');\n\n if (closestAnchor && closestAnchor.matches('[data-navigate-on-press=true]')) {\n e.sender.cancel();\n }\n },\n gesturechange(e) {\n let previousGesture = that.gesture,\n previousCenter = previousGesture.center,\n center = e.center,\n scaleDelta = e.distance / previousGesture.distance,\n minScale = that.dimensions.minScale,\n maxScale = that.dimensions.maxScale,\n coordinates;\n if (movable.scale <= minScale && scaleDelta < 1) {\n scaleDelta += (1 - scaleDelta) * 0.8;\n }\n\n if (movable.scale * scaleDelta >= maxScale) {\n scaleDelta = maxScale / movable.scale;\n }\n\n let offsetX = movable.x + that.offset.left,\n offsetY = movable.y + that.offset.top;\n coordinates = {\n x: (offsetX - previousCenter.x) * scaleDelta + center.x - offsetX,\n y: (offsetY - previousCenter.y) * scaleDelta + center.y - offsetY\n };\n\n movable.scaleWith(scaleDelta);\n\n x.dragMove(coordinates.x);\n y.dragMove(coordinates.y);\n\n that.dimensions.rescale(movable.scale);\n that.gesture = e;\n\n e.preventDefault();\n },\n move(e) {\n if (e.event.target.tagName.match(/textarea|input/i)) {\n return;\n }\n\n if (x.dimension.enabled || y.dimension.enabled) {\n x.dragMove(e.x.delta);\n y.dragMove(e.y.delta);\n e.preventDefault();\n } else {\n e.touch.skip();\n }\n },\n end(e) {\n e.preventDefault();\n }\n });\n }\n}\n\nlet translate = function(x, y, scale) {\n return 'translate3d(' + x + 'px,' + y + 'px,0) scale(' + scale + ')';\n};\n\nexport class Movable extends Observable {\n constructor(element) {\n super();\n\n let that = this;\n\n that.element = element;\n that.element.style.transformOrigin = 'left top';\n that.x = 0;\n that.y = 0;\n that.scale = 1;\n\n const coordinates = translate(that.x, that.y, that.scale);\n that.element.style.transform = coordinates;\n\n that._saveCoordinates(coordinates);\n }\n\n translateAxis(axis, by) {\n this[axis] += by;\n this.refresh();\n }\n\n scaleTo(scale) {\n this.scale = scale;\n this.refresh();\n }\n\n scaleWith(scaleDelta) {\n this.scale *= scaleDelta;\n this.refresh();\n }\n\n translate(coordinates) {\n this.x += coordinates.x;\n this.y += coordinates.y;\n this.refresh();\n }\n\n moveAxis(axis, value) {\n this[axis] = value;\n this.refresh();\n }\n\n moveTo(coordinates) {\n extend(this, coordinates);\n this.refresh();\n }\n\n refresh() {\n let that = this,\n x = that.x,\n y = that.y,\n newCoordinates;\n\n if (that.round) {\n x = Math.round(x);\n y = Math.round(y);\n }\n\n newCoordinates = translate(x, y, that.scale);\n\n if (newCoordinates !== that.coordinates) {\n that.element.style.transform = newCoordinates;\n\n that._saveCoordinates(newCoordinates);\n that.trigger(CHANGE);\n }\n }\n\n _saveCoordinates(coordinates) {\n this.coordinates = coordinates;\n }\n}\n","import {\n geometry as g,\n drawing as d\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n defined,\n last,\n setDefaultOptions\n} from '../../common';\n\nimport {\n proxy\n} from '../utils';\n\nimport {\n Layer\n} from './layer';\n\nimport {\n Movable\n} from '../scroller/draggable';\n\nimport {\n Location\n} from '../location';\n\nconst Group = d.Group;\n\nexport class ShapeLayer extends Layer {\n constructor(map, options) {\n super(map, options);\n\n this._pan = proxy(this._pan, this);\n\n this.surface = d.Surface.create(this.element, {\n width: map.scrollElement.clientWidth,\n height: map.scrollElement.clientHeight\n });\n\n this._initRoot();\n this.movable = new Movable(this.surface.element);\n this._markers = [];\n\n this._click = this._handler('shapeClick');\n this.surface.bind('click', this._click);\n this._mouseleave = this._handler('shapeMouseLeave');\n this.surface.bind('mouseleave', this._mouseleave);\n this.surface.bind('mouseenter', this._mouseenter.bind(this));\n }\n\n destroy() {\n super.destroy();\n\n this.surface.destroy();\n }\n\n _reset() {\n super._reset();\n\n this._translateSurface();\n\n this._data = this._readData();\n\n if (this._hasData()) {\n this._load(this._data);\n }\n }\n\n _initRoot() {\n this._root = new Group();\n this.surface.draw(this._root);\n }\n\n _beforeReset() {\n this.surface.clear();\n this._initRoot();\n }\n\n _resize() {\n this.surface.size(this.map.size());\n }\n\n _readData() {\n const data = super._readData();\n\n if (data.type === \"FeatureCollection\") {\n return data.features;\n }\n\n if (data.type === \"GeometryCollection\") {\n return data.geometries;\n }\n\n return data;\n }\n\n _load(data) {\n this._data = data;\n this._clearMarkers();\n\n if (!this._loader) {\n this._loader = new GeoJsonLoader(this.map, this.options.style, this);\n }\n\n let container = new Group();\n\n for (let i = 0; i < data.length; i++) {\n let shape = this._loader.parse(data[i]);\n\n if (shape) {\n container.append(shape);\n }\n }\n\n this._root.clear();\n this._root.append(container);\n }\n\n shapeCreated(shape) {\n let cancelled = false;\n\n // the GeoJSON loader builds \"Point\" type as a circle\n // use the circle shape type as and indicator for rendering a marker\n // keep the behavior under a setting as this is supported by kendo jQuery Map\n // but we opted out of this in blazor\n if (shape instanceof d.Circle && this.map.options.renderPointsAsMarkers) {\n cancelled = defined(this._createMarker(shape));\n }\n\n if (!cancelled) {\n let args = {\n layer: this,\n shape: shape\n };\n\n cancelled = this.map.trigger('shapeCreated', args);\n }\n\n return cancelled;\n }\n\n featureCreated(e) {\n e.layer = this;\n this.map.trigger('shapeFeatureCreated', e);\n }\n\n _createMarker(shape) {\n let marker = this.map.markers.bind({\n location: shape.location\n }, shape.dataItem);\n\n if (marker) {\n this._markers.push(marker);\n }\n\n return marker;\n }\n\n _clearMarkers() {\n for (let i = 0; i < this._markers.length; i++) {\n this.map.markers.remove(this._markers[i]);\n }\n\n this._markers = [];\n }\n\n _pan() {\n if (!this._panning) {\n this._panning = true;\n this.surface.suspendTracking();\n }\n }\n\n _panEnd(e) {\n super._panEnd(e);\n this._translateSurface();\n this.surface.resumeTracking();\n this._panning = false;\n }\n\n _translateSurface() {\n let map = this.map;\n let nw = map.locationToView(map.extent().nw);\n\n if (this.surface.translate) {\n this.surface.translate(nw);\n this.movable.moveTo({\n x: nw.x,\n y: nw.y\n });\n }\n }\n\n _eventArgs(e) {\n return {\n layer: this,\n layerIndex: this._layerIndex(),\n shape: e.element,\n shapeIndex: (this._data || []).indexOf(e.element.dataItem),\n originalEvent: e.originalEvent\n };\n }\n\n _handler(eventName) {\n return (e) => {\n if (e.element) {\n this.map.trigger(eventName, this._eventArgs(e));\n }\n };\n }\n\n _mouseenter(e) {\n if (!e.element) {\n return;\n }\n\n this.map.trigger('shapeMouseEnter', this._eventArgs(e));\n\n const shape = e.element;\n const anchor = this._tooltipAnchor(e);\n this.map._tooltip.show(anchor, this._tooltipContext(shape));\n }\n\n _tooltipContext(shape) {\n return {\n type: 'shape',\n layerIndex: this._layerIndex(),\n className: 'k-map-shape-tooltip',\n dataItem: shape.dataItem,\n location: shape.location\n };\n }\n\n _tooltipAnchor(e) {\n const cursor = this.map.eventOffset(e.originalEvent);\n return {\n top: cursor.y,\n left: cursor.x\n };\n }\n\n _activate() {\n super._activate();\n this._panHandler = proxy(this._pan, this);\n this.map.bind('pan', this.panHandler);\n }\n\n _deactivate() {\n super._deactivate();\n this.map.unbind('pan', this._panHandler);\n }\n}\n\nsetDefaultOptions(ShapeLayer, {\n autoBind: true,\n zIndex: 100\n});\n\nclass GeoJsonLoader extends Class {\n constructor(locator, defaultStyle, observer) {\n super();\n this.observer = observer;\n this.locator = locator;\n this.style = defaultStyle;\n }\n\n parse(item) {\n let root = new Group();\n let unwrap = true;\n\n if (item.type === 'Feature') {\n unwrap = false;\n this._loadGeometryTo(root, item.geometry, item);\n this._featureCreated(root, item);\n } else {\n this._loadGeometryTo(root, item, item);\n }\n\n if (unwrap && root.children.length < 2) {\n root = root.children[0];\n }\n\n return root;\n }\n\n _shapeCreated(shape) {\n let cancelled = false;\n\n if (this.observer && this.observer.shapeCreated) {\n cancelled = this.observer.shapeCreated(shape);\n }\n\n return cancelled;\n }\n\n _featureCreated(group, dataItem) {\n if (this.observer && this.observer.featureCreated) {\n this.observer.featureCreated({\n group: group,\n dataItem: dataItem,\n properties: dataItem.properties\n });\n }\n }\n\n _loadGeometryTo(container, geometry, dataItem) {\n let coords = geometry.coordinates;\n let i;\n let path;\n\n switch (geometry.type) {\n case 'LineString':\n path = this._loadPolygon(container, [coords], dataItem);\n this._setLineFill(path);\n break;\n case 'MultiLineString':\n for (i = 0; i < coords.length; i++) {\n path = this._loadPolygon(container, [coords[i]], dataItem);\n this._setLineFill(path);\n }\n break;\n case 'Polygon':\n this._loadPolygon(container, coords, dataItem);\n break;\n case 'MultiPolygon':\n for (i = 0; i < coords.length; i++) {\n this._loadPolygon(container, coords[i], dataItem);\n }\n break;\n case 'Point':\n this._loadPoint(container, coords, dataItem);\n break;\n case 'MultiPoint':\n for (i = 0; i < coords.length; i++) {\n this._loadPoint(container, coords[i], dataItem);\n }\n break;\n default:\n break;\n }\n }\n\n _setLineFill(path) {\n let segments = path.segments;\n\n if (segments.length < 4 || !segments[0].anchor().equals(last(segments).anchor())) {\n path.options.fill = null;\n }\n }\n\n _loadShape(container, shape) {\n if (!this._shapeCreated(shape)) {\n container.append(shape);\n }\n\n return shape;\n }\n\n _loadPolygon(container, rings, dataItem) {\n let shape = this._buildPolygon(rings);\n shape.dataItem = dataItem;\n shape.location = this.locator.viewToLocation(shape.bbox().center());\n return this._loadShape(container, shape);\n }\n\n _buildPolygon(rings) {\n let type = rings.length > 1 ? d.MultiPath : d.Path;\n let path = new type(this.style);\n\n for (let i = 0; i < rings.length; i++) {\n for (let j = 0; j < rings[i].length; j++) {\n let point = this.locator.locationToView(Location.fromLngLat(rings[i][j]));\n if (j === 0) {\n path.moveTo(point.x, point.y);\n } else {\n path.lineTo(point.x, point.y);\n }\n }\n }\n\n return path;\n }\n\n _loadPoint(container, coords, dataItem) {\n let location = Location.fromLngLat(coords);\n let point = this.locator.locationToView(location);\n let circle = new g.Circle(point, 10);\n let shape = new d.Circle(circle, this.style);\n\n shape.dataItem = dataItem;\n shape.location = location;\n\n return this._loadShape(container, shape);\n }\n}\n","import {\n geometry as g,\n drawing as d\n} from '@progress/kendo-drawing';\n\nimport {\n Class,\n defined,\n isFunction,\n getter,\n setDefaultOptions\n} from '../../common';\n\nimport {\n ShapeLayer\n} from './shape';\n\nimport {\n Location\n} from '../location';\n\nexport class BubbleLayer extends ShapeLayer {\n _readData() {\n const data = this.options.data || [];\n return data;\n }\n\n _load(data) {\n this._data = data;\n this.surface.clear();\n\n if (data.length === 0) {\n return;\n }\n\n let options = this.options;\n let getValue = getter(options.valueField);\n\n let newData = data.slice(0);\n newData.sort(function(a, b) {\n return getValue(b) - getValue(a);\n });\n\n let scaleType = this._scaleType();\n let scale;\n let getLocation = getter(this.options.locationField);\n\n for (let i = 0; i < newData.length; i++) {\n let dataItem = newData[i];\n let location = getLocation(dataItem);\n let value = getValue(dataItem);\n\n if (defined(location) && defined(value)) {\n if (!scale) {\n scale = new scaleType([\n 0,\n value\n ], [\n options.minSize,\n options.maxSize\n ]);\n }\n\n location = Location.create(location);\n\n let center = this.map.locationToView(location);\n let size = scale.map(value);\n let symbol = this._createSymbol({\n center: center,\n size: size,\n style: options.style,\n dataItem: dataItem,\n location: location\n });\n\n symbol.dataItem = dataItem;\n symbol.location = location;\n symbol.value = value;\n\n this._drawSymbol(symbol);\n }\n }\n }\n\n _scaleType() {\n let scale = this.options.scale;\n\n if (isFunction(scale)) {\n return scale;\n }\n\n return Scales[scale];\n }\n\n _createSymbol(args) {\n let symbol = this.options.symbol;\n\n if (!isFunction(symbol)) {\n symbol = Symbols[symbol];\n }\n\n return symbol(args);\n }\n\n _drawSymbol(shape) {\n let args = {\n layer: this,\n shape: shape\n };\n\n let cancelled = this.map.trigger('shapeCreated', args);\n\n if (!cancelled) {\n this.surface.draw(shape);\n }\n }\n\n _tooltipContext(shape) {\n return {\n type: 'bubble',\n layerIndex: this._layerIndex(),\n className: 'k-map-bubble-tooltip',\n dataItem: shape.dataItem,\n location: shape.location,\n value: shape.value\n };\n }\n\n _tooltipAnchor(e) {\n const shape = e.element;\n const center = shape.bbox().center();\n\n return {\n top: center.y,\n left: center.x\n };\n }\n}\n\nsetDefaultOptions(BubbleLayer, {\n // autoBind: true,\n locationField: 'location',\n valueField: 'value',\n minSize: 0,\n maxSize: 100,\n scale: 'sqrt',\n symbol: 'circle',\n // ensure bubble layers are displayed over tile and shape layers\n zIndex: 200\n});\n\nclass SqrtScale extends Class {\n constructor(domain, range) {\n super();\n\n this._domain = domain;\n this._range = range;\n\n let domainRange = Math.sqrt(domain[1]) - Math.sqrt(domain[0]);\n let outputRange = range[1] - range[0];\n\n this._ratio = outputRange / domainRange;\n }\n\n map(value) {\n let rel = (Math.sqrt(value) - Math.sqrt(this._domain[0])) * this._ratio;\n return this._range[0] + rel;\n }\n}\n\nlet Scales = {\n sqrt: SqrtScale\n};\n\nlet Symbols = {\n circle: function(args) {\n let geo = new g.Circle(args.center, args.size / 2);\n return new d.Circle(geo, args.style);\n },\n\n square: function(args) {\n let path = new d.Path(args.style);\n let halfSize = args.size / 2;\n let center = args.center;\n path.moveTo(center.x - halfSize, center.y - halfSize).lineTo(center.x + halfSize, center.y - halfSize).lineTo(center.x + halfSize, center.y + halfSize).lineTo(center.x - halfSize, center.y + halfSize).close();\n return path;\n }\n};\n","import {\n Class,\n addClass,\n isArray,\n getter,\n deepExtend,\n setDefaultOptions,\n renderIcon,\n on,\n off,\n} from '../../common';\n\nimport { Layer } from './layer';\nimport { Location } from '../location';\nimport {\n proxy,\n toHyphens,\n toPixels,\n convertToHtml\n} from '../utils';\nimport TemplateService from '../../services/template-service';\n\nconst CLICK = \"click\";\nconst MOUSE_ENTER = \"mouseenter\";\nconst MOUSE_LEAVE = \"mouseleave\";\n\nconst extend = Object.assign;\nconst MARKER_CLASS_NAME = \"k-marker\";\nconst MARKER_CLASS = \".\" + MARKER_CLASS_NAME;\n\nexport class MarkerLayer extends Layer {\n constructor(map, options) {\n super(map, options);\n\n this._markerClickHandler = proxy(this._markerClick, this);\n on(this.element, CLICK, MARKER_CLASS, this._markerClickHandler);\n\n this.items = [];\n\n this._load(this._readData());\n }\n\n destroy() {\n super.destroy();\n off(this.element, CLICK, this._markerClickHandler);\n this.clear();\n }\n\n add(args) {\n if (isArray(args)) {\n for (let i = 0; i < args.length; i++) {\n this._addOne(args[i]);\n }\n } else {\n return this._addOne(args);\n }\n }\n\n remove(marker) {\n marker.destroy();\n let index = (this.items || []).indexOf(marker);\n\n if (index > -1) {\n this.items.splice(index, 1);\n }\n }\n\n clear() {\n for (let i = 0; i < this.items.length; i++) {\n this.items[i].destroy();\n }\n\n this.items = [];\n }\n\n update(marker) {\n let location = marker.location();\n\n if (location) {\n marker.showAt(this.map.locationToView(location));\n\n let args = {\n marker: marker,\n layer: this\n };\n\n this.map.trigger('markerActivate', args);\n }\n }\n\n _reset() {\n super._reset();\n\n let items = this.items;\n\n for (let i = 0; i < items.length; i++) {\n this.update(items[i]);\n }\n }\n\n bind(options, dataItem) {\n let marker = Marker.create(options, this.options);\n marker.dataItem = dataItem;\n\n let args = {\n marker: marker,\n layer: this\n };\n\n let cancelled = this.map.trigger('markerCreated', args);\n\n if (!cancelled) {\n this.add(marker);\n return marker;\n }\n }\n\n _addOne(arg) {\n let marker = Marker.create(arg, this.options);\n marker.addTo(this);\n return marker;\n }\n\n _readData() {\n const data = this.options.data || [];\n return data;\n }\n\n _load(data) {\n this._data = data;\n this.clear();\n\n let getLocation = getter(this.options.locationField);\n let getTitle = getter(this.options.titleField);\n\n for (let i = 0; i < data.length; i++) {\n let dataItem = data[i];\n\n this.bind({\n location: getLocation(dataItem),\n title: getTitle(dataItem)\n }, dataItem);\n }\n }\n\n _markerClick(e) {\n const marker = e.currentTarget._kendoNode;\n\n let args = {\n layer: this,\n layerIndex: this._layerIndex(),\n marker: marker,\n markerIndex: (this.items || []).indexOf(marker),\n originalEvent: e\n };\n\n this.map.trigger('markerClick', args);\n }\n\n _markerMouseEnter(e) {\n const args = this._createMarkerEventArgs(e);\n this.map.trigger(\"markerMouseEnter\", args);\n }\n\n _markerMouseLeave(e) {\n const args = this._createMarkerEventArgs(e);\n this.map.trigger(\"markerMouseLeave\", args);\n }\n\n _createMarkerEventArgs(e) {\n const marker = e.marker;\n\n let args = extend({}, {\n layer: this,\n layerIndex: this._layerIndex(),\n marker: marker,\n markerIndex: (this.items || []).indexOf(marker)\n }, e);\n\n return args;\n }\n}\n\nsetDefaultOptions(MarkerLayer, {\n zIndex: 1000,\n autoBind: true,\n locationField: 'location',\n titleField: 'title',\n template: \"\"\n});\n\nexport class Marker extends Class {\n constructor(options) {\n super();\n this.options = options || {};\n }\n\n destroy() {\n this.layer = null;\n this.unbindEvents();\n this.hide();\n }\n\n addTo(parent) {\n this.layer = parent.markers || parent;\n this.layer.items.push(this);\n this.layer.update(this);\n }\n\n location(value) {\n if (value) {\n this.options.location = Location.create(value).toArray();\n\n if (this.layer) {\n this.layer.update(this);\n }\n\n return this;\n }\n\n return Location.create(this.options.location);\n }\n\n showAt(point) {\n this.render();\n\n this._anchor = { left: Math.round(point.x), top: Math.round(point.y) };\n this.element.style.left = toPixels(this._anchor.left);\n this.element.style.top = toPixels(this._anchor.top);\n }\n\n hide() {\n if (this.element) {\n this.element.remove();\n this.element = null;\n }\n }\n\n bindEvents() {\n if (!this.element) {\n return;\n }\n\n this._mouseEnterHandler = proxy(this._mouseEnter, this);\n on(this.element, MOUSE_ENTER, MARKER_CLASS, this._mouseEnterHandler);\n this._mouseLeaveHandler = proxy(this._mouseLeave, this);\n on(this.element, MOUSE_LEAVE, MARKER_CLASS, this._mouseLeaveHandler);\n }\n\n unbindEvents() {\n if (!this.element) {\n return;\n }\n\n off(this.element, MOUSE_ENTER, this._mouseEnterHandler);\n off(this.element, MOUSE_LEAVE, this._mouseLeaveHandler);\n }\n\n render() {\n if (!this.element) {\n let options = this.options;\n let layer = this.layer;\n let element = document.createElement('span');\n addClass(element, MARKER_CLASS_NAME);\n\n if (this.options.template) {\n const templateFn = this._compileTemplate(this.options.template);\n const templateHtml = templateFn(this.dataItem);\n const templateElement = convertToHtml(templateHtml);\n element.appendChild(templateElement);\n } else if (options.svgIcon) {\n renderIcon(element, { icon: options.svgIcon, iconClass: \"k-icon-xxl\", svgIcons: this.options.icons.svgIcons, type: \"svg\" });\n } else {\n let iconOptions = { icon: \"map-marker\", iconClass: \"k-icon-xxl\", svgIcons: this.options.icons.svgIcons, type: this.options.icons.type };\n\n if (options.shape) {\n if (options.shape === \"pinTarget\") {\n iconOptions.icon = \"map-marker-target\";\n renderIcon(element, iconOptions);\n } else if (options.shape === \"pin\") {\n renderIcon(element, iconOptions);\n } else {\n addClass(element, 'k-icon k-icon-xxl k-i-marker-' + toHyphens(options.shape || 'pin'));\n }\n } else {\n renderIcon(element, iconOptions);\n }\n }\n\n if (options.title) {\n element.setAttribute(\"title\", options.title);\n }\n\n const attributes = options.attributes || {};\n Object.keys(attributes).forEach(function(key) {\n element.setAttribute(key, attributes[key]);\n });\n\n element._kendoNode = this;\n element.style.zIndex = options.zIndex;\n\n this.element = element;\n\n if (layer) {\n layer.element.appendChild(this.element);\n }\n\n this.bindEvents();\n }\n }\n\n _mouseEnter(e) {\n const args = this._createEventArgs(e);\n this.layer._markerMouseEnter(args);\n\n this.layer.map._tooltip.show({\n top: this._anchor.top - this.element.offsetHeight,\n left: this._anchor.left\n }, this._tooltipContext());\n }\n\n _tooltipContext() {\n return {\n type: 'marker',\n layerIndex: this.layer._layerIndex(),\n className: 'k-map-marker-tooltip',\n dataItem: this.dataItem,\n title: this.options.title,\n location: this.location()\n };\n }\n\n _mouseLeave(e) {\n const args = this._createEventArgs(e);\n this.layer._markerMouseLeave(args);\n }\n\n _createEventArgs(e) {\n let args = {\n marker: this,\n originalEvent: e\n };\n\n return args;\n }\n\n _compileTemplate(template) {\n return TemplateService.compile(template, {\n paramName: \"dataItem\",\n useWithBlock: false\n });\n }\n\n static create(arg, defaults) {\n if (arg instanceof Marker) {\n return arg;\n }\n\n return new Marker(deepExtend({}, defaults, arg));\n }\n}\n","import {\n Class,\n now\n} from '../../common';\n\nimport {\n proxy,\n} from '../utils';\n\nconst extend = Object.assign;\n\nfunction animationFrame(callback) {\n window.requestAnimationFrame(callback);\n}\n\nexport class Animation extends Class {\n constructor() {\n super();\n let that = this;\n\n that._tickProxy = proxy(that._tick, that);\n that._started = false;\n }\n\n tick() { }\n done() { }\n onEnd() { }\n onCancel() { }\n\n start() {\n if (!this.enabled()) {\n return;\n }\n\n if (!this.done()) {\n this._started = true;\n animationFrame(this._tickProxy);\n } else {\n this.onEnd();\n }\n }\n\n enabled() {\n return true;\n }\n\n cancel() {\n this._started = false;\n this.onCancel();\n }\n\n _tick() {\n let that = this;\n\n if (!that._started) {\n return;\n }\n\n that.tick();\n\n if (!that.done()) {\n animationFrame(that._tickProxy);\n } else {\n that._started = false;\n that.onEnd();\n }\n }\n}\n\nexport class Transition extends Animation {\n constructor(options) {\n super();\n extend(this, options);\n }\n\n done() {\n return this.timePassed() >= this.duration;\n }\n\n timePassed() {\n return Math.min(this.duration, now() - this.startDate);\n }\n\n moveTo(options) {\n let that = this,\n movable = that.movable;\n\n that.initial = movable[that.axis];\n that.delta = options.location - that.initial;\n that.duration = typeof options.duration === 'number' ? options.duration : 300;\n that.tick = that._easeProxy(options.ease);\n that.startDate = now();\n that.start();\n }\n\n _easeProxy(ease) {\n let that = this;\n\n return function() {\n that.movable.moveAxis(that.axis, ease(that.timePassed(), that.initial, that.delta, that.duration));\n };\n }\n\n static easeOutExpo(t, b, c, d) {\n return t === d ? b + c : c * (-Math.pow(2, -10 * t / d) + 1) + b;\n }\n\n // static easeOutBack(t, b, c, d) {\n // let s = 1.70158;\n // return c * ((t = t / d - 1) * t * ((s + 1) * t + s) + 1) + b;\n // }\n}\n","// todo: extract to a separate place\n\nimport {\n Class,\n deepExtend,\n addClass,\n Observable,\n isFunction,\n setDefaultOptions,\n on,\n off,\n UserEvents\n} from '../../common';\n\nimport {\n convertToHtml,\n prepend,\n wrapInner,\n hasNativeScrolling,\n wheelDeltaY,\n proxy,\n setDefaultEvents\n} from '../utils';\n\nimport {\n Transition,\n Animation\n} from './fx';\n\nimport {\n Pane,\n PaneDimensions,\n Movable,\n TapCapture\n} from './draggable';\n\nlet\n extend = Object.assign,\n abs = Math.abs,\n SNAPBACK_DURATION = 500,\n SCROLLBAR_OPACITY = 0.7,\n FRICTION = 0.96,\n VELOCITY_MULTIPLIER = 10,\n MAX_VELOCITY = 55,\n OUT_OF_BOUNDS_FRICTION = 0.5,\n ANIMATED_SCROLLER_PRECISION = 5,\n // SCROLLER_RELEASE_CLASS = 'km-scroller-release',\n // SCROLLER_REFRESH_CLASS = 'km-scroller-refresh',\n PULL = 'pull',\n CHANGE = 'change',\n RESIZE = 'resize',\n SCROLL = 'scroll',\n MOUSE_WHEEL_ID = 2;\n\nclass ZoomSnapBack extends Animation {\n constructor(options) {\n super(options);\n let that = this;\n extend(that, options);\n that.userEvents.bind('gestureend', that.start.bind(this));\n that.tapCapture.bind('press', that.cancel.bind(this));\n }\n\n enabled() {\n return this.movable.scale < this.dimensions.minScale;\n }\n\n done() {\n return this.dimensions.minScale - this.movable.scale < 0.01;\n }\n\n tick() {\n let movable = this.movable;\n movable.scaleWith(1.1);\n this.dimensions.rescale(movable.scale);\n }\n\n onEnd() {\n let movable = this.movable;\n movable.scaleTo(this.dimensions.minScale);\n this.dimensions.rescale(movable.scale);\n }\n}\n\nclass DragInertia extends Animation {\n constructor(options) {\n super();\n let that = this;\n\n extend(that, options, {\n transition: new Transition({\n axis: options.axis,\n movable: options.movable,\n onEnd() {\n that._end();\n }\n })\n });\n\n that.tapCapture.bind('press', function() {\n that.cancel();\n });\n\n that.userEvents.bind('end', proxy(that.start, that));\n that.userEvents.bind('gestureend', proxy(that.start, that));\n that.userEvents.bind('tap', proxy(that.onEnd, that));\n }\n\n onCancel() {\n this.transition.cancel();\n }\n\n freeze(location) {\n let that = this;\n that.cancel();\n that._moveTo(location);\n }\n\n onEnd() {\n let that = this;\n if (that.paneAxis.outOfBounds()) {\n that._snapBack();\n } else {\n that._end();\n }\n }\n\n done() {\n return abs(this.velocity) < 1;\n }\n\n start(e) {\n let that = this,\n velocity;\n if (!that.dimension.enabled) {\n return;\n }\n if (that.paneAxis.outOfBounds()) {\n if (that.transition._started) {\n that.transition.cancel();\n that.velocity = Math.min(e.touch[that.axis].velocity * that.velocityMultiplier, MAX_VELOCITY);\n super.start();\n } else {\n that._snapBack();\n }\n } else {\n velocity = e.touch.id === MOUSE_WHEEL_ID ? 0 : e.touch[that.axis].velocity;\n that.velocity = Math.max(Math.min(velocity * that.velocityMultiplier, MAX_VELOCITY), -MAX_VELOCITY);\n that.tapCapture.captureNext();\n super.start();\n }\n }\n\n tick() {\n let that = this,\n dimension = that.dimension,\n friction = that.paneAxis.outOfBounds() ? OUT_OF_BOUNDS_FRICTION : that.friction,\n delta = that.velocity *= friction,\n location = that.movable[that.axis] + delta;\n\n if (!that.elastic && dimension.outOfBounds(location)) {\n location = Math.max(Math.min(location, dimension.max), dimension.min);\n that.velocity = 0;\n }\n\n that.movable.moveAxis(that.axis, location);\n }\n\n _end() {\n this.tapCapture.cancelCapture();\n this.end();\n }\n\n _snapBack() {\n let that = this,\n dimension = that.dimension,\n snapBack = that.movable[that.axis] > dimension.max ? dimension.max : dimension.min;\n\n that._moveTo(snapBack);\n }\n\n _moveTo(location) {\n this.transition.moveTo({\n location: location,\n duration: SNAPBACK_DURATION,\n ease: Transition.easeOutExpo\n });\n }\n}\n\nclass AnimatedScroller extends Animation {\n constructor(options) {\n super(options);\n let that = this;\n\n extend(that, options, {\n origin: {},\n destination: {},\n offset: {}\n });\n }\n\n tick() {\n this._updateCoordinates();\n this.moveTo(this.origin);\n }\n\n done() {\n return abs(this.offset.y) < ANIMATED_SCROLLER_PRECISION && abs(this.offset.x) < ANIMATED_SCROLLER_PRECISION;\n }\n\n onEnd() {\n this.moveTo(this.destination);\n if (this.callback) {\n this.callback.call();\n }\n }\n\n setCoordinates(from, to) {\n this.offset = {};\n this.origin = from;\n this.destination = to;\n }\n\n /* eslint-disable no-param-reassign */\n setCallback(callback) {\n if (callback && isFunction(callback)) {\n this.callback = callback;\n } else {\n callback = undefined;\n }\n }\n /* eslint-enable no-param-reassign */\n\n _updateCoordinates() {\n this.offset = {\n x: (this.destination.x - this.origin.x) / 4,\n y: (this.destination.y - this.origin.y) / 4\n };\n this.origin = {\n y: this.origin.y + this.offset.y,\n x: this.origin.x + this.offset.x\n };\n }\n}\n\nclass ScrollBar extends Class {\n constructor(options) {\n super();\n let that = this,\n horizontal = options.axis === 'x';\n\n const orientation = (horizontal ? 'horizontal' : 'vertical');\n const element = convertToHtml('
');\n\n extend(that, options, {\n element: element,\n elementSize: 0,\n movable: new Movable(element),\n scrollMovable: options.movable,\n alwaysVisible: options.alwaysVisible,\n size: horizontal ? 'width' : 'height'\n });\n\n that.scrollMovable.bind(CHANGE, that.refresh.bind(that));\n\n that.container.appendChild(element);\n\n if (options.alwaysVisible) {\n that.show();\n }\n }\n\n refresh() {\n let that = this,\n axis = that.axis,\n dimension = that.dimension,\n paneSize = dimension.size,\n scrollMovable = that.scrollMovable,\n sizeRatio = paneSize / dimension.total,\n position = Math.round(-scrollMovable[axis] * sizeRatio),\n size = Math.round(paneSize * sizeRatio);\n if (sizeRatio >= 1) {\n this.element.style.display = \"none\";\n } else {\n this.element.style.display = \"\";\n }\n if (position + size > paneSize) {\n size = paneSize - position;\n } else if (position < 0) {\n size += position;\n position = 0;\n }\n if (that.elementSize !== size) {\n that.element.style[that.size] = size + 'px';\n that.elementSize = size;\n }\n that.movable.moveAxis(axis, position);\n }\n\n show() {\n this.element.style.opacity = SCROLLBAR_OPACITY;\n this.element.style.visibility = \"visible\";\n }\n\n hide() {\n if (!this.alwaysVisible) {\n this.element.style.opacity = 0;\n }\n }\n}\n\n// export class Scroller extends Class {\nexport class Scroller extends Observable {\n constructor(element, options) {\n super();\n let that = this;\n this.element = element;\n\n this._initOptions(options);\n\n const hasScrolling = hasNativeScrolling(navigator.userAgent);\n that._native = that.options.useNative && hasScrolling;\n const scrollHeader = convertToHtml('
');\n\n if (that._native) {\n addClass(element, 'km-native-scroller');\n prepend(scrollHeader, element);\n\n extend(that, {\n scrollElement: element,\n fixedContainer: element.children[0]\n });\n\n return;\n }\n\n element.style.overflow = \"hidden\";\n addClass(element, 'km-scroll-wrapper');\n\n const scrollContainer = convertToHtml('
');\n wrapInner(element, scrollContainer);\n prepend(scrollHeader, element);\n\n let inner = element.children[1],\n tapCapture = new TapCapture(element),\n movable = new Movable(inner),\n\n dimensions = new PaneDimensions({\n element: inner,\n container: element,\n forcedEnabled: that.options.zoom\n }),\n avoidScrolling = this.options.avoidScrolling,\n\n userEvents = new UserEvents(element, {\n touchAction: 'none',\n allowSelection: true,\n preventDragEvent: true,\n captureUpIfMoved: true,\n multiTouch: that.options.zoom,\n supportDoubleTap: that.options.supportDoubleTap,\n start(e) {\n dimensions.refresh();\n let velocityX = abs(e.x.velocity),\n velocityY = abs(e.y.velocity),\n horizontalSwipe = velocityX * 2 >= velocityY,\n originatedFromFixedContainer = that.fixedContainer.contains(e.event.target),\n verticalSwipe = velocityY * 2 >= velocityX;\n if (!originatedFromFixedContainer && !avoidScrolling(e) && that.enabled && (dimensions.x.enabled && horizontalSwipe || dimensions.y.enabled && verticalSwipe)) {\n userEvents.capture();\n } else {\n userEvents.cancel();\n }\n }\n }),\n\n pane = new Pane({\n movable: movable,\n dimensions: dimensions,\n userEvents: userEvents,\n elastic: that.options.elastic\n }),\n\n zoomSnapBack = new ZoomSnapBack({\n movable: movable,\n dimensions: dimensions,\n userEvents: userEvents,\n tapCapture: tapCapture\n }),\n\n animatedScroller = new AnimatedScroller({\n moveTo(coordinates) {\n that.scrollTo(coordinates.x, coordinates.y);\n }\n });\n\n movable.bind(CHANGE, function() {\n that.scrollTop = -movable.y;\n that.scrollLeft = -movable.x;\n that.trigger(SCROLL, {\n scrollTop: that.scrollTop,\n scrollLeft: that.scrollLeft\n });\n });\n\n if (that.options.mousewheelScrolling) {\n this._wheelScrollHandler = this._wheelScroll.bind(this);\n on(element, 'wheel', this._wheelScrollHandler);\n }\n\n extend(that, {\n movable: movable,\n dimensions: dimensions,\n zoomSnapBack: zoomSnapBack,\n animatedScroller: animatedScroller,\n userEvents: userEvents,\n pane: pane,\n tapCapture: tapCapture,\n pulled: false,\n enabled: true,\n scrollElement: inner,\n scrollTop: 0,\n scrollLeft: 0,\n fixedContainer: element.children[0]\n });\n\n that._initAxis('x');\n that._initAxis('y');\n\n that._wheelEnd = function() {\n that._wheel = false;\n that.userEvents.end(0, that._wheelY);\n };\n\n dimensions.refresh();\n\n if (that.options.pullToRefresh) {\n that._initPullToRefresh();\n }\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _wheelScroll(e) {\n if (e.ctrlKey) {\n return;\n }\n if (!this._wheel) {\n this._wheel = true;\n this._wheelY = 0;\n this.userEvents.press(0, this._wheelY);\n }\n\n clearTimeout(this._wheelTimeout);\n this._wheelTimeout = setTimeout(this._wheelEnd, 50);\n let delta = wheelDeltaY(e);\n\n if (delta) {\n this._wheelY += delta;\n this.userEvents.move(0, this._wheelY);\n }\n\n e.preventDefault();\n }\n\n makeVirtual() {\n this.dimensions.y.makeVirtual();\n }\n\n virtualSize(min, max) {\n this.dimensions.y.virtualSize(min, max);\n }\n\n height() {\n return this.dimensions.y.size;\n }\n\n scrollHeight() {\n return this.scrollElement.scrollHeight;\n }\n\n scrollWidth() {\n return this.scrollElement.scrollWidth;\n }\n\n _resize() {\n if (!this._native) {\n this.contentResized();\n }\n }\n\n setOptions(options) {\n let that = this;\n\n this._initOptions(options);\n\n if (options.pullToRefresh) {\n that._initPullToRefresh();\n }\n }\n\n reset() {\n if (this._native) {\n this.scrollElement.scrollTop(0);\n } else {\n this.movable.moveTo({\n x: 0,\n y: 0\n });\n this._scale(1);\n }\n }\n\n contentResized() {\n this.dimensions.refresh();\n if (this.pane.x.outOfBounds()) {\n this.movable.moveAxis('x', this.dimensions.x.min);\n }\n if (this.pane.y.outOfBounds()) {\n this.movable.moveAxis('y', this.dimensions.y.min);\n }\n }\n\n zoomOut() {\n let dimensions = this.dimensions;\n dimensions.refresh();\n this._scale(dimensions.fitScale);\n this.movable.moveTo(dimensions.centerCoordinates());\n }\n\n enable() {\n this.enabled = true;\n }\n\n disable() {\n this.enabled = false;\n }\n\n scrollTo(x, y) {\n if (this._native) {\n this.scrollElement.scrollLeft(abs(x));\n this.scrollElement.scrollTop(abs(y));\n } else {\n this.dimensions.refresh();\n this.movable.moveTo({\n x: x,\n y: y\n });\n }\n }\n\n animatedScrollTo(x, y, callback) {\n let from, to;\n if (this._native) {\n this.scrollTo(x, y);\n } else {\n from = {\n x: this.movable.x,\n y: this.movable.y\n };\n to = {\n x: x,\n y: y\n };\n this.animatedScroller.setCoordinates(from, to);\n this.animatedScroller.setCallback(callback);\n this.animatedScroller.start();\n }\n }\n\n // kept for API compatibility, not used\n pullHandled() {\n // let that = this;\n\n // removeClass(that.refreshHint, SCROLLER_REFRESH_CLASS);\n // that.hintContainer.innerHTML = that.pullTemplate({}));\n\n // that.yinertia.onEnd();\n // that.xinertia.onEnd();\n // that.userEvents.cancel();\n }\n\n destroy() {\n const element = this.element;\n\n off(element, 'wheel', this._wheelScrollHandler);\n\n if (this.userEvents) {\n this.userEvents.destroy();\n }\n }\n\n _scale(scale) {\n this.dimensions.rescale(scale);\n this.movable.scaleTo(scale);\n }\n\n _initPullToRefresh() {\n }\n\n // kept for API compatibility, not used\n _dragEnd() {\n // let that = this;\n\n // if (!that.pulled) {\n // return;\n // }\n\n // that.pulled = false;\n\n // removeClass(that.refreshHint, SCROLLER_RELEASE_CLASS);\n // addClass(that.refreshHint, SCROLLER_REFRESH_CLASS);\n\n // that.hintContainer.innerHTML = that.refreshTemplate({});\n\n // that.yinertia.freeze(that.options.pullOffset / 2);\n // that.trigger('pull');\n }\n\n // kept for API compatibility, not used\n _paneChange() {\n // let that = this;\n // if (that.movable.y / OUT_OF_BOUNDS_FRICTION > that.options.pullOffset) {\n // if (!that.pulled) {\n // that.pulled = true;\n // that.refreshHint.removeClass(SCROLLER_REFRESH_CLASS).addClass(SCROLLER_RELEASE_CLASS);\n // that.hintContainer.html(that.releaseTemplate({}));\n // that.hintContainer.html(that.releaseTemplate({}));\n // }\n // } else if (that.pulled) {\n // that.pulled = false;\n // that.refreshHint.removeClass(SCROLLER_RELEASE_CLASS);\n // that.hintContainer.html(that.pullTemplate({}));\n // }\n }\n\n _initAxis(axis) {\n let that = this,\n movable = that.movable,\n dimension = that.dimensions[axis],\n tapCapture = that.tapCapture,\n paneAxis = that.pane[axis],\n scrollBar = new ScrollBar({\n axis: axis,\n movable: movable,\n dimension: dimension,\n container: that.element,\n alwaysVisible: that.options.visibleScrollHints\n });\n\n dimension.bind(CHANGE, function() {\n scrollBar.refresh();\n });\n\n paneAxis.bind(CHANGE, function() {\n scrollBar.show();\n });\n\n that[axis + 'inertia'] = new DragInertia({\n axis: axis,\n paneAxis: paneAxis,\n movable: movable,\n tapCapture: tapCapture,\n userEvents: that.userEvents,\n dimension: dimension,\n elastic: that.options.elastic,\n friction: that.options.friction || FRICTION,\n velocityMultiplier: that.options.velocityMultiplier || VELOCITY_MULTIPLIER,\n end() {\n scrollBar.hide();\n that.trigger('scrollEnd', {\n axis: axis,\n scrollTop: that.scrollTop,\n scrollLeft: that.scrollLeft\n });\n }\n });\n }\n}\n\nsetDefaultOptions(Scroller, {\n name: 'Scroller',\n zoom: false,\n pullOffset: 140,\n visibleScrollHints: false,\n elastic: true,\n useNative: false,\n mousewheelScrolling: true,\n avoidScrolling() {\n return false;\n },\n pullToRefresh: false,\n messages: {\n pullTemplate: 'Pull to refresh',\n releaseTemplate: 'Release to refresh',\n refreshTemplate: 'Refreshing'\n }\n});\n\nsetDefaultEvents(Scroller, [\n PULL,\n SCROLL,\n RESIZE\n]);\n\n","class MapService {\n constructor(widget, context = {}) {\n this.sender = context.sender || widget;\n this.widget = widget;\n this.rtl = Boolean(context.rtl);\n }\n\n notify(name, args) {\n if (this.widget) {\n this.widget.trigger(name, args);\n }\n }\n}\n\nexport default MapService;\n","import {\n geometry as g,\n throttle\n} from '@progress/kendo-drawing';\n\nimport {\n addClass,\n setDefaultOptions,\n valueOrDefault,\n defined,\n Observable,\n mousewheelDelta,\n limitValue,\n deepExtend,\n elementOffset,\n isArray,\n round,\n now,\n on,\n off,\n getSupportedFeatures,\n} from '../common';\n\nimport {\n EPSG3857\n} from './crs';\n\nimport {\n Attribution\n} from './attribution';\n\nimport {\n Navigator\n} from './navigator';\n\nimport {\n ZoomControl\n} from './zoom';\n\nimport {\n Location\n} from './location';\n\nimport {\n Extent\n} from './extent';\n\nimport { Tooltip } from './tooltip/tooltip';\n\nimport {\n TileLayer\n} from './layers/tile';\n\nimport {\n BubbleLayer\n} from './layers/bubble';\n\nimport {\n ShapeLayer\n} from './layers/shape';\n\nimport {\n MarkerLayer\n} from './layers/marker';\n\nimport {\n removeChildren,\n proxy,\n setDefaultEvents,\n convertToHtml,\n renderPos\n} from './utils';\n\nimport {\n Scroller\n} from './scroller/scroller';\n\nimport MapService from './../services/map-service';\n\nimport { CENTER_CHANGE, INIT, ZOOM_CHANGE } from './constants';\n\nlet math = Math,\n min = math.min,\n pow = math.pow,\n Point = g.Point,\n MARKER = \"marker\",\n LOCATION = \"location\",\n FRICTION = 0.9,\n FRICTION_MOBILE = 0.93,\n MOUSEWHEEL = 'wheel',\n MOUSEWHEEL_THROTTLE = 50,\n VELOCITY_MULTIPLIER = 5,\n DEFAULT_ZOOM_RATE = 1;\n\nconst layersMap = {\n bubble: BubbleLayer,\n shape: ShapeLayer,\n tile: TileLayer,\n [MARKER]: MarkerLayer\n};\n\nclass Map extends Observable {\n constructor(element, options = {}, themeOptions = {}, context = {}) {\n super();\n\n this._init(element, options, themeOptions, context);\n }\n\n destroy() {\n this.scroller.destroy();\n\n if (this._tooltip) {\n this._tooltip.destroy();\n }\n\n if (this.navigator) {\n this.navigator.destroy();\n }\n if (this.attribution) {\n this.attribution.destroy();\n }\n if (this.zoomControl) {\n this.zoomControl.destroy();\n }\n\n if (isArray(this.markers)) {\n this.markers.forEach(markerLayer => {\n markerLayer.destroy();\n });\n } else {\n this.markers.destroy();\n }\n\n for (let i = 0; i < this.layers.length; i++) {\n this.layers[i].destroy();\n }\n\n off(this.element, MOUSEWHEEL, this._mousewheelHandler);\n\n super.destroy();\n }\n\n // eslint-disable-next-line no-unused-vars\n _init(element, options = {}, themeOptions = {}, context = {}) {\n this.support = getSupportedFeatures();\n this.context = context;\n\n this.initObserver(context);\n this.initServices(context);\n this._notifyObserver(INIT);\n\n this._initOptions(options);\n this._setEvents(options);\n this.crs = new EPSG3857();\n\n this._initElement(element);\n\n this._viewOrigin = this._getOrigin();\n\n this._tooltip = this._createTooltip();\n this._initScroller();\n this._initMarkers();\n this._initControls();\n this._initLayers();\n this._reset();\n\n const mousewheelThrottled = throttle(this._mousewheel.bind(this), MOUSEWHEEL_THROTTLE);\n this._mousewheelHandler = (e) => {\n e.preventDefault();\n mousewheelThrottled(e);\n };\n on(this.element, MOUSEWHEEL, this._mousewheelHandler);\n }\n\n _initOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n\n _initElement(element) {\n this.element = element;\n\n addClass(element, \"k-map\");\n element.style.position = \"relative\";\n element.setAttribute(\"data-role\", \"map\");\n removeChildren(element);\n\n const div = convertToHtml(\"
\");\n this.element.appendChild(div);\n }\n\n initServices(context = {}) {\n this.widgetService = new MapService(this, context);\n }\n\n initObserver(context = {}) {\n this.observers = [];\n this.addObserver(context.observer);\n }\n\n addObserver(observer) {\n if (observer) {\n this.observers.push(observer);\n }\n }\n\n removeObserver(observer) {\n const index = this.observers.indexOf(observer);\n\n if (index >= 0) {\n this.observers.splice(index, 1);\n }\n }\n\n requiresHandlers(eventNames) {\n const observers = this.observers;\n\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].requiresHandlers(eventNames)) {\n return true;\n }\n }\n }\n\n trigger(name, args = {}) {\n args.sender = this;\n\n const observers = this.observers;\n let isDefaultPrevented = false;\n\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].trigger(name, args)) {\n isDefaultPrevented = true;\n }\n }\n\n if (!isDefaultPrevented) {\n super.trigger(name, args);\n }\n\n return isDefaultPrevented;\n }\n\n _notifyObserver(name, args = {}) {\n args.sender = this;\n\n const observers = this.observers;\n let isDefaultPrevented = false;\n\n for (let idx = 0; idx < observers.length; idx++) {\n if (observers[idx].trigger(name, args)) {\n isDefaultPrevented = true;\n }\n }\n\n return isDefaultPrevented;\n }\n\n zoom(level) {\n let options = this.options;\n let result;\n\n if (defined(level)) {\n const zoomLevel = math.round(limitValue(level, options.minZoom, options.maxZoom));\n\n if (options.zoom !== zoomLevel) {\n options.zoom = zoomLevel;\n this.widgetService.notify(ZOOM_CHANGE, { zoom: options.zoom });\n\n this._reset();\n }\n result = this;\n } else {\n result = options.zoom;\n }\n\n return result;\n }\n\n center(center) {\n let result;\n\n if (center) {\n const current = Location.create(center);\n const previous = Location.create(this.options.center);\n if (!current.equals(previous)) {\n this.options.center = current.toArray();\n this.widgetService.notify(CENTER_CHANGE, { center: this.options.center });\n this._reset();\n }\n\n result = this;\n } else {\n result = Location.create(this.options.center);\n }\n\n return result;\n }\n\n extent(extent) {\n let result;\n\n if (extent) {\n this._setExtent(extent);\n result = this;\n } else {\n result = this._getExtent();\n }\n\n return result;\n }\n\n setOptions(options = {}) {\n const element = this.element;\n\n this.destroy();\n removeChildren(element);\n this._init(element, options, {}, this.context);\n\n this._reset();\n }\n\n locationToLayer(location, zoom) {\n let clamp = !this.options.wraparound;\n const locationObject = Location.create(location);\n\n return this.crs.toPoint(locationObject, this._layerSize(zoom), clamp);\n }\n\n layerToLocation(point, zoom) {\n let clamp = !this.options.wraparound;\n const pointObject = Point.create(point);\n\n return this.crs.toLocation(pointObject, this._layerSize(zoom), clamp);\n }\n\n locationToView(location) {\n const locationObject = Location.create(location);\n let origin = this.locationToLayer(this._viewOrigin);\n let point = this.locationToLayer(locationObject);\n\n return point.translateWith(origin.scale(-1));\n }\n\n viewToLocation(point, zoom) {\n const origin = this.locationToLayer(this._getOrigin(), zoom);\n const pointObject = Point.create(point);\n const pointResult = pointObject.clone().translateWith(origin);\n\n return this.layerToLocation(pointResult, zoom);\n }\n\n eventOffset(e) {\n let x;\n let y;\n let offset = elementOffset(this.element);\n\n if ((e.x && e.x[LOCATION]) || (e.y && e.y[LOCATION])) {\n x = e.x[LOCATION] - offset.left;\n y = e.y[LOCATION] - offset.top;\n } else {\n let event = e.originalEvent || e;\n x = valueOrDefault(event.pageX, event.clientX) - offset.left;\n y = valueOrDefault(event.pageY, event.clientY) - offset.top;\n }\n\n const point = new g.Point(x, y);\n\n return point;\n }\n\n eventToView(e) {\n let cursor = this.eventOffset(e);\n return this.locationToView(this.viewToLocation(cursor));\n }\n\n eventToLayer(e) {\n return this.locationToLayer(this.eventToLocation(e));\n }\n\n eventToLocation(e) {\n let cursor = this.eventOffset(e);\n return this.viewToLocation(cursor);\n }\n\n viewSize() {\n let element = this.element;\n let scale = this._layerSize();\n let width = element.clientWidth;\n\n if (!this.options.wraparound) {\n width = min(scale, width);\n }\n\n return {\n width: width,\n height: min(scale, element.clientHeight)\n };\n }\n\n exportVisual() {\n this._reset();\n return false;\n }\n\n hideTooltip() {\n if (this._tooltip) {\n this._tooltip.hide();\n }\n }\n\n _setOrigin(origin, zoom) {\n let size = this.viewSize(),\n topLeft;\n\n const originLocation = this._origin = Location.create(origin);\n topLeft = this.locationToLayer(originLocation, zoom);\n topLeft.x += size.width / 2;\n topLeft.y += size.height / 2;\n this.options.center = this.layerToLocation(topLeft, zoom).toArray();\n this.widgetService.notify(CENTER_CHANGE, { center: this.options.center });\n\n return this;\n }\n\n _getOrigin(invalidate) {\n let size = this.viewSize(),\n topLeft;\n\n if (invalidate || !this._origin) {\n topLeft = this.locationToLayer(this.center());\n topLeft.x -= size.width / 2;\n topLeft.y -= size.height / 2;\n this._origin = this.layerToLocation(topLeft);\n }\n\n return this._origin;\n }\n\n _setExtent(newExtent) {\n let raw = Extent.create(newExtent);\n let se = raw.se.clone();\n\n if (this.options.wraparound && se.lng < 0 && newExtent.nw.lng > 0) {\n se.lng = 180 + (180 + se.lng);\n }\n\n const extent = new Extent(raw.nw, se);\n this.center(extent.center());\n let width = this.element.clientWidth;\n let height = this.element.clientHeight;\n let zoom;\n\n for (zoom = this.options.maxZoom; zoom >= this.options.minZoom; zoom--) {\n let topLeft = this.locationToLayer(extent.nw, zoom);\n let bottomRight = this.locationToLayer(extent.se, zoom);\n let layerWidth = math.abs(bottomRight.x - topLeft.x);\n let layerHeight = math.abs(bottomRight.y - topLeft.y);\n\n if (layerWidth <= width && layerHeight <= height) {\n break;\n }\n }\n\n this.zoom(zoom);\n }\n\n _getExtent() {\n let nw = this._getOrigin();\n let bottomRight = this.locationToLayer(nw);\n let size = this.viewSize();\n\n bottomRight.x += size.width;\n bottomRight.y += size.height;\n\n let se = this.layerToLocation(bottomRight);\n\n return new Extent(nw, se);\n }\n\n _zoomAround(pivot, level) {\n this._setOrigin(this.layerToLocation(pivot, level), level);\n this.zoom(level);\n }\n\n _initControls() {\n let controls = this.options.controls;\n if (controls.attribution) {\n this._createAttribution(controls.attribution);\n }\n\n if (!this.support.mobileOS) {\n if (controls.navigator) {\n this._createNavigator(controls.navigator);\n }\n\n if (controls.zoom) {\n this._createZoomControl(controls.zoom);\n }\n }\n }\n\n _createControlElement(options, defaultPosition) {\n let pos = options.position || defaultPosition;\n let posSelector = '.' + renderPos(pos).replace(' ', '.');\n let wrap = this.element.querySelector('.k-map-controls' + posSelector) || [];\n\n if (wrap.length === 0) {\n let div = document.createElement(\"div\");\n addClass(div, 'k-map-controls ' + renderPos(pos));\n wrap = div;\n this.element.appendChild(wrap);\n }\n\n let div = document.createElement(\"div\");\n\n wrap.appendChild(div);\n\n return div;\n }\n\n _createAttribution(options) {\n let element = this._createControlElement(options, 'bottomRight');\n this.attribution = new Attribution(element, options);\n }\n\n _createNavigator(options) {\n let element = this._createControlElement(options, 'topLeft');\n let navigator = this.navigator = new Navigator(element, deepExtend({}, options, { icons: this.options.icons }));\n\n this._navigatorPan = this._navigatorPan.bind(this);\n navigator.bind('pan', this._navigatorPan);\n\n this._navigatorCenter = this._navigatorCenter.bind(this);\n navigator.bind('center', this._navigatorCenter);\n }\n\n _navigatorPan(e) {\n let scroller = this.scroller;\n let x = scroller.scrollLeft + e.x;\n let y = scroller.scrollTop - e.y;\n let bounds = this._virtualSize;\n let width = this.element.clientWidth;\n let height = this.element.clientHeight;\n\n // TODO: Move limits to scroller\n x = limitValue(x, bounds.x.min, bounds.x.max - width);\n y = limitValue(y, bounds.y.min, bounds.y.max - height);\n\n this.scroller.one('scroll', proxy(this._scrollEnd, this));\n\n this.scroller.scrollTo(-x, -y);\n }\n\n _navigatorCenter() {\n this.center(this.options.center);\n }\n\n _createZoomControl(options) {\n let element = this._createControlElement(options, 'topLeft');\n let zoomControl = this.zoomControl = new ZoomControl(element, options, this.options.icons);\n\n this._zoomControlChange = this._zoomControlChange.bind(this);\n zoomControl.bind('change', this._zoomControlChange);\n }\n\n _zoomControlChange(e) {\n if (!this.trigger('zoomStart', { originalEvent: e })) {\n this.zoom(this.zoom() + e.delta);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n }\n\n _initScroller() {\n let friction = this.support.mobileOS ? FRICTION_MOBILE : FRICTION;\n let zoomable = this.options.zoomable !== false;\n let scroller = this.scroller = new Scroller(this.element.children[0], {\n friction: friction,\n velocityMultiplier: VELOCITY_MULTIPLIER,\n zoom: zoomable,\n mousewheelScrolling: false,\n supportDoubleTap: true\n });\n\n scroller.bind('scroll', proxy(this._scroll, this));\n scroller.bind('scrollEnd', proxy(this._scrollEnd, this));\n\n scroller.userEvents.bind('gesturestart', proxy(this._scaleStart, this));\n scroller.userEvents.bind('gestureend', proxy(this._scale, this));\n scroller.userEvents.bind('doubleTap', proxy(this._doubleTap, this));\n scroller.userEvents.bind('tap', proxy(this._tap, this));\n\n this.scrollElement = scroller.scrollElement;\n }\n\n _initLayers() {\n let defs = this.options.layers,\n layers = this.layers = [];\n\n for (let i = 0; i < defs.length; i++) {\n let options = defs[i];\n\n const layer = this._createLayer(options);\n layers.push(layer);\n }\n }\n\n _createLayer(options) {\n let type = options.type || 'shape';\n let layerDefaults = this.options.layerDefaults[type];\n let layerOptions = type === MARKER ?\n deepExtend({}, this.options.markerDefaults, options, { icons: this.options.icons }) :\n deepExtend({}, layerDefaults, options);\n\n let layerConstructor = layersMap[type];\n let layer = new layerConstructor(this, layerOptions);\n\n if (type === MARKER) {\n this.markers = layer;\n }\n\n return layer;\n }\n\n _createTooltip() {\n return new Tooltip(this.widgetService, this.options.tooltip);\n }\n\n /* eslint-disable arrow-body-style */\n _initMarkers() {\n const markerLayers = (this.options.layers || []).filter(x => {\n return x && x.type === MARKER;\n });\n\n if (markerLayers.length > 0) {\n // render the markers from options.layers\n // instead of options.markers\n return;\n }\n\n this.markers = new MarkerLayer(this, deepExtend({}, this.options.markerDefaults, { icons: this.options.icons }));\n this.markers.add(this.options.markers);\n }\n /* eslint-enable arrow-body-style */\n\n _scroll(e) {\n let origin = this.locationToLayer(this._viewOrigin).round();\n let movable = e.sender.movable;\n let offset = new g.Point(movable.x, movable.y).scale(-1).scale(1 / movable.scale);\n\n origin.x += offset.x;\n origin.y += offset.y;\n this._scrollOffset = offset;\n\n this._tooltip.offset = offset;\n this.hideTooltip();\n\n this._setOrigin(this.layerToLocation(origin));\n\n this.trigger('pan', {\n originalEvent: e,\n origin: this._getOrigin(),\n center: this.center()\n });\n }\n\n _scrollEnd(e) {\n if (!this._scrollOffset || !this._panComplete()) {\n return;\n }\n\n this._scrollOffset = null;\n this._panEndTimestamp = now();\n\n this.trigger('panEnd', {\n originalEvent: e,\n origin: this._getOrigin(),\n center: this.center()\n });\n }\n\n _panComplete() {\n return now() - (this._panEndTimestamp || 0) > 50;\n }\n\n _scaleStart(e) {\n if (this.trigger('zoomStart', { originalEvent: e })) {\n let touch = e.touches[1];\n\n if (touch) {\n touch.cancel();\n }\n }\n }\n\n _scale(e) {\n let scale = this.scroller.movable.scale;\n let zoom = this._scaleToZoom(scale);\n let gestureCenter = new g.Point(e.center.x, e.center.y);\n let centerLocation = this.viewToLocation(gestureCenter, zoom);\n let centerPoint = this.locationToLayer(centerLocation, zoom);\n let originPoint = centerPoint.translate(-gestureCenter.x, -gestureCenter.y);\n\n this._zoomAround(originPoint, zoom);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n\n _scaleToZoom(scaleDelta) {\n let scale = this._layerSize() * scaleDelta;\n let tiles = scale / this.options.minSize;\n let zoom = math.log(tiles) / math.log(2);\n\n return math.round(zoom);\n }\n\n _reset() {\n if (this.attribution) {\n this.attribution.filter(this.center(), this.zoom());\n }\n\n this._viewOrigin = this._getOrigin(true);\n\n this._resetScroller();\n this.hideTooltip();\n\n this.trigger('beforeReset');\n this.trigger('reset');\n }\n\n _resetScroller() {\n let scroller = this.scroller;\n let x = scroller.dimensions.x;\n let y = scroller.dimensions.y;\n let scale = this._layerSize();\n let nw = this.extent().nw;\n let topLeft = this.locationToLayer(nw).round();\n\n scroller.movable.round = true;\n scroller.reset();\n scroller.userEvents.cancel();\n\n let zoom = this.zoom();\n\n scroller.dimensions.forcedMinScale = pow(2, this.options.minZoom - zoom);\n scroller.dimensions.maxScale = pow(2, this.options.maxZoom - zoom);\n\n let xBounds = {\n min: -topLeft.x,\n max: scale - topLeft.x\n };\n\n let yBounds = {\n min: -topLeft.y,\n max: scale - topLeft.y\n };\n\n if (this.options.wraparound) {\n xBounds.max = 20 * scale;\n xBounds.min = -xBounds.max;\n }\n\n if (this.options.pannable === false) {\n let viewSize = this.viewSize();\n xBounds.min = yBounds.min = 0;\n xBounds.max = viewSize.width;\n yBounds.max = viewSize.height;\n }\n\n x.makeVirtual();\n y.makeVirtual();\n\n x.virtualSize(xBounds.min, xBounds.max);\n y.virtualSize(yBounds.min, yBounds.max);\n\n this._virtualSize = {\n x: xBounds,\n y: yBounds\n };\n }\n\n // kept for API compatibility, not used\n _renderLayers() {\n }\n\n _layerSize(zoom) {\n const newZoom = valueOrDefault(zoom, this.options.zoom);\n return this.options.minSize * pow(2, newZoom);\n }\n\n _tap(e) {\n if (!this._panComplete()) {\n return;\n }\n\n let cursor = this.eventOffset(e);\n this.hideTooltip();\n\n this.trigger('click', {\n originalEvent: e,\n location: this.viewToLocation(cursor)\n });\n }\n\n _doubleTap(e) {\n let options = this.options;\n\n if (options.zoomable !== false) {\n if (!this.trigger('zoomStart', { originalEvent: e })) {\n let toZoom = this.zoom() + DEFAULT_ZOOM_RATE;\n let cursor = this.eventOffset(e);\n let location = this.viewToLocation(cursor);\n let postZoom = this.locationToLayer(location, toZoom);\n let origin = postZoom.translate(-cursor.x, -cursor.y);\n\n this._zoomAround(origin, toZoom);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n }\n }\n\n _mousewheel(e) {\n let delta = mousewheelDelta(e) > 0 ? -1 : 1;\n let options = this.options;\n let fromZoom = this.zoom();\n let toZoom = limitValue(fromZoom + delta, options.minZoom, options.maxZoom);\n\n if (options.zoomable !== false && toZoom !== fromZoom) {\n if (!this.trigger('zoomStart', { originalEvent: e })) {\n let cursor = this.eventOffset(e);\n let location = this.viewToLocation(cursor);\n let postZoom = this.locationToLayer(location, toZoom);\n let origin = postZoom.translate(-cursor.x, -cursor.y);\n\n this._zoomAround(origin, toZoom);\n\n this.trigger('zoomEnd', {\n originalEvent: e\n });\n }\n }\n }\n\n _toDocumentCoordinates(point) {\n const offset = elementOffset(this.element);\n\n return {\n left: round(point.x + offset.left),\n top: round(point.y + offset.top)\n };\n }\n}\n\nsetDefaultOptions(Map, {\n name: 'Map',\n controls: {\n attribution: true,\n navigator: {\n panStep: 100\n },\n zoom: true\n },\n layers: [],\n layerDefaults: {\n shape: {\n style: {\n fill: {\n color: '#fff'\n },\n stroke: {\n color: '#aaa',\n width: 0.5\n }\n }\n },\n bubble: {\n style: {\n fill: {\n color: '#fff',\n opacity: 0.5\n },\n stroke: {\n color: '#aaa',\n width: 0.5\n }\n }\n },\n marker: {\n shape: 'pinTarget',\n tooltip: {\n position: 'top'\n }\n }\n },\n center: [\n 0,\n 0\n ],\n icons: {\n type: \"font\",\n svgIcons: {}\n },\n zoom: 3,\n minSize: 256,\n minZoom: 1,\n maxZoom: 19,\n markers: [],\n markerDefaults: {\n shape: 'pinTarget',\n tooltip: {\n position: 'top'\n }\n },\n wraparound: true,\n // If set to true, GeoJSON layer \"Point\" features will be rendered as markers.\n // Otherwise, the points will be rendered as circles.\n // Defaults to `true` for KUI/jQuery, `false` everywhere else.\n renderPointsAsMarkers: false\n});\n\nsetDefaultEvents(Map, [\n 'beforeReset',\n 'click',\n 'markerActivate',\n 'markerClick',\n 'markerCreated',\n\n // Events for implementing custom tooltips.\n 'markerMouseEnter',\n 'markerMouseLeave',\n\n 'pan',\n 'panEnd',\n 'reset',\n 'shapeClick',\n 'shapeCreated',\n 'shapeFeatureCreated',\n 'shapeMouseEnter',\n 'shapeMouseLeave',\n 'zoomEnd',\n 'zoomStart'\n]);\n\nexport default Map;\n","import { deepExtend } from '../common';\n\nconst max = (array, mapFn) => Math.max.apply(null, array.map(mapFn));\nconst min = (array, mapFn) => Math.min.apply(null, array.map(mapFn));\nconst sum = (array, mapFn) => array.map(mapFn).reduce((acc, curr) => (acc + curr), 0);\nconst sortAsc = (a, b) => (a.y0 === b.y0 ? a.index - b.index : a.y0 + a.y1 - b.y0 - b.y1);\nconst sortSource = (a, b) => sortAsc(a.source, b.source);\nconst sortTarget = (a, b) => sortAsc(a.target, b.target);\nconst value = (node) => node.value;\n\nfunction sortLinks(nodes) {\n nodes.forEach(node => {\n node.targetLinks.forEach(link => {\n link.source.sourceLinks.sort(sortTarget);\n });\n node.sourceLinks.forEach(link => {\n link.target.targetLinks.sort(sortSource);\n });\n });\n}\n\nconst calcLayer = (node, maxDepth) => {\n if (node.align === 'left') {\n return node.depth;\n }\n\n if (node.align === 'right') {\n return maxDepth - node.height;\n }\n\n return node.sourceLinks.length ? node.depth : maxDepth;\n};\n\nclass Sankey {\n constructor(options) {\n const { offset = {}, align } = options.nodesOptions;\n this.data = {\n nodes: options.nodes.map((node) => deepExtend({}, { offset, align }, node)),\n links: options.links.map((link) => deepExtend({}, link))\n };\n\n this.width = options.width;\n this.height = options.height;\n this.offsetX = options.offsetX || 0;\n this.offsetY = options.offsetY || 0;\n this.nodeWidth = options.nodesOptions.width;\n this.nodePadding = options.nodesOptions.padding;\n this.reverse = options.reverse;\n this.targetColumnIndex = options.targetColumnIndex;\n this.loops = options.loops;\n this.autoLayout = options.autoLayout;\n }\n\n calculate() {\n const { nodes, links } = this.data;\n this.connectLinksToNodes(nodes, links);\n this.calculateNodeValues(nodes);\n\n const circularLinks = this.calculateNodeHeights(nodes);\n\n if (circularLinks) {\n return { nodes: [], links: [], columns: [], circularLinks };\n }\n\n this.calculateNodeDepths(nodes);\n const columns = this.calculateNodeColumns(nodes);\n this.calculateNodeBreadths(columns);\n this.applyNodesOffset(nodes);\n this.calculateLinkBreadths(nodes);\n\n return Object.assign({}, this.data, {columns});\n }\n\n connectLinksToNodes(nodes, links) {\n const nodesMap = new Map();\n\n nodes.forEach((node, i) => {\n node.index = i;\n node.sourceLinks = [];\n node.targetLinks = [];\n node.id = node.id !== undefined ? node.id : node.label.text;\n nodesMap.set(node.id, node);\n });\n\n links.forEach((link) => {\n link.source = nodesMap.get(link.sourceId);\n link.target = nodesMap.get(link.targetId);\n link.source.sourceLinks.push(link);\n link.target.targetLinks.push(link);\n });\n }\n\n calculateNodeValues(nodes) {\n nodes.forEach((node) => {\n node.value = Math.max(\n sum(node.sourceLinks, value),\n sum(node.targetLinks, value)\n );\n });\n }\n\n calculateNodeDepths(nodes) {\n let current = new Set(nodes);\n let next = new Set();\n let currDepth = 0;\n while (current.size) {\n const currentNodes = Array.from(current);\n for (let n = 0; n < currentNodes.length; n++) {\n const node = currentNodes[n];\n node.depth = currDepth;\n for (let l = 0; l < node.sourceLinks.length; l++) {\n const link = node.sourceLinks[l];\n next.add(link.target);\n }\n }\n currDepth++;\n current = next;\n next = new Set();\n }\n }\n\n calculateNodeHeights(nodes) {\n const nodesLength = nodes.length;\n let current = new Set(nodes);\n let next = new Set;\n let currentHeight = 0;\n const eachNode = (node) => {\n node.height = currentHeight;\n node.targetLinks.forEach((link) => {\n next.add(link.source);\n });\n };\n while (current.size) {\n current.forEach(eachNode);\n currentHeight++;\n if (currentHeight > nodesLength) {\n return true;\n }\n current = next;\n next = new Set;\n }\n return false;\n }\n\n calculateNodeColumns(nodes) {\n const maxDepth = max(nodes, (d) => d.depth);\n const columnWidth = (this.width - this.offsetX - this.nodeWidth) / maxDepth;\n const columns = new Array(maxDepth + 1);\n for (let i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n const layer = Math.max(0, Math.min(maxDepth, calcLayer(node, maxDepth)));\n node.x0 = this.offsetX + layer * columnWidth;\n node.x1 = node.x0 + this.nodeWidth;\n node.layer = layer;\n columns[layer] = columns[layer] || [];\n columns[layer].push(node);\n }\n\n return columns;\n }\n\n calculateNodeBreadths(columns) {\n const kSize = min(columns, (c) => (this.height - this.offsetY - (c.length - 1) * this.nodePadding) / sum(c, value));\n\n columns.forEach(nodes => {\n let y = this.offsetY;\n nodes.forEach((node) => {\n node.y0 = y;\n node.y1 = y + node.value * kSize;\n y = node.y1 + this.nodePadding;\n node.sourceLinks.forEach((link) => {\n link.width = link.value * kSize;\n });\n });\n y = (this.height - y + this.nodePadding) / (nodes.length + 1);\n nodes.forEach((node, i) => {\n node.y0 += y * (i + 1);\n node.y1 += y * (i + 1);\n });\n });\n\n if (this.autoLayout !== false) {\n const loops = this.loops !== undefined ? this.loops : columns.length - 1;\n const targetColumnIndex = this.targetColumnIndex || 1;\n\n for (let i = 0; i < loops; i++) {\n if (!this.reverse) {\n this.uncurlLinksToLeft(columns, targetColumnIndex);\n this.uncurlLinksToRight(columns, targetColumnIndex);\n } else {\n this.uncurlLinksToRight(columns, targetColumnIndex);\n this.uncurlLinksToLeft(columns, targetColumnIndex);\n }\n }\n }\n\n columns.forEach(sortLinks);\n }\n\n applyNodesOffset(nodes) {\n nodes.forEach((node) => {\n const offsetX = (node.offset ? node.offset.left : 0) || 0;\n const offsetY = (node.offset ? node.offset.top : 0) || 0;\n node.x0 += offsetX;\n node.x1 += offsetX;\n node.y0 += offsetY;\n node.y1 += offsetY;\n });\n }\n\n calculateLinkBreadths(nodes) {\n nodes.forEach((node) => {\n const { sourceLinks, targetLinks } = node;\n let y = node.y0;\n let y1 = y;\n sourceLinks.forEach((link) => {\n link.x0 = link.source.x1;\n link.y0 = y + link.width / 2;\n y += link.width;\n });\n targetLinks.forEach((link) => {\n link.x1 = link.target.x0;\n link.y1 = y1 + link.width / 2;\n y1 += link.width;\n });\n });\n }\n\n uncurlLinksToRight(columns, targetColumnIndex) {\n const n = columns.length;\n for (let i = targetColumnIndex; i < n; i++) {\n const column = columns[i];\n column.forEach((target) => {\n let y = 0;\n let sum = 0;\n target.targetLinks.forEach((link) => {\n let kValue = link.value * (target.layer - link.source.layer);\n y += this.targetTopPos(link.source, target) * kValue;\n sum += kValue;\n });\n\n let dy = y === 0 ? 0 : (y / sum - target.y0);\n target.y0 += dy;\n target.y1 += dy;\n sortLinks([target]);\n });\n column.sort(sortAsc);\n this.arrangeNodesVertically(column);\n }\n }\n\n uncurlLinksToLeft(columns, targetColumnIndex) {\n const l = columns.length;\n const startIndex = l - 1 - targetColumnIndex;\n for (let i = startIndex; i >= 0; i--) {\n const column = columns[i];\n for (let j = 0; j < column.length; j++) {\n const source = column[j];\n let y = 0;\n let sum = 0;\n source.sourceLinks.forEach((link) => {\n let kValue = link.value * (link.target.layer - source.layer);\n y += this.sourceTopPos(source, link.target) * kValue;\n sum += kValue;\n });\n let dy = y === 0 ? 0 : (y / sum - source.y0);\n source.y0 += dy;\n source.y1 += dy;\n sortLinks([source]);\n }\n\n column.sort(sortAsc);\n this.arrangeNodesVertically(column);\n }\n }\n\n arrangeNodesVertically(nodes) {\n const startIndex = 0;\n const endIndex = nodes.length - 1;\n\n this.arrangeUp(nodes, this.height, endIndex);\n this.arrangeDown(nodes, this.offsetY, startIndex);\n }\n\n arrangeDown(nodes, yPos, index) {\n let currentY = yPos;\n\n for (let i = index; i < nodes.length; i++) {\n const node = nodes[i];\n const dy = Math.max(0, currentY - node.y0);\n node.y0 += dy;\n node.y1 += dy;\n currentY = node.y1 + this.nodePadding;\n }\n }\n\n arrangeUp(nodes, yPos, index) {\n let currentY = yPos;\n for (let i = index; i >= 0; --i) {\n const node = nodes[i];\n const dy = Math.max(0, node.y1 - currentY);\n node.y0 -= dy;\n node.y1 -= dy;\n currentY = node.y0 - this.nodePadding;\n }\n }\n\n sourceTopPos(source, target) {\n let y = target.y0 - ((target.targetLinks.length - 1) * this.nodePadding) / 2;\n for (let i = 0; i < target.targetLinks.length; i++) {\n const link = target.targetLinks[i];\n if (link.source === source) {\n break;\n }\n y += link.width + this.nodePadding;\n }\n for (let i = 0; i < source.sourceLinks.length; i++) {\n const link = source.sourceLinks[i];\n if (link.target === target) {\n break;\n }\n y -= link.width;\n }\n return y;\n }\n\n targetTopPos(source, target) {\n let y = source.y0 - ((source.sourceLinks.length - 1) * this.nodePadding) / 2;\n for (let i = 0; i < source.sourceLinks.length; i++) {\n const link = source.sourceLinks[i];\n if (link.target === target) {\n break;\n }\n y += link.width + this.nodePadding;\n }\n for (let i = 0; i < target.targetLinks.length; i++) {\n const link = target.targetLinks[i];\n if (link.source === source) {\n break;\n }\n y -= link.width;\n }\n return y;\n }\n}\n\nexport const calculateSankey = (options) => new Sankey(options).calculate();\n\nexport const crossesValue = (links) => {\n let value = 0;\n const linksLength = links.length;\n\n for (let i = 0; i < linksLength; i++) {\n const link = links[i];\n\n for (let lNext = i + 1; lNext < linksLength; lNext++) {\n const nextLink = links[lNext];\n\n if (intersect(link, nextLink)) {\n value += Math.min(link.value, nextLink.value);\n }\n }\n }\n\n return value;\n};\n\nfunction rotationDirection(p1x, p1y, p2x, p2y, p3x, p3y) {\n const expression1 = (p3y - p1y) * (p2x - p1x);\n const expression2 = (p2y - p1y) * (p3x - p1x);\n\n if (expression1 > expression2) {\n return 1;\n } else if (expression1 === expression2) {\n return 0;\n }\n\n return -1;\n}\n\nfunction intersect(link1, link2) {\n const f1 = rotationDirection(link1.x0, link1.y0, link1.x1, link1.y1, link2.x1, link2.y1);\n const f2 = rotationDirection(link1.x0, link1.y0, link1.x1, link1.y1, link2.x0, link2.y0);\n const f3 = rotationDirection(link1.x0, link1.y0, link2.x0, link2.y0, link2.x1, link2.y1);\n const f4 = rotationDirection(link1.x1, link1.y1, link2.x0, link2.y0, link2.x1, link2.y1);\n\n return f1 !== f2 && f3 !== f4;\n}\n","import {\n Class,\n deepExtend\n} from '../common';\n\nexport class SankeyElement extends Class {\n constructor(options) {\n super();\n this.options = deepExtend({}, this.options, options);\n this.createVisual();\n }\n\n createVisual() {\n this.visual = this.createElement();\n }\n\n exportVisual() {\n return this.visual;\n }\n\n createElement() {\n const customVisual = this.options.visual;\n let visual;\n\n if (customVisual) {\n visual = customVisual({\n sender: this.getSender(),\n options: this.visualOptions(),\n createVisual: () => this.getElement()\n });\n } else {\n visual = this.getElement();\n }\n\n return visual;\n }\n\n getSender() {\n return this;\n }\n}\n","import { geometry, drawing } from '@progress/kendo-drawing';\nimport { SankeyElement } from './element';\nimport { deepExtend } from '../common';\nimport { ARIA_ACTIVE_DESCENDANT } from '../common/constants';\n\nexport class Node extends SankeyElement {\n getElement() {\n return drawing.Path.fromRect(this.getRect(), this.visualOptions());\n }\n\n getRect() {\n const node = this.options.node;\n return new geometry.Rect([node.x0, node.y0], [node.x1 - node.x0, node.y1 - node.y0]);\n }\n\n getLabelText(options) {\n let labelTemplate = options.labels.ariaTemplate;\n\n if (labelTemplate) {\n return labelTemplate({ node: options.node });\n }\n }\n\n visualOptions() {\n const options = deepExtend({}, this.options, this.options.node);\n const ariaLabel = this.getLabelText(options);\n\n return {\n fill: {\n color: options.color,\n opacity: options.opacity\n },\n stroke: { width: 0 },\n className: 'k-sankey-node',\n role: 'graphics-symbol',\n ariaRoleDescription: 'Node',\n ariaLabel: ariaLabel\n };\n }\n\n createFocusHighlight() {\n if (!this.options.navigatable) {\n return;\n }\n\n this._highlight = drawing.Path.fromRect(this.getRect(), {\n stroke: this.options.focusHighlight,\n visible: false\n });\n\n return this._highlight;\n }\n\n focus(options) {\n if (this._highlight) {\n const { highlight = true } = options || {};\n if (highlight) {\n this._highlight.options.set('visible', true);\n }\n const id = this.options.node.id;\n this.visual.options.set('id', id);\n\n if (this.options.root()) {\n this.options.root().setAttribute(ARIA_ACTIVE_DESCENDANT, id);\n }\n }\n }\n\n blur() {\n if (this._highlight) {\n this._highlight.options.set('visible', false);\n this.visual.options.set('id', '');\n\n if (this.options.root()) {\n this.options.root().removeAttribute(ARIA_ACTIVE_DESCENDANT);\n }\n }\n }\n}\n\nconst nodeColor = (node, nodeColors, index) => node.color || nodeColors[index % nodeColors.length];\n\nexport const resolveNodeOptions = (node, options, nodeColors, index) => {\n const nodeOptions = deepExtend({}, options, options.node);\n return deepExtend({},\n { color: nodeColor(node, nodeColors, index) },\n nodeOptions,\n { node },\n {\n visual: node.visual,\n opacity: node.opacity,\n offset: node.offset,\n color: node.color\n }\n );\n};\n","import { drawing } from '@progress/kendo-drawing';\nimport { SankeyElement } from './element';\nimport { deepExtend } from '../common';\nimport { defined } from '../drawing-utils';\nimport { ARIA_ACTIVE_DESCENDANT } from '../common/constants';\n\nconst distanceToLine = (line, point) => {\n const [x1, y1] = line[0];\n const [x2, y2] = line[1];\n const [x3, y3] = point;\n\n return Math.abs((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / Math.sqrt(Math.pow( (x2 - x1), 2 ) + Math.pow( (y2 - y1), 2 ));\n};\n\nconst bezierPoint = (p1, p2, p3, p4, t) => {\n const t1 = 1 - t;\n const t1t1 = t1 * t1;\n const tt = t * t;\n return (p1 * t1t1 * t1) + (3 * p2 * t * t1t1) + (3 * p3 * tt * t1) + (p4 * tt * t);\n};\n\nconst angelBetweenTwoLines = (line1, line2) => {\n const [x1, y1] = line1[0];\n const [x2, y2] = line1[1];\n const [x3, y3] = line2[0];\n const [x4, y4] = line2[1];\n\n const a1 = Math.atan2(y2 - y1, x2 - x1);\n const a2 = Math.atan2(y4 - y3, x4 - x3);\n\n return Math.abs(a1 - a2);\n};\n\nconst calculateControlPointsOffsetX = (link, rtl) => {\n const { x0, x1, y0, y1 } = link;\n let xC = (x0 + x1) / 2;\n\n const width = link.width;\n const halfWidth = width / 2;\n\n // upper curve, t = 0.5\n const upperCurveMiddleLine = [[(x0 + xC) / 2, y0 - halfWidth], [(x1 + xC) / 2, y1 - halfWidth]];\n\n // for lower curve, bezier-point at t = 0.5\n // for the case t = 0.5, the bezier-point is the middle point of the curve. => ((y0 + halfWidth) + (y1 + halfWidth)) / 2\n const lowerCurveMiddlePoint = [xC, bezierPoint(y0 + halfWidth, y0 + halfWidth, y1 + halfWidth, y1 + halfWidth, 0.5)];\n\n // The actual width of the link at its middle point as can be seen on the screen.\n const actualWidth = distanceToLine(upperCurveMiddleLine, lowerCurveMiddlePoint);\n\n const upperNarrowness = (width - actualWidth) / 2;\n\n // The line `upperCurveMiddleLine` shows the upper border of the link.\n // Assumption 1: Translated to the left to the desired link width and the translate value will be the `offset`.\n // Assumption 2: The translate value is a hypotenuse of a triangle.\n const alpha = angelBetweenTwoLines(upperCurveMiddleLine, [[x0, y0 - halfWidth], [xC, y0 - halfWidth]]);\n const a = upperNarrowness;\n const b = Math.sin(alpha) * a;\n const offset = Math.sqrt(a * a + b * b);\n // Another option is to assume the triangle is isosceles\n // => offset = Math.sqrt(2) * upperNarrowness;\n\n let sign = y0 - y1 > 0 ? (-1) : 1;\n if (rtl) {\n sign = -sign;\n }\n\n return sign * offset;\n};\n\nexport class Link extends SankeyElement {\n getElement() {\n const link = this.options.link;\n const { x0, x1, y0, y1 } = link;\n const xC = (x0 + x1) / 2;\n\n return new drawing.Path(this.visualOptions())\n .moveTo(x0, y0).curveTo([xC, y0], [xC, y1], [x1, y1]);\n }\n\n getLabelText(options) {\n let labelTemplate = options.labels.ariaTemplate;\n\n if (labelTemplate) {\n return labelTemplate({ link: options.link });\n }\n }\n\n visualOptions() {\n const options = this.options;\n const link = this.options.link;\n const ariaLabel = this.getLabelText(options);\n\n return {\n stroke: {\n width: options.link.width,\n color: link.color || options.color,\n opacity: defined(link.opacity) ? link.opacity : options.opacity\n },\n role: 'graphics-symbol',\n ariaRoleDescription: 'Link',\n ariaLabel: ariaLabel\n };\n }\n\n createFocusHighlight() {\n if (!this.options.navigatable) {\n return;\n }\n const { link, rtl } = this.options;\n const { x0, x1, y0, y1 } = link;\n const xC = (x0 + x1) / 2;\n const halfWidth = link.width / 2;\n\n const offset = calculateControlPointsOffsetX(link, rtl);\n\n this._highlight = new drawing.Path({ stroke: this.options.focusHighlight, visible: false })\n .moveTo(x0, y0 + halfWidth)\n .lineTo(x0, y0 - halfWidth)\n .curveTo([xC + offset, y0 - halfWidth], [xC + offset, y1 - halfWidth], [x1, y1 - halfWidth])\n .lineTo(x1, y1 + halfWidth)\n .curveTo([xC - offset, y1 + halfWidth], [xC - offset, y0 + halfWidth], [x0, y0 + halfWidth]);\n }\n\n focus(options) {\n if (this._highlight) {\n const { highlight = true } = options || {};\n if (highlight) {\n this._highlight.options.set('visible', true);\n }\n const id = `${this.options.link.sourceId}->${this.options.link.targetId}`;\n this.visual.options.set('id', id);\n\n if (this.options.root()) {\n this.options.root().setAttribute(ARIA_ACTIVE_DESCENDANT, id);\n }\n }\n }\n\n blur() {\n if (this._highlight) {\n this._highlight.options.set('visible', false);\n this.visual.options.set('id', '');\n\n if (this.options.root()) {\n this.options.root().removeAttribute(ARIA_ACTIVE_DESCENDANT);\n }\n }\n }\n}\n\nexport const resolveLinkOptions = (link, options, sourceNode, targetNode) => {\n const linkOptions = deepExtend({},\n options,\n {\n link,\n opacity: link.opacity,\n color: link.color,\n colorType: link.colorType,\n visual: link.visual,\n highlight: link.highlight\n }\n );\n\n if (linkOptions.colorType === 'source') {\n linkOptions.color = sourceNode.options.fill.color;\n } else if (linkOptions.colorType === 'target') {\n linkOptions.color = targetNode.options.fill.color;\n }\n\n return linkOptions;\n};\n","import { setDefaultOptions, deepExtend } from '../common';\nimport { SankeyElement } from './element';\nimport { Box, TextBox } from '../core';\nconst INSIDE = 'inside';\nconst BEFORE = 'before';\nconst AFTER = 'after';\n\nexport class Label extends SankeyElement {\n getElement() {\n const options = deepExtend({}, this.options, this.options.node.label);\n const { node, diagramMinX, diagramMaxX, text, offset, rtl } = options;\n let position = options.position;\n if (rtl && position !== INSIDE) {\n position = position === BEFORE ? AFTER : BEFORE;\n }\n\n if (!options.visible || !text) {\n return null;\n }\n\n const nodeBox = new Box(node.x0, node.y0, node.x1, node.y1);\n const visualOptions = this.visualOptions();\n if (rtl && !visualOptions.align) {\n visualOptions.align = 'right';\n }\n const textbox = new TextBox(text, visualOptions);\n textbox.reflow(new Box());\n const textSizeBox = textbox.box;\n const textY = nodeBox.center().y - (textSizeBox.height() / 2);\n\n const labelAfterLastNode = node.x1 + textSizeBox.width() > diagramMaxX;\n const labelBeforeFirstNode = node.x0 - textSizeBox.width() < diagramMinX;\n let side = position === BEFORE || (position === INSIDE && labelAfterLastNode) ? BEFORE : AFTER;\n if (rtl) {\n side = position === AFTER || (position === INSIDE && labelBeforeFirstNode) ? AFTER : BEFORE;\n }\n const textOrigin = [side === BEFORE ? node.x0 - textSizeBox.width() : node.x1, textY];\n\n const textRect = new Box(textOrigin[0], textOrigin[1], textOrigin[0] + textSizeBox.width(), textOrigin[1] + textSizeBox.height());\n textRect.translate(offset.left || 0, offset.top || 0);\n textbox.reflow(textRect);\n\n textbox.renderVisual();\n\n return textbox.visual;\n }\n\n visualOptions() {\n const options = deepExtend({}, this.options, this.options.node.label);\n return {\n color: options.color,\n font: options.font,\n border: options.border,\n margin: options.margin,\n padding: options.padding,\n align: options.align,\n paintOrder: options.paintOrder,\n stroke: options.stroke,\n };\n }\n}\n\nsetDefaultOptions(Label, {\n position: INSIDE, // inside, before, after\n});\n\nexport const resolveLabelOptions = (node, options, rtl, diagramMinX, diagramMaxX) => deepExtend({},\n options,\n {\n node,\n diagramMinX,\n diagramMaxX,\n rtl,\n visual: node.label.visual,\n visible: node.label.visible,\n margin: node.label.margin,\n padding: node.label.padding,\n border: node.label.border,\n align: node.label.align,\n offset: node.label.offset\n }\n);\n","import { Title as ChartTitle } from \"../core\";\nimport { SankeyElement } from \"./element\";\nimport { setDefaultOptions, getSpacing } from '../common';\nimport { CENTER } from \"../common/constants\";\n\nexport class Title extends SankeyElement {\n getElement() {\n const options = this.options;\n const { drawingRect, text } = options;\n\n if (options.visible === false || !text) {\n return null;\n }\n\n const title = ChartTitle.buildTitle(text, options);\n\n title.reflow(drawingRect);\n\n title.renderVisual();\n return title.visual;\n }\n\n createElement() {\n return this.getElement();\n }\n}\n\nsetDefaultOptions(Title, {\n align: CENTER, // 'left', 'right', 'center'\n border: {\n width: 0\n },\n margin: getSpacing(5),\n padding: getSpacing(5)\n});\n","import { default as ChartLegend } from \"../chart/legend/legend\";\nimport { SankeyElement } from \"./element\";\nimport { setDefaultOptions } from '../common';\nimport { BOTTOM, CENTER, LEFT, POINTER, RIGHT } from \"../common/constants\";\nimport { AREA } from \"../chart/constants\";\n\nconst sortData = (a, b) => {\n if (a.node.x0 - b.node.x0 !== 0) {\n return a.node.x0 - b.node.x0;\n }\n return a.node.y0 - b.node.y0;\n};\n\nconst sortDataRTL = (a, b) => {\n if (a.node.x1 - b.node.x1 !== 0) {\n return a.node.x1 - b.node.x1;\n }\n return b.node.y0 - a.node.y0;\n};\n\nconst sort = (rtl) => (rtl ? sortDataRTL : sortData);\n\nexport class Legend extends SankeyElement {\n getElement() {\n const options = this.options;\n const { drawingRect, rtl, nodes = [], item, position } = options;\n\n if (options.visible === false || !nodes.length) {\n return null;\n }\n\n const data = nodes.map((node) => ({\n text: (node.label && node.label.text) || '',\n area: {\n background: item.areaBackground !== undefined ? item.areaBackground : node.color,\n opacity: item.areaOpacity !== undefined ? item.areaOpacity : node.opacity\n },\n node: node\n }));\n\n data.sort(sort(rtl));\n\n const reverse = rtl && position !== LEFT && position !== RIGHT;\n const legend = new ChartLegend(Object.assign({}, options, {data, reverse}), { rtl });\n legend.reflow(drawingRect);\n\n legend.renderVisual();\n return legend.visual;\n }\n\n createElement() {\n return this.getElement();\n }\n}\n\nsetDefaultOptions(Legend, {\n markers: { visible: false },\n item: {\n type: AREA,\n cursor: POINTER,\n opacity: 1\n },\n position: BOTTOM,\n align: CENTER,\n accessibility: {\n role: 'presentation',\n ariaLabel: null,\n ariaRoleDescription: null\n },\n border: {\n width: 0\n }\n});\n","import { geometry, drawing } from '@progress/kendo-drawing';\nimport { deepExtend, addClass, Observable, setDefaultOptions } from '../common';\nimport { calculateSankey, crossesValue } from './calculation';\nimport { Node, resolveNodeOptions } from './node';\nimport { Link, resolveLinkOptions } from './link';\nimport { Label, resolveLabelOptions } from './label';\nimport { Title } from './title';\nimport { BLACK, BOTTOM, LEFT, RIGHT, TOP } from '../common/constants';\nimport { Box, rectToBox } from '../core';\nimport { Legend } from './legend';\nimport { defined } from '../drawing-utils';\n\nconst LINK = 'link';\nconst NODE = 'node';\n\nconst toRtl = sankey => {\n const { nodes, links } = sankey;\n const startX = Math.min(...nodes.map(node => node.x0));\n const endX = Math.max(...nodes.map(node => node.x1));\n const width = endX - startX;\n\n nodes.forEach(node => {\n const x0 = width - (node.x1 - 2 * startX);\n const x1 = width - (node.x0 - 2 * startX);\n node.x0 = x0;\n node.x1 = x1;\n });\n\n links.forEach(link => {\n const x0 = width - (link.x1 - 2 * startX);\n const x1 = width - (link.x0 - 2 * startX);\n link.x1 = x0;\n link.x0 = x1;\n });\n};\n\nexport class Sankey extends Observable {\n constructor(element, options, theme) {\n super();\n\n this._initTheme(theme);\n this._setOptions(options);\n this._initElement(element);\n this._initSurface();\n\n if (options && options.data) {\n this._redraw();\n this._initResizeObserver();\n this._initNavigation(element);\n }\n }\n\n destroy() {\n this.unbind();\n this._destroySurface();\n this._destroyResizeObserver();\n\n if (this.element) {\n this.element.removeEventListener('keydown', this._keydownHandler);\n this.element.removeEventListener('focus', this._focusHandler);\n this.element.removeEventListener('mousedown', this._onDownHandler);\n this.element.removeEventListener('touchstart', this._onDownHandler);\n this.element.removeEventListener('pointerdown', this._onDownHandler);\n }\n\n this._focusState = null;\n\n this.element = null;\n }\n\n _initElement(element) {\n this.element = element;\n addClass(element, [ \"k-chart\", \"k-sankey\" ]);\n element.setAttribute('role', 'graphics-document');\n\n const { title } = this.options;\n\n if (title.text) {\n element.setAttribute('aria-label', title.text);\n }\n\n if (title.description) {\n element.setAttribute(\"aria-roledescription\", title.description);\n }\n }\n\n _initSurface() {\n if (!this.surface) {\n this._destroySurface();\n this._initSurfaceElement();\n this.surface = this._createSurface();\n }\n }\n\n _initNavigation(element) {\n element.tabIndex = element.getAttribute(\"tabindex\") || 0;\n\n if (this.options.disableKeyboardNavigation) {\n return;\n }\n\n this._keydownHandler = this._keydown.bind(this);\n this._focusHandler = this._focus.bind(this);\n this._blurHandler = this._blur.bind(this);\n this._onDownHandler = this._onDown.bind(this);\n\n element.addEventListener('keydown', this._keydownHandler);\n element.addEventListener('focus', this._focusHandler);\n element.addEventListener('blur', this._blurHandler);\n element.addEventListener('mousedown', this._onDownHandler);\n element.addEventListener('touchstart', this._onDownHandler);\n element.addEventListener('pointerdown', this._onDownHandler);\n\n this._focusState = {\n node: this.firstFocusableNode(),\n link: null\n };\n }\n\n firstFocusableNode() {\n return this.columns[0][0];\n }\n\n _initResizeObserver() {\n const observer = new ResizeObserver((entries) => {\n entries.forEach(entry => {\n const { width, height } = entry.contentRect;\n if (entry.target !== this.element ||\n (this.size && this.size.width === width && this.size.height === height)) {\n return;\n }\n this.size = { width, height };\n this.surface.setSize(this.size);\n this.resize = true;\n this._redraw();\n });\n });\n this._resizeObserver = observer;\n observer.observe(this.element);\n }\n\n _createSurface() {\n return drawing.Surface.create(this.surfaceElement, {\n mouseenter: this._mouseenter.bind(this),\n mouseleave: this._mouseleave.bind(this),\n mousemove: this._mousemove.bind(this),\n click: this._click.bind(this)\n });\n }\n\n _initTheme(theme) {\n let currentTheme = theme || this.theme || {};\n this.theme = currentTheme;\n this.options = deepExtend({}, currentTheme, this.options);\n }\n\n setLinksOpacity(opacity) {\n this.linksVisuals.forEach(link => {\n this.setOpacity(link, opacity, link.linkOptions.opacity);\n });\n }\n\n setLinksInactivityOpacity(inactiveOpacity) {\n this.linksVisuals.forEach(link => {\n this.setOpacity(link, inactiveOpacity, link.linkOptions.highlight.inactiveOpacity);\n });\n }\n\n setOpacity(link, opacity, linkValue) {\n link.options.set('stroke', Object.assign({}, link.options.stroke,\n {opacity: defined(linkValue) ? linkValue : opacity}));\n }\n\n trigger(name, ev) {\n let dataItem = ev.element.dataItem;\n const targetType = ev.element.type;\n\n const event = Object.assign({}, ev,\n {type: name,\n targetType,\n dataItem: dataItem});\n\n return super.trigger(name, event);\n }\n\n _mouseenter(ev) {\n const element = ev.element;\n const isLink = element.type === LINK;\n const isNode = element.type === NODE;\n const isLegendItem = Boolean(element.chartElement && element.chartElement.options.node);\n\n if ((isLink && this.trigger('linkEnter', ev)) ||\n (isNode && this.trigger('nodeEnter', ev))) {\n return;\n }\n\n const { highlight } = this.options.links;\n if (isLink) {\n this.setLinksInactivityOpacity(highlight.inactiveOpacity);\n this.setOpacity(element, highlight.opacity, element.linkOptions.highlight.opacity);\n } else if (isNode) {\n this.highlightLinks(element, highlight);\n } else if (isLegendItem) {\n const nodeVisual = this.nodesVisuals.get(element.chartElement.options.node.id);\n this.highlightLinks(nodeVisual, highlight);\n }\n }\n\n _mouseleave(ev) {\n const element = ev.element;\n const isLink = element.type === LINK;\n const isNode = element.type === NODE;\n const isLegendItem = Boolean(element.chartElement && element.chartElement.options.node);\n const target = ev.originalEvent.relatedTarget;\n\n if (isLink && target && target.nodeName === 'text') {\n return;\n }\n\n if (isLink || isNode) {\n if (this.tooltipTimeOut) {\n clearTimeout(this.tooltipTimeOut);\n this.tooltipTimeOut = null;\n }\n this.tooltipShown = false;\n this.trigger('tooltipHide', ev);\n }\n\n if ((isLink && this.trigger('linkLeave', ev)) ||\n (isNode && this.trigger('nodeLeave', ev))) {\n return;\n }\n\n if (isLink || isNode || isLegendItem) {\n this.linksVisuals.forEach(link => {\n this.setOpacity(link, this.options.links.opacity, link.linkOptions.opacity);\n });\n }\n }\n\n _mousemove(ev) {\n const { followPointer, delay } = this.options.tooltip;\n const element = ev.element;\n const tooltipElType = element.type;\n\n if ((tooltipElType !== LINK && tooltipElType !== NODE) || (this.tooltipShown && !followPointer)) {\n return;\n }\n\n const mouseEvent = ev.originalEvent;\n const rect = this.element.getBoundingClientRect();\n const isLeft = mouseEvent.clientX - rect.left < rect.width / 2;\n const isTop = mouseEvent.clientY - rect.top < rect.height / 2;\n\n ev.tooltipData = {\n popupOffset: {\n left: mouseEvent.pageX,\n top: mouseEvent.pageY\n },\n popupAlign: {\n horizontal: isLeft ? 'left' : 'right',\n vertical: isTop ? 'top' : 'bottom'\n }\n };\n\n if (tooltipElType === NODE) {\n const { sourceLinks, targetLinks } = element.dataItem;\n const links = targetLinks.length ? targetLinks : sourceLinks;\n ev.nodeValue = links.reduce((acc, link) => acc + link.value, 0);\n }\n\n if (this.tooltipTimeOut) {\n clearTimeout(this.tooltipTimeOut);\n this.tooltipTimeOut = null;\n }\n\n const nextDelay = followPointer && this.tooltipShown ? 0 : delay;\n\n this.tooltipTimeOut = setTimeout(() => {\n this.trigger('tooltipShow', ev);\n this.tooltipShown = true;\n this.tooltipTimeOut = null;\n }, nextDelay);\n }\n\n _click(ev) {\n const element = ev.element;\n const dataItem = element.dataItem;\n const isLink = element.type === LINK;\n const isNode = element.type === NODE;\n const focusState = this._focusState || {};\n\n if (isNode) {\n const focusedNodeClicked = !focusState.link && this.sameNode(focusState.node, dataItem);\n\n if (!focusedNodeClicked) {\n this._focusState = { node: dataItem, link: null };\n this._focusNode({ highlight: false });\n }\n\n this.trigger('nodeClick', ev);\n } else if (isLink) {\n const link = {\n sourceId: dataItem.source.id,\n targetId: dataItem.target.id,\n value: dataItem.value\n };\n const focusedLinkClicked = this.sameLink(focusState.link, link);\n\n if (!focusedLinkClicked) {\n this._focusState = { node: dataItem.source, link: link };\n this._focusLink({ highlight: false });\n }\n\n this.trigger('linkClick', ev);\n }\n }\n\n sameNode(node1, node2) {\n return node1 && node2 && node1.id === node2.id;\n }\n\n sameLink(link1, link2) {\n return link1 && link2 && link1.sourceId === link2.sourceId && link1.targetId === link2.targetId;\n }\n\n _focusNode(options) {\n this._cleanFocusHighlight();\n\n const nodeData = this._focusState.node;\n const node = this.models.map.get(nodeData.id);\n node.focus(options);\n }\n\n _focusLink(options) {\n this._cleanFocusHighlight();\n\n const linkData = this._focusState.link;\n const link = this.models.map.get(`${linkData.sourceId}-${linkData.targetId}`);\n link.focus(options);\n }\n\n _focusNextNode(direction = 1) {\n const current = this._focusState.node;\n\n const columnIndex = this.columns.findIndex(column => column.find(n => n.id === current.id));\n const columnNodes = this.columns[columnIndex];\n const nodeIndex = columnNodes.findIndex(n => n.id === current.id);\n\n const nextNode = columnNodes[nodeIndex + direction];\n if (nextNode) {\n this._focusState.node = nextNode;\n this._focusNode();\n }\n }\n\n _focusNextLink(direction = 1) {\n const node = this._focusState.node;\n const link = this._focusState.link;\n\n const sourceLinkIndex = node.sourceLinks.findIndex(l => l.sourceId === link.sourceId && l.targetId === link.targetId);\n const targetLinkIndex = node.targetLinks.findIndex(l => l.sourceId === link.sourceId && l.targetId === link.targetId);\n\n if (sourceLinkIndex !== -1) {\n const nextLink = node.sourceLinks[sourceLinkIndex + direction];\n\n if (nextLink) {\n this._focusState.link = nextLink;\n this._focusLink();\n }\n } else if (targetLinkIndex !== -1) {\n const nextLink = node.targetLinks[targetLinkIndex + direction];\n\n if (nextLink) {\n this._focusState.link = nextLink;\n this._focusLink();\n }\n }\n }\n\n _focusSourceNode() {\n const linkData = this._focusState.link;\n const sourceNode = this.models.map.get(linkData.sourceId);\n this._focusState = { node: sourceNode.options.node, link: null };\n this._focusNode();\n }\n\n _focusTargetNode() {\n const linkData = this._focusState.link;\n const targetNode = this.models.map.get(linkData.targetId);\n this._focusState = { node: targetNode.options.node, link: null };\n this._focusNode();\n }\n\n _focusSourceLink() {\n const nodeData = this._focusState.node;\n const sourceLinks = nodeData.sourceLinks;\n const linkData = sourceLinks[0];\n if (linkData) {\n this._focusState.link = linkData;\n this._focusLink();\n }\n }\n\n _focusTargetLink() {\n const nodeData = this._focusState.node;\n const targetLinks = nodeData.targetLinks;\n const linkData = targetLinks[0];\n if (linkData) {\n this._focusState.link = linkData;\n this._focusLink();\n }\n }\n\n _focus() {\n if (!this._skipFocusHighlight) {\n if (this._focusState.link) {\n this._focusLink();\n } else {\n this._focusNode();\n }\n }\n\n this._skipFocusHighlight = false;\n }\n\n _blur() {\n this._cleanFocusHighlight();\n }\n\n _onDown() {\n if (!this._hasFocus()) {\n this._skipFocusHighlight = true;\n }\n }\n\n _hasFocus() {\n return this.element.ownerDocument.activeElement === this.element;\n }\n\n _cleanFocusHighlight() {\n this.models.nodes.forEach(node => node.blur());\n this.models.links.forEach(link => link.blur());\n }\n\n _keydown(ev) {\n let handler = this['on' + ev.key];\n const rtl = this.options.rtl;\n\n if (rtl && ev.key === 'ArrowLeft') {\n handler = this.onArrowRight;\n } else if (rtl && ev.key === 'ArrowRight') {\n handler = this.onArrowLeft;\n }\n\n if (handler) {\n handler.call(this, ev);\n }\n }\n\n onEscape(ev) {\n ev.preventDefault();\n\n this._focusState = { node: this.firstFocusableNode(), link: null };\n this._focusNode();\n }\n\n onArrowDown(ev) {\n ev.preventDefault();\n\n if (this._focusState.link) {\n this._focusNextLink(1);\n } else {\n this._focusNextNode(1);\n }\n }\n\n onArrowUp(ev) {\n ev.preventDefault();\n\n if (this._focusState.link) {\n this._focusNextLink(-1);\n } else {\n this._focusNextNode(-1);\n }\n }\n\n onArrowLeft(ev) {\n ev.preventDefault();\n\n if (this._focusState.link) {\n this._focusSourceNode();\n } else {\n this._focusTargetLink();\n }\n }\n\n onArrowRight(ev) {\n ev.preventDefault();\n\n if (this._focusState.link) {\n this._focusTargetNode();\n } else {\n this._focusSourceLink();\n }\n }\n\n highlightLinks(node, highlight) {\n if (node) {\n this.setLinksInactivityOpacity(highlight.inactiveOpacity);\n node.links.forEach(link => {\n this.setOpacity(link, highlight.opacity, link.linkOptions.highlight.opacity);\n });\n }\n }\n\n _destroySurface() {\n if (this.surface) {\n this.surface.destroy();\n this.surface = null;\n this._destroySurfaceElement();\n }\n }\n\n _destroyResizeObserver() {\n if (this._resizeObserver) {\n this._resizeObserver.disconnect();\n this._resizeObserver = null;\n }\n }\n\n _initSurfaceElement() {\n if (!this.surfaceElement) {\n this.surfaceElement = document.createElement('div');\n this.element.appendChild(this.surfaceElement);\n }\n }\n\n _destroySurfaceElement() {\n if (this.surfaceElement && this.surfaceElement.parentNode) {\n this.surfaceElement.parentNode.removeChild(this.surfaceElement);\n this.surfaceElement = null;\n }\n }\n\n setOptions(options, theme) {\n this._setOptions(options);\n this._initTheme(theme);\n this._initSurface();\n this._redraw();\n }\n\n _redraw() {\n this.surface.clear();\n\n const { width, height } = this._getSize();\n this.size = { width, height };\n this.surface.setSize(this.size);\n\n this.createVisual();\n\n this.surface.draw(this.visual);\n }\n\n _getSize() {\n return this.element.getBoundingClientRect();\n }\n\n createVisual() {\n this.visual = this._render();\n }\n\n titleBox(title, drawingRect) {\n if (!title || title.visible === false || !title.text) {\n return null;\n }\n\n const titleElement = new Title(Object.assign({}, {drawingRect}, title));\n const titleVisual = titleElement.exportVisual();\n return titleVisual.chartElement.box;\n }\n\n legendBox(options, nodes, drawingRect) {\n if (!options || options.visible === false) {\n return null;\n }\n\n const legend = new Legend(Object.assign({}, {nodes}, options, {drawingRect}));\n const legendVisual = legend.exportVisual();\n\n return legendVisual.chartElement.box;\n }\n\n calculateSankey(calcOptions, sankeyOptions) {\n const { title, legend, data, nodes, labels, nodeColors, disableAutoLayout, disableKeyboardNavigation, rtl } = sankeyOptions;\n const autoLayout = !disableAutoLayout;\n const padding = disableKeyboardNavigation ? 0 : highlightOptions.width / 2;\n\n const sankeyBox = new Box(0, 0, calcOptions.width, calcOptions.height);\n sankeyBox.unpad(padding);\n\n const titleBox = this.titleBox(title, sankeyBox);\n\n let legendArea = sankeyBox.clone();\n\n if (titleBox) {\n const titleHeight = titleBox.height();\n if (title.position === TOP) {\n sankeyBox.unpad({ top: titleHeight });\n legendArea = new Box(0, titleHeight, calcOptions.width, calcOptions.height);\n } else {\n sankeyBox.shrink(0, titleHeight);\n legendArea = new Box(0, 0, calcOptions.width, calcOptions.height - titleHeight);\n }\n }\n\n const legendBox = this.legendBox(legend, data.nodes, legendArea);\n const legendPosition = (legend && legend.position) || Legend.prototype.options.position;\n\n if (legendBox) {\n if (legendPosition === LEFT) {\n sankeyBox.unpad({ left: legendBox.width() });\n }\n\n if (legendPosition === RIGHT) {\n sankeyBox.shrink(legendBox.width(), 0);\n }\n\n if (legendPosition === TOP) {\n sankeyBox.unpad({ top: legendBox.height() });\n }\n\n if (legendPosition === BOTTOM) {\n sankeyBox.shrink(0, legendBox.height());\n }\n }\n\n const { nodes: calculatedNodes, circularLinks } = calculateSankey(Object.assign({}, calcOptions, {offsetX: 0, offsetY: 0, width: sankeyBox.width(), height: sankeyBox.height()}));\n if (circularLinks) {\n console.warn('Circular links detected. Kendo Sankey diagram does not support circular links.');\n return { sankey: { nodes: [], links: [], columns: [[]], circularLinks }, legendBox, titleBox };\n }\n\n const box = new Box();\n\n const diagramMinX = calculatedNodes.reduce((acc, node) => Math.min(acc, node.x0), Infinity);\n const diagramMaxX = calculatedNodes.reduce((acc, node) => Math.max(acc, node.x1), 0);\n\n calculatedNodes.forEach((nodeEl, i) => {\n if (rtl) {\n const { x0, x1 } = nodeEl;\n nodeEl.x0 = diagramMaxX - x1;\n nodeEl.x1 = diagramMaxX - x0;\n }\n const nodeOps = resolveNodeOptions(nodeEl, nodes, nodeColors, i);\n const nodeInstance = new Node(nodeOps);\n box.wrap(rectToBox(nodeInstance.exportVisual().rawBBox()));\n\n const labelInstance = new Label(resolveLabelOptions(nodeEl, labels, rtl, diagramMinX, diagramMaxX));\n const labelVisual = labelInstance.exportVisual();\n if (labelVisual) {\n box.wrap(rectToBox(labelVisual.rawBBox()));\n }\n });\n\n let offsetX = sankeyBox.x1;\n let offsetY = sankeyBox.y1;\n\n let width = sankeyBox.width() + offsetX;\n let height = sankeyBox.height() + offsetY;\n\n width -= box.x2 > sankeyBox.width() ? box.x2 - sankeyBox.width() : 0;\n height -= box.y2 > sankeyBox.height() ? box.y2 - sankeyBox.height() : 0;\n\n offsetX += box.x1 < 0 ? -box.x1 : 0;\n offsetY += box.y1 < 0 ? -box.y1 : 0;\n\n if (autoLayout === false) {\n return {\n sankey: calculateSankey(Object.assign({}, calcOptions, {offsetX, offsetY, width, height, autoLayout: false})),\n legendBox,\n titleBox\n };\n }\n\n if (this.resize && autoLayout && this.permutation) {\n this.resize = false;\n return {\n sankey: calculateSankey(Object.assign({}, calcOptions, {offsetX, offsetY, width, height}, this.permutation)),\n legendBox,\n titleBox\n };\n }\n\n const startColumn = 1;\n const loops = 2;\n const columnsLength = calculateSankey(Object.assign({}, calcOptions, {offsetX, offsetY, width, height, autoLayout: false})).columns.length;\n const results = [];\n\n const permutation = (targetColumnIndex, reverse) => {\n let currPerm = calculateSankey(Object.assign({}, calcOptions, {offsetX, offsetY, width, height, loops: loops, targetColumnIndex, reverse}));\n let crosses = crossesValue(currPerm.links);\n results.push({\n crosses: crosses,\n reverse: reverse,\n targetColumnIndex: targetColumnIndex\n });\n return crosses === 0;\n };\n\n for (let index = startColumn; index <= columnsLength - 1; index++) {\n if (permutation(index, false) || permutation(index, true)) {\n break;\n }\n }\n\n const minCrosses = Math.min.apply(null, results.map(r => r.crosses));\n const bestResult = results.find(r => r.crosses === minCrosses);\n this.permutation = { targetColumnIndex: bestResult.targetColumnIndex, reverse: bestResult.reverse };\n const result = calculateSankey(Object.assign({}, calcOptions, {offsetX, offsetY, width, height}, this.permutation));\n\n return {\n sankey: result,\n legendBox,\n titleBox\n };\n }\n\n _render(options, context) {\n const sankeyOptions = options || this.options;\n const sankeyContext = context || this;\n\n const { labels: labelOptions, nodes: nodesOptions, links: linkOptions, nodeColors, title, legend, rtl, disableKeyboardNavigation } = sankeyOptions;\n let data = sankeyOptions.data;\n const { width, height } = sankeyContext.size;\n\n const calcOptions = Object.assign({}, data, {width, height, nodesOptions, title, legend});\n const { sankey, titleBox, legendBox } = this.calculateSankey(calcOptions, sankeyOptions);\n if (rtl) {\n toRtl(sankey);\n }\n const { nodes, links, columns } = sankey;\n\n sankeyContext.columns = columns.map(column => {\n const newColumn = column.slice();\n newColumn.sort((a, b) => a.y0 - b.y0);\n return newColumn;\n });\n\n const visual = new drawing.Group({\n clip: drawing.Path.fromRect(new geometry.Rect([0, 0], [width, height]))\n });\n\n if (titleBox) {\n const titleElement = new Title(Object.assign({}, title, {drawingRect: titleBox}));\n const titleVisual = titleElement.exportVisual();\n visual.append(titleVisual);\n }\n\n if (sankey.circularLinks) {\n return visual;\n }\n\n const visualNodes = new Map();\n sankeyContext.nodesVisuals = visualNodes;\n\n const models = {\n nodes: [],\n links: [],\n map: new Map()\n };\n sankeyContext.models = models;\n\n const focusHighlights = [];\n\n nodes.forEach((node, i) => {\n const nodeOps = resolveNodeOptions(node, nodesOptions, nodeColors, i);\n nodeOps.root = () => sankeyContext.element;\n nodeOps.navigatable = disableKeyboardNavigation !== true;\n\n const nodeInstance = new Node(nodeOps);\n const nodeVisual = nodeInstance.exportVisual();\n nodeVisual.links = [];\n nodeVisual.type = NODE;\n\n node.color = nodeOps.color;\n node.opacity = nodeOps.opacity;\n\n nodeVisual.dataItem = Object.assign({}, data.nodes[i],\n {color: nodeOps.color,\n opacity: nodeOps.opacity,\n sourceLinks: node.sourceLinks.map(link => ({ sourceId: link.sourceId, targetId: link.targetId, value: link.value })),\n targetLinks: node.targetLinks.map(link => ({ sourceId: link.sourceId, targetId: link.targetId, value: link.value }))});\n visualNodes.set(node.id, nodeVisual);\n\n models.nodes.push(nodeInstance);\n models.map.set(node.id, nodeInstance);\n\n visual.append(nodeVisual);\n\n nodeInstance.createFocusHighlight();\n\n if (nodeInstance._highlight) {\n focusHighlights.push(nodeInstance._highlight);\n }\n });\n\n const sortedLinks = links.slice().sort((a, b) => b.value - a.value);\n\n const linksVisuals = [];\n sankeyContext.linksVisuals = linksVisuals;\n\n sortedLinks.forEach(link => {\n const { source, target } = link;\n const sourceNode = visualNodes.get(source.id);\n const targetNode = visualNodes.get(target.id);\n const resolvedOptions = resolveLinkOptions(link, linkOptions, sourceNode, targetNode);\n resolvedOptions.root = () => sankeyContext.element;\n resolvedOptions.navigatable = disableKeyboardNavigation !== true;\n resolvedOptions.rtl = rtl;\n const linkInstance = new Link(resolvedOptions);\n const linkVisual = linkInstance.exportVisual();\n\n linkVisual.type = LINK;\n linkVisual.dataItem = {\n source: Object.assign({}, sourceNode.dataItem),\n target: Object.assign({}, targetNode.dataItem),\n value: link.value\n };\n linkVisual.linkOptions = resolvedOptions;\n linksVisuals.push(linkVisual);\n\n sourceNode.links.push(linkVisual);\n targetNode.links.push(linkVisual);\n\n models.links.push(linkInstance);\n models.map.set(`${source.id}-${target.id}`, linkInstance);\n\n linkInstance.createFocusHighlight();\n\n if (linkInstance._highlight) {\n focusHighlights.push(linkInstance._highlight);\n }\n\n visual.append(linkVisual);\n });\n\n const diagramMinX = nodes.reduce((acc, node) => Math.min(acc, node.x0), Infinity);\n const diagramMaxX = nodes.reduce((acc, node) => Math.max(acc, node.x1), 0);\n\n nodes.forEach((node) => {\n const textOps = resolveLabelOptions(node, labelOptions, rtl, diagramMinX, diagramMaxX);\n const labelInstance = new Label(textOps);\n const labelVisual = labelInstance.exportVisual();\n\n if (labelVisual) {\n visual.append(labelVisual);\n }\n });\n\n if (legendBox) {\n const legendElement = new Legend(Object.assign({}, legend, {rtl, drawingRect: legendBox, nodes}));\n const legendVisual = legendElement.exportVisual();\n visual.append(legendVisual);\n }\n\n if (focusHighlights.length !== 0) {\n const focusHighlight = new drawing.Group();\n focusHighlight.append(...focusHighlights);\n visual.append(focusHighlight);\n }\n\n return visual;\n }\n\n exportVisual(exportOptions) {\n const options = (exportOptions && exportOptions.options) ?\n deepExtend({}, this.options, exportOptions.options) : this.options;\n\n const context = {\n size: {\n width: defined(exportOptions && exportOptions.width) ? exportOptions.width : this.size.width,\n height: defined(exportOptions && exportOptions.height) ? exportOptions.height : this.size.height\n }\n };\n\n return this._render(options, context);\n }\n\n _setOptions(options) {\n this.options = deepExtend({}, this.options, options);\n }\n}\n\nconst highlightOptions = {\n opacity: 1,\n width: 2,\n color: BLACK\n};\n\nsetDefaultOptions(Sankey, {\n title: {\n position: TOP, // 'top', 'bottom'\n },\n labels: {\n visible: true,\n margin: {\n left: 8,\n right: 8\n },\n padding: 0,\n border: {\n width: 0\n },\n paintOrder: 'stroke',\n stroke: {\n lineJoin: \"round\",\n width: 1\n },\n offset: { left: 0, top: 0 }\n },\n nodes: {\n width: 24,\n padding: 16,\n opacity: 1,\n align: 'stretch', // 'left', 'right', 'stretch'\n offset: { left: 0, top: 0 },\n focusHighlight: Object.assign({}, highlightOptions),\n labels: {\n ariaTemplate: ({ node }) => node.label.text\n }\n },\n links: {\n colorType: 'static', // 'source', 'target', 'static'\n opacity: 0.4,\n highlight: {\n opacity: 0.8,\n inactiveOpacity: 0.2\n },\n focusHighlight: Object.assign({}, highlightOptions),\n labels: {\n ariaTemplate: ({ link }) => `${link.source.label.text} to ${link.target.label.text}`\n }\n },\n tooltip: {\n followPointer: false,\n delay: 200\n }\n});\n","export const createSankeyData = (data, dimensions, measure) => {\n const nodes = new Set();\n const links = new Map();\n const linksMap = new Map();\n\n data.forEach((row) => {\n dimensions.forEach((dimension) => {\n nodes.add(dimension.value(row));\n });\n\n for (let i = 0; i < dimensions.length - 1; i++) {\n const source = dimensions[i].value(row);\n const target = dimensions[i + 1].value(row);\n const key = `${source}_${target}`;\n const value = measure.value(row);\n const existingValue = links.get(key);\n\n if (existingValue !== undefined) {\n links.set(key, existingValue + value);\n } else {\n links.set(key, value);\n linksMap.set(key, { source, target });\n }\n }\n });\n\n const nodesId = new Map();\n const nodesArray = Array.from(nodes).map((node, index) => {\n nodesId.set(node, index);\n return { id: index, label: { text: String(node) } };\n });\n\n const linksArray = Array.from(links).map(([key, value]) => {\n const { source, target } = linksMap.get(key);\n return {\n sourceId: nodesId.get(source),\n targetId: nodesId.get(target),\n value\n };\n });\n\n return { nodes: nodesArray, links: linksArray };\n};\n","const ActionTypes = Object.freeze({\n seriesType: 0,\n stacked: 1,\n\n categoryAxisX: 2,\n valueAxisY: 3,\n\n seriesChange: 4,\n\n areaMarginLeft: 5,\n areaMarginRight: 6,\n areaMarginTop: 7,\n areaMarginBottom: 8,\n areaBackground: 9,\n\n titleText: 10,\n titleFontName: 11,\n titleFontSize: 12,\n titleColor: 13,\n\n subtitleText: 14,\n subtitleFontName: 15,\n subtitleFontSize: 16,\n subtitleColor: 17,\n\n seriesColor: 18,\n seriesLabel: 19,\n\n legendVisible: 20,\n legendFontName: 21,\n legendFontSize: 22,\n legendColor: 23,\n legendPosition: 24,\n\n categoryAxisTitleText: 25,\n categoryAxisTitleFontName: 26,\n categoryAxisTitleFontSize: 27,\n categoryAxisTitleColor: 28,\n categoryAxisLabelsFontName: 29,\n categoryAxisLabelsFontSize: 30,\n categoryAxisLabelsColor: 31,\n categoryAxisLabelsRotation: 32,\n categoryAxisReverseOrder: 33,\n\n valueAxisTitleText: 34,\n valueAxisTitleFontName: 35,\n valueAxisTitleFontSize: 36,\n valueAxisTitleColor: 37,\n valueAxisLabelsFormat: 38,\n valueAxisLabelsFontName: 39,\n valueAxisLabelsFontSize: 40,\n valueAxisLabelsColor: 41,\n valueAxisLabelsRotation: 42,\n});\n\nconst fontSizes = [\n { text: \"10\", value: \"10px\" },\n { text: \"12\", value: \"12px\" },\n { text: \"14\", value: \"14px\" },\n { text: \"16\", value: \"16px\" },\n { text: \"20\", value: \"20px\" },\n { text: \"28\", value: \"28px\" },\n { text: \"42\", value: \"42px\" },\n { text: \"56\", value: \"56px\" }\n];\n\nconst titleSizeDefault = '20px';\nconst subtitleSizeDefault = '16px';\nconst labelSizeDefault = '12px';\nconst axisTitleSizeDefault = '16px';\n\nconst fontNames = [\n {\n text: \"Arial\",\n value: \"Arial, Helvetica, sans-serif\",\n style: { fontFamily: \"Arial, Helvetica, sans-serif\" },\n },\n {\n text: \"Courier New\",\n value: \"'Courier New', Courier, monospace\",\n style: { fontFamily: \"'Courier New', Courier, monospace\" },\n },\n {\n text: \"Georgia\",\n value: \"Georgia, serif\",\n style: { fontFamily: \"Georgia, serif\" },\n },\n {\n text: \"Impact\",\n value: \"Impact, Charcoal, sans-serif\",\n style: { fontFamily: \"Impact, Charcoal, sans-serif\" },\n },\n {\n text: \"Lucida Console\",\n value: \"'Lucida Console', Monaco, monospace\",\n style: { fontFamily: \"'Lucida Console', Monaco, monospace\" },\n },\n {\n text: \"Tahoma\",\n value: \"Tahoma, Geneva, sans-serif\",\n style: { fontFamily: \"Tahoma, Geneva, sans-serif\" },\n },\n {\n text: \"Times New Roman\",\n value: \"'Times New Roman', Times,serif\",\n style: { fontFamily: \"'Times New Roman', Times,serif\" },\n },\n {\n text: \"Trebuchet MS\",\n value: \"'Trebuchet MS', Helvetica, sans-serif\",\n style: { fontFamily: \"'Trebuchet MS', Helvetica, sans-serif\" },\n },\n {\n text: \"Verdana\",\n value: \"Verdana, Geneva, sans-serif\",\n style: { fontFamily: \"Verdana, Geneva, sans-serif\" },\n },\n];\n\nconst fontNameDefault = fontNames[0].value;\n\nconst columnType = \"column\";\nconst barType = \"bar\";\nconst lineType = \"line\";\nconst pieType = \"pie\";\nconst scatterType = \"scatter\";\nconst categoricalTypes = [columnType, barType, lineType, scatterType];\n\nconst scatterSeries = {\n type: lineType,\n width: 0,\n};\n\nfunction isCategorical(type) {\n return type && categoricalTypes.includes(type);\n}\n\nconst categoryTypes = [\"string\", \"date\", \"number\"];\nconst valueTypes = [\"number\"];\n\nconst axesDefinitions = {\n bar: [\n { axisType: \"category\", types: categoryTypes },\n { axisType: \"value\", types: valueTypes },\n ],\n column: [\n { axisType: \"category\", types: categoryTypes },\n { axisType: \"value\", types: valueTypes },\n ],\n line: [\n { axisType: \"category\", types: categoryTypes },\n { axisType: \"value\", types: valueTypes },\n ],\n pie: [\n { axisType: \"category\", types: categoryTypes },\n { axisType: \"value\", types: valueTypes, count: 1 },\n ],\n scatter: [\n { axisType: \"category\", types: categoryTypes },\n { axisType: \"value\", types: valueTypes },\n ],\n};\n\nfunction getFont(font, size) {\n return `${size || \"\"} ${font || \"\"}`.trim();\n}\n\nfunction parseFont(font) {\n const spaceIndex = (font || \"\").indexOf(\" \");\n const size = font && font.substring(0, spaceIndex);\n const name = font && font.substring(spaceIndex + 1);\n return { size, name };\n}\n\nconst updateFontName = (fontName, defaultSize, currentFont) => {\n const { size } = parseFont(currentFont);\n return fontName ? getFont(fontName, size || defaultSize) : \"\";\n};\n\nconst updateFontSize = (fontSize, defaultFontName, currentFont) => {\n const { name } = parseFont(currentFont);\n return fontSize ? getFont(name || defaultFontName, fontSize) : \"\";\n};\n\nconst hasValue = (value) => value !== undefined && value !== null;\n\nconst recordWithValues = (data) => {\n const result = structuredClone(data[0]);\n result.forEach((item, i) => {\n if (!hasValue(item.value)) {\n for (let index = 0; index < data.length; index++) {\n const value = data[index][i].value;\n if (hasValue(value)) {\n item.value = value;\n break;\n }\n }\n }\n });\n\n return result;\n};\n\nconst getCategoryColumnIndex = (data, categoryDef) => {\n const candidates = [];\n const sampleRecord = recordWithValues(data);\n\n categoryDef.types.forEach((type) => {\n sampleRecord.forEach((item, i) => {\n if (typeof item.value === type) {\n candidates.push(i);\n }\n });\n });\n\n const result = candidates.findIndex((index) => {\n const values = data.map((record) => record[index].value);\n return new Set(values).size === values.length;\n });\n\n return Math.max(result, 0);\n};\n\nconst getValueColumnIndexes = (data, valuesDef) => {\n const candidates = [];\n const sampleRecord = recordWithValues(data);\n\n valuesDef.forEach((def) => {\n def.types.forEach((type) => {\n sampleRecord.forEach((item, i) => {\n if (typeof item.value === type) {\n candidates.push(i);\n }\n });\n });\n });\n\n return candidates;\n};\n\nconst emptyState = () =>\n structuredClone({\n columns: [],\n data: [],\n series: [],\n initialSeries: [],\n categoryAxis: [ { categories: [], labels: { visible: true, rotation: \"auto\" }, title: { text: '' } } ],\n valueAxis: [{ labels: { visible: true, rotation: 'auto' } }],\n area: {\n margin: {\n left: undefined,\n right: undefined,\n top: undefined,\n bottom: undefined,\n },\n },\n title: { text: '' },\n subtitle: { text: '' },\n stack: false,\n });\n\nconst categoryValueChartState = (data, seriesType, options) => {\n const state = emptyState();\n state.seriesType = seriesType;\n state.data = data || [];\n state.legend = { visible: true, position: \"bottom\" };\n const chartDef = axesDefinitions[seriesType];\n\n if (!chartDef || !data.length) {\n return state;\n }\n\n const firstRecord = data[0].slice();\n state.columns = data[0].map((i) => String(i.field));\n\n const categoryDef = chartDef.find((def) => def.axisType === \"category\");\n let catIndex = -1;\n if (categoryDef) {\n catIndex =\n options && options.categoryAxis\n ? state.columns.indexOf(options.categoryAxis)\n : getCategoryColumnIndex(data, categoryDef);\n }\n\n const valuesDef = chartDef.filter((def) => def.axisType === \"value\");\n let valuesIndexes = getValueColumnIndexes(data, valuesDef);\n\n if (valuesIndexes.includes(catIndex)) {\n if (valuesIndexes.length > 1) {\n valuesIndexes = valuesIndexes.filter((index) => index !== catIndex);\n } else {\n catIndex = -1;\n }\n }\n\n const series = [];\n valuesIndexes.forEach((index) => {\n const valuesColumn = firstRecord[index];\n const valuesResult = [];\n data.forEach((record) => {\n valuesResult.push(record[index].value);\n });\n series.push(Object.assign({}, {name: valuesColumn.field,\n type: seriesType,\n data: valuesResult,\n stack: false,\n labels: { visible: false }},\n (seriesType === scatterType ? scatterSeries : {})));\n });\n\n const categories =\n catIndex > -1\n ? data.map((item) =>\n String(\n hasValue(item[catIndex].value)\n ? item[catIndex].value\n : \" \"\n )\n )\n : [];\n\n if (series.length) {\n state.series = series.map((s, i) => (Object.assign({}, s, {id: i})));\n state.initialSeries = structuredClone(state.series);\n }\n\n state.categoryAxis = [\n { categories, labels: { visible: true, rotation: \"auto\" } },\n ];\n state.categoryField = state.columns[catIndex];\n\n return state;\n};\n\nconst pieChartState = (data, seriesType, options) => {\n const state = emptyState();\n state.seriesType = seriesType;\n state.data = data || [];\n\n const chartDef = axesDefinitions[seriesType];\n\n if (!chartDef || !data.length) {\n return state;\n }\n\n const categoriesAxis = data[0].map((i) => i.field);\n const categoryDef = chartDef.find((def) => def.axisType === \"category\");\n let catIndex = -1;\n if (categoryDef) {\n catIndex =\n options && options.categoryAxis\n ? categoriesAxis.indexOf(options.categoryAxis)\n : getCategoryColumnIndex(data, categoryDef);\n }\n\n const valuesDef = chartDef.filter((def) => def.axisType === \"value\");\n\n let valuesIndexes = [];\n if (options && options.valueAxis) {\n valuesIndexes = [categoriesAxis.indexOf(options.valueAxis)];\n } else {\n valuesIndexes = getValueColumnIndexes(data, valuesDef);\n }\n\n if (valuesIndexes.includes(catIndex) && valuesIndexes.length > 1) {\n valuesIndexes = valuesIndexes.filter((index) => index !== catIndex);\n }\n\n if (typeof valuesDef[0].count === \"number\") {\n valuesIndexes = valuesIndexes.slice(0, valuesDef[0].count);\n }\n\n const categories =\n catIndex > -1 ? data.map((item) => String(item[catIndex].value)) : [];\n\n const flatData = [];\n\n data.forEach((item) => {\n const record = {};\n valuesIndexes.forEach((index) => {\n const col = item[index];\n record[col.field] = col.value || 0;\n record[item[catIndex].field] = item[catIndex].value || \" \";\n });\n flatData.push(record);\n });\n\n state.columns = categoriesAxis;\n state.categoryAxis = [{ categories, title: { text: \"\" } }];\n\n state.series = [\n {\n id: 0,\n data: flatData,\n type: seriesType,\n name: categoriesAxis[catIndex],\n labels: { visible: true },\n categoryField: categoriesAxis[catIndex],\n field: categoriesAxis[valuesIndexes[0]],\n },\n ];\n\n state.categoryField = categoriesAxis[catIndex];\n state.valueField = categoriesAxis[valuesIndexes[0]];\n\n state.initialSeries = structuredClone(state.series);\n\n return state;\n};\n\nfunction createInitialState(data, seriesType, defaultState) {\n const state = createState(\n data,\n (defaultState && defaultState.seriesType) || seriesType\n );\n\n return typeof (defaultState && defaultState.stack) !== \"undefined\"\n ? updateState(state, ActionTypes.stacked, defaultState.stack)\n : state;\n}\n\nfunction createState(data, seriesType) {\n return (isCategorical(seriesType) ? categoryValueChartState : pieChartState)(\n data,\n seriesType\n );\n}\n\nfunction mergeStates(state, newState) {\n newState.legend = state.legend;\n newState.area = state.area;\n newState.title = state.title;\n newState.subtitle = state.subtitle;\n if (newState.series.length === state.series.length) {\n for (let i = 0; i < newState.series.length; i++) {\n newState.series[i].color = state.series[i].color;\n newState.series[i].labels = state.series[i].labels;\n }\n }\n\n if (\n state.series.every((s) => s.labels && s.labels.visible) &&\n isCategorical(newState.seriesType) &&\n isCategorical(state.seriesType)\n ) {\n newState.series.forEach((s) => {\n s.labels = s.labels || {};\n s.labels.visible = true;\n });\n }\n\n return newState;\n}\n\n/* eslint-disable complexity */\nfunction updateState(currentState, action, value) {\n const state = Object.assign({}, currentState);\n\n switch (action) {\n case ActionTypes.seriesType:\n return createState(state.data, value);\n\n case ActionTypes.stacked:\n state.series = state.series.map((s) => (Object.assign({}, s, {stack: value})));\n state.stack = value;\n return state;\n\n case ActionTypes.categoryAxisX: {\n if (state.seriesType && isCategorical(state.seriesType)) {\n const newState = categoryValueChartState(\n state.data,\n state.seriesType,\n { categoryAxis: value }\n );\n return mergeStates(state, newState);\n } else if (state.seriesType === pieType) {\n const newState = pieChartState(state.data, state.seriesType, {\n categoryAxis: value,\n });\n return mergeStates(state, newState);\n }\n\n return state;\n }\n\n case ActionTypes.valueAxisY: {\n if (state.seriesType === pieType) {\n const newState = pieChartState(state.data, state.seriesType, {\n categoryAxis: state.categoryField,\n valueAxis: value,\n });\n return mergeStates(state, newState);\n }\n\n return state;\n }\n\n case ActionTypes.seriesChange:\n state.series = value;\n return state;\n\n case ActionTypes.areaMarginLeft:\n state.area = Object.assign({}, state.area,\n {margin: Object.assign({}, ((state.area && state.area.margin) || {}),\n {left: value})});\n return state;\n\n case ActionTypes.areaMarginRight:\n state.area = Object.assign({}, state.area,\n {margin: Object.assign({}, ((state.area && state.area.margin) || {}),\n {right: value})});\n return state;\n\n case ActionTypes.areaMarginTop:\n state.area = Object.assign({}, state.area,\n {margin: Object.assign({}, ((state.area && state.area.margin) || {}),\n {top: value})});\n return state;\n\n case ActionTypes.areaMarginBottom:\n state.area = Object.assign({}, state.area,\n {margin: Object.assign({}, ((state.area && state.area.margin) || {}),\n {bottom: value})});\n return state;\n\n case ActionTypes.areaBackground:\n state.area = Object.assign({}, state.area, {background: value});\n return state;\n\n case ActionTypes.titleText:\n state.title = Object.assign({}, state.title, {text: value});\n return state;\n\n case ActionTypes.titleFontName: {\n state.title = Object.assign({}, state.title,\n {font: updateFontName(\n value,\n titleSizeDefault,\n state.title && state.title.font\n )});\n return state;\n }\n case ActionTypes.titleFontSize:\n state.title = Object.assign({}, state.title,\n {font: updateFontSize(\n value,\n fontNameDefault,\n state.title && state.title.font\n )});\n return state;\n\n case ActionTypes.titleColor:\n state.title = Object.assign({}, state.title, {color: value});\n return state;\n\n case ActionTypes.subtitleText:\n state.subtitle = Object.assign({}, state.subtitle, {text: value});\n return state;\n\n case ActionTypes.subtitleFontName:\n state.subtitle = Object.assign({}, state.subtitle,\n {font: updateFontName(\n value,\n subtitleSizeDefault,\n state.subtitle && state.subtitle.font\n )});\n return state;\n\n case ActionTypes.subtitleFontSize:\n state.subtitle = Object.assign({}, state.subtitle,\n {font: updateFontSize(\n value,\n fontNameDefault,\n state.subtitle && state.subtitle.font\n )});\n return state;\n\n case ActionTypes.subtitleColor:\n state.subtitle = Object.assign({}, state.subtitle, {color: value});\n return state;\n\n case ActionTypes.seriesColor:\n state.series = state.series.map((s) => (Object.assign({}, s,\n {color: value.seriesName === s.name ? value.color : s.color})));\n return state;\n\n case ActionTypes.seriesLabel:\n state.series = state.series.map((s) => {\n if (value.all || value.seriesName === s.name) {\n return Object.assign({}, s, {labels: { visible: value.visible }});\n }\n return s;\n });\n return state;\n\n case ActionTypes.legendVisible:\n state.legend = Object.assign({}, state.legend, {visible: value});\n return state;\n\n case ActionTypes.legendFontName: {\n const legend = state.legend || {};\n state.legend = Object.assign({}, legend,\n {labels: Object.assign({}, legend.labels,\n {font: updateFontName(\n value,\n labelSizeDefault,\n legend.labels && legend.labels.font\n )})});\n return state;\n }\n case ActionTypes.legendFontSize: {\n const legend = state.legend || {};\n state.legend = Object.assign({}, legend,\n {labels: Object.assign({}, legend.labels,\n {font: updateFontSize(\n value,\n fontNameDefault,\n legend.labels && legend.labels.font\n )})});\n return state;\n }\n case ActionTypes.legendColor: {\n const legend = state.legend || {};\n state.legend = Object.assign({}, legend,\n {labels: Object.assign({}, legend.labels, {color: value})});\n return state;\n }\n case ActionTypes.legendPosition:\n state.legend = Object.assign({}, state.legend, {position: value});\n return state;\n\n case ActionTypes.categoryAxisTitleText:\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {text: value})})));\n return state;\n\n case ActionTypes.categoryAxisTitleFontName: {\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {font: updateFontName(value, axisTitleSizeDefault, axis.title && axis.title.font)})})));\n return state;\n }\n case ActionTypes.categoryAxisTitleFontSize:\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {font: updateFontSize(value, fontNameDefault, axis.title && axis.title.font)})})));\n return state;\n\n case ActionTypes.categoryAxisTitleColor:\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {color: value})})));\n return state;\n\n case ActionTypes.categoryAxisLabelsFontName: {\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {font: updateFontName(value, labelSizeDefault, axis.labels && axis.labels.font)})})));\n return state;\n }\n\n case ActionTypes.categoryAxisLabelsFontSize:\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {font: updateFontSize(value, fontNameDefault, axis.labels && axis.labels.font)})})));\n return state;\n\n case ActionTypes.categoryAxisLabelsColor:\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {color: value})})));\n return state;\n\n case ActionTypes.categoryAxisLabelsRotation: {\n const rotation = hasValue(value) ? value : 'auto';\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {rotation})})));\n return state;\n }\n case ActionTypes.categoryAxisReverseOrder:\n state.categoryAxis = (state.categoryAxis || []).map(axis => (Object.assign({}, axis, {reverse: value})));\n return state;\n\n case ActionTypes.valueAxisTitleText: {\n if (!state.valueAxis || state.valueAxis.length === 0) {\n state.valueAxis = [{ title: { text: value } }];\n } else {\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {text: value})})));\n }\n return state;\n }\n case ActionTypes.valueAxisTitleFontName: {\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {font: updateFontName(value, axisTitleSizeDefault, axis.title && axis.title.font)})})));\n return state;\n }\n case ActionTypes.valueAxisTitleFontSize:\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {font: updateFontSize(value, fontNameDefault, axis.title && axis.title.font)})})));\n return state;\n case ActionTypes.valueAxisTitleColor:\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {title: Object.assign({}, axis.title, {color: value})})));\n return state;\n\n case ActionTypes.valueAxisLabelsFormat:\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {format: value})})));\n return state;\n\n case ActionTypes.valueAxisLabelsFontName: {\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {font: updateFontName(value, labelSizeDefault, axis.labels && axis.labels.font)})})));\n return state;\n }\n case ActionTypes.valueAxisLabelsFontSize:\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {font: updateFontSize(value, fontNameDefault, axis.labels && axis.labels.font)})})));\n return state;\n case ActionTypes.valueAxisLabelsColor:\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {color: value})})));\n return state;\n\n case ActionTypes.valueAxisLabelsRotation: {\n const rotation = hasValue(value) ? value : 'auto';\n state.valueAxis = (state.valueAxis || []).map(axis => (Object.assign({}, axis, {labels: Object.assign({}, axis.labels, {rotation: rotation})})));\n return state;\n }\n\n default:\n return state;\n }\n}\n\nexport {\n ActionTypes,\n fontSizes,\n fontNames,\n isCategorical,\n parseFont,\n createInitialState,\n createState,\n mergeStates,\n updateState\n};\n","export const messages = Object.freeze({\n windowTitle: 'Chart Preview',\n exportButton: 'Export',\n exportPDFButton: 'PDF File',\n exportSVGButton: 'SVG File',\n exportPNGButton: 'PNG File',\n tabChart: 'Chart',\n tabData: 'Data',\n tabFormat: 'Format',\n barChart: 'Bar Chart',\n barChartBar: 'Bar',\n barChartStackedBar: 'Stacked Bar',\n barChart100StackedBar: '100% Stacked Bar',\n pieChart: 'Pie Chart',\n pieChartPie: 'Pie',\n columnChart: 'Column Chart',\n columnChartColumn: 'Column',\n columnChartStackedColumn: 'Stacked Column',\n columnChart100StackedColumn: '100% Stacked Column',\n lineChart: 'Line Chart',\n lineChartLine: 'Line',\n lineChartStackedLine: 'Stacked Line',\n lineChart100StackedLine: '100% Stacked Line',\n scatterChart: 'Scatter Chart',\n scatterChartScatter: 'Scatter',\n configuration: 'Configuration',\n configurationCategoryAxis: 'Category Axis',\n configurationXAxis: 'X Axis',\n configurationValueAxis: 'Value Axis',\n configurationSeries: 'Series',\n configurationSeriesAdd: 'Add',\n formatChartArea: 'Chart Area',\n formatChartAreaMargins: 'Margins',\n formatChartAreaMarginsAuto: 'Auto',\n formatChartAreaMarginsLeft: 'Left',\n formatChartAreaMarginsRight: 'Right',\n formatChartAreaMarginsTop: 'Top',\n formatChartAreaMarginsBottom: 'Bottom',\n formatChartAreaBackground: 'Background',\n formatChartAreaBackgroundColor: 'Color',\n formatTitle: 'Title',\n formatTitleApplyTo: 'Apply to',\n formatTitleChartTitle: 'Chart Title',\n formatTitleChartSubtitle: 'Chart Subtitle',\n formatTitleLabel: 'Title',\n formatTitleFont: 'Font',\n formatTitleFontPlaceholder: '(inherited font)',\n formatTitleSize: 'Size',\n formatTitleSizePlaceholder: 'px',\n formatTitleColor: 'Color',\n formatSeries: 'Series',\n formatSeriesApplyTo: 'Apply to',\n formatSeriesAllSeries: 'All Series',\n formatSeriesColor: 'Color',\n formatSeriesShowLabels: 'Show Labels',\n formatLegend: 'Legend',\n formatLegendShowLegend: 'Show Legend',\n formatLegendFont: 'Font',\n formatLegendFontPlaceholder: '(inherited font)',\n formatLegendSize: 'Size',\n formatLegendSizePlaceholder: 'px',\n formatLegendColor: 'Color',\n formatLegendPosition: 'Position',\n formatLegendPositionTop: 'Top',\n formatLegendPositionBottom: 'Bottom',\n formatLegendPositionLeft: 'Left',\n formatLegendPositionRight: 'Right',\n formatCategoryAxis: 'Category Axis',\n formatXAxis: 'X Axis',\n formatCategoryAxisTitle: 'Title',\n formatCategoryAxisTitlePlaceholder: 'Axis Title',\n formatCategoryAxisTitleFont: 'Font',\n formatCategoryAxisTitleFontPlaceholder: '(inherited font)',\n formatCategoryAxisTitleSize: 'Size',\n formatCategoryAxisTitleSizePlaceholder: 'px',\n formatCategoryAxisTitleColor: 'Color',\n formatCategoryAxisLabels: 'Labels',\n formatCategoryAxisLabelsFont: 'Font',\n formatCategoryAxisLabelsFontPlaceholder: '(inherited font)',\n formatCategoryAxisLabelsSize: 'Size',\n formatCategoryAxisLabelsSizePlaceholder: 'px',\n formatCategoryAxisLabelsColor: 'Color',\n formatCategoryAxisLabelsRotation: 'Rotation',\n formatCategoryAxisLabelsRotationAuto: 'Auto',\n formatCategoryAxisLabelsReverseOrder: 'Reverse Order',\n formatValueAxis: 'Value Axis',\n formatYAxis: 'Y Axis',\n formatValueAxisTitle: 'Title',\n formatValueAxisTitlePlaceholder: 'Axis Title',\n formatValueAxisTitleFont: 'Font',\n formatValueAxisTitleFontPlaceholder: '(inherited font)',\n formatValueAxisTitleSize: 'Size',\n formatValueAxisTitleSizePlaceholder: 'px',\n formatValueAxisTitleColor: 'Color',\n formatValueAxisLabels: 'Labels',\n formatValueAxisLabelsFormat: 'Label Format',\n formatValueAxisLabelsFormatText: 'Text',\n formatValueAxisLabelsFormatNumber: 'Number',\n formatValueAxisLabelsFormatCurrency: 'Currency',\n formatValueAxisLabelsFormatPercent: 'Percent',\n formatValueAxisLabelsFont: 'Font',\n formatValueAxisLabelsFontPlaceholder: '(inherited font)',\n formatValueAxisLabelsSize: 'Size',\n formatValueAxisLabelsSizePlaceholder: 'px',\n formatValueAxisLabelsColor: 'Color',\n formatValueAxisLabelsRotation: 'Rotation',\n formatValueAxisLabelsRotationAuto: 'Auto'\n});\n","import { AREA, LINE } from './constants';\nimport { INHERIT } from '../common/constants';\n\nconst BAR_GAP = 1.5;\nconst BAR_SPACING = 0.4;\nconst BLACK = '#000';\nconst SANS = 'Arial, Helvetica, sans-serif';\nconst SANS11 = \"11px \" + SANS;\nconst SANS12 = '12px ' + SANS;\nconst SANS16 = '16px ' + SANS;\nconst TRANSPARENT = 'transparent';\nconst WHITE = '#fff';\n\nconst lineSeriesLegendItem = {\n type: LINE\n};\n\nconst areaSeriesLegendItem = {\n type: AREA\n};\n\nconst areaNoMarkersSeriesLegendItem = Object.assign({}, areaSeriesLegendItem,\n {markers: {\n visible: false\n },\n highlight: {\n visible: false\n }});\n\nconst notes = () => ({\n icon: {\n border: {\n width: 1\n }\n },\n label: {\n font: SANS12,\n padding: 3\n },\n line: {\n length: 10,\n width: 2\n },\n legendItem: areaNoMarkersSeriesLegendItem,\n visible: true\n});\n\nconst axisDefaults = () => ({\n labels: {\n font: SANS12\n },\n notes: notes(),\n title: {\n font: SANS16,\n margin: 5\n }\n});\n\nconst areaSeries = () => ({\n highlight: {\n markers: {\n border: {}\n }\n },\n line: {\n opacity: 1,\n width: 0\n },\n markers: {\n size: 6,\n visible: false\n },\n legendItem: areaSeriesLegendItem,\n opacity: 0.4\n});\n\nconst rangeAreaSeries = () => ({\n highlight: {\n markers: {\n border: {}\n }\n },\n line: {\n opacity: 1,\n width: 0\n },\n markers: {\n size: 6,\n visible: false\n },\n legendItem: areaSeriesLegendItem,\n opacity: 0.4\n});\n\nconst barSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING,\n legendItem: areaNoMarkersSeriesLegendItem,\n});\n\nconst boxPlotSeries = () => ({\n outliersField: \"\",\n meanField: \"\",\n border: {\n _brightness: 0.8,\n width: 1\n },\n downColor: WHITE,\n gap: 1,\n highlight: {\n border: {\n opacity: 1,\n width: 2\n },\n whiskers: {\n width: 3\n },\n mean: {\n width: 2\n },\n median: {\n width: 2\n }\n },\n mean: {\n width: 2\n },\n median: {\n width: 2\n },\n spacing: 0.3,\n whiskers: {\n width: 2\n },\n legendItem: areaNoMarkersSeriesLegendItem,\n});\n\nconst bubbleSeries = () => ({\n border: {\n width: 0\n },\n labels: {\n background: TRANSPARENT\n },\n legendItem: areaNoMarkersSeriesLegendItem,\n opacity: 0.6\n});\n\nconst bulletSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING,\n target: {\n color: \"#ff0000\"\n },\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst candlestickSeries = () => ({\n border: {\n _brightness: 0.8,\n width: 1\n },\n downColor: WHITE,\n gap: 1,\n highlight: {\n border: {\n opacity: 1,\n width: 2\n },\n line: {\n width: 2\n }\n },\n line: {\n color: BLACK,\n width: 1\n },\n legendItem: areaNoMarkersSeriesLegendItem,\n spacing: 0.3\n});\n\nconst columnSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING,\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst radarColumnSeries = () => ({\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst polarScatterSeries = () => ({\n legendItem: lineSeriesLegendItem\n});\n\nconst scatterSeries = () => ({\n legendItem: lineSeriesLegendItem\n});\n\nconst donutSeries = () => ({\n margin: 1,\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst lineSeries = () => ({\n width: 2,\n legendItem: lineSeriesLegendItem\n});\n\nconst ohlcSeries = () => ({\n gap: 1,\n highlight: {\n line: {\n opacity: 1,\n width: 3\n }\n },\n line: {\n width: 1\n },\n legendItem: areaNoMarkersSeriesLegendItem,\n spacing: 0.3\n});\n\nconst radarAreaSeries = () => ({\n line: {\n opacity: 1,\n width: 0\n },\n markers: {\n size: 6,\n visible: false\n },\n legendItem: areaSeriesLegendItem,\n opacity: 0.5\n});\n\nconst radarLineSeries = () => ({\n markers: {\n visible: false\n },\n legendItem: lineSeriesLegendItem,\n width: 2\n});\n\nconst rangeBarSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING,\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst rangeColumnSeries = () => ({\n gap: BAR_GAP,\n spacing: BAR_SPACING,\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst scatterLineSeries = () => ({\n width: 1,\n legendItem: lineSeriesLegendItem\n});\n\nconst waterfallSeries = () => ({\n gap: 0.5,\n line: {\n color: BLACK,\n width: 1\n },\n legendItem: areaNoMarkersSeriesLegendItem,\n spacing: BAR_SPACING\n});\n\nconst pieSeries = () => ({\n labels: {\n background: '',\n color: '',\n padding: {\n top: 5,\n bottom: 5,\n left: 7,\n right: 7\n }\n },\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst funnelSeries = () => ({\n labels: {\n background: '',\n color: '',\n padding: {\n top: 5,\n bottom: 5,\n left: 7,\n right: 7\n }\n },\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst pyramidSeries = funnelSeries;\n\nconst heatmapSeries = () => ({\n labels: {\n color: '',\n background: TRANSPARENT,\n visible: true\n },\n highlight: {\n border: {\n width: 0\n }\n },\n legendItem: areaNoMarkersSeriesLegendItem\n});\n\nconst trendlineSeriesDefaults = (options) => Object.assign({\n color: INHERIT,\n trendline: {},\n markers: {\n visible: false\n },\n width: 1,\n dashType: 'longDash',\n legendItem: lineSeriesLegendItem\n}, options);\n\nconst seriesDefaults = (options) => ({\n visible: true,\n labels: {\n font: SANS11\n },\n overlay: options.gradients ? {} : {\n gradient: \"none\"\n },\n area: areaSeries(),\n rangeArea: rangeAreaSeries(),\n verticalRangeArea: rangeAreaSeries(),\n bar: barSeries(),\n boxPlot: boxPlotSeries(),\n bubble: bubbleSeries(),\n bullet: bulletSeries(),\n candlestick: candlestickSeries(),\n column: columnSeries(),\n heatmap: heatmapSeries(),\n pie: pieSeries(),\n donut: donutSeries(),\n funnel: funnelSeries(),\n pyramid: pyramidSeries(),\n horizontalWaterfall: waterfallSeries(),\n line: lineSeries(),\n notes: notes(),\n ohlc: ohlcSeries(),\n radarArea: radarAreaSeries(),\n radarLine: radarLineSeries(),\n radarColumn: radarColumnSeries(),\n polarArea: radarAreaSeries(),\n polarLine: radarLineSeries(),\n polarScatter: polarScatterSeries(),\n rangeBar: rangeBarSeries(),\n rangeColumn: rangeColumnSeries(),\n scatter: scatterSeries(),\n scatterLine: scatterLineSeries(),\n verticalArea: areaSeries(),\n verticalBoxPlot: boxPlotSeries(),\n verticalBullet: bulletSeries(),\n verticalLine: lineSeries(),\n waterfall: waterfallSeries(),\n linearTrendline: trendlineSeriesDefaults(),\n exponentialTrendline: trendlineSeriesDefaults({ style: 'smooth' }),\n logarithmicTrendline: trendlineSeriesDefaults({ style: 'smooth' }),\n polynomialTrendline: trendlineSeriesDefaults({ style: 'smooth' }),\n powerTrendline: trendlineSeriesDefaults({ style: 'smooth' }),\n movingAverageTrendline: trendlineSeriesDefaults()\n});\n\nconst title = () => ({\n font: SANS16\n});\n\nconst subtitle = () => ({\n font: SANS12\n});\n\nconst legend = () => ({\n labels: {\n font: SANS12\n }\n});\n\nexport const baseTheme = (options = {}) => ({\n axisDefaults: axisDefaults(),\n categoryAxis: {\n majorGridLines: {\n visible: true\n }\n },\n navigator: {\n pane: {\n height: 90,\n margin: {\n top: 10\n }\n }\n },\n seriesDefaults: seriesDefaults(options),\n title: title(),\n subtitle: subtitle(),\n legend: legend()\n});\n\n","import { getWizardDataFromDataRows } from './chart-wizard/get-wizard-data-from-data-rows';\nimport { ActionTypes, createInitialState, createState, fontNames, fontSizes, isCategorical, mergeStates, parseFont, updateState } from './chart-wizard/state';\nimport {\n messages\n} from './chart-wizard/messages';\n\nexport const ChartWizardCommon = Object.freeze({\n getWizardDataFromDataRows,\n ActionTypes,\n createInitialState,\n createState,\n fontNames,\n fontSizes,\n isCategorical,\n mergeStates,\n parseFont,\n updateState,\n messages\n});\n","import getter from './../common/getter';\n\nexport function getWizardDataFromDataRows(dataRows) {\n const result = [];\n\n dataRows.forEach(item => {\n const { dataItem, dataColumns } = item;\n\n const row = [];\n dataColumns.forEach(column => {\n row.push({\n field: column.title || column.field,\n value: getter(column.field)(dataItem)\n });\n });\n\n result.push(row);\n });\n\n return result;\n}\n","/**\n * @hidden\n */\nexport const isWindowAvailable = () => {\n return typeof window !== 'undefined';\n};\n","/* tslint:disable:object-literal-sort-keys max-line-length */\nimport { isWindowAvailable } from './util';\nconst agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)(\\.(\\d+(\\.\\d+)?))?/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n};\nconst osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n};\nconst desktopBrowserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\nconst mobileBrowserRxs = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n};\nconst testRx = (agent, rxs, dflt) => {\n for (let rx in rxs) {\n if (rxs.hasOwnProperty(rx) && rxs[rx].test(agent)) {\n return rx;\n }\n }\n return dflt !== undefined ? dflt : agent;\n};\n/**\n * A function that detects the mobile browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Linux; Android 8.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.3 Chrome/61.0.3163.81 Mobile Safari/537.36';\n * detectMobileOS(userAgent); // { android: true };\n * ```\n */\nexport const detectMobileOS = (ua) => {\n let minorVersion;\n let match = [];\n for (let agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (!match) {\n continue;\n }\n if (agent === 'windows' && 'plugins' in window.navigator) {\n return null;\n } // Break if not Metro/Mobile Windows\n const os = {};\n os.device = agent;\n os.browser = testRx(ua, mobileBrowserRxs, 'default');\n os.name = testRx(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = match[3] ? match[3].replace('_', '.') : '.0';\n minorVersion = os.minorVersion.replace('.', '').substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion +\n (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join('0'));\n os.cordova = typeof window.PhoneGap !== undefined\n || typeof window.cordova !== undefined; // Use file protocol to detect appModes.\n os.appMode = window.navigator.standalone\n || (/file|local|wmapp/).test(window.location.protocol)\n || os.cordova; // Use file protocol to detect appModes.\n return os;\n }\n }\n return null;\n};\n/**\n * A function that detects the desktop browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19';\n * detectDesktopBrowser(userAgent); // { chrome: true, webkit: true };\n * ```\n */\nexport const detectDesktopBrowser = (ua) => {\n let browserInfo = null;\n let match = [];\n for (let agent in desktopBrowserRxs) {\n if (desktopBrowserRxs.hasOwnProperty(agent)) {\n match = ua.match(desktopBrowserRxs[agent]);\n if (match) {\n browserInfo = {};\n browserInfo[agent] = true;\n browserInfo[match[1].toLowerCase().split(' ')[0].split('/')[0]] = true;\n browserInfo.version = parseInt(document.documentMode || match[2], 10);\n break;\n }\n }\n }\n return browserInfo;\n};\nconst userAgent = isWindowAvailable() && window.navigator ? window.navigator.userAgent : null;\n/**\n * A constant holding the desktop browser info. The variable persists the result of the detectDesktopBrowser(window.navigator.userAgent) call.\n * If no desktop browser is detected, the constant will be `null`.\n */\nexport const browser = userAgent ? detectDesktopBrowser(userAgent) : null;\n/**\n * A constant holding the mobile OS info. The variable persists the result of the detectMobileOS(window.navigator.userAgent) call.\n * If no mobile OS is detected, the constant will be `null`.\n */\nexport const mobileOS = userAgent ? detectMobileOS(userAgent) : null;\n/**\n * A constant reporting the browser `touch` events support.\n */\nexport const touch = isWindowAvailable() && 'ontouchstart' in window;\n/**\n * @hidden\n * A constant reporting the browser `msPointers` events support.\n */\nexport const msPointers = browser && !browser.chrome && window.MSPointerEvent;\n/**\n * A constant reporting the browser `pointers` events support.\n */\nexport const pointers = browser && !browser.chrome && window.PointerEvent;\n/**\n * A constant reporting whether the browser is touch enabled.\n */\nexport const touchEnabled = mobileOS && (touch || msPointers || pointers);\n","const FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n/**\n * @hidden\n */\nexport function fieldList(field) {\n const fields = [];\n field.replace(FIELD_REGEX, function (_match, index, indexAccessor, fieldName) {\n fields.push(index !== undefined ? index : (indexAccessor || fieldName));\n });\n return fields;\n}\n","import { fieldList } from './field-list';\nconst getterCache = {};\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = obj => obj;\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n const fields = fieldList(field);\n getterCache[field] = function (obj) {\n let result = obj;\n for (let idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","import { fieldList } from './field-list';\nconst setterCache = {};\n// tslint:disable-next-line:no-string-literal\nsetterCache['undefined'] = obj => obj;\nconst defaultValue = (nextField, options) => options && options.arrays && !isNaN(Number(nextField)) ? [] : {};\n/**\n * @hidden\n */\nexport function setter(field) {\n if (setterCache[field]) {\n return setterCache[field];\n }\n const fields = fieldList(field);\n setterCache[field] = (obj, value, options) => {\n let root = obj;\n const depth = fields.length - 1;\n for (let idx = 0; idx < depth && root; idx++) {\n root = root[fields[idx]] = root[fields[idx]] || defaultValue(fields[idx + 1], options);\n }\n root[fields[depth]] = value;\n };\n return setterCache[field];\n}\n","/**\n * @hidden\n */\nexport const isPresent = (value) => value !== null && value !== undefined;\n/**\n * @hidden\n */\nexport const isBlank = (value) => value === null || value === undefined;\n/**\n * @hidden\n */\nexport const isArray = (value) => Array.isArray(value);\n/**\n * @hidden\n */\nexport const isFunction = (value) => typeof value === 'function';\n/**\n * @hidden\n */\nexport const isString = (value) => typeof value === 'string';\n/**\n * @hidden\n */\nexport const isTruthy = (value) => !!value;\n/**\n * @hidden\n */\nexport const isNullOrEmptyString = (value) => isBlank(value) || value.trim().length === 0;\n/**\n * @hidden\n */\nexport const isNotNullOrEmptyString = (value) => !isNullOrEmptyString(value);\n/**\n * @hidden\n */\nexport const isNumeric = (value) => !isNaN(value - parseFloat(value));\n/**\n * @hidden\n */\nexport const isDate = (value) => value && value.getTime;\n","import { isPresent } from '../utils';\n// tslint:enable:max-line-length\n/**\n * @hidden\n * Type guard for `CompositeFilterDescriptor`.\n */\nexport const isCompositeFilterDescriptor = (source) => {\n return isPresent(source.filters);\n};\n","/**\n * @hidden\n */\nexport const ifElse = (predicate, right, left) => value => predicate(value) ? right(value) : left(value);\n/**\n * @hidden\n * Performs the right-to-left function composition. Functions should have a unary.\n */\nexport const compose = (...args) => (data) => args.reduceRight((acc, curr) => curr(acc), data);\n/**\n * @hidden\n */\nexport const constant = x => () => x;\n/**\n * @hidden\n */\nexport const identity = x => x;\n","import { isPresent } from './utils';\nconst getterCache = {};\nconst FIELD_REGEX = /\\[(?:(\\d+)|['\"](.*?)['\"])\\]|((?:(?!\\[.*?\\]|\\.).)+)/g;\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = obj => obj;\n/**\n * @hidden\n */\nexport const getter = (field, safe) => {\n const key = field + safe;\n if (getterCache[key]) {\n return getterCache[key];\n }\n const fields = [];\n field.replace(FIELD_REGEX, (_, index, indexAccessor, field) => {\n fields.push(isPresent(index) ? index : (indexAccessor || field));\n return undefined;\n });\n getterCache[key] = obj => {\n let result = obj;\n for (let idx = 0; idx < fields.length; idx++) {\n result = result[fields[idx]];\n if (!isPresent(result) && safe) {\n return result;\n }\n }\n return result;\n };\n return getterCache[key];\n};\n","import { isCompositeFilterDescriptor } from '../filtering/filter-descriptor.interface';\nimport { isPresent, isNotNullOrEmptyString, isArray } from '../utils';\nimport { getter } from '../accessor';\nimport { compose, ifElse, identity } from '../funcs';\nimport { isStringValue, isDateValue, quote, serializeFilters, toUTC, encodeValue } from '../filter-serialization.common';\nconst toQueryString = values => values.reduce((acc, [key, value]) => [...acc, `${key}=${value}`], []);\nconst toObject = values => values.reduce((acc, [key, value]) => (Object.assign(Object.assign({}, acc), { [key]: value })), {});\nconst pairwise = key => value => [key, value];\nconst empty = () => null;\nconst isNotEmptyArray = value => isPresent(value) && isArray(value) && value.length > 0;\nconst has = accessor => value => isPresent(accessor(value));\nconst isNotEmpty = accessor => value => isNotEmptyArray(accessor(value));\nconst runOrEmpty = (predicate, fn) => ifElse(predicate, fn, empty);\nconst calcPage = ({ skip, take }) => Math.floor((skip || 0) / take) + 1;\nconst formatDescriptors = (accessor, formatter) => state => (accessor(state).map(formatter).join(\"~\"));\nconst removeAfter = (what) => (str) => str.slice(0, str.indexOf(what));\nconst replace = (patterns) => compose(...patterns.map(([left, right]) => (s) => s.replace(new RegExp(left, \"g\"), right)));\nconst sanitizeDateLiterals = replace([[\"\\\"\", \"\"], [\":\", \"-\"]]);\nconst removeAfterDot = removeAfter(\".\");\nconst directionFormatter = ({ field, dir = \"asc\" }) => `${field}-${dir}`;\nconst aggregateFormatter = ({ field, aggregate }) => `${field}-${aggregate}`;\nconst take = getter(\"take\");\nconst aggregates = getter(\"aggregates\");\nconst skip = getter(\"skip\");\nconst group = getter(\"group\");\nconst sort = getter(\"sort\", true);\nconst formatSort = formatDescriptors(sort, directionFormatter);\nconst formatGroup = formatDescriptors(group, directionFormatter);\nconst formatAggregates = formatDescriptors(aggregates, aggregateFormatter);\nconst prefixDateValue = value => `datetime'${value}'`;\nconst formatDateValue = compose(prefixDateValue, removeAfterDot, sanitizeDateLiterals, JSON.stringify, toUTC);\nconst formatDate = ({ field, value, ignoreCase, operator }) => ({\n value: formatDateValue(value),\n field,\n ignoreCase,\n operator\n});\nconst normalizeSort = (state) => Object.assign({}, state, {\n sort: (sort(state) || []).filter(({ dir }) => isNotNullOrEmptyString(dir))\n});\nconst transformSkip = compose(pairwise('page'), calcPage);\nconst transformTake = compose(pairwise('pageSize'), take);\nconst transformGroup = compose(pairwise('group'), formatGroup);\nconst transformSort = compose(pairwise('sort'), formatSort);\nconst transformAggregates = compose(pairwise('aggregate'), formatAggregates);\nconst serializePage = runOrEmpty(has(skip), transformSkip);\nconst serializePageSize = runOrEmpty(has(take), transformTake);\nconst serializeGroup = runOrEmpty(isNotEmpty(group), transformGroup);\nconst serializeAggregates = runOrEmpty(has(aggregates), transformAggregates);\nconst serializeSort = compose(runOrEmpty(isNotEmpty(sort), transformSort), normalizeSort);\nconst hasField = ({ field }) => isNotNullOrEmptyString(field);\nconst filterFormatter = ({ field, operator, value }) => `${field}~${operator}~${value}`;\nconst dateFormatter = ifElse(isDateValue, compose(filterFormatter, formatDate), filterFormatter);\nconst typedFormatter = encode => runOrEmpty(hasField, ifElse(isStringValue, compose(filterFormatter, quote, encode ? encodeValue : identity), dateFormatter));\nconst join = ({ logic }) => `~${logic}~`;\nconst serialize = encode => serializeFilters(filter => ifElse(isCompositeFilterDescriptor, serialize(encode), typedFormatter(encode))(filter), join);\nconst serializeFilter = ({ filter }, encode) => {\n if (filter && filter.filters) {\n const filters = serialize(encode)(filter);\n if (filters.length) {\n return ['filter', filters];\n }\n }\n return null;\n};\nconst rules = (state, encode = true) => key => ({\n \"aggregates\": serializeAggregates(state),\n \"filter\": serializeFilter(state, encode),\n \"group\": serializeGroup(state),\n \"skip\": serializePage(state),\n \"sort\": serializeSort(state),\n \"take\": serializePageSize(state)\n}[key]);\n/**\n * Converts a [DataSourceRequestState]({% slug api_kendo-data-query_datasourcerequeststate %}) into a string\n * that is comparable with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {string} - The serialized state.\n *\n * @example\n * {% platform_content angular %}\n * ```ts\n * import {\n * toDataSourceRequestString,\n * translateDataSourceResultGroups,\n * translateAggregateResults\n * } from '@progress/kendo-data-query';\n *\n * export class Service {\n * private BASE_URL: string = '...';\n *\n * constructor(private http: Http) { }\n *\n * // Omitted for brevity...\n *\n * private fetch(state: DataSourceRequestState): Observable {\n * const queryStr = `${toDataSourceRequestString(state)}`; //serialize the state\n * const hasGroups = state.group && state.group.length;\n *\n * return this.http\n * .get(`${this.BASE_URL}?${queryStr}`) //send the state to the server\n * .map(response => response.json())\n * .map(({Data, Total, AggregateResults}) => // process the response\n * ({\n * //if there are groups convert them to compatible format\n * data: hasGroups ? translateDataSourceResultGroups(Data) : Data,\n * total: Total,\n * // convert the aggregates if such exists\n * aggregateResult: translateAggregateResults(AggregateResults)\n * })\n * );\n * }\n * }\n * ```\n * {% endplatform_content %}\n *\n * {% platform_content react %}\n * ```jsx\n * import React from 'react';\n * import { toDataSourceRequestString, translateDataSourceResultGroups } from '@progress/kendo-data-query';\n *\n * export function withState(WrappedGrid) {\n * return class StatefullGrid extends React.Component {\n * constructor(props) {\n * super(props);\n * this.state = { dataState: { skip: 0, take: 20 } };\n * }\n *\n * render() {\n * return (\n * \n * );\n * }\n *\n * componentDidMount() {\n * this.fetchData(this.state.dataState);\n * }\n *\n * dataStateChange = (changeEvent) => {\n * this.setState({ dataState: changeEvent.data });\n * this.fetchData(changeEvent.data);\n * }\n *\n * fetchData(dataState) {\n * const queryStr = `${toDataSourceRequestString(dataState)}`; // Serialize the state\n * const hasGroups = dataState.group && dataState.group.length;\n *\n * const base_url = 'api/Products';\n * const init = { method: 'GET', accept: 'application/json', headers: {} };\n *\n * fetch(`${base_url}?${queryStr}`, init)\n * .then(response => response.json())\n * .then(({ data, total }) => {\n * this.setState({\n * data: hasGroups ? translateDataSourceResultGroups(data) : data,\n * total,\n * dataState\n * });\n * });\n * }\n * }\n * }\n * ```\n * {% endplatform_content %}\n */\nexport const toDataSourceRequestString = (state) => (toQueryString(Object.keys(state)\n .map(rules(state))\n .filter(isPresent)).join('&'));\n/**\n * Converts a [DataSourceRequestState]({% slug api_kendo-data-query_datasourcerequeststate %}) into an object\n * that is compatible with the `DataSourceRequest` format in UI for ASP.NET MVC.\n *\n * @param {DataRequestState} state - The state that will be serialized.\n * @returns {any} - The serialized state.\n */\nexport const toDataSourceRequest = (state) => (toObject(Object.keys(state)\n .map(rules(state, false))\n .filter(isPresent)));\n","import { isString, isDate } from './utils';\n/**\n * @hidden\n * Creates a single arity function which wraps the value based on the provided predicate.\n * @example\n * ```\n * wrapIf(() => ignoreCase) `tolower(${field})`\n * //ignoreCase=true -> tolower(${field})`\n * //ignoreCase=false -> ${field}`\n * ```\n */\nexport const wrapIf = predicate => (str, ...args) => predicate() ? `${str[0]}${args[0]}${str[1]}` : args[0];\n/**\n * @hidden\n */\nexport const toUTC = (date) => new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\n/**\n * @hidden\n */\nexport const quote = ({ field, value, ignoreCase, operator }) => ({\n value: `'${value.replace(/'/g, \"''\")}'`,\n field,\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const encodeValue = ({ field, value, ignoreCase, operator }) => ({\n value: `${encodeURIComponent(value)}`,\n field,\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const toLower = ({ field, value, ignoreCase, operator }) => ({\n field: wrapIf(() => ignoreCase) `tolower(${field})`,\n value,\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const normalizeField = ({ field, value, ignoreCase, operator }) => ({\n value,\n field: field.replace(/\\./g, \"/\"),\n ignoreCase,\n operator\n});\n/**\n * @hidden\n */\nexport const isStringValue = x => isString(x.value);\n/**\n * @hidden\n */\nexport const isDateValue = x => isDate(x.value);\n/**\n * @hidden\n */\nexport const serializeFilters = (map, join) => (filter) => {\n const brackets = wrapIf(() => filter.filters.length > 1);\n return brackets `(${filter.filters\n .map(map)\n .join(join(filter))})`;\n};\n","import { isPresent } from '../utils';\nimport { compose } from '../funcs';\n// tslint:enable:max-line-length\nconst set = (field, target, value) => {\n target[field] = value;\n return target;\n};\nconst toCamelCase = str => str.replace(/(^[A-Z])/g, (_, g1) => g1.toLowerCase());\nconst prop = (fieldName) => (obj) => {\n const value = obj[fieldName];\n if (isPresent(value)) {\n return value;\n }\n return obj[toCamelCase(fieldName)];\n};\nconst member = prop(\"Member\");\nconst aggregateMethodName = prop(\"AggregateMethodName\");\nconst value = prop(\"Value\");\nconst convert = mapper => values => Object.keys(values).reduce(mapper.bind(null, values), {});\nconst translateAggregate = convert((source, acc, field) => set(field.toLowerCase(), acc, source[field]));\nconst translateAggregates = convert((source, acc, field) => set(field, acc, translateAggregate(source[field])));\nconst valueOrDefault = (value, defaultValue) => isPresent(value) ? value : defaultValue;\nconst normalizeGroup = group => ({\n aggregates: group.Aggregates || group.aggregates,\n field: group.Member || group.member || group.field,\n hasSubgroups: group.HasSubgroups || group.hasSubgroups || false,\n items: group.Items || group.items,\n value: valueOrDefault(group.Key, valueOrDefault(group.key, group.value))\n});\nconst translateGroup = compose(({ field, hasSubgroups, value, aggregates, items }) => ({\n aggregates: translateAggregates(aggregates),\n field,\n items: hasSubgroups ? items.map(translateGroup) : items,\n value\n}), normalizeGroup);\n// tslint:disable:max-line-length\n/**\n * Converts the grouped result, which is returned into the `Data` field of the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `Data` field of the response.\n * @returns {GroupResult[]} - The converted result.\n */\nexport const translateDataSourceResultGroups = (data) => data.map(translateGroup);\n/**\n * Converts the `AggregateResults` field content, which is returned by the UI for ASP.NET MVC `ToDataSourceResult` method, to a comparable format.\n * @param data - The value of the `AggregateResults` field of the response.\n * @returns {AggregateResult} - The converted result.\n */\n// tslint:enable:max-line-length\nexport const translateAggregateResults = (data) => ((data || []).reduce((acc, x) => set(member(x), acc, set(aggregateMethodName(x).toLowerCase(), acc[member(x)] || {}, value(x))), {}));\n","import { isPresent, isBlank } from '../utils';\nimport { getter } from '../accessor';\nconst compare = (a, b) => {\n if (isBlank(a)) {\n return a === b ? 0 : -1;\n }\n if (isBlank(b)) {\n return 1;\n }\n if (a.localeCompare) {\n return a.localeCompare(b);\n }\n return a > b ? 1 : (a < b ? -1 : 0);\n};\nconst compareDesc = (a, b) => compare(b, a);\nconst descriptorAsFunc = (descriptor) => {\n if (typeof descriptor.compare === 'function') {\n return descriptor.compare;\n }\n const prop = getter(descriptor.field, true);\n return (a, b) => (descriptor.dir === 'asc' ? compare : compareDesc)(prop(a), prop(b));\n};\nconst initial = (_a, _b) => 0;\n// tslint:disable:max-line-length\n/**\n * Converts the `SortDescriptors` into a [Comparer]({% slug api_kendo-data-query_comparer %}) function that can be used through `Array.sort`. If multiple descriptors are provided, sorting is applied in a right-to-left order.\n * @param {SortDescriptor[]} descriptors - The descriptors which will be converted.\n * @returns {Comparer} - The produced function.\n *\n * @example\n * ```ts\n * import { composeSortDescriptors } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const comparer = composeSortDescriptors([{ field: \"name\", dir: \"asc\" }]);\n * const result = data.sort(comparer);\n * // output: [{ name: \"Beef\" }, { name: \"Pepper\" }, { name: \"Pork\" }];\n * ```\n */\n// tslint:enable:max-line-length\nexport const composeSortDescriptors = (descriptors) => (descriptors\n .filter(x => isPresent(x.dir) || isPresent(x.compare))\n .map((descriptor) => descriptorAsFunc(descriptor))\n .reduce((acc, curr) => (a, b) => acc(a, b) || curr(a, b), initial));\n","import { isPresent, isNumeric, isDate } from './utils';\nimport { getter } from './accessor';\nconst valueToString = (value) => {\n value = isPresent(value) && value.getTime ? value.getTime() : value;\n return value + \"\";\n};\n/**\n * @hidden\n */\nexport const groupCombinator = (field) => {\n const prop = getter(field, true);\n let position = 0;\n return (agg, value) => {\n agg[field] = agg[field] || {};\n const groupValue = prop(value);\n const key = valueToString(groupValue);\n const values = agg[field][key] || { __position: position++, aggregates: {}, items: [], value: groupValue };\n values.items.push(value);\n agg[field][key] = values;\n return agg;\n };\n};\n/**\n * @hidden\n */\nexport const expandAggregates = (result = {}) => {\n Object.keys(result).forEach(field => {\n const aggregates = result[field];\n Object.keys(aggregates).forEach(aggregate => {\n aggregates[aggregate] = aggregates[aggregate].result();\n });\n });\n return result;\n};\nconst aggregatesFuncs = (name) => ({\n average: () => {\n let value = 0;\n let count = 0;\n return {\n calc: (curr) => {\n if (isNumeric(curr)) {\n value += curr;\n count++;\n }\n else {\n value = curr;\n }\n },\n result: () => isNumeric(value) ? value / count : value\n };\n },\n count: () => {\n let state = 0;\n return {\n calc: () => state++,\n result: () => state\n };\n },\n max: () => {\n let state = Number.NEGATIVE_INFINITY;\n return {\n calc: (value) => {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state < value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: () => state\n };\n },\n min: () => {\n let state = Number.POSITIVE_INFINITY;\n return {\n calc: (value) => {\n state = isNumeric(state) || isDate(state) ? state : value;\n if (state > value && (isNumeric(value) || isDate(value))) {\n state = value;\n }\n },\n result: () => state\n };\n },\n sum: () => {\n let state = 0;\n return {\n calc: (value) => {\n value = isPresent(value) ? value : 0;\n state += value;\n },\n result: () => state\n };\n }\n}[name]());\n/**\n * @hidden\n */\nexport const aggregatesCombinator = (descriptors) => {\n const functions = descriptors.map(descriptor => {\n const fieldAccessor = getter(descriptor.field, true);\n const aggregateName = (descriptor.aggregate || \"\").toLowerCase();\n const aggregateAccessor = getter(aggregateName, true);\n return (state, value) => {\n const fieldAggregates = state[descriptor.field] || {};\n const aggregateFunction = aggregateAccessor(fieldAggregates)\n || aggregatesFuncs(aggregateName);\n aggregateFunction.calc(fieldAccessor(value));\n fieldAggregates[descriptor.aggregate] = aggregateFunction;\n state[descriptor.field] = fieldAggregates;\n return state;\n };\n });\n return (state, value) => functions.reduce((agg, calc) => calc(agg, value), state);\n};\n/**\n * @hidden\n * Adds the value to the `arr` and produces a new array.\n *\n * > The original array will be modified.\n */\nexport const concat = (arr, value) => {\n arr.push(value);\n return arr;\n};\n/**\n * @hidden\n * Returns a reducer that will apply the specified transformation to the value.\n */\nexport const map = (transform) => ((reduce) => ((acc, curr, index) => reduce(acc, transform(curr, index))));\n/**\n * @hidden\n * Returns a reducer that will filter out items which do not match the `Predicate`.\n */\nexport const filter = (predicate) => ((reduce) => ((acc, curr) => predicate(curr) ? reduce(acc, curr) : acc));\n/**\n * @hidden\n */\nexport const isTransformerResult = (source) => {\n return isPresent(source.__value);\n};\nconst reduced = (x) => {\n if (isTransformerResult(x)) {\n return x;\n }\n return {\n __value: x,\n reduced: true\n };\n};\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport const take = (count) => ((reduce) => ((acc, curr) => count-- > 0 ? reduce(acc, curr) : reduced(acc)));\n/**\n * @hidden\n * Returns a reducer that will take the specified number of items.\n */\nexport const takeWhile = (predicate) => ((reduce) => ((acc, curr) => predicate(curr) ? reduce(acc, curr) : reduced(acc)));\n/**\n * @hidden\n * Returns a reducer that will skip the specified number of items.\n */\nexport const skip = (count) => ((reduce) => ((acc, curr) => count-- <= 0 ? reduce(acc, curr) : acc));\n/**\n * @hidden\n * Transforms the data by applying the supplied transformer.\n */\nexport const exec = (transform, initialValue, data) => {\n let result = initialValue;\n for (let idx = 0, length = data.length; idx < length; idx++) {\n result = transform(result, data[idx], idx);\n if (isTransformerResult(result)) {\n result = result.__value;\n break;\n }\n }\n return result;\n};\n","import { exec, map, aggregatesCombinator, expandAggregates } from '../transducers';\nconst identity = map(x => x);\n// tslint:disable:max-line-length\n/**\n * Applies the specified [AggregateDescriptors]({% slug api_kendo-data-query_aggregatedescriptor %}) to the data. Returns an [AggregateResult]({% slug api_kendo-data-query_aggregateresult %}) instance.\n *\n * @example\n * ```ts\n * const data = [\n * { unitPrice: 23, unitsInStock: 21 },\n * { unitPrice: 10, unitsInStock: 12 },\n * { unitPrice: 20, unitsInStock: 33 }\n * ];\n *\n * const result = aggregateBy(data, [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]);\n *\n * //output:\n * // {\n * // \"unitPrice\": { \"sum\": 53 },\n * // \"unitsInStock\": { \"sum\": 66 }\n * // }\n * ```\n * @param {T[]} data - The data on which the calculation will be executed.\n * @param {AggregateDescriptor[]} descriptors - The aggregate operations that will be executed.\n * @param {any} transformers - For internal use.\n * @returns {AggregateResult} - The aggregated result.\n * For more information, refer to the [aggregateresult](slug:api_kendo-data-query_aggregateresult) configuration.\n */\n// tslint:enable:max-line-length\nexport const aggregateBy = (data, descriptors = [], transformers = identity) => {\n const initialValue = {};\n if (!descriptors.length) {\n return initialValue;\n }\n const result = exec(transformers(aggregatesCombinator(descriptors)), initialValue, data);\n return expandAggregates(result);\n};\n","import { isPresent, isString, isArray } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nconst operatorMap = (key) => ({\n \"!=\": \"neq\",\n \"<\": \"lt\",\n \"<=\": \"lte\",\n \"==\": \"eq\",\n \">\": \"gt\",\n \">=\": \"gte\",\n equal: \"eq\",\n equals: \"eq\",\n equalto: \"eq\",\n ge: \"gte\",\n greater: \"gt\",\n greaterthan: \"gt\",\n greaterthanequal: \"gte\",\n isempty: \"isempty\",\n isequalto: \"eq\",\n isgreaterthan: \"gt\",\n isgreaterthanorequalto: \"gte\",\n islessthan: \"lt\",\n islessthanorequalto: \"lte\",\n isnotempty: \"isnotempty\",\n isnotequalto: \"neq\",\n isnull: \"isnull\",\n le: \"lte\",\n less: \"lt\",\n lessthan: \"lt\",\n lessthanequal: \"lte\",\n ne: \"neq\",\n notequal: \"neq\",\n notequals: \"neq\",\n notequalto: \"neq\",\n notsubstringof: \"doesnotcontain\"\n}[key.toLowerCase()] || key);\nconst normalizeOperator = (descriptor) => {\n if (descriptor.filters) {\n descriptor.filters = descriptor.filters.map(filter => {\n const result = Object.assign({}, filter);\n if (!isCompositeFilterDescriptor(filter) && isString(filter.operator)) {\n result.operator = operatorMap(filter.operator);\n }\n if (isCompositeFilterDescriptor(filter)) {\n normalizeOperator(result);\n }\n return result;\n });\n }\n};\nconst normalizeDescriptor = (descriptor) => {\n if (!isCompositeFilterDescriptor(descriptor)) {\n return {\n filters: isArray(descriptor) ? descriptor : [descriptor],\n logic: \"and\"\n };\n }\n return Object.assign({}, descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Converts a [FilterDescriptor]({% slug api_kendo-data-query_filterdescriptor %}) into a [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}). If a `CompositeFilterDescriptor` is passed, no modifications will be made.\n *\n * @param {CompositeFilterDescriptor | FilterDescriptor} descriptor - The descriptor that will be normalized.\n * @returns {CompositeFilterDescriptor} - The normalized descriptor.\n */\n// tslint:enable:max-line-length\nexport const normalizeFilters = (descriptor) => {\n if (isPresent(descriptor)) {\n descriptor = normalizeDescriptor(descriptor);\n normalizeOperator(descriptor);\n }\n return descriptor;\n};\n","import { isCompositeFilterDescriptor } from \"./filter-descriptor.interface\";\nimport { getter } from \"../accessor\";\nimport { isFunction, isPresent, isDate, isString, isBlank, isNumeric } from \"../utils\";\nconst logic = {\n \"or\": {\n concat: (acc, fn) => a => acc(a) || fn(a),\n identity: () => false\n },\n \"and\": {\n concat: (acc, fn) => a => acc(a) && fn(a),\n identity: () => true\n }\n};\nconst operatorsMap = {\n contains: (a, b) => (a || \"\").indexOf(b) >= 0,\n doesnotcontain: (a, b) => (a || \"\").indexOf(b) === -1,\n doesnotendwith: (a, b) => (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) < 0,\n doesnotstartwith: (a, b) => (a || \"\").lastIndexOf(b, 0) === -1,\n endswith: (a, b) => (a || \"\").indexOf(b, (a || \"\").length - (b || \"\").length) >= 0,\n eq: (a, b) => a === b,\n gt: (a, b) => a > b,\n gte: (a, b) => a >= b,\n isempty: (a) => a === '',\n isnotempty: (a) => a !== '',\n isnotnull: (a) => isPresent(a),\n isnull: (a) => isBlank(a),\n lt: (a, b) => a < b,\n lte: (a, b) => a <= b,\n neq: (a, b) => a != b,\n startswith: (a, b) => (a || \"\").lastIndexOf(b, 0) === 0\n};\nconst dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nconst convertValue = (value, ignoreCase) => {\n if (value != null && isString(value)) {\n const date = dateRegExp.exec(value);\n if (date) {\n return new Date(+date[1]).getTime();\n }\n else if (ignoreCase) {\n return value.toLowerCase();\n }\n }\n else if (value != null && isDate(value)) {\n return value.getTime();\n }\n return value;\n};\nconst typedGetter = (prop, value, ignoreCase) => {\n if (!isPresent(value)) {\n return prop;\n }\n let acc = prop;\n if (isString(value)) {\n const date = dateRegExp.exec(value);\n if (date) {\n value = new Date(+date[1]);\n }\n else {\n acc = a => {\n const x = prop(a);\n if (typeof x === 'string' && ignoreCase) {\n return x.toLowerCase();\n }\n else {\n return isNumeric(x) ? x + \"\" : x;\n }\n };\n }\n }\n if (isDate(value)) {\n return a => {\n const x = acc(a);\n return isDate(x) ? x.getTime() : x;\n };\n }\n return acc;\n};\nconst transformFilter = ({ field, ignoreCase, value, operator }) => {\n field = !isPresent(field) ? a => a : field;\n ignoreCase = isPresent(ignoreCase) ? ignoreCase : true;\n const itemProp = typedGetter(isFunction(field) ? field : getter(field, true), value, ignoreCase);\n value = convertValue(value, ignoreCase);\n const op = isFunction(operator) ? operator : operatorsMap[operator];\n return a => op(itemProp(a), value, ignoreCase);\n};\n/**\n * @hidden\n */\nexport const transformCompositeFilter = (filter) => {\n const combiner = logic[filter.logic];\n return filter.filters\n .filter(isPresent)\n .map(x => isCompositeFilterDescriptor(x) ? transformCompositeFilter(x) : transformFilter(x))\n .reduce(combiner.concat, combiner.identity);\n};\n","import { isPresent } from '../utils';\nimport { isCompositeFilterDescriptor } from './filter-descriptor.interface';\nimport { normalizeFilters } from './filter.operators';\nimport { transformCompositeFilter } from \"./filter-no-eval\";\n// tslint:disable:max-line-length\n/**\n * Creates a [Predicate]({% slug api_kendo-data-query_predicate %}) function for the specified [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {CompositeFilterDescriptor} descriptor - The descriptor for which the predicate is created.\n * @returns {Predicate} - The created function instance.\n *\n * @example\n * ```ts\n * import { compileFilter } from '@progress/kendo-data-query';\n *\n * const data = [{ name: \"Pork\" }, { name: \"Pepper\" }, { name: \"Beef\" } ];\n * const predicate = compileFilter({ logic: \"and\", filters: [{ field: \"name\", operator: \"startswith\", value: \"P\" }] });\n * const result = data.filter(predicate);\n *\n * ```\n */\n// tslint:enable:max-line-length\nexport const compileFilter = (descriptor) => {\n if (!descriptor || descriptor.filters.length === 0) {\n return () => true;\n }\n return transformCompositeFilter(descriptor);\n};\n// tslint:disable:max-line-length\n/**\n * Filters the provided array according to the specified [CompositeFilterDescriptor]({% slug api_kendo-data-query_compositefilterdescriptor %}).\n *\n * @param {T[]} data - The data that will be filtered.\n * @param {(CompositeFilterDescriptor | FilterDescriptor)} descriptor - The filter criteria that will be applied.\n * @returns {T[]} - The filtered data.\n *\n * @example\n * ```ts\n * import { filterBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = filterBy(data, {\n * logic: 'and',\n * filters: [\n * { field: \"name\", operator: \"startswith\", value: \"p\", ignoreCase: true },\n * { field: \"subcategory\", operator: \"eq\", value: \"Meat\" },\n * ]\n * });\n *\n * // output:\n * // [{ \"name\": \"Pork\", \"category\": \"Food\", \"subcategory\": \"Meat\" }]\n * ```\n */\n// tslint:enable:max-line-length\nexport const filterBy = (data, descriptor) => {\n if (!isPresent(descriptor) || (isCompositeFilterDescriptor(descriptor) && descriptor.filters.length === 0)) {\n return data;\n }\n return data.filter(compileFilter(normalizeFilters(descriptor)));\n};\n","import { exec, map, groupCombinator } from '../transducers';\nimport { isArray, isPresent } from '../utils';\nimport { aggregateBy } from './aggregate.operators';\nimport { filterBy } from '../filtering/filter-expression.factory';\n/**\n * @hidden\n */\nexport const normalizeGroups = (descriptors) => {\n descriptors = isArray(descriptors) ? descriptors : [descriptors];\n return descriptors.map(x => Object.assign({ dir: \"asc\" }, x));\n};\nconst identity = map(x => x);\n/**\n * Groups the provided data according to the specified descriptors.\n *\n * @param {Array} data - The data that will be grouped.\n * @param {GroupDescriptor[]} descriptors - The descriptors.\n * @param {any} transformers - For internal use.\n * @param {Array} originalData - For internal use.\n * @returns {(Array> | T[])} - The grouped data.\n *\n * @example\n * ```ts\n *\n * import { groupBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = groupBy(data, [{ field: \"subcategory\" }]);\n * ```\n */\nexport const groupBy = (data, descriptors = [], transformers = identity, originalData = data) => {\n descriptors = normalizeGroups(descriptors);\n if (!descriptors.length) {\n return data;\n }\n const descriptor = descriptors[0];\n const initialValue = {};\n const view = exec(transformers(groupCombinator(descriptor.field)), initialValue, data);\n const result = [];\n Object.keys(view).forEach(field => {\n Object.keys(view[field]).forEach(value => {\n const group = view[field][value];\n let aggregateResult = {};\n let filteredData = originalData;\n if (isPresent(descriptor.aggregates)) {\n filteredData = filterBy(originalData, {\n field: descriptor.field,\n ignoreCase: false,\n operator: 'eq',\n value: group.value\n });\n aggregateResult = aggregateBy(filteredData, descriptor.aggregates);\n }\n result[group.__position] = {\n aggregates: aggregateResult,\n field: field,\n items: descriptors.length > 1 ?\n groupBy(group.items, descriptors.slice(1), identity, filteredData)\n : group.items,\n value: group.value\n };\n });\n });\n return result;\n};\n","import { isPresent, isString } from './utils';\nimport { composeSortDescriptors } from './sorting/sort-array.operator';\nimport { groupBy, normalizeGroups } from './grouping/group.operators';\nimport { normalizeFilters } from './filtering/filter.operators';\nimport { compileFilter } from './filtering/filter-expression.factory';\nimport { exec, skip, take, filter, concat } from './transducers';\nimport { getter } from './accessor';\nimport { compose } from './funcs';\n/**\n * Orders the specified array according to the provided sort descriptors.\n *\n * @param {T[]} data - The data to be sorted.\n * @param {SortDescriptor[]} descriptors - The descriptors by which the data will be sorted.\n * @returns {T[]} - The sorted data.\n *\n * @example\n * ```ts\n * import { orderBy } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = orderBy(data, [{ field: \"name\", dir: \"asc\" }]);\n * ```\n */\nexport const orderBy = (data, descriptors) => {\n if (descriptors.some(x => isPresent(x.dir) || isPresent(x.compare))) {\n data = data.slice(0);\n const comparer = composeSortDescriptors(descriptors);\n data.sort(comparer);\n }\n return data;\n};\nconst defaultComparer = (a, b) => a === b;\nconst normalizeComparer = (comparer) => {\n if (isString(comparer)) {\n const accessor = getter(comparer);\n comparer = (a, b) => accessor(a) === accessor(b);\n }\n return comparer;\n};\nconst _distinct = (data, comparer) => data.filter((x, idx, xs) => xs.findIndex(comparer.bind(null, x)) === idx);\n/**\n * Reduces the provided array so it contains only unique values.\n *\n * @param {T[]} data - The array that will be reduced.\n * @param {(Comparer | string)} comparer - An optional custom comparer function or the field name that will be used for comparison.\n * @returns {T[]} - The reduced data.\n *\n * @example\n * ```ts\n * import { distinct } from '@progress/kendo-data-query';\n *\n * const data = [\n * { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" },\n * { name: \"Beef\", category: \"Food\", subcategory: \"Meat\" }\n * ];\n *\n * const result = distinct(data, \"subcategory\");\n *\n * // output:\n * // result => [\n * // { name: \"Pork\", category: \"Food\", subcategory: \"Meat\" },\n * // { name: \"Pepper\", category: \"Food\", subcategory: \"Vegetables\" }\n * // ];\n * ```\n */\nexport const distinct = (data, comparer = defaultComparer) => _distinct(data, normalizeComparer(comparer));\n/**\n * @hidden\n */\nexport const count = (data, predicate) => {\n let counter = 0;\n for (let idx = 0, length = data.length; idx < length; idx++) {\n if (predicate(data[idx])) {\n counter++;\n }\n }\n return counter;\n};\n/**\n * @hidden\n */\nexport const limit = (data, predicate) => {\n if (predicate) {\n return data.filter(predicate);\n }\n return data;\n};\n/**\n * Applies the specified operation descriptors to the data.\n *\n * @param {T[]} data - The data to be processed.\n * @param {State} state - The operation descriptors that will be applied to the data.\n * @returns {DataResult} - The processed data.\n *\n * @example\n * ```ts\n *\n * const result = process(data, {\n * skip: 10,\n * take: 20,\n * group: [{\n * field: 'category.categoryName',\n * aggregates: [\n * { aggregate: \"sum\", field: \"unitPrice\" },\n * { aggregate: \"sum\", field: \"unitsInStock\" }\n * ]\n * }],\n * sort: [{ field: 'productName', dir: 'desc' }],\n * filter: {\n * logic: \"or\",\n * filters: [\n * { field: \"discontinued\", operator: \"eq\", value: true },\n * { field: \"unitPrice\", operator: \"lt\", value: 22 }\n * ]\n * }\n * });\n *\n * ```\n */\nexport const process = (data, state) => {\n const { skip: skipCount, take: takeCount, filter: filterDescriptor, sort, group } = state;\n const sortDescriptors = [...normalizeGroups(group || []), ...sort || []];\n if (sortDescriptors.length) {\n data = orderBy(data, sortDescriptors);\n }\n const hasFilters = isPresent(filterDescriptor) && filter.length;\n const hasGroups = isPresent(group) && group.length;\n if (!hasFilters && !hasGroups) {\n return {\n data: takeCount ? data.slice(skipCount, skipCount + takeCount) : data,\n total: data.length\n };\n }\n let total;\n const transformers = [];\n let predicate;\n if (hasFilters) {\n predicate = compileFilter(normalizeFilters(filterDescriptor));\n total = count(data, predicate);\n transformers.push(filter(predicate));\n }\n else {\n total = data.length;\n }\n if (isPresent(skipCount) && isPresent(takeCount)) {\n transformers.push(skip(skipCount));\n transformers.push(take(takeCount));\n }\n if (transformers.length) {\n const transform = compose(...transformers);\n const result = hasGroups ?\n groupBy(data, group, transform, limit(data, predicate)) :\n exec(transform(concat), [], data);\n return { data: result, total: total };\n }\n return {\n data: hasGroups ? groupBy(data, group) : data,\n total: total\n };\n};\n","const proxy = (a, b) => (e) => b(a(e));\n\nconst bind = (el, event, callback) =>\n el.addEventListener && el.addEventListener(event, callback);\n\nconst unbind = (el, event, callback) =>\n el && el.removeEventListener && el.removeEventListener(event, callback);\n\nconst noop = () => { /* empty */ };\n\nconst preventDefault = e => e.preventDefault();\n\nconst touchRegExp = /touch/;\n\n// 300ms is the usual mouse interval;\n// // However, an underpowered mobile device under a heavy load may queue mouse events for a longer period.\nconst IGNORE_MOUSE_TIMEOUT = 2000;\n\nfunction normalizeEvent(e) {\n if (e.type.match(touchRegExp)) {\n return {\n pageX: e.changedTouches[0].pageX,\n pageY: e.changedTouches[0].pageY,\n clientX: e.changedTouches[0].clientX,\n clientY: e.changedTouches[0].clientY,\n type: e.type,\n originalEvent: e,\n isTouch: true\n };\n }\n\n return {\n pageX: e.pageX,\n pageY: e.pageY,\n clientX: e.clientX,\n clientY: e.clientY,\n offsetX: e.offsetX,\n offsetY: e.offsetY,\n type: e.type,\n ctrlKey: e.ctrlKey,\n shiftKey: e.shiftKey,\n altKey: e.altKey,\n originalEvent: e\n };\n}\n\nexport class Draggable {\n static supportPointerEvent() {\n return (typeof window !== 'undefined') && window.PointerEvent;\n }\n\n get document() {\n return this._element\n ? this._element.ownerDocument\n : document;\n }\n\n constructor({ press = noop, drag = noop, release = noop, mouseOnly = false }) {\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._ignoreMouse = false;\n this._mouseOnly = mouseOnly;\n\n this._touchstart = (e) => {\n if (e.touches.length === 1) {\n this._pressHandler(e);\n }\n };\n\n this._touchmove = (e) => {\n if (e.touches.length === 1) {\n this._dragHandler(e);\n }\n };\n\n this._touchend = (e) => {\n // the last finger has been lifted, and the user is not doing gesture.\n // there might be a better way to handle this.\n if (e.touches.length === 0 && e.changedTouches.length === 1) {\n this._releaseHandler(e);\n this._ignoreMouse = true;\n setTimeout(this._restoreMouse, IGNORE_MOUSE_TIMEOUT);\n }\n };\n\n this._restoreMouse = () => {\n this._ignoreMouse = false;\n };\n\n this._mousedown = (e) => {\n const { which } = e;\n\n if ((which && which > 1) || this._ignoreMouse) {\n return;\n }\n\n bind(this.document, \"mousemove\", this._mousemove);\n bind(this.document, \"mouseup\", this._mouseup);\n this._pressHandler(e);\n };\n\n this._mousemove = (e) => {\n this._dragHandler(e);\n };\n\n this._mouseup = (e) => {\n unbind(this.document, \"mousemove\", this._mousemove);\n unbind(this.document, \"mouseup\", this._mouseup);\n this._releaseHandler(e);\n };\n\n this._pointerdown = (e) => {\n if (e.isPrimary && e.button === 0) {\n bind(this.document, \"pointermove\", this._pointermove);\n bind(this.document, \"pointerup\", this._pointerup);\n bind(this.document, \"pointercancel\", this._pointerup);\n bind(this.document, \"contextmenu\", preventDefault);\n\n this._pressHandler(e);\n }\n };\n\n this._pointermove = (e) => {\n if (e.isPrimary) {\n this._dragHandler(e);\n }\n };\n\n this._pointerup = (e) => {\n if (e.isPrimary) {\n unbind(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"pointercancel\", this._pointerup);\n unbind(this.document, \"contextmenu\", preventDefault);\n\n this._releaseHandler(e);\n }\n };\n }\n\n cancelDrag() {\n unbind(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"pointercancel\", this._pointerup);\n }\n\n bindTo(element) {\n if (element === this._element) {\n return;\n }\n\n if (this._element) {\n this._unbindFromCurrent();\n }\n\n this._element = element;\n this._bindToCurrent();\n }\n\n _bindToCurrent() {\n const element = this._element;\n\n if (this._usePointers()) {\n bind(element, \"pointerdown\", this._pointerdown);\n return;\n }\n\n bind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n bind(element, \"touchstart\", this._touchstart);\n bind(element, \"touchmove\", this._touchmove);\n bind(element, \"touchend\", this._touchend);\n }\n }\n\n _unbindFromCurrent() {\n const element = this._element;\n\n if (this._usePointers()) {\n unbind(element, \"pointerdown\", this._pointerdown);\n unbind(this.document, \"pointermove\", this._pointermove);\n unbind(this.document, \"pointerup\", this._pointerup);\n unbind(this.document, \"contextmenu\", preventDefault);\n unbind(this.document, \"pointercancel\", this._pointerup);\n return;\n }\n\n unbind(element, \"mousedown\", this._mousedown);\n\n if (!this._mouseOnly) {\n unbind(element, \"touchstart\", this._touchstart);\n unbind(element, \"touchmove\", this._touchmove);\n unbind(element, \"touchend\", this._touchend);\n }\n }\n\n _usePointers() {\n return !this._mouseOnly && Draggable.supportPointerEvent();\n }\n\n update({ press = noop, drag = noop, release = noop, mouseOnly = false }) {\n this._pressHandler = proxy(normalizeEvent, press);\n this._dragHandler = proxy(normalizeEvent, drag);\n this._releaseHandler = proxy(normalizeEvent, release);\n this._mouseOnly = mouseOnly;\n }\n\n destroy() {\n this._unbindFromCurrent();\n this._element = null;\n }\n}\n\n// Re-export as \"default\" field to address a bug\n// where the ES Module is imported by CommonJS code.\n//\n// See https://github.com/telerik/kendo-angular/issues/1314\nDraggable.default = Draggable;\n\n// Rollup won't output exports['default'] otherwise\nexport default Draggable;\n\n","import Surface from './surface';\nimport { transform } from '../geometry';\nimport Group from '../shapes/group';\n\nexport default function exportImage(group, options) {\n const defaults = {\n width: \"800px\", height: \"600px\",\n cors: \"Anonymous\"\n };\n\n let exportRoot = group;\n const bbox = group.clippedBBox();\n\n\n if (bbox) {\n const origin = bbox.getOrigin();\n exportRoot = new Group();\n exportRoot.transform(transform().translate(-origin.x, -origin.y));\n exportRoot.children.push(group);\n\n const size = bbox.getSize();\n defaults.width = size.width + \"px\";\n defaults.height = size.height + \"px\";\n }\n\n const surfaceOptions = Object.assign(defaults, options);\n\n const container = document.createElement(\"div\");\n const style = container.style;\n\n style.display = \"none\";\n style.width = surfaceOptions.width;\n style.height = surfaceOptions.height;\n document.body.appendChild(container);\n\n const surface = new Surface(container, surfaceOptions);\n surface.suspendTracking();\n surface.draw(exportRoot);\n\n const promise = surface.image();\n const destroy = () => {\n surface.destroy();\n document.body.removeChild(container);\n };\n promise.then(destroy, destroy);\n\n return promise;\n}","const NODE_MAP = {};\n\nexport default NODE_MAP;","import BaseNode from '../core/base-node';\nimport NODE_MAP from './node-map';\nimport { defined } from '../util';\n\nclass Node extends BaseNode {\n constructor(srcElement) {\n super(srcElement);\n if (srcElement) {\n this.initClip();\n }\n }\n\n initClip() {\n const clip = this.srcElement.clip();\n if (clip) {\n this.clip = clip;\n clip.addObserver(this);\n }\n }\n\n clear() {\n if (this.srcElement) {\n this.srcElement.removeObserver(this);\n }\n\n this.clearClip();\n\n super.clear();\n }\n\n clearClip() {\n if (this.clip) {\n this.clip.removeObserver(this);\n delete this.clip;\n }\n }\n\n setClip(ctx) {\n if (this.clip) {\n ctx.beginPath();\n\n const clipNode = new NODE_MAP[this.clip.nodeType](this.clip);\n clipNode.renderPoints(ctx, this.clip);\n\n ctx.clip(\"evenodd\");\n }\n }\n\n optionsChange(e) {\n if (e.field === \"clip\") {\n this.clearClip();\n this.initClip();\n }\n\n super.optionsChange(e);\n }\n\n setTransform(ctx) {\n if (this.srcElement) {\n const transform = this.srcElement.transform();\n if (transform) {\n ctx.transform.apply(ctx, transform.matrix().toArray(6));\n }\n }\n }\n\n loadElements(elements, pos, cors) {\n for (let i = 0; i < elements.length; i++) {\n let srcElement = elements[i];\n let children = srcElement.children;\n\n let childNode = new NODE_MAP[srcElement.nodeType](srcElement, cors);\n\n if (children && children.length > 0) {\n childNode.load(children, pos, cors);\n }\n\n if (defined(pos)) {\n this.insertAt(childNode, pos);\n } else {\n this.append(childNode);\n }\n }\n }\n\n load(elements, pos, cors) {\n this.loadElements(elements, pos, cors);\n\n this.invalidate();\n }\n\n setOpacity(ctx) {\n if (this.srcElement) {\n const opacity = this.srcElement.opacity();\n if (defined(opacity)) {\n this.globalAlpha(ctx, opacity);\n }\n }\n }\n\n globalAlpha(ctx, value) {\n let opactity = value;\n if (opactity && ctx.globalAlpha) {\n opactity *= ctx.globalAlpha;\n }\n ctx.globalAlpha = opactity;\n }\n\n visible() {\n const src = this.srcElement;\n return !src || (src && src.options.visible !== false);\n }\n}\n\nexport default Node;","import Node from './node';\nimport traversable from '../mixins/traversable';\n\n\nclass GroupNode extends traversable(Node, \"childNodes\") {\n renderTo(ctx) {\n if (!this.visible()) {\n return;\n }\n\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n const childNodes = this.childNodes;\n for (let i = 0; i < childNodes.length; i++) {\n let child = childNodes[i];\n if (child.visible()) {\n child.renderTo(ctx);\n }\n }\n\n ctx.restore();\n }\n}\n\nexport default GroupNode;\n","import GroupNode from './group-node';\nimport traversable from '../mixins/traversable';\nimport { animationFrame, throttle } from '../common';\n\n\nconst FRAME_DELAY = 1000 / 60;\n\nclass RootNode extends traversable(GroupNode, \"childNodes\") {\n constructor(canvas, size) {\n super();\n\n this.canvas = canvas;\n this.size = size;\n this.ctx = canvas.getContext(\"2d\");\n\n const invalidateHandler = this._invalidate.bind(this);\n this.invalidate = throttle(() => {\n animationFrame(invalidateHandler);\n }, FRAME_DELAY);\n }\n\n destroy() {\n super.destroy();\n this.canvas = null;\n this.ctx = null;\n }\n\n load(elements, pos, cors) {\n this.loadElements(elements, pos, cors);\n this._invalidate();\n }\n\n _rescale(scale) {\n const { canvas, size } = this;\n canvas.width = size.width * scale;\n canvas.height = size.height * scale;\n this.ctx.scale(scale, scale);\n }\n\n _devicePixelRatio() {\n if (typeof window.devicePixelRatio === 'number') {\n return window.devicePixelRatio;\n }\n\n return 1;\n }\n\n _invalidate(options) {\n if (!this.ctx) {\n return;\n }\n\n const fixedScale = options && options.fixedScale;\n const scale = fixedScale ? 1 : this._devicePixelRatio();\n this._rescale(scale);\n\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n this.renderTo(this.ctx);\n }\n}\n\nexport default RootNode;\n","import { Class } from '../common';\n\nclass QuadRoot extends Class {\n constructor() {\n super();\n\n this.shapes = [];\n }\n\n _add(shape, bbox) {\n this.shapes.push({\n bbox: bbox,\n shape: shape\n });\n shape._quadNode = this;\n }\n\n pointShapes(point) {\n const shapes = this.shapes;\n const length = shapes.length;\n const result = [];\n for (let idx = 0; idx < length; idx++) {\n if (shapes[idx].bbox.containsPoint(point)) {\n result.push(shapes[idx].shape);\n }\n }\n return result;\n }\n\n insert(shape, bbox) {\n this._add(shape, bbox);\n }\n\n remove(shape) {\n const shapes = this.shapes;\n const length = shapes.length;\n\n for (let idx = 0; idx < length; idx++) {\n if (shapes[idx].shape === shape) {\n shapes.splice(idx, 1);\n break;\n }\n }\n }\n}\n\nexport default QuadRoot;","import QuadRoot from './quad-root';\nimport { Rect } from '../geometry';\nimport { append } from '../util';\n\nclass QuadNode extends QuadRoot {\n constructor(rect) {\n super();\n this.children = [];\n this.rect = rect;\n }\n\n inBounds(rect) {\n const nodeRect = this.rect;\n const nodeBottomRight = nodeRect.bottomRight();\n const bottomRight = rect.bottomRight();\n const inBounds = nodeRect.origin.x <= rect.origin.x && nodeRect.origin.y <= rect.origin.y && bottomRight.x <= nodeBottomRight.x &&\n bottomRight.y <= nodeBottomRight.y;\n return inBounds;\n }\n\n pointShapes(point) {\n const children = this.children;\n const length = children.length;\n const result = super.pointShapes(point);\n for (let idx = 0; idx < length; idx++) {\n append(result, children[idx].pointShapes(point));\n }\n return result;\n }\n\n insert(shape, bbox) {\n const children = this.children;\n let inserted = false;\n\n if (this.inBounds(bbox)) {\n if (this.shapes.length < 4) {\n this._add(shape, bbox);\n } else {\n if (!children.length) {\n this._initChildren();\n }\n\n for (let idx = 0; idx < children.length; idx++) {\n if (children[idx].insert(shape, bbox)) {\n inserted = true;\n break;\n }\n }\n\n if (!inserted) {\n this._add(shape, bbox);\n }\n }\n inserted = true;\n }\n\n return inserted;\n }\n\n _initChildren() {\n const { rect, children } = this;\n const center = rect.center();\n const halfWidth = rect.width() / 2;\n const halfHeight = rect.height() / 2;\n\n children.push(\n new QuadNode(new Rect([ rect.origin.x, rect.origin.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ center.x, rect.origin.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ rect.origin.x, center.y ], [ halfWidth, halfHeight ])),\n new QuadNode(new Rect([ center.x, center.y ], [ halfWidth, halfHeight ]))\n );\n }\n}\n\nexport default QuadNode;","import QuadRoot from './quad-root';\nimport QuadNode from './quad-node';\nimport { Rect } from '../geometry';\nimport { Class } from '../common';\nimport { append } from '../util';\n\nconst ROOT_SIZE = 3000;\nconst LEVEL_STEP = 10000;\nconst MAX_LEVEL = 75;\n\nclass ShapesQuadTree extends Class {\n\n constructor() {\n super();\n\n this.initRoots();\n }\n\n initRoots() {\n this.rootMap = {};\n this.root = new QuadRoot();\n this.rootElements = [];\n }\n\n clear() {\n const rootElements = this.rootElements;\n for (let idx = 0; idx < rootElements.length; idx++) {\n this.remove(rootElements[idx]);\n }\n this.initRoots();\n }\n\n pointShape(point) {\n const sectorRoot = ( this.rootMap[ Math.floor( point.x / ROOT_SIZE ) ] || {} )[ Math.floor( point.y / ROOT_SIZE ) ];\n let result = this.root.pointShapes(point);\n\n if (sectorRoot) {\n result = result.concat(sectorRoot.pointShapes(point));\n }\n\n this.assignZindex(result);\n\n result.sort(zIndexComparer);\n for (let idx = 0; idx < result.length; idx++) {\n if (result[idx].containsPoint(point)) {\n return result[idx];\n }\n }\n }\n\n assignZindex(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n let element = elements[idx];\n let zIndex = 0;\n let levelWeight = Math.pow(LEVEL_STEP, MAX_LEVEL);\n let parents = [];\n\n while (element) {\n parents.push(element);\n element = element.parent;\n }\n\n while (parents.length) {\n element = parents.pop();\n zIndex += ((element.parent ? element.parent.children : this.rootElements).indexOf(element) + 1) * levelWeight;\n levelWeight /= LEVEL_STEP;\n }\n\n elements[idx]._zIndex = zIndex;\n }\n }\n\n optionsChange(e) {\n if (e.field === \"transform\" || e.field === \"stroke.width\") {\n this.bboxChange(e.element);\n }\n }\n\n geometryChange(e) {\n this.bboxChange(e.element);\n }\n\n bboxChange(element) {\n if (element.nodeType === \"Group\") {\n for (let idx = 0; idx < element.children.length; idx++) {\n this.bboxChange(element.children[idx]);\n }\n } else {\n if (element._quadNode) {\n element._quadNode.remove(element);\n }\n this._insertShape(element);\n }\n }\n\n add(elements) {\n const elementsArray = Array.isArray(elements) ? elements.slice(0) : [ elements ];\n\n append(this.rootElements, elementsArray);\n this._insert(elementsArray);\n }\n\n childrenChange(e) {\n if (e.action === \"remove\") {\n for (let idx = 0; idx < e.items.length; idx++) {\n this.remove(e.items[idx]);\n }\n } else {\n this._insert(Array.prototype.slice.call(e.items, 0));\n }\n }\n\n _insert(elements) {\n let element;\n\n while (elements.length > 0) {\n element = elements.pop();\n element.addObserver(this);\n if (element.nodeType === \"Group\") {\n append(elements, element.children);\n } else {\n this._insertShape(element);\n }\n }\n }\n\n _insertShape(shape) {\n const bbox = shape.bbox();\n if (bbox) {\n const sectors = this.getSectors(bbox);\n const x = sectors[0][0];\n const y = sectors[1][0];\n\n if (this.inRoot(sectors)) {\n this.root.insert(shape, bbox);\n } else {\n const rootMap = this.rootMap;\n if (!rootMap[x]) {\n rootMap[x] = {};\n }\n\n if (!rootMap[x][y]) {\n rootMap[x][y] = new QuadNode(\n new Rect([ x * ROOT_SIZE, y * ROOT_SIZE ], [ ROOT_SIZE, ROOT_SIZE ])\n );\n }\n\n rootMap[x][y].insert(shape, bbox);\n }\n }\n }\n\n remove(element) {\n element.removeObserver(this);\n\n if (element.nodeType === \"Group\") {\n const children = element.children;\n for (let idx = 0; idx < children.length; idx++) {\n this.remove(children[idx]);\n }\n } else if (element._quadNode) {\n element._quadNode.remove(element);\n delete element._quadNode;\n }\n }\n\n inRoot(sectors) {\n return sectors[0].length > 1 || sectors[1].length > 1;\n }\n\n getSectors(rect) {\n const bottomRight = rect.bottomRight();\n const bottomX = Math.floor(bottomRight.x / ROOT_SIZE);\n const bottomY = Math.floor(bottomRight.y / ROOT_SIZE);\n const sectors = [ [], [] ];\n for (let x = Math.floor(rect.origin.x / ROOT_SIZE); x <= bottomX; x++) {\n sectors[0].push(x);\n }\n for (let y = Math.floor(rect.origin.y / ROOT_SIZE); y <= bottomY; y++) {\n sectors[1].push(y);\n }\n return sectors;\n }\n}\n\nfunction zIndexComparer(x1, x2) {\n if (x1._zIndex < x2._zIndex) {\n return 1;\n }\n if (x1._zIndex > x2._zIndex) {\n return -1;\n }\n\n return 0;\n}\n\nexport default ShapesQuadTree;","import { defined } from '../util';\n\nclass SurfaceCursor {\n\n constructor(surface) {\n surface.bind(\"mouseenter\", this._mouseenter.bind(this));\n surface.bind(\"mouseleave\", this._mouseleave.bind(this));\n\n this.element = surface.element;\n }\n\n clear() {\n this._resetCursor();\n }\n\n destroy() {\n this._resetCursor();\n delete this.element;\n }\n\n _mouseenter(e) {\n const cursor = this._shapeCursor(e);\n\n if (!cursor) {\n this._resetCursor();\n } else {\n if (!this._current) {\n this._defaultCursor = this._getCursor();\n }\n\n this._setCursor(cursor);\n }\n }\n\n _mouseleave() {\n this._resetCursor();\n }\n\n _shapeCursor(e) {\n let shape = e.element;\n\n while (shape && !defined(shape.options.cursor)) {\n shape = shape.parent;\n }\n\n if (shape) {\n return shape.options.cursor;\n }\n }\n\n _getCursor() {\n if (this.element) {\n return this.element.style.cursor;\n }\n }\n\n _setCursor(cursor) {\n if (this.element) {\n this.element.style.cursor = cursor;\n this._current = cursor;\n }\n }\n\n _resetCursor() {\n if (this._current) {\n this._setCursor(this._defaultCursor || \"\");\n delete this._current;\n }\n }\n}\n\nexport default SurfaceCursor;\n\n","\nexport default function renderPath(ctx, path) {\n const segments = path.segments;\n\n if (segments.length === 0) {\n return;\n }\n\n let segment = segments[0];\n let anchor = segment.anchor();\n ctx.moveTo(anchor.x, anchor.y);\n\n for (let i = 1; i < segments.length; i++) {\n segment = segments[i];\n anchor = segment.anchor();\n\n let prevSeg = segments[i - 1];\n let prevOut = prevSeg.controlOut();\n let controlIn = segment.controlIn();\n\n if (prevOut && controlIn) {\n ctx.bezierCurveTo(prevOut.x, prevOut.y,\n controlIn.x, controlIn.y,\n anchor.x, anchor.y);\n } else {\n ctx.lineTo(anchor.x, anchor.y);\n }\n }\n\n if (path.options.closed) {\n ctx.closePath();\n }\n}\n","import Node from './node';\nimport { parseColor } from '../common';\nimport { isTransparent, valueOrDefault } from '../util';\nimport LinearGradient from '../gradients/linear-gradient';\nimport RadialGradient from '../gradients/radial-gradient';\nimport { DASH_ARRAYS, SOLID, BUTT, PATTERN } from '../core/constants';\nimport renderPath from './utils/render-path';\n\nfunction addGradientStops(gradient, stops) {\n for (let idx = 0; idx < stops.length; idx++) {\n let stop = stops[idx];\n let color = parseColor(stop.color());\n\n color.a *= stop.opacity();\n\n gradient.addColorStop(stop.offset(), color.toCssRgba());\n }\n}\n\nclass PathNode extends Node {\n\n renderTo(ctx) {\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n ctx.beginPath();\n\n this.renderPoints(ctx, this.srcElement);\n\n this.setLineDash(ctx);\n this.setLineCap(ctx);\n this.setLineJoin(ctx);\n\n this.setFill(ctx);\n this.setStroke(ctx);\n\n ctx.restore();\n }\n\n setFill(ctx) {\n const fill = this.srcElement.options.fill;\n let hasFill = false;\n\n if (fill) {\n if (fill.nodeType === \"Gradient\") {\n this.setGradientFill(ctx, fill);\n hasFill = true;\n } else if (fill.nodeType === PATTERN) {\n this.setPatternFill(ctx, fill);\n hasFill = true;\n } else if (!isTransparent(fill.color)) {\n ctx.fillStyle = fill.color;\n\n ctx.save();\n this.globalAlpha(ctx, fill.opacity);\n ctx.fill();\n ctx.restore();\n\n hasFill = true;\n }\n }\n\n return hasFill;\n }\n\n setGradientFill(ctx, fill) {\n const bbox = this.srcElement.rawBBox();\n let gradient;\n\n if (fill instanceof LinearGradient) {\n let start = fill.start();\n let end = fill.end();\n gradient = ctx.createLinearGradient(start.x, start.y, end.x, end.y);\n } else if (fill instanceof RadialGradient) {\n let center = fill.center();\n gradient = ctx.createRadialGradient(center.x, center.y, 0, center.x, center.y, fill.radius());\n }\n\n addGradientStops(gradient, fill.stops);\n\n ctx.save();\n\n if (!fill.userSpace()) {\n ctx.transform(bbox.width(), 0, 0, bbox.height(), bbox.origin.x, bbox.origin.y);\n }\n ctx.fillStyle = gradient;\n ctx.fill();\n\n ctx.restore();\n }\n\n setPatternFill(ctx, pattern) {\n const size = pattern.size();\n const patternCanvas = document.createElement(\"canvas\");\n const patternContext = patternCanvas.getContext(\"2d\");\n\n patternCanvas.width = size.getWidth();\n patternCanvas.height = size.getHeight();\n\n this.childNodes.length = 0;\n this.loadElements(pattern.children);\n\n const childNodes = this.childNodes;\n for (let i = 0; i < childNodes.length; i++) {\n let child = childNodes[i];\n child.renderTo(patternContext);\n }\n\n ctx.save();\n ctx.fillStyle = ctx.createPattern(patternCanvas, \"repeat\");\n ctx.fill();\n ctx.restore();\n }\n\n setStroke(ctx) {\n const stroke = this.srcElement.options.stroke;\n if (stroke && !isTransparent(stroke.color) && stroke.width > 0) {\n ctx.strokeStyle = stroke.color;\n ctx.lineWidth = valueOrDefault(stroke.width, 1);\n ctx.lineJoin = valueOrDefault(stroke.lineJoin, ctx.lineJoin);\n\n ctx.save();\n this.globalAlpha(ctx, stroke.opacity);\n ctx.stroke();\n ctx.restore();\n\n return true;\n }\n }\n\n dashType() {\n const stroke = this.srcElement.options.stroke;\n if (stroke && stroke.dashType) {\n return stroke.dashType.toLowerCase();\n }\n }\n\n setLineDash(ctx) {\n const dashType = this.dashType();\n if (dashType && dashType !== SOLID) {\n const dashArray = DASH_ARRAYS[dashType];\n if (ctx.setLineDash) {\n ctx.setLineDash(dashArray);\n } else {\n ctx.mozDash = dashArray;\n ctx.webkitLineDash = dashArray;\n }\n }\n }\n\n setLineCap(ctx) {\n const dashType = this.dashType();\n const stroke = this.srcElement.options.stroke;\n if (dashType && dashType !== SOLID) {\n ctx.lineCap = BUTT;\n } else if (stroke && stroke.lineCap) {\n ctx.lineCap = stroke.lineCap;\n }\n }\n\n setLineJoin(ctx) {\n const stroke = this.srcElement.options.stroke;\n if (stroke && stroke.lineJoin) {\n ctx.lineJoin = stroke.lineJoin;\n }\n }\n\n renderPoints(ctx, path) {\n renderPath(ctx, path);\n }\n}\n\nexport default PathNode;\n","import BaseSurface from '../core/surface';\nimport { createPromise, promiseAll, bindEvents, elementSize, unbindEvents } from '../util';\nimport RootNode from './root-node';\nimport ShapesQuadTree from '../search/shapes-quad-tree';\nimport SurfaceCursor from './surface-cursor';\n\nimport ArcNode from './arc-node';\nimport CircleNode from './circle-node';\nimport GroupNode from './group-node';\nimport ImageNode from './image-node';\nimport MultiPathNode from './multi-path-node';\nimport PathNode from './path-node';\nimport RectNode from './rect-node';\nimport TextNode from './text-node';\nimport NODE_MAP from './node-map';\n\nNODE_MAP.Arc = ArcNode;\nNODE_MAP.Circle = CircleNode;\nNODE_MAP.Group = GroupNode;\nNODE_MAP.Image = ImageNode;\nNODE_MAP.MultiPath = MultiPathNode;\nNODE_MAP.Path = PathNode;\nNODE_MAP.Rect = RectNode;\nNODE_MAP.Text = TextNode;\n\n\nclass Surface extends BaseSurface {\n get type() {\n return \"canvas\";\n }\n\n constructor(element, options) {\n super(element, options);\n\n this.element.innerHTML = this._template(this);\n\n const canvas = this.element.firstElementChild;\n canvas.style.width = '100%';\n canvas.style.height = '100%';\n\n const size = elementSize(element);\n\n canvas.width = size.width;\n canvas.height = size.height;\n\n this._rootElement = canvas;\n\n this._root = new RootNode(canvas, size);\n\n this._mouseTrackHandler = this._trackMouse.bind(this);\n\n bindEvents(this.element, {\n click: this._mouseTrackHandler,\n mousemove: this._mouseTrackHandler\n });\n }\n\n destroy() {\n super.destroy();\n\n if (this._root) {\n this._root.destroy();\n this._root = null;\n }\n\n if (this._searchTree) {\n this._searchTree.clear();\n delete this._searchTree;\n }\n\n if (this._cursor) {\n this._cursor.destroy();\n delete this._cursor;\n }\n\n unbindEvents(this.element, {\n click: this._mouseTrackHandler,\n mousemove: this._mouseTrackHandler\n });\n }\n\n draw(element) {\n super.draw(element);\n this._root.load([ element ], undefined, this.options.cors);\n\n if (this._searchTree) {\n this._searchTree.add([ element ]);\n }\n }\n\n clear() {\n super.clear();\n this._root.clear();\n\n if (this._searchTree) {\n this._searchTree.clear();\n }\n\n if (this._cursor) {\n this._cursor.clear();\n }\n }\n\n eventTarget(e) {\n if (this._searchTree) {\n const point = this._surfacePoint(e);\n const shape = this._searchTree.pointShape(point);\n return shape;\n }\n }\n\n image() {\n const { _root: root, _rootElement: rootElement } = this;\n const loadingStates = [];\n\n root.traverse((childNode) => {\n if (childNode.loading) {\n loadingStates.push(childNode.loading);\n }\n });\n\n const promise = createPromise();\n const resolveDataURL = () => {\n root._invalidate({ fixedScale: true });\n\n try {\n const data = rootElement.toDataURL();\n promise.resolve(data);\n } catch (e) {\n promise.reject(e);\n }\n };\n\n promiseAll(loadingStates).then(resolveDataURL, resolveDataURL);\n\n return promise;\n }\n\n suspendTracking() {\n super.suspendTracking();\n if (this._searchTree) {\n this._searchTree.clear();\n delete this._searchTree;\n }\n }\n\n resumeTracking() {\n super.resumeTracking();\n if (!this._searchTree) {\n this._searchTree = new ShapesQuadTree();\n\n const childNodes = this._root.childNodes;\n const rootElements = [];\n for (let idx = 0; idx < childNodes.length; idx++) {\n rootElements.push(childNodes[idx].srcElement);\n }\n this._searchTree.add(rootElements);\n }\n }\n\n _resize() {\n this._rootElement.width = this._size.width;\n this._rootElement.height = this._size.height;\n\n this._root.size = this._size;\n this._root.invalidate();\n }\n\n _template() {\n return \"\";\n }\n\n _enableTracking() {\n this._searchTree = new ShapesQuadTree();\n this._cursor = new SurfaceCursor(this);\n\n super._enableTracking();\n }\n\n _trackMouse(e) {\n if (this._suspendedTracking) {\n return;\n }\n\n const shape = this.eventTarget(e);\n\n if (e.type !== \"click\") {\n const currentShape = this._currentShape;\n if (currentShape && currentShape !== shape) {\n this.trigger(\"mouseleave\", {\n element: currentShape,\n originalEvent: e,\n type: \"mouseleave\"\n });\n }\n\n if (shape && currentShape !== shape) {\n this.trigger(\"mouseenter\", {\n element: shape,\n originalEvent: e,\n type: \"mouseenter\"\n });\n }\n\n this.trigger(\"mousemove\", {\n element: shape,\n originalEvent: e,\n type: \"mousemove\"\n });\n\n this._currentShape = shape;\n } else if (shape) {\n this.trigger(\"click\", {\n element: shape,\n originalEvent: e,\n type: \"click\"\n });\n }\n }\n}\n\nexport default Surface;\n","import PathNode from './path-node';\nimport renderPath from './utils/render-path';\n\nclass ArcNode extends PathNode {\n renderPoints(ctx) {\n const path = this.srcElement.toPath();\n renderPath(ctx, path);\n }\n}\n\nexport default ArcNode;\n","import PathNode from './path-node';\n\nclass CircleNode extends PathNode {\n renderPoints(ctx) {\n const { center, radius } = this.srcElement.geometry();\n\n ctx.arc(center.x, center.y, radius, 0, Math.PI * 2);\n }\n}\n\nexport default CircleNode;\n","import PathNode from './path-node';\nimport { createPromise } from '../util';\n\nclass ImageNode extends PathNode {\n constructor(srcElement, cors) {\n super(srcElement);\n\n this.onLoad = this.onLoad.bind(this);\n this.onError = this.onError.bind(this);\n\n this.loading = createPromise();\n\n const img = this.img = new Image();\n const src = srcElement.src();\n\n if (cors && !(/^data:/i.test(src))) {\n img.crossOrigin = cors;\n }\n\n if (src) {\n img.src = src;\n }\n\n if (img.complete) {\n this.onLoad();\n } else {\n img.onload = this.onLoad;\n img.onerror = this.onError;\n }\n }\n\n renderTo(ctx) {\n if (this.loading.state() === \"resolved\") {\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n\n this.drawImage(ctx);\n\n ctx.restore();\n }\n }\n\n optionsChange(e) {\n if (e.field === \"src\") {\n this.loading = createPromise();\n this.img.src = this.srcElement.src();\n } else {\n super.optionsChange(e);\n }\n }\n\n onLoad() {\n this.loading.resolve();\n this.invalidate();\n }\n\n onError() {\n this.loading.reject(new Error(\n \"Unable to load image '\" + this.img.src +\n \"'. Check for connectivity and verify CORS headers.\"\n ));\n }\n\n drawImage(ctx) {\n const rect = this.srcElement.rect();\n const topLeft = rect.topLeft();\n\n ctx.drawImage(\n this.img, topLeft.x, topLeft.y, rect.width(), rect.height()\n );\n }\n}\n\nexport default ImageNode;\n","import PathNode from './path-node';\nimport renderPath from './utils/render-path';\n\nclass MultiPathNode extends PathNode {\n renderPoints(ctx) {\n const paths = this.srcElement.paths;\n for (let i = 0; i < paths.length; i++) {\n renderPath(ctx, paths[i]);\n }\n }\n}\n\nexport default MultiPathNode;\n","import { Path } from '../shapes/path';\nimport PathNode from './path-node';\n\nclass RectNode extends PathNode {\n renderPoints(ctx) {\n const geometry = this.srcElement.geometry();\n const [ rx, ry ] = geometry.cornerRadius;\n\n if (rx === 0 && ry === 0) {\n const { origin, size } = geometry;\n ctx.rect(origin.x, origin.y, size.width, size.height);\n } else {\n super.renderPoints(ctx, Path.fromRect(geometry));\n }\n }\n}\n\nexport default RectNode;\n","import PathNode from './path-node';\n\nclass TextNode extends PathNode {\n renderTo(ctx) {\n const text = this.srcElement;\n const pos = text.position();\n const size = text.measure();\n\n ctx.save();\n\n this.setTransform(ctx);\n this.setClip(ctx);\n this.setOpacity(ctx);\n\n ctx.beginPath();\n\n ctx.font = text.options.font;\n ctx.textAlign = 'left';\n\n if (text.options.paintOrder === 'stroke') {\n this.stroke(ctx, text, pos, size);\n this.fill(ctx, text, pos, size);\n } else {\n this.fill(ctx, text, pos, size);\n this.stroke(ctx, text, pos, size);\n }\n\n ctx.restore();\n }\n\n stroke(ctx, text, pos, size) {\n if (this.setStroke(ctx)) {\n this.setLineDash(ctx);\n ctx.strokeText(text.content(), pos.x, pos.y + size.baseline);\n }\n }\n\n fill(ctx, text, pos, size) {\n if (this.setFill(ctx)) {\n ctx.fillText(text.content(), pos.x, pos.y + size.baseline);\n }\n }\n}\n\n\nexport default TextNode;\n","export default function promiseAll(promises) {\n return Promise.all(promises);\n}","let animationFrameProxy = (callback) => {\n const wnd = typeof window !== \"undefined\" ? window : {};\n const animationFrame = wnd.requestAnimationFrame ||\n wnd.webkitRequestAnimationFrame ||\n wnd.mozRequestAnimationFrame ||\n wnd.oRequestAnimationFrame ||\n wnd.msRequestAnimationFrame ||\n function(callback) { setTimeout(callback, 1000 / 60); };\n\n animationFrameProxy = callback => animationFrame.call(wnd, callback);\n animationFrameProxy(callback);\n};\n\nexport default animationFrameProxy;\n","export default class Class {\n // Empty base class needed for compatibility with Kendo UI for jQuery\n}\n","import Class from '../class';\nimport namedColors from './named-colors';\nimport { Bytes, RGB, HSV, HSL } from './parse-color';\n\nconst DARK_TRESHOLD = 180;\n\nclass Color extends Class {\n constructor(value) {\n super();\n\n if (arguments.length === 1) {\n const formats = Color.formats;\n const resolvedColor = this.resolveColor(value);\n\n for (let idx = 0; idx < formats.length; idx++) {\n const formatRegex = formats[idx].re;\n const processor = formats[idx].process;\n const parts = formatRegex.exec(resolvedColor);\n\n if (parts) {\n const channels = processor(parts);\n this.r = channels[0];\n this.g = channels[1];\n this.b = channels[2];\n }\n }\n } else {\n this.r = arguments[0];\n this.g = arguments[1];\n this.b = arguments[2];\n }\n\n this.r = this.normalizeByte(this.r);\n this.g = this.normalizeByte(this.g);\n this.b = this.normalizeByte(this.b);\n }\n\n toHex() {\n const pad = this.padDigit;\n const r = this.r.toString(16);\n const g = this.g.toString(16);\n const b = this.b.toString(16);\n\n return \"#\" + pad(r) + pad(g) + pad(b);\n }\n\n resolveColor(value) {\n let color = value || \"black\";\n\n if (color.charAt(0) === \"#\") {\n color = color.substr(1, 6);\n }\n\n color = color.replace(/ /g, \"\");\n color = color.toLowerCase();\n color = Color.namedColors[color] || color;\n\n return color;\n }\n\n normalizeByte(value) {\n if (value < 0 || isNaN(value)) {\n return 0;\n }\n\n return value > 255 ? 255 : value;\n }\n\n padDigit(value) {\n return (value.length === 1) ? \"0\" + value : value;\n }\n\n brightness(value) {\n const round = Math.round;\n\n this.r = round(this.normalizeByte(this.r * value));\n this.g = round(this.normalizeByte(this.g * value));\n this.b = round(this.normalizeByte(this.b * value));\n\n return this;\n }\n\n percBrightness() {\n return Math.sqrt(0.241 * this.r * this.r + 0.691 * this.g * this.g + 0.068 * this.b * this.b);\n }\n\n isDark() {\n return this.percBrightness() < DARK_TRESHOLD;\n }\n\n static fromBytes(r, g, b, a) {\n return new Bytes(r, g, b, a != null ? a : 1);\n }\n\n static fromRGB(r, g, b, a) {\n return new RGB(r, g, b, a != null ? a : 1);\n }\n\n static fromHSV(h, s, v, a) {\n return new HSV(h, s, v, a != null ? a : 1);\n }\n\n static fromHSL(h, s, l, a) {\n return new HSL(h, s, l, a != null ? a : 1);\n }\n}\n\nColor.formats = [ {\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 10), parseInt(parts[2], 10), parseInt(parts[3], 10)\n ];\n }\n}, {\n re: /^(\\w{2})(\\w{2})(\\w{2})$/,\n process: function(parts) {\n return [\n parseInt(parts[1], 16), parseInt(parts[2], 16), parseInt(parts[3], 16)\n ];\n }\n}, {\n re: /^(\\w{1})(\\w{1})(\\w{1})$/,\n process: function(parts) {\n return [\n parseInt(parts[1] + parts[1], 16),\n parseInt(parts[2] + parts[2], 16),\n parseInt(parts[3] + parts[3], 16)\n ];\n }\n} ];\n\nColor.namedColors = namedColors;\n\nexport default Color;","const namedColors = {\n aliceblue: \"f0f8ff\", antiquewhite: \"faebd7\", aqua: \"00ffff\",\n aquamarine: \"7fffd4\", azure: \"f0ffff\", beige: \"f5f5dc\",\n bisque: \"ffe4c4\", black: \"000000\", blanchedalmond: \"ffebcd\",\n blue: \"0000ff\", blueviolet: \"8a2be2\", brown: \"a52a2a\",\n burlywood: \"deb887\", cadetblue: \"5f9ea0\", chartreuse: \"7fff00\",\n chocolate: \"d2691e\", coral: \"ff7f50\", cornflowerblue: \"6495ed\",\n cornsilk: \"fff8dc\", crimson: \"dc143c\", cyan: \"00ffff\",\n darkblue: \"00008b\", darkcyan: \"008b8b\", darkgoldenrod: \"b8860b\",\n darkgray: \"a9a9a9\", darkgrey: \"a9a9a9\", darkgreen: \"006400\",\n darkkhaki: \"bdb76b\", darkmagenta: \"8b008b\", darkolivegreen: \"556b2f\",\n darkorange: \"ff8c00\", darkorchid: \"9932cc\", darkred: \"8b0000\",\n darksalmon: \"e9967a\", darkseagreen: \"8fbc8f\", darkslateblue: \"483d8b\",\n darkslategray: \"2f4f4f\", darkslategrey: \"2f4f4f\", darkturquoise: \"00ced1\",\n darkviolet: \"9400d3\", deeppink: \"ff1493\", deepskyblue: \"00bfff\",\n dimgray: \"696969\", dimgrey: \"696969\", dodgerblue: \"1e90ff\",\n firebrick: \"b22222\", floralwhite: \"fffaf0\", forestgreen: \"228b22\",\n fuchsia: \"ff00ff\", gainsboro: \"dcdcdc\", ghostwhite: \"f8f8ff\",\n gold: \"ffd700\", goldenrod: \"daa520\", gray: \"808080\",\n grey: \"808080\", green: \"008000\", greenyellow: \"adff2f\",\n honeydew: \"f0fff0\", hotpink: \"ff69b4\", indianred: \"cd5c5c\",\n indigo: \"4b0082\", ivory: \"fffff0\", khaki: \"f0e68c\",\n lavender: \"e6e6fa\", lavenderblush: \"fff0f5\", lawngreen: \"7cfc00\",\n lemonchiffon: \"fffacd\", lightblue: \"add8e6\", lightcoral: \"f08080\",\n lightcyan: \"e0ffff\", lightgoldenrodyellow: \"fafad2\", lightgray: \"d3d3d3\",\n lightgrey: \"d3d3d3\", lightgreen: \"90ee90\", lightpink: \"ffb6c1\",\n lightsalmon: \"ffa07a\", lightseagreen: \"20b2aa\", lightskyblue: \"87cefa\",\n lightslategray: \"778899\", lightslategrey: \"778899\", lightsteelblue: \"b0c4de\",\n lightyellow: \"ffffe0\", lime: \"00ff00\", limegreen: \"32cd32\",\n linen: \"faf0e6\", magenta: \"ff00ff\", maroon: \"800000\",\n mediumaquamarine: \"66cdaa\", mediumblue: \"0000cd\", mediumorchid: \"ba55d3\",\n mediumpurple: \"9370d8\", mediumseagreen: \"3cb371\", mediumslateblue: \"7b68ee\",\n mediumspringgreen: \"00fa9a\", mediumturquoise: \"48d1cc\", mediumvioletred: \"c71585\",\n midnightblue: \"191970\", mintcream: \"f5fffa\", mistyrose: \"ffe4e1\",\n moccasin: \"ffe4b5\", navajowhite: \"ffdead\", navy: \"000080\",\n oldlace: \"fdf5e6\", olive: \"808000\", olivedrab: \"6b8e23\",\n orange: \"ffa500\", orangered: \"ff4500\", orchid: \"da70d6\",\n palegoldenrod: \"eee8aa\", palegreen: \"98fb98\", paleturquoise: \"afeeee\",\n palevioletred: \"d87093\", papayawhip: \"ffefd5\", peachpuff: \"ffdab9\",\n peru: \"cd853f\", pink: \"ffc0cb\", plum: \"dda0dd\",\n powderblue: \"b0e0e6\", purple: \"800080\", red: \"ff0000\",\n rosybrown: \"bc8f8f\", royalblue: \"4169e1\", saddlebrown: \"8b4513\",\n salmon: \"fa8072\", sandybrown: \"f4a460\", seagreen: \"2e8b57\",\n seashell: \"fff5ee\", sienna: \"a0522d\", silver: \"c0c0c0\",\n skyblue: \"87ceeb\", slateblue: \"6a5acd\", slategray: \"708090\",\n slategrey: \"708090\", snow: \"fffafa\", springgreen: \"00ff7f\",\n steelblue: \"4682b4\", tan: \"d2b48c\", teal: \"008080\",\n thistle: \"d8bfd8\", tomato: \"ff6347\", turquoise: \"40e0d0\",\n violet: \"ee82ee\", wheat: \"f5deb3\", white: \"ffffff\",\n whitesmoke: \"f5f5f5\", yellow: \"ffff00\", yellowgreen: \"9acd32\"\n};\n\nexport default namedColors;","import Class from '../class';\nimport support from '../support';\nimport namedColors from './named-colors';\n\nconst browser = support.browser;\n\nlet matchNamedColor = (color) => {\n const colorNames = Object.keys(namedColors);\n colorNames.push(\"transparent\");\n\n const regexp = new RegExp(\"^(\" + colorNames.join(\"|\") + \")(\\\\W|$)\", \"i\");\n matchNamedColor = (color) => regexp.exec(color);\n\n return regexp.exec(color);\n};\n\nclass BaseColor extends Class {\n constructor() { super(); }\n toHSV() { return this; }\n\n toRGB() { return this; }\n\n toHex(options) { return this.toBytes().toHex(options); }\n\n toBytes() { return this; }\n\n toCss(options) { return \"#\" + this.toHex(options); }\n\n toCssRgba() {\n const rgb = this.toBytes();\n return `rgba(${ rgb.r }, ${ rgb.g }, ${ rgb.b }, ${ parseFloat((Number(this.a)).toFixed(3)) })`;\n }\n\n toDisplay() {\n if (browser.msie && browser.version < 9) {\n return this.toCss(); // no RGBA support; does it support any opacity in colors?\n }\n return this.toCssRgba();\n }\n\n equals(c) {\n return c === this || ((c !== null && c !== undefined) && this.toCssRgba() === parseColor(c).toCssRgba());\n }\n\n diff(other) {\n if (other === null) {\n return NaN;\n }\n\n const c1 = this.toBytes();\n const c2 = other.toBytes();\n\n return Math.sqrt(Math.pow((c1.r - c2.r) * 0.30, 2) +\n Math.pow((c1.g - c2.g) * 0.59, 2) +\n Math.pow((c1.b - c2.b) * 0.11, 2));\n }\n\n clone() {\n let c = this.toBytes();\n if (c === this) {\n c = new Bytes(c.r, c.g, c.b, c.a);\n }\n\n return c;\n }\n}\n\nclass RGB extends BaseColor {\n constructor(r, g, b, a) {\n super();\n\n this.r = r;\n this.g = g;\n this.b = b;\n this.a = a;\n }\n\n toHSV() {\n const { r, g, b } = this;\n const min = Math.min(r, g, b);\n const max = Math.max(r, g, b);\n const delta = max - min;\n const v = max;\n let h, s;\n\n if (delta === 0) {\n return new HSV(0, 0, v, this.a);\n }\n\n if (max !== 0) {\n s = delta / max;\n if (r === max) {\n h = (g - b) / delta;\n } else if (g === max) {\n h = 2 + (b - r) / delta;\n } else {\n h = 4 + (r - g) / delta;\n }\n\n h *= 60;\n if (h < 0) {\n h += 360;\n }\n } else {\n s = 0;\n h = -1;\n }\n\n return new HSV(h, s, v, this.a);\n }\n\n toHSL() {\n const { r, g, b } = this;\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n let h, s, l = (max + min) / 2;\n\n if (max === min) {\n h = s = 0;\n } else {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n switch (max) {\n case r: h = (g - b) / d + (g < b ? 6 : 0); break;\n case g: h = (b - r) / d + 2; break;\n case b: h = (r - g) / d + 4; break;\n default: break;\n }\n }\n\n return new HSL(h * 60, s * 100, l * 100, this.a);\n }\n\n toBytes() {\n return new Bytes(this.r * 255, this.g * 255, this.b * 255, this.a);\n }\n}\n\nclass Bytes extends RGB {\n constructor(r, g, b, a) {\n super(Math.round(r), Math.round(g), Math.round(b), a);\n }\n\n toRGB() {\n return new RGB(this.r / 255, this.g / 255, this.b / 255, this.a);\n }\n\n toHSV() {\n return this.toRGB().toHSV();\n }\n\n toHSL() {\n return this.toRGB().toHSL();\n }\n\n toHex(options) {\n let value = hex(this.r, 2) + hex(this.g, 2) + hex(this.b, 2);\n\n if (options && options.alpha) {\n value += hex(Math.round(this.a * 255), 2);\n }\n\n return value;\n }\n\n toBytes() {\n return this;\n }\n}\n\nfunction hex(n, width, pad = \"0\") {\n let result = n.toString(16);\n while (width > result.length) {\n result = pad + result;\n }\n\n return result;\n}\n\nclass HSV extends BaseColor {\n constructor(h, s, v, a) {\n super();\n\n this.h = h;\n this.s = s;\n this.v = v;\n this.a = a;\n }\n\n toRGB() {\n let { h, s, v } = this;\n let r, g, b;\n\n if (s === 0) {\n r = g = b = v;\n } else {\n h /= 60;\n\n const i = Math.floor(h);\n const f = h - i;\n const p = v * (1 - s);\n const q = v * (1 - s * f);\n const t = v * (1 - s * (1 - f));\n\n switch (i) {\n case 0: r = v; g = t; b = p; break;\n case 1: r = q; g = v; b = p; break;\n case 2: r = p; g = v; b = t; break;\n case 3: r = p; g = q; b = v; break;\n case 4: r = t; g = p; b = v; break;\n default: r = v; g = p; b = q; break;\n }\n }\n\n return new RGB(r, g, b, this.a);\n }\n\n toHSL() {\n return this.toRGB().toHSL();\n }\n\n toBytes() {\n return this.toRGB().toBytes();\n }\n}\n\nclass HSL extends BaseColor {\n constructor(h, s, l, a) {\n super();\n\n this.h = h;\n this.s = s;\n this.l = l;\n this.a = a;\n }\n\n toRGB() {\n let h = this.h / 360;\n let s = this.s / 100;\n let l = this.l / 100;\n let r, g, b;\n\n if (s === 0) {\n r = g = b = l; // achromatic\n } else {\n const q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n const p = 2 * l - q;\n r = hue2rgb(p, q, h + 1 / 3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1 / 3);\n }\n\n return new RGB(r, g, b, this.a);\n }\n\n toHSV() {\n return this.toRGB().toHSV();\n }\n\n toBytes() {\n return this.toRGB().toBytes();\n }\n}\n\nfunction hue2rgb(p, q, s) {\n let t = s;\n\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction alphaFromHex(a) {\n return parseFloat(parseFloat(parseInt(a, 16) / 255 ).toFixed(3));\n}\n\nexport { RGB, Bytes, HSV, HSL };\n\nexport default function parseColor(value, safe) {\n let m, ret;\n\n if (!value || value === \"none\") {\n return null;\n }\n\n if (value instanceof BaseColor) {\n return value;\n }\n\n let color = value.toLowerCase();\n if ((m = matchNamedColor(color))) {\n if (m[1] === \"transparent\") {\n color = new RGB(1, 1, 1, 0);\n } else {\n color = parseColor(namedColors[m[1]], safe);\n }\n color.match = [ m[1] ];\n return color;\n }\n if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) {\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16), 1);\n } else if ((m = /^#?([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])\\b/i.exec(color))) { // Parse 4 digit hex color\n ret = new Bytes(parseInt(m[1] + m[1], 16),\n parseInt(m[2] + m[2], 16),\n parseInt(m[3] + m[3], 16),\n alphaFromHex(m[4] + m[4]));\n } else if ((m = /^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})\\b/i.exec(color))) { // Parse 8 digit hex color\n ret = new Bytes(parseInt(m[1], 16),\n parseInt(m[2], 16),\n parseInt(m[3], 16),\n alphaFromHex(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), 1);\n } else if ((m = /^rgba\\(\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9]+)\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new Bytes(parseInt(m[1], 10),\n parseInt(m[2], 10),\n parseInt(m[3], 10), parseFloat(m[4]));\n } else if ((m = /^rgb\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, 1);\n } else if ((m = /^rgba\\(\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9]*\\.?[0-9]+)%\\s*,\\s*([0-9.]+)\\s*\\)/.exec(color))) {\n ret = new RGB(parseFloat(m[1]) / 100,\n parseFloat(m[2]) / 100,\n parseFloat(m[3]) / 100, parseFloat(m[4]));\n } else if ((m = /^color\\(\\s*srgb\\s*([0-9]*\\.?[0-9]+)\\s+([0-9]*\\.?[0-9]+)\\s+([0-9]*\\.?[0-9]+)\\s*(\\/\\s+([0-9]*\\.?[0-9]+))?\\)/.exec(color))) {\n ret = new RGB(\n parseFloat(m[1]),\n parseFloat(m[2]),\n parseFloat(m[3]),\n parseFloat(m[5] || '1'));\n }\n\n if (ret) {\n ret.match = m;\n } else if (!safe) {\n throw new Error(\"Cannot parse color: \" + color);\n }\n\n return ret;\n}\n","const ampRegExp = /&/g;\nconst ltRegExp = //g;\n\nexport default function htmlEncode(value) {\n return String(value).replace(ampRegExp, \"&\").replace(ltRegExp, \"<\").replace(gtRegExp, \">\").replace(quoteRegExp, \""\").replace(aposRegExp, \"'\");\n}","/* eslint-disable no-console */\n\nexport default function logToConsole(message) {\n const console = window.console;\n\n if (typeof(console) != \"undefined\" && console.log) {\n console.log(message);\n }\n}","function matchUserAgent(userAgent) {\n const browserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+))/i\n };\n\n let browser = {};\n\n for (let agent in browserRxs) {\n if (browserRxs.hasOwnProperty(agent)) {\n const match = userAgent.match(browserRxs[agent]);\n if (match) {\n browser[agent] = true;\n browser[match[1].toLowerCase().split(\" \")[0].split(\"/\")[0]] = true;\n browser.version = parseInt(document.documentMode || match[2], 10);\n\n break;\n }\n }\n }\n\n return browser;\n}\n\nlet browser = null;\n\nconst support = {\n get browser() {\n if (typeof window === 'undefined' || browser) {\n return browser;\n }\n\n browser = matchUserAgent(window.navigator.userAgent);\n return browser;\n }\n};\n\nexport default support;\n","import now from '../util/now';\n\nexport default function throttle(fn, delay) {\n let lastExecTime = 0;\n let timeout;\n\n if (!delay || delay <= 0) {\n return fn;\n }\n\n const throttled = function() {\n const elapsed = now() - lastExecTime;\n const args = arguments;\n\n const exec = function() {\n fn.apply(null, args);\n lastExecTime = now();\n };\n\n // first execution\n if (!lastExecTime) {\n return exec();\n }\n\n if (timeout) {\n clearTimeout(timeout);\n }\n\n if (elapsed > delay) {\n exec();\n } else {\n timeout = setTimeout(exec, delay - elapsed);\n }\n };\n\n throttled.cancel = function() {\n clearTimeout(timeout);\n };\n\n return throttled;\n}\n","import { Class } from '../common';\n\nclass BaseNode extends Class {\n constructor(srcElement) {\n super();\n\n this.childNodes = [];\n this.parent = null;\n\n if (srcElement) {\n this.srcElement = srcElement;\n this.observe();\n }\n }\n\n destroy() {\n if (this.srcElement) {\n this.srcElement.removeObserver(this);\n }\n\n const children = this.childNodes;\n for (let i = 0; i < children.length; i++) {\n this.childNodes[i].destroy();\n }\n\n this.parent = null;\n }\n\n load() {}\n\n observe() {\n if (this.srcElement) {\n this.srcElement.addObserver(this);\n }\n }\n\n append(node) {\n this.childNodes.push(node);\n node.parent = this;\n }\n\n insertAt(node, pos) {\n this.childNodes.splice(pos, 0, node);\n node.parent = this;\n }\n\n remove(index, count) {\n const end = index + count;\n for (let i = index; i < end; i++) {\n this.childNodes[i].removeSelf();\n }\n this.childNodes.splice(index, count);\n }\n\n removeSelf() {\n this.clear();\n this.destroy();\n }\n\n clear() {\n this.remove(0, this.childNodes.length);\n }\n\n invalidate() {\n if (this.parent) {\n this.parent.invalidate();\n }\n }\n\n geometryChange() {\n this.invalidate();\n }\n\n optionsChange() {\n this.invalidate();\n }\n\n childrenChange(e) {\n if (e.action === \"add\") {\n this.load(e.items, e.index);\n } else if (e.action === \"remove\") {\n this.remove(e.index, e.items.length);\n }\n\n this.invalidate();\n }\n}\n\nexport default BaseNode;","const DASH_ARRAYS = {\n dot: [ 1.5, 3.5 ],\n dash: [ 4, 3.5 ],\n longdash: [ 8, 3.5 ],\n dashdot: [ 3.5, 3.5, 1.5, 3.5 ],\n longdashdot: [ 8, 3.5, 1.5, 3.5 ],\n longdashdotdot: [ 8, 3.5, 1.5, 3.5, 1.5, 3.5 ]\n};\n\nconst SOLID = \"solid\";\nconst BUTT = \"butt\";\nconst PATTERN = \"Pattern\";\n\nexport { DASH_ARRAYS, SOLID, BUTT, PATTERN };\n","import { Class } from '../common';\n\nclass HasObservers extends Class {\n observers() {\n this._observers = this._observers || [];\n return this._observers;\n }\n\n addObserver(element) {\n if (!this._observers) {\n this._observers = [ element ];\n } else {\n this._observers.push(element);\n }\n return this;\n }\n\n removeObserver(element) {\n const observers = this.observers();\n const index = observers.indexOf(element);\n if (index !== -1) {\n observers.splice(index, 1);\n }\n return this;\n }\n\n trigger(methodName, event) {\n const observers = this._observers;\n\n if (observers && !this._suspended) {\n for (let idx = 0; idx < observers.length; idx++) {\n let observer = observers[idx];\n if (observer[methodName]) {\n observer[methodName](event);\n }\n }\n }\n return this;\n }\n\n optionsChange(e = {}) {\n e.element = this;\n this.trigger(\"optionsChange\", e);\n }\n\n geometryChange() {\n this.trigger(\"geometryChange\", {\n element: this\n });\n }\n\n suspend() {\n this._suspended = (this._suspended || 0) + 1;\n return this;\n }\n\n resume() {\n this._suspended = Math.max((this._suspended || 0) - 1, 0);\n return this;\n }\n\n _observerField(field, value) {\n if (this[field]) {\n this[field].removeObserver(this);\n }\n this[field] = value;\n value.addObserver(this);\n }\n}\n\nexport default HasObservers;\n\n","import { Class } from '../common';\nimport HasObservers from './has-observers';\nimport { defined } from '../util';\n\n\nconst toString = {}.toString;\n\nclass OptionsStore extends HasObservers {\n constructor(options, prefix = \"\") {\n super();\n\n this.prefix = prefix;\n\n for (let field in options) {\n let member = options[field];\n member = this._wrap(member, field);\n this[field] = member;\n }\n }\n\n get(field) {\n const parts = field.split(\".\");\n let result = this;\n\n while (parts.length && result) {\n let part = parts.shift();\n result = result[part];\n }\n\n return result;\n }\n\n set(field, value) {\n const current = this.get(field);\n\n if (current !== value) {\n this._set(field, this._wrap(value, field));\n this.optionsChange({\n field: this.prefix + field,\n value: value\n });\n }\n }\n\n _set(field, value) {\n const composite = field.indexOf(\".\") >= 0;\n let parentObj = this;\n let fieldName = field;\n\n if (composite) {\n const parts = fieldName.split(\".\");\n let prefix = this.prefix;\n\n while (parts.length > 1) {\n fieldName = parts.shift();\n prefix += fieldName + \".\";\n\n let obj = parentObj[fieldName];\n\n if (!obj) {\n obj = new OptionsStore({}, prefix);\n obj.addObserver(this);\n parentObj[fieldName] = obj;\n }\n parentObj = obj;\n }\n fieldName = parts[0];\n }\n\n parentObj._clear(fieldName);\n parentObj[fieldName] = value;\n }\n\n _clear(field) {\n const current = this[field];\n if (current && current.removeObserver) {\n current.removeObserver(this);\n }\n }\n\n _wrap(object, field) {\n const type = toString.call(object);\n let wrapped = object;\n\n if (wrapped !== null && defined(wrapped) && type === \"[object Object]\") {\n if (!(object instanceof OptionsStore) && !(object instanceof Class)) {\n wrapped = new OptionsStore(wrapped, this.prefix + field + \".\");\n }\n\n wrapped.addObserver(this);\n }\n\n return wrapped;\n }\n}\n\nexport default OptionsStore;\n","import Class from './class';\n\nclass Observable extends Class {\n constructor() {\n super();\n\n this._events = {};\n }\n\n bind(eventName, handlers, one) {\n const eventNames = getArray(eventName);\n const handlersIsFunction = isFunction(handlers);\n const length = eventNames.length;\n\n if (handlers === undefined) {\n for (let field in eventName) {\n this.bind(field, eventName[field]);\n }\n return this;\n }\n\n for (let idx = 0; idx < length; idx++) {\n const eventName = eventNames[idx];\n\n let handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n if (one) {\n const original = handler;\n handler = () => { // eslint-disable-line no-loop-func\n this.unbind(eventName, handler);\n original.apply(this, arguments);\n };\n handler.original = original;\n }\n let events = this._events[eventName] = this._events[eventName] || [];\n events.push(handler);\n }\n }\n\n return this;\n }\n\n one(eventNames, handlers) {\n return this.bind(eventNames, handlers, true);\n }\n\n first(eventName, handlers) {\n const eventNames = getArray(eventName);\n const handlersIsFunction = isFunction(handlers);\n\n for (let idx = 0, length = eventNames.length; idx < length; idx++) {\n const eventName = eventNames[idx];\n\n const handler = handlersIsFunction ? handlers : handlers[eventName];\n\n if (handler) {\n const events = this._events[eventName] = this._events[eventName] || [];\n events.unshift(handler);\n }\n }\n\n return this;\n }\n\n trigger(eventName, e = {}) {\n let events = this._events[eventName];\n\n if (events) {\n const length = events.length;\n\n e.sender = this;\n e._defaultPrevented = false;\n e.preventDefault = preventDefault;\n e.isDefaultPrevented = isDefaultPrevented;\n\n events = events.slice();\n\n for (let idx = 0; idx < length; idx++) {\n events[idx].call(this, e);\n }\n\n return e._defaultPrevented === true;\n }\n\n return false;\n }\n\n unbind(eventName, handler) {\n const events = this._events[eventName];\n\n if (eventName === undefined) {\n this._events = {};\n } else if (events) {\n if (handler) {\n for (let idx = events.length - 1; idx >= 0; idx--) {\n if (events[idx] === handler || events[idx].original === handler) {\n events.splice(idx, 1);\n }\n }\n } else {\n this._events[eventName] = [];\n }\n }\n\n return this;\n }\n}\n\nfunction isFunction(value) {\n return typeof value === \"function\";\n}\n\nfunction getArray(value) {\n return typeof value === \"string\" ? [ value ] : value;\n}\n\nfunction preventDefault() {\n this._defaultPrevented = true;\n}\n\nfunction isDefaultPrevented() {\n return this._defaultPrevented === true;\n}\n\nexport default Observable;","import Matrix from '../geometry/matrix';\n\nconst matrixRegexp = /matrix\\((.*)\\)/;\n\nfunction parseMatrix(matrixString) {\n const match = matrixString.match(matrixRegexp);\n if (match === null || match.length !== 2) {\n return Matrix.unit();\n }\n\n const members = match[1].split(',').map(x => parseFloat(x));\n return new Matrix(...members);\n}\n\nfunction transformMatrix(element) {\n const transform = getComputedStyle(element).transform;\n\n if (transform === 'none') {\n return Matrix.unit();\n }\n\n return parseMatrix(transform);\n}\n\nexport default function elementScale(element) {\n if (!element) {\n return Matrix.unit();\n }\n\n let matrix = transformMatrix(element);\n let parent = element.parentElement;\n while (parent) {\n const parentMatrix = transformMatrix(parent);\n matrix = matrix.multiplyCopy(parentMatrix);\n parent = parent.parentElement;\n }\n\n matrix.b = matrix.c = matrix.e = matrix.f = 0;\n return matrix;\n}\n","import Group from '../shapes/group';\nimport Point from '../geometry/point';\nimport { Observable } from '../common';\nimport { eventElement, eventCoordinates, elementPadding, elementScale, elementSize, elementOffset } from '../util';\n\nconst events = [\n \"click\",\n \"mouseenter\",\n \"mouseleave\",\n \"mousemove\",\n \"resize\"\n];\n\nclass Surface extends Observable {\n constructor(element, options) {\n super();\n\n this.options = Object.assign({}, options);\n this.element = element;\n this.element._kendoExportVisual = this.exportVisual.bind(this);\n\n this._click = this._handler(\"click\");\n this._mouseenter = this._handler(\"mouseenter\");\n this._mouseleave = this._handler(\"mouseleave\");\n this._mousemove = this._handler(\"mousemove\");\n\n this._visual = new Group();\n\n elementSize(element, this.options);\n\n this.bind(events, this.options);\n\n this._enableTracking();\n }\n\n draw(element) {\n this._visual.children.push(element);\n }\n\n clear() {\n this._visual.children = [];\n }\n\n destroy() {\n this._visual = null;\n this.element._kendoExportVisual = null;\n this.unbind();\n }\n\n eventTarget(e) {\n let domNode = eventElement(e);\n let node;\n\n while (!node && domNode) {\n node = domNode._kendoNode;\n if (domNode === this.element) {\n break;\n }\n\n domNode = domNode.parentElement;\n }\n\n if (node) {\n return node.srcElement;\n }\n }\n\n exportVisual() {\n return this._visual;\n }\n\n getSize() {\n return elementSize(this.element);\n }\n\n currentSize(size) {\n if (size) {\n this._size = size;\n } else {\n return this._size;\n }\n }\n\n setSize(size) {\n elementSize(this.element, size);\n\n this.currentSize(size);\n this._resize();\n }\n\n resize(force) {\n const size = this.getSize();\n const currentSize = this.currentSize();\n\n if (force || (size.width > 0 || size.height > 0) && (!currentSize || size.width !== currentSize.width || size.height !== currentSize.height)) {\n this.currentSize(size);\n this._resize(size, force);\n this.trigger(\"resize\", size);\n }\n }\n\n size(value) {\n if (!value) {\n return this.getSize();\n }\n\n this.setSize(value);\n }\n\n suspendTracking() {\n this._suspendedTracking = true;\n }\n\n resumeTracking() {\n this._suspendedTracking = false;\n }\n\n _enableTracking() {}\n\n _resize() {}\n\n _handler(eventName) {\n return (e) => {\n const node = this.eventTarget(e);\n if (node && !this._suspendedTracking) {\n this.trigger(eventName, {\n element: node,\n originalEvent: e,\n type: eventName\n });\n }\n };\n }\n\n _elementOffset() {\n const element = this.element;\n const padding = elementPadding(element);\n const { left, top } = elementOffset(element);\n\n return {\n left: left + padding.left,\n top: top + padding.top\n };\n }\n\n _surfacePoint(e) {\n const offset = this._elementOffset();\n const coord = eventCoordinates(e);\n const x = coord.x - offset.left;\n const y = coord.y - offset.top;\n\n const inverseTransform = elementScale(this.element).invert();\n const point = new Point(\n x,\n y\n ).transform(inverseTransform);\n\n return point;\n }\n}\n\nexport default Surface;\n","import { default as elementStyles } from './element-styles';\n\nexport default function elementPadding(element) {\n const { paddingLeft, paddingTop } = elementStyles(element, [ \"paddingLeft\", \"paddingTop\" ]);\n return {\n top: parseFloat(paddingTop),\n left: parseFloat(paddingLeft)\n };\n}\n","import close from './close';\n\nexport default function closeOrLess(a, b, tolerance) {\n return a < b || close(a, b, tolerance);\n}","import HasObservers from '../core/has-observers';\nimport { deg, rad, round } from '../util';\nimport withAccessors from '../mixins/with-accessors';\n\nimport closeOrLess from './math/close-or-less';\nimport lineIntersection from './math/line-intersection';\nimport ellipseExtremeAngles from './math/ellipse-extreme-angles';\n\nimport { PRECISION } from './constants';\nimport Point from './point';\nimport Rect from './rect';\nimport transform from './transform';\n\n\nconst MAX_INTERVAL = 45;\nconst pow = Math.pow;\nconst accessors = [ \"radiusX\", \"radiusY\", \"startAngle\", \"endAngle\", \"anticlockwise\" ];\n\nclass Arc extends withAccessors(HasObservers, accessors) {\n constructor(center = new Point(), options = {}) {\n super();\n\n this.setCenter(center);\n\n this.radiusX = options.radiusX;\n this.radiusY = options.radiusY || options.radiusX;\n this.startAngle = options.startAngle;\n this.endAngle = options.endAngle;\n this.anticlockwise = options.anticlockwise || false;\n this.xRotation = options.xRotation;\n }\n\n clone() {\n return new Arc(this.center, {\n radiusX: this.radiusX,\n radiusY: this.radiusY,\n startAngle: this.startAngle,\n endAngle: this.endAngle,\n anticlockwise: this.anticlockwise\n });\n }\n\n setCenter(value) {\n this._observerField(\"center\", Point.create(value));\n this.geometryChange();\n return this;\n }\n\n getCenter() {\n return this.center;\n }\n\n pointAt(angle) {\n const center = this.center;\n const radian = rad(angle);\n\n return new Point(\n center.x + this.radiusX * Math.cos(radian),\n center.y + this.radiusY * Math.sin(radian)\n );\n }\n\n curvePoints() {\n const startAngle = this.startAngle;\n const dir = this.anticlockwise ? -1 : 1;\n const curvePoints = [ this.pointAt(startAngle) ];\n const interval = this._arcInterval();\n const intervalAngle = interval.endAngle - interval.startAngle;\n const subIntervalsCount = Math.ceil(intervalAngle / MAX_INTERVAL);\n const subIntervalAngle = intervalAngle / subIntervalsCount;\n let currentAngle = startAngle;\n let transformation;\n if (this.xRotation) {\n transformation = transform().rotate(this.xRotation, this.center);\n }\n\n for (let i = 1; i <= subIntervalsCount; i++) {\n const nextAngle = currentAngle + dir * subIntervalAngle;\n const points = this._intervalCurvePoints(currentAngle, nextAngle, transformation);\n\n curvePoints.push(points.cp1, points.cp2, points.p2);\n currentAngle = nextAngle;\n }\n\n return curvePoints;\n }\n\n bbox(matrix) {\n const interval = this._arcInterval();\n const startAngle = interval.startAngle;\n const endAngle = interval.endAngle;\n const extremeAngles = ellipseExtremeAngles(this.center, this.radiusX, this.radiusY, matrix);\n const extremeX = deg(extremeAngles.x);\n const extremeY = deg(extremeAngles.y);\n const endPoint = this.pointAt(endAngle).transformCopy(matrix);\n let currentAngleX = bboxStartAngle(extremeX, startAngle);\n let currentAngleY = bboxStartAngle(extremeY, startAngle);\n let currentPoint = this.pointAt(startAngle).transformCopy(matrix);\n let minPoint = Point.min(currentPoint, endPoint);\n let maxPoint = Point.max(currentPoint, endPoint);\n\n while (currentAngleX < endAngle || currentAngleY < endAngle) {\n let currentPointX;\n if (currentAngleX < endAngle) {\n currentPointX = this.pointAt(currentAngleX).transformCopy(matrix);\n currentAngleX += 90;\n }\n\n let currentPointY;\n if (currentAngleY < endAngle) {\n currentPointY = this.pointAt(currentAngleY).transformCopy(matrix);\n currentAngleY += 90;\n }\n\n currentPoint = new Point(currentPointX.x, currentPointY.y);\n minPoint = Point.min(minPoint, currentPoint);\n maxPoint = Point.max(maxPoint, currentPoint);\n }\n\n return Rect.fromPoints(minPoint, maxPoint);\n }\n\n _arcInterval() {\n let { startAngle, endAngle, anticlockwise } = this;\n\n if (anticlockwise) {\n let oldStart = startAngle;\n startAngle = endAngle;\n endAngle = oldStart;\n }\n\n if (startAngle > endAngle || (anticlockwise && startAngle === endAngle)) {\n endAngle += 360;\n }\n\n return {\n startAngle: startAngle,\n endAngle: endAngle\n };\n }\n\n _intervalCurvePoints(startAngle, endAngle, transformation) {\n const p1 = this.pointAt(startAngle);\n const p2 = this.pointAt(endAngle);\n const p1Derivative = this._derivativeAt(startAngle);\n const p2Derivative = this._derivativeAt(endAngle);\n const t = (rad(endAngle) - rad(startAngle)) / 3;\n const cp1 = new Point(p1.x + t * p1Derivative.x, p1.y + t * p1Derivative.y);\n const cp2 = new Point(p2.x - t * p2Derivative.x, p2.y - t * p2Derivative.y);\n if (transformation) {\n p1.transform(transformation);\n p2.transform(transformation);\n cp1.transform(transformation);\n cp2.transform(transformation);\n }\n\n return {\n p1: p1,\n cp1: cp1,\n cp2: cp2,\n p2: p2\n };\n }\n\n _derivativeAt(angle) {\n const radian = rad(angle);\n\n return new Point(-this.radiusX * Math.sin(radian), this.radiusY * Math.cos(radian));\n }\n\n containsPoint(point) {\n const interval = this._arcInterval();\n const intervalAngle = interval.endAngle - interval.startAngle;\n const { center, radiusX, radiusY } = this;\n const distance = center.distanceTo(point);\n const angleRad = Math.atan2(point.y - center.y, point.x - center.x);\n const pointRadius = (radiusX * radiusY) /\n Math.sqrt(pow(radiusX, 2) * pow(Math.sin(angleRad), 2) + pow(radiusY, 2) * pow(Math.cos(angleRad), 2));\n const startPoint = this.pointAt(this.startAngle).round(PRECISION);\n const endPoint = this.pointAt(this.endAngle).round(PRECISION);\n const intersection = lineIntersection(center, point.round(PRECISION), startPoint, endPoint);\n let containsPoint;\n\n if (intervalAngle < 180) {\n containsPoint = intersection && closeOrLess(center.distanceTo(intersection), distance) && closeOrLess(distance, pointRadius);\n } else {\n let angle = calculateAngle(center.x, center.y, radiusX, radiusY, point.x, point.y);\n if (angle !== 360) {\n angle = (360 + angle) % 360;\n }\n\n let inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle;\n containsPoint = (inAngleRange && closeOrLess(distance, pointRadius)) || (!inAngleRange && (!intersection || intersection.equals(point)));\n }\n return containsPoint;\n }\n\n _isOnPath(point, width) {\n const interval = this._arcInterval();\n const center = this.center;\n let angle = calculateAngle(center.x, center.y, this.radiusX, this.radiusY, point.x, point.y);\n if (angle !== 360) {\n angle = (360 + angle) % 360;\n }\n\n const inAngleRange = interval.startAngle <= angle && angle <= interval.endAngle;\n\n return inAngleRange && this.pointAt(angle).distanceTo(point) <= width;\n }\n\n static fromPoints(start, end, rx, ry, largeArc, swipe, rotation) {// eslint-disable-line max-params\n const arcParameters = normalizeArcParameters({\n x1: start.x,\n y1: start.y,\n x2: end.x,\n y2: end.y,\n rx: rx,\n ry: ry,\n largeArc: largeArc,\n swipe: swipe,\n rotation: rotation\n });\n\n return new Arc(arcParameters.center, {\n startAngle: arcParameters.startAngle,\n endAngle: arcParameters.endAngle,\n radiusX: arcParameters.radiusX,\n radiusY: arcParameters.radiusY,\n xRotation: arcParameters.xRotation,\n anticlockwise: swipe === 0\n });\n }\n}\n\nfunction calculateAngle(cx, cy, rx, ry, x, y) {\n const cos = round((x - cx) / rx, 3);\n const sin = round((y - cy) / ry, 3);\n\n return round(deg(Math.atan2(sin, cos)));\n}\n\nfunction normalizeArcParameters(parameters) {\n let { x1, y1, x2, y2, rx, ry, largeArc, swipe, rotation = 0 } = parameters;\n\n const radians = rad(rotation);\n const cosine = Math.cos(radians);\n const sine = Math.sin(radians);\n\n const xT = cosine * (x1 - x2) / 2 + sine * (y1 - y2) / 2;\n const yT = -sine * (x1 - x2) / 2 + cosine * (y1 - y2) / 2;\n\n const sign = largeArc !== swipe ? 1 : -1;\n\n const xt2 = Math.pow(xT, 2);\n const yt2 = Math.pow(yT, 2);\n let rx2 = Math.pow(rx, 2);\n let ry2 = Math.pow(ry, 2);\n\n let delta = xt2 / rx2 + yt2 / ry2;\n\n if (delta > 1) {\n delta = Math.sqrt(xt2 / rx2 + yt2 / ry2);\n rx = delta * rx;\n rx2 = Math.pow(rx, 2);\n\n ry = delta * ry;\n ry2 = Math.pow(ry, 2);\n }\n\n let constT = sign * Math.sqrt((rx2 * ry2 - rx2 * yt2 - ry2 * xt2) / (rx2 * yt2 + ry2 * xt2));\n // due to rounding errors the value could become NaN even after radii correction\n if (isNaN(constT)) {\n constT = 0;\n }\n\n const cxT = constT * (rx * yT) / ry;\n const cyT = - constT * (ry * xT) / rx;\n\n const cx = cosine * cxT - sine * cyT + (x1 + x2) / 2;\n const cy = sine * cxT + cosine * cyT + (y1 + y2) / 2;\n\n\n const uX = (xT - cxT) / rx;\n const uY = (yT - cyT) / ry;\n const vX = -(xT + cxT) / rx;\n const vY = -(yT + cyT) / ry;\n\n const startAngle = (uY >= 0 ? 1 : -1) * deg(Math.acos(uX / Math.sqrt(uX * uX + uY * uY)));\n\n const angleCosine = round((uX * vX + uY * vY) / (Math.sqrt(uX * uX + uY * uY) * Math.sqrt(vX * vX + vY * vY)), 10);\n let angle = (uX * vY - uY * vX >= 0 ? 1 : -1) * deg(Math.acos(angleCosine));\n\n if (!swipe && angle > 0) {\n angle -= 360;\n }\n\n if (swipe && angle < 0) {\n angle += 360;\n }\n let endAngle = startAngle + angle;\n const signEndAngle = endAngle >= 0 ? 1 : -1;\n endAngle = (Math.abs(endAngle) % 360) * signEndAngle;\n\n return {\n center: new Point(cx, cy),\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: rx,\n radiusY: ry,\n xRotation: rotation\n };\n}\n\nfunction bboxStartAngle(angle, start) {\n let startAngle = angle;\n\n while (startAngle < start) {\n startAngle += 90;\n }\n\n return startAngle;\n}\n\nexport default Arc;\n","import Point from '../point';\n\nexport default function lineIntersection(p0, p1, p2, p3) {\n const s1x = p1.x - p0.x;\n const s2x = p3.x - p2.x;\n const s1y = p1.y - p0.y;\n const s2y = p3.y - p2.y;\n const nx = p0.x - p2.x;\n const ny = p0.y - p2.y;\n const d = s1x * s2y - s2x * s1y;\n const s = (s1x * ny - s1y * nx) / d;\n const t = (s2x * ny - s2y * nx) / d;\n\n if (s >= 0 && s <= 1 && t >= 0 && t <= 1) {\n return new Point(p0.x + t * s1x, p0.y + t * s1y);\n }\n}","import withAccessors from '../mixins/with-accessors';\nimport Point from './point';\nimport Rect from './rect';\nimport ellipseExtremeAngles from './math/ellipse-extreme-angles';\nimport HasObservers from '../core/has-observers';\nimport { rad } from '../util';\n\n\nconst PI_DIV_2 = Math.PI / 2;\n\nclass Circle extends withAccessors(HasObservers, [ \"radius\" ]) {\n constructor(center = new Point(), radius = 0) {\n super();\n\n this.setCenter(center);\n this.setRadius(radius);\n }\n\n setCenter(value) {\n this._observerField(\"center\", Point.create(value));\n this.geometryChange();\n return this;\n }\n\n getCenter() {\n return this.center;\n }\n\n equals(other) {\n return other &&\n other.center.equals(this.center) &&\n other.radius === this.radius;\n }\n\n clone() {\n return new Circle(this.center.clone(), this.radius);\n }\n\n pointAt(angle) {\n return this._pointAt(rad(angle));\n }\n\n bbox(matrix) {\n const extremeAngles = ellipseExtremeAngles(this.center, this.radius, this.radius, matrix);\n let minPoint = Point.maxPoint();\n let maxPoint = Point.minPoint();\n\n for (let i = 0; i < 4; i++) {\n let currentPointX = this._pointAt(extremeAngles.x + i * PI_DIV_2).transformCopy(matrix);\n let currentPointY = this._pointAt(extremeAngles.y + i * PI_DIV_2).transformCopy(matrix);\n let currentPoint = new Point(currentPointX.x, currentPointY.y);\n\n minPoint = Point.min(minPoint, currentPoint);\n maxPoint = Point.max(maxPoint, currentPoint);\n }\n\n return Rect.fromPoints(minPoint, maxPoint);\n }\n\n _pointAt(angle) {\n const { center, radius } = this;\n\n return new Point(\n center.x + radius * Math.cos(angle),\n center.y + radius * Math.sin(angle)\n );\n }\n\n containsPoint(point) {\n const { center, radius } = this;\n const inCircle = Math.pow(point.x - center.x, 2) +\n Math.pow(point.y - center.y, 2) <= Math.pow(radius, 2);\n return inCircle;\n }\n\n _isOnPath(point, width) {\n const { center, radius } = this;\n const pointDistance = center.distanceTo(point);\n\n return radius - width <= pointDistance && pointDistance <= radius + width;\n }\n}\n\nexport default Circle;\n","const PRECISION = 10;\n\nexport { PRECISION };","import { PRECISION } from '../constants';\n\nimport { round } from '../../util';\n\nexport default function close(a, b, tolerance = PRECISION) {\n return round(Math.abs(a - b), tolerance) === 0;\n}","export default function ellipseExtremeAngles(center, rx, ry, matrix) {\n let extremeX = 0;\n let extremeY = 0;\n\n if (matrix) {\n extremeX = Math.atan2(matrix.c * ry, matrix.a * rx);\n if (matrix.b !== 0) {\n extremeY = Math.atan2(matrix.d * ry, matrix.b * rx);\n }\n }\n\n return {\n x: extremeX,\n y: extremeY\n };\n}","export default function lineIntersectionsCount(a, b, point) {\n let intersects;\n if (a.x !== b.x) {\n const minX = Math.min(a.x, b.x);\n const maxX = Math.max(a.x, b.x);\n const minY = Math.min(a.y, b.y);\n const maxY = Math.max(a.y, b.y);\n const inRange = minX <= point.x && point.x < maxX;\n\n if (minY === maxY) {\n intersects = point.y <= minY && inRange;\n } else {\n intersects = inRange && (((maxY - minY) * ((a.x - b.x) * (a.y - b.y) > 0 ? point.x - minX : maxX - point.x)) / (maxX - minX) + minY - point.y) >= 0;\n }\n }\n\n return intersects ? 1 : 0;\n}","import { Class } from '../common';\nimport defined from '../util/defined';\nimport rad from '../util/rad';\nimport round from '../util/round';\n\nclass Matrix extends Class {\n\n constructor(a = 0, b = 0, c = 0, d = 0, e = 0, f = 0) {\n super();\n\n this.a = a;\n this.b = b;\n this.c = c;\n this.d = d;\n this.e = e;\n this.f = f;\n }\n\n multiplyCopy(matrix) {\n return new Matrix(\n this.a * matrix.a + this.c * matrix.b,\n this.b * matrix.a + this.d * matrix.b,\n this.a * matrix.c + this.c * matrix.d,\n this.b * matrix.c + this.d * matrix.d,\n this.a * matrix.e + this.c * matrix.f + this.e,\n this.b * matrix.e + this.d * matrix.f + this.f\n );\n }\n\n invert() {\n const { a, b, c: d, d: e, e: g, f: h } = this;\n const det = a * e - b * d;\n\n if (det === 0) {\n return null;\n }\n\n return new Matrix(e / det, -b / det, -d / det, a / det,\n (d * h - e * g) / det, (b * g - a * h) / det);\n }\n\n clone() {\n return new Matrix(this.a, this.b, this.c, this.d, this.e, this.f);\n }\n\n equals(other) {\n if (!other) {\n return false;\n }\n\n return this.a === other.a && this.b === other.b &&\n this.c === other.c && this.d === other.d &&\n this.e === other.e && this.f === other.f;\n }\n\n round(precision) {\n this.a = round(this.a, precision);\n this.b = round(this.b, precision);\n this.c = round(this.c, precision);\n this.d = round(this.d, precision);\n this.e = round(this.e, precision);\n this.f = round(this.f, precision);\n\n return this;\n }\n\n toArray(precision) {\n const result = [ this.a, this.b, this.c, this.d, this.e, this.f ];\n\n if (defined(precision)) {\n for (let i = 0; i < result.length; i++) {\n result[i] = round(result[i], precision);\n }\n }\n\n return result;\n }\n\n toString(precision, separator = \",\") {\n return this.toArray(precision).join(separator);\n }\n\n static translate(x, y) {\n return new Matrix(1, 0, 0, 1, x, y);\n }\n\n static unit() {\n return new Matrix(1, 0, 0, 1, 0, 0);\n }\n\n static rotate(angle, x, y) {\n const matrix = new Matrix();\n matrix.a = Math.cos(rad(angle));\n matrix.b = Math.sin(rad(angle));\n matrix.c = -matrix.b;\n matrix.d = matrix.a;\n matrix.e = (x - x * matrix.a + y * matrix.b) || 0;\n matrix.f = (y - y * matrix.a - x * matrix.b) || 0;\n\n return matrix;\n }\n\n static scale(scaleX, scaleY) {\n return new Matrix(scaleX, 0, 0, scaleY, 0, 0);\n }\n}\n\nMatrix.IDENTITY = Matrix.unit();\n\nexport default Matrix;\n","import withAccessors from '../mixins/with-accessors';\nimport HasObservers from '../core/has-observers';\nimport { defined, MIN_NUM, MAX_NUM, round } from '../util';\nimport Matrix from './matrix';\nimport toMatrix from './to-matrix';\n\n\nclass Point extends withAccessors(HasObservers, [ \"x\", \"y\" ]) {\n constructor(x, y) {\n super();\n\n this.x = x || 0;\n this.y = y || 0;\n }\n\n equals(other) {\n return other && other.x === this.x && other.y === this.y;\n }\n\n clone() {\n return new Point(this.x, this.y);\n }\n\n rotate(angle, origin) {\n const originPoint = Point.create(origin) || Point.ZERO;\n\n return this.transform(Matrix.rotate(angle, originPoint.x, originPoint.y));\n }\n\n translate(x, y) {\n this.x += x;\n this.y += y;\n\n this.geometryChange();\n\n return this;\n }\n\n translateWith(point) {\n return this.translate(point.x, point.y);\n }\n\n move(x, y) {\n this.x = this.y = 0;\n return this.translate(x, y);\n }\n\n scale(scaleX, scaleY = scaleX) {\n this.x *= scaleX;\n this.y *= scaleY;\n\n this.geometryChange();\n\n return this;\n }\n\n scaleCopy(scaleX, scaleY) {\n return this.clone().scale(scaleX, scaleY);\n }\n\n transform(transformation) {\n const matrix = toMatrix(transformation);\n const { x, y } = this;\n\n this.x = matrix.a * x + matrix.c * y + matrix.e;\n this.y = matrix.b * x + matrix.d * y + matrix.f;\n\n this.geometryChange();\n\n return this;\n }\n\n transformCopy(transformation) {\n const point = this.clone();\n\n if (transformation) {\n point.transform(transformation);\n }\n\n return point;\n }\n\n distanceTo(point) {\n const dx = this.x - point.x;\n const dy = this.y - point.y;\n\n return Math.sqrt(dx * dx + dy * dy);\n }\n\n round(digits) {\n this.x = round(this.x, digits);\n this.y = round(this.y, digits);\n\n this.geometryChange();\n\n return this;\n }\n\n toArray(digits) {\n const doRound = defined(digits);\n const x = doRound ? round(this.x, digits) : this.x;\n const y = doRound ? round(this.y, digits) : this.y;\n\n return [ x, y ];\n }\n\n toString(digits, separator = \" \") {\n let { x, y } = this;\n\n if (defined(digits)) {\n x = round(x, digits);\n y = round(y, digits);\n }\n\n return x + separator + y;\n }\n\n static create(arg0, arg1) {\n if (defined(arg0)) {\n if (arg0 instanceof Point) {\n return arg0;\n } else if (arguments.length === 1 && arg0.length === 2) {\n return new Point(arg0[0], arg0[1]);\n }\n\n return new Point(arg0, arg1);\n }\n }\n\n static min() {\n let minX = MAX_NUM;\n let minY = MAX_NUM;\n\n for (let i = 0; i < arguments.length; i++) {\n let point = arguments[i];\n minX = Math.min(point.x, minX);\n minY = Math.min(point.y, minY);\n }\n\n return new Point(minX, minY);\n }\n\n static max() {\n let maxX = MIN_NUM;\n let maxY = MIN_NUM;\n\n for (let i = 0; i < arguments.length; i++) {\n const point = arguments[i];\n maxX = Math.max(point.x, maxX);\n maxY = Math.max(point.y, maxY);\n }\n\n return new Point(maxX, maxY);\n }\n\n static minPoint() {\n return new Point(MIN_NUM, MIN_NUM);\n }\n\n static maxPoint() {\n return new Point(MAX_NUM, MAX_NUM);\n }\n\n static get ZERO() {\n return new Point(0, 0);\n }\n}\n\nexport default Point;\n","import HasObservers from '../core/has-observers';\nimport Point from './point';\nimport Size from './size';\n\nclass Rect extends HasObservers {\n constructor(origin = new Point(), size = new Size(), cornerRadius = 0) {\n super();\n\n this.setOrigin(origin);\n this.setSize(size);\n this.setCornerRadius(cornerRadius);\n }\n\n clone() {\n return new Rect(\n this.origin.clone(),\n this.size.clone()\n );\n }\n\n equals(other) {\n return other &&\n other.origin.equals(this.origin) &&\n other.size.equals(this.size);\n }\n\n setOrigin(value) {\n this._observerField(\"origin\", Point.create(value));\n this.geometryChange();\n return this;\n }\n\n getOrigin() {\n return this.origin;\n }\n\n setCornerRadius(radius) {\n this.cornerRadius = Array.isArray(radius) ? radius : [ radius, radius ];\n\n this.geometryChange();\n return this;\n }\n\n getCornerRadius() {\n return this.cornerRadius;\n }\n\n setSize(value) {\n this._observerField(\"size\", Size.create(value));\n this.geometryChange();\n return this;\n }\n\n getSize() {\n return this.size;\n }\n\n width() {\n return this.size.width;\n }\n\n height() {\n return this.size.height;\n }\n\n topLeft() {\n return this.origin.clone();\n }\n\n bottomRight() {\n return this.origin.clone().translate(this.width(), this.height());\n }\n\n topRight() {\n return this.origin.clone().translate(this.width(), 0);\n }\n\n bottomLeft() {\n return this.origin.clone().translate(0, this.height());\n }\n\n center() {\n return this.origin.clone().translate(this.width() / 2, this.height() / 2);\n }\n\n bbox(matrix) {\n const tl = this.topLeft().transformCopy(matrix);\n const tr = this.topRight().transformCopy(matrix);\n const br = this.bottomRight().transformCopy(matrix);\n const bl = this.bottomLeft().transformCopy(matrix);\n\n return Rect.fromPoints(tl, tr, br, bl);\n }\n\n transformCopy(m) {\n return Rect.fromPoints(\n this.topLeft().transform(m),\n this.bottomRight().transform(m)\n );\n }\n\n expand(x, y = x) {\n\n this.size.width += 2 * x;\n this.size.height += 2 * y;\n\n this.origin.translate(-x, -y);\n\n return this;\n }\n\n expandCopy(x, y) {\n return this.clone().expand(x, y);\n }\n\n containsPoint(point) {\n const origin = this.origin;\n const bottomRight = this.bottomRight();\n return !(point.x < origin.x || point.y < origin.y || bottomRight.x < point.x || bottomRight.y < point.y);\n }\n\n _isOnPath(point, width) {\n const rectOuter = this.expandCopy(width, width);\n const rectInner = this.expandCopy(-width, -width);\n\n return rectOuter.containsPoint(point) && !rectInner.containsPoint(point);\n }\n\n static fromPoints() {\n const topLeft = Point.min.apply(null, arguments);\n const bottomRight = Point.max.apply(null, arguments);\n const size = new Size(\n bottomRight.x - topLeft.x,\n bottomRight.y - topLeft.y\n );\n\n return new Rect(topLeft, size);\n }\n\n static union(a, b) {\n return Rect.fromPoints(\n Point.min(a.topLeft(), b.topLeft()),\n Point.max(a.bottomRight(), b.bottomRight())\n );\n }\n\n static intersect(a, b) {\n const rect1 = {\n left: a.topLeft().x,\n top: a.topLeft().y,\n right: a.bottomRight().x,\n bottom: a.bottomRight().y\n };\n\n const rect2 = {\n left: b.topLeft().x,\n top: b.topLeft().y,\n right: b.bottomRight().x,\n bottom: b.bottomRight().y\n };\n\n if (rect1.left <= rect2.right &&\n rect2.left <= rect1.right &&\n rect1.top <= rect2.bottom &&\n rect2.top <= rect1.bottom) {\n return Rect.fromPoints(\n new Point(Math.max(rect1.left, rect2.left), Math.max(rect1.top, rect2.top)),\n new Point(Math.min(rect1.right, rect2.right), Math.min(rect1.bottom, rect2.bottom))\n );\n }\n }\n}\n\nexport default Rect;\n","import { deg } from '../../util';\nimport transform from '../transform';\n\nexport default function isOutOfEndPoint(endPoint, controlPoint, point) {\n const angle = deg(Math.atan2(controlPoint.y - endPoint.y, controlPoint.x - endPoint.x));\n const rotatedPoint = point.transformCopy(transform().rotate(-angle, endPoint));\n\n return rotatedPoint.x < endPoint.x;\n}","export default function calculateCurveAt(t, field, points) {\n const t1 = 1 - t;\n return Math.pow(t1, 3) * points[0][field] +\n 3 * Math.pow(t1, 2) * t * points[1][field] +\n 3 * Math.pow(t, 2) * t1 * points[2][field] +\n Math.pow(t, 3) * points[3][field];\n}","export default function toCubicPolynomial(points, field) {\n return [ -points[0][field] + 3 * points[1][field] - 3 * points[2][field] + points[3][field],\n 3 * (points[0][field] - 2 * points[1][field] + points[2][field]),\n 3 * (-points[0][field] + points[1][field]),\n points[0][field]\n ];\n}","import { PRECISION } from '../constants';\nimport { Class } from '../../common';\nimport { round } from '../../util';\n\nclass ComplexNumber extends Class {\n\n constructor(real = 0, img = 0) {\n super();\n\n this.real = real;\n this.img = img;\n }\n\n add(cNumber) {\n return new ComplexNumber(round(this.real + cNumber.real, PRECISION), round(this.img + cNumber.img, PRECISION));\n }\n\n addConstant(value) {\n return new ComplexNumber(this.real + value, this.img);\n }\n\n negate() {\n return new ComplexNumber(-this.real, -this.img);\n }\n\n multiply(cNumber) {\n return new ComplexNumber(this.real * cNumber.real - this.img * cNumber.img,\n this.real * cNumber.img + this.img * cNumber.real);\n }\n\n multiplyConstant(value) {\n return new ComplexNumber(this.real * value, this.img * value);\n }\n\n nthRoot(n) {\n const rad = Math.atan2(this.img, this.real);\n const r = Math.sqrt(Math.pow(this.img, 2) + Math.pow(this.real, 2));\n const nthR = Math.pow(r, 1 / n);\n\n return new ComplexNumber(nthR * Math.cos(rad / n), nthR * Math.sin(rad / n)); //Moivre's formula\n }\n\n equals(cNumber) {\n return this.real === cNumber.real && this.img === cNumber.img;\n }\n\n isReal() {\n return this.img === 0;\n }\n}\n\nexport default ComplexNumber;","import ComplexNumber from './complex-number';\nimport { PRECISION } from '../constants';\nimport { round } from '../../util';\n\nfunction numberSign(x) {\n return x < 0 ? -1 : 1;\n}\n\nfunction solveQuadraticEquation(a, b, c) {\n const squareRoot = Math.sqrt(Math.pow(b, 2) - 4 * a * c);\n return [\n (-b + squareRoot) / (2 * a),\n (-b - squareRoot) / (2 * a)\n ];\n}\n\n//Cardano's formula\nexport default function solveCubicEquation(a, b, c, d) {\n if (a === 0) {\n return solveQuadraticEquation(b, c, d);\n }\n\n const p = (3 * a * c - Math.pow(b, 2)) / (3 * Math.pow(a, 2));\n const q = (2 * Math.pow(b, 3) - 9 * a * b * c + 27 * Math.pow(a, 2) * d) / (27 * Math.pow(a, 3));\n const Q = Math.pow(p / 3, 3) + Math.pow(q / 2, 2);\n const i = new ComplexNumber(0,1);\n const b3a = -b / (3 * a);\n let x1, x2, y1, y2, y3, z1, z2;\n\n if (Q < 0) {\n x1 = new ComplexNumber(-q / 2, Math.sqrt(-Q)).nthRoot(3);\n x2 = new ComplexNumber(-q / 2, - Math.sqrt(-Q)).nthRoot(3);\n } else {\n x1 = -q / 2 + Math.sqrt(Q);\n x1 = new ComplexNumber(numberSign(x1) * Math.pow(Math.abs(x1), 1 / 3));\n x2 = -q / 2 - Math.sqrt(Q);\n x2 = new ComplexNumber(numberSign(x2) * Math.pow(Math.abs(x2), 1 / 3));\n }\n\n y1 = x1.add(x2);\n\n z1 = x1.add(x2).multiplyConstant(-1 / 2);\n z2 = x1.add(x2.negate()).multiplyConstant(Math.sqrt(3) / 2);\n\n y2 = z1.add(i.multiply(z2));\n y3 = z1.add(i.negate().multiply(z2));\n\n const result = [];\n\n if (y1.isReal()) {\n result.push(round(y1.real + b3a, PRECISION));\n }\n if (y2.isReal()) {\n result.push(round(y2.real + b3a, PRECISION));\n }\n if (y3.isReal()) {\n result.push(round(y3.real + b3a, PRECISION));\n }\n\n return result;\n}","import toCubicPolynomial from './to-cubic-polynomial';\nimport solveCubicEquation from './solve-cubic-equation';\nimport calculateCurveAt from './calculate-curve-at';\n\nexport default function hasRootsInRange(points, point, field, rootField, range) {\n const polynomial = toCubicPolynomial(points, rootField);\n const roots = solveCubicEquation(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point[rootField]);\n let intersection;\n\n for (let idx = 0; idx < roots.length; idx++) {\n if (0 <= roots[idx] && roots[idx] <= 1) {\n intersection = calculateCurveAt(roots[idx], field, points);\n if (Math.abs(intersection - point[field]) <= range) {\n return true;\n }\n }\n }\n}","import HasObservers from '../core/has-observers';\nimport Rect from './rect';\nimport Point from './point';\nimport transform from './transform';\nimport { deg, MIN_NUM, MAX_NUM } from '../util';\nimport isOutOfEndPoint from './math/is-out-of-end-point';\nimport calculateCurveAt from './math/calculate-curve-at';\nimport hasRootsInRange from './math/has-roots-in-range';\nimport curveIntersectionsCount from './math/curve-intersections-count';\nimport lineIntersectionsCount from './math/line-intersections-count';\nimport withPoints from '../mixins/with-points';\n\n\nconst points = [ \"anchor\", \"controlIn\", \"controlOut\" ];\n\nclass Segment extends withPoints(HasObservers, points) {\n constructor(anchor, controlIn, controlOut) {\n super();\n\n this.anchor(anchor || new Point());\n this.controlIn(controlIn);\n this.controlOut(controlOut);\n }\n\n bboxTo(toSegment, matrix) {\n const segmentAnchor = this.anchor().transformCopy(matrix);\n const toSegmentAnchor = toSegment.anchor().transformCopy(matrix);\n let rect;\n\n if (this.controlOut() && toSegment.controlIn()) {\n rect = this._curveBoundingBox(\n segmentAnchor, this.controlOut().transformCopy(matrix),\n toSegment.controlIn().transformCopy(matrix), toSegmentAnchor\n );\n } else {\n rect = this._lineBoundingBox(segmentAnchor, toSegmentAnchor);\n }\n\n return rect;\n }\n\n _lineBoundingBox(p1, p2) {\n return Rect.fromPoints(p1, p2);\n }\n\n _curveBoundingBox(p1, cp1, cp2, p2) {\n const points = [ p1, cp1, cp2, p2 ];\n const extremesX = this._curveExtremesFor(points, \"x\");\n const extremesY = this._curveExtremesFor(points, \"y\");\n const xLimits = arrayLimits([ extremesX.min, extremesX.max, p1.x, p2.x ]);\n const yLimits = arrayLimits([ extremesY.min, extremesY.max, p1.y, p2.y ]);\n\n return Rect.fromPoints(new Point(xLimits.min, yLimits.min), new Point(xLimits.max, yLimits.max));\n }\n\n _curveExtremesFor(points, field) {\n const extremes = this._curveExtremes(\n points[0][field], points[1][field],\n points[2][field], points[3][field]\n );\n\n return {\n min: calculateCurveAt(extremes.min, field, points),\n max: calculateCurveAt(extremes.max, field, points)\n };\n }\n\n _curveExtremes(x1, x2, x3, x4) {\n const a = x1 - 3 * x2 + 3 * x3 - x4;\n const b = - 2 * (x1 - 2 * x2 + x3);\n const c = x1 - x2;\n const sqrt = Math.sqrt(b * b - 4 * a * c);\n let t1 = 0;\n let t2 = 1;\n\n if (a === 0) {\n if (b !== 0) {\n t1 = t2 = -c / b;\n }\n } else if (!isNaN(sqrt)) {\n t1 = (- b + sqrt) / (2 * a);\n t2 = (- b - sqrt) / (2 * a);\n }\n\n let min = Math.max(Math.min(t1, t2), 0);\n if (min < 0 || min > 1) {\n min = 0;\n }\n\n let max = Math.min(Math.max(t1, t2), 1);\n if (max > 1 || max < 0) {\n max = 1;\n }\n\n return {\n min: min,\n max: max\n };\n }\n\n _intersectionsTo(segment, point) {\n let intersectionsCount;\n if (this.controlOut() && segment.controlIn()) {\n intersectionsCount = curveIntersectionsCount([ this.anchor(), this.controlOut(), segment.controlIn(), segment.anchor() ], point, this.bboxTo(segment));\n } else {\n intersectionsCount = lineIntersectionsCount(this.anchor(), segment.anchor(), point);\n }\n return intersectionsCount;\n }\n\n _isOnCurveTo(segment, point, width, endSegment) {\n const bbox = this.bboxTo(segment).expand(width, width);\n if (bbox.containsPoint(point)) {\n const p1 = this.anchor();\n const p2 = this.controlOut();\n const p3 = segment.controlIn();\n const p4 = segment.anchor();\n\n if (endSegment === \"start\" && p1.distanceTo(point) <= width) {\n return !isOutOfEndPoint(p1, p2, point);\n } else if (endSegment === \"end\" && p4.distanceTo(point) <= width) {\n return !isOutOfEndPoint(p4, p3, point);\n }\n\n //the approach is not entirely correct but is close and the alternatives are solving a 6th degree polynomial or testing the segment points\n const points = [ p1, p2, p3, p4 ];\n if (hasRootsInRange(points, point, \"x\", \"y\", width) || hasRootsInRange(points, point, \"y\", \"x\", width)) {\n return true;\n }\n const rotation = transform().rotate(45, point);\n const rotatedPoints = [ p1.transformCopy(rotation), p2.transformCopy(rotation), p3.transformCopy(rotation), p4.transformCopy(rotation) ];\n return hasRootsInRange(rotatedPoints, point, \"x\", \"y\", width) || hasRootsInRange(rotatedPoints, point, \"y\", \"x\", width);\n }\n }\n\n _isOnLineTo(segment, point, width) {\n const p1 = this.anchor();\n const p2 = segment.anchor();\n const angle = deg(Math.atan2(p2.y - p1.y, p2.x - p1.x));\n const rect = new Rect([ p1.x, p1.y - width / 2 ], [ p1.distanceTo(p2), width ]);\n return rect.containsPoint(point.transformCopy(transform().rotate(-angle, p1)));\n }\n\n _isOnPathTo(segment, point, width, endSegment) {\n let isOnPath;\n if (this.controlOut() && segment.controlIn()) {\n isOnPath = this._isOnCurveTo(segment, point, width / 2, endSegment);\n } else {\n isOnPath = this._isOnLineTo(segment, point, width);\n }\n return isOnPath;\n }\n}\n\nfunction arrayLimits(arr) {\n let length = arr.length;\n let min = MAX_NUM;\n let max = MIN_NUM;\n\n for (let i = 0; i < length; i ++) {\n max = Math.max(max, arr[i]);\n min = Math.min(min, arr[i]);\n }\n\n return {\n min: min,\n max: max\n };\n}\n\nexport default Segment;\n","import toCubicPolynomial from './to-cubic-polynomial';\nimport solveCubicEquation from './solve-cubic-equation';\nimport calculateCurveAt from './calculate-curve-at';\nimport close from './close';\n\nexport default function curveIntersectionsCount(points, point, bbox) {\n const polynomial = toCubicPolynomial(points, \"x\");\n const roots = solveCubicEquation(polynomial[0], polynomial[1], polynomial[2], polynomial[3] - point.x);\n let rayIntersection, intersectsRay;\n let count = 0;\n for (let i = 0; i < roots.length; i++) {\n rayIntersection = calculateCurveAt(roots[i], \"y\", points);\n intersectsRay = close(rayIntersection, point.y) || rayIntersection > point.y;\n if (intersectsRay && (((roots[i] === 0 || roots[i] === 1) && bbox.bottomRight().x > point.x) || (0 < roots[i] && roots[i] < 1))) {\n count++;\n }\n }\n\n return count;\n}","import HasObservers from '../core/has-observers';\nimport withAccessors from '../mixins/with-accessors';\nimport { defined, round } from '../util';\n\n\nclass Size extends withAccessors(HasObservers, [ \"width\", \"height\" ]) {\n constructor(width, height) {\n super();\n\n this.width = width || 0;\n this.height = height || 0;\n }\n\n equals(other) {\n return other && other.width === this.width && other.height === this.height;\n }\n\n clone() {\n return new Size(this.width, this.height);\n }\n\n toArray(digits) {\n const doRound = defined(digits);\n const width = doRound ? round(this.width, digits) : this.width;\n const height = doRound ? round(this.height, digits) : this.height;\n\n return [ width, height ];\n }\n\n static create(arg0, arg1) {\n if (defined(arg0)) {\n if (arg0 instanceof Size) {\n return arg0;\n } else if (arguments.length === 1 && arg0.length === 2) {\n return new Size(arg0[0], arg0[1]);\n }\n\n return new Size(arg0, arg1);\n }\n }\n\n static get ZERO() {\n return new Size(0, 0);\n }\n}\n\nexport default Size;\n","export default function toMatrix(transformation) {\n if (transformation && typeof transformation.matrix === \"function\") {\n return transformation.matrix();\n }\n\n return transformation;\n}","import HasObservers from '../core/has-observers';\nimport toMatrix from './to-matrix';\nimport Matrix from './matrix';\nimport Point from './point';\n\nclass Transformation extends HasObservers {\n constructor(matrix = Matrix.unit()) {\n super();\n\n this._matrix = matrix;\n }\n\n clone() {\n return new Transformation(\n this._matrix.clone()\n );\n }\n\n equals(other) {\n return other &&\n other._matrix.equals(this._matrix);\n }\n\n translate(x, y) {\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(x, y));\n\n this._optionsChange();\n return this;\n }\n\n scale(scaleX, scaleY = scaleX, origin = null) {\n let originPoint = origin;\n\n if (originPoint) {\n originPoint = Point.create(originPoint);\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(originPoint.x, originPoint.y));\n }\n\n this._matrix = this._matrix.multiplyCopy(Matrix.scale(scaleX, scaleY));\n\n if (originPoint) {\n this._matrix = this._matrix.multiplyCopy(Matrix.translate(-originPoint.x, -originPoint.y));\n }\n\n this._optionsChange();\n return this;\n }\n\n rotate(angle, origin) {\n const originPoint = Point.create(origin) || Point.ZERO;\n\n this._matrix = this._matrix.multiplyCopy(Matrix.rotate(angle, originPoint.x, originPoint.y));\n\n this._optionsChange();\n return this;\n }\n\n multiply(transformation) {\n const matrix = toMatrix(transformation);\n\n this._matrix = this._matrix.multiplyCopy(matrix);\n\n this._optionsChange();\n return this;\n }\n\n matrix(value) {\n if (value) {\n this._matrix = value;\n this._optionsChange();\n return this;\n }\n\n return this._matrix;\n }\n\n _optionsChange() {\n this.optionsChange({\n field: \"transform\",\n value: this\n });\n }\n}\n\nexport default Transformation;\n","import Transformation from './transformation';\n\nexport default function transform(matrix) {\n if (matrix === null) {\n return null;\n }\n\n if (matrix instanceof Transformation) {\n return matrix;\n }\n\n return new Transformation(matrix);\n}","import ElementsArray from '../shapes/elements-array';\n\nclass StopsArray extends ElementsArray {\n _change() {\n this.optionsChange({\n field: \"stops\"\n });\n }\n}\n\nexport default StopsArray;","import { defined } from '../util';\n\nfunction optionsAccessor(name) {\n return function(value) {\n if (defined(value)) {\n this.options.set(name, value);\n return this;\n }\n\n return this.options.get(name);\n };\n}\n\nfunction defineOptionsAccessors(fn, names) {\n for (let i = 0; i < names.length; i++) {\n fn[names[i]] = optionsAccessor(names[i]);\n }\n}\n\nconst withOptions = (TBase, names) => {\n const result = class extends TBase {};\n defineOptionsAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withOptions;\n","import OptionsStore from '../core/options-store';\nimport withOptions from '../mixins/with-options';\nimport HasObservers from '../core/has-observers';\nimport { defined } from '../util';\n\n\nconst options = [ \"offset\", \"color\", \"opacity\" ];\n\nclass GradientStop extends withOptions(HasObservers, options) {\n constructor(offset, color, opacity) {\n super();\n\n this.options = new OptionsStore({\n offset: offset,\n color: color,\n opacity: defined(opacity) ? opacity : 1\n });\n\n this.options.addObserver(this);\n }\n\n static create(arg) {\n if (defined(arg)) {\n let stop;\n if (arg instanceof GradientStop) {\n stop = arg;\n } else if (arg.length > 1) {\n stop = new GradientStop(arg[0], arg[1], arg[2]);\n } else {\n stop = new GradientStop(arg.offset, arg.color, arg.opacity);\n }\n\n return stop;\n }\n }\n}\n\nexport default GradientStop;\n","import StopsArray from './stops-array';\nimport GradientStop from './gradient-stop';\nimport HasObservers from '../core/has-observers';\nimport { defined, definitionId } from '../util';\n\nclass Gradient extends HasObservers {\n get nodeType() {\n return \"Gradient\";\n }\n\n constructor(options = {}) {\n super();\n\n this.stops = new StopsArray(this._createStops(options.stops));\n this.stops.addObserver(this);\n this._userSpace = options.userSpace;\n this.id = definitionId();\n }\n\n userSpace(value) {\n if (defined(value)) {\n this._userSpace = value;\n this.optionsChange();\n return this;\n }\n\n return this._userSpace;\n }\n\n _createStops(stops = []) {\n const result = [];\n for (let idx = 0; idx < stops.length; idx++) {\n result.push(GradientStop.create(stops[idx]));\n }\n\n return result;\n }\n\n addStop(offset, color, opacity) {\n this.stops.push(new GradientStop(offset, color, opacity));\n }\n\n removeStop(stop) {\n const index = this.stops.indexOf(stop);\n if (index >= 0) {\n this.stops.splice(index, 1);\n }\n }\n\n optionsChange(e) {\n this.trigger(\"optionsChange\", {\n field: \"gradient\" + (e ? \".\" + e.field : \"\"),\n value: this\n });\n }\n\n geometryChange() {\n this.optionsChange();\n }\n}\n\nexport default Gradient;\n","import withPoints from '../mixins/with-points';\nimport Point from '../geometry/point';\nimport Gradient from './gradient';\n\n\nconst points = [ \"start\", \"end\" ];\n\nclass LinearGradient extends withPoints(Gradient, points) {\n constructor(options = {}) {\n super(options);\n\n this.start(options.start || new Point());\n this.end(options.end || new Point(1, 0));\n }\n}\n\nexport default LinearGradient;\n","import withPoints from '../mixins/with-points';\nimport Point from '../geometry/point';\nimport Gradient from './gradient';\nimport { defined } from '../util';\n\n\nclass RadialGradient extends withPoints(Gradient, [ \"center\" ]) {\n constructor(options = {}) {\n super(options);\n\n this.center(options.center || new Point());\n this._radius = defined(options.radius) ? options.radius : 1;\n this._fallbackFill = options.fallbackFill;\n }\n\n radius(value) {\n if (defined(value)) {\n this._radius = value;\n this.geometryChange();\n return this;\n }\n\n return this._radius;\n }\n\n fallbackFill(value) {\n if (defined(value)) {\n this._fallbackFill = value;\n this.optionsChange();\n return this;\n }\n\n return this._fallbackFill;\n }\n}\n\nexport default RadialGradient;\n","/* eslint-disable key-spacing,no-multi-spaces,no-param-reassign */\n\nconst literals = {\n 1 : \"i\", 10 : \"x\", 100 : \"c\",\n 2 : \"ii\", 20 : \"xx\", 200 : \"cc\",\n 3 : \"iii\", 30 : \"xxx\", 300 : \"ccc\",\n 4 : \"iv\", 40 : \"xl\", 400 : \"cd\",\n 5 : \"v\", 50 : \"l\", 500 : \"d\",\n 6 : \"vi\", 60 : \"lx\", 600 : \"dc\",\n 7 : \"vii\", 70 : \"lxx\", 700 : \"dcc\",\n 8 : \"viii\", 80 : \"lxxx\", 800 : \"dccc\",\n 9 : \"ix\", 90 : \"xc\", 900 : \"cm\",\n 1000 : \"m\"\n};\n\nexport default function arabicToRoman(n) {\n const values = [ 1000,\n 900 , 800, 700, 600, 500, 400, 300, 200, 100,\n 90 , 80 , 70 , 60 , 50 , 40 , 30 , 20 , 10 ,\n 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 ];\n\n let roman = \"\";\n while (n > 0) {\n if (n < values[0]) {\n values.shift();\n } else {\n roman += literals[values[0]];\n n -= values[0];\n }\n }\n return roman;\n}\n","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n// mergeSort is stable.\nexport default function mergeSort(a, cmp) {\n if (a.length < 2) {\n return a.slice();\n }\n function merge(a, b) {\n var r = [], ai = 0, bi = 0, i = 0;\n while (ai < a.length && bi < b.length) {\n if (cmp(a[ai], b[bi]) <= 0) {\n r[i++] = a[ai++];\n } else {\n r[i++] = b[bi++];\n }\n }\n if (ai < a.length) {\n r.push.apply(r, a.slice(ai));\n }\n if (bi < b.length) {\n r.push.apply(r, b.slice(bi));\n }\n return r;\n }\n return (function sort(a) {\n if (a.length <= 1) {\n return a;\n }\n var m = Math.floor(a.length / 2);\n var left = a.slice(0, m);\n var right = a.slice(m);\n left = sort(left);\n right = sort(right);\n return merge(left, right);\n })(a);\n}","import withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport GeometryRect from '../geometry/rect';\nimport { defined } from '../util';\n\n\nclass Rect extends paintable(measurable(withGeometry(Element))) {\n get nodeType() {\n return \"Rect\";\n }\n\n constructor(geometry = new GeometryRect(), options = {}) {\n super(options);\n\n this.geometry(geometry);\n\n if (!defined(this.options.stroke)) {\n this.stroke(\"#000\");\n }\n }\n\n _bbox(matrix) {\n return this._geometry.bbox(matrix);\n }\n\n rawBBox() {\n return this._geometry.bbox();\n }\n\n _containsPoint(point) {\n return this._geometry.containsPoint(point);\n }\n\n _isOnPath(point) {\n return this.geometry()._isOnPath(point, this.options.stroke.width / 2);\n }\n}\n\nexport default Rect;\n","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty, yoda */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\nimport * as geo from \"../geometry\";\nimport * as PDF from \"../pdf\";\nimport { arabicToRoman, createPromise, measureText, mergeSort } from '../util';\nimport { parseColor as utils_parseColor, support, template as compileTemplate } from \"../common\";\nimport { Path, Text, Group, Image, Circle, Rect, LinearGradient } from \"../drawing\";\nimport { encodeBase64 } from \"../util\";\nimport { setInnerHTML, setStyle } from \"../util/element-set-styles-safe\";\n\nconst browser = support.browser || {};\n/*\n\n XXX: to test:\n\n - cloneNodes function:\n - drawing document containing canvas with page breaking\n - drawing document with named radio -s (should not clear selection)\n - IE9/IE10 don't support el.dataset; do they copy user data?\n\n - repeating table headers/footers on page breaking\n\n - forceBreak, keepTogether\n\n - avoidLinks\n\n */\n\n/* -----[ local vars ]----- */\n\nfunction slice(thing) {\n return Array.prototype.slice.call(thing);\n}\n\nvar KENDO_PSEUDO_ELEMENT = \"KENDO-PSEUDO-ELEMENT\";\nconst KENDO_BULLET_TYPE = 'data-kendo-bullet-type';\n\nvar IMAGE_CACHE = {};\n\nvar nodeInfo = {};\nnodeInfo._root = nodeInfo;\n\n/* -----[ Custom Text node to speed up rendering in PDF ]----- */\n\nconst inBrowser = typeof window !== 'undefined';\nconst microsoft = inBrowser ? browser.msie || browser.edge : false;\n\nclass TextRect extends Text {\n constructor(str, rect, options) {\n super(str, rect.getOrigin(), options);\n this._pdfRect = rect;\n }\n rect() {\n // this is the crux of it: we can avoid a call to\n // measure(), which is what the base class does, since we\n // already know the rect. measure() is s-l-o-w.\n return this._pdfRect;\n }\n rawBBox() {\n // also let's avoid creating a new rectangle.\n return this._pdfRect;\n }\n}\n\nfunction addClass(el, cls) {\n if (el.classList) {\n el.classList.add(cls);\n } else {\n el.className += \" \" + cls;\n }\n}\n\nfunction removeClass(el, cls) {\n if (el.classList) {\n el.classList.remove(cls);\n } else {\n el.className = el.className.split(/\\s+/).reduce(function(a, word){\n if (word != cls) {\n a.push(word);\n }\n return a;\n }, []).join(\" \");\n }\n}\n\nfunction setCSS(el, styles) {\n Object.keys(styles).forEach(function(key){\n el.style[key] = styles[key];\n });\n}\n\nvar matches = typeof Element !== \"undefined\" && Element.prototype && (function(p){\n if (p.matches) {\n return function(el, selector) { return el.matches(selector); };\n }\n if (p.webkitMatchesSelector) {\n return function(el, selector) { return el.webkitMatchesSelector(selector); };\n }\n if (p.mozMatchesSelector) {\n return function(el, selector) { return el.mozMatchesSelector(selector); };\n }\n if (p.msMatchesSelector) {\n return function(el, selector) { return el.msMatchesSelector(selector); };\n }\n return function(s) {\n\treturn [].indexOf.call(document.querySelectorAll(s), this) !== -1;\n };\n})(Element.prototype);\n\nfunction closest(el, selector) {\n if (el.closest) {\n return el.closest(selector);\n }\n // IE: stringifying rather than simply comparing with `document`,\n // which is not iframe-proof and fails in editor export —\n // https://github.com/telerik/kendo/issues/6721\n while (el && !/^\\[object (?:HTML)?Document\\]$/.test(String(el))) {\n if (el.nodeType == 1 /* Element */ && matches(el, selector)) {\n return el;\n }\n el = el.parentNode;\n }\n}\n\n// clone nodes ourselves, so that we redraw (DOM or\n// jQuery clone will not)\nvar cloneNodes = (function($){\n if ($) {\n // if we have Kendo and jQuery, use this version as it will\n // maintain proper links between cloned element and Kendo\n // widgets (i.e. it clones jQuery data(), which isn't the same\n // as element's data attributes).\n // https://github.com/telerik/kendo-ui-core/issues/2750\n return function cloneNodes(el) {\n var clone = el.cloneNode(false);\n if (el.nodeType == 1 /* Element */) {\n var $el = $(el), $clone = $(clone), i;\n var data = $el.data();\n for (i in data) {\n $clone.data(i, data[i]);\n }\n if (/^canvas$/i.test(el.tagName)) {\n clone.getContext(\"2d\").drawImage(el, 0, 0);\n } else if (/^(?:input|select|textarea|option)$/i.test(el.tagName)) {\n // drop the name attributes so that we don't affect the selection of the\n // original nodes (i.e. checked status of radio buttons) when we insert our copy\n // into the DOM. https://github.com/telerik/kendo/issues/5409\n clone.removeAttribute(\"id\");\n clone.removeAttribute(\"name\");\n if (!/^textarea$/i.test(el.tagName)) {\n clone.value = el.value;\n }\n clone.checked = el.checked;\n clone.selected = el.selected;\n }\n\n if (el._kendoExportVisual) {\n clone._kendoExportVisual = el._kendoExportVisual;\n }\n\n for (i = el.firstChild; i; i = i.nextSibling) {\n clone.appendChild(cloneNodes(i));\n }\n }\n return clone;\n };\n } else {\n // the no-jQuery version\n return function cloneNodes(el) {\n const clone = (function dive(node){\n const clone = node.cloneNode(false);\n if (node._kendoExportVisual) {\n clone._kendoExportVisual = node._kendoExportVisual;\n }\n for (let i = node.firstChild; i; i = i.nextSibling) {\n clone.appendChild(dive(i));\n }\n return clone;\n })(el);\n\n // re-draw canvases - https://github.com/telerik/kendo/issues/4872\n const canvases = el.querySelectorAll(\"canvas\");\n if (canvases.length) {\n slice(clone.querySelectorAll(\"canvas\")).forEach((canvas, i) => {\n canvas.getContext(\"2d\").drawImage(canvases[i], 0, 0);\n });\n }\n\n // remove \"name\" attributes from elements -\n // https://github.com/telerik/kendo/issues/5409\n const orig = el.querySelectorAll(\"input, select, textarea, option\");\n slice(clone.querySelectorAll(\"input, select, textarea, option\")).forEach((el, i) => {\n el.removeAttribute(\"id\");\n el.removeAttribute(\"name\");\n if (!/^textarea$/i.test(el.tagName)) {\n el.value = orig[i].value;\n }\n el.checked = orig[i].checked;\n el.selected = orig[i].selected;\n });\n\n return clone;\n };\n }\n})(typeof window !== \"undefined\" && window.kendo && window.kendo.jQuery);\n\nfunction getXY(thing) {\n if (typeof thing == \"number\") {\n return { x: thing, y: thing };\n }\n if (Array.isArray(thing)) {\n return { x: thing[0], y: thing[1] };\n }\n return { x: thing.x, y: thing.y };\n}\n\nfunction drawDOM(element, options) {\n if (!options) {\n options = {};\n }\n var promise = createPromise();\n\n if (!element) {\n return promise.reject(\"No element to export\");\n }\n\n if (typeof window.getComputedStyle != \"function\") {\n throw new Error(\"window.getComputedStyle is missing. You are using an unsupported browser, or running in IE8 compatibility mode. Drawing HTML is supported in Chrome, Firefox, Safari and IE9+.\");\n }\n\n PDF.defineFont(getFontFaces(element.ownerDocument));\n\n var scale = getXY(options.scale || 1);\n\n function doOne(element) {\n var group = new Group();\n\n // translate to start of page\n var pos = element.getBoundingClientRect();\n setTransform(group, [\n scale.x,\n 0,\n 0,\n scale.y,\n (-pos.left * scale.x),\n (-pos.top * scale.y)\n ]);\n\n nodeInfo._clipbox = false;\n nodeInfo._matrix = geo.Matrix.unit();\n nodeInfo._stackingContext = {\n element: element,\n group: group\n };\n\n if (options.avoidLinks === true) {\n nodeInfo._avoidLinks = \"a\";\n } else {\n nodeInfo._avoidLinks = options.avoidLinks;\n }\n\n addClass(element, \"k-pdf-export\");\n renderElement(element, group);\n removeClass(element, \"k-pdf-export\");\n\n return group;\n }\n\n cacheImages([ element ], function(){\n var forceBreak = options && options.forcePageBreak;\n var hasPaperSize = options && options.paperSize && options.paperSize != \"auto\";\n var paperOptions = PDF.getPaperOptions(function(key, def){\n if (key == \"paperSize\") {\n // PDF.getPaperOptions croaks on \"auto\", just pass dummy A4 as we might\n // still be interested in margins.\n return hasPaperSize ? options[key] : \"A4\";\n }\n return key in options ? options[key] : def;\n });\n var pageWidth = hasPaperSize && paperOptions.paperSize[0];\n var pageHeight = hasPaperSize && paperOptions.paperSize[1];\n var margin = options.margin && paperOptions.margin;\n var hasMargin = Boolean(margin);\n if (forceBreak || pageHeight) {\n if (!margin) {\n margin = { left: 0, top: 0, right: 0, bottom: 0 };\n }\n\n // we want paper size and margin to be unaffected by\n // scaling in the output, so we have to reverse-scale\n // before our calculations begin.\n if (pageWidth) { pageWidth /= scale.x; }\n if (pageHeight) { pageHeight /= scale.y; }\n margin.left /= scale.x;\n margin.right /= scale.x;\n margin.top /= scale.y;\n margin.bottom /= scale.y;\n\n var group = new Group({\n pdf: {\n multiPage : true,\n paperSize : hasPaperSize ? paperOptions.paperSize : \"auto\",\n _ignoreMargin : hasMargin // HACK! see exportPDF in pdf/drawing.js\n }\n });\n handlePageBreaks(\n function(x) {\n if (options.progress) {\n var canceled = false, pageNum = 0;\n (function next(){\n if (pageNum < x.pages.length) {\n var page = doOne(x.pages[pageNum]);\n group.append(page);\n options.progress({\n page: page,\n pageNum: ++pageNum,\n totalPages: x.pages.length,\n cancel: function() {\n canceled = true;\n }\n });\n if (!canceled) {\n setTimeout(next);\n } else {\n // XXX: should we also fail() the deferred object?\n x.container.parentNode.removeChild(x.container);\n }\n } else {\n x.container.parentNode.removeChild(x.container);\n promise.resolve(group);\n }\n })();\n } else {\n x.pages.forEach(function(page){\n group.append(doOne(page));\n });\n x.container.parentNode.removeChild(x.container);\n promise.resolve(group);\n }\n },\n element,\n forceBreak,\n pageWidth ? pageWidth - margin.left - margin.right : null,\n pageHeight ? pageHeight - margin.top - margin.bottom : null,\n margin,\n options\n );\n } else {\n promise.resolve(doOne(element));\n }\n });\n\n function makeTemplate(template) {\n if (template != null) {\n if (typeof template == \"string\") {\n template = compileTemplate(template.replace(/^\\s+|\\s+$/g, \"\"));\n }\n if (typeof template == \"function\") {\n return function(data) {\n var el = template(data);\n if (el && typeof el == \"string\") {\n var div = document.createElement(\"div\");\n setInnerHTML(div, el);\n el = div.firstElementChild;\n }\n return el;\n };\n }\n // assumed DOM element\n return function() {\n return template.cloneNode(true);\n };\n }\n }\n\n function handlePageBreaks(callback, element, forceBreak, pageWidth, pageHeight, margin, options) {\n var template = makeTemplate(options.template);\n var doc = element.ownerDocument;\n var pages = [];\n var copy = options._destructive ? element : cloneNodes(element);\n var container = doc.createElement(\"KENDO-PDF-DOCUMENT\");\n var adjust = 0;\n\n // make sure elements are at the end (Grid widget\n // places TFOOT before TBODY, tricking our algorithm to\n // insert a page break right after the header).\n // https://github.com/telerik/kendo/issues/4699\n slice(copy.querySelectorAll(\"tfoot\")).forEach(function(tfoot){\n tfoot.parentNode.appendChild(tfoot);\n });\n\n // remember the index of each LI from an ordered list.\n // we'll use it to reconstruct the proper numbering.\n slice(copy.querySelectorAll(\"ol\")).forEach(function(ol){\n slice(ol.children).forEach(function(li, index){\n li.setAttribute(\"kendo-split-index\", index);\n });\n });\n\n setCSS(container, {\n display : \"block\",\n position : \"absolute\",\n boxSizing : \"content-box\",\n left : \"-10000px\",\n top : \"-10000px\"\n });\n\n if (pageWidth) {\n // subtle: if we don't set the width *and* margins here, the layout in this\n // container will be different from the one in our final page elements, and we'll\n // split at the wrong places.\n setCSS(container, {\n width : pageWidth + \"px\",\n paddingLeft : margin.left + \"px\",\n paddingRight : margin.right + \"px\"\n });\n\n // when the first element has a margin-top (i.e. a

) the page will be\n // inadvertently enlarged by that number (the browser will report the container's\n // bounding box top to start at the element's top, rather than including its\n // margin). Adding overflow: hidden seems to fix it.\n //\n // to understand the difference, try the following snippets in your browser:\n //\n // 1.
\n //

Foo

\n //
\n //\n // 2.
\n //

Foo

\n //
\n //\n // this detail is not important when automatic page breaking is not requested, hence\n // doing it only if pageWidth is defined.\n setCSS(copy, { overflow: \"hidden\" });\n }\n\n element.parentNode.insertBefore(container, element);\n container.appendChild(copy);\n\n // With cache disabled, images will still have height zero until their `complete` attribute\n // is true. `whenImagesAreActuallyLoaded` will wait for it.\n if (options.beforePageBreak) {\n whenImagesAreActuallyLoaded([ container ], function() {\n options.beforePageBreak(container, doPageBreak);\n });\n } else {\n whenImagesAreActuallyLoaded([ container ], doPageBreak);\n }\n\n function doPageBreak() {\n if (forceBreak != \"-\" || pageHeight) {\n splitElement(copy);\n }\n\n {\n let page = makePage();\n copy.parentNode.insertBefore(page, copy);\n page.appendChild(copy);\n }\n\n if (template) {\n pages.forEach(function(page, i){\n const el = template({\n element : page,\n pageNum : i + 1,\n totalPages : pages.length\n });\n if (el) {\n page.appendChild(el);\n }\n });\n }\n\n cacheImages(pages, callback.bind(null, { pages: pages, container: container }));\n }\n\n function keepTogether(el) {\n if (options.keepTogether && matches(el, options.keepTogether) && el.offsetHeight <= pageHeight - adjust) {\n return true;\n }\n\n var tag = el.tagName;\n if (/^h[1-6]$/i.test(tag) && el.offsetHeight >= pageHeight - adjust) {\n return false;\n }\n\n return (el.getAttribute(\"data-kendo-chart\") ||\n /^(?:img|tr|thead|th|tfoot|iframe|svg|object|canvas|input|textarea|select|video|h[1-6])/i.test(el.tagName));\n }\n\n function splitElement(element) {\n if (element.tagName == \"TABLE\") {\n setCSS(element, { tableLayout: \"fixed\" });\n }\n if (keepTogether(element)) {\n return;\n }\n var style = getComputedStyle(element);\n var bottomPadding = parseFloat(getPropertyValue(style, \"padding-bottom\"));\n var bottomBorder = parseFloat(getPropertyValue(style, \"border-bottom-width\"));\n var saveAdjust = adjust;\n adjust += bottomPadding + bottomBorder;\n var isFirst = true;\n for (var el = element.firstChild; el; el = el.nextSibling) {\n if (el.nodeType == 1 /* Element */) {\n isFirst = false;\n if (matches(el, forceBreak)) {\n breakAtElement(el);\n continue;\n }\n if (!pageHeight) {\n // we're in \"manual breaks mode\"\n splitElement(el);\n continue;\n }\n if (!/^(?:static|relative)$/.test(getPropertyValue(getComputedStyle(el), \"position\"))) {\n continue;\n }\n var fall = fallsOnMargin(el);\n if (fall == 1) {\n // element starts on next page, break before anyway.\n breakAtElement(el);\n }\n else if (fall) {\n // elements ends up on next page, or possibly doesn't fit on a page at\n // all. break before it anyway if it's an or , otherwise\n // attempt to split.\n if (keepTogether(el)) {\n breakAtElement(el);\n } else {\n splitElement(el);\n }\n }\n else {\n splitElement(el);\n }\n }\n else if (el.nodeType == 3 /* Text */ && pageHeight) {\n splitText(el, isFirst);\n isFirst = false;\n }\n }\n adjust = saveAdjust;\n }\n\n function firstInParent(el) {\n var p = el.parentNode, first = p.firstChild;\n if (el === first) {\n return true;\n }\n if (el === p.children[0]) {\n if (first.nodeType == 7 /* comment */ ||\n first.nodeType == 8 /* processing instruction */) {\n return true;\n }\n if (first.nodeType == 3 /* text */) {\n // if whitespace only we can probably consider it's first\n return !/\\S/.test(first.data);\n }\n }\n return false;\n }\n\n function breakAtElement(el) {\n if (el.nodeType == 1 && el !== copy && firstInParent(el)) {\n return breakAtElement(el.parentNode);\n }\n var table, colgroup, thead, grid, gridHead;\n table = closest(el, \"table\");\n colgroup = table && table.querySelector(\"colgroup\");\n if (options.repeatHeaders) {\n thead = table && table.querySelector(\"thead\");\n\n // If we break page in a Kendo Grid, repeat its header. This ugly hack is\n // necessary because a scrollable grid will keep the header in a separate\n // element from its content.\n //\n // XXX: This is likely to break as soon as the widget HTML is modified.\n grid = closest(el, \".k-grid\");\n if (grid && grid.querySelector(\".k-auto-scrollable\")) {\n gridHead = grid.querySelector(\".k-grid-header\");\n }\n }\n var page = makePage();\n var range = doc.createRange();\n range.setStartBefore(copy);\n range.setEndBefore(el);\n page.appendChild(range.extractContents());\n copy.parentNode.insertBefore(page, copy);\n preventBulletOnListItem(el.parentNode);\n if (table) {\n table = closest(el, \"table\"); // that's the
on next page!\n if (options.repeatHeaders && thead) {\n table.insertBefore(thead.cloneNode(true), table.firstChild);\n }\n if (colgroup) {\n table.insertBefore(colgroup.cloneNode(true), table.firstChild);\n }\n }\n if (options.repeatHeaders && gridHead) {\n grid = closest(el, \".k-grid\");\n grid.insertBefore(gridHead.cloneNode(true), grid.firstChild);\n }\n }\n\n function makePage() {\n var page = doc.createElement(\"KENDO-PDF-PAGE\");\n setCSS(page, {\n display : \"block\",\n boxSizing: \"content-box\",\n width : pageWidth ? (pageWidth + \"px\") : \"auto\",\n padding : (margin.top + \"px \" +\n margin.right + \"px \" +\n margin.bottom + \"px \" +\n margin.left + \"px\"),\n\n // allow absolutely positioned elements to be relative to current page\n position : \"relative\",\n\n // without the following we might affect layout of subsequent pages\n height : pageHeight ? (pageHeight + \"px\") : \"auto\",\n overflow : pageHeight || pageWidth ? \"hidden\" : \"visible\",\n clear : \"both\"\n });\n\n // debug\n // $(\"
\").css({\n // position : \"absolute\",\n // left : margin.left,\n // top : margin.top,\n // width : pageWidth,\n // height : pageHeight,\n // boxSizing : \"border-box\",\n // background: \"rgba(255, 255, 0, 0.5)\"\n // //border : \"1px solid red\"\n // }).appendTo(page);\n\n if (options && options.pageClassName) {\n page.className = options.pageClassName;\n }\n pages.push(page);\n return page;\n }\n\n function fallsOnMargin(thing) {\n var box = thing.getBoundingClientRect();\n if (box.width === 0 || box.height === 0) {\n // I'd say an element with dimensions zero fits on current page.\n return 0;\n }\n var top = copy.getBoundingClientRect().top;\n var available = pageHeight - adjust;\n return (box.height > available) ? 3\n : (box.top - top > available) ? 1\n : (box.bottom - top > available) ? 2\n : 0;\n }\n\n function splitText(node, isFirst) {\n if (!/\\S/.test(node.data)) {\n return;\n }\n\n var len = node.data.length;\n var range = doc.createRange();\n range.selectNodeContents(node);\n var fall = fallsOnMargin(range);\n if (!fall) {\n return; // the whole text fits on current page\n }\n\n var nextnode = node;\n if (fall == 1) {\n // starts on next page, break before anyway.\n if (isFirst) {\n // avoid leaving an empty

,

  • , etc. on previous page.\n breakAtElement(node.parentNode);\n } else {\n breakAtElement(node);\n }\n }\n else {\n (function findEOP(min, pos, max) {\n range.setEnd(node, pos);\n if (min == pos || pos == max) {\n return pos;\n }\n if (fallsOnMargin(range)) {\n return findEOP(min, (min + pos) >> 1, pos);\n } else {\n return findEOP(pos, (pos + max) >> 1, max);\n }\n })(0, len >> 1, len);\n\n if (!/\\S/.test(range.toString()) && isFirst) {\n // avoid leaving an empty

    ,

  • , etc. on previous page.\n breakAtElement(node.parentNode);\n } else {\n // This is only needed for IE, but it feels cleaner to do it anyway. Without\n // it, IE will truncate a very long text (playground/pdf-long-text-2.html).\n nextnode = node.splitText(range.endOffset);\n\n var page = makePage();\n range.setStartBefore(copy);\n page.appendChild(range.extractContents());\n copy.parentNode.insertBefore(page, copy);\n preventBulletOnListItem(nextnode.parentNode);\n }\n }\n\n splitText(nextnode);\n }\n\n function preventBulletOnListItem(el) {\n // set a hint on continued LI elements, to tell the\n // renderer not to draw the bullet again.\n // https://github.com/telerik/kendo-ui-core/issues/2732\n var li = closest(el, \"li\");\n if (li) {\n li.setAttribute(\"kendo-no-bullet\", \"1\");\n preventBulletOnListItem(li.parentNode);\n }\n }\n }\n\n return promise;\n}\n\n// This is needed for the Spreadsheet print functionality. Since\n// there we only need to draw text, this cuts through the ceremony\n// of drawDOM/renderElement and renders the text node directly.\nfunction drawText(element) {\n var group = new Group();\n nodeInfo._clipbox = false;\n nodeInfo._matrix = geo.Matrix.unit();\n nodeInfo._stackingContext = {\n element: element,\n group: group\n };\n pushNodeInfo(element, getComputedStyle(element), group);\n if (element.firstChild.nodeType == 3 /* Text */) {\n // avoid the penalty of renderElement\n renderText(element, element.firstChild, group);\n } else {\n _renderElement(element, group);\n }\n popNodeInfo();\n return group;\n}\n\nvar parseBackgroundImage = (function(){\n var tok_linear_gradient = /^((-webkit-|-moz-|-o-|-ms-)?linear-gradient\\s*)\\(/;\n //var tok_radial_gradient = /^((-webkit-|-moz-|-o-|-ms-)?radial-gradient\\s*)\\(/;\n var tok_percent = /^([-0-9.]+%)/;\n var tok_length = /^([-0-9.]+px)/;\n var tok_keyword = /^(left|right|top|bottom|to|center)\\W/;\n var tok_angle = /^([-0-9.]+(deg|grad|rad|turn)|0)/;\n var tok_whitespace = /^(\\s+)/;\n var tok_popen = /^(\\()/;\n var tok_pclose = /^(\\))/;\n var tok_comma = /^(,)/;\n var tok_url = /^(url)\\(/;\n var tok_content = /^(.*?)\\)/;\n\n var cache1 = {}, cache2 = {};\n\n function parse(input) {\n var orig = input;\n if (hasOwnProperty(cache1, orig)) {\n return cache1[orig];\n }\n function skip_ws() {\n var m = tok_whitespace.exec(input);\n if (m) {\n input = input.substr(m[1].length);\n }\n }\n function read(token) {\n skip_ws();\n var m = token.exec(input);\n if (m) {\n input = input.substr(m[1].length);\n return m[1];\n }\n }\n\n function read_stop() {\n var color = utils_parseColor(input, true);\n var length, percent;\n if (color) {\n let match =\n /^#[0-9a-f]+/i.exec(input) ||\n /^rgba?\\(.*?\\)/i.exec(input) ||\n /^..*?\\b/.exec(input); // maybe named color\n input = input.substr(match[0].length);\n color = color.toRGB();\n if (!(length = read(tok_length))) {\n percent = read(tok_percent);\n }\n return { color: color, length: length, percent: percent };\n }\n }\n\n function read_linear_gradient(propName) {\n var angle;\n var to1, to2;\n var stops = [];\n var reverse = false;\n\n if (read(tok_popen)) {\n // 1. [ || to , ]?\n angle = read(tok_angle);\n if (angle == \"0\") {\n angle = \"0deg\"; // Edge\n }\n if (angle) {\n angle = parseAngle(angle);\n read(tok_comma);\n }\n else {\n to1 = read(tok_keyword);\n if (to1 == \"to\") {\n to1 = read(tok_keyword);\n } else if (to1 && /^-/.test(propName)) {\n reverse = true;\n }\n to2 = read(tok_keyword);\n read(tok_comma);\n }\n\n if (/-moz-/.test(propName) && angle == null && to1 == null) {\n var x = read(tok_percent), y = read(tok_percent);\n reverse = true;\n if (x == \"0%\") {\n to1 = \"left\";\n } else if (x == \"100%\") {\n to1 = \"right\";\n }\n if (y == \"0%\") {\n to2 = \"top\";\n } else if (y == \"100%\") {\n to2 = \"bottom\";\n }\n read(tok_comma);\n }\n\n // 2. color stops\n while (input && !read(tok_pclose)) {\n var stop = read_stop();\n if (!stop) {\n break;\n }\n stops.push(stop);\n read(tok_comma);\n }\n\n return {\n type : \"linear\",\n angle : angle,\n to : to1 && to2 ? to1 + \" \" + to2 : to1 ? to1 : to2 ? to2 : null,\n stops : stops,\n reverse : reverse\n };\n }\n }\n\n function read_url() {\n if (read(tok_popen)) {\n var url = read(tok_content);\n url = url.replace(/^['\"]+|[\"']+$/g, \"\");\n read(tok_pclose);\n return { type: \"url\", url: url };\n }\n }\n\n var tok;\n\n if ((tok = read(tok_linear_gradient))) {\n tok = read_linear_gradient(tok);\n }\n else if ((tok = read(tok_url))) {\n tok = read_url();\n }\n\n return (cache1[orig] = tok || { type: \"none\" });\n }\n\n return function(input) {\n if (hasOwnProperty(cache2, input)) {\n return cache2[input];\n }\n return (cache2[input] = splitProperty(input).map(parse));\n };\n})();\n\nvar splitProperty = (function(){\n var cache = {};\n return function(input, separator) {\n if (!separator) {\n separator = /^\\s*,\\s*/;\n }\n\n var cacheKey = input + separator;\n\n if (hasOwnProperty(cache, cacheKey)) {\n return cache[cacheKey];\n }\n\n var ret = [];\n var last = 0, pos = 0;\n var in_paren = 0;\n var in_string = false;\n var m;\n\n function looking_at(rx) {\n return (m = rx.exec(input.substr(pos)));\n }\n\n function trim(str) {\n return str.replace(/^\\s+|\\s+$/g, \"\");\n }\n\n while (pos < input.length) {\n if (!in_string && looking_at(/^[\\(\\[\\{]/)) {\n in_paren++;\n pos++;\n }\n else if (!in_string && looking_at(/^[\\)\\]\\}]/)) {\n in_paren--;\n pos++;\n }\n else if (!in_string && looking_at(/^[\\\"\\']/)) {\n in_string = m[0];\n pos++;\n }\n else if (in_string == \"'\" && looking_at(/^\\\\\\'/)) {\n pos += 2;\n }\n else if (in_string == '\"' && looking_at(/^\\\\\\\"/)) {\n pos += 2;\n }\n else if (in_string == \"'\" && looking_at(/^\\'/)) {\n in_string = false;\n pos++;\n }\n else if (in_string == '\"' && looking_at(/^\\\"/)) {\n in_string = false;\n pos++;\n }\n else if (looking_at(separator)) {\n if (!in_string && !in_paren && pos > last) {\n ret.push(trim(input.substring(last, pos)));\n last = pos + m[0].length;\n }\n pos += m[0].length;\n }\n else {\n pos++;\n }\n }\n if (last < pos) {\n ret.push(trim(input.substring(last, pos)));\n }\n return (cache[cacheKey] = ret);\n };\n})();\n\nvar getFontURL = (function(cache){\n return function(el){\n // XXX: for IE we get here the whole cssText of the rule,\n // because the computedStyle.src is empty. Next time we need\n // to fix these regexps we better write a CSS parser. :-\\\n var url = cache[el];\n if (!url) {\n var m;\n if ((m = /url\\((['\"]?)([^'\")]*?)\\1\\)\\s+format\\((['\"]?)truetype\\3\\)/.exec(el))) {\n url = cache[el] = m[2];\n } else if ((m = /url\\((['\"]?)([^'\")]*?\\.ttf)\\1\\)/.exec(el))) {\n url = cache[el] = m[2];\n }\n }\n return url;\n };\n})(Object.create(null));\n\nvar getFontHeight = (function(cache){\n return function(font) {\n var height = cache[font];\n if (height == null) {\n height = cache[font] = measureText(\"Mapq\", { font: font }).height;\n }\n return height;\n };\n})(Object.create(null));\n\nfunction getFontFaces(doc) {\n if (doc == null) {\n doc = document;\n }\n var result = {};\n for (var i = 0; i < doc.styleSheets.length; ++i) {\n doStylesheet(doc.styleSheets[i]);\n }\n return result;\n function doStylesheet(ss) {\n if (ss) {\n var rules = null;\n try {\n rules = ss.cssRules;\n } catch (ex) {}\n if (rules) {\n addRules(ss, rules);\n }\n }\n }\n function findFonts(rule) {\n var src = getPropertyValue(rule.style, \"src\");\n if (src) {\n return splitProperty(src).reduce(function(a, el){\n var font = getFontURL(el);\n if (font) {\n a.push(font);\n }\n return a;\n }, []);\n } else {\n // Internet Explorer\n // XXX: this is gross. should work though for valid CSS.\n var font = getFontURL(rule.cssText);\n return font ? [ font ] : [];\n }\n }\n function addRules(styleSheet, rules) {\n for (var i = 0; i < rules.length; ++i) {\n var r = rules[i];\n switch (r.type) {\n case 3: // CSSImportRule\n doStylesheet(r.styleSheet);\n break;\n case 5: // CSSFontFaceRule\n var style = r.style;\n var family = splitProperty(getPropertyValue(style, \"font-family\"));\n var bold = /^([56789]00|bold)$/i.test(getPropertyValue(style, \"font-weight\"));\n var italic = \"italic\" == getPropertyValue(style, \"font-style\");\n var src = findFonts(r);\n if (src.length > 0) {\n addRule(styleSheet, family, bold, italic, src[0]);\n }\n }\n }\n }\n function addRule(styleSheet, names, bold, italic, url) {\n // We get full resolved absolute URLs in Chrome, but sadly\n // not in Firefox.\n if (!(/^data:/i.test(url))) {\n if (!(/^[^\\/:]+:\\/\\//.test(url) || /^\\//.test(url))) {\n url = String(styleSheet.href).replace(/[^\\/]*$/, \"\") + url;\n }\n }\n names.forEach(function(name){\n name = name.replace(/^(['\"]?)(.*?)\\1$/, \"$2\"); // it's quoted\n if (bold) {\n name += \"|bold\";\n }\n if (italic) {\n name += \"|italic\";\n }\n result[name] = url;\n });\n }\n}\n\nfunction hasOwnProperty(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction getCounter(name) {\n name = \"_counter_\" + name;\n return nodeInfo[name];\n}\n\nfunction getAllCounters(name) {\n var values = [], p = nodeInfo;\n name = \"_counter_\" + name;\n while (p) {\n if (hasOwnProperty(p, name)) {\n values.push(p[name]);\n }\n p = Object.getPrototypeOf(p);\n }\n return values.reverse();\n}\n\nfunction incCounter(name, inc) {\n var p = nodeInfo;\n name = \"_counter_\" + name;\n while (p && !hasOwnProperty(p, name)) {\n p = Object.getPrototypeOf(p);\n }\n if (!p) {\n p = nodeInfo._root;\n }\n p[name] = (p[name] || 0) + (inc == null ? 1 : inc);\n}\n\nfunction resetCounter(name, val) {\n name = \"_counter_\" + name;\n nodeInfo[name] = val == null ? 0 : val;\n}\n\nfunction doCounters(a, f, def) {\n for (var i = 0; i < a.length;) {\n var name = a[i++];\n var val = parseFloat(a[i]);\n if (isNaN(val)) {\n f(name, def);\n } else {\n f(name, val);\n ++i;\n }\n }\n}\n\nfunction updateCounters(style) {\n var counterReset = getPropertyValue(style, \"counter-reset\");\n if (counterReset) {\n doCounters(splitProperty(counterReset, /^\\s+/), resetCounter, 0);\n }\n var counterIncrement = getPropertyValue(style, \"counter-increment\");\n if (counterIncrement) {\n doCounters(splitProperty(counterIncrement, /^\\s+/), incCounter, 1);\n }\n}\n\nfunction parseColor(str, css) {\n var color = utils_parseColor(str, true);\n if (color) {\n color = color.toRGB();\n if (css) {\n color = color.toCssRgba();\n } else if (color.a === 0) {\n color = null;\n }\n }\n return color;\n}\n\nfunction whenImagesAreActuallyLoaded(elements, callback) {\n var pending = 0;\n var done = false;\n elements.forEach(function(el){\n var images = el.querySelectorAll(\"img\");\n for (var i = 0; i < images.length; ++i) {\n var img = images[i];\n if (!img.complete) {\n pending++;\n img.onload = img.onerror = next;\n }\n }\n });\n\n if (!pending) {\n next();\n }\n\n function next() {\n if (!done && --pending <= 0) {\n callback();\n done = true;\n }\n }\n}\n\nfunction cacheImages(elements, callback) {\n var urls = [];\n function add(url) {\n if (!IMAGE_CACHE[url]) {\n IMAGE_CACHE[url] = true;\n urls.push(url);\n }\n }\n\n elements.forEach(function dive(element){\n if (/^img$/i.test(element.tagName)) {\n add(element.src);\n }\n parseBackgroundImage(\n getPropertyValue(\n getComputedStyle(element), \"background-image\"\n )\n ).forEach(function(bg){\n if (bg.type == \"url\") {\n add(bg.url);\n }\n });\n\n if (element.children) {\n slice(element.children).forEach(dive);\n }\n });\n\n var count = urls.length;\n function next() {\n if (--count <= 0) {\n // Even though we cached them, they simply won't be available immediately in the newly\n // created DOM. Previously we'd allow a 10ms timeout, but that's arbitrary and clearly\n // not working in all cases (https://github.com/telerik/kendo/issues/5399), so this\n // function will wait for their .complete attribute.\n whenImagesAreActuallyLoaded(elements, callback);\n }\n }\n if (count === 0) {\n next();\n }\n urls.forEach(function(url){\n var img = IMAGE_CACHE[url] = new window.Image();\n if (!(/^data:/i.test(url))) {\n img.crossOrigin = \"Anonymous\";\n }\n img.src = url;\n if (img.complete) {\n next();\n } else {\n img.onload = next;\n img.onerror = function() {\n IMAGE_CACHE[url] = null;\n next();\n };\n }\n });\n}\n\nfunction alphaNumeral(n) {\n var result = \"\";\n do {\n var r = n % 26;\n result = String.fromCharCode(97 + r) + result;\n n = Math.floor(n / 26);\n } while (n > 0);\n return result;\n}\n\nfunction pushNodeInfo(element, style, group) {\n nodeInfo = Object.create(nodeInfo);\n nodeInfo[element.tagName.toLowerCase()] = {\n element: element,\n style: style\n };\n let decoration = getPropertyValue(style, \"text-decoration\");\n if (decoration && decoration != \"none\") {\n let color = getPropertyValue(style, \"text-decoration-color\");\n decoration.split(/\\s+/g).forEach(function(name){\n if (!nodeInfo[name]) {\n nodeInfo[name] = color;\n if (name == \"underline\") {\n let offset = getPropertyValue(style, \"text-underline-offset\");\n if (offset != \"auto\") {\n nodeInfo[\"underline-offset\"] = parseFloat(offset);\n }\n }\n }\n });\n }\n\n if (createsStackingContext(style)) {\n nodeInfo._stackingContext = {\n element: element,\n group: group\n };\n }\n}\n\nfunction popNodeInfo() {\n nodeInfo = Object.getPrototypeOf(nodeInfo);\n}\n\nfunction updateClipbox(path) {\n if (nodeInfo._clipbox != null) {\n var box = path.bbox(nodeInfo._matrix);\n if (nodeInfo._clipbox) {\n nodeInfo._clipbox = geo.Rect.intersect(nodeInfo._clipbox, box);\n } else {\n nodeInfo._clipbox = box;\n }\n }\n}\n\nfunction emptyClipbox() {\n var cb = nodeInfo._clipbox;\n if (cb == null) {\n return true;\n }\n if (cb) {\n return cb.width() === 0 || cb.height() === 0;\n }\n}\n\nfunction createsStackingContext(style) {\n function prop(name) { return getPropertyValue(style, name); }\n if (prop(\"transform\") != \"none\" ||\n prop(\"position\") != \"static\" ||\n prop(\"z-index\") != \"auto\" ||\n prop(\"opacity\") < 1) {\n return true;\n }\n}\n\nfunction getComputedStyle(element, pseudoElt) {\n return window.getComputedStyle(element, pseudoElt || null);\n}\n\nfunction getPropertyValue(style, prop, defa) {\n var val = style.getPropertyValue(prop);\n if (val == null || val === \"\") {\n if (browser.webkit) {\n val = style.getPropertyValue(\"-webkit-\" + prop );\n } else if (browser.mozilla) {\n val = style.getPropertyValue(\"-moz-\" + prop );\n } else if (browser.opera) {\n val = style.getPropertyValue(\"-o-\" + prop);\n } else if (microsoft) {\n val = style.getPropertyValue(\"-ms-\" + prop);\n }\n }\n if (arguments.length > 2 && (val == null || val === \"\")) {\n return defa;\n } else {\n return val;\n }\n}\n\nfunction pleaseSetPropertyValue(style, prop, value, important) {\n style.setProperty(prop, value, important);\n if (browser.webkit) {\n style.setProperty(\"-webkit-\" + prop, value, important);\n } else if (browser.mozilla) {\n style.setProperty(\"-moz-\" + prop, value, important);\n } else if (browser.opera) {\n style.setProperty(\"-o-\" + prop, value, important);\n } else if (microsoft) {\n style.setProperty(\"-ms-\" + prop, value, important);\n prop = \"ms\" + prop.replace(/(^|-)([a-z])/g, function(s, p1, p2){\n return p1 + p2.toUpperCase();\n });\n style[prop] = value;\n }\n}\n\nfunction getBorder(style, side) {\n side = \"border-\" + side;\n return {\n width: parseFloat(getPropertyValue(style, side + \"-width\")),\n style: getPropertyValue(style, side + \"-style\"),\n color: parseColor(getPropertyValue(style, side + \"-color\"), true)\n };\n}\n\nfunction saveStyle(element, func) {\n var prev = element.style.cssText;\n var result = func();\n setStyle(element, prev);\n return result;\n}\n\nfunction getBorderRadius(style, side) {\n var r = getPropertyValue(style, \"border-\" + side + \"-radius\").split(/\\s+/g).map(parseFloat);\n if (r.length == 1) {\n r.push(r[0]);\n }\n return sanitizeRadius({ x: r[0], y: r[1] });\n}\n\nfunction getContentBox(element) {\n var box = element.getBoundingClientRect();\n box = innerBox(box, \"border-*-width\", element);\n box = innerBox(box, \"padding-*\", element);\n return box;\n}\n\nfunction innerBox(box, prop, element) {\n var style, wt, wr, wb, wl;\n if (typeof prop == \"string\") {\n style = getComputedStyle(element);\n wt = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"top\")));\n wr = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"right\")));\n wb = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"bottom\")));\n wl = parseFloat(getPropertyValue(style, prop.replace(\"*\", \"left\")));\n }\n else if (typeof prop == \"number\") {\n wt = wr = wb = wl = prop;\n }\n return {\n top : box.top + wt,\n right : box.right - wr,\n bottom : box.bottom - wb,\n left : box.left + wl,\n width : box.right - box.left - wr - wl,\n height : box.bottom - box.top - wb - wt\n };\n}\n\nfunction getTransform(style) {\n var transform = getPropertyValue(style, \"transform\");\n if (transform == \"none\") {\n return null;\n }\n var matrix = /^\\s*matrix\\(\\s*(.*?)\\s*\\)\\s*$/.exec(transform);\n if (matrix) {\n var origin = getPropertyValue(style, \"transform-origin\");\n matrix = matrix[1].split(/\\s*,\\s*/g).map(parseFloat);\n origin = origin.split(/\\s+/g).map(parseFloat);\n return {\n matrix: matrix,\n origin: origin\n };\n }\n}\n\nfunction radiansToDegrees(radians) {\n return ((180 * radians) / Math.PI) % 360;\n}\n\nfunction parseAngle(angle) {\n var num = parseFloat(angle);\n if (/grad$/.test(angle)) {\n return Math.PI * num / 200;\n }\n else if (/rad$/.test(angle)) {\n return num;\n }\n else if (/turn$/.test(angle)) {\n return Math.PI * num * 2;\n }\n else if (/deg$/.test(angle)) {\n return Math.PI * num / 180;\n }\n}\n\nfunction setTransform(shape, m) {\n m = new geo.Matrix(m[0], m[1], m[2], m[3], m[4], m[5]);\n shape.transform(m);\n return m;\n}\n\nfunction setClipping(shape, clipPath) {\n shape.clip(clipPath);\n}\n\nfunction addArcToPath(path, x, y, options) {\n var points = new geo.Arc([ x, y ], options).curvePoints(), i = 1;\n while (i < points.length) {\n path.curveTo(points[i++], points[i++], points[i++]);\n }\n}\n\nfunction sanitizeRadius(r) {\n if (r.x <= 0 || r.y <= 0) {\n r.x = r.y = 0;\n }\n return r;\n}\n\nfunction adjustBorderRadiusForBox(box, rTL, rTR, rBR, rBL) {\n // adjust border radiuses such that the sum of adjacent\n // radiuses is not bigger than the length of the side.\n // seems the correct algorithm is variant (3) from here:\n // http://www.w3.org/Style/CSS/Tracker/issues/29?changelog\n var tl_x = Math.max(0, rTL.x), tl_y = Math.max(0, rTL.y);\n var tr_x = Math.max(0, rTR.x), tr_y = Math.max(0, rTR.y);\n var br_x = Math.max(0, rBR.x), br_y = Math.max(0, rBR.y);\n var bl_x = Math.max(0, rBL.x), bl_y = Math.max(0, rBL.y);\n\n var f = Math.min(\n box.width / (tl_x + tr_x),\n box.height / (tr_y + br_y),\n box.width / (br_x + bl_x),\n box.height / (bl_y + tl_y)\n );\n\n if (f < 1) {\n tl_x *= f; tl_y *= f;\n tr_x *= f; tr_y *= f;\n br_x *= f; br_y *= f;\n bl_x *= f; bl_y *= f;\n }\n\n return {\n tl: { x: tl_x, y: tl_y },\n tr: { x: tr_x, y: tr_y },\n br: { x: br_x, y: br_y },\n bl: { x: bl_x, y: bl_y }\n };\n}\n\nfunction elementRoundBox(element, box, type) {\n var style = getComputedStyle(element);\n\n var rTL = getBorderRadius(style, \"top-left\");\n var rTR = getBorderRadius(style, \"top-right\");\n var rBL = getBorderRadius(style, \"bottom-left\");\n var rBR = getBorderRadius(style, \"bottom-right\");\n\n if (type == \"padding\" || type == \"content\") {\n var bt = getBorder(style, \"top\");\n var br = getBorder(style, \"right\");\n var bb = getBorder(style, \"bottom\");\n var bl = getBorder(style, \"left\");\n rTL.x -= bl.width; rTL.y -= bt.width;\n rTR.x -= br.width; rTR.y -= bt.width;\n rBR.x -= br.width; rBR.y -= bb.width;\n rBL.x -= bl.width; rBL.y -= bb.width;\n if (type == \"content\") {\n var pt = parseFloat(getPropertyValue(style, \"padding-top\"));\n var pr = parseFloat(getPropertyValue(style, \"padding-right\"));\n var pb = parseFloat(getPropertyValue(style, \"padding-bottom\"));\n var pl = parseFloat(getPropertyValue(style, \"padding-left\"));\n rTL.x -= pl; rTL.y -= pt;\n rTR.x -= pr; rTR.y -= pt;\n rBR.x -= pr; rBR.y -= pb;\n rBL.x -= pl; rBL.y -= pb;\n }\n }\n\n if (typeof type == \"number\") {\n rTL.x -= type; rTL.y -= type;\n rTR.x -= type; rTR.y -= type;\n rBR.x -= type; rBR.y -= type;\n rBL.x -= type; rBL.y -= type;\n }\n\n return roundBox(box, rTL, rTR, rBR, rBL);\n}\n\n// Create a drawing.Path for a rounded rectangle. Receives the\n// bounding box and the border-radiuses in CSS order (top-left,\n// top-right, bottom-right, bottom-left). The radiuses must be\n// objects containing x (horiz. radius) and y (vertical radius).\nfunction roundBox(box, rTL0, rTR0, rBR0, rBL0) {\n var tmp = adjustBorderRadiusForBox(box, rTL0, rTR0, rBR0, rBL0);\n var rTL = tmp.tl;\n var rTR = tmp.tr;\n var rBR = tmp.br;\n var rBL = tmp.bl;\n var path = new Path({ fill: null, stroke: null });\n path.moveTo(box.left, box.top + rTL.y);\n if (rTL.x) {\n addArcToPath(path, box.left + rTL.x, box.top + rTL.y, {\n startAngle: -180,\n endAngle: -90,\n radiusX: rTL.x,\n radiusY: rTL.y\n });\n }\n path.lineTo(box.right - rTR.x, box.top);\n if (rTR.x) {\n addArcToPath(path, box.right - rTR.x, box.top + rTR.y, {\n startAngle: -90,\n endAngle: 0,\n radiusX: rTR.x,\n radiusY: rTR.y\n });\n }\n path.lineTo(box.right, box.bottom - rBR.y);\n if (rBR.x) {\n addArcToPath(path, box.right - rBR.x, box.bottom - rBR.y, {\n startAngle: 0,\n endAngle: 90,\n radiusX: rBR.x,\n radiusY: rBR.y\n });\n }\n path.lineTo(box.left + rBL.x, box.bottom);\n if (rBL.x) {\n addArcToPath(path, box.left + rBL.x, box.bottom - rBL.y, {\n startAngle: 90,\n endAngle: 180,\n radiusX: rBL.x,\n radiusY: rBL.y\n });\n }\n return path.close();\n}\n\nfunction formatCounter(val, style) {\n var str = String(parseFloat(val));\n switch (style) {\n case \"decimal-leading-zero\":\n if (str.length < 2) {\n str = \"0\" + str;\n }\n return str;\n case \"lower-roman\":\n return arabicToRoman(val).toLowerCase();\n case \"upper-roman\":\n return arabicToRoman(val).toUpperCase();\n case \"lower-latin\":\n case \"lower-alpha\":\n return alphaNumeral(val - 1);\n case \"upper-latin\":\n case \"upper-alpha\":\n return alphaNumeral(val - 1).toUpperCase();\n default:\n return str;\n }\n}\n\nfunction evalPseudoElementContent(element, content) {\n function displayCounter(name, style, separator) {\n if (!separator) {\n return formatCounter(getCounter(name) || 0, style);\n }\n separator = separator.replace(/^\\s*([\"'])(.*)\\1\\s*$/, \"$2\");\n return getAllCounters(name).map(function(val){\n return formatCounter(val, style);\n }).join(separator);\n }\n var a = splitProperty(content, /^\\s+/);\n var result = [], m;\n a.forEach(function(el){\n var tmp;\n if ((m = /^\\s*([\"'])(.*)\\1\\s*$/.exec(el))) {\n result.push(m[2].replace(/\\\\([0-9a-f]{4})/gi, function(s, p){\n return String.fromCharCode(parseInt(p, 16));\n }));\n }\n else if ((m = /^\\s*counter\\((.*?)\\)\\s*$/.exec(el))) {\n tmp = splitProperty(m[1]);\n result.push(displayCounter(tmp[0], tmp[1]));\n }\n else if ((m = /^\\s*counters\\((.*?)\\)\\s*$/.exec(el))) {\n tmp = splitProperty(m[1]);\n result.push(displayCounter(tmp[0], tmp[2], tmp[1]));\n }\n else if ((m = /^\\s*attr\\((.*?)\\)\\s*$/.exec(el))) {\n result.push(element.getAttribute(m[1]) || \"\");\n }\n else {\n result.push(el);\n }\n });\n return result.join(\"\");\n}\n\nfunction getCssText(style) {\n if (style.cssText) {\n return style.cssText;\n }\n // Status: NEW. Report year: 2002. Current year: 2014.\n // Nice played, Mozillians.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=137687\n var result = [];\n for (var i = 0; i < style.length; ++i) {\n result.push(style[i] + \": \" + getPropertyValue(style, style[i]));\n }\n return result.join(\";\\n\");\n}\n\nfunction _renderWithPseudoElements(element, group) {\n if (element.tagName == KENDO_PSEUDO_ELEMENT) {\n _renderElement(element, group);\n return;\n }\n let fake = [];\n function pseudo(kind, place) {\n let style = getComputedStyle(element, kind), content = style.content;\n updateCounters(style);\n if (content && content != \"normal\" && content != \"none\" && style.width != \"0px\") {\n let psel = element.ownerDocument.createElement(KENDO_PSEUDO_ELEMENT);\n setStyle(psel, getCssText(style));\n psel.textContent = evalPseudoElementContent(element, content);\n element.insertBefore(psel, place);\n fake.push(psel);\n }\n }\n pseudo(\":before\", element.firstChild);\n pseudo(\":after\", null);\n if (fake.length > 0) {\n let saveClass = element.className;\n element.className += \" kendo-pdf-hide-pseudo-elements\";\n _renderElement(element, group);\n element.className = saveClass;\n fake.forEach(function(el){ element.removeChild(el); });\n } else {\n _renderElement(element, group);\n }\n}\n\nfunction _renderElement(element, group) {\n var style = getComputedStyle(element);\n\n var top = getBorder(style, \"top\");\n var right = getBorder(style, \"right\");\n var bottom = getBorder(style, \"bottom\");\n var left = getBorder(style, \"left\");\n\n var rTL0 = getBorderRadius(style, \"top-left\");\n var rTR0 = getBorderRadius(style, \"top-right\");\n var rBL0 = getBorderRadius(style, \"bottom-left\");\n var rBR0 = getBorderRadius(style, \"bottom-right\");\n\n var dir = getPropertyValue(style, \"direction\");\n\n var backgroundColor = getPropertyValue(style, \"background-color\");\n backgroundColor = parseColor(backgroundColor);\n\n var backgroundImage = parseBackgroundImage( getPropertyValue(style, \"background-image\") );\n var backgroundRepeat = splitProperty( getPropertyValue(style, \"background-repeat\") );\n var backgroundPosition = splitProperty( getPropertyValue(style, \"background-position\") );\n var backgroundOrigin = splitProperty( getPropertyValue(style, \"background-origin\") );\n var backgroundSize = splitProperty( getPropertyValue(style, \"background-size\") );\n\n // IE shrinks the text with text-overflow: ellipsis,\n // apparently because the returned bounding box for the range\n // is limited to the visible area minus space for the dots,\n // instead of being the full width of the text.\n //\n // https://github.com/telerik/kendo/issues/5232\n // https://github.com/telerik/kendo-ui-core/issues/1868\n //\n // We have to test it here rather than in renderText because\n // text-overflow: ellipsis could be set on a parent element (not\n // necessarily the one containing the text); in this case,\n // getComputedStyle(elementWithTheText) will return \"clip\", not\n // \"ellipsis\" (which is probably a bug, but oh well...)\n var textOverflow, saveTextOverflow;\n if (microsoft) {\n textOverflow = style.textOverflow; // computed style\n if (textOverflow == \"ellipsis\") {\n saveTextOverflow = element.style.textOverflow; // own style.\n element.style.textOverflow = \"clip\";\n }\n }\n\n if (browser.msie && browser.version < 10) {\n // IE9 hacks. getPropertyValue won't return the correct\n // value. Sucks that we have to do it here, I'd prefer to\n // move it in getPropertyValue, but we don't have the\n // element.\n backgroundPosition = splitProperty(element.currentStyle.backgroundPosition);\n }\n\n var innerbox = innerBox(element.getBoundingClientRect(), \"border-*-width\", element);\n\n // CSS \"clip\" property - if present, replace the group with a\n // new one which is clipped. This must happen before drawing\n // the borders and background.\n (function(){\n var clip = getPropertyValue(style, \"clip\");\n var m = /^\\s*rect\\((.*)\\)\\s*$/.exec(clip);\n if (m) {\n var a = m[1].split(/[ ,]+/g);\n var top = a[0] == \"auto\" ? innerbox.top : parseFloat(a[0]) + innerbox.top;\n var right = a[1] == \"auto\" ? innerbox.right : parseFloat(a[1]) + innerbox.left;\n var bottom = a[2] == \"auto\" ? innerbox.bottom : parseFloat(a[2]) + innerbox.top;\n var left = a[3] == \"auto\" ? innerbox.left : parseFloat(a[3]) + innerbox.left;\n var tmp = new Group();\n var clipPath = new Path()\n .moveTo(left, top)\n .lineTo(right, top)\n .lineTo(right, bottom)\n .lineTo(left, bottom)\n .close();\n setClipping(tmp, clipPath);\n group.append(tmp);\n group = tmp;\n updateClipbox(clipPath);\n }\n })();\n\n var boxes, i, cells;\n var display = getPropertyValue(style, \"display\");\n\n if (display == \"table-row\") {\n // because of rowspan/colspan, we shouldn't draw background of table row elements on the\n // box given by its getBoundingClientRect, because if we do we risk overwritting a\n // previously rendered cell. https://github.com/telerik/kendo/issues/4881\n boxes = [];\n for (i = 0, cells = element.children; i < cells.length; ++i) {\n boxes.push(cells[i].getBoundingClientRect());\n }\n } else {\n boxes = element.getClientRects();\n if (boxes.length == 1) {\n // Workaround the missing borders in Chrome! getClientRects() boxes contains values\n // rounded to integer. getBoundingClientRect() appears to work fine. We still need\n // getClientRects() to support cases where there are more boxes (continued inline\n // elements that might have border/background).\n boxes = [ element.getBoundingClientRect() ];\n }\n }\n\n // This function workarounds another Chrome bug, where boxes returned for a table with\n // border-collapse: collapse will overlap the table border. Our rendering is not perfect in\n // such case anyway, but with this is better than without it.\n boxes = adjustBoxes(boxes);\n\n for (i = 0; i < boxes.length; ++i) {\n drawOneBox(boxes[i], i === 0, i == boxes.length - 1);\n }\n\n // Render links as separate groups. We can't use boxes returned by element's getClientRects\n // because if display type is \"inline\" (default for ), boxes will not include the height of\n // images inside. https://github.com/telerik/kendo-ui-core/issues/3359\n if (element.tagName == \"A\" && element.href && !/^#?$/.test(element.getAttribute(\"href\"))) {\n if (!nodeInfo._avoidLinks || !matches(element, nodeInfo._avoidLinks)) {\n const r = document.createRange();\n r.selectNodeContents(element);\n slice(r.getClientRects()).forEach(function(box){\n const g = new Group();\n g._pdfLink = {\n url : element.href,\n top : box.top,\n right : box.right,\n bottom : box.bottom,\n left : box.left\n };\n group.append(g);\n });\n }\n }\n\n if (boxes.length > 0 && display == \"list-item\" && !element.getAttribute(\"kendo-no-bullet\")) {\n drawBullet(boxes[0]);\n }\n\n // overflow: hidden/auto - if present, replace the group with\n // a new one clipped by the inner box.\n (function(){\n function clipit() {\n var clipPath = elementRoundBox(element, innerbox, \"padding\");\n var tmp = new Group();\n setClipping(tmp, clipPath);\n group.append(tmp);\n group = tmp;\n updateClipbox(clipPath);\n }\n if (isFormField(element)) {\n clipit();\n } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, \"overflow\"))) {\n clipit();\n } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, \"overflow-x\"))) {\n clipit();\n } else if (/^(hidden|auto|scroll)/.test(getPropertyValue(style, \"overflow-y\"))) {\n clipit();\n }\n })();\n\n if (!maybeRenderWidget(element, group) && !maybeRenderBullet(element, group)) {\n renderContents(element, group);\n }\n\n if (microsoft && textOverflow == \"ellipsis\") {\n element.style.textOverflow = saveTextOverflow;\n }\n\n return group; // only utility functions after this line.\n\n function adjustBoxes(boxes) {\n if (/^td$/i.test(element.tagName)) {\n var table = nodeInfo.table;\n if (table && getPropertyValue(table.style, \"border-collapse\") == \"collapse\") {\n var tableBorderLeft = getBorder(table.style, \"left\").width;\n var tableBorderTop = getBorder(table.style, \"top\").width;\n // check if we need to adjust\n if (tableBorderLeft === 0 && tableBorderTop === 0) {\n return boxes; // nope\n }\n var tableBox = table.element.getBoundingClientRect();\n var firstCell = table.element.rows[0].cells[0];\n var firstCellBox = firstCell.getBoundingClientRect();\n if (firstCellBox.top == tableBox.top || firstCellBox.left == tableBox.left) {\n return slice(boxes).map(function(box){\n return {\n left : box.left + tableBorderLeft,\n top : box.top + tableBorderTop,\n right : box.right + tableBorderLeft,\n bottom : box.bottom + tableBorderTop,\n height : box.height,\n width : box.width\n };\n });\n }\n }\n }\n return boxes;\n }\n\n // this function will be called to draw each border. it\n // draws starting at origin and the resulted path must be\n // translated/rotated to be placed in the proper position.\n //\n // arguments are named as if it draws the top border:\n //\n // - `len` the length of the edge\n // - `Wtop` the width of the edge (i.e. border-top-width)\n // - `Wleft` the width of the left edge (border-left-width)\n // - `Wright` the width of the right edge\n // - `rl` and `rl` -- the border radius on the left and right\n // (objects containing x and y, for horiz/vertical radius)\n // - `transform` -- transformation to apply\n //\n function drawEdge(color, len, Wtop, Wleft, Wright, rl, rr, transform) {\n if (Wtop <= 0) {\n return;\n }\n\n var path, edge = new Group();\n setTransform(edge, transform);\n group.append(edge);\n\n sanitizeRadius(rl);\n sanitizeRadius(rr);\n\n // draw main border. this is the area without the rounded corners\n path = new Path({\n fill: { color: color },\n stroke: null\n });\n edge.append(path);\n path.moveTo(rl.x ? Math.max(rl.x, Wleft) : 0, 0)\n .lineTo(len - (rr.x ? Math.max(rr.x, Wright) : 0), 0)\n .lineTo(len - Math.max(rr.x, Wright), Wtop)\n .lineTo(Math.max(rl.x, Wleft), Wtop)\n .close();\n\n if (rl.x) {\n drawRoundCorner(Wleft, rl, [ -1, 0, 0, 1, rl.x, 0 ]);\n }\n\n if (rr.x) {\n drawRoundCorner(Wright, rr, [ 1, 0, 0, 1, len - rr.x, 0 ]);\n }\n\n // draws one round corner, starting at origin (needs to be\n // translated/rotated to be placed properly).\n function drawRoundCorner(Wright, r, transform) {\n var angle = Math.PI/2 * Wright / (Wright + Wtop);\n\n // not sanitizing this one, because negative values\n // are useful to fill the box correctly.\n var ri = {\n x: r.x - Wright,\n y: r.y - Wtop\n };\n\n var path = new Path({\n fill: { color: color },\n stroke: null\n }).moveTo(0, 0);\n\n setTransform(path, transform);\n\n addArcToPath(path, 0, r.y, {\n startAngle: -90,\n endAngle: -radiansToDegrees(angle),\n radiusX: r.x,\n radiusY: r.y\n });\n\n if (ri.x > 0 && ri.y > 0) {\n path.lineTo(ri.x * Math.cos(angle), r.y - ri.y * Math.sin(angle));\n addArcToPath(path, 0, r.y, {\n startAngle: -radiansToDegrees(angle),\n endAngle: -90,\n radiusX: ri.x,\n radiusY: ri.y,\n anticlockwise: true\n });\n }\n else if (ri.x > 0) {\n path.lineTo(ri.x, Wtop)\n .lineTo(0, Wtop);\n }\n else {\n path.lineTo(ri.x, Wtop)\n .lineTo(ri.x, 0);\n }\n\n edge.append(path.close());\n }\n }\n\n function drawBackground(box) {\n var background = new Group();\n setClipping(background, roundBox(box, rTL0, rTR0, rBR0, rBL0));\n group.append(background);\n\n if (backgroundColor) {\n var path = new Path({\n fill: { color: backgroundColor.toCssRgba() },\n stroke: null\n });\n path.moveTo(box.left, box.top)\n .lineTo(box.right, box.top)\n .lineTo(box.right, box.bottom)\n .lineTo(box.left, box.bottom)\n .close();\n background.append(path);\n }\n\n for (var i = backgroundImage.length; --i >= 0;) {\n drawOneBackground(\n background, box,\n backgroundImage[i],\n backgroundRepeat[i % backgroundRepeat.length],\n backgroundPosition[i % backgroundPosition.length],\n backgroundOrigin[i % backgroundOrigin.length],\n backgroundSize[i % backgroundSize.length]\n );\n }\n }\n\n function drawOneBackground(group, box, background, backgroundRepeat, backgroundPosition, backgroundOrigin, backgroundSize) {\n if (!background || (background == \"none\")) {\n return;\n }\n\n if (background.type == \"url\") {\n var img = IMAGE_CACHE[background.url];\n if (img && img.width > 0 && img.height > 0) {\n drawBackgroundImage(group, box, img.width, img.height, function(group, rect){\n group.append(new Image(background.url, rect));\n });\n }\n } else if (background.type == \"linear\") {\n drawBackgroundImage(group, box, box.width, box.height, gradientRenderer(background));\n } else {\n return;\n }\n\n function drawBackgroundImage(group, box, img_width, img_height, renderBG) {\n var aspect_ratio = img_width / img_height, f;\n\n // for background-origin: border-box the box is already appropriate\n var orgBox = box;\n if (backgroundOrigin == \"content-box\") {\n orgBox = innerBox(orgBox, \"border-*-width\", element);\n orgBox = innerBox(orgBox, \"padding-*\", element);\n } else if (backgroundOrigin == \"padding-box\") {\n orgBox = innerBox(orgBox, \"border-*-width\", element);\n }\n\n if (!/^\\s*auto(\\s+auto)?\\s*$/.test(backgroundSize)) {\n if (backgroundSize == \"contain\") {\n f = Math.min(orgBox.width / img_width,\n orgBox.height / img_height);\n img_width *= f;\n img_height *= f;\n }\n else if (backgroundSize == \"cover\") {\n f = Math.max(orgBox.width / img_width,\n orgBox.height / img_height);\n img_width *= f;\n img_height *= f;\n }\n else {\n var size = backgroundSize.split(/\\s+/g);\n // compute width\n if (/%$/.test(size[0])) {\n img_width = orgBox.width * parseFloat(size[0]) / 100;\n } else {\n img_width = parseFloat(size[0]);\n }\n // compute height\n if (size.length == 1 || size[1] == \"auto\") {\n img_height = img_width / aspect_ratio;\n } else if (/%$/.test(size[1])) {\n img_height = orgBox.height * parseFloat(size[1]) / 100;\n } else {\n img_height = parseFloat(size[1]);\n }\n }\n }\n\n var pos = String(backgroundPosition);\n\n // IE sometimes reports single-word positions\n // https://github.com/telerik/kendo-ui-core/issues/2786\n //\n // it seems to switch to percentages when the horizontal\n // position is not \"center\", therefore we don't handle\n // multi-word cases here. All other browsers return\n // percentages or pixels instead of keywords. At least\n // for now...\n switch (pos) {\n case \"bottom\" : pos = \"50% 100%\"; break;\n case \"top\" : pos = \"50% 0\"; break;\n case \"left\" : pos = \"0 50%\"; break;\n case \"right\" : pos = \"100% 50%\"; break;\n case \"center\" : pos = \"50% 50%\"; break;\n }\n\n pos = pos.split(/\\s+/);\n if (pos.length == 1) {\n pos[1] = \"50%\";\n }\n\n if (/%$/.test(pos[0])) {\n pos[0] = parseFloat(pos[0]) / 100 * (orgBox.width - img_width);\n } else {\n pos[0] = parseFloat(pos[0]);\n }\n if (/%$/.test(pos[1])) {\n pos[1] = parseFloat(pos[1]) / 100 * (orgBox.height - img_height);\n } else {\n pos[1] = parseFloat(pos[1]);\n }\n\n var rect = new geo.Rect([ orgBox.left + pos[0], orgBox.top + pos[1] ], [ img_width, img_height ]);\n\n // XXX: background-repeat could be implemented more\n // efficiently as a fill pattern (at least for PDF\n // output, probably SVG too).\n\n function rewX() {\n while (rect.origin.x > box.left) {\n rect.origin.x -= img_width;\n }\n }\n\n function rewY() {\n while (rect.origin.y > box.top) {\n rect.origin.y -= img_height;\n }\n }\n\n function repeatX() {\n while (rect.origin.x < box.right) {\n renderBG(group, rect.clone());\n rect.origin.x += img_width;\n }\n }\n\n if (backgroundRepeat == \"no-repeat\") {\n renderBG(group, rect);\n }\n else if (backgroundRepeat == \"repeat-x\") {\n rewX();\n repeatX();\n }\n else if (backgroundRepeat == \"repeat-y\") {\n rewY();\n while (rect.origin.y < box.bottom) {\n renderBG(group, rect.clone());\n rect.origin.y += img_height;\n }\n }\n else if (backgroundRepeat == \"repeat\") {\n rewX();\n rewY();\n var origin = rect.origin.clone();\n while (rect.origin.y < box.bottom) {\n rect.origin.x = origin.x;\n repeatX();\n rect.origin.y += img_height;\n }\n }\n }\n }\n\n function drawBullet() {\n var listStyleType = getPropertyValue(style, \"list-style-type\");\n if (listStyleType == \"none\") {\n return;\n }\n var listStylePosition = getPropertyValue(style, \"list-style-position\");\n\n function _drawBullet(f) {\n saveStyle(element, function(){\n element.style.position = \"relative\";\n var bullet = element.ownerDocument.createElement(KENDO_PSEUDO_ELEMENT);\n bullet.style.position = \"absolute\";\n bullet.style.boxSizing = \"border-box\";\n if (listStylePosition == \"outside\") {\n bullet.style.width = \"6em\";\n bullet.style.left = \"-6.8em\";\n bullet.style.textAlign = \"right\";\n } else {\n bullet.style.left = \"0px\";\n }\n f(bullet);\n element.insertBefore(bullet, element.firstChild);\n renderElement(bullet, group);\n element.removeChild(bullet);\n });\n }\n\n function elementIndex(f) {\n var a = element.parentNode.children;\n var k = element.getAttribute(\"kendo-split-index\");\n if (k != null) {\n return f(k|0, a.length);\n }\n for (var i = 0; i < a.length; ++i) {\n if (a[i] === element) {\n return f(i, a.length);\n }\n }\n }\n\n switch (listStyleType) {\n case \"circle\":\n case \"disc\":\n case \"square\":\n _drawBullet(function(bullet){\n bullet.innerHTML = ' ';\n bullet.setAttribute(KENDO_BULLET_TYPE, listStyleType);\n });\n break;\n\n case \"decimal\":\n case \"decimal-leading-zero\":\n _drawBullet(function(bullet){\n elementIndex(function(idx){\n ++idx;\n if (listStyleType == \"decimal-leading-zero\" && idx < 10) {\n idx = \"0\" + idx;\n }\n bullet.innerHTML = idx + \".\";\n });\n });\n break;\n\n case \"lower-roman\":\n case \"upper-roman\":\n _drawBullet(function(bullet){\n elementIndex(function(idx){\n idx = arabicToRoman(idx + 1);\n if (listStyleType == \"upper-roman\") {\n idx = idx.toUpperCase();\n }\n bullet.innerHTML = idx + \".\";\n });\n });\n break;\n\n case \"lower-latin\":\n case \"lower-alpha\":\n case \"upper-latin\":\n case \"upper-alpha\":\n _drawBullet(function(bullet){\n elementIndex(function(idx){\n idx = alphaNumeral(idx);\n if (/^upper/i.test(listStyleType)) {\n idx = idx.toUpperCase();\n }\n bullet.innerHTML = idx + \".\";\n });\n });\n break;\n }\n }\n\n // draws a single border box\n function drawOneBox(box, isFirst, isLast) {\n if (box.width === 0 || box.height === 0) {\n return;\n }\n\n drawBackground(box);\n\n var shouldDrawLeft = (left.width > 0 && ((isFirst && dir == \"ltr\") || (isLast && dir == \"rtl\")));\n var shouldDrawRight = (right.width > 0 && ((isLast && dir == \"ltr\") || (isFirst && dir == \"rtl\")));\n\n // The most general case is that the 4 borders have different widths and border\n // radiuses. The way that is handled is by drawing 3 Paths for each border: the\n // straight line, and two round corners which represent half of the entire rounded\n // corner. To simplify code those shapes are drawed at origin (by the drawEdge\n // function), then translated/rotated into the right position.\n //\n // However, this leads to poor results due to rounding in the simpler cases where\n // borders are straight lines. Therefore we handle a few such cases separately with\n // straight lines. C^wC^wC^w -- nope, scratch that. poor rendering was because of a bug\n // in Chrome (getClientRects() returns rounded integer values rather than exact floats.\n // web dev is still a ghetto.)\n\n // first, just in case there is no border...\n if (top.width === 0 && left.width === 0 && right.width === 0 && bottom.width === 0) {\n return;\n }\n\n // START paint borders\n // if all borders have equal colors...\n if (top.color == right.color && top.color == bottom.color && top.color == left.color) {\n\n // if same widths too, we can draw the whole border by stroking a single path.\n if (top.width == right.width && top.width == bottom.width && top.width == left.width)\n {\n if (shouldDrawLeft && shouldDrawRight) {\n // reduce box by half the border width, so we can draw it by stroking.\n box = innerBox(box, top.width/2);\n\n // adjust the border radiuses, again by top.width/2, and make the path element.\n var path = elementRoundBox(element, box, top.width/2);\n path.options.stroke = {\n color: top.color,\n width: top.width\n };\n group.append(path);\n return;\n }\n }\n }\n\n // if border radiuses are zero and widths are at most one pixel, we can again use simple\n // paths.\n if (rTL0.x === 0 && rTR0.x === 0 && rBR0.x === 0 && rBL0.x === 0) {\n // alright, 1.9px will do as well. the difference in color blending should not be\n // noticeable.\n if (top.width < 2 && left.width < 2 && right.width < 2 && bottom.width < 2) {\n // top border\n if (top.width > 0) {\n group.append(\n new Path({\n stroke: { width: top.width, color: top.color }\n })\n .moveTo(box.left, box.top + top.width/2)\n .lineTo(box.right, box.top + top.width/2)\n );\n }\n\n // bottom border\n if (bottom.width > 0) {\n group.append(\n new Path({\n stroke: { width: bottom.width, color: bottom.color }\n })\n .moveTo(box.left, box.bottom - bottom.width/2)\n .lineTo(box.right, box.bottom - bottom.width/2)\n );\n }\n\n // left border\n if (shouldDrawLeft) {\n group.append(\n new Path({\n stroke: { width: left.width, color: left.color }\n })\n .moveTo(box.left + left.width/2, box.top)\n .lineTo(box.left + left.width/2, box.bottom)\n );\n }\n\n // right border\n if (shouldDrawRight) {\n group.append(\n new Path({\n stroke: { width: right.width, color: right.color }\n })\n .moveTo(box.right - right.width/2, box.top)\n .lineTo(box.right - right.width/2, box.bottom)\n );\n }\n\n return;\n }\n }\n // END paint borders\n\n var tmp = adjustBorderRadiusForBox(box, rTL0, rTR0, rBR0, rBL0);\n var rTL = tmp.tl;\n var rTR = tmp.tr;\n var rBR = tmp.br;\n var rBL = tmp.bl;\n\n // top border\n drawEdge(top.color,\n box.width, top.width, left.width, right.width,\n rTL, rTR,\n [ 1, 0, 0, 1, box.left, box.top ]);\n\n // bottom border\n drawEdge(bottom.color,\n box.width, bottom.width, right.width, left.width,\n rBR, rBL,\n [ -1, 0, 0, -1, box.right, box.bottom ]);\n\n // for left/right borders we need to invert the border-radiuses\n function inv(p) {\n return { x: p.y, y: p.x };\n }\n\n // left border\n drawEdge(left.color,\n box.height, left.width, bottom.width, top.width,\n inv(rBL), inv(rTL),\n [ 0, -1, 1, 0, box.left, box.bottom ]);\n\n // right border\n drawEdge(right.color,\n box.height, right.width, top.width, bottom.width,\n inv(rTR), inv(rBR),\n [ 0, 1, -1, 0, box.right, box.top ]);\n }\n}\n\nfunction gradientRenderer(gradient) {\n return function(group, rect) {\n var width = rect.width(), height = rect.height();\n\n switch (gradient.type) {\n case \"linear\":\n\n // figure out the angle.\n var angle = gradient.angle != null ? gradient.angle : Math.PI;\n switch (gradient.to) {\n case \"top\":\n angle = 0;\n break;\n case \"left\":\n angle = -Math.PI / 2;\n break;\n case \"bottom\":\n angle = Math.PI;\n break;\n case \"right\":\n angle = Math.PI / 2;\n break;\n case \"top left\": case \"left top\":\n angle = -Math.atan2(height, width);\n break;\n case \"top right\": case \"right top\":\n angle = Math.atan2(height, width);\n break;\n case \"bottom left\": case \"left bottom\":\n angle = Math.PI + Math.atan2(height, width);\n break;\n case \"bottom right\": case \"right bottom\":\n angle = Math.PI - Math.atan2(height, width);\n break;\n }\n\n if (gradient.reverse) {\n angle -= Math.PI;\n }\n\n // limit the angle between 0..2PI\n angle %= 2 * Math.PI;\n if (angle < 0) {\n angle += 2 * Math.PI;\n }\n\n // compute gradient's start/end points. here len is the length of the gradient line\n // and x,y is the end point relative to the center of the rectangle in conventional\n // (math) axis direction.\n\n // this is the original (unscaled) length of the gradient line. needed to deal with\n // absolutely positioned color stops. formula from the CSS spec:\n // http://dev.w3.org/csswg/css-images-3/#linear-gradient-syntax\n var pxlen = Math.abs(width * Math.sin(angle)) + Math.abs(height * Math.cos(angle));\n\n // The math below is pretty simple, but it took a while to figure out. We compute x\n // and y, the *end* of the gradient line. However, we want to transform them into\n // element-based coordinates (SVG's gradientUnits=\"objectBoundingBox\"). That means,\n // x=0 is the left edge, x=1 is the right edge, y=0 is the top edge and y=1 is the\n // bottom edge.\n //\n // A naive approach would use the original angle for these calculations. Say we'd\n // like to draw a gradient angled at 45deg in a 100x400 box. When we use\n // objectBoundingBox, the renderer will draw it in a 1x1 *square* box, and then\n // scale that to the desired dimensions. The 45deg angle will look more like 70deg\n // after scaling. SVG (http://www.w3.org/TR/SVG/pservers.html#LinearGradients) says\n // the following:\n //\n // When gradientUnits=\"objectBoundingBox\" and 'gradientTransform' is the\n // identity matrix, the normal of the linear gradient is perpendicular to the\n // gradient vector in object bounding box space (i.e., the abstract coordinate\n // system where (0,0) is at the top/left of the object bounding box and (1,1) is\n // at the bottom/right of the object bounding box). When the object's bounding\n // box is not square, the gradient normal which is initially perpendicular to\n // the gradient vector within object bounding box space may render\n // non-perpendicular relative to the gradient vector in user space. If the\n // gradient vector is parallel to one of the axes of the bounding box, the\n // gradient normal will remain perpendicular. This transformation is due to\n // application of the non-uniform scaling transformation from bounding box space\n // to user space.\n //\n // which is an extremely long and confusing way to tell what I just said above.\n //\n // For this reason we need to apply the reverse scaling to the original angle, so\n // that when it'll finally be rendered it'll actually be at the desired slope. Now\n // I'll let you figure out the math yourself.\n\n var scaledAngle = Math.atan(width * Math.tan(angle) / height);\n var sin = Math.sin(scaledAngle), cos = Math.cos(scaledAngle);\n var len = Math.abs(sin) + Math.abs(cos);\n var x = len/2 * sin;\n var y = len/2 * cos;\n\n // Because of the arctangent, our scaledAngle ends up between -PI/2..PI/2, possibly\n // losing the intended direction of the gradient. The following fixes it.\n if (angle > Math.PI/2 && angle <= 3*Math.PI/2) {\n x = -x;\n y = -y;\n }\n\n // compute the color stops.\n var implicit = [], right = 0;\n var stops = gradient.stops.map(function(s, i){\n var offset = s.percent;\n if (offset) {\n offset = parseFloat(offset) / 100;\n } else if (s.length) {\n offset = parseFloat(s.length) / pxlen;\n } else if (i === 0) {\n offset = 0;\n } else if (i == gradient.stops.length - 1) {\n offset = 1;\n }\n var stop = {\n color: s.color.toCssRgba(),\n offset: offset\n };\n if (offset != null) {\n right = offset;\n // fix implicit offsets\n implicit.forEach(function(s, i){\n var stop = s.stop;\n stop.offset = s.left + (right - s.left) * (i + 1) / (implicit.length + 1);\n });\n implicit = [];\n } else {\n implicit.push({ left: right, stop: stop });\n }\n return stop;\n });\n\n var start = [ 0.5 - x, 0.5 + y ];\n var end = [ 0.5 + x, 0.5 - y ];\n\n // finally, draw it.\n group.append(\n Path.fromRect(rect)\n .stroke(null)\n .fill(new LinearGradient({\n start : start,\n end : end,\n stops : stops,\n userSpace : false\n }))\n );\n break;\n case \"radial\":\n // XXX:\n if (window.console && window.console.log) {\n window.console.log(\"Radial gradients are not yet supported in HTML renderer\");\n }\n break;\n }\n };\n}\n\nfunction maybeRenderWidget(element, group) {\n let visual;\n if (element._kendoExportVisual) {\n const rect = element.getBoundingClientRect();\n const size = {\n width: rect.width,\n height: rect.height\n };\n visual = element._kendoExportVisual(size);\n } else if (window.kendo && window.kendo.jQuery && element.getAttribute(window.kendo.attr(\"role\"))) {\n let widget = window.kendo.widgetInstance(window.kendo.jQuery(element));\n if (widget && (widget.exportDOMVisual || widget.exportVisual)) {\n if (widget.exportDOMVisual) {\n visual = widget.exportDOMVisual();\n } else {\n visual = widget.exportVisual();\n }\n }\n }\n\n if (!visual) {\n return false;\n }\n\n const wrap = new Group();\n wrap.children.push(visual);\n\n const bbox = element.getBoundingClientRect();\n wrap.transform(geo.transform().translate(bbox.left, bbox.top));\n\n group.append(wrap);\n\n return true;\n}\n\nfunction maybeRenderBullet(element, group) {\n const bulletType = element.getAttribute(KENDO_BULLET_TYPE);\n\n if (!bulletType) {\n return false;\n }\n\n var box = element.getBoundingClientRect();\n const color = getComputedStyle(element).color;\n\n if (bulletType === 'square') {\n const rectSize = box.height / 5;\n group.append(new Rect(new geo.Rect([\n box.right - rectSize,\n box.top + box.height / 2.1\n ], [rectSize, rectSize])).fill(color).stroke(color));\n } else {\n const radius = box.height / 7;\n const center = [\n box.right - radius,\n box.top + (box.height + radius) / 2\n ];\n const circle = new Circle(new geo.Circle(center, radius));\n if (bulletType === 'circle') {\n circle.stroke(color, 0.5);\n } else {\n circle.fill(color).stroke(null);\n }\n group.append(circle);\n }\n\n return true;\n}\n\nfunction renderImage(element, url, group) {\n var box = getContentBox(element);\n var rect = new geo.Rect([ box.left, box.top ], [ box.width, box.height ]);\n var image = new Image(url, rect);\n setClipping(image, elementRoundBox(element, box, \"content\"));\n group.append(image);\n}\n\nfunction zIndexSort(a, b) {\n var sa = getComputedStyle(a);\n var sb = getComputedStyle(b);\n var za = parseFloat(getPropertyValue(sa, \"z-index\"));\n var zb = parseFloat(getPropertyValue(sb, \"z-index\"));\n var pa = getPropertyValue(sa, \"position\");\n var pb = getPropertyValue(sb, \"position\");\n if (isNaN(za) && isNaN(zb)) {\n if ((/static|absolute/.test(pa)) && (/static|absolute/.test(pb))) {\n return 0;\n }\n if (pa == \"static\") {\n return -1;\n }\n if (pb == \"static\") {\n return 1;\n }\n return 0;\n }\n if (isNaN(za)) {\n return zb === 0 ? 0 : zb > 0 ? -1 : 1;\n }\n if (isNaN(zb)) {\n return za === 0 ? 0 : za > 0 ? 1 : -1;\n }\n return parseFloat(za) - parseFloat(zb);\n}\n\nfunction isFormField(element) {\n return /^(?:textarea|select|input)$/i.test(element.tagName);\n}\n\nfunction getSelectedOption(element) {\n if (element.selectedOptions && element.selectedOptions.length > 0) {\n return element.selectedOptions[0];\n }\n return element.options[element.selectedIndex];\n}\n\nfunction renderCheckbox(element, group) {\n var style = getComputedStyle(element);\n var color = getPropertyValue(style, \"color\");\n var box = element.getBoundingClientRect();\n if (element.type == \"checkbox\") {\n group.append(\n Path.fromRect(\n new geo.Rect([ box.left+1, box.top+1 ],\n [ box.width-2, box.height-2 ])\n ).stroke(color, 1)\n );\n if (element.checked) {\n // fill a rectangle inside? looks kinda ugly.\n // group.append(\n // Path.fromRect(\n // new geo.Rect([ box.left+4, box.top+4 ],\n // [ box.width-8, box.height-8])\n // ).fill(color).stroke(null)\n // );\n\n // let's draw a checkmark instead. artistic, eh?\n group.append(\n new Path()\n .stroke(color, 1.2)\n .moveTo(box.left + 0.22 * box.width,\n box.top + 0.55 * box.height)\n .lineTo(box.left + 0.45 * box.width,\n box.top + 0.75 * box.height)\n .lineTo(box.left + 0.78 * box.width,\n box.top + 0.22 * box.width)\n );\n }\n } else {\n group.append(\n new Circle(\n new geo.Circle([\n (box.left + box.right) / 2,\n (box.top + box.bottom) / 2\n ], Math.min(box.width-2, box.height-2) / 2)\n ).stroke(color, 1)\n );\n if (element.checked) {\n group.append(\n new Circle(\n new geo.Circle([\n (box.left + box.right) / 2,\n (box.top + box.bottom) / 2\n ], Math.min(box.width-8, box.height-8) / 2)\n ).fill(color).stroke(null)\n );\n }\n }\n}\n\nfunction renderFormField(element, group) {\n var tag = element.tagName.toLowerCase();\n if (tag == \"input\" && (element.type == \"checkbox\" || element.type == \"radio\")) {\n return renderCheckbox(element, group);\n }\n var p = element.parentNode;\n var doc = element.ownerDocument;\n var el = doc.createElement(KENDO_PSEUDO_ELEMENT);\n var option;\n setStyle(el, getCssText(getComputedStyle(element)));\n if (tag == \"input\") {\n el.style.whiteSpace = \"pre\";\n }\n if (tag == \"select\" || tag == \"textarea\") {\n el.style.overflow = \"auto\";\n }\n if (tag == \"select\") {\n if (element.multiple) {\n for (var i = 0; i < element.options.length; ++i) {\n option = doc.createElement(KENDO_PSEUDO_ELEMENT);\n setStyle(option, getCssText(getComputedStyle(element.options[i])));\n option.style.display = \"block\"; // IE9 messes up without this\n option.textContent = element.options[i].textContent;\n el.appendChild(option);\n }\n } else {\n option = getSelectedOption(element);\n if (option) {\n el.textContent = option.textContent;\n }\n }\n } else {\n el.textContent = element.value;\n }\n p.insertBefore(el, element);\n el.scrollLeft = element.scrollLeft;\n el.scrollTop = element.scrollTop;\n\n // must temporarily hide the original element, otherwise it\n // may affect layout of the fake element we want to render.\n element.style.display = \"none\";\n\n renderContents(el, group);\n element.style.display = \"\";\n p.removeChild(el);\n}\n\nfunction serializeSVG(element) {\n const serializer = new window.XMLSerializer();\n let xml = serializer.serializeToString(element);\n\n if (browser.mozilla && !(element.getAttribute(\"width\") && element.getAttribute(\"height\"))) {\n const doc = new window.DOMParser().parseFromString(xml, \"image/svg+xml\");\n const svg = doc.documentElement;\n const box = getContentBox(element);\n svg.setAttribute(\"width\", box.width);\n svg.setAttribute(\"height\", box.height);\n xml = serializer.serializeToString(svg);\n }\n\n return xml;\n}\n\nfunction renderContents(element, group) {\n if (nodeInfo._stackingContext.element === element) {\n // the group that was set in pushNodeInfo might have\n // changed due to clipping/transforms, update it here.\n nodeInfo._stackingContext.group = group;\n }\n switch (element.tagName.toLowerCase()) {\n case \"img\":\n renderImage(element, element.src, group);\n break;\n\n case \"svg\":\n let xml = serializeSVG(element);\n let dataURL = `data:image/svg+xml;base64,${encodeBase64(xml)}`;\n renderImage(element, dataURL, group);\n break;\n\n case \"canvas\":\n try {\n renderImage(element, element.toDataURL(\"image/png\"), group);\n } catch (ex) {\n // tainted; can't draw it, ignore.\n }\n break;\n\n case \"textarea\":\n case \"input\":\n case \"select\":\n renderFormField(element, group);\n break;\n\n default:\n var children = [], floats = [], positioned = [];\n for (var i = element.firstChild; i; i = i.nextSibling) {\n switch (i.nodeType) {\n case 3: // Text\n if (/\\S/.test(i.data)) {\n renderText(element, i, group);\n }\n break;\n case 1: // Element\n var style = getComputedStyle(i);\n var floating = getPropertyValue(style, \"float\");\n var position = getPropertyValue(style, \"position\");\n if (position != \"static\") {\n positioned.push(i);\n }\n else if (floating != \"none\") {\n floats.push(i);\n } else {\n children.push(i);\n }\n break;\n }\n }\n\n mergeSort(children, zIndexSort).forEach(function(el){ renderElement(el, group); });\n mergeSort(floats, zIndexSort).forEach(function(el){ renderElement(el, group); });\n mergeSort(positioned, zIndexSort).forEach(function(el){ renderElement(el, group); });\n }\n}\n\nfunction renderText(element, node, group) {\n if (emptyClipbox()) {\n return;\n }\n var style = getComputedStyle(element);\n\n if (parseFloat(getPropertyValue(style, \"text-indent\")) < -500) {\n // assume it should not be displayed. the slider's\n // draggable handle displays a Drag text for some reason,\n // having text-indent: -3333px.\n return;\n }\n\n var text = node.data;\n var start = 0;\n var end = text.search(/\\S\\s*$/) + 1;\n\n if (!end) {\n return; // whitespace-only node\n }\n\n var fontSize = getPropertyValue(style, \"font-size\");\n var lineHeight = getPropertyValue(style, \"line-height\");\n\n // simply getPropertyValue(\"font\") doesn't work in Firefox :-\\\n var font = [\n getPropertyValue(style, \"font-style\"),\n getPropertyValue(style, \"font-variant\"),\n getPropertyValue(style, \"font-weight\"),\n fontSize, // no need for line height here; it breaks layout in FF\n getPropertyValue(style, \"font-family\")\n ].join(\" \");\n\n fontSize = parseFloat(fontSize);\n lineHeight = parseFloat(lineHeight);\n\n if (fontSize === 0 || isNaN(fontSize)) {\n return;\n }\n\n var color = getPropertyValue(style, \"color\");\n var range = element.ownerDocument.createRange();\n var align = getPropertyValue(style, \"text-align\");\n var isJustified = align == \"justify\";\n var columnCount = getPropertyValue(style, \"column-count\", 1);\n var whiteSpace = getPropertyValue(style, \"white-space\");\n var textTransform = getPropertyValue(style, \"text-transform\");\n\n // A line of 500px, with a font of 12px, contains an average of 80 characters, but since we\n // err, we'd like to guess a bigger number rather than a smaller one. Multiplying by 5\n // seems to be a good option.\n var estimateLineLength = element.getBoundingClientRect().width / fontSize * 5;\n if (estimateLineLength === 0) {\n estimateLineLength = 500;\n }\n\n // we'll maintain this so we can workaround bugs in Chrome's Range.getClientRects\n // https://github.com/telerik/kendo/issues/5740\n var prevLineBottom = null;\n\n var underline = nodeInfo[\"underline\"];\n var lineThrough = nodeInfo[\"line-through\"];\n var overline = nodeInfo[\"overline\"];\n var underlineOffset = nodeInfo[\"underline-offset\"];\n\n if (underline) {\n forEachRect(decorateUnder);\n }\n\n // doChunk returns true when all text has been rendered\n while (!doChunk()) {}\n\n if (lineThrough || overline) {\n forEachRect(decorateOver);\n }\n\n return; // only function declarations after this line\n\n function forEachRect(callback) {\n range.selectNode(node);\n let clientRects = slice(range.getClientRects());\n\n forEachRect = (cb) => clientRects.forEach(cb);\n forEachRect(callback);\n }\n\n function actuallyGetRangeBoundingRect(range) {\n // XXX: to be revised when this Chrome bug is fixed:\n // https://bugs.chromium.org/p/chromium/issues/detail?id=612459\n if (microsoft || browser.chrome || browser.safari) {\n // Workaround browser bugs: IE and Chrome would sometimes\n // return 0 or 1-width rectangles before or after the main\n // one. https://github.com/telerik/kendo/issues/4674\n\n // Actually Chrome 50 got worse, since the rectangles can now have the width of a\n // full character, making it hard to tell whether it's a bogus rectangle or valid\n // selection location. The workaround is to ignore rectangles that fall on the\n // previous line. https://github.com/telerik/kendo/issues/5740\n var rectangles = range.getClientRects(), box = {\n top : Infinity,\n right : -Infinity,\n bottom : -Infinity,\n left : Infinity\n }, done = false;\n for (var i = 0; i < rectangles.length; ++i) {\n var b = rectangles[i];\n if (b.width <= 1 || b.bottom === prevLineBottom) {\n continue; // bogus rectangle\n }\n box.left = Math.min(b.left , box.left);\n box.top = Math.min(b.top , box.top);\n box.right = Math.max(b.right , box.right);\n box.bottom = Math.max(b.bottom , box.bottom);\n done = true;\n }\n if (!done) {\n return range.getBoundingClientRect();\n }\n box.width = box.right - box.left;\n box.height = box.bottom - box.top;\n return box;\n }\n return range.getBoundingClientRect();\n }\n\n // Render a chunk of text, typically one line (but for justified text we render each word as\n // a separate Text object, because spacing is variable). Returns true when it finished the\n // current node. After each chunk it updates `start` to just after the last rendered\n // character.\n function doChunk() {\n var origStart = start;\n var box, pos = text.substr(start).search(/\\S/);\n start += pos;\n if (pos < 0 || start >= end) {\n return true;\n }\n\n // Select a single character to determine the height of a line of text. The box.bottom\n // will be essential for us to figure out where the next line begins.\n range.setStart(node, start);\n range.setEnd(node, start + 1);\n box = actuallyGetRangeBoundingRect(range);\n\n // for justified text we must split at each space, because space has variable width.\n var found = false;\n if (isJustified || columnCount > 1) {\n pos = text.substr(start).search(/\\s/);\n if (pos >= 0) {\n // we can only split there if it's on the same line, otherwise we'll fall back\n // to the default mechanism (see findEOL below).\n range.setEnd(node, start + pos);\n var r = actuallyGetRangeBoundingRect(range);\n if (r.bottom == box.bottom) {\n box = r;\n found = true;\n start += pos;\n }\n }\n }\n\n if (!found) {\n // This code does three things: (1) it selects one line of text in `range`, (2) it\n // leaves the bounding rect of that line in `box` and (3) it returns the position\n // just after the EOL. We know where the line starts (`start`) but we don't know\n // where it ends. To figure this out, we select a piece of text and look at the\n // bottom of the bounding box. If it changes, we have more than one line selected\n // and should retry with a smaller selection.\n //\n // To speed things up, we first try to select all text in the node (`start` ->\n // `end`). If there's more than one line there, then select only half of it. And\n // so on. When we find a value for `end` that fits in one line, we try increasing\n // it (also in halves) until we get to the next line. The algorithm stops when the\n // right side of the bounding box does not change.\n //\n // One more thing to note is that everything happens in a single Text DOM node.\n // There's no other tags inside it, therefore the left/top coordinates of the\n // bounding box will not change.\n pos = (function findEOL(min, eol, max){\n range.setEnd(node, eol);\n var r = actuallyGetRangeBoundingRect(range);\n if (r.bottom != box.bottom && min < eol) {\n return findEOL(min, (min + eol) >> 1, eol);\n } else if (r.right != box.right) {\n box = r;\n if (eol < max) {\n return findEOL(eol, (eol + max) >> 1, max);\n } else {\n return eol;\n }\n } else {\n return eol;\n }\n })(start, Math.min(end, start + estimateLineLength), end);\n\n if (pos == start) {\n // if EOL is at the start, then no more text fits on this line. Skip the\n // remainder of this node entirely to avoid a stack overflow.\n return true;\n }\n start = pos;\n\n pos = range.toString().search(/\\s+$/);\n if (pos === 0) {\n return false; // whitespace only; we should not get here.\n }\n if (pos > 0) {\n // eliminate trailing whitespace\n range.setEnd(node, range.startOffset + pos);\n box = actuallyGetRangeBoundingRect(range);\n }\n }\n\n // another workaround for IE: if we rely on getBoundingClientRect() we'll overlap with the bullet for LI\n // elements. Calling getClientRects() and using the *first* rect appears to give us the correct location.\n // Note: not to be used in Chrome as it randomly returns a zero-width rectangle from the previous line.\n if (microsoft) {\n box = range.getClientRects()[0];\n }\n\n var str = range.toString();\n if (!/^(?:pre|pre-wrap)$/i.test(whiteSpace)) {\n // node with non-significant space -- collapse whitespace.\n str = str.replace(/\\s+/g, \" \");\n }\n else if (/\\t/.test(str)) {\n // with significant whitespace we need to do something about literal TAB characters.\n // There's no TAB glyph in a font so they would be rendered in PDF as an empty box,\n // and the whole text will stretch to fill the original width. The core PDF lib\n // does not have sufficient context to deal with it.\n\n // calculate the starting column here, since we initially discarded any whitespace.\n var cc = 0;\n for (pos = origStart; pos < range.startOffset; ++pos) {\n var code = text.charCodeAt(pos);\n if (code == 9) {\n // when we meet a TAB we must round up to the next tab stop.\n // in all browsers TABs seem to be 8 characters.\n cc += 8 - cc % 8;\n } else if (code == 10 || code == 13) {\n // just in case we meet a newline we must restart.\n cc = 0;\n } else {\n // ordinary character --> advance one column\n cc++;\n }\n }\n\n // based on starting column, replace any TAB characters in the string we actually\n // have to display with spaces so that they align to columns multiple of 8.\n while ((pos = str.search(\"\\t\")) >= 0) {\n var indent = \" \".substr(0, 8 - (cc + pos) % 8);\n str = str.substr(0, pos) + indent + str.substr(pos + 1);\n }\n }\n\n if (!found) {\n prevLineBottom = box.bottom;\n }\n drawText(str, box);\n }\n\n function drawText(str, box) {\n // In IE the box height will be approximately lineHeight, while in\n // other browsers it'll (correctly) be the height of the bounding\n // box for the current text/font. Which is to say, IE sucks again.\n // The only good solution I can think of is to measure the text\n // ourselves and center the bounding box.\n if (microsoft && !isNaN(lineHeight)) {\n var height = getFontHeight(font);\n var top = (box.top + box.bottom - height) / 2;\n box = {\n top : top,\n right : box.right,\n bottom : top + height,\n left : box.left,\n height : height,\n width : box.right - box.left\n };\n }\n\n // var path = new Path({ stroke: { color: \"red\" }});\n // path.moveTo(box.left, box.top)\n // .lineTo(box.right, box.top)\n // .lineTo(box.right, box.bottom)\n // .lineTo(box.left, box.bottom)\n // .close();\n // group.append(path);\n\n switch (textTransform) {\n case \"uppercase\":\n str = str.toUpperCase();\n break;\n case \"lowercase\":\n str = str.toLowerCase();\n break;\n case \"capitalize\":\n str = str.replace(/(?:^|\\s)\\S/g, l => l.toUpperCase());\n break;\n }\n\n var text = new TextRect(\n str, new geo.Rect([ box.left, box.top ],\n [ box.width, box.height ]),\n {\n font: font,\n fill: { color: color }\n }\n );\n group.append(text);\n }\n\n function drawTextLine(lineWidth, textBox, color, ypos) {\n if (color) {\n var path = new Path({ stroke: {\n width: lineWidth,\n color: color\n }});\n\n ypos -= lineWidth;\n path.moveTo(textBox.left, ypos)\n .lineTo(textBox.right, ypos);\n group.append(path);\n }\n }\n\n function decorateOver(box) {\n let width = fontSize / 12;\n drawTextLine(width, box, lineThrough, box.bottom - box.height / 2.7);\n drawTextLine(width, box, overline, box.top);\n }\n\n function decorateUnder(box) {\n let width = fontSize / 12;\n let underlinePos = box.bottom;\n if (underlineOffset != null) {\n underlinePos += underlineOffset;\n } else {\n underlinePos += width; // for \"auto\" it seems better to add line width\n }\n drawTextLine(width, box, underline, underlinePos);\n }\n}\n\nfunction groupInStackingContext(element, group, zIndex) {\n var main;\n if (zIndex != \"auto\") {\n // use the current stacking context\n main = nodeInfo._stackingContext.group;\n zIndex = parseFloat(zIndex);\n } else {\n // normal flow — use given container. we still have to\n // figure out where should we insert this element with the\n // assumption that its z-index is zero, as the group might\n // already contain elements with higher z-index.\n main = group;\n zIndex = 0;\n }\n var a = main.children;\n for (var i = 0; i < a.length; ++i) {\n if (a[i]._dom_zIndex != null && a[i]._dom_zIndex > zIndex) {\n break;\n }\n }\n\n var tmp = new Group();\n main.insert(i, tmp);\n tmp._dom_zIndex = zIndex;\n\n if (main !== group) {\n // console.log(\"Placing\", element, \"in\", nodeInfo._stackingContext.element, \"at position\", i, \" / \", a.length);\n // console.log(a.slice(i+1));\n\n // if (nodeInfo._matrix) {\n // tmp.transform(nodeInfo._matrix);\n // }\n if (nodeInfo._clipbox) {\n var m = nodeInfo._matrix.invert();\n var r = nodeInfo._clipbox.transformCopy(m);\n setClipping(tmp, Path.fromRect(r));\n // console.log(r);\n // tmp.append(Path.fromRect(r));\n // tmp.append(new Text(element.className || element.id, r.topLeft()));\n }\n }\n\n return tmp;\n}\n\nfunction renderElement(element, container) {\n var style = getComputedStyle(element);\n\n updateCounters(style);\n\n if (/^(style|script|link|meta|iframe|col|colgroup)$/i.test(element.tagName)) {\n return;\n }\n\n if (nodeInfo._clipbox == null) {\n return;\n }\n\n var opacity = parseFloat(getPropertyValue(style, \"opacity\"));\n var visibility = getPropertyValue(style, \"visibility\");\n var display = getPropertyValue(style, \"display\");\n\n if (opacity === 0 || visibility == \"hidden\" || display == \"none\") {\n return;\n }\n\n var tr = getTransform(style);\n var group;\n\n var zIndex = getPropertyValue(style, \"z-index\");\n if ((tr || opacity < 1) && zIndex == \"auto\") {\n zIndex = 0;\n }\n group = groupInStackingContext(element, container, zIndex);\n\n // XXX: remove at some point\n // group._pdfElement = element;\n // group.options._pdfDebug = \"\";\n // if (element.id) {\n // group.options._pdfDebug = \"#\" + element.id;\n // }\n // if (element.className) {\n // group.options._pdfDebug += \".\" + element.className.split(\" \").join(\".\");\n // }\n\n if (opacity < 1) {\n group.opacity(opacity * group.opacity());\n }\n\n pushNodeInfo(element, style, group);\n\n if (!tr) {\n _renderWithPseudoElements(element, group);\n }\n else {\n saveStyle(element, function(){\n // must clear transform, so getBoundingClientRect returns correct values.\n pleaseSetPropertyValue(element.style, \"transform\", \"none\", \"important\");\n\n // must also clear transitions, so correct values are returned *immediately*\n pleaseSetPropertyValue(element.style, \"transition\", \"none\", \"important\");\n\n // the presence of any transform makes it behave like it had position: relative,\n // because why not.\n // http://meyerweb.com/eric/thoughts/2011/09/12/un-fixing-fixed-elements-with-css-transforms/\n if (getPropertyValue(style, \"position\") == \"static\") {\n // but only if it's not already positioned. :-/\n pleaseSetPropertyValue(element.style, \"position\", \"relative\", \"important\");\n }\n\n // must translate to origin before applying the CSS\n // transformation, then translate back.\n var bbox = element.getBoundingClientRect();\n var x = bbox.left + tr.origin[0];\n var y = bbox.top + tr.origin[1];\n var m = [ 1, 0, 0, 1, -x, -y ];\n m = mmul(m, tr.matrix);\n m = mmul(m, [ 1, 0, 0, 1, x, y ]);\n m = setTransform(group, m);\n\n nodeInfo._matrix = nodeInfo._matrix.multiplyCopy(m);\n\n _renderWithPseudoElements(element, group);\n });\n }\n\n popNodeInfo();\n\n //drawDebugBox(element.getBoundingClientRect(), container);\n}\n\n// function drawDebugBox(box, group, color) {\n// var path = Path.fromRect(new geo.Rect([ box.left, box.top ], [ box.width, box.height ]));\n// if (color) {\n// path.stroke(color);\n// }\n// group.append(path);\n// }\n\n// function dumpTextNode(node) {\n// var txt = node.data.replace(/^\\s+/, \"\");\n// if (txt.length < 100) {\n// console.log(node.data.length + \": |\" + txt);\n// } else {\n// console.log(node.data.length + \": |\" + txt.substr(0, 50) + \"|...|\" + txt.substr(-50));\n// }\n// }\n\nfunction mmul(a, b) {\n var a1 = a[0], b1 = a[1], c1 = a[2], d1 = a[3], e1 = a[4], f1 = a[5];\n var a2 = b[0], b2 = b[1], c2 = b[2], d2 = b[3], e2 = b[4], f2 = b[5];\n return [\n a1*a2 + b1*c2, a1*b2 + b1*d2,\n c1*a2 + d1*c2, c1*b2 + d1*d2,\n e1*a2 + f1*c2 + e2, e1*b2 + f1*d2 + f2\n ];\n}\n\nexport { drawDOM, drawText, getFontFaces };\n","export default function template() {\n throw new Error(\"Template implementation missing.\");\n}\n","import Matrix from '../geometry/matrix';\nimport toMatrix from '../geometry/to-matrix';\n\nconst IDENTITY_MATRIX_HASH = Matrix.IDENTITY.toString();\n\nconst measurable = TBase => (\n class extends TBase {\n bbox(transformation) {\n const combinedMatrix = toMatrix(this.currentTransform(transformation));\n const matrixHash = combinedMatrix ? combinedMatrix.toString() : IDENTITY_MATRIX_HASH;\n let bbox;\n\n if (this._bboxCache && this._matrixHash === matrixHash) {\n bbox = this._bboxCache.clone();\n } else {\n bbox = this._bbox(combinedMatrix);\n this._bboxCache = bbox ? bbox.clone() : null;\n this._matrixHash = matrixHash;\n }\n\n const strokeWidth = this.options.get(\"stroke.width\");\n if (strokeWidth && bbox) {\n bbox.expand(strokeWidth / 2);\n }\n\n return bbox;\n }\n\n geometryChange() {\n delete this._bboxCache;\n this.trigger(\"geometryChange\", {\n element: this\n });\n }\n }\n);\n\nexport default measurable;","import { defined } from '../util';\n\nconst GRADIENT = \"Gradient\";\n\nconst paintable = TBase => (\n class extends TBase {\n fill(color, opacity) {\n const options = this.options;\n\n if (defined(color)) {\n if (color && color.nodeType !== GRADIENT) {\n const newFill = {\n color: color\n };\n if (defined(opacity)) {\n newFill.opacity = opacity;\n }\n options.set(\"fill\", newFill);\n } else {\n options.set(\"fill\", color);\n }\n\n return this;\n }\n\n return options.get(\"fill\");\n }\n\n stroke(color, width, opacity) {\n if (defined(color)) {\n this.options.set(\"stroke.color\", color);\n\n if (defined(width)) {\n this.options.set(\"stroke.width\", width);\n }\n\n if (defined(opacity)) {\n this.options.set(\"stroke.opacity\", opacity);\n }\n\n return this;\n }\n\n return this.options.get(\"stroke\");\n }\n }\n);\n\nexport default paintable;\n","const traversable = (TBase, childrenField) => (\n class extends TBase {\n traverse(callback) {\n const children = this[childrenField];\n\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n\n if (child.traverse) {\n child.traverse(callback);\n } else {\n callback(child);\n }\n }\n\n return this;\n }\n }\n);\n\nexport default traversable;\n","function setAccessor(field) {\n return function(value) {\n if (this[field] !== value) {\n this[field] = value;\n this.geometryChange();\n }\n\n return this;\n };\n}\n\nfunction getAccessor(field) {\n return function() {\n return this[field];\n };\n}\n\nfunction defineAccessors(fn, fields) {\n for (let i = 0; i < fields.length; i++) {\n let name = fields[i];\n let capitalized = name.charAt(0).toUpperCase() +\n name.substring(1, name.length);\n\n fn[\"set\" + capitalized] = setAccessor(name);\n fn[\"get\" + capitalized] = getAccessor(name);\n }\n}\n\nconst withAccessors = (TBase, names) => {\n const result = class extends TBase {};\n defineAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withAccessors;\n","import { defined } from '../util';\n\nfunction geometryAccessor(name) {\n const fieldName = \"_\" + name;\n return function(value) {\n if (defined(value)) {\n this._observerField(fieldName, value);\n this.geometryChange();\n return this;\n }\n\n return this[fieldName];\n };\n}\n\nfunction defineGeometryAccessors(fn, names) {\n for (let i = 0; i < names.length; i++) {\n fn[names[i]] = geometryAccessor(names[i]);\n }\n}\n\nconst withGeometry = (TBase, names = [ \"geometry\" ]) => {\n const result = class extends TBase {};\n defineGeometryAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withGeometry;\n","import { defined } from '../util';\nimport Point from '../geometry/point';\n\nfunction pointAccessor(name) {\n const fieldName = \"_\" + name;\n return function(value) {\n if (defined(value)) {\n this._observerField(fieldName, Point.create(value));\n this.geometryChange();\n return this;\n }\n\n return this[fieldName];\n };\n}\n\nfunction definePointAccessors(fn, names) {\n for (let i = 0; i < names.length; i++) {\n fn[names[i]] = pointAccessor(names[i]);\n }\n}\n\nconst withPoints = (TBase, names) => {\n const result = class extends TBase {};\n definePointAccessors(result.prototype, names);\n\n return result;\n};\n\nexport default withPoints;\n","import { support } from '../common';\n\n/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n// XXX: remove this junk (assume `true`) when we no longer have to support IE < 10\n// IE 9 (at least compatibility) reports having Uint8Array but the request response does not contain ArrayBuffer which results in missing table head error\nconst HAS_TYPED_ARRAYS = typeof Uint8Array !== 'undefined' && support.browser && (!support.browser.msie || support.browser.version > 9);\n\nconst BASE64 = (function(){\n var keyStr = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n return {\n decode: function(str) {\n var input = str.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\"), i = 0, n = input.length, output = [];\n\n while (i < n) {\n var enc1 = keyStr.indexOf(input.charAt(i++));\n var enc2 = keyStr.indexOf(input.charAt(i++));\n var enc3 = keyStr.indexOf(input.charAt(i++));\n var enc4 = keyStr.indexOf(input.charAt(i++));\n\n var chr1 = (enc1 << 2) | (enc2 >>> 4);\n var chr2 = ((enc2 & 15) << 4) | (enc3 >>> 2);\n var chr3 = ((enc3 & 3) << 6) | enc4;\n\n output.push(chr1);\n if (enc3 != 64) {\n output.push(chr2);\n }\n if (enc4 != 64) {\n output.push(chr3);\n }\n }\n\n return output;\n },\n encode: function(bytes) {\n var i = 0, n = bytes.length;\n var output = \"\";\n\n while (i < n) {\n var chr1 = bytes[i++];\n var chr2 = bytes[i++];\n var chr3 = bytes[i++];\n\n var enc1 = chr1 >>> 2;\n var enc2 = ((chr1 & 3) << 4) | (chr2 >>> 4);\n var enc3 = ((chr2 & 15) << 2) | (chr3 >>> 6);\n var enc4 = chr3 & 63;\n\n if (i - n == 2) {\n enc3 = enc4 = 64;\n } else if (i - n == 1) {\n enc4 = 64;\n }\n\n output += keyStr.charAt(enc1) + keyStr.charAt(enc2) + keyStr.charAt(enc3) + keyStr.charAt(enc4);\n }\n return output;\n }\n };\n}());\n\nfunction BinaryStream(data) {\n var offset = 0, length = 0;\n if (data == null) {\n data = HAS_TYPED_ARRAYS ? new Uint8Array(256) : [];\n } else {\n length = data.length;\n }\n\n var ensure = HAS_TYPED_ARRAYS ? function(len) {\n if (len >= data.length) {\n var tmp = new Uint8Array(Math.max(len + 256, data.length * 2));\n tmp.set(data, 0);\n data = tmp;\n }\n } : function() {};\n\n var get = HAS_TYPED_ARRAYS ? function() {\n return new Uint8Array(data.buffer, 0, length);\n } : function() {\n return data;\n };\n\n var write = HAS_TYPED_ARRAYS ? function(bytes) {\n if (typeof bytes == \"string\") {\n return writeString(bytes);\n }\n var len = bytes.length;\n ensure(offset + len);\n data.set(bytes, offset);\n offset += len;\n if (offset > length) {\n length = offset;\n }\n } : function(bytes) {\n if (typeof bytes == \"string\") {\n return writeString(bytes);\n }\n for (var i = 0; i < bytes.length; ++i) {\n writeByte(bytes[i]);\n }\n };\n\n var slice = HAS_TYPED_ARRAYS ? function(start, length) {\n if (data.buffer.slice) {\n return new Uint8Array(data.buffer.slice(start, start + length));\n } else {\n // IE10\n var x = new Uint8Array(length);\n x.set(new Uint8Array(data.buffer, start, length));\n return x;\n }\n } : function(start, length) {\n return data.slice(start, start + length);\n };\n\n function eof() {\n return offset >= length;\n }\n function readByte() {\n return offset < length ? data[offset++] : 0;\n }\n function writeByte(b) {\n ensure(offset);\n data[offset++] = b & 0xFF;\n if (offset > length) {\n length = offset;\n }\n }\n function readShort() {\n return (readByte() << 8) | readByte();\n }\n function writeShort(w) {\n writeByte(w >> 8);\n writeByte(w);\n }\n function readShort_() {\n var w = readShort();\n return w >= 0x8000 ? w - 0x10000 : w;\n }\n function writeShort_(w) {\n writeShort(w < 0 ? w + 0x10000 : w);\n }\n function readLong() {\n return (readShort() * 0x10000) + readShort();\n }\n function writeLong(w) {\n writeShort((w >>> 16) & 0xFFFF);\n writeShort(w & 0xFFFF);\n }\n function readLong_() {\n var w = readLong();\n return w >= 0x80000000 ? w - 0x100000000 : w;\n }\n function writeLong_(w) {\n writeLong(w < 0 ? w + 0x100000000 : w);\n }\n function readFixed() {\n return readLong() / 0x10000;\n }\n function writeFixed(f) {\n writeLong(Math.round(f * 0x10000));\n }\n function readFixed_() {\n return readLong_() / 0x10000;\n }\n function writeFixed_(f) {\n writeLong_(Math.round(f * 0x10000));\n }\n function read(len) {\n return times(len, readByte);\n }\n function readString(len) {\n return String.fromCharCode.apply(String, read(len));\n }\n function writeString(str) {\n for (var i = 0; i < str.length; ++i) {\n writeByte(str.charCodeAt(i));\n }\n }\n function times(n, reader) {\n for (var ret = new Array(n), i = 0; i < n; ++i) {\n ret[i] = reader();\n }\n return ret;\n }\n\n var stream = {\n eof : eof,\n readByte : readByte,\n writeByte : writeByte,\n readShort : readShort,\n writeShort : writeShort,\n readLong : readLong,\n writeLong : writeLong,\n readFixed : readFixed,\n writeFixed : writeFixed,\n\n // signed numbers.\n readShort_ : readShort_,\n writeShort_ : writeShort_,\n readLong_ : readLong_,\n writeLong_ : writeLong_,\n readFixed_ : readFixed_,\n writeFixed_ : writeFixed_,\n\n read : read,\n write : write,\n readString : readString,\n writeString : writeString,\n\n times : times,\n get : get,\n slice : slice,\n\n offset: function(pos) {\n if (pos != null) {\n offset = pos;\n return stream;\n }\n return offset;\n },\n\n skip: function(nbytes) {\n offset += nbytes;\n },\n\n toString: function() {\n throw new Error(\"FIX CALLER. BinaryStream is no longer convertible to string!\");\n },\n\n length: function() { return length; },\n\n saveExcursion: function(f) {\n var pos = offset;\n try {\n return f();\n } finally {\n offset = pos;\n }\n },\n\n writeBase64: function(base64) {\n if (window.atob) {\n writeString(window.atob(base64));\n } else {\n write(BASE64.decode(base64));\n }\n },\n base64: function() {\n return BASE64.encode(get());\n }\n };\n\n return stream;\n}\n\nfunction ucs2decode(string) {\n var output = [],\n counter = 0,\n length = string.length,\n value,\n extra;\n while (counter < length) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n}\n\nfunction ucs2encode(array) {\n return array.map(function(value){\n var output = \"\";\n if (value > 0xFFFF) {\n value -= 0x10000;\n output += String.fromCharCode(value >>> 10 & 0x3FF | 0xD800);\n value = 0xDC00 | value & 0x3FF;\n }\n output += String.fromCharCode(value);\n return output;\n }).join(\"\");\n}\n\nfunction atobUint8Array(base64) {\n const data = window.atob(base64);\n const result = new Uint8Array(data.length);\n\n for (let idx = 0; idx < data.length; idx++) {\n result[idx] = data.charCodeAt(idx);\n }\n\n return result;\n}\n\nfunction createUint8Array(data) {\n const result = new Uint8Array(data.length);\n\n for (let idx = 0; idx < data.length; idx++) {\n result[idx] = data[idx];\n }\n\n return result;\n}\n\nfunction base64ToUint8Array(base64) {\n if (window.atob) {\n return atobUint8Array(base64);\n }\n\n return createUint8Array(BASE64.decode(base64));\n}\n\nexport {\n HAS_TYPED_ARRAYS,\n BASE64,\n BinaryStream,\n ucs2decode,\n ucs2encode,\n base64ToUint8Array\n};\n","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\n/*****************************************************************************\\\n *\n * The code in this file, although written from scratch, is influenced by the\n * TrueType parser/encoder in PDFKit -- http://pdfkit.org/ (a CoffeeScript\n * library for producing PDF files).\n *\n * PDFKit is (c) Devon Govett 2014 and released under the MIT License.\n *\n\\*****************************************************************************/\n\nimport { BinaryStream, ucs2decode } from \"./utils\";\n\nfunction hasOwnProperty(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction sortedKeys(obj) {\n return Object.keys(obj).sort(function(a, b){ return a - b; }).map(parseFloat);\n}\n\n///\nclass Directory {\n constructor(data) {\n this.raw = data;\n this.scalerType = data.readLong();\n this.tableCount = data.readShort();\n this.searchRange = data.readShort();\n this.entrySelector = data.readShort();\n this.rangeShift = data.readShort();\n\n var tables = this.tables = {};\n for (var i = 0; i < this.tableCount; ++i) {\n var entry = {\n tag : data.readString(4),\n checksum : data.readLong(),\n offset : data.readLong(),\n length : data.readLong()\n };\n tables[entry.tag] = entry;\n }\n }\n\n readTable(name, Ctor) {\n var def = this.tables[name];\n if (!def) {\n throw new Error(\"Table \" + name + \" not found in directory\");\n }\n return (this[name] = def.table = new Ctor(this, def));\n }\n\n render(tables) {\n var tableCount = Object.keys(tables).length;\n\n var maxpow2 = Math.pow(2, Math.floor(Math.log(tableCount) / Math.LN2));\n var searchRange = maxpow2 * 16;\n var entrySelector = Math.floor(Math.log(maxpow2) / Math.LN2);\n var rangeShift = tableCount * 16 - searchRange;\n\n var out = BinaryStream();\n out.writeLong(this.scalerType);\n out.writeShort(tableCount);\n out.writeShort(searchRange);\n out.writeShort(entrySelector);\n out.writeShort(rangeShift);\n\n var directoryLength = tableCount * 16;\n var offset = out.offset() + directoryLength;\n var headOffset = null;\n var tableData = BinaryStream();\n\n for (var tag in tables) {\n if (hasOwnProperty(tables, tag)) {\n var table = tables[tag];\n\n out.writeString(tag);\n out.writeLong(this.checksum(table));\n out.writeLong(offset);\n out.writeLong(table.length);\n\n tableData.write(table);\n if (tag == \"head\") {\n headOffset = offset;\n }\n offset += table.length;\n\n while (offset % 4) {\n tableData.writeByte(0);\n offset++;\n }\n }\n }\n\n out.write(tableData.get());\n var sum = this.checksum(out.get());\n var adjustment = 0xB1B0AFBA - sum;\n\n out.offset(headOffset + 8);\n out.writeLong(adjustment);\n return out.get();\n }\n\n checksum(data) {\n data = BinaryStream(data);\n var sum = 0;\n while (!data.eof()) {\n sum += data.readLong();\n }\n return sum & 0xFFFFFFFF;\n }\n}\n\nclass Table {\n constructor(file, def) {\n this.definition = def;\n this.length = def.length;\n this.offset = def.offset;\n this.file = file;\n this.rawData = file.raw;\n this.parse(file.raw);\n }\n\n raw() {\n return this.rawData.slice(this.offset, this.length);\n }\n\n parse() {} // abstract\n}\n\nclass HeadTable extends Table {\n parse(data) {\n data.offset(this.offset);\n this.version = data.readLong();\n this.revision = data.readLong();\n this.checkSumAdjustment = data.readLong();\n this.magicNumber = data.readLong();\n this.flags = data.readShort();\n this.unitsPerEm = data.readShort();\n this.created = data.read(8);\n this.modified = data.read(8);\n\n this.xMin = data.readShort_();\n this.yMin = data.readShort_();\n this.xMax = data.readShort_();\n this.yMax = data.readShort_();\n\n this.macStyle = data.readShort();\n this.lowestRecPPEM = data.readShort();\n this.fontDirectionHint = data.readShort_();\n this.indexToLocFormat = data.readShort_();\n this.glyphDataFormat = data.readShort_();\n }\n\n render(indexToLocFormat) {\n var out = BinaryStream();\n out.writeLong(this.version);\n out.writeLong(this.revision);\n out.writeLong(0); // checksum adjustment; shall be computed later\n out.writeLong(this.magicNumber);\n out.writeShort(this.flags);\n out.writeShort(this.unitsPerEm);\n out.write(this.created);\n out.write(this.modified);\n out.writeShort_(this.xMin);\n out.writeShort_(this.yMin);\n out.writeShort_(this.xMax);\n out.writeShort_(this.yMax);\n out.writeShort(this.macStyle);\n out.writeShort(this.lowestRecPPEM);\n out.writeShort_(this.fontDirectionHint);\n out.writeShort_(indexToLocFormat); // this will depend on the `loca` table\n out.writeShort_(this.glyphDataFormat);\n return out.get();\n }\n}\n\nclass LocaTable extends Table {\n parse(data) {\n data.offset(this.offset);\n var format = this.file.head.indexToLocFormat;\n if (format === 0) {\n this.offsets = data.times(this.length / 2, function(){\n return 2 * data.readShort();\n });\n } else {\n this.offsets = data.times(this.length / 4, data.readLong);\n }\n }\n\n offsetOf(id) {\n return this.offsets[id];\n }\n\n lengthOf(id) {\n return this.offsets[id + 1] - this.offsets[id];\n }\n\n render(offsets) {\n var out = BinaryStream();\n var needsLongFormat = offsets[offsets.length - 1] > 0xFFFF;\n for (var i = 0; i < offsets.length; ++i) {\n if (needsLongFormat) {\n out.writeLong(offsets[i]);\n } else {\n out.writeShort(offsets[i] / 2);\n }\n }\n return {\n format: needsLongFormat ? 1 : 0,\n table: out.get()\n };\n }\n}\n\nclass HheaTable extends Table {\n parse(data) {\n data.offset(this.offset);\n\n this.version = data.readLong();\n this.ascent = data.readShort_();\n this.descent = data.readShort_();\n this.lineGap = data.readShort_();\n this.advanceWidthMax = data.readShort();\n this.minLeftSideBearing = data.readShort_();\n this.minRightSideBearing = data.readShort_();\n this.xMaxExtent = data.readShort_();\n this.caretSlopeRise = data.readShort_();\n this.caretSlopeRun = data.readShort_();\n this.caretOffset = data.readShort_();\n\n data.skip(4 * 2); // reserved\n\n this.metricDataFormat = data.readShort_();\n this.numOfLongHorMetrics = data.readShort();\n }\n\n render(ids) {\n var out = BinaryStream();\n out.writeLong(this.version);\n out.writeShort_(this.ascent);\n out.writeShort_(this.descent);\n out.writeShort_(this.lineGap);\n out.writeShort(this.advanceWidthMax);\n out.writeShort_(this.minLeftSideBearing);\n out.writeShort_(this.minRightSideBearing);\n out.writeShort_(this.xMaxExtent);\n out.writeShort_(this.caretSlopeRise);\n out.writeShort_(this.caretSlopeRun);\n out.writeShort_(this.caretOffset);\n\n out.write([ 0, 0, 0, 0, 0, 0, 0, 0 ]); // reserved bytes\n\n out.writeShort_(this.metricDataFormat);\n out.writeShort(ids.length);\n return out.get();\n }\n}\n\nclass MaxpTable extends Table {\n parse(data) {\n data.offset(this.offset);\n this.version = data.readLong();\n this.numGlyphs = data.readShort();\n this.maxPoints = data.readShort();\n this.maxContours = data.readShort();\n this.maxComponentPoints = data.readShort();\n this.maxComponentContours = data.readShort();\n this.maxZones = data.readShort();\n this.maxTwilightPoints = data.readShort();\n this.maxStorage = data.readShort();\n this.maxFunctionDefs = data.readShort();\n this.maxInstructionDefs = data.readShort();\n this.maxStackElements = data.readShort();\n this.maxSizeOfInstructions = data.readShort();\n this.maxComponentElements = data.readShort();\n this.maxComponentDepth = data.readShort();\n }\n\n render(glyphIds) {\n var out = BinaryStream();\n out.writeLong(this.version);\n out.writeShort(glyphIds.length);\n out.writeShort(this.maxPoints);\n out.writeShort(this.maxContours);\n out.writeShort(this.maxComponentPoints);\n out.writeShort(this.maxComponentContours);\n out.writeShort(this.maxZones);\n out.writeShort(this.maxTwilightPoints);\n out.writeShort(this.maxStorage);\n out.writeShort(this.maxFunctionDefs);\n out.writeShort(this.maxInstructionDefs);\n out.writeShort(this.maxStackElements);\n out.writeShort(this.maxSizeOfInstructions);\n out.writeShort(this.maxComponentElements);\n out.writeShort(this.maxComponentDepth);\n return out.get();\n }\n}\n\nclass HmtxTable extends Table {\n parse(data) {\n data.offset(this.offset);\n var dir = this.file, hhea = dir.hhea;\n this.metrics = data.times(hhea.numOfLongHorMetrics, function(){\n return {\n advance: data.readShort(),\n lsb: data.readShort_()\n };\n });\n var lsbCount = dir.maxp.numGlyphs - dir.hhea.numOfLongHorMetrics;\n this.leftSideBearings = data.times(lsbCount, data.readShort_);\n }\n\n forGlyph(id) {\n var metrics = this.metrics;\n var n = metrics.length;\n if (id < n) {\n return metrics[id];\n }\n return {\n advance: metrics[n - 1].advance,\n lsb: this.leftSideBearings[id - n]\n };\n }\n\n render(glyphIds) {\n var out = BinaryStream();\n for (var i = 0; i < glyphIds.length; ++i) {\n var m = this.forGlyph(glyphIds[i]);\n out.writeShort(m.advance);\n out.writeShort_(m.lsb);\n }\n return out.get();\n }\n}\n\nvar GlyfTable = (function(){\n class SimpleGlyph {\n get compound() {\n return false;\n }\n\n constructor(raw) {\n this.raw = raw;\n }\n\n render() {\n return this.raw.get();\n }\n }\n\n var ARG_1_AND_2_ARE_WORDS = 0x0001;\n var WE_HAVE_A_SCALE = 0x0008;\n var MORE_COMPONENTS = 0x0020;\n var WE_HAVE_AN_X_AND_Y_SCALE = 0x0040;\n var WE_HAVE_A_TWO_BY_TWO = 0x0080;\n //var WE_HAVE_INSTRUCTIONS = 0x0100;\n\n class CompoundGlyph {\n get compound() {\n return true;\n }\n\n constructor(data) {\n this.raw = data;\n var ids = this.glyphIds = [];\n var offsets = this.idOffsets = [];\n while (true) { // eslint-disable-line no-constant-condition\n var flags = data.readShort();\n offsets.push(data.offset());\n ids.push(data.readShort());\n\n if (!(flags & MORE_COMPONENTS)) {\n break;\n }\n\n data.skip(flags & ARG_1_AND_2_ARE_WORDS ? 4 : 2);\n\n if (flags & WE_HAVE_A_TWO_BY_TWO) {\n data.skip(8);\n } else if (flags & WE_HAVE_AN_X_AND_Y_SCALE) {\n data.skip(4);\n } else if (flags & WE_HAVE_A_SCALE) {\n data.skip(2);\n }\n }\n }\n\n render(old2new) {\n var out = BinaryStream(this.raw.get());\n for (var i = 0; i < this.glyphIds.length; ++i) {\n var id = this.glyphIds[i];\n out.offset(this.idOffsets[i]);\n out.writeShort(old2new[id]);\n }\n return out.get();\n }\n }\n\n return class extends Table {\n parse() {\n this.cache = {};\n }\n\n glyphFor(id) {\n var cache = this.cache;\n if (hasOwnProperty(cache, id)) {\n return cache[id];\n }\n\n var loca = this.file.loca;\n var length = loca.lengthOf(id);\n\n if (length === 0) {\n return (cache[id] = null);\n }\n\n var data = this.rawData;\n var offset = this.offset + loca.offsetOf(id);\n var raw = BinaryStream(data.slice(offset, length));\n\n var numberOfContours = raw.readShort_();\n var xMin = raw.readShort_();\n var yMin = raw.readShort_();\n var xMax = raw.readShort_();\n var yMax = raw.readShort_();\n\n var glyph = cache[id] = numberOfContours < 0 ? new CompoundGlyph(raw) : new SimpleGlyph(raw);\n\n glyph.numberOfContours = numberOfContours;\n glyph.xMin = xMin;\n glyph.yMin = yMin;\n glyph.xMax = xMax;\n glyph.yMax = yMax;\n\n return glyph;\n }\n\n render(glyphs, oldIds, old2new) {\n var out = BinaryStream(), offsets = [];\n for (var i = 0; i < oldIds.length; ++i) {\n var id = oldIds[i];\n var glyph = glyphs[id];\n if (out.offset() % 2) {\n out.writeByte(0);\n }\n offsets.push(out.offset());\n if (glyph) {\n out.write(glyph.render(old2new));\n }\n }\n if (out.offset() % 2) {\n out.writeByte(0);\n }\n offsets.push(out.offset());\n return {\n table: out.get(),\n offsets: offsets\n };\n }\n };\n}());\n\nvar NameTable = (function(){\n class NameEntry {\n constructor(text, entry) {\n this.text = text;\n this.length = text.length;\n this.platformID = entry.platformID;\n this.platformSpecificID = entry.platformSpecificID;\n this.languageID = entry.languageID;\n this.nameID = entry.nameID;\n }\n }\n\n return class extends Table {\n parse(data) {\n data.offset(this.offset);\n data.readShort(); // format\n var count = data.readShort();\n var stringOffset = this.offset + data.readShort();\n var nameRecords = data.times(count, function(){\n return {\n platformID : data.readShort(),\n platformSpecificID : data.readShort(),\n languageID : data.readShort(),\n nameID : data.readShort(),\n length : data.readShort(),\n offset : data.readShort() + stringOffset\n };\n });\n var strings = this.strings = {};\n for (var i = 0; i < nameRecords.length; ++i) {\n var rec = nameRecords[i];\n data.offset(rec.offset);\n var text = data.readString(rec.length);\n if (!strings[rec.nameID]) {\n strings[rec.nameID] = [];\n }\n strings[rec.nameID].push(new NameEntry(text, rec));\n }\n this.postscriptEntry = strings[6][0];\n this.postscriptName = this.postscriptEntry.text.replace(/[^\\x20-\\x7F]/g, \"\");\n }\n\n render(psName) {\n var strings = this.strings;\n var strCount = 0;\n for (var i in strings) {\n if (hasOwnProperty(strings, i)) {\n strCount += strings[i].length;\n }\n }\n var out = BinaryStream();\n var strTable = BinaryStream();\n\n out.writeShort(0); // format\n out.writeShort(strCount);\n out.writeShort(6 + 12 * strCount); // stringOffset\n\n for (i in strings) {\n if (hasOwnProperty(strings, i)) {\n var list = i == 6 ? [\n new NameEntry(psName, this.postscriptEntry)\n ] : strings[i];\n for (var j = 0; j < list.length; ++j) {\n var str = list[j];\n out.writeShort(str.platformID);\n out.writeShort(str.platformSpecificID);\n out.writeShort(str.languageID);\n out.writeShort(str.nameID);\n out.writeShort(str.length);\n out.writeShort(strTable.offset());\n\n strTable.writeString(str.text);\n }\n }\n }\n\n out.write(strTable.get());\n\n return out.get();\n }\n };\n})();\n\nvar PostTable = (function(){\n var POSTSCRIPT_GLYPHS = \".notdef .null nonmarkingreturn space exclam quotedbl numbersign dollar percent ampersand quotesingle parenleft parenright asterisk plus comma hyphen period slash zero one two three four five six seven eight nine colon semicolon less equal greater question at A B C D E F G H I J K L M N O P Q R S T U V W X Y Z bracketleft backslash bracketright asciicircum underscore grave a b c d e f g h i j k l m n o p q r s t u v w x y z braceleft bar braceright asciitilde Adieresis Aring Ccedilla Eacute Ntilde Odieresis Udieresis aacute agrave acircumflex adieresis atilde aring ccedilla eacute egrave ecircumflex edieresis iacute igrave icircumflex idieresis ntilde oacute ograve ocircumflex odieresis otilde uacute ugrave ucircumflex udieresis dagger degree cent sterling section bullet paragraph germandbls registered copyright trademark acute dieresis notequal AE Oslash infinity plusminus lessequal greaterequal yen mu partialdiff summation product pi integral ordfeminine ordmasculine Omega ae oslash questiondown exclamdown logicalnot radical florin approxequal Delta guillemotleft guillemotright ellipsis nonbreakingspace Agrave Atilde Otilde OE oe endash emdash quotedblleft quotedblright quoteleft quoteright divide lozenge ydieresis Ydieresis fraction currency guilsinglleft guilsinglright fi fl daggerdbl periodcentered quotesinglbase quotedblbase perthousand Acircumflex Ecircumflex Aacute Edieresis Egrave Iacute Icircumflex Idieresis Igrave Oacute Ocircumflex apple Ograve Uacute Ucircumflex Ugrave dotlessi circumflex tilde macron breve dotaccent ring cedilla hungarumlaut ogonek caron Lslash lslash Scaron scaron Zcaron zcaron brokenbar Eth eth Yacute yacute Thorn thorn minus multiply onesuperior twosuperior threesuperior onehalf onequarter threequarters franc Gbreve gbreve Idotaccent Scedilla scedilla Cacute cacute Ccaron ccaron dcroat\".split(/\\s+/g);\n\n return class extends Table {\n parse(data) {\n data.offset(this.offset);\n\n this.format = data.readLong();\n this.italicAngle = data.readFixed_();\n this.underlinePosition = data.readShort_();\n this.underlineThickness = data.readShort_();\n this.isFixedPitch = data.readLong();\n this.minMemType42 = data.readLong();\n this.maxMemType42 = data.readLong();\n this.minMemType1 = data.readLong();\n this.maxMemType1 = data.readLong();\n\n var numberOfGlyphs;\n\n switch (this.format) {\n case 0x00010000:\n case 0x00030000:\n break;\n\n case 0x00020000:\n numberOfGlyphs = data.readShort();\n this.glyphNameIndex = data.times(numberOfGlyphs, data.readShort);\n this.names = [];\n var limit = this.offset + this.length;\n while (data.offset() < limit) {\n this.names.push(data.readString(data.readByte()));\n }\n break;\n\n case 0x00025000:\n numberOfGlyphs = data.readShort();\n this.offsets = data.read(numberOfGlyphs);\n break;\n\n case 0x00040000:\n this.map = data.times(this.file.maxp.numGlyphs, data.readShort);\n break;\n }\n }\n\n glyphFor(code) {\n switch (this.format) {\n case 0x00010000:\n return POSTSCRIPT_GLYPHS[code] || \".notdef\";\n\n case 0x00020000:\n var index = this.glyphNameIndex[code];\n if (index < POSTSCRIPT_GLYPHS.length) {\n return POSTSCRIPT_GLYPHS[index];\n }\n return this.names[index - POSTSCRIPT_GLYPHS.length] || \".notdef\";\n\n case 0x00025000:\n\n case 0x00030000:\n return \".notdef\";\n\n case 0x00040000:\n return this.map[code] || 0xFFFF;\n }\n }\n\n render(mapping) {\n if (this.format == 0x00030000) {\n return this.raw();\n }\n\n // keep original header, but set format to 2.0\n var out = BinaryStream(this.rawData.slice(this.offset, 32));\n out.writeLong(0x00020000);\n out.offset(32);\n\n var indexes = [];\n var strings = [];\n\n for (var i = 0; i < mapping.length; ++i) {\n var id = mapping[i];\n var post = this.glyphFor(id);\n var index = POSTSCRIPT_GLYPHS.indexOf(post);\n if (index >= 0) {\n indexes.push(index);\n } else {\n indexes.push(POSTSCRIPT_GLYPHS.length + strings.length);\n strings.push(post);\n }\n }\n\n out.writeShort(mapping.length);\n\n for (i = 0; i < indexes.length; ++i) {\n out.writeShort(indexes[i]);\n }\n\n for (i = 0; i < strings.length; ++i) {\n out.writeByte(strings[i].length);\n out.writeString(strings[i]);\n }\n\n return out.get();\n }\n };\n})();\n\nvar CmapTable = (function(){\n class CmapEntry {\n constructor(data, offset, codeMap) {\n var self = this;\n self.platformID = data.readShort();\n self.platformSpecificID = data.readShort();\n self.offset = offset + data.readLong();\n\n data.saveExcursion(function(){\n var code;\n data.offset(self.offset);\n self.format = data.readShort();\n\n switch (self.format) {\n case 0:\n self.length = data.readShort();\n self.language = data.readShort();\n for (var i = 0; i < 256; ++i) {\n codeMap[i] = data.readByte();\n }\n break;\n\n case 4:\n self.length = data.readShort();\n self.language = data.readShort();\n var segCount = data.readShort() / 2;\n\n data.skip(6); // searchRange, entrySelector, rangeShift\n var endCode = data.times(segCount, data.readShort);\n data.skip(2); // reserved pad\n var startCode = data.times(segCount, data.readShort);\n var idDelta = data.times(segCount, data.readShort_);\n var idRangeOffset = data.times(segCount, data.readShort);\n\n var count = (self.length + self.offset - data.offset()) / 2;\n var glyphIds = data.times(count, data.readShort);\n\n for (i = 0; i < segCount; ++i) {\n var start = startCode[i], end = endCode[i];\n for (code = start; code <= end; ++code) {\n var glyphId;\n if (idRangeOffset[i] === 0) {\n glyphId = code + idDelta[i];\n } else {\n ///\n // When non-zero, idRangeOffset contains for each segment the byte offset of the Glyph ID\n // into the glyphIds table, from the *current* `i` cell of idRangeOffset. In other words,\n // this offset spans from the first into the second array. This works, because the arrays\n // are consecutive in the TTF file:\n //\n // [ ...idRangeOffset... ][ ...glyphIds... ]\n // ...... 48 ...... .... ID ....\n // ^----- 48 bytes -----^\n //\n // (but I can't stop wondering why is it not just a plain index, possibly incremented by 1\n // so that we can have that special `zero` value.)\n //\n // The elements of idRangeOffset are even numbers, because both arrays contain 16-bit words,\n // yet the offset is in bytes. That is why we divide it by 2. Then we subtract the\n // remaining segments (segCount-i), and add the code-start offset, to which we need to add\n // the corresponding delta to get the actual glyph ID.\n ///\n var index = idRangeOffset[i] / 2 - (segCount - i) + (code - start);\n glyphId = glyphIds[index] || 0;\n if (glyphId !== 0) {\n glyphId += idDelta[i];\n }\n }\n codeMap[code] = glyphId & 0xFFFF;\n }\n }\n break;\n\n case 6:\n self.length = data.readShort();\n self.language = data.readShort();\n code = data.readShort();\n var length = data.readShort();\n while (length-- > 0) {\n codeMap[code++] = data.readShort();\n }\n break;\n\n case 12:\n data.readShort(); // reserved\n self.length = data.readLong();\n self.language = data.readLong();\n var ngroups = data.readLong();\n while (ngroups-- > 0) {\n code = data.readLong();\n var endCharCode = data.readLong();\n var glyphCode = data.readLong();\n while (code <= endCharCode) {\n codeMap[code++] = glyphCode++;\n }\n }\n break;\n\n default:\n if (window.console) {\n window.console.error(\"Unhandled CMAP format: \" + self.format);\n }\n }\n });\n }\n }\n\n function renderCharmap(ncid2ogid, ogid2ngid) {\n var codes = sortedKeys(ncid2ogid);\n var startCodes = [];\n var endCodes = [];\n var last = null;\n var diff = null;\n\n function new_gid(charcode) {\n return ogid2ngid[ncid2ogid[charcode]];\n }\n\n for (var i = 0; i < codes.length; ++i) {\n var code = codes[i];\n var gid = new_gid(code);\n var delta = gid - code;\n if (last == null || delta !== diff) {\n if (last) {\n endCodes.push(last);\n }\n startCodes.push(code);\n diff = delta;\n }\n last = code;\n }\n\n if (last) {\n endCodes.push(last);\n }\n endCodes.push(0xFFFF);\n startCodes.push(0xFFFF);\n\n var segCount = startCodes.length;\n var segCountX2 = segCount * 2;\n var searchRange = 2 * Math.pow(2, Math.floor(Math.log(segCount) / Math.LN2));\n var entrySelector = Math.log(searchRange / 2) / Math.LN2;\n var rangeShift = segCountX2 - searchRange;\n\n var deltas = [];\n var rangeOffsets = [];\n var glyphIds = [];\n\n for (i = 0; i < segCount; ++i) {\n var startCode = startCodes[i];\n var endCode = endCodes[i];\n if (startCode == 0xFFFF) {\n deltas.push(0);\n rangeOffsets.push(0);\n break;\n }\n var startGlyph = new_gid(startCode);\n if (startCode - startGlyph >= 0x8000) {\n deltas.push(0);\n rangeOffsets.push(2 * (glyphIds.length + segCount - i));\n for (var j = startCode; j <= endCode; ++j) {\n glyphIds.push(new_gid(j));\n }\n } else {\n deltas.push(startGlyph - startCode);\n rangeOffsets.push(0);\n }\n }\n\n var out = BinaryStream();\n\n out.writeShort(3); // platformID\n out.writeShort(1); // platformSpecificID\n out.writeLong(12); // offset\n out.writeShort(4); // format\n out.writeShort(16 + segCount * 8 + glyphIds.length * 2); // length\n out.writeShort(0); // language\n out.writeShort(segCountX2);\n out.writeShort(searchRange);\n out.writeShort(entrySelector);\n out.writeShort(rangeShift);\n\n endCodes.forEach(out.writeShort);\n out.writeShort(0); // reserved pad\n startCodes.forEach(out.writeShort);\n deltas.forEach(out.writeShort_);\n rangeOffsets.forEach(out.writeShort);\n glyphIds.forEach(out.writeShort);\n\n return out.get();\n }\n\n return class extends Table {\n parse(data) {\n var self = this;\n var offset = self.offset;\n data.offset(offset);\n self.codeMap = {};\n self.version = data.readShort();\n var tableCount = data.readShort();\n self.tables = data.times(tableCount, function(){\n return new CmapEntry(data, offset, self.codeMap);\n });\n }\n\n static render(ncid2ogid, ogid2ngid) {\n var out = BinaryStream();\n out.writeShort(0); // version\n out.writeShort(1); // tableCount\n out.write(renderCharmap(ncid2ogid, ogid2ngid));\n return out.get();\n }\n };\n\n})();\n\nclass OS2Table extends Table {\n parse(data) {\n data.offset(this.offset);\n this.version = data.readShort();\n this.averageCharWidth = data.readShort_();\n this.weightClass = data.readShort();\n this.widthClass = data.readShort();\n this.type = data.readShort();\n this.ySubscriptXSize = data.readShort_();\n this.ySubscriptYSize = data.readShort_();\n this.ySubscriptXOffset = data.readShort_();\n this.ySubscriptYOffset = data.readShort_();\n this.ySuperscriptXSize = data.readShort_();\n this.ySuperscriptYSize = data.readShort_();\n this.ySuperscriptXOffset = data.readShort_();\n this.ySuperscriptYOffset = data.readShort_();\n this.yStrikeoutSize = data.readShort_();\n this.yStrikeoutPosition = data.readShort_();\n this.familyClass = data.readShort_();\n\n this.panose = data.times(10, data.readByte);\n this.charRange = data.times(4, data.readLong);\n\n this.vendorID = data.readString(4);\n this.selection = data.readShort();\n this.firstCharIndex = data.readShort();\n this.lastCharIndex = data.readShort();\n\n if (this.version > 0) {\n this.ascent = data.readShort_();\n this.descent = data.readShort_();\n this.lineGap = data.readShort_();\n this.winAscent = data.readShort();\n this.winDescent = data.readShort();\n this.codePageRange = data.times(2, data.readLong);\n\n if (this.version > 1) {\n this.xHeight = data.readShort();\n this.capHeight = data.readShort();\n this.defaultChar = data.readShort();\n this.breakChar = data.readShort();\n this.maxContext = data.readShort();\n }\n }\n }\n\n render() {\n return this.raw();\n }\n}\n\nvar subsetTag = 100000;\n\nfunction nextSubsetTag() {\n var ret = \"\", n = String(subsetTag);\n for (var i = 0; i < n.length; ++i) {\n ret += String.fromCharCode(n.charCodeAt(i) - 48 + 65);\n }\n ++subsetTag;\n return ret;\n}\n\nclass Subfont {\n constructor(font) {\n this.font = font;\n this.subset = {};\n this.unicodes = {};\n this.ogid2ngid = { 0: 0 };\n this.ngid2ogid = { 0: 0 };\n this.ncid2ogid = {};\n this.next = this.firstChar = 1;\n this.nextGid = 1;\n this.psName = nextSubsetTag() + \"+\" + this.font.psName;\n }\n\n use(ch) {\n var self = this;\n if (typeof ch == \"string\") {\n return ucs2decode(ch).reduce(function(ret, code){\n return ret + String.fromCharCode(self.use(code));\n }, \"\");\n }\n var code = self.unicodes[ch];\n if (!code) {\n code = self.next++;\n self.subset[code] = ch;\n self.unicodes[ch] = code;\n\n // generate new GID (glyph ID) and maintain newGID ->\n // oldGID and back mappings\n var old_gid = self.font.cmap.codeMap[ch];\n if (old_gid) {\n self.ncid2ogid[code] = old_gid;\n if (self.ogid2ngid[old_gid] == null) {\n var new_gid = self.nextGid++;\n self.ogid2ngid[old_gid] = new_gid;\n self.ngid2ogid[new_gid] = old_gid;\n }\n }\n }\n return code;\n }\n\n encodeText(text) {\n return this.use(text);\n }\n\n glyphIds() {\n return sortedKeys(this.ogid2ngid);\n }\n\n glyphsFor(glyphIds, result) {\n if (!result) {\n result = {};\n }\n for (var i = 0; i < glyphIds.length; ++i) {\n var id = glyphIds[i];\n if (!result[id]) {\n var glyph = result[id] = this.font.glyf.glyphFor(id);\n if (glyph && glyph.compound) {\n this.glyphsFor(glyph.glyphIds, result);\n }\n }\n }\n return result;\n }\n\n render() {\n var glyphs = this.glyphsFor(this.glyphIds());\n\n // add missing sub-glyphs\n for (var old_gid in glyphs) {\n if (hasOwnProperty(glyphs, old_gid)) {\n old_gid = parseInt(old_gid, 10);\n if (this.ogid2ngid[old_gid] == null) {\n var new_gid = this.nextGid++;\n this.ogid2ngid[old_gid] = new_gid;\n this.ngid2ogid[new_gid] = old_gid;\n }\n }\n }\n\n // must obtain old_gid_ids in an order matching sorted\n // new_gid_ids\n var new_gid_ids = sortedKeys(this.ngid2ogid);\n var old_gid_ids = new_gid_ids.map(function(id){\n return this.ngid2ogid[id];\n }, this);\n\n var font = this.font;\n var glyf = font.glyf.render(glyphs, old_gid_ids, this.ogid2ngid);\n var loca = font.loca.render(glyf.offsets);\n\n this.lastChar = this.next - 1;\n\n var tables = {\n \"cmap\" : CmapTable.render(this.ncid2ogid, this.ogid2ngid),\n \"glyf\" : glyf.table,\n \"loca\" : loca.table,\n \"hmtx\" : font.hmtx.render(old_gid_ids),\n \"hhea\" : font.hhea.render(old_gid_ids),\n \"maxp\" : font.maxp.render(old_gid_ids),\n \"post\" : font.post.render(old_gid_ids),\n \"name\" : font.name.render(this.psName),\n \"head\" : font.head.render(loca.format),\n \"OS/2\" : font.os2.render()\n };\n\n return this.font.directory.render(tables);\n }\n\n cidToGidMap() {\n var out = BinaryStream(), len = 0;\n for (var cid = this.firstChar; cid < this.next; ++cid) {\n while (len < cid) {\n out.writeShort(0);\n len++;\n }\n var old_gid = this.ncid2ogid[cid];\n if (old_gid) {\n var new_gid = this.ogid2ngid[old_gid];\n out.writeShort(new_gid);\n } else {\n out.writeShort(0);\n }\n len++;\n }\n return out.get();\n }\n}\n\nclass TTFFont {\n constructor(rawData, name) {\n var self = this;\n var data = self.contents = BinaryStream(rawData);\n if (data.readString(4) == \"ttcf\") {\n var offset;\n const parse = function() {\n data.offset(offset);\n self.parse();\n };\n if (!name) {\n throw new Error(\"Must specify a name for TTC files\");\n }\n data.readLong(); // version\n var numFonts = data.readLong();\n for (var i = 0; i < numFonts; ++i) {\n offset = data.readLong();\n data.saveExcursion(parse);\n if (self.psName == name) {\n return;\n }\n }\n throw new Error(\"Font \" + name + \" not found in collection\");\n } else {\n data.offset(0);\n self.parse();\n }\n }\n\n parse() {\n var dir = this.directory = new Directory(this.contents);\n\n this.head = dir.readTable(\"head\", HeadTable);\n this.loca = dir.readTable(\"loca\", LocaTable);\n this.hhea = dir.readTable(\"hhea\", HheaTable);\n this.maxp = dir.readTable(\"maxp\", MaxpTable);\n this.hmtx = dir.readTable(\"hmtx\", HmtxTable);\n this.glyf = dir.readTable(\"glyf\", GlyfTable);\n this.name = dir.readTable(\"name\", NameTable);\n this.post = dir.readTable(\"post\", PostTable);\n this.cmap = dir.readTable(\"cmap\", CmapTable);\n this.os2 = dir.readTable(\"OS/2\", OS2Table);\n\n this.psName = this.name.postscriptName;\n this.ascent = this.os2.ascent || this.hhea.ascent;\n this.descent = this.os2.descent || this.hhea.descent;\n this.lineGap = this.os2.lineGap || this.hhea.lineGap;\n this.scale = 1000 / this.head.unitsPerEm;\n }\n\n widthOfGlyph(glyph) {\n return this.hmtx.forGlyph(glyph).advance * this.scale;\n }\n\n makeSubset() {\n return new Subfont(this);\n }\n}\n\nexport { TTFFont };\n","import { deflate as pakoDeflate } from '@progress/pako-esm';\n\nexport const deflate = pakoDeflate;\n\nexport function supportsDeflate() {\n return true;\n}\n\n","/* eslint-disable no-multi-spaces, key-spacing, indent, camelcase, space-before-blocks, eqeqeq, brace-style */\n/* eslint-disable space-infix-ops, space-before-function-paren, array-bracket-spacing, object-curly-spacing */\n/* eslint-disable no-nested-ternary, max-params, default-case, no-else-return, no-empty */\n/* eslint-disable no-param-reassign, no-var, block-scoped-var */\n\nimport { BinaryStream, ucs2encode, base64ToUint8Array, HAS_TYPED_ARRAYS } from \"./utils\";\nimport { support } from '../common';\nimport { TTFFont } from \"./ttf\";\nimport { deflate, supportsDeflate } from './deflate';\nimport { encodeUTF16BE, BOM } from \"../util/encode-utf\";\nimport { encodeBase64 } from \"../util\";\n\nconst browser = support.browser;\nconst NL = \"\\n\";\n\nvar RESOURCE_COUNTER = 0;\n\nconst PAPER_SIZE = {\n a0 : [ 2383.94 , 3370.39 ],\n a1 : [ 1683.78 , 2383.94 ],\n a2 : [ 1190.55 , 1683.78 ],\n a3 : [ 841.89 , 1190.55 ],\n a4 : [ 595.28 , 841.89 ],\n a5 : [ 419.53 , 595.28 ],\n a6 : [ 297.64 , 419.53 ],\n a7 : [ 209.76 , 297.64 ],\n a8 : [ 147.40 , 209.76 ],\n a9 : [ 104.88 , 147.40 ],\n a10 : [ 73.70 , 104.88 ],\n b0 : [ 2834.65 , 4008.19 ],\n b1 : [ 2004.09 , 2834.65 ],\n b2 : [ 1417.32 , 2004.09 ],\n b3 : [ 1000.63 , 1417.32 ],\n b4 : [ 708.66 , 1000.63 ],\n b5 : [ 498.90 , 708.66 ],\n b6 : [ 354.33 , 498.90 ],\n b7 : [ 249.45 , 354.33 ],\n b8 : [ 175.75 , 249.45 ],\n b9 : [ 124.72 , 175.75 ],\n b10 : [ 87.87 , 124.72 ],\n c0 : [ 2599.37 , 3676.54 ],\n c1 : [ 1836.85 , 2599.37 ],\n c2 : [ 1298.27 , 1836.85 ],\n c3 : [ 918.43 , 1298.27 ],\n c4 : [ 649.13 , 918.43 ],\n c5 : [ 459.21 , 649.13 ],\n c6 : [ 323.15 , 459.21 ],\n c7 : [ 229.61 , 323.15 ],\n c8 : [ 161.57 , 229.61 ],\n c9 : [ 113.39 , 161.57 ],\n c10 : [ 79.37 , 113.39 ],\n executive : [ 521.86 , 756.00 ],\n folio : [ 612.00 , 936.00 ],\n legal : [ 612.00 , 1008.00 ],\n letter : [ 612.00 , 792.00 ],\n tabloid : [ 792.00 , 1224.00 ]\n};\n\nfunction makeOutput() {\n var indentLevel = 0, output = BinaryStream();\n function out() {\n for (var i = 0; i < arguments.length; ++i) {\n var x = arguments[i];\n if (x === undefined) {\n throw new Error(\"Cannot output undefined to PDF\");\n }\n else if (x instanceof PDFValue) {\n x.beforeRender(out);\n x.render(out);\n }\n else if (isArray(x)) {\n renderArray(x, out);\n }\n else if (isDate(x)) {\n renderDate(x, out);\n }\n else if (typeof x == \"number\") {\n if (isNaN(x)) {\n throw new Error(\"Cannot output NaN to PDF\");\n }\n // make sure it doesn't end up in exponent notation\n var num = x.toFixed(7);\n if (num.indexOf(\".\") >= 0) {\n num = num.replace(/\\.?0+$/, \"\");\n }\n if (num == \"-0\") {\n num = \"0\";\n }\n output.writeString(num);\n }\n else if (/string|boolean/.test(typeof x)) {\n output.writeString(String(x));\n }\n else if (typeof x.get == \"function\") {\n output.write(x.get());\n }\n else if (typeof x == \"object\") {\n if (!x) {\n output.writeString(\"null\");\n } else {\n out(new PDFDictionary(x));\n }\n }\n }\n }\n out.writeData = function(data) {\n output.write(data);\n };\n out.withIndent = function(f) {\n ++indentLevel;\n f(out);\n --indentLevel;\n };\n out.indent = function() {\n out(NL, pad(\"\", indentLevel * 2, \" \"));\n out.apply(null, arguments);\n };\n out.offset = function() {\n return output.offset();\n };\n out.toString = function() {\n throw new Error(\"FIX CALLER\");\n };\n out.get = function() {\n return output.get();\n };\n out.stream = function() {\n return output;\n };\n return out;\n}\n\nfunction wrapObject(value, id) {\n var beforeRender = value.beforeRender;\n var renderValue = value.render;\n\n value.beforeRender = function(){};\n\n value.render = function(out) {\n out(id, \" 0 R\");\n };\n\n value.renderFull = function(out) {\n value._offset = out.offset();\n out(id, \" 0 obj \");\n beforeRender.call(value, out);\n renderValue.call(value, out);\n out(\" endobj\");\n };\n}\n\nfunction getPaperOptions(getOption) {\n if (typeof getOption != \"function\") {\n var options = getOption;\n getOption = function(key, def) {\n return key in options ? options[key] : def;\n };\n }\n var paperSize = getOption(\"paperSize\", PAPER_SIZE.a4);\n if (!paperSize) {\n return {};\n }\n if (typeof paperSize == \"string\") {\n paperSize = PAPER_SIZE[paperSize.toLowerCase()];\n if (paperSize == null) {\n throw new Error(\"Unknown paper size\");\n }\n }\n\n paperSize[0] = unitsToPoints(paperSize[0]);\n paperSize[1] = unitsToPoints(paperSize[1]);\n\n if (getOption(\"landscape\", false)) {\n paperSize = [\n Math.max(paperSize[0], paperSize[1]),\n Math.min(paperSize[0], paperSize[1])\n ];\n }\n\n var margin = getOption(\"margin\");\n if (margin) {\n if (typeof margin == \"string\" || typeof margin == \"number\") {\n margin = unitsToPoints(margin, 0);\n margin = { left: margin, top: margin, right: margin, bottom: margin };\n } else {\n margin = {\n left : unitsToPoints(margin.left, 0),\n top : unitsToPoints(margin.top, 0),\n right : unitsToPoints(margin.right, 0),\n bottom : unitsToPoints(margin.bottom, 0)\n };\n }\n if (getOption(\"addMargin\")) {\n paperSize[0] += margin.left + margin.right;\n paperSize[1] += margin.top + margin.bottom;\n }\n }\n return { paperSize: paperSize, margin: margin };\n}\n\nvar FONT_CACHE = {\n \"Times-Roman\" : true,\n \"Times-Bold\" : true,\n \"Times-Italic\" : true,\n \"Times-BoldItalic\" : true,\n \"Helvetica\" : true,\n \"Helvetica-Bold\" : true,\n \"Helvetica-Oblique\" : true,\n \"Helvetica-BoldOblique\" : true,\n \"Courier\" : true,\n \"Courier-Bold\" : true,\n \"Courier-Oblique\" : true,\n \"Courier-BoldOblique\" : true,\n \"Symbol\" : true,\n \"ZapfDingbats\" : true\n};\n\nfunction loadBinary(url, cont) {\n // IE throws Accesss denied error for Data URIs\n let m;\n if (browser.msie && (m = /^data:.*?;base64,/i.exec(url))) {\n cont(base64ToUint8Array(url.substr(m[0].length)));\n return;\n }\n\n function error() {\n if (window.console) {\n if (window.console.error) {\n window.console.error(\"Cannot load URL: %s\", url);\n } else {\n window.console.log(\"Cannot load URL: %s\", url);\n }\n }\n cont(null);\n }\n var req = new XMLHttpRequest();\n req.open('GET', url, true);\n if (HAS_TYPED_ARRAYS) {\n req.responseType = \"arraybuffer\";\n }\n req.onload = function() {\n if (req.status == 200 || req.status == 304) {\n if (HAS_TYPED_ARRAYS) {\n cont(new Uint8Array(req.response));\n } else {\n cont(new window.VBArray(req.responseBody).toArray()); // IE9 only\n }\n } else {\n error();\n }\n };\n req.onerror = error;\n req.send(null);\n}\n\nfunction loadFont(url, cont) {\n var font = FONT_CACHE[url];\n if (font) {\n cont(font);\n } else {\n loadBinary(url, function(data){\n if (data == null) {\n throw new Error(\"Cannot load font from \" + url);\n } else {\n var font = new TTFFont(data);\n FONT_CACHE[url] = font;\n cont(font);\n }\n });\n }\n}\n\nvar IMAGE_CACHE = {};\n\nfunction clearImageCache() {\n IMAGE_CACHE = {};\n}\n\nfunction loadImage(url, size, cont, options) {\n var img = IMAGE_CACHE[url], bloburl, blob;\n if (img) {\n cont(img);\n } else {\n img = new Image();\n if (!(/^data:/i.test(url))) {\n img.crossOrigin = \"Anonymous\";\n }\n if (HAS_TYPED_ARRAYS && !(/^data:/i.test(url))) {\n // IE10 fails to load images from another domain even when the server sends the\n // proper CORS headers. a XHR, however, will be able to load the data.\n // http://stackoverflow.com/a/19734516/154985\n //\n // On the other hand, it's worth doing it this way for all browsers which support\n // responseType = \"blob\" (HAS_TYPED_ARRAYS will be true), because we can inspect the\n // mime type and if it's a JPEG (very common case) we can save a lot of time in\n // _load below.\n var xhr = new XMLHttpRequest();\n xhr.onload = function() {\n blob = xhr.response;\n if (browser.mozilla && blob.type == \"image/svg+xml\") {\n // Firefox won't render SVGs that don't contain width and height attributes.\n let reader = new FileReader();\n reader.onload = function() {\n let doc = new window.DOMParser().parseFromString(this.result, \"image/svg+xml\");\n let svg = doc.documentElement;\n if (svg.getAttribute(\"width\") && svg.getAttribute(\"height\")) {\n // we're good, continue with the existing blob.\n bloburl = URL.createObjectURL(blob);\n _load(bloburl);\n } else {\n svg.setAttribute(\"width\", size.width);\n svg.setAttribute(\"height\", size.height);\n let xml = new window.XMLSerializer().serializeToString(svg);\n let dataURL = `data:image/svg+xml;base64,${encodeBase64(xml)}`;\n _load(dataURL);\n }\n };\n reader.readAsText(blob);\n } else {\n bloburl = URL.createObjectURL(blob);\n _load(bloburl);\n }\n };\n xhr.onerror = _onerror;\n xhr.open(\"GET\", url, true);\n xhr.responseType = \"blob\";\n xhr.send();\n } else {\n _load(url);\n }\n }\n\n function _load(url) {\n img.src = url;\n if (img.complete && !browser.msie) {\n // IE, bless its little heart, says img.complete == true even though the image is\n // not loaded (width=0), therefore we must go the onload route (ticket 929635).\n _onload.call(img);\n } else {\n img.onload = _onload;\n img.onerror = _onerror;\n }\n }\n\n function _trycanvas() {\n if (!size) {\n size = { width: img.width, height: img.height };\n }\n\n var canvas = document.createElement(\"canvas\");\n canvas.width = size.width;\n canvas.height = size.height;\n\n var ctx = canvas.getContext(\"2d\");\n ctx.drawImage(img, 0, 0, size.width, size.height);\n\n var imgdata;\n try {\n imgdata = ctx.getImageData(0, 0, size.width, size.height);\n } catch (ex) {\n // it tainted the canvas -- can't draw it.\n _onerror();\n return;\n } finally {\n if (bloburl) {\n URL.revokeObjectURL(bloburl);\n }\n }\n\n // in case it contains transparency, we must separate rgb data from the alpha\n // channel and create a PDFRawImage image with opacity. otherwise we can use a\n // PDFJpegImage.\n //\n // to do this in one step, we create the rgb and alpha streams anyway, even if\n // we might end up not using them if hasAlpha remains false.\n\n var hasAlpha = false, rgb = BinaryStream(), alpha = BinaryStream();\n var rawbytes = imgdata.data;\n var i = 0;\n while (i < rawbytes.length) {\n rgb.writeByte(rawbytes[i++]);\n rgb.writeByte(rawbytes[i++]);\n rgb.writeByte(rawbytes[i++]);\n var a = rawbytes[i++];\n if (a < 255) {\n hasAlpha = true;\n }\n alpha.writeByte(a);\n }\n\n if (hasAlpha || options.keepPNG) {\n img = new PDFRawImage(size.width, size.height, rgb, alpha);\n } else {\n // no transparency, encode as JPEG.\n var data = canvas.toDataURL(\"image/jpeg\", options.jpegQuality);\n data = data.substr(data.indexOf(\";base64,\") + 8);\n\n var stream = BinaryStream();\n stream.writeBase64(data);\n img = new PDFJpegImage(stream);\n }\n\n cont(IMAGE_CACHE[url] = img);\n }\n\n function _onerror() {\n cont(IMAGE_CACHE[url] = \"ERROR\");\n }\n\n function _onload() {\n if (size) {\n const svg = (blob && blob.type === 'image/svg+xml') || (\n /^data:image\\/svg\\+xml;/i.test(this.src.substring(0, 19))\n );\n\n const upscale = size.width >= img.width || size.height >= img.height;\n\n // Use the original image if requested size is bigger than the source,\n // unless it's an SVG that can be upscaled.\n if (!svg && upscale) {\n size = null;\n }\n }\n if (!size && blob && /^image\\/jpe?g$/i.test(blob.type)) {\n // If we know we got a JPEG, we can skip the process of rendering it to a\n // canvas, getting the pixel data, searching for transparency we know we won't\n // find, getting back a data URI and then decoding the BASE64 to finally get the\n // binary we already have. Also, we avoid downgrading the image quality, with\n // the possible drawback of making a bigger PDF; still, seems legit.\n //\n // Besides saving a lot of work, this also reuses the buffer memory\n // (BinaryStream does not create a copy), potentially saving some GC cycles.\n let reader = new FileReader();\n reader.onload = function() {\n try {\n let img = new PDFJpegImage(BinaryStream(new Uint8Array(this.result)));\n URL.revokeObjectURL(bloburl);\n cont(IMAGE_CACHE[url] = img);\n } catch (ex) {\n // if there's an error parsing the JPEG stream, it could be due to a\n // misconfigured server (improper content-type:\n // https://github.com/telerik/kendo-ui-core/issues/4184). If that's the case,\n // the canvas will still be able to draw it.\n _trycanvas();\n }\n };\n reader.readAsArrayBuffer(blob);\n } else {\n _trycanvas();\n }\n }\n}\n\nfunction manyLoader(loadOne) {\n return function(urls, callback) {\n var n = urls.length, i = n;\n if (n === 0) {\n return callback();\n }\n function next() {\n if (--n === 0) {\n callback();\n }\n }\n while (i-- > 0) {\n loadOne(urls[i], next);\n }\n };\n}\n\nvar loadFonts = manyLoader(loadFont);\nvar loadImages = function(images, callback, options) {\n options = Object.assign({\n jpegQuality : 0.92,\n keepPNG : false\n }, options);\n var urls = Object.keys(images), n = urls.length;\n if (n === 0) {\n return callback();\n }\n function next() {\n if (--n === 0) {\n callback();\n }\n }\n urls.forEach(function(url){\n loadImage(url, images[url], next, options);\n });\n};\n\nclass PDFDocument {\n constructor (options) {\n var self = this;\n var out = makeOutput();\n var objcount = 0;\n var objects = [];\n\n function getOption(name, defval) {\n return (options && options[name] != null) ? options[name] : defval;\n }\n\n self.getOption = getOption;\n\n self.attach = function(value) {\n if (objects.indexOf(value) < 0) {\n wrapObject(value, ++objcount);\n objects.push(value);\n }\n return value;\n };\n\n self.pages = [];\n\n self.FONTS = {};\n self.IMAGES = {};\n self.GRAD_COL_FUNCTIONS = {}; // cache for color gradient functions\n self.GRAD_OPC_FUNCTIONS = {}; // cache for opacity gradient functions\n self.GRAD_COL = {}; // cache for whole color gradient objects\n self.GRAD_OPC = {}; // cache for whole opacity gradient objects\n\n var catalog = self.attach(new PDFCatalog());\n var pageTree = self.attach(new PDFPageTree());\n\n if (getOption(\"autoPrint\")) {\n let nameTree = {};\n nameTree.JavaScript = new PDFDictionary({ Names: [\n new PDFString(\"JS\"), self.attach(new PDFDictionary({\n S: _(\"JavaScript\"),\n JS: new PDFString(\"print(true);\")\n }))\n ] });\n catalog.props.Names = new PDFDictionary(nameTree);\n }\n\n catalog.setPages(pageTree);\n\n var info = self.attach(new PDFDictionary({\n Producer : new PDFString(getOption(\"producer\", \"Kendo UI PDF Generator\"), true), // XXX: kendo.version?\n Title : new PDFString(getOption(\"title\", \"\"), true),\n Author : new PDFString(getOption(\"author\", \"\"), true),\n Subject : new PDFString(getOption(\"subject\", \"\"), true),\n Keywords : new PDFString(getOption(\"keywords\", \"\"), true),\n Creator : new PDFString(getOption(\"creator\", \"Kendo UI PDF Generator\"), true),\n CreationDate : getOption(\"date\", new Date())\n }));\n\n self.addPage = function(options) {\n var paperOptions = getPaperOptions(function(name, defval){\n return (options && options[name] != null) ? options[name] : defval;\n });\n var paperSize = paperOptions.paperSize;\n var margin = paperOptions.margin;\n var contentWidth = paperSize[0];\n var contentHeight = paperSize[1];\n if (margin) {\n contentWidth -= margin.left + margin.right;\n contentHeight -= margin.top + margin.bottom;\n }\n var content = new PDFStream(makeOutput(), null, true);\n var props = {\n Contents : self.attach(content),\n Parent : pageTree,\n MediaBox : [ 0, 0, paperSize[0], paperSize[1] ]\n };\n var page = new PDFPage(self, props);\n page._content = content;\n pageTree.addPage(self.attach(page));\n\n // canvas-like coord. system. (0,0) is upper-left.\n // text must be vertically mirorred before drawing.\n page.transform(1, 0, 0, -1, 0, paperSize[1]);\n\n if (margin) {\n page.translate(margin.left, margin.top);\n // XXX: clip to right/bottom margin. Make this optional?\n page.rect(0, 0, contentWidth, contentHeight);\n page.clip();\n }\n\n self.pages.push(page);\n return page;\n };\n\n self.render = function() {\n var i;\n /// file header\n out(\"%PDF-1.4\", NL, \"%\\xc2\\xc1\\xda\\xcf\\xce\", NL, NL);\n\n /// file body\n for (i = 0; i < objects.length; ++i) {\n objects[i].renderFull(out);\n out(NL, NL);\n }\n\n /// cross-reference table\n var xrefOffset = out.offset();\n out(\"xref\", NL, 0, \" \", objects.length + 1, NL);\n out(\"0000000000 65535 f \", NL);\n for (i = 0; i < objects.length; ++i) {\n out(zeropad(objects[i]._offset, 10), \" 00000 n \", NL);\n }\n out(NL);\n\n /// trailer\n out(\"trailer\", NL);\n out(new PDFDictionary({\n Size: objects.length + 1,\n Root: catalog,\n Info: info\n }), NL, NL);\n\n /// end\n out(\"startxref\", NL, xrefOffset, NL);\n out(\"%%EOF\", NL);\n\n return out.stream().offset(0);\n };\n\n self.loadFonts = loadFonts;\n self.loadImages = loadImages;\n }\n\n getFont(url) {\n var font = this.FONTS[url];\n if (!font) {\n font = FONT_CACHE[url];\n if (!font) {\n throw new Error(\"Font \" + url + \" has not been loaded\");\n }\n if (font === true) {\n font = this.attach(new PDFStandardFont(url));\n } else {\n font = this.attach(new PDFFont(this, font));\n }\n this.FONTS[url] = font;\n }\n return font;\n }\n\n getImage(url) {\n var img = this.IMAGES[url];\n if (!img) {\n img = IMAGE_CACHE[url];\n if (!img) {\n throw new Error(\"Image \" + url + \" has not been loaded\");\n }\n if (img === \"ERROR\") {\n return null;\n }\n img = this.IMAGES[url] = this.attach(img.asStream(this));\n }\n return img;\n }\n\n getOpacityGS(opacity, forStroke) {\n var id = parseFloat(opacity).toFixed(3);\n opacity = parseFloat(id);\n id += forStroke ? \"S\" : \"F\";\n var cache = this._opacityGSCache || (this._opacityGSCache = {});\n var gs = cache[id];\n if (!gs) {\n var props = {\n Type: _(\"ExtGState\")\n };\n if (forStroke) {\n props.CA = opacity;\n } else {\n props.ca = opacity;\n }\n gs = this.attach(new PDFDictionary(props));\n gs._resourceName = _(\"GS\" + (++RESOURCE_COUNTER));\n cache[id] = gs;\n }\n return gs;\n }\n\n dict(props) {\n return new PDFDictionary(props);\n }\n\n name(str) {\n return _(str);\n }\n\n stream(props, content) {\n return new PDFStream(content, props);\n }\n}\n\n/* -----[ utils ]----- */\n\nfunction pad(str, len, ch) {\n while (str.length < len) {\n str = ch + str;\n }\n return str;\n}\n\nfunction zeropad(n, len) {\n return pad(String(n), len, \"0\");\n}\n\nfunction hasOwnProperty(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nvar isArray = Array.isArray || function(obj) {\n return obj instanceof Array;\n};\n\nfunction isDate(obj) {\n return obj instanceof Date;\n}\n\nfunction renderArray(a, out) {\n out(\"[\");\n if (a.length > 0) {\n out.withIndent(function(){\n for (var i = 0; i < a.length; ++i) {\n if (i > 0 && i % 8 === 0) {\n out.indent(a[i]);\n } else {\n out(\" \", a[i]);\n }\n }\n });\n //out.indent();\n }\n out(\" ]\");\n}\n\nfunction renderDate(date, out) {\n out(\"(D:\",\n zeropad(date.getUTCFullYear(), 4),\n zeropad(date.getUTCMonth() + 1, 2),\n zeropad(date.getUTCDate(), 2),\n zeropad(date.getUTCHours(), 2),\n zeropad(date.getUTCMinutes(), 2),\n zeropad(date.getUTCSeconds(), 2),\n \"Z)\");\n}\n\nfunction mm2pt(mm) {\n return mm * (72/25.4);\n}\n\nfunction cm2pt(cm) {\n return mm2pt(cm * 10);\n}\n\nfunction in2pt(inch) {\n return inch * 72;\n}\n\n\nfunction unitsToPoints(x, def) {\n if (typeof x == \"number\") {\n return x;\n }\n if (typeof x == \"string\") {\n var m;\n m = /^\\s*([0-9.]+)\\s*(mm|cm|in|pt)\\s*$/.exec(x);\n if (m) {\n var num = parseFloat(m[1]);\n if (!isNaN(num)) {\n if (m[2] == \"pt\") {\n return num;\n }\n return {\n \"mm\": mm2pt,\n \"cm\": cm2pt,\n \"in\": in2pt\n }[m[2]](num);\n }\n }\n }\n if (def != null) {\n return def;\n }\n throw new Error(\"Can't parse unit: \" + x);\n}\n\n/* -----[ PDF basic objects ]----- */\n\nclass PDFValue {\n beforeRender() {}\n}\n\nclass PDFString extends PDFValue {\n constructor(value, utf16be) {\n super();\n this.value = value;\n this.utf16be = Boolean(utf16be);\n }\n\n render(out) {\n let txt = this.value;\n if (this.utf16be) {\n txt = BOM + encodeUTF16BE(txt);\n txt = txt.replace(/([\\(\\)\\\\])/g, \"\\\\$1\");\n out(\"(\", txt, \")\");\n } else {\n // out.writeString truncates charcodes to 8 bits and\n // 0x128 & 0xFF is 40, the code for open paren.\n // therefore we need to do the chopping here to make\n // sure we backslash all cases.\n let data = [ 40 ]; // open PDF string '('\n for (var i = 0; i < txt.length; ++i) {\n let code = txt.charCodeAt(i) & 0xFF;\n if (code == 40 || code == 41 || code == 92) {\n // backslash before (, ) and \\\n data.push(92);\n }\n data.push(code);\n }\n data.push(41); // ')' close PDF string\n out.writeData(data);\n }\n }\n\n toString() {\n return this.value;\n }\n}\n\nclass PDFHexString extends PDFString {\n constructor(value) {\n super(value);\n this.value = value;\n }\n\n render(out) {\n out(\"<\");\n for (var i = 0; i < this.value.length; ++i) {\n out(zeropad(this.value.charCodeAt(i).toString(16), 4));\n }\n out(\">\");\n }\n}\n\n/// names\nclass PDFName extends PDFValue {\n static get(name) {\n return _(name);\n }\n\n constructor(name) {\n super();\n this.name = name;\n }\n\n render(out) {\n out(\"/\" + this.escape());\n }\n\n escape() {\n return this.name.replace(/[^\\x21-\\x7E]/g, function(c){\n return \"#\" + zeropad(c.charCodeAt(0).toString(16), 2);\n });\n }\n\n toString() {\n return this.name;\n }\n}\n\nfunction _(name) {\n return new PDFName(name);\n}\n\n/// dictionary\n\nclass PDFDictionary extends PDFValue {\n constructor(props) {\n super();\n this.props = props;\n }\n\n render(out) {\n var props = this.props, empty = true;\n out(\"<<\");\n out.withIndent(function(){\n for (var i in props) {\n if (hasOwnProperty(props, i) && !/^_/.test(i)) {\n empty = false;\n out.indent(_(i), \" \", props[i]);\n }\n }\n });\n if (!empty) {\n out.indent();\n }\n out(\">>\");\n }\n}\n\n/// streams\n\nclass PDFStream extends PDFValue {\n constructor(data, props, compress) {\n super();\n if (typeof data == \"string\") {\n var tmp = BinaryStream();\n tmp.write(data);\n data = tmp;\n }\n this.data = data;\n this.props = props || {};\n this.compress = compress;\n }\n\n render(out) {\n var data = this.data.get(), props = this.props;\n if (this.compress && supportsDeflate()) {\n if (!props.Filter) {\n props.Filter = [];\n } else if (!(props.Filter instanceof Array)) {\n props.Filter = [ props.Filter ];\n }\n props.Filter.unshift(_(\"FlateDecode\"));\n data = deflate(data);\n }\n props.Length = data.length;\n out(new PDFDictionary(props), \" stream\", NL);\n out.writeData(data);\n out(NL, \"endstream\");\n }\n}\n\n/// catalog\n\nclass PDFCatalog extends PDFDictionary {\n constructor() {\n super({\n Type: _(\"Catalog\")\n });\n }\n\n setPages(pagesObj) {\n this.props.Pages = pagesObj;\n }\n}\n\n/// page tree\n\nclass PDFPageTree extends PDFDictionary {\n constructor() {\n super({\n Type : _(\"Pages\"),\n Kids : [],\n Count : 0\n });\n }\n\n addPage(pageObj) {\n this.props.Kids.push(pageObj);\n this.props.Count++;\n }\n}\n\n/// images\n\n// JPEG\n\nvar SOF_CODES = [0xc0, 0xc1, 0xc2, 0xc3, 0xc5, 0xc6, 0xc7, 0xc9, 0xca, 0xcb, 0xcd, 0xce, 0xcf];\n\nclass PDFJpegImage {\n constructor(data) {\n // we must determine the correct color space. we'll parse a bit\n // of the JPEG stream for this, it's still better than going\n // through the canvas.\n // https://github.com/telerik/kendo-ui-core/issues/2845\n data.offset(0);\n var width, height, colorSpace, bitsPerComponent;\n var soi = data.readShort();\n if (soi != 0xFFD8) {\n // XXX: do we have some better options here?\n throw new Error(\"Invalid JPEG image\");\n }\n while (!data.eof()) {\n var ff = data.readByte();\n if (ff != 0xFF) {\n throw new Error(\"Invalid JPEG image\");\n }\n var marker = data.readByte();\n var length = data.readShort();\n if (SOF_CODES.indexOf(marker) >= 0) {\n // \"start of frame\" marker\n bitsPerComponent = data.readByte();\n height = data.readShort();\n width = data.readShort();\n colorSpace = data.readByte();\n break;\n }\n data.skip(length - 2);\n }\n\n if (colorSpace == null) {\n throw new Error(\"Invalid JPEG image\");\n }\n\n var props = {\n Type : _(\"XObject\"),\n Subtype : _(\"Image\"),\n Width : width,\n Height : height,\n BitsPerComponent : bitsPerComponent,\n Filter : _(\"DCTDecode\")\n };\n\n switch (colorSpace) {\n case 1:\n props.ColorSpace = _(\"DeviceGray\");\n break;\n case 3:\n props.ColorSpace = _(\"DeviceRGB\");\n break;\n case 4:\n props.ColorSpace = _(\"DeviceCMYK\");\n props.Decode = [ 1, 0, 1, 0, 1, 0, 1, 0 ]; // invert colors\n break;\n }\n\n this.asStream = function() {\n data.offset(0);\n var stream = new PDFStream(data, props);\n stream._resourceName = _(\"I\" + (++RESOURCE_COUNTER));\n return stream;\n };\n }\n}\n\n// PDFRawImage will be used for images with transparency (PNG)\n\nclass PDFRawImage {\n constructor(width, height, rgb, alpha) {\n this.asStream = function(pdf) {\n var mask = new PDFStream(alpha, {\n Type : _(\"XObject\"),\n Subtype : _(\"Image\"),\n Width : width,\n Height : height,\n BitsPerComponent : 8,\n ColorSpace : _(\"DeviceGray\")\n }, true);\n var stream = new PDFStream(rgb, {\n Type : _(\"XObject\"),\n Subtype : _(\"Image\"),\n Width : width,\n Height : height,\n BitsPerComponent : 8,\n ColorSpace : _(\"DeviceRGB\"),\n SMask : pdf.attach(mask)\n }, true);\n stream._resourceName = _(\"I\" + (++RESOURCE_COUNTER));\n return stream;\n };\n }\n}\n\n/// standard fonts\n\nclass PDFStandardFont extends PDFDictionary {\n constructor(name){\n super({\n Type : _(\"Font\"),\n Subtype : _(\"Type1\"),\n BaseFont : _(name)\n });\n\n this._resourceName = _(\"F\" + (++RESOURCE_COUNTER));\n }\n\n encodeText(str) {\n return new PDFString(String(str));\n }\n}\n\n/// TTF fonts\n\nclass PDFFont extends PDFDictionary {\n constructor(pdf, font, props){\n super({});\n\n props = this.props;\n props.Type = _(\"Font\");\n props.Subtype = _(\"Type0\");\n props.Encoding = _(\"Identity-H\");\n\n this._pdf = pdf;\n this._font = font;\n this._sub = font.makeSubset();\n this._resourceName = _(\"F\" + (++RESOURCE_COUNTER));\n\n var head = font.head;\n\n this.name = font.psName;\n var scale = this.scale = font.scale;\n this.bbox = [\n head.xMin * scale,\n head.yMin * scale,\n head.xMax * scale,\n head.yMax * scale\n ];\n\n this.italicAngle = font.post.italicAngle;\n this.ascent = font.ascent * scale;\n this.descent = font.descent * scale;\n this.lineGap = font.lineGap * scale;\n this.capHeight = font.os2.capHeight || this.ascent;\n this.xHeight = font.os2.xHeight || 0;\n this.stemV = 0;\n\n this.familyClass = (font.os2.familyClass || 0) >> 8;\n this.isSerif = this.familyClass >= 1 && this.familyClass <= 7;\n this.isScript = this.familyClass == 10;\n\n this.flags = ((font.post.isFixedPitch ? 1 : 0) |\n (this.isSerif ? 1 << 1 : 0) |\n (this.isScript ? 1 << 3 : 0) |\n (this.italicAngle !== 0 ? 1 << 6 : 0) |\n (1 << 5));\n }\n\n encodeText(text) {\n return new PDFHexString(this._sub.encodeText(String(text)));\n }\n\n getTextWidth(fontSize, text) {\n var width = 0, codeMap = this._font.cmap.codeMap;\n for (var i = 0; i < text.length; ++i) {\n var glyphId = codeMap[text.charCodeAt(i)];\n width += this._font.widthOfGlyph(glyphId || 0);\n }\n return width * fontSize / 1000;\n }\n\n beforeRender() {\n var self = this;\n var sub = self._sub;\n\n // write the TTF data\n var data = sub.render();\n var fontStream = new PDFStream(BinaryStream(data), {\n Length1: data.length\n }, true);\n\n var descriptor = self._pdf.attach(new PDFDictionary({\n Type : _(\"FontDescriptor\"),\n FontName : _(self._sub.psName),\n FontBBox : self.bbox,\n Flags : self.flags,\n StemV : self.stemV,\n ItalicAngle : self.italicAngle,\n Ascent : self.ascent,\n Descent : self.descent,\n CapHeight : self.capHeight,\n XHeight : self.xHeight,\n FontFile2 : self._pdf.attach(fontStream)\n }));\n\n var cmap = sub.ncid2ogid;\n var firstChar = sub.firstChar;\n var lastChar = sub.lastChar;\n var charWidths = [];\n (function loop(i, chunk){\n if (i <= lastChar) {\n var gid = cmap[i];\n if (gid == null) {\n loop(i + 1);\n } else {\n if (!chunk) {\n charWidths.push(i, chunk = []);\n }\n chunk.push(self._font.widthOfGlyph(gid));\n loop(i + 1, chunk);\n }\n }\n })(firstChar);\n\n // As if two dictionaries weren't enough, we need another\n // one, the \"descendant font\". Only that one can be of\n // Subtype CIDFontType2. PDF is the X11 of document\n // formats: portable but full of legacy that nobody cares\n // about anymore.\n\n var descendant = new PDFDictionary({\n Type: _(\"Font\"),\n Subtype: _(\"CIDFontType2\"),\n BaseFont: _(self._sub.psName),\n CIDSystemInfo: new PDFDictionary({\n Registry : new PDFString(\"Adobe\"),\n Ordering : new PDFString(\"Identity\"),\n Supplement : 0\n }),\n FontDescriptor: descriptor,\n FirstChar: firstChar,\n LastChar: lastChar,\n DW: Math.round(self._font.widthOfGlyph(0)),\n W: charWidths,\n CIDToGIDMap: self._pdf.attach(self._makeCidToGidMap())\n });\n\n var dict = self.props;\n dict.BaseFont = _(self._sub.psName);\n dict.DescendantFonts = [ self._pdf.attach(descendant) ];\n\n // Compute the ToUnicode map so that apps can extract\n // meaningful text from the PDF.\n var unimap = new PDFToUnicodeCmap(firstChar, lastChar, sub.subset);\n var unimapStream = new PDFStream(makeOutput(), null, true);\n unimapStream.data(unimap);\n dict.ToUnicode = self._pdf.attach(unimapStream);\n }\n\n _makeCidToGidMap() {\n return new PDFStream(BinaryStream(this._sub.cidToGidMap()), null, true);\n }\n}\n\nclass PDFToUnicodeCmap extends PDFValue {\n constructor(firstChar, lastChar, map){\n super();\n this.firstChar = firstChar;\n this.lastChar = lastChar;\n this.map = map;\n }\n\n render(out) {\n out.indent(\"/CIDInit /ProcSet findresource begin\");\n out.indent(\"12 dict begin\");\n out.indent(\"begincmap\");\n out.indent(\"/CIDSystemInfo <<\");\n out.indent(\" /Registry (Adobe)\");\n out.indent(\" /Ordering (UCS)\");\n out.indent(\" /Supplement 0\");\n out.indent(\">> def\");\n out.indent(\"/CMapName /Adobe-Identity-UCS def\");\n out.indent(\"/CMapType 2 def\");\n out.indent(\"1 begincodespacerange\");\n out.indent(\" <0000>\");\n out.indent(\"endcodespacerange\");\n\n var self = this;\n out.indent(self.lastChar - self.firstChar + 1, \" beginbfchar\");\n out.withIndent(function(){\n for (var code = self.firstChar; code <= self.lastChar; ++code) {\n var unicode = self.map[code];\n var str = ucs2encode([ unicode ]);\n out.indent(\"<\", zeropad(code.toString(16), 4), \">\", \"<\");\n for (var i = 0; i < str.length; ++i) {\n out(zeropad(str.charCodeAt(i).toString(16), 4));\n }\n out(\">\");\n }\n });\n out.indent(\"endbfchar\");\n\n out.indent(\"endcmap\");\n out.indent(\"CMapName currentdict /CMap defineresource pop\");\n out.indent(\"end\");\n out.indent(\"end\");\n }\n}\n\n/// gradients\n\nfunction makeHash(a) {\n return a.map(function(x){\n return isArray(x) ? makeHash(x)\n : typeof x == \"number\" ? (Math.round(x * 1000) / 1000).toFixed(3)\n : x;\n }).join(\" \");\n}\n\nfunction cacheColorGradientFunction(pdf, r1, g1, b1, r2, g2, b2) {\n var hash = makeHash([ r1, g1, b1, r2, g2, b2 ]);\n var func = pdf.GRAD_COL_FUNCTIONS[hash];\n if (!func) {\n func = pdf.GRAD_COL_FUNCTIONS[hash] = pdf.attach(new PDFDictionary({\n FunctionType: 2,\n Domain: [ 0, 1 ],\n Range: [ 0, 1, 0, 1, 0, 1 ],\n N: 1,\n C0: [ r1 , g1 , b1 ],\n C1: [ r2 , g2 , b2 ]\n }));\n }\n return func;\n}\n\nfunction cacheOpacityGradientFunction(pdf, a1, a2) {\n var hash = makeHash([ a1, a2 ]);\n var func = pdf.GRAD_OPC_FUNCTIONS[hash];\n if (!func) {\n func = pdf.GRAD_OPC_FUNCTIONS[hash] = pdf.attach(new PDFDictionary({\n FunctionType: 2,\n Domain: [ 0, 1 ],\n Range: [ 0, 1 ],\n N: 1,\n C0: [ a1 ],\n C1: [ a2 ]\n }));\n }\n return func;\n}\n\nfunction makeGradientFunctions(pdf, stops) {\n var hasAlpha = false;\n var opacities = [];\n var colors = [];\n var offsets = [];\n var encode = [];\n var i, prev, cur, prevColor, curColor;\n for (i = 1; i < stops.length; ++i) {\n prev = stops[i - 1];\n cur = stops[i];\n prevColor = prev.color;\n curColor = cur.color;\n colors.push(cacheColorGradientFunction(\n pdf,\n prevColor.r, prevColor.g, prevColor.b,\n curColor.r, curColor.g, curColor.b\n ));\n if (prevColor.a < 1 || curColor.a < 1) {\n hasAlpha = true;\n }\n offsets.push(cur.offset);\n encode.push(0, 1);\n }\n if (hasAlpha) {\n for (i = 1; i < stops.length; ++i) {\n prev = stops[i - 1];\n cur = stops[i];\n prevColor = prev.color;\n curColor = cur.color;\n opacities.push(cacheOpacityGradientFunction(\n pdf, prevColor.a, curColor.a\n ));\n }\n }\n offsets.pop();\n return {\n hasAlpha : hasAlpha,\n colors : assemble(colors),\n opacities : hasAlpha ? assemble(opacities) : null\n };\n function assemble(funcs) {\n if (funcs.length == 1) {\n return funcs[0];\n }\n return {\n FunctionType: 3,\n Functions: funcs,\n Domain: [ 0, 1 ],\n Bounds: offsets,\n Encode: encode\n };\n }\n}\n\nfunction cacheColorGradient(pdf, isRadial, stops, coords, funcs, box) {\n var shading, hash;\n // if box is given then we have user-space coordinates, which\n // means the gradient is designed for a certain position/size\n // on page. caching won't do any good.\n if (!box) {\n var a = [ isRadial ].concat(coords);\n stops.forEach(function(x){\n a.push(x.offset, x.color.r, x.color.g, x.color.b);\n });\n hash = makeHash(a);\n shading = pdf.GRAD_COL[hash];\n }\n if (!shading) {\n shading = new PDFDictionary({\n Type: _(\"Shading\"),\n ShadingType: isRadial ? 3 : 2,\n ColorSpace: _(\"DeviceRGB\"),\n Coords: coords,\n Domain: [ 0, 1 ],\n Function: funcs,\n Extend: [ true, true ]\n });\n pdf.attach(shading);\n shading._resourceName = \"S\" + (++RESOURCE_COUNTER);\n if (hash) {\n pdf.GRAD_COL[hash] = shading;\n }\n }\n return shading;\n}\n\nfunction cacheOpacityGradient(pdf, isRadial, stops, coords, funcs, box) {\n var opacity, hash;\n // if box is given then we have user-space coordinates, which\n // means the gradient is designed for a certain position/size\n // on page. caching won't do any good.\n if (!box) {\n var a = [ isRadial ].concat(coords);\n stops.forEach(function(x){\n a.push(x.offset, x.color.a);\n });\n hash = makeHash(a);\n opacity = pdf.GRAD_OPC[hash];\n }\n if (!opacity) {\n opacity = new PDFDictionary({\n Type: _(\"ExtGState\"),\n AIS: false,\n CA: 1,\n ca: 1,\n SMask: {\n Type: _(\"Mask\"),\n S: _(\"Luminosity\"),\n G: pdf.attach(new PDFStream(\"/a0 gs /s0 sh\", {\n Type: _(\"XObject\"),\n Subtype: _(\"Form\"),\n FormType: 1,\n BBox: (box ? [\n box.left, box.top + box.height, box.left + box.width, box.top\n ] : [ 0, 1, 1, 0 ]),\n Group: {\n Type: _(\"Group\"),\n S: _(\"Transparency\"),\n CS: _(\"DeviceGray\"),\n I: true\n },\n Resources: {\n ExtGState: {\n a0: { CA: 1, ca: 1 }\n },\n Shading: {\n s0: {\n ColorSpace: _(\"DeviceGray\"),\n Coords: coords,\n Domain: [ 0, 1 ],\n ShadingType: isRadial ? 3 : 2,\n Function: funcs,\n Extend: [ true, true ]\n }\n }\n }\n }))\n }\n });\n pdf.attach(opacity);\n opacity._resourceName = \"O\" + (++RESOURCE_COUNTER);\n if (hash) {\n pdf.GRAD_OPC[hash] = opacity;\n }\n }\n return opacity;\n}\n\nfunction cacheGradient(pdf, gradient, box) {\n var isRadial = gradient.type == \"radial\";\n var funcs = makeGradientFunctions(pdf, gradient.stops);\n var coords = isRadial ? [\n gradient.start.x , gradient.start.y , gradient.start.r,\n gradient.end.x , gradient.end.y , gradient.end.r\n ] : [\n gradient.start.x , gradient.start.y,\n gradient.end.x , gradient.end.y\n ];\n var shading = cacheColorGradient(\n pdf, isRadial, gradient.stops, coords, funcs.colors, gradient.userSpace && box\n );\n var opacity = funcs.hasAlpha ? cacheOpacityGradient(\n pdf, isRadial, gradient.stops, coords, funcs.opacities, gradient.userSpace && box\n ) : null;\n return {\n hasAlpha: funcs.hasAlpha,\n shading: shading,\n opacity: opacity\n };\n}\n\n/// page object\n\nclass PDFPage extends PDFDictionary {\n constructor(pdf, props){\n super(props);\n\n this._pdf = pdf;\n this._rcount = 0;\n this._textMode = false;\n this._fontResources = {};\n this._gsResources = {};\n this._xResources = {};\n this._patResources = {};\n this._shResources = {};\n this._opacity = 1;\n this._matrix = [ 1, 0, 0, 1, 0, 0 ];\n this._annotations = [];\n\n this._font = null;\n this._fontSize = null;\n\n this._contextStack = [];\n\n props = this.props;\n props.Type = _(\"Page\");\n props.ProcSet = [\n _(\"PDF\"),\n _(\"Text\"),\n _(\"ImageB\"),\n _(\"ImageC\"),\n _(\"ImageI\")\n ];\n props.Resources = new PDFDictionary({\n Font : new PDFDictionary(this._fontResources),\n ExtGState : new PDFDictionary(this._gsResources),\n XObject : new PDFDictionary(this._xResources),\n Pattern : new PDFDictionary(this._patResources),\n Shading : new PDFDictionary(this._shResources)\n });\n props.Annots = this._annotations;\n }\n\n _out() {\n this._content.data.apply(null, arguments);\n }\n\n transform(a, b, c, d, e, f) {\n if (!isIdentityMatrix(arguments)) {\n this._matrix = mmul(arguments, this._matrix);\n this._out(a, \" \", b, \" \", c, \" \", d, \" \", e, \" \", f, \" cm\");\n // XXX: debug\n // this._out(\" % current matrix: \", this._matrix);\n this._out(NL);\n }\n }\n\n translate(dx, dy) {\n this.transform(1, 0, 0, 1, dx, dy);\n }\n\n scale(sx, sy) {\n this.transform(sx, 0, 0, sy, 0, 0);\n }\n\n rotate(angle) {\n var cos = Math.cos(angle), sin = Math.sin(angle);\n this.transform(cos, sin, -sin, cos, 0, 0);\n }\n\n beginText() {\n this._textMode = true;\n this._out(\"BT\", NL);\n }\n\n endText() {\n this._textMode = false;\n this._out(\"ET\", NL);\n }\n\n _requireTextMode() {\n if (!this._textMode) {\n throw new Error(\"Text mode required; call page.beginText() first\");\n }\n }\n\n _requireFont() {\n if (!this._font) {\n throw new Error(\"No font selected; call page.setFont() first\");\n }\n }\n\n setFont(font, size) {\n this._requireTextMode();\n if (font == null) {\n font = this._font;\n } else if (!(font instanceof PDFFont)) {\n font = this._pdf.getFont(font);\n }\n if (size == null) {\n size = this._fontSize;\n }\n this._fontResources[font._resourceName] = font;\n this._font = font;\n this._fontSize = size;\n this._out(font._resourceName, \" \", size, \" Tf\", NL);\n }\n\n setTextLeading(size) {\n this._requireTextMode();\n this._out(size, \" TL\", NL);\n }\n\n setTextRenderingMode(mode) {\n this._requireTextMode();\n this._out(mode, \" Tr\", NL);\n }\n\n showText(text, requestedWidth) {\n this._requireFont();\n if (text.length > 1 && requestedWidth && this._font instanceof PDFFont) {\n var outputWidth = this._font.getTextWidth(this._fontSize, text);\n var scale = requestedWidth / outputWidth * 100;\n this._out(scale, \" Tz \");\n }\n this._out(this._font.encodeText(text), \" Tj\", NL);\n }\n\n showTextNL(text) {\n this._requireFont();\n this._out(this._font.encodeText(text), \" '\", NL);\n }\n\n addLink(uri, box) {\n var ll = this._toPage({ x: box.left, y: box.bottom });\n var ur = this._toPage({ x: box.right, y: box.top });\n this._annotations.push(new PDFDictionary({\n Type : _(\"Annot\"),\n Subtype : _(\"Link\"),\n Rect : [ ll.x, ll.y, ur.x, ur.y ],\n Border : [ 0, 0, 0 ],\n A : new PDFDictionary({\n Type : _(\"Action\"),\n S : _(\"URI\"),\n URI : new PDFString(uri)\n })\n }));\n }\n\n setStrokeColor(r, g, b) {\n this._out(r, \" \", g, \" \", b, \" RG\", NL);\n }\n\n setOpacity(opacity) {\n this.setFillOpacity(opacity);\n this.setStrokeOpacity(opacity);\n this._opacity *= opacity;\n }\n\n setStrokeOpacity(opacity) {\n if (opacity < 1) {\n var gs = this._pdf.getOpacityGS(this._opacity * opacity, true);\n this._gsResources[gs._resourceName] = gs;\n this._out(gs._resourceName, \" gs\", NL);\n }\n }\n\n setFillColor(r, g, b) {\n this._out(r, \" \", g, \" \", b, \" rg\", NL);\n }\n\n setFillOpacity(opacity) {\n if (opacity < 1) {\n var gs = this._pdf.getOpacityGS(this._opacity * opacity, false);\n this._gsResources[gs._resourceName] = gs;\n this._out(gs._resourceName, \" gs\", NL);\n }\n }\n\n gradient(gradient, box) {\n this.save();\n this.rect(box.left, box.top, box.width, box.height);\n this.clip();\n if (!gradient.userSpace) {\n this.transform(box.width, 0, 0, box.height, box.left, box.top);\n }\n var g = cacheGradient(this._pdf, gradient, box);\n var sname = g.shading._resourceName, oname;\n this._shResources[sname] = g.shading;\n if (g.hasAlpha) {\n oname = g.opacity._resourceName;\n this._gsResources[oname] = g.opacity;\n this._out(\"/\" + oname + \" gs \");\n }\n this._out(\"/\" + sname + \" sh\", NL);\n this.restore();\n }\n\n setDashPattern(dashArray, dashPhase) {\n this._out(dashArray, \" \", dashPhase, \" d\", NL);\n }\n\n setLineWidth(width) {\n this._out(width, \" w\", NL);\n }\n\n setLineCap(lineCap) {\n this._out(lineCap, \" J\", NL);\n }\n\n setLineJoin(lineJoin) {\n this._out(lineJoin, \" j\", NL);\n }\n\n setMitterLimit(mitterLimit) {\n this._out(mitterLimit, \" M\", NL);\n }\n\n save() {\n this._contextStack.push(this._context());\n this._out(\"q\", NL);\n }\n\n restore() {\n this._out(\"Q\", NL);\n this._context(this._contextStack.pop());\n }\n\n\n // paths\n moveTo(x, y) {\n this._out(x, \" \", y, \" m\", NL);\n }\n\n lineTo(x, y) {\n this._out(x, \" \", y, \" l\", NL);\n }\n\n bezier(x1, y1, x2, y2, x3, y3) {\n this._out(x1, \" \", y1, \" \", x2, \" \", y2, \" \", x3, \" \", y3, \" c\", NL);\n }\n\n bezier1(x1, y1, x3, y3) {\n this._out(x1, \" \", y1, \" \", x3, \" \", y3, \" y\", NL);\n }\n\n bezier2(x2, y2, x3, y3) {\n this._out(x2, \" \", y2, \" \", x3, \" \", y3, \" v\", NL);\n }\n\n close() {\n this._out(\"h\", NL);\n }\n\n rect(x, y, w, h) {\n this._out(x, \" \", y, \" \", w, \" \", h, \" re\", NL);\n }\n\n ellipse(x, y, rx, ry) {\n function _X(v) { return x + v; }\n function _Y(v) { return y + v; }\n\n // how to get to the \"magic number\" is explained here:\n // http://www.whizkidtech.redprince.net/bezier/circle/kappa/\n var k = 0.5522847498307936;\n\n this.moveTo(_X(0), _Y(ry));\n this.bezier(\n _X(rx * k) , _Y(ry),\n _X(rx) , _Y(ry * k),\n _X(rx) , _Y(0)\n );\n this.bezier(\n _X(rx) , _Y(-ry * k),\n _X(rx * k) , _Y(-ry),\n _X(0) , _Y(-ry)\n );\n this.bezier(\n _X(-rx * k) , _Y(-ry),\n _X(-rx) , _Y(-ry * k),\n _X(-rx) , _Y(0)\n );\n this.bezier(\n _X(-rx) , _Y(ry * k),\n _X(-rx * k) , _Y(ry),\n _X(0) , _Y(ry)\n );\n }\n\n circle(x, y, r) {\n this.ellipse(x, y, r, r);\n }\n\n stroke() {\n this._out(\"S\", NL);\n }\n\n nop() {\n this._out(\"n\", NL);\n }\n\n clip() {\n this._out(\"W n\", NL);\n }\n\n clipStroke() {\n this._out(\"W S\", NL);\n }\n\n closeStroke() {\n this._out(\"s\", NL);\n }\n\n fill() {\n this._out(\"f\", NL);\n }\n\n fillStroke() {\n this._out(\"B\", NL);\n }\n\n drawImage(url) {\n var img = this._pdf.getImage(url);\n if (img) { // the result can be null for a cross-domain image\n this._xResources[img._resourceName] = img;\n this._out(img._resourceName, \" Do\", NL);\n }\n }\n\n comment(txt) {\n var self = this;\n txt.split(/\\r?\\n/g).forEach(function(line){\n self._out(\"% \", line, NL);\n });\n }\n\n // internal\n _context(val) {\n if (val != null) {\n this._opacity = val.opacity;\n this._matrix = val.matrix;\n } else {\n return {\n opacity: this._opacity,\n matrix: this._matrix\n };\n }\n }\n\n _toPage(p) {\n var m = this._matrix;\n var a = m[0], b = m[1], c = m[2], d = m[3], e = m[4], f = m[5];\n return {\n x: a*p.x + c*p.y + e,\n y: b*p.x + d*p.y + f\n };\n }\n}\n\nfunction unquote(str) {\n return str.replace(/^\\s*(['\"])(.*)\\1\\s*$/, \"$2\");\n}\n\nfunction parseFontDef(fontdef) {\n // XXX: this is very crude for now and buggy. Proper parsing is quite involved.\n var rx = /^\\s*((normal|italic)\\s+)?((normal|small-caps)\\s+)?((normal|bold|\\d+)\\s+)?(([0-9.]+)(px|pt))(\\/(([0-9.]+)(px|pt)|normal))?\\s+(.*?)\\s*$/i;\n var m = rx.exec(fontdef);\n if (!m) {\n return { fontSize: 12, fontFamily: \"sans-serif\" };\n }\n var fontSize = m[8] ? parseInt(m[8], 10) : 12;\n return {\n italic : m[2] && m[2].toLowerCase() == \"italic\",\n variant : m[4],\n bold : m[6] && /bold|700/i.test(m[6]),\n fontSize : fontSize,\n lineHeight : m[12] ? m[12] == \"normal\" ? fontSize : parseInt(m[12], 10) : null,\n fontFamily : m[14].split(/\\s*,\\s*/g).map(unquote)\n };\n}\n\nfunction getFontURL(style) {\n function mkFamily(name) {\n if (style.bold) {\n name += \"|bold\";\n }\n if (style.italic) {\n name += \"|italic\";\n }\n return name.toLowerCase();\n }\n var fontFamily = style.fontFamily;\n var name, url;\n if (fontFamily instanceof Array) {\n for (var i = 0; i < fontFamily.length; ++i) {\n name = mkFamily(fontFamily[i]);\n url = FONT_MAPPINGS[name];\n if (url) {\n break;\n }\n }\n } else {\n url = FONT_MAPPINGS[fontFamily.toLowerCase()];\n }\n while (typeof url == \"function\") {\n url = url();\n }\n if (!url) {\n url = \"Times-Roman\";\n }\n return url;\n}\n\nvar FONT_MAPPINGS = {\n \"serif\" : \"Times-Roman\",\n \"serif|bold\" : \"Times-Bold\",\n \"serif|italic\" : \"Times-Italic\",\n \"serif|bold|italic\" : \"Times-BoldItalic\",\n \"sans-serif\" : \"Helvetica\",\n \"sans-serif|bold\" : \"Helvetica-Bold\",\n \"sans-serif|italic\" : \"Helvetica-Oblique\",\n \"sans-serif|bold|italic\" : \"Helvetica-BoldOblique\",\n \"monospace\" : \"Courier\",\n \"monospace|bold\" : \"Courier-Bold\",\n \"monospace|italic\" : \"Courier-Oblique\",\n \"monospace|bold|italic\" : \"Courier-BoldOblique\",\n \"zapfdingbats\" : \"ZapfDingbats\",\n \"zapfdingbats|bold\" : \"ZapfDingbats\",\n \"zapfdingbats|italic\" : \"ZapfDingbats\",\n \"zapfdingbats|bold|italic\" : \"ZapfDingbats\"\n};\n\nfunction fontAlias(alias, name) {\n alias = alias.toLowerCase();\n FONT_MAPPINGS[alias] = function() {\n return FONT_MAPPINGS[name];\n };\n FONT_MAPPINGS[alias + \"|bold\"] = function() {\n return FONT_MAPPINGS[name + \"|bold\"];\n };\n FONT_MAPPINGS[alias + \"|italic\"] = function() {\n return FONT_MAPPINGS[name + \"|italic\"];\n };\n FONT_MAPPINGS[alias + \"|bold|italic\"] = function() {\n return FONT_MAPPINGS[name + \"|bold|italic\"];\n };\n}\n\n// Let's define some common names to an appropriate replacement.\n// These are overridable via pdf.defineFont, should the user want to\n// include the proper versions.\n\nfontAlias(\"Times New Roman\" , \"serif\");\nfontAlias(\"Courier New\" , \"monospace\");\nfontAlias(\"Arial\" , \"sans-serif\");\nfontAlias(\"Helvetica\" , \"sans-serif\");\nfontAlias(\"Verdana\" , \"sans-serif\");\nfontAlias(\"Tahoma\" , \"sans-serif\");\nfontAlias(\"Georgia\" , \"sans-serif\");\nfontAlias(\"Monaco\" , \"monospace\");\nfontAlias(\"Andale Mono\" , \"monospace\");\n\nfunction defineFont(name, url) {\n if (arguments.length == 1) {\n for (var i in name) {\n if (hasOwnProperty(name, i)) {\n defineFont(i, name[i]);\n }\n }\n } else {\n name = name.toLowerCase();\n FONT_MAPPINGS[name] = url;\n\n // special handling for DejaVu fonts: if they get defined,\n // let them also replace the default families, for good\n // Unicode support out of the box.\n switch (name) {\n case \"dejavu sans\" : FONT_MAPPINGS[\"sans-serif\"] = url; break;\n case \"dejavu sans|bold\" : FONT_MAPPINGS[\"sans-serif|bold\"] = url; break;\n case \"dejavu sans|italic\" : FONT_MAPPINGS[\"sans-serif|italic\"] = url; break;\n case \"dejavu sans|bold|italic\" : FONT_MAPPINGS[\"sans-serif|bold|italic\"] = url; break;\n case \"dejavu serif\" : FONT_MAPPINGS[\"serif\"] = url; break;\n case \"dejavu serif|bold\" : FONT_MAPPINGS[\"serif|bold\"] = url; break;\n case \"dejavu serif|italic\" : FONT_MAPPINGS[\"serif|italic\"] = url; break;\n case \"dejavu serif|bold|italic\" : FONT_MAPPINGS[\"serif|bold|italic\"] = url; break;\n case \"dejavu mono\" : FONT_MAPPINGS[\"monospace\"] = url; break;\n case \"dejavu mono|bold\" : FONT_MAPPINGS[\"monospace|bold\"] = url; break;\n case \"dejavu mono|italic\" : FONT_MAPPINGS[\"monospace|italic\"] = url; break;\n case \"dejavu mono|bold|italic\" : FONT_MAPPINGS[\"monospace|bold|italic\"] = url; break;\n }\n }\n}\n\nfunction mmul(a, b) {\n var a1 = a[0], b1 = a[1], c1 = a[2], d1 = a[3], e1 = a[4], f1 = a[5];\n var a2 = b[0], b2 = b[1], c2 = b[2], d2 = b[3], e2 = b[4], f2 = b[5];\n return [\n a1*a2 + b1*c2, a1*b2 + b1*d2,\n c1*a2 + d1*c2, c1*b2 + d1*d2,\n e1*a2 + f1*c2 + e2, e1*b2 + f1*d2 + f2\n ];\n}\n\nfunction isIdentityMatrix(m) {\n return m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1 && m[4] === 0 && m[5] === 0;\n}\n\nconst TEXT_RENDERING_MODE = {\n fill : 0,\n stroke : 1,\n fillAndStroke : 2,\n invisible : 3,\n fillAndClip : 4,\n strokeAndClip : 5,\n fillStrokeClip : 6,\n clip : 7\n};\n\nexport {\n PDFDocument as Document,\n BinaryStream,\n defineFont,\n parseFontDef,\n getFontURL,\n loadFonts,\n loadImages,\n getPaperOptions,\n clearImageCache,\n TEXT_RENDERING_MODE\n};\n","import GeometryCircle from '../geometry/circle';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport { defined } from '../util';\n\nconst DEFAULT_STROKE = \"#000\";\n\nclass Circle extends paintable(measurable(withGeometry(Element))) {\n get nodeType() {\n return \"Circle\";\n }\n\n constructor(geometry = new GeometryCircle(), options = {}) {\n super(options);\n\n this.geometry(geometry);\n\n if (!defined(this.options.stroke)) {\n this.stroke(DEFAULT_STROKE);\n }\n }\n\n rawBBox() {\n return this._geometry.bbox();\n }\n\n _bbox(matrix) {\n return this._geometry.bbox(matrix);\n }\n\n _containsPoint(point) {\n return this.geometry().containsPoint(point);\n }\n\n _isOnPath(point) {\n return this.geometry()._isOnPath(point, this.options.stroke.width / 2);\n }\n}\n\nexport default Circle;\n","import OptionsStore from '../core/options-store';\nimport Rect from '../geometry/rect';\nimport Matrix from '../geometry/matrix';\nimport createTransform from '../geometry/transform';\nimport toMatrix from '../geometry/to-matrix';\nimport HasObservers from '../core/has-observers';\nimport { defined, definitionId, isTransparent, valueOrDefault } from '../util';\nimport { PATTERN } from '../core/constants';\n\nclass Element extends HasObservers {\n get nodeType() {\n return \"Rect\";\n }\n\n constructor(options) {\n super();\n\n this._initOptions(options);\n }\n\n _initOptions(options = {}) {\n const { clip, transform } = options;\n\n if (transform) {\n options.transform = createTransform(transform);\n }\n\n if (clip && !clip.id) {\n clip.id = definitionId();\n }\n\n this.options = new OptionsStore(options);\n this.options.addObserver(this);\n }\n\n transform(value) {\n if (defined(value)) {\n this.options.set(\"transform\", createTransform(value));\n } else {\n return this.options.get(\"transform\");\n }\n }\n\n parentTransform() {\n let element = this;\n let parentMatrix;\n\n while (element.parent) {\n element = element.parent;\n let transformation = element.transform();\n if (transformation) {\n parentMatrix = transformation.matrix().multiplyCopy(parentMatrix || Matrix.unit());\n }\n }\n\n if (parentMatrix) {\n return createTransform(parentMatrix);\n }\n }\n\n currentTransform(parentTransform = this.parentTransform()) {\n const elementTransform = this.transform();\n const elementMatrix = toMatrix(elementTransform);\n\n let parentMatrix = toMatrix(parentTransform);\n let combinedMatrix;\n\n if (elementMatrix && parentMatrix) {\n combinedMatrix = parentMatrix.multiplyCopy(elementMatrix);\n } else {\n combinedMatrix = elementMatrix || parentMatrix;\n }\n\n if (combinedMatrix) {\n return createTransform(combinedMatrix);\n }\n }\n\n visible(value) {\n if (defined(value)) {\n this.options.set(\"visible\", value);\n return this;\n }\n\n return this.options.get(\"visible\") !== false;\n }\n\n clip(value) {\n const options = this.options;\n if (defined(value)) {\n if (value && !value.id) {\n value.id = definitionId();\n }\n options.set(\"clip\", value);\n return this;\n }\n\n return options.get(\"clip\");\n }\n\n opacity(value) {\n if (defined(value)) {\n this.options.set(\"opacity\", value);\n return this;\n }\n\n return valueOrDefault(this.options.get(\"opacity\"), 1);\n }\n\n className(value) {\n if (defined(value)) {\n this.options.set(\"className\", value);\n return this;\n }\n\n return this.options.get(\"className\");\n }\n\n clippedBBox(transformation) {\n const bbox = this._clippedBBox(transformation);\n if (bbox) {\n const clip = this.clip();\n return clip ? Rect.intersect(bbox, clip.bbox(transformation)) : bbox;\n }\n }\n\n containsPoint(point, parentTransform) {\n if (this.visible()) {\n const transform = this.currentTransform(parentTransform);\n let transformedPoint = point;\n if (transform) {\n transformedPoint = point.transformCopy(transform.matrix().invert());\n }\n return (this._hasFill() && this._containsPoint(transformedPoint)) || (this._isOnPath && this._hasStroke() && this._isOnPath(transformedPoint));\n }\n return false;\n }\n\n _hasFill() {\n const fill = this.options.fill;\n return fill && (fill.nodeType === PATTERN || !isTransparent(fill.color));\n }\n\n _hasStroke() {\n const stroke = this.options.stroke;\n return stroke && stroke.width > 0 && !isTransparent(stroke.color);\n }\n\n _clippedBBox(transformation) {\n return this.bbox(transformation);\n }\n}\n\nexport default Element;\n","import HasObservers from '../core/has-observers';\n\nconst push = [].push;\nconst pop = [].pop;\nconst splice = [].splice;\nconst shift = [].shift;\nconst slice = [].slice;\nconst unshift = [].unshift;\n\nclass ElementsArray extends HasObservers {\n constructor(array = []) {\n super();\n\n this.length = 0;\n this._splice(0, array.length, array);\n }\n\n elements(value) {\n if (value) {\n this._splice(0, this.length, value);\n\n this._change();\n return this;\n }\n\n return this.slice(0);\n }\n\n push() {\n const elements = arguments;\n const result = push.apply(this, elements);\n\n this._add(elements);\n\n return result;\n }\n\n slice() {\n return slice.call(this);\n }\n\n pop() {\n const length = this.length;\n const result = pop.apply(this);\n\n if (length) {\n this._remove([ result ]);\n }\n\n return result;\n }\n\n splice(index, howMany) {\n const elements = slice.call(arguments, 2);\n const result = this._splice(index, howMany, elements);\n\n this._change();\n\n return result;\n }\n\n shift() {\n const length = this.length;\n const result = shift.apply(this);\n\n if (length) {\n this._remove([ result ]);\n }\n\n return result;\n }\n\n unshift() {\n const elements = arguments;\n const result = unshift.apply(this, elements);\n\n this._add(elements);\n\n return result;\n }\n\n indexOf(element) {\n const length = this.length;\n\n for (let idx = 0; idx < length; idx++) {\n if (this[idx] === element) {\n return idx;\n }\n }\n return -1;\n }\n\n _splice(index, howMany, elements) {\n const result = splice.apply(this, [ index, howMany ].concat(elements));\n\n this._clearObserver(result);\n this._setObserver(elements);\n\n return result;\n }\n\n _add(elements) {\n this._setObserver(elements);\n this._change();\n }\n\n _remove(elements) {\n this._clearObserver(elements);\n this._change();\n }\n\n _setObserver(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n elements[idx].addObserver(this);\n }\n }\n\n _clearObserver(elements) {\n for (let idx = 0; idx < elements.length; idx++) {\n elements[idx].removeObserver(this);\n }\n }\n\n _change() {}\n}\n\nexport default ElementsArray;\n","import Element from './element';\nimport traversable from '../mixins/traversable';\nimport { append } from '../util';\nimport elementsBoundingBox from './utils/elements-bounding-box';\nimport elementsClippedBoundingBox from './utils/elements-clippend-bounding-box';\n\n\nclass Group extends traversable(Element, \"children\") {\n get nodeType() {\n return \"Group\";\n }\n\n constructor(options) {\n super(options);\n this.children = [];\n }\n\n childrenChange(action, items, index) {\n this.trigger(\"childrenChange\",{\n action: action,\n items: items,\n index: index\n });\n }\n\n append() {\n append(this.children, arguments);\n this._reparent(arguments, this);\n\n this.childrenChange(\"add\", arguments);\n\n return this;\n }\n\n insert(index, element) {\n this.children.splice(index, 0, element);\n element.parent = this;\n\n this.childrenChange(\"add\", [ element ], index);\n\n return this;\n }\n\n insertAt(element, index) {\n return this.insert(index, element);\n }\n\n remove(element) {\n const index = this.children.indexOf(element);\n if (index >= 0) {\n this.children.splice(index, 1);\n element.parent = null;\n this.childrenChange(\"remove\", [ element ], index);\n }\n\n return this;\n }\n\n removeAt(index) {\n if (0 <= index && index < this.children.length) {\n let element = this.children[index];\n this.children.splice(index, 1);\n element.parent = null;\n this.childrenChange(\"remove\", [ element ], index);\n }\n\n return this;\n }\n\n clear() {\n const items = this.children;\n this.children = [];\n this._reparent(items, null);\n\n this.childrenChange(\"remove\", items, 0);\n\n return this;\n }\n\n bbox(transformation) {\n return elementsBoundingBox(this.children, true, this.currentTransform(transformation));\n }\n\n rawBBox() {\n return elementsBoundingBox(this.children, false);\n }\n\n _clippedBBox(transformation) {\n return elementsClippedBoundingBox(this.children, this.currentTransform(transformation));\n }\n\n currentTransform(transformation) {\n return Element.prototype.currentTransform.call(this, transformation) || null;\n }\n\n containsPoint(point, parentTransform) {\n if (this.visible()) {\n const children = this.children;\n const transform = this.currentTransform(parentTransform);\n for (let idx = 0; idx < children.length; idx++) {\n if (children[idx].containsPoint(point, transform)) {\n return true;\n }\n }\n }\n return false;\n }\n\n _reparent(elements, newParent) {\n for (let i = 0; i < elements.length; i++) {\n const child = elements[i];\n const parent = child.parent;\n if (parent && parent !== this && parent.remove) {\n parent.remove(child);\n }\n\n child.parent = newParent;\n }\n }\n}\n\nexport default Group;","import withGeometry from '../mixins/with-geometry';\nimport Element from './element';\nimport Rect from '../geometry/rect';\nimport toMatrix from '../geometry/to-matrix';\nimport { defined } from '../util';\n\n\nclass Image extends withGeometry(Element, [ \"rect\" ]) {\n get nodeType() {\n return \"Image\";\n }\n\n constructor(src, rect = new Rect(), options = {}) {\n super(options);\n\n this.src(src);\n this.rect(rect);\n }\n\n src(value) {\n if (defined(value)) {\n this.options.set(\"src\", value);\n return this;\n }\n\n return this.options.get(\"src\");\n }\n\n bbox(transformation) {\n const combinedMatrix = toMatrix(this.currentTransform(transformation));\n return this._rect.bbox(combinedMatrix);\n }\n\n rawBBox() {\n return this._rect.bbox();\n }\n\n _containsPoint(point) {\n return this._rect.containsPoint(point);\n }\n\n _hasFill() {\n return this.src();\n }\n}\n\nexport default Image;","import ElementsArray from './elements-array';\n\nclass GeometryElementsArray extends ElementsArray {\n _change() {\n this.geometryChange();\n }\n}\n\nexport default GeometryElementsArray;","import { Point, Segment } from '../../geometry';\nimport { last, round } from '../../util';\n\nconst WEIGHT = 0.333;\nconst EXTREMUM_ALLOWED_DEVIATION = 0.01;\nconst X = \"x\";\nconst Y = \"y\";\n\nexport function pointsToCurve(pointsIn, closed) {\n const points = pointsIn.slice(0);\n const segments = [];\n let length = points.length;\n\n if (length > 2) {\n removeDuplicates(0, points);\n length = points.length;\n }\n\n if (length < 2 || (length === 2 && points[0].equals(points[1]))) {\n return segments;\n }\n\n let p0 = points[0];\n let p1 = points[1];\n let p2 = points[2];\n\n segments.push(new Segment(p0));\n\n while (p0.equals(points[length - 1])) {\n closed = true;\n points.pop();\n length--;\n }\n\n if (length === 2) {\n const tangent = getTangent(p0,p1, X, Y);\n\n last(segments).controlOut(\n firstControlPoint(tangent, p0, p1, X, Y)\n );\n\n segments.push(new Segment(\n p1,\n secondControlPoint(tangent, p0, p1, X, Y)\n ));\n\n return segments;\n }\n\n let initialControlPoint, lastControlPoint;\n\n if (closed) {\n p0 = points[length - 1]; p1 = points[0]; p2 = points[1];\n const controlPoints = getControlPoints(p0, p1, p2);\n initialControlPoint = controlPoints[1];\n lastControlPoint = controlPoints[0];\n } else {\n const tangent = getTangent(p0, p1, X,Y);\n initialControlPoint = firstControlPoint(tangent, p0, p1, X, Y);\n }\n\n let cp0 = initialControlPoint;\n for (let idx = 0; idx <= length - 3; idx++) {\n removeDuplicates(idx, points);\n length = points.length;\n if (idx + 3 <= length) {\n p0 = points[idx]; p1 = points[idx + 1]; p2 = points[idx + 2];\n const controlPoints = getControlPoints(p0,p1,p2);\n\n last(segments).controlOut(cp0);\n cp0 = controlPoints[1];\n\n const cp1 = controlPoints[0];\n segments.push(new Segment(p1, cp1));\n }\n }\n\n if (closed) {\n p0 = points[length - 2]; p1 = points[length - 1]; p2 = points[0];\n const controlPoints = getControlPoints(p0, p1, p2);\n\n last(segments).controlOut(cp0);\n segments.push(new Segment(\n p1,\n controlPoints[0]\n ));\n\n last(segments).controlOut(controlPoints[1]);\n segments.push(new Segment(\n p2,\n lastControlPoint\n ));\n } else {\n const tangent = getTangent(p1, p2, X, Y);\n\n last(segments).controlOut(cp0);\n segments.push(new Segment(\n p2,\n secondControlPoint(tangent, p1, p2, X, Y)\n ));\n }\n\n return segments;\n}\n\nexport function pointsToClosedCurve(pointsIn) {\n return pointsToCurve(pointsIn, true);\n}\n\nexport function removeDuplicates(idx, points) {\n while (points[idx + 1] && (points[idx].equals(points[idx + 1]) || points[idx + 1].equals(points[idx + 2]))) {\n points.splice(idx + 1, 1);\n }\n}\n\nexport function invertAxis(p0, p1, p2) {\n let invertAxis = false;\n\n if (p0.x === p1.x) {\n invertAxis = true;\n } else if (p1.x === p2.x) {\n if ((p1.y < p2.y && p0.y <= p1.y) || (p2.y < p1.y && p1.y <= p0.y)) {\n invertAxis = true;\n }\n } else {\n const fn = lineFunction(p0,p1);\n const y2 = calculateFunction(fn, p2.x);\n if (!(p0.y <= p1.y && p2.y <= y2) &&\n !(p1.y <= p0.y && p2.y >= y2)) {\n invertAxis = true;\n }\n }\n\n return invertAxis;\n}\n\nexport function isLine(p0, p1, p2) {\n const fn = lineFunction(p0, p1);\n const y2 = calculateFunction(fn, p2.x);\n\n return (p0.x === p1.x && p1.x === p2.x) || round(y2, 1) === round(p2.y, 1);\n}\n\nexport function lineFunction(p1, p2) {\n const a = (p2.y - p1.y) / (p2.x - p1.x);\n const b = p1.y - a * p1.x;\n\n return [ b, a ];\n}\n\nexport function getControlPoints(p0, p1, p2) {\n let xField = X;\n let yField = Y;\n let restrict = false;\n let switchOrientation = false;\n let tangent;\n\n if (isLine(p0, p1, p2)) {\n tangent = getTangent(p0, p1, X, Y);\n } else {\n const monotonic = {\n x: isMonotonicByField(p0, p1, p2, X),\n y: isMonotonicByField(p0, p1, p2, Y)\n };\n\n if (monotonic.x && monotonic.y) {\n tangent = getTangent(p0, p2, X, Y);\n restrict = true;\n } else {\n if (invertAxis(p0, p1, p2)) {\n xField = Y;\n yField = X;\n }\n\n if (monotonic[xField]) {\n tangent = 0;\n } else {\n let sign;\n if ((p2[yField] < p0[yField] && p0[yField] <= p1[yField]) ||\n (p0[yField] < p2[yField] && p1[yField] <= p0[yField])) {\n sign = numberSign((p2[yField] - p0[yField]) * (p1[xField] - p0[xField]));\n } else {\n sign = -numberSign((p2[xField] - p0[xField]) * (p1[yField] - p0[yField]));\n }\n\n tangent = EXTREMUM_ALLOWED_DEVIATION * sign;\n switchOrientation = true;\n }\n }\n }\n\n const secondCP = secondControlPoint(tangent, p0, p1, xField, yField);\n\n if (switchOrientation) {\n const oldXField = xField;\n xField = yField;\n yField = oldXField;\n }\n\n const firstCP = firstControlPoint(tangent, p1, p2, xField, yField);\n\n if (restrict) {\n restrictControlPoint(p0, p1, secondCP, tangent);\n restrictControlPoint(p1, p2, firstCP, tangent);\n }\n\n return [ secondCP, firstCP ];\n}\n\nexport function restrictControlPoint(p1, p2, cp, tangent) {\n if (p1.y < p2.y) {\n if (p2.y < cp.y) {\n cp.x = p1.x + (p2.y - p1.y) / tangent;\n cp.y = p2.y;\n } else if (cp.y < p1.y) {\n cp.x = p2.x - (p2.y - p1.y) / tangent;\n cp.y = p1.y;\n }\n } else {\n if (cp.y < p2.y) {\n cp.x = p1.x - (p1.y - p2.y) / tangent;\n cp.y = p2.y;\n } else if (p1.y < cp.y) {\n cp.x = p2.x + (p1.y - p2.y) / tangent;\n cp.y = p1.y;\n }\n }\n}\n\nexport function getTangent(p0, p1, xField, yField) {\n const x = p1[xField] - p0[xField];\n const y = p1[yField] - p0[yField];\n let tangent;\n\n if (x === 0) {\n tangent = 0;\n } else {\n tangent = y / x;\n }\n\n return tangent;\n}\n\nexport function isMonotonicByField(p0, p1, p2, field) {\n return (p2[field] > p1[field] && p1[field] > p0[field]) ||\n (p2[field] < p1[field] && p1[field] < p0[field]);\n}\n\nexport function firstControlPoint(tangent, p0, p3, xField, yField) {\n const t1 = p0[xField];\n const t2 = p3[xField];\n const distance = (t2 - t1) * WEIGHT;\n\n return point(t1 + distance, p0[yField] + distance * tangent, xField, yField);\n}\n\nexport function secondControlPoint(tangent, p0, p3, xField, yField) {\n const t1 = p0[xField];\n const t2 = p3[xField];\n const distance = (t2 - t1) * WEIGHT;\n\n return point(t2 - distance, p3[yField] - distance * tangent, xField, yField);\n}\n\nexport function point(xValue, yValue, xField, yField) {\n const controlPoint = new Point();\n controlPoint[xField] = xValue;\n controlPoint[yField] = yValue;\n\n return controlPoint;\n}\n\nexport function calculateFunction(fn, x) {\n const length = fn.length;\n let result = 0;\n\n for (let i = 0; i < length; i++) {\n result += Math.pow(x,i) * fn[i];\n }\n return result;\n}\n\nexport function numberSign(value) {\n return value <= 0 ? -1 : 1;\n}\n","import Point from '../geometry/point';\nimport { last } from '../util';\n\nconst ShapeMap = {\n l: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 2) {\n let point = new Point(parameters[i], parameters[i + 1]);\n\n if (options.isRelative) {\n point.translateWith(position);\n }\n\n path.lineTo(point.x, point.y);\n\n position.x = point.x;\n position.y = point.y;\n }\n },\n\n c: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 6) {\n let controlOut = new Point(parameters[i], parameters[i + 1]);\n let controlIn = new Point(parameters[i + 2], parameters[i + 3]);\n let point = new Point(parameters[i + 4], parameters[i + 5]);\n if (options.isRelative) {\n controlIn.translateWith(position);\n controlOut.translateWith(position);\n point.translateWith(position);\n }\n\n path.curveTo(controlOut, controlIn, point);\n\n position.x = point.x;\n position.y = point.y;\n }\n },\n\n v: function(path, options) {\n const value = options.isRelative ? 0 : options.position.x;\n\n toLineParamaters(options.parameters, true, value);\n this.l(path, options);\n },\n\n h: function(path, options) {\n const value = options.isRelative ? 0 : options.position.y;\n\n toLineParamaters(options.parameters, false, value);\n this.l(path, options);\n },\n\n a: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 7) {\n const radiusX = parameters[i];\n const radiusY = parameters[i + 1];\n const rotation = parameters[i + 2];\n const largeArc = parameters[i + 3];\n const swipe = parameters[i + 4];\n const endPoint = new Point(parameters[i + 5], parameters[i + 6]);\n\n if (options.isRelative) {\n endPoint.translateWith(position);\n }\n if (position.x !== endPoint.x || position.y !== endPoint.y) {\n path.arcTo(endPoint, radiusX, radiusY, largeArc, swipe, rotation);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n }\n },\n\n s: function(path, options) {\n const { parameters, position, previousCommand } = options;\n let lastControlIn;\n\n if (previousCommand === \"s\" || previousCommand === \"c\") {\n lastControlIn = last(last(path.paths).segments).controlIn();\n }\n\n for (let i = 0; i < parameters.length; i += 4) {\n let controlIn = new Point(parameters[i], parameters[i + 1]);\n let endPoint = new Point(parameters[i + 2], parameters[i + 3]);\n let controlOut;\n\n if (options.isRelative) {\n controlIn.translateWith(position);\n endPoint.translateWith(position);\n }\n\n if (lastControlIn) {\n controlOut = reflectionPoint(lastControlIn, position);\n } else {\n controlOut = position.clone();\n }\n\n lastControlIn = controlIn;\n\n path.curveTo(controlOut, controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n },\n\n q: function(path, options) {\n const { parameters, position } = options;\n\n for (let i = 0; i < parameters.length; i += 4) {\n let controlPoint = new Point(parameters[i], parameters[i + 1]);\n let endPoint = new Point(parameters[i + 2], parameters[i + 3]);\n\n if (options.isRelative) {\n controlPoint.translateWith(position);\n endPoint.translateWith(position);\n }\n\n let cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint);\n\n path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n },\n\n t: function(path, options) {\n const { parameters, position, previousCommand } = options;\n let controlPoint;\n\n if (previousCommand === \"q\" || previousCommand === \"t\") {\n let lastSegment = last(last(path.paths).segments);\n controlPoint = lastSegment.controlIn().clone()\n .translateWith(position.scaleCopy(-1 / 3))\n .scale(3 / 2);\n }\n\n for (let i = 0; i < parameters.length; i += 2) {\n let endPoint = new Point(parameters[i], parameters[i + 1]);\n if (options.isRelative) {\n endPoint.translateWith(position);\n }\n\n if (controlPoint) {\n controlPoint = reflectionPoint(controlPoint, position);\n } else {\n controlPoint = position.clone();\n }\n\n let cubicControlPoints = quadraticToCubicControlPoints(position, controlPoint, endPoint);\n\n path.curveTo(cubicControlPoints.controlOut, cubicControlPoints.controlIn, endPoint);\n\n position.x = endPoint.x;\n position.y = endPoint.y;\n }\n }\n};\n\nfunction toLineParamaters(parameters, isVertical, value) {\n const insertPosition = isVertical ? 0 : 1;\n\n for (let i = 0; i < parameters.length; i += 2) {\n parameters.splice(i + insertPosition, 0, value);\n }\n}\n\nfunction reflectionPoint(point, center) {\n if (point && center) {\n return center.scaleCopy(2).translate(-point.x, -point.y);\n }\n}\n\nconst third = 1 / 3;\n\nfunction quadraticToCubicControlPoints(position, controlPoint, endPoint) {\n const scaledPoint = controlPoint.clone().scale(2 / 3);\n return {\n controlOut: scaledPoint.clone().translateWith(position.scaleCopy(third)),\n controlIn: scaledPoint.translateWith(endPoint.scaleCopy(third))\n };\n}\n\nexport default ShapeMap;","import Point from '../geometry/point';\nimport ShapeMap from './shape-map';\n\nconst SEGMENT_REGEX = /([a-df-z]{1})([^a-df-z]*)(z)?/gi;\nconst SPLIT_REGEX = /[,\\s]?([+\\-]?(?:\\d*\\.\\d+|\\d+)(?:[eE][+\\-]?\\d+)?)/g;\nconst MOVE = \"m\";\nconst CLOSE = \"z\";\n\nfunction parseParameters(str) {\n const parameters = [];\n str.replace(SPLIT_REGEX, function(match, number) {\n parameters.push(parseFloat(number));\n });\n return parameters;\n}\n\nfunction parsePath(pathInstance, str) {\n const position = new Point();\n let previousCommand;\n\n str.replace(SEGMENT_REGEX, (match, element, params, closePath) => {\n let command = element.toLowerCase();\n const isRelative = command === element;\n const parameters = parseParameters(params.trim());\n\n if (command === MOVE) {\n if (isRelative) {\n position.x += parameters[0];\n position.y += parameters[1];\n } else {\n position.x = parameters[0];\n position.y = parameters[1];\n }\n\n pathInstance.moveTo(position.x, position.y);\n\n if (parameters.length > 2) {\n command = \"l\";\n parameters.splice(0, 2);\n }\n }\n\n if (ShapeMap[command]) {\n ShapeMap[command](\n pathInstance, {\n parameters: parameters,\n position: position,\n isRelative: isRelative,\n previousCommand: previousCommand\n }\n );\n\n if (closePath && closePath.toLowerCase() === CLOSE) {\n pathInstance.close();\n }\n } else if (command !== MOVE) {\n throw new Error(\"Error while parsing SVG path. Unsupported command: \" + command);\n }\n\n previousCommand = command;\n });\n\n return pathInstance;\n}\n\nexport default parsePath;\n\n","import GeometryElementsArray from './geometry-elements-array';\nimport Element from './element';\nimport { pointsToCurve } from './utils/points-to-curve';\nimport paintable from '../mixins/paintable';\nimport measurable from '../mixins/measurable';\nimport Arc from '../geometry/arc';\nimport Rect from '../geometry/rect';\nimport Segment from '../geometry/segment';\nimport Point from '../geometry/point';\nimport Size from '../geometry/size';\nimport lineIntersectionsCount from '../geometry/math/line-intersections-count';\nimport { defined, last, rad } from '../util';\nimport parsePath from '../parsing/parse-path';\nimport elementsBoundingBox from './utils/elements-bounding-box';\nimport elementsClippedBoundingBox from './utils/elements-clippend-bounding-box';\nimport limitValue from '../util/limit-value';\n\nconst SPACE = ' ';\nconst printPoints = (precision) => (...points) => points.map(p => p.toString(precision)).join(SPACE);\nconst segmentType = (segmentStart, segmentEnd) => segmentStart.controlOut() && segmentEnd.controlIn() ? 'C' : 'L';\n\nexport class Path extends paintable(measurable(Element)) {\n get nodeType() {\n return 'Path';\n }\n\n constructor(options) {\n super(options);\n this.segments = new GeometryElementsArray();\n this.segments.addObserver(this);\n\n if (!defined(this.options.stroke)) {\n this.stroke('#000');\n\n if (!defined(this.options.stroke.lineJoin)) {\n this.options.set('stroke.lineJoin', 'miter');\n }\n }\n }\n\n moveTo(x, y) {\n this.suspend();\n this.segments.elements([]);\n this.resume();\n\n this.lineTo(x, y);\n\n return this;\n }\n\n lineTo(x, y) {\n const point = defined(y) ? new Point(x, y) : x;\n const segment = new Segment(point);\n\n this.segments.push(segment);\n\n return this;\n }\n\n curveTo(controlOut, controlIn, point) {\n if (this.segments.length > 0) {\n const lastSegment = last(this.segments);\n const segment = new Segment(point, controlIn);\n this.suspend();\n lastSegment.controlOut(controlOut);\n this.resume();\n\n this.segments.push(segment);\n }\n\n return this;\n }\n\n arc(startAngle, endAngle, radiusX, radiusY, anticlockwise) {\n if (this.segments.length > 0) {\n const lastSegment = last(this.segments);\n const anchor = lastSegment.anchor();\n const start = rad(startAngle);\n const center = new Point(anchor.x - radiusX * Math.cos(start),\n anchor.y - radiusY * Math.sin(start));\n const arc = new Arc(center, {\n startAngle: startAngle,\n endAngle: endAngle,\n radiusX: radiusX,\n radiusY: radiusY,\n anticlockwise: anticlockwise\n });\n\n this._addArcSegments(arc);\n }\n\n return this;\n }\n\n arcTo(end, rx, ry, largeArc, swipe, rotation) {\n if (this.segments.length > 0) {\n const lastSegment = last(this.segments);\n const anchor = lastSegment.anchor();\n const arc = Arc.fromPoints(anchor, Point.create(end), rx, ry, largeArc, swipe, rotation);\n\n this._addArcSegments(arc);\n }\n return this;\n }\n\n _addArcSegments(arc) {\n this.suspend();\n\n const curvePoints = arc.curvePoints();\n\n for (let i = 1; i < curvePoints.length; i += 3) {\n this.curveTo(curvePoints[i], curvePoints[i + 1], curvePoints[i + 2]);\n }\n\n this.resume();\n this.geometryChange();\n }\n\n close() {\n this.options.closed = true;\n this.geometryChange();\n\n return this;\n }\n\n rawBBox() {\n return this._bbox();\n }\n\n toString(digits) {\n let output = '';\n\n const segments = this.segments;\n const length = segments.length;\n if (length > 0) {\n const parts = [];\n const print = printPoints(digits);\n let currentType;\n\n for (let i = 1; i < length; i++) {\n let type = segmentType(segments[i - 1], segments[i]);\n if (type !== currentType) {\n currentType = type;\n parts.push(type);\n }\n\n if (type === 'L') {\n parts.push(print(segments[i].anchor()));\n } else {\n parts.push(print(\n segments[i - 1].controlOut(), segments[i].controlIn(), segments[i].anchor()\n ));\n }\n }\n\n output = 'M' + print(segments[0].anchor()) + SPACE + parts.join(SPACE);\n if (this.options.closed) {\n output += 'Z';\n }\n }\n\n return output;\n }\n\n _containsPoint(point) {\n const segments = this.segments;\n const length = segments.length;\n let intersectionsCount = 0;\n let previous, current;\n\n for (let idx = 1; idx < length; idx++) {\n previous = segments[idx - 1];\n current = segments[idx];\n intersectionsCount += previous._intersectionsTo(current, point);\n }\n\n if (this.options.closed || !segments[0].anchor().equals(segments[length - 1].anchor())) {\n intersectionsCount += lineIntersectionsCount(segments[0].anchor(), segments[length - 1].anchor(), point);\n }\n\n return intersectionsCount % 2 !== 0;\n }\n\n _isOnPath(point, width) {\n const segments = this.segments;\n const length = segments.length;\n const pathWidth = width || this.options.stroke.width;\n\n if (length > 1) {\n if (segments[0]._isOnPathTo(segments[1], point, pathWidth, 'start')) {\n return true;\n }\n\n for (let idx = 2; idx <= length - 2; idx++) {\n if (segments[idx - 1]._isOnPathTo(segments[idx], point, pathWidth)) {\n return true;\n }\n }\n\n if (segments[length - 2]._isOnPathTo(segments[length - 1], point, pathWidth, 'end')) {\n return true;\n }\n }\n return false;\n }\n\n _bbox(matrix) {\n const segments = this.segments;\n const length = segments.length;\n let boundingBox;\n\n if (length === 1) {\n let anchor = segments[0].anchor().transformCopy(matrix);\n boundingBox = new Rect(anchor, Size.ZERO);\n } else if (length > 0) {\n for (let i = 1; i < length; i++) {\n let segmentBox = segments[i - 1].bboxTo(segments[i], matrix);\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, segmentBox);\n } else {\n boundingBox = segmentBox;\n }\n }\n }\n\n return boundingBox;\n }\n\n static parse(str, options) {\n return MultiPath.parse(str, options);\n }\n\n static fromRect(rect, options) {\n const path = new Path(options);\n let [ rx, ry ] = rect.cornerRadius;\n\n if (rx === 0 && ry === 0) {\n path.moveTo(rect.topLeft())\n .lineTo(rect.topRight())\n .lineTo(rect.bottomRight())\n .lineTo(rect.bottomLeft())\n .close();\n } else {\n const origin = rect.origin;\n const { x, y } = origin;\n const width = rect.width();\n const height = rect.height();\n rx = limitValue(rx, 0, width / 2);\n ry = limitValue(ry, 0, height / 2);\n\n path.moveTo(x + rx, y)\n .lineTo(x + width - rx, y)\n .arcTo([ x + width, y + ry ], rx, ry, false)\n .lineTo(x + width, y + height - ry)\n .arcTo([ x + width - rx, y + height ], rx, ry, false)\n .lineTo(x + rx, y + height)\n .arcTo([ x, y + height - ry ], rx, ry, false)\n .lineTo(x, y + ry)\n .arcTo([ x + rx, y ], rx, ry, false);\n }\n\n return path;\n }\n\n static fromPoints(points, options) {\n if (points) {\n const path = new Path(options);\n\n for (let i = 0; i < points.length; i++) {\n let point = Point.create(points[i]);\n if (point) {\n if (i === 0) {\n path.moveTo(point);\n } else {\n path.lineTo(point);\n }\n }\n }\n\n return path;\n }\n }\n\n static curveFromPoints(points, options) {\n if (points) {\n const segments = pointsToCurve(points);\n const path = new Path(options);\n path.segments.push.apply(path.segments, segments);\n\n return path;\n }\n }\n\n static fromArc(arc, options) {\n const path = new Path(options);\n const startAngle = arc.startAngle;\n const start = arc.pointAt(startAngle);\n path.moveTo(start.x, start.y);\n path.arc(startAngle, arc.endAngle, arc.radiusX, arc.radiusY, arc.anticlockwise);\n return path;\n }\n}\n\nexport class MultiPath extends paintable(measurable(Element)) {\n static parse(str, options) {\n const instance = new MultiPath(options);\n return parsePath(instance, str);\n }\n\n toString(digits) {\n const paths = this.paths;\n let output = '';\n\n if (paths.length > 0) {\n const result = [];\n\n for (let i = 0; i < paths.length; i++) {\n result.push(paths[i].toString(digits));\n }\n\n output = result.join(SPACE);\n }\n\n return output;\n }\n\n get nodeType() {\n return 'MultiPath';\n }\n\n constructor(options) {\n super(options);\n this.paths = new GeometryElementsArray();\n this.paths.addObserver(this);\n\n if (!defined(this.options.stroke)) {\n this.stroke('#000');\n }\n }\n\n moveTo(x, y) {\n const path = new Path();\n path.moveTo(x, y);\n\n this.paths.push(path);\n\n return this;\n }\n\n lineTo(x, y) {\n if (this.paths.length > 0) {\n last(this.paths).lineTo(x, y);\n }\n\n return this;\n }\n\n curveTo(controlOut, controlIn, point) {\n if (this.paths.length > 0) {\n last(this.paths).curveTo(controlOut, controlIn, point);\n }\n\n return this;\n }\n\n arc(startAngle, endAngle, radiusX, radiusY, anticlockwise) {\n if (this.paths.length > 0) {\n last(this.paths).arc(startAngle, endAngle, radiusX, radiusY, anticlockwise);\n }\n\n return this;\n }\n\n arcTo(end, rx, ry, largeArc, swipe, rotation) {\n if (this.paths.length > 0) {\n last(this.paths).arcTo(end, rx, ry, largeArc, swipe, rotation);\n }\n\n return this;\n }\n\n close() {\n if (this.paths.length > 0) {\n last(this.paths).close();\n }\n\n return this;\n }\n\n _bbox(matrix) {\n return elementsBoundingBox(this.paths, true, matrix);\n }\n\n rawBBox() {\n return elementsBoundingBox(this.paths, false);\n }\n\n _containsPoint(point) {\n const paths = this.paths;\n\n for (let idx = 0; idx < paths.length; idx++) {\n if (paths[idx]._containsPoint(point)) {\n return true;\n }\n }\n return false;\n }\n\n _isOnPath(point) {\n const paths = this.paths;\n const width = this.options.stroke.width;\n\n for (let idx = 0; idx < paths.length; idx++) {\n if (paths[idx]._isOnPath(point, width)) {\n return true;\n }\n }\n return false;\n }\n\n _clippedBBox(transformation) {\n return elementsClippedBoundingBox(this.paths, this.currentTransform(transformation));\n }\n}\n\n","import Element from './element';\nimport Point from '../geometry/point';\nimport Rect from '../geometry/rect';\nimport toMatrix from '../geometry/to-matrix';\nimport paintable from '../mixins/paintable';\nimport withPoints from '../mixins/with-points';\nimport { defined, measureText } from '../util';\n\n\nconst DEFAULT_FONT = \"12px sans-serif\";\nconst DEFAULT_FILL = \"#000\";\n\nclass Text extends paintable(withPoints(Element, [ \"position\" ])) {\n get nodeType() {\n return \"Text\";\n }\n\n constructor(content, position = new Point(), options = {}) {\n super(options);\n\n this.content(content);\n this.position(position);\n\n if (!this.options.font) {\n this.options.font = DEFAULT_FONT;\n }\n\n if (!defined(this.options.fill)) {\n this.fill(DEFAULT_FILL);\n }\n }\n\n content(value) {\n if (defined(value)) {\n this.options.set(\"content\", value);\n return this;\n }\n\n return this.options.get(\"content\");\n }\n\n measure() {\n const metrics = measureText(this.content(), {\n font: this.options.get(\"font\")\n });\n\n return metrics;\n }\n\n rect() {\n const size = this.measure();\n const pos = this.position().clone();\n return new Rect(pos, [ size.width, size.height ]);\n }\n\n bbox(transformation) {\n const combinedMatrix = toMatrix(this.currentTransform(transformation));\n return this.rect().bbox(combinedMatrix);\n }\n\n rawBBox() {\n return this.rect().bbox();\n }\n\n _containsPoint(point) {\n return this.rect().containsPoint(point);\n }\n}\n\nexport default Text;\n","import Rect from '../../geometry/rect';\n\nexport default function elementsBoundingBox(elements, applyTransform, transformation) {\n let boundingBox;\n\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n if (element.visible()) {\n let elementBoundingBox = applyTransform ? element.bbox(transformation) : element.rawBBox();\n if (elementBoundingBox) {\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, elementBoundingBox);\n } else {\n boundingBox = elementBoundingBox;\n }\n }\n }\n }\n\n return boundingBox;\n}\n\n","import Rect from '../../geometry/rect';\n\nexport default function elementsClippedBoundingBox(elements, transformation) {\n let boundingBox;\n\n for (let i = 0; i < elements.length; i++) {\n let element = elements[i];\n if (element.visible()) {\n let elementBoundingBox = element.clippedBBox(transformation);\n if (elementBoundingBox) {\n if (boundingBox) {\n boundingBox = Rect.union(boundingBox, elementBoundingBox);\n } else {\n boundingBox = elementBoundingBox;\n }\n }\n }\n }\n\n return boundingBox;\n}","import Node from './node';\nimport { defined, isTransparent } from '../util';\nimport { DASH_ARRAYS, SOLID, BUTT, PATTERN } from '../core/constants';\nimport { NONE, POINT_DIGITS } from './constants';\nimport renderAllAttr from './utils/render-all-attributes';\nimport renderAttr from './utils/render-attribute';\n\nconst ATTRIBUTE_MAP = {\n \"fill.opacity\": \"fill-opacity\",\n \"stroke.color\": \"stroke\",\n \"stroke.width\": \"stroke-width\",\n \"stroke.opacity\": \"stroke-opacity\"\n};\n\nclass PathNode extends Node {\n\n geometryChange() {\n this.attr(\"d\", this.renderData());\n this.invalidate();\n }\n\n optionsChange(e) {\n switch (e.field) {\n case \"fill\":\n if (e.value) {\n this.allAttr(this.mapFill(e.value));\n } else {\n this.removeAttr(\"fill\");\n }\n break;\n\n case \"fill.color\":\n this.allAttr(this.mapFill({ color: e.value }));\n break;\n\n case \"stroke\":\n if (e.value) {\n this.allAttr(this.mapStroke(e.value));\n } else {\n this.removeAttr(\"stroke\");\n }\n break;\n\n case \"transform\":\n this.transformChange(e.value);\n break;\n\n default:\n const name = ATTRIBUTE_MAP[e.field];\n if (name) {\n this.attr(name, e.value);\n }\n break;\n }\n\n this.accessibilityOptionsChange(e);\n\n super.optionsChange(e);\n }\n\n content() {\n if (this.element) {\n this.element.textContent = this.srcElement.content();\n }\n }\n\n renderData() {\n return this.srcElement.toString(POINT_DIGITS) || undefined;\n }\n\n mapStroke(stroke) {\n const attrs = [];\n\n if (stroke && !isTransparent(stroke.color)) {\n attrs.push([ \"stroke\", stroke.color ]);\n attrs.push([ \"stroke-width\", stroke.width ]);\n attrs.push([ \"stroke-linecap\", this.renderLinecap(stroke) ]);\n attrs.push([ \"stroke-linejoin\", stroke.lineJoin ]);\n\n if (defined(stroke.opacity)) {\n attrs.push([ \"stroke-opacity\", stroke.opacity ]);\n }\n\n if (defined(stroke.dashType)) {\n attrs.push([ \"stroke-dasharray\", this.renderDashType(stroke) ]);\n }\n } else {\n attrs.push([ \"stroke\", NONE ]);\n }\n\n return attrs;\n }\n\n renderStroke() {\n return renderAllAttr(\n this.mapStroke(this.srcElement.options.stroke)\n );\n }\n\n renderDashType(stroke) {\n const { dashType, width = 1 } = stroke;\n\n if (dashType && dashType !== SOLID) {\n const dashArray = DASH_ARRAYS[dashType.toLowerCase()];\n const result = [];\n\n for (let i = 0; i < dashArray.length; i++) {\n result.push(dashArray[i] * width);\n }\n\n return result.join(\" \");\n }\n }\n\n renderLinecap(stroke) {\n const { dashType, lineCap } = stroke;\n\n return (dashType && dashType !== SOLID) ? BUTT : lineCap;\n }\n\n mapFill(fill) {\n const attrs = [];\n if (!(fill && (fill.nodeType === \"Gradient\" || fill.nodeType === PATTERN))) {\n if (fill && !isTransparent(fill.color)) {\n attrs.push([ \"fill\", fill.color ]);\n\n if (defined(fill.opacity)) {\n attrs.push([ \"fill-opacity\", fill.opacity ]);\n }\n } else {\n attrs.push([ \"fill\", NONE ]);\n }\n }\n\n return attrs;\n }\n\n renderFill() {\n return renderAllAttr(\n this.mapFill(this.srcElement.options.fill)\n );\n }\n\n template() {\n return ``;\n }\n}\n\nexport default PathNode;\n","import PathNode from './path-node';\nimport renderStyle from './utils/render-style';\nimport renderAttr from './utils/render-attribute';\nimport { htmlEncode, support } from '../common';\nimport { normalizeText } from '../text-metrics';\n\nconst ENTITY_REGEX = /&(?:[a-zA-Z]+|#\\d+);/g;\n\nfunction decodeEntities(text) {\n if (!text || typeof text !== \"string\" || !ENTITY_REGEX.test(text)) {\n return text;\n }\n\n const element = decodeEntities._element;\n ENTITY_REGEX.lastIndex = 0;\n\n return text.replace(ENTITY_REGEX, (match) => {\n element.innerHTML = match;\n\n return element.textContent || element.innerText;\n });\n}\n\nif (typeof document !== \"undefined\") {\n decodeEntities._element = document.createElement(\"span\");\n}\n\nclass TextNode extends PathNode {\n\n geometryChange() {\n const pos = this.pos();\n this.attr(\"x\", pos.x);\n this.attr(\"y\", pos.y);\n this.invalidate();\n }\n\n optionsChange(e) {\n if (e.field === \"font\") {\n this.attr(\"style\", renderStyle(this.mapStyle()));\n this.geometryChange();\n } else if (e.field === \"content\") {\n super.content(this.srcElement.content());\n }\n\n super.optionsChange(e);\n }\n\n mapStyle(encode) {\n const style = super.mapStyle(encode);\n let font = this.srcElement.options.font;\n\n if (encode) {\n font = htmlEncode(font);\n }\n\n style.push([ \"font\", font ], [ \"white-space\", \"pre\" ]);\n\n return style;\n }\n\n pos() {\n const pos = this.srcElement.position();\n const size = this.srcElement.measure();\n return pos.clone().setY(pos.y + size.baseline);\n }\n\n renderContent() {\n let content = this.srcElement.content();\n content = decodeEntities(content);\n content = htmlEncode(content);\n\n return normalizeText(content);\n }\n\n renderTextAnchor() {\n let anchor;\n\n if ((this.options || {}).rtl && !(support.browser.msie || support.browser.edge)) {\n anchor = 'end';\n }\n\n return renderAttr(\"text-anchor\", anchor);\n }\n\n renderPaintOrder() {\n const paintOrder = this.srcElement.options.paintOrder;\n return paintOrder ? renderAttr(\"paint-order\", paintOrder) : \"\";\n }\n\n template() {\n return `${ this.renderContent() }`;\n }\n}\n\nexport default TextNode;\n","import BaseSurface from '../core/surface';\nimport RootNode from './root-node';\nimport Group from '../shapes/group';\nimport transform from '../geometry/transform';\nimport renderSVG from './utils/render-svg';\nimport { SVG_NS } from './constants';\nimport { bindEvents, unbindEvents, elementStyles } from '../util';\n\nimport ArcNode from './arc-node';\nimport CircleNode from './circle-node';\nimport GroupNode from './group-node';\nimport ImageNode from './image-node';\nimport MultiPathNode from './multi-path-node';\nimport PathNode from './path-node';\nimport RectNode from './rect-node';\nimport TextNode from './text-node';\nimport NODE_MAP from './node-map';\n\nNODE_MAP.Arc = ArcNode;\nNODE_MAP.Circle = CircleNode;\nNODE_MAP.Group = GroupNode;\nNODE_MAP.Image = ImageNode;\nNODE_MAP.MultiPath = MultiPathNode;\nNODE_MAP.Path = PathNode;\nNODE_MAP.Rect = RectNode;\nNODE_MAP.Text = TextNode;\n\nconst RTL = 'rtl';\n\nfunction alignToScreen(element) {\n let ctm;\n\n try {\n ctm = element.getScreenCTM ? element.getScreenCTM() : null;\n } catch (e) { } // eslint-disable-line no-empty\n\n if (ctm) {\n const left = - ctm.e % 1;\n const top = - ctm.f % 1;\n const style = element.style;\n\n if (left !== 0 || top !== 0) {\n style.left = left + \"px\";\n style.top = top + \"px\";\n }\n }\n}\n\nclass Surface extends BaseSurface {\n get type() {\n return \"svg\";\n }\n\n constructor(element, options) {\n super(element, options);\n\n this._root = new RootNode(Object.assign({\n rtl: elementStyles(element, 'direction').direction === RTL\n }, this.options));\n\n renderSVG(this.element, this._template(''));\n\n this._rootElement = this.element.firstElementChild;\n this._rootElement.style.width = '100%';\n this._rootElement.style.height = '100%';\n this._rootElement.style.overflow = 'hidden';\n\n alignToScreen(this._rootElement);\n\n this._root.attachTo(this._rootElement);\n\n bindEvents(this.element, {\n click: this._click,\n mouseover: this._mouseenter,\n mouseout: this._mouseleave,\n mousemove: this._mousemove\n });\n\n this.resize();\n }\n\n destroy() {\n if (this._root) {\n this._root.destroy();\n this._root = null;\n this._rootElement = null;\n unbindEvents(this.element, {\n click: this._click,\n mouseover: this._mouseenter,\n mouseout: this._mouseleave,\n mousemove: this._mousemove\n });\n }\n\n super.destroy();\n }\n\n translate(offset) {\n const viewBox = `${ Math.round(offset.x) } ${ Math.round(offset.y) } ${ this._size.width } ${ this._size.height }`;\n\n this._offset = offset;\n this._rootElement.setAttribute(\"viewBox\", viewBox);\n }\n\n draw(element) {\n super.draw(element);\n this._root.load([ element ]);\n }\n\n clear() {\n super.clear();\n this._root.clear();\n }\n\n svg() {\n return \"\" + this._template();\n }\n\n exportVisual() {\n let { _visual: visual, _offset: offset } = this;\n\n if (offset) {\n const wrap = new Group();\n wrap.children.push(visual);\n\n wrap.transform(\n transform().translate(-offset.x, -offset.y)\n );\n\n visual = wrap;\n }\n\n return visual;\n }\n\n _resize() {\n if (this._offset) {\n this.translate(this._offset);\n }\n }\n\n _template(svgStyles) {\n const styles = typeof svgStyles === 'string' ? svgStyles :\n \"style='width: 100%; height: 100%; overflow: hidden;' \";\n return `${ this._root.render() }`;\n }\n}\n\nexport default Surface;\n","import { POINT_DIGITS } from './constants';\nimport PathNode from './path-node';\n\nclass ArcNode extends PathNode {\n renderData() {\n return this.srcElement.toPath().toString(POINT_DIGITS);\n }\n}\n\nexport default ArcNode;\n","import PathNode from './path-node';\n\nclass CircleNode extends PathNode {\n\n geometryChange() {\n const center = this.center();\n this.attr(\"cx\", center.x);\n this.attr(\"cy\", center.y);\n this.attr(\"r\", this.radius());\n this.invalidate();\n }\n\n center() {\n return this.srcElement.geometry().center;\n }\n\n radius() {\n return this.srcElement.geometry().radius;\n }\n\n template() {\n return ``;\n }\n}\n\nexport default CircleNode;\n","import Node from './node';\nimport renderAttr from './utils/render-attribute';\n\nclass GroupNode extends Node {\n template() {\n return `${ this.renderChildren() }`;\n }\n\n optionsChange(e) {\n const { field, value } = e;\n\n if (field === \"transform\") {\n this.transformChange(value);\n }\n\n this.accessibilityOptionsChange(e);\n\n super.optionsChange(e);\n }\n}\n\nexport default GroupNode;\n","import PathNode from './path-node';\nimport renderAllAttr from './utils/render-all-attributes';\nimport { htmlEncode } from '../common';\n\nclass ImageNode extends PathNode {\n\n geometryChange() {\n this.allAttr(this.mapPosition());\n this.invalidate();\n }\n\n optionsChange(e) {\n if (e.field === \"src\") {\n this.allAttr(this.mapSource());\n }\n\n super.optionsChange(e);\n }\n\n mapPosition() {\n const rect = this.srcElement.rect();\n const tl = rect.topLeft();\n\n return [\n [ \"x\", tl.x ],\n [ \"y\", tl.y ],\n [ \"width\", rect.width() + \"px\" ],\n [ \"height\", rect.height() + \"px\" ]\n ];\n }\n\n renderPosition() {\n return renderAllAttr(this.mapPosition());\n }\n\n mapSource(encode) {\n let src = this.srcElement.src();\n\n if (encode) {\n src = htmlEncode(src);\n }\n\n return [ [ \"xlink:href\", src ] ];\n }\n\n renderSource() {\n return renderAllAttr(this.mapSource(true));\n }\n\n template() {\n return `` +\n ``;\n }\n}\n\nexport default ImageNode;\n","import { POINT_DIGITS } from './constants';\nimport PathNode from './path-node';\n\nclass MultiPathNode extends PathNode {\n renderData() {\n return this.srcElement.toString(POINT_DIGITS) || 'undefined';\n }\n}\n\nexport default MultiPathNode;\n","import PathNode from './path-node';\n\nclass RectNode extends PathNode {\n\n geometryChange() {\n const geometry = this.srcElement.geometry();\n this.attr(\"x\", geometry.origin.x);\n this.attr(\"y\", geometry.origin.y);\n this.attr(\"width\", geometry.size.width);\n this.attr(\"height\", geometry.size.height);\n this.attr(\"rx\", geometry.cornerRadius[0]);\n this.attr(\"ry\", geometry.cornerRadius[1]);\n this.invalidate();\n }\n\n size() {\n return this.srcElement.geometry().size;\n }\n\n origin() {\n return this.srcElement.geometry().origin;\n }\n\n rx() {\n return this.srcElement.geometry().cornerRadius[0];\n }\n\n ry() {\n return this.srcElement.geometry().cornerRadius[1];\n }\n\n template() {\n return ``;\n }\n}\n\nexport default RectNode;\n","import { Class, logToConsole } from './common';\nimport SVGSurface from './svg/surface';\nimport CanvasSurface from './canvas/surface';\n\nlet instance;\nlet support;\n\nconst hasDocument = () => typeof document !== \"undefined\";\n\nconst supportsCanvas = () => hasDocument() &&\n document.createElement(\"canvas\").getContext;\n\nconst supportsSVG = () => hasDocument() &&\n document.implementation.hasFeature(\"http://www.w3.org/TR/SVG11/feature#BasicStructure\", \"1.1\");\n\nclass SurfaceFactory extends Class {\n static get support() {\n if (!support) {\n support = {\n canvas: supportsCanvas(),\n svg: supportsSVG()\n };\n }\n\n return support;\n }\n\n static get current() {\n if (!instance) {\n instance = new SurfaceFactory();\n }\n\n return instance;\n }\n\n constructor() {\n super();\n\n this._items = [ {\n name: \"svg\",\n type: SVGSurface\n }, {\n name: \"canvas\",\n type: CanvasSurface\n } ];\n }\n\n create(element, options) {\n const items = this._items;\n let match = items[0];\n\n if (options && options.type) {\n const preferred = options.type.toLowerCase();\n for (let i = 0; i < items.length; i++) {\n if (items[i].name === preferred) {\n match = items[i];\n break;\n }\n }\n }\n\n if (match) {\n return new match.type(element, options);\n }\n\n logToConsole(\n \"Warning: Unable to create Kendo UI Drawing Surface. Possible causes:\\n\" +\n `- The browser does not support SVG and Canvas. User agent: ${ navigator.userAgent }`);\n }\n}\n\nexport default SurfaceFactory;\n\n","import BaseSurface from './core/surface';\nimport SurfaceFactory from './surface-factory';\n\nclass Surface extends BaseSurface {\n static get support() {\n return SurfaceFactory.support;\n }\n\n static create(element, options) {\n return SurfaceFactory.current.create(element, options);\n }\n}\n\nexport default Surface;\n\n","const SVG_NS = \"http://www.w3.org/2000/svg\";\nconst NONE = \"none\";\nconst POINT_DIGITS = 3;\n\nexport { SVG_NS, NONE, POINT_DIGITS };","import { createPromise, encodeBase64 } from '../util';\nimport exportGroup from './export-group';\n\nexport default function exportSVG(group, options) {\n let svg = exportGroup(group);\n\n if (!options || !options.raw) {\n svg = \"data:image/svg+xml;base64,\" + encodeBase64(svg);\n }\n\n return createPromise().resolve(svg);\n}\n","import RootNode from './root-node';\nimport { Group } from '../shapes';\nimport { transform } from '../geometry';\nimport { SVG_NS } from './constants';\n\nexport default function exportGroup(group) {\n const root = new RootNode({\n skipBaseHref: true\n });\n const bbox = group.clippedBBox();\n let rootGroup = group;\n\n if (bbox) {\n const origin = bbox.getOrigin();\n const exportRoot = new Group();\n exportRoot.transform(transform().translate(-origin.x, -origin.y));\n exportRoot.children.push(group);\n rootGroup = exportRoot;\n }\n\n root.load([ rootGroup ]);\n\n const svg = `${ root.render() }`;\n\n root.destroy();\n\n return svg;\n}","const NODE_MAP = {};\n\nexport default NODE_MAP;","import BaseNode from '../core/base-node';\nimport renderAllAttr from './utils/render-all-attributes';\nimport renderAttr from './utils/render-attribute';\nimport renderStyle from './utils/render-style';\nimport NODE_MAP from './node-map';\nimport renderSVG from './utils/render-svg';\nimport { SVG_NS, NONE } from './constants';\nimport { support, htmlEncode } from '../common';\nimport { defined } from '../util';\nimport { PATTERN } from '../core/constants';\n\nconst TRANSFORM = \"transform\";\nconst DefinitionMap = {\n clip: \"clip-path\",\n fill: \"fill\"\n};\n\nfunction isDefinition(type, value) {\n return type === \"clip\" || (type === \"fill\" && (!value || value.nodeType === \"Gradient\" || value.nodeType === PATTERN));\n}\n\nfunction baseUrl() {\n const base = document.getElementsByTagName(\"base\")[0];\n let href = document.location.href;\n let url = \"\";\n\n if (base && !(support.browser || {}).msie) {\n const hashIndex = href.indexOf(\"#\");\n if (hashIndex !== -1) {\n href = href.substring(0, hashIndex);\n }\n\n url = href;\n }\n\n return url;\n}\n\nclass Node extends BaseNode {\n\n constructor(srcElement, options) {\n super(srcElement);\n this.definitions = {};\n\n this.options = options;\n }\n\n destroy() {\n if (this.element) {\n this.element._kendoNode = null;\n this.element = null;\n }\n\n this.clearDefinitions();\n super.destroy();\n }\n\n load(elements, pos) {\n for (let i = 0; i < elements.length; i++) {\n const srcElement = elements[i];\n const children = srcElement.children;\n\n const childNode = new NODE_MAP[srcElement.nodeType](srcElement, this.options);\n\n if (defined(pos)) {\n this.insertAt(childNode, pos);\n } else {\n this.append(childNode);\n }\n\n childNode.createDefinitions();\n\n if (children && children.length > 0) {\n childNode.load(children);\n }\n\n const element = this.element;\n if (element) {\n childNode.attachTo(element, pos);\n }\n }\n }\n\n root() {\n let root = this;\n\n while (root.parent) {\n root = root.parent;\n }\n\n return root;\n }\n\n attachTo(domElement, pos) {\n const container = document.createElement(\"div\");\n renderSVG(container,\n \"\" +\n this.render() +\n \"\"\n );\n\n const element = container.firstChild.firstChild;\n if (element) {\n if (defined(pos)) {\n domElement.insertBefore(element, domElement.childNodes[pos] || null);\n } else {\n domElement.appendChild(element);\n }\n this.setElement(element);\n }\n }\n\n setElement(element) {\n if (this.element) {\n this.element._kendoNode = null;\n }\n\n this.element = element;\n this.element._kendoNode = this;\n\n const nodes = this.childNodes;\n for (let i = 0; i < nodes.length; i++) {\n let childElement = element.childNodes[i];\n nodes[i].setElement(childElement);\n }\n }\n\n clear() {\n this.clearDefinitions();\n\n if (this.element) {\n this.element.innerHTML = \"\";\n }\n\n const children = this.childNodes;\n for (let i = 0; i < children.length; i++) {\n children[i].destroy();\n }\n\n this.childNodes = [];\n }\n\n removeSelf() {\n if (this.element) {\n const parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n this.element = null;\n }\n\n super.removeSelf();\n }\n\n template() {\n return this.renderChildren();\n }\n\n render() {\n return this.template();\n }\n\n renderChildren() {\n const nodes = this.childNodes;\n let output = \"\";\n\n for (let i = 0; i < nodes.length; i++) {\n output += nodes[i].render();\n }\n\n return output;\n }\n\n optionsChange(e) {\n const { field, value } = e;\n\n if (field === \"visible\") {\n this.css(\"display\", value ? \"\" : NONE);\n } else if (DefinitionMap[field] && isDefinition(field, value)) {\n this.updateDefinition(field, value);\n } else if (field === \"opacity\") {\n this.attr(\"opacity\", value);\n } else if (field === \"cursor\") {\n this.css(\"cursor\", value);\n } else if (field === \"id\") {\n if (value) {\n this.attr(\"id\", value);\n } else {\n this.removeAttr(\"id\");\n }\n }\n\n super.optionsChange(e);\n }\n\n accessibilityOptionsChange(e) {\n const { field, value } = e;\n\n\n if (field === \"role\") {\n if (value) {\n this.attr(\"role\", value);\n } else {\n this.removeAttr(\"role\");\n }\n } else if (field === \"ariaLabel\") {\n if (value) {\n this.attr(\"aria-label\", htmlEncode(value));\n } else {\n this.removeAttr(\"aria-label\");\n }\n } else if (field === \"ariaRoleDescription\") {\n if (value) {\n this.attr(\"aria-roledescription\", htmlEncode(value));\n } else {\n this.removeAttr(\"aria-roledescription\");\n }\n } else if (field === \"ariaChecked\") {\n if (defined(value)) {\n this.attr(\"aria-checked\", value);\n } else {\n this.removeAttr(\"aria-checked\");\n }\n } else if (field === \"className\") {\n this.className(value);\n }\n }\n\n attr(name, value) {\n if (this.element) {\n this.element.setAttribute(name, value);\n }\n }\n\n allAttr(attrs) {\n for (let i = 0; i < attrs.length; i++) {\n this.attr(attrs[i][0], attrs[i][1]);\n }\n }\n\n toggleAttr(name, value) {\n if (value) {\n this.attr(name, value);\n } else {\n this.removeAttr(name);\n }\n }\n\n css(name, value) {\n if (this.element) {\n this.element.style[name] = value;\n }\n }\n\n allCss(styles) {\n for (let i = 0; i < styles.length; i++) {\n this.css(styles[i][0], styles[i][1]);\n }\n }\n\n className(value) {\n if (this.element) {\n this.element.classList.remove(...this.element.classList);\n value.split(\" \").forEach((item) => {\n this.element.classList.add(item);\n });\n }\n }\n\n removeAttr(name) {\n if (this.element) {\n this.element.removeAttribute(name);\n }\n }\n\n mapTransform(transform) {\n const attrs = [];\n if (transform) {\n attrs.push([\n TRANSFORM,\n \"matrix(\" + transform.matrix().toString(6) + \")\"\n ]);\n }\n\n return attrs;\n }\n\n renderTransform() {\n return renderAllAttr(\n this.mapTransform(this.srcElement.transform())\n );\n }\n\n transformChange(value) {\n if (value) {\n this.allAttr(this.mapTransform(value));\n } else {\n this.removeAttr(TRANSFORM);\n }\n }\n\n mapStyle() {\n const options = this.srcElement.options;\n const style = [ [ \"cursor\", options.cursor ] ];\n\n if (options.visible === false) {\n style.push([ \"display\", NONE ]);\n }\n\n return style;\n }\n\n renderStyle() {\n return renderAttr(\"style\", renderStyle(this.mapStyle(true)));\n }\n\n renderOpacity() {\n return renderAttr(\"opacity\", this.srcElement.options.opacity);\n }\n\n renderId() {\n return renderAttr(\"id\", this.srcElement.options.id);\n }\n\n renderClassName() {\n return renderAttr(\"class\", this.srcElement.options.className);\n }\n\n renderRole() {\n return renderAttr(\"role\", this.srcElement.options.role);\n }\n\n renderAriaLabel() {\n let value = this.srcElement.options.ariaLabel;\n if (value) {\n value = htmlEncode(value);\n }\n return renderAttr(\"aria-label\", value);\n }\n\n renderAriaRoleDescription() {\n let value = this.srcElement.options.ariaRoleDescription;\n if (value) {\n value = htmlEncode(value);\n }\n return renderAttr(\"aria-roledescription\", value);\n }\n\n renderAriaChecked() {\n return renderAttr(\"aria-checked\", this.srcElement.options.ariaChecked);\n }\n\n createDefinitions() {\n const srcElement = this.srcElement;\n const definitions = this.definitions;\n if (srcElement) {\n const options = srcElement.options;\n let hasDefinitions;\n\n for (let field in DefinitionMap) {\n let definition = options.get(field);\n if (definition && isDefinition(field, definition)) {\n definitions[field] = definition;\n hasDefinitions = true;\n }\n }\n if (hasDefinitions) {\n this.definitionChange({\n action: \"add\",\n definitions: definitions\n });\n }\n }\n }\n\n definitionChange(e) {\n if (this.parent) {\n this.parent.definitionChange(e);\n }\n }\n\n updateDefinition(type, value) {\n const definitions = this.definitions;\n const current = definitions[type];\n const attr = DefinitionMap[type];\n const definition = {};\n if (current) {\n definition[type] = current;\n this.definitionChange({\n action: \"remove\",\n definitions: definition\n });\n delete definitions[type];\n }\n\n if (!value) {\n if (current) {\n this.removeAttr(attr);\n }\n } else {\n definition[type] = value;\n this.definitionChange({\n action: \"add\",\n definitions: definition\n });\n definitions[type] = value;\n this.attr(attr, this.refUrl(value.id));\n }\n }\n\n clearDefinitions() {\n const definitions = this.definitions;\n\n this.definitionChange({\n action: \"remove\",\n definitions: definitions\n });\n this.definitions = {};\n }\n\n renderDefinitions() {\n return renderAllAttr(this.mapDefinitions());\n }\n\n mapDefinitions() {\n const definitions = this.definitions;\n const attrs = [];\n\n for (let field in definitions) {\n attrs.push([ DefinitionMap[field], this.refUrl(definitions[field].id) ]);\n }\n\n return attrs;\n }\n\n refUrl(id) {\n const skipBaseHref = (this.options || {}).skipBaseHref;\n const baseHref = this.baseUrl().replace(/'/g, \"\\\\'\");\n const base = skipBaseHref ? '' : baseHref;\n return `url(${ base }#${ id })`;\n }\n\n baseUrl() {\n return baseUrl();\n }\n}\n\nexport default Node;\n","import Node from './node';\nimport renderAttr from './utils/render-attribute';\n\nclass GradientStopNode extends Node {\n template() {\n return ``;\n }\n\n renderOffset() {\n return renderAttr(\"offset\", this.srcElement.offset());\n }\n\n mapStyle() {\n const srcElement = this.srcElement;\n return [\n [ \"stop-color\", srcElement.color() ],\n [ \"stop-opacity\", srcElement.opacity() ]\n ];\n }\n\n optionsChange(e) {\n if (e.field === \"offset\") {\n this.attr(e.field, e.value);\n } else if (e.field === \"color\" || e.field === \"opacity\") {\n this.css(\"stop-\" + e.field, e.value);\n }\n }\n}\n\nexport default GradientStopNode;","import GradientStopNode from './gradient-stop-node';\nimport BaseNode from '../core/base-node';\nimport Node from './node';\nimport renderAllAttr from './utils/render-all-attributes';\n\nclass GradientNode extends Node {\n constructor(srcElement) {\n super(srcElement);\n\n this.id = srcElement.id;\n\n this.loadStops();\n }\n\n loadStops() {\n const stops = this.srcElement.stops;\n const element = this.element;\n\n for (let idx = 0; idx < stops.length; idx++) {\n let stopNode = new GradientStopNode(stops[idx]);\n this.append(stopNode);\n if (element) {\n stopNode.attachTo(element);\n }\n }\n }\n\n optionsChange(e) {\n if (e.field === \"gradient.stops\") {\n BaseNode.prototype.clear.call(this);\n this.loadStops();\n } else if (e.field === \"gradient\") {\n this.allAttr(this.mapCoordinates());\n }\n }\n\n renderCoordinates() {\n return renderAllAttr(this.mapCoordinates());\n }\n\n mapSpace() {\n return [ \"gradientUnits\", this.srcElement.userSpace() ? \"userSpaceOnUse\" : \"objectBoundingBox\" ];\n }\n}\n\nexport default GradientNode;","import GradientNode from './gradient-node';\n\nclass LinearGradientNode extends GradientNode {\n template() {\n return `${ this.renderChildren() }`;\n }\n\n mapCoordinates() {\n const srcElement = this.srcElement;\n const start = srcElement.start();\n const end = srcElement.end();\n const attrs = [\n [ \"x1\", start.x ],\n [ \"y1\", start.y ],\n [ \"x2\", end.x ],\n [ \"y2\", end.y ],\n this.mapSpace()\n ];\n\n return attrs;\n }\n}\n\nexport default LinearGradientNode;","import GradientNode from './gradient-node';\n\nclass RadialGradientNode extends GradientNode {\n template() {\n return `${ this.renderChildren() }`;\n }\n\n mapCoordinates() {\n const srcElement = this.srcElement;\n const center = srcElement.center();\n const radius = srcElement.radius();\n const attrs = [\n [ \"cx\", center.x ],\n [ \"cy\", center.y ],\n [ \"r\", radius ],\n this.mapSpace()\n ];\n return attrs;\n }\n}\n\nexport default RadialGradientNode;","import Node from './node';\n\nexport class PatternNode extends Node {\n constructor(pattern) {\n super(pattern);\n\n this.id = pattern.id;\n this.load(pattern.children);\n }\n\n template() {\n const width = this.srcElement.size().getWidth();\n const height = this.srcElement.size().getHeight();\n\n return `` +\n `${ this.renderChildren() }` +\n ``;\n }\n}\n","import Node from './node';\nimport renderAttr from './utils/render-attribute';\n\nclass ClipNode extends Node {\n constructor(srcElement) {\n super();\n\n this.srcElement = srcElement;\n this.id = srcElement.id;\n\n this.load([ srcElement ]);\n }\n\n renderClipRule() {\n return renderAttr(\"clip-rule\", \"evenodd\");\n }\n template() {\n return `${ this.renderChildren() }`;\n }\n}\n\nexport default ClipNode;","import LinearGradient from '../gradients/linear-gradient';\nimport RadialGradient from '../gradients/radial-gradient';\nimport LinearGradientNode from './linear-gradient-node';\nimport RadialGradientNode from './radial-gradient-node';\nimport { PatternNode } from './pattern-node';\nimport Node from './node';\nimport ClipNode from './clip-node';\nimport { PATTERN } from '../core/constants';\n\nclass DefinitionNode extends Node {\n constructor() {\n super();\n this.definitionMap = {};\n }\n\n attachTo(domElement) {\n this.element = domElement;\n }\n\n template() {\n return `${ this.renderChildren() }`;\n }\n\n definitionChange(e) {\n const { definitions, action } = e;\n\n if (action === \"add\") {\n this.addDefinitions(definitions);\n } else if (action === \"remove\") {\n this.removeDefinitions(definitions);\n }\n }\n\n createDefinition(type, item) {\n let nodeType;\n if (type === \"clip\") {\n nodeType = ClipNode;\n } else if (type === \"fill\") {\n if (item instanceof LinearGradient) {\n nodeType = LinearGradientNode;\n } else if (item instanceof RadialGradient) {\n nodeType = RadialGradientNode;\n } else if (item.nodeType === PATTERN) {\n nodeType = PatternNode;\n }\n }\n return new nodeType(item);\n }\n\n addDefinitions(definitions) {\n for (let field in definitions) {\n this.addDefinition(field, definitions[field]);\n }\n }\n\n addDefinition(type, srcElement) {\n const { element, definitionMap } = this;\n const id = srcElement.id;\n const mapItem = definitionMap[id];\n if (!mapItem) {\n const node = this.createDefinition(type, srcElement);\n definitionMap[id] = {\n element: node,\n count: 1\n };\n this.append(node);\n if (element) {\n node.attachTo(this.element);\n }\n } else {\n mapItem.count++;\n }\n }\n\n removeDefinitions(definitions) {\n for (let field in definitions) {\n this.removeDefinition(definitions[field]);\n }\n }\n\n removeDefinition(srcElement) {\n const definitionMap = this.definitionMap;\n const id = srcElement.id;\n const mapItem = definitionMap[id];\n\n if (mapItem) {\n mapItem.count--;\n if (mapItem.count === 0) {\n this.remove(this.childNodes.indexOf(mapItem.element), 1);\n delete definitionMap[id];\n }\n }\n }\n}\n\nexport default DefinitionNode;","import BaseNode from '../core/base-node';\nimport Node from './node';\nimport DefinitionNode from './definition-node';\n\nclass RootNode extends Node {\n constructor(options) {\n super();\n this.options = options;\n this.defs = new DefinitionNode();\n }\n\n attachTo(domElement) {\n this.element = domElement;\n this.defs.attachTo(domElement.firstElementChild);\n }\n\n clear() {\n BaseNode.prototype.clear.call(this);\n }\n\n template() {\n return this.defs.render() + this.renderChildren();\n }\n\n definitionChange(e) {\n this.defs.definitionChange(e);\n }\n}\n\nexport default RootNode;","import renderAttr from './render-attribute';\n\nexport default function renderAllAttr(attrs) {\n let output = \"\";\n for (let i = 0; i < attrs.length; i++) {\n output += renderAttr(attrs[i][0], attrs[i][1]);\n }\n\n return output;\n}","import { defined } from '../../util';\n\nexport default function renderAttr(name, value) {\n return (defined(value) && value !== null) ? ` ${ name }=\"${ value }\" ` : \"\";\n}","import { defined } from '../../util';\n\nexport default function renderStyle(attrs) {\n let output = \"\";\n for (let i = 0; i < attrs.length; i++) {\n let value = attrs[i][1];\n if (defined(value)) {\n output += attrs[i][0] + \":\" + value + \";\";\n }\n }\n\n if (output !== \"\") {\n return output;\n }\n}","import { replaceStyleAttr, restoreStyleAttr, setInnerHTML } from '../../util/element-set-styles-safe';\nimport { SVG_NS } from '../constants';\n\nlet renderSVG = function(container, svg) {\n setInnerHTML(container, svg);\n};\n\nif (typeof document !== \"undefined\") {\n const testFragment = \"\";\n const testContainer = document.createElement(\"div\");\n const hasParser = typeof DOMParser !== \"undefined\";\n\n testContainer.innerHTML = testFragment;\n\n if (hasParser && testContainer.firstChild.namespaceURI !== SVG_NS) {\n renderSVG = function(container, svg) {\n const parser = new DOMParser();\n const chartDoc = parser.parseFromString(replaceStyleAttr(svg), \"text/xml\");\n restoreStyleAttr(chartDoc);\n const importedDoc = document.adoptNode(chartDoc.documentElement);\n\n container.innerHTML = \"\";\n container.appendChild(importedDoc);\n };\n }\n}\n\nexport default renderSVG;\n","import { Class } from '../common';\n\nclass LRUCache extends Class {\n constructor(size) {\n super();\n\n this._size = size;\n this._length = 0;\n this._map = {};\n }\n\n put(key, value) {\n const map = this._map;\n const entry = { key: key, value: value };\n\n map[key] = entry;\n\n if (!this._head) {\n this._head = this._tail = entry;\n } else {\n this._tail.newer = entry;\n entry.older = this._tail;\n this._tail = entry;\n }\n\n if (this._length >= this._size) {\n map[this._head.key] = null;\n this._head = this._head.newer;\n this._head.older = null;\n } else {\n this._length++;\n }\n }\n\n get(key) {\n const entry = this._map[key];\n\n if (entry) {\n if (entry === this._head && entry !== this._tail) {\n this._head = entry.newer;\n this._head.older = null;\n }\n\n if (entry !== this._tail) {\n if (entry.older) {\n entry.older.newer = entry.newer;\n entry.newer.older = entry.older;\n }\n\n entry.older = this._tail;\n entry.newer = null;\n\n this._tail.newer = entry;\n this._tail = entry;\n }\n\n return entry.value;\n }\n }\n}\n\nexport default LRUCache;","import LRUCache from './lru-cache';\nimport { Class } from '../common';\nimport { objectKey, hashKey, normalizeText } from './util';\n\nfunction zeroSize() {\n return { width: 0, height: 0, baseline: 0 };\n}\n\nconst DEFAULT_OPTIONS = {\n baselineMarkerSize: 1\n};\n\nlet defaultMeasureBox;\n\nif (typeof document !== \"undefined\") {\n defaultMeasureBox = document.createElement(\"div\");\n defaultMeasureBox.style.setProperty(\"position\", \"absolute\", \"important\");\n defaultMeasureBox.style.setProperty(\"top\", \"-4000px\", \"important\");\n defaultMeasureBox.style.setProperty(\"width\", \"auto\", \"important\");\n defaultMeasureBox.style.setProperty(\"height\", \"auto\", \"important\");\n defaultMeasureBox.style.setProperty(\"padding\", \"0\", \"important\");\n defaultMeasureBox.style.setProperty(\"margin\", \"0\", \"important\");\n defaultMeasureBox.style.setProperty(\"border\", \"0\", \"important\");\n defaultMeasureBox.style.setProperty(\"line-height\", \"normal\", \"important\");\n defaultMeasureBox.style.setProperty(\"visibility\", \"hidden\", \"important\");\n defaultMeasureBox.style.setProperty(\"white-space\", \"pre\", \"important\");\n}\n\nclass TextMetrics extends Class {\n constructor(options) {\n super();\n\n this._cache = new LRUCache(1000);\n this.options = Object.assign({}, DEFAULT_OPTIONS, options);\n }\n\n measure(text, style, options = {}) {\n if (typeof text === 'undefined' || text === null) {\n return zeroSize();\n }\n\n const styleKey = objectKey(style);\n const cacheKey = hashKey(text + styleKey);\n const cachedResult = this._cache.get(cacheKey);\n\n if (cachedResult) {\n return cachedResult;\n }\n\n const size = zeroSize();\n const measureBox = options.box || defaultMeasureBox;\n const baselineMarker = this._baselineMarker().cloneNode(false);\n\n for (let key in style) {\n let value = style[key];\n if (typeof value !== \"undefined\") {\n measureBox.style[key] = value;\n }\n }\n\n const textStr = options.normalizeText !== false ? normalizeText(text) : String(text);\n\n measureBox.textContent = textStr;\n measureBox.appendChild(baselineMarker);\n document.body.appendChild(measureBox);\n\n if (textStr.length) {\n size.width = measureBox.offsetWidth - this.options.baselineMarkerSize;\n size.height = measureBox.offsetHeight;\n size.baseline = baselineMarker.offsetTop + this.options.baselineMarkerSize;\n }\n\n if (size.width > 0 && size.height > 0) {\n this._cache.put(cacheKey, size);\n }\n\n measureBox.parentNode.removeChild(measureBox);\n\n return size;\n }\n\n _baselineMarker() {\n const marker = document.createElement(\"div\");\n marker.style.display = \"inline-block\";\n marker.style.verticalAlign = \"baseline\";\n marker.style.width = this.options.baselineMarkerSize + \"px\";\n marker.style.height = this.options.baselineMarkerSize + \"px\";\n marker.style.overflow = \"hidden\";\n\n return marker;\n }\n}\n\nTextMetrics.current = new TextMetrics();\n\nexport default TextMetrics;\n","import TextMetrics from './text-metrics';\n\nexport default function measureText(text, style, measureBox) {\n return TextMetrics.current.measure(text, style, measureBox);\n}\n","const REPLACE_REGEX = /\\r?\\n|\\r|\\t/g;\nconst SPACE = ' ';\n\nfunction normalizeText(text) {\n return String(text).replace(REPLACE_REGEX, SPACE);\n}\n\nfunction objectKey(object) {\n const parts = [];\n for (let key in object) {\n parts.push(key + object[key]);\n }\n\n return parts.sort().join(\"\");\n}\n\n// Computes FNV-1 hash\n// See http://en.wikipedia.org/wiki/Fowler%E2%80%93Noll%E2%80%93Vo_hash_function\nfunction hashKey(str) {\n // 32-bit FNV-1 offset basis\n // See http://isthe.com/chongo/tech/comp/fnv/#FNV-param\n let hash = 0x811C9DC5;\n\n for (let i = 0; i < str.length; ++i) {\n hash += (hash << 1) + (hash << 4) + (hash << 7) + (hash << 8) + (hash << 24);\n hash ^= str.charCodeAt(i);\n }\n\n return hash >>> 0;\n}\n\nexport { objectKey, hashKey, normalizeText };","export default function append(first, second) {\n first.push.apply(first, second);\n return first;\n}","export default function bindEvents(element, events) {\n for (let eventName in events) {\n const eventNames = eventName.trim().split(\" \");\n for (let idx = 0; idx < eventNames.length; idx++) {\n element.addEventListener(eventNames[idx], events[eventName], false);\n }\n }\n}","const DEG_TO_RAD = Math.PI / 180;\nconst MAX_NUM = Number.MAX_VALUE;\nconst MIN_NUM = -Number.MAX_VALUE;\n\nexport { DEG_TO_RAD, MAX_NUM, MIN_NUM };","export default function createPromise() {\n let resolveFn, rejectFn;\n const promise = new Promise((resolve, reject) => {\n resolveFn = (data) => {\n promise._state = \"resolved\";\n resolve(data);\n return promise;\n };\n rejectFn = (data) => {\n promise._state = \"rejected\";\n reject(data);\n\n return promise;\n };\n });\n promise._state = \"pending\";\n promise.resolve = resolveFn;\n promise.reject = rejectFn;\n promise.state = () => promise._state;\n\n return promise;\n}\n","const UNDEFINED = \"undefined\";\n\nexport default function defined(value) {\n return typeof value !== UNDEFINED;\n}","let defId = 1;\n\nexport default function definitionId() {\n return \"kdef\" + defId++;\n}","import { DEG_TO_RAD } from './constants';\n\nexport default function deg(radians) {\n return radians / DEG_TO_RAD;\n}","export default function elementOffset(element) {\n const box = element.getBoundingClientRect();\n\n const documentElement = document.documentElement;\n\n return {\n top: box.top + (window.pageYOffset || documentElement.scrollTop) - (documentElement.clientTop || 0),\n left: box.left + (window.pageXOffset || documentElement.scrollLeft) - (documentElement.clientLeft || 0)\n };\n}","/**\n * @hidden\n */\nexport const isWindowAvailable = () => {\n return typeof window !== 'undefined';\n};\n","/* tslint:disable:object-literal-sort-keys max-line-length */\nimport { isWindowAvailable } from './util';\nconst agentRxs = {\n wp: /(Windows Phone(?: OS)?)\\s(\\d+)\\.(\\d+(\\.\\d+)?)/,\n fire: /(Silk)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n android: /(Android|Android.*(?:Opera|Firefox).*?\\/)\\s*(\\d+)(\\.(\\d+(\\.\\d+)?))?/,\n iphone: /(iPhone|iPod).*OS\\s+(\\d+)[\\._]([\\d\\._]+)/,\n ipad: /(iPad).*OS\\s+(\\d+)[\\._]([\\d_]+)/,\n meego: /(MeeGo).+NokiaBrowser\\/(\\d+)\\.([\\d\\._]+)/,\n webos: /(webOS)\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n blackberry: /(BlackBerry|BB10).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/,\n playbook: /(PlayBook).*?Tablet\\s*OS\\s*(\\d+)\\.(\\d+(\\.\\d+)?)/,\n windows: /(MSIE)\\s+(\\d+)\\.(\\d+(\\.\\d+)?)/,\n tizen: /(tizen).*?Version\\/(\\d+)\\.(\\d+(\\.\\d+)?)/i,\n sailfish: /(sailfish).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*firefox/i,\n ffos: /(Mobile).*rv:(\\d+)\\.(\\d+(\\.\\d+)?).*Firefox/\n};\nconst osRxs = {\n ios: /^i(phone|pad|pod)$/i,\n android: /^android|fire$/i,\n blackberry: /^blackberry|playbook/i,\n windows: /windows/,\n wp: /wp/,\n flat: /sailfish|ffos|tizen/i,\n meego: /meego/\n};\nconst desktopBrowserRxs = {\n edge: /(edge)[ \\/]([\\w.]+)/i,\n webkit: /(chrome)[ \\/]([\\w.]+)/i,\n safari: /(webkit)[ \\/]([\\w.]+)/i,\n opera: /(opera)(?:.*version|)[ \\/]([\\w.]+)/i,\n msie: /(msie\\s|trident.*? rv:)([\\w.]+)/i,\n mozilla: /(mozilla)(?:.*? rv:([\\w.]+)|)/i\n};\nconst mobileBrowserRxs = {\n omini: /Opera\\sMini/i,\n omobile: /Opera\\sMobi/i,\n firefox: /Firefox|Fennec/i,\n mobilesafari: /version\\/.*safari/i,\n ie: /MSIE|Windows\\sPhone/i,\n chrome: /chrome|crios/i,\n webkit: /webkit/i\n};\nconst testRx = (agent, rxs, dflt) => {\n for (let rx in rxs) {\n if (rxs.hasOwnProperty(rx) && rxs[rx].test(agent)) {\n return rx;\n }\n }\n return dflt !== undefined ? dflt : agent;\n};\n/**\n * A function that detects the mobile browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Linux; Android 8.0.0) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Focus/1.3 Chrome/61.0.3163.81 Mobile Safari/537.36';\n * detectMobileOS(userAgent); // { android: true };\n * ```\n */\nexport const detectMobileOS = (ua) => {\n let minorVersion;\n let match = [];\n for (let agent in agentRxs) {\n if (agentRxs.hasOwnProperty(agent)) {\n match = ua.match(agentRxs[agent]);\n if (!match) {\n continue;\n }\n if (agent === 'windows' && 'plugins' in window.navigator) {\n return null;\n } // Break if not Metro/Mobile Windows\n const os = {};\n os.device = agent;\n os.browser = testRx(ua, mobileBrowserRxs, 'default');\n os.name = testRx(agent, osRxs);\n os[os.name] = true;\n os.majorVersion = match[2];\n os.minorVersion = match[3] ? match[3].replace('_', '.') : '.0';\n minorVersion = os.minorVersion.replace('.', '').substr(0, 2);\n os.flatVersion = os.majorVersion + minorVersion +\n (new Array(3 - (minorVersion.length < 3 ? minorVersion.length : 2)).join('0'));\n os.cordova = typeof window.PhoneGap !== undefined\n || typeof window.cordova !== undefined; // Use file protocol to detect appModes.\n os.appMode = window.navigator.standalone\n || (/file|local|wmapp/).test(window.location.protocol)\n || os.cordova; // Use file protocol to detect appModes.\n return os;\n }\n }\n return null;\n};\n/**\n * A function that detects the desktop browser based on the given UserAgent.\n *\n * @param ua - The user agent string.\n * @returns - A browser info object containing the browser type and version.\n *\n * @example\n * ```ts-no-run\n * const userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.151 Safari/535.19';\n * detectDesktopBrowser(userAgent); // { chrome: true, webkit: true };\n * ```\n */\nexport const detectDesktopBrowser = (ua) => {\n let browserInfo = null;\n let match = [];\n for (let agent in desktopBrowserRxs) {\n if (desktopBrowserRxs.hasOwnProperty(agent)) {\n match = ua.match(desktopBrowserRxs[agent]);\n if (match) {\n browserInfo = {};\n browserInfo[agent] = true;\n browserInfo[match[1].toLowerCase().split(' ')[0].split('/')[0]] = true;\n browserInfo.version = parseInt(document.documentMode || match[2], 10);\n break;\n }\n }\n }\n return browserInfo;\n};\nconst userAgent = isWindowAvailable() && window.navigator ? window.navigator.userAgent : null;\n/**\n * A constant holding the desktop browser info. The variable persists the result of the detectDesktopBrowser(window.navigator.userAgent) call.\n * If no desktop browser is detected, the constant will be `null`.\n */\nexport const browser = userAgent ? detectDesktopBrowser(userAgent) : null;\n/**\n * A constant holding the mobile OS info. The variable persists the result of the detectMobileOS(window.navigator.userAgent) call.\n * If no mobile OS is detected, the constant will be `null`.\n */\nexport const mobileOS = userAgent ? detectMobileOS(userAgent) : null;\n/**\n * A constant reporting the browser `touch` events support.\n */\nexport const touch = isWindowAvailable() && 'ontouchstart' in window;\n/**\n * @hidden\n * A constant reporting the browser `msPointers` events support.\n */\nexport const msPointers = browser && !browser.chrome && window.MSPointerEvent;\n/**\n * A constant reporting the browser `pointers` events support.\n */\nexport const pointers = browser && !browser.chrome && window.PointerEvent;\n/**\n * A constant reporting whether the browser is touch enabled.\n */\nexport const touchEnabled = mobileOS && (touch || msPointers || pointers);\n","import { fieldList } from './field-list';\nconst getterCache = {};\n// tslint:disable-next-line:no-string-literal\ngetterCache['undefined'] = obj => obj;\n/**\n * @hidden\n */\nexport function getter(field) {\n if (getterCache[field]) {\n return getterCache[field];\n }\n const fields = fieldList(field);\n getterCache[field] = function (obj) {\n let result = obj;\n for (let idx = 0; idx < fields.length && result; idx++) {\n result = result[fields[idx]];\n }\n return result;\n };\n return getterCache[field];\n}\n","const reComment = /\\/\\*[\\s\\S]*?\\*\\//g;\n/*\n([^\\s:;]+?)\\s*:\\s* # Property name and colon\n(\n (?:\n (?: # Begin alternation\n url\\( # Match 'url('\n \\s*\n (?:\n (?:[^\"')\\\\]|\\\\.)* # Content inside url(), excluding quotes and closing parenthesis\n |\n \"(?:[^\"\\\\]|\\\\.)*\" # Double-quoted strings, handling escaped characters\n |\n '(?:[^'\\\\]|\\\\.)*' # Single-quoted strings, handling escaped characters\n )\n \\s*\n \\)\n |\n \"(?:[^\"\\\\]|\\\\.)*\" # Double-quoted strings, handling escaped characters\n |\n '(?:[^'\\\\]|\\\\.)*' # Single-quoted strings, handling escaped characters\n |\n [^;\"'] # Any character except ';', double or single quotes\n )*? # Repeat zero or more times, non-greedy\n \\s*\n )\n)\n(?=;|$) # Lookahead for ';' or end of string\n*/\nconst reDeclaration = /([^\\s:;]+?)\\s*:\\s*((?:(?:url\\(\\s*(?:(?:[^\"')\\\\]|\\\\.)*|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*')\\s*\\)|\"(?:[^\"\\\\]|\\\\.)*\"|'(?:[^'\\\\]|\\\\.)*'|[^;\"'])*?)\\s*)(?=;|$)/gi;\nconst reDoubleQuoted = /"|"|"/gi;\nconst reSingleQuoted = /'|'|'/gi;\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\nconst empty = '';\nfunction replaceQuoteEntities(str) {\n return str.replace(reDoubleQuoted, doubleQuote)\n .replace(reSingleQuoted, singleQuote);\n}\n/**\n * Parse inline styles string into object.\n *\n * @param styleString - inline styles string\n * @returns object with styles\n */\nexport function parseInlineStyles(styleString) {\n const styleObject = {};\n const input = replaceQuoteEntities((styleString || empty).replace(reComment, empty));\n let match = reDeclaration.exec(input), property, value;\n while (match !== null) {\n property = match[1].trim();\n value = match[2].trim();\n styleObject[property] = value;\n match = reDeclaration.exec(input);\n }\n return styleObject;\n}\n","import { parseInlineStyles } from '@progress/kendo-common';\r\n\r\nexport const setStyle = (element, styleString) => {\r\n const styles = parseInlineStyles(styleString);\r\n Object.keys(styles).forEach((key) => {\r\n element.style[key] = styles[key];\r\n });\r\n};\r\n\r\nconst styleAttr = 'data-style';\r\nexport const replaceStyleAttr = (html) => (html || '').replace(/\\sstyle=/g, ' ' + styleAttr + '=');\r\nexport const restoreStyleAttr = (container) => {\r\n Array.from(container.querySelectorAll('[' + styleAttr +']')).forEach((element) => {\r\n const styleString = element.getAttribute(styleAttr);\r\n element.removeAttribute(styleAttr);\r\n setStyle(element, styleString);\r\n });\r\n};\r\n\r\nexport const setInnerHTML = (container, html) => {\r\n container.innerHTML = replaceStyleAttr(html);\r\n restoreStyleAttr(container);\r\n};\r\n","import elementStyles from './element-styles';\nimport defined from './defined';\n\nfunction getPixels(value) {\n if (isNaN(value)) {\n return value;\n }\n return value + \"px\";\n}\n\nexport default function elementSize(element, size) {\n if (size) {\n const { width, height } = size;\n\n if (defined(width)) {\n element.style.width = getPixels(width);\n }\n\n if (defined(height)) {\n element.style.height = getPixels(height);\n }\n\n } else {\n const size = elementStyles(element, [ 'width', 'height' ]);\n\n return {\n width: parseInt(size.width, 10),\n height: parseInt(size.height, 10)\n };\n }\n}","export default function elementStyles(element, styles) {\n const result = {};\n const style = window.getComputedStyle(element) || {};\n const stylesArray = Array.isArray(styles) ? styles : [ styles ];\n\n for (let idx = 0; idx < stylesArray.length; idx++) {\n let field = stylesArray[idx];\n result[field] = style[field];\n }\n\n return result;\n}","import { encodeUTF8 } from './encode-utf';\n\nconst KEY_STR = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nexport default function encodeBase64(input) {\n let output = \"\";\n let i = 0;\n\n const utfInput = encodeUTF8(input);\n\n while (i < utfInput.length) {\n let chr1 = utfInput.charCodeAt(i++);\n let chr2 = utfInput.charCodeAt(i++);\n let chr3 = utfInput.charCodeAt(i++);\n\n let enc1 = chr1 >> 2;\n let enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);\n let enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);\n let enc4 = chr3 & 63;\n\n if (isNaN(chr2)) {\n enc3 = enc4 = 64;\n } else if (isNaN(chr3)) {\n enc4 = 64;\n }\n\n output = output +\n KEY_STR.charAt(enc1) + KEY_STR.charAt(enc2) +\n KEY_STR.charAt(enc3) + KEY_STR.charAt(enc4);\n }\n\n return output;\n}","const fromCharCode = String.fromCharCode;\n\nexport const BOM = '\\xfe\\xff';\n\n// Encodes a string as UTF-8\nexport function encodeUTF8(input) {\n let output = \"\";\n\n for (let i = 0; i < input.length; i++) {\n let code = input.charCodeAt(i);\n\n if (0xD800 <= code && code <= 0xDBFF) {\n const hi = code;\n const low = input.charCodeAt(++i);\n\n if (!isNaN(low)) {\n // Combine high and low surrogate\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt\n code = (hi - 0xD800) * 0x400 +\n (low - 0xDC00) + 0x10000;\n }\n }\n\n if (code < 0x80) {\n // One byte\n output += fromCharCode(code);\n } else if (code < 0x800) {\n // Two bytes\n output += fromCharCode(0xC0 | (code >>> 6));\n output += fromCharCode(0x80 | (code & 0x3f));\n } else if (code < 0x10000) {\n // Three bytes\n output += fromCharCode(0xE0 | (code >>> 12));\n output += fromCharCode(0x80 | (code >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (code & 0x3f));\n } else if (code < 0x10FFFF) {\n // Four bytes\n output += fromCharCode(0xF0 | (code >>> 18));\n output += fromCharCode(0x80 | (code >>> 12 & 0x3f));\n output += fromCharCode(0x80 | (code >>> 6 & 0x3f));\n output += fromCharCode(0x80 | (code & 0x3f));\n }\n }\n\n return output;\n}\n\nfunction encodeUnit(codeUnit) {\n return fromCharCode(codeUnit >> 8) + fromCharCode(codeUnit & 0x00ff);\n}\n\n// Encodes a string as UTF-16 big-endian\nexport function encodeUTF16BE(input) {\n let output = '';\n\n for (let i = 0; i < input.length; i++) {\n const c = input.charCodeAt(i);\n\n if (c < 0xFFFF) {\n output += encodeUnit(c);\n } else {\n const lead = ((c - 0x10000) >> 10) + 0xD800;\n const trail = ((c - 0x10000) & 0x3FF) + 0xDC00;\n output += encodeUnit(lead);\n output += encodeUnit(trail);\n }\n }\n\n return output;\n}\n","import defined from './defined';\n\nexport default function eventCoordinates(e) {\n if (defined((e.x || {}).location)) {\n return {\n x: e.x.location,\n y: e.y.location\n };\n }\n\n return {\n x: e.pageX || e.clientX || 0,\n y: e.pageY || e.clientY || 0\n };\n}","export default function eventElement(e = {}) {\n return e.touch ? e.touch.initialTouch : e.target;\n}","import defined from './defined';\n\nexport default function isTransparent(color) {\n return color === \"\" || color === null || color === \"none\" || color === \"transparent\" || !defined(color);\n}","export default function last(array) {\n if (array) {\n return array[array.length - 1];\n }\n}","export default function limitValue(value, min, max) {\n return Math.max(Math.min(value, max), min);\n}","const now = Date.now || function() {\n return new Date().getTime();\n};\n\nexport default now;\n","import { DEG_TO_RAD } from './constants';\n\nexport default function rad(degrees) {\n return degrees * DEG_TO_RAD;\n}\n","function pow(p) {\n if (p) {\n return Math.pow(10, p);\n }\n\n return 1;\n}\n\nexport default function round(value, precision) {\n const power = pow(precision);\n return Math.round(value * power) / power;\n}","export default function unbindEvents(element, events = {}) {\n for (let name in events) {\n const eventNames = name.trim().split(\" \");\n for (let idx = 0; idx < eventNames.length; idx++) {\n element.removeEventListener(eventNames[idx], events[name], false);\n }\n }\n}","import defined from './defined';\n\nexport default function valueOrDefault(value, defaultValue) {\n return defined(value) ? value : defaultValue;\n}","export default function isString(value) {\n return typeof value === \"string\";\n}","//The error is represented by unique name and corresponding message\n//The message can contain placeholders with index, e.g. {0}, {1}\n\nexport default {\n \"NoLocale\": \"Missing locale info for '{0}'\",\n \"NoCurrency\": \"Cannot determine currency information. Please load the locale currencies data.\",\n \"NoSupplementalCurrency\": \"Cannot determine currency. Please load the supplemental currencyData.\",\n \"NoCurrencyRegion\": \"No currency data for region '{0}'\",\n \"NoCurrencyDisplay\": \"Cannot determine currency display information. Please load the locale currencies data. The default culture does not include the all currencies data.\",\n \"NoGMTInfo\": \"Cannot determine locale GMT format. Please load the locale timeZoneNames data.\",\n \"NoWeekData\": \"Cannot determine locale first day of week. Please load the supplemental weekData.\",\n \"NoFirstDay\": \"Cannot determine locale first day of week. Please load the supplemental weekData. The default culture includes only the 'en-US' first day info.\",\n \"NoValidCurrency\": \"Cannot determine a default currency for the {0} locale. Please specify explicitly the currency with the format options.\",\n \"NoDateFieldNames\": \"Cannot determine the locale date field names. Please load the locale dateFields data.\"\n};\n","import errorDetails from './error-details';\n\nconst formatRegExp = /\\{(\\d+)}?\\}/g;\n\nclass IntlError {\n constructor({ name, message }) {\n if (!name || !message) {\n throw new Error(\"{ name: string, message: string } object is required!\");\n }\n\n this.name = name;\n this.message = message;\n }\n\n formatMessage(...values) {\n const flattenValues = flatten(values);\n\n const formattedMessage = this.message.replace(formatRegExp, function(match, index) {\n return flattenValues[parseInt(index, 10)];\n });\n\n return `${this.name}: ${formattedMessage}`;\n }\n\n error(...values) {\n return new Error(this.formatMessage(values));\n }\n}\n\nconst flatten = function(arr) {\n return arr.reduce((a, b) => a.concat(b), []);\n};\n\nconst toIntlErrors = function(errors) {\n const predicate = function(prev, name) {\n prev[name] = new IntlError({ name, message: errors[name] });\n return prev;\n };\n\n return Object.keys(errors).reduce(predicate, {});\n};\n\nconst errors = toIntlErrors(errorDetails);\n\nexport {\n errors,\n IntlError,\n toIntlErrors\n};\n","import defaultData from './default-data';\nimport isString from '../common/is-string';\nimport { errors } from '../errors';\n\nfunction availableLocaleInfo(fullName, suffixes) {\n const parts = fullName.split(\"-\");\n const language = parts[0];\n const script = parts[1];\n const territory = parts[2];\n\n return cldr[fullName] || (suffixes.indexOf(territory) !== -1 && cldr[language + \"-\" + territory]) || (suffixes.indexOf(script) !== -1 && cldr[language + \"-\" + script]) || cldr[language];\n}\n\nfunction localeFullName(language, suffixes) {\n const likelySubtags = cldr.supplemental.likelySubtags;\n\n for (let idx = 0; idx < suffixes.length; idx++) {\n let name = likelySubtags[language + \"-\" + suffixes[idx ]];\n if (name) {\n return name;\n }\n }\n\n if (likelySubtags[language]) {\n return likelySubtags[language];\n }\n}\n\nexport const cldr = defaultData;\n\nexport function getLocaleInfo(locale) {\n let info;\n if (isString(locale)) {\n info = localeInfo(locale);\n } else {\n info = locale;\n }\n return info;\n}\n\nexport function localeInfo(locale) {\n if (cldr[locale]) {\n return cldr[locale];\n }\n\n const likelySubtags = cldr.supplemental.likelySubtags;\n if (likelySubtags) {\n const parts = locale.split(\"-\");\n const language = parts[0];\n const suffixes = parts.slice(1);\n const fullName = localeFullName(language, suffixes);\n const info = fullName ? availableLocaleInfo(fullName, suffixes) : null;\n if (info) {\n return info;\n }\n }\n\n throw errors.NoLocale.error(locale);\n}\n","const defaultData = {\n en: {\n name: \"en\",\n identity: {\n version: {\n _unicodeVersion: \"14.0.0\",\n _cldrVersion: \"41\"\n },\n language: \"en\"\n },\n territory: \"US\",\n numbers: {\n symbols: {\n decimal: \".\",\n group: \",\",\n list: \";\",\n percentSign: \"%\",\n plusSign: \"+\",\n minusSign: \"-\",\n exponential: \"E\",\n superscriptingExponent: \"×\",\n perMille: \"‰\",\n infinity: \"∞\",\n nan: \"NaN\",\n timeSeparator: \":\",\n approximatelySign: \"~\"\n },\n decimal: {\n patterns: [\n \"n\"\n ],\n groupSize: [\n 3\n ]\n },\n scientific: {\n patterns: [\n \"nEn\"\n ],\n groupSize: []\n },\n percent: {\n patterns: [\n \"n%\"\n ],\n groupSize: [\n 3\n ]\n },\n currency: {\n patterns: [\n \"$n\"\n ],\n groupSize: [\n 3\n ],\n \"unitPattern-count-one\": \"n $\",\n \"unitPattern-count-other\": \"n $\"\n },\n currencies: {\n BGN: {\n displayName: \"Bulgarian Lev\",\n \"displayName-count-one\": \"Bulgarian lev\",\n \"displayName-count-other\": \"Bulgarian leva\",\n symbol: \"BGN\"\n },\n EUR: {\n displayName: \"Euro\",\n \"displayName-count-one\": \"euro\",\n \"displayName-count-other\": \"euros\",\n symbol: \"€\",\n \"symbol-alt-narrow\": \"€\"\n },\n USD: {\n displayName: \"US Dollar\",\n \"displayName-count-one\": \"US dollar\",\n \"displayName-count-other\": \"US dollars\",\n symbol: \"$\",\n \"symbol-alt-narrow\": \"$\"\n }\n },\n localeCurrency: \"USD\",\n accounting: {\n patterns: [\n \"$n\",\n \"($n)\"\n ],\n groupSize: [\n 3\n ]\n }\n },\n calendar: {\n gmtFormat: \"GMT{0}\",\n gmtZeroFormat: \"GMT\",\n patterns: {\n d: \"M/d/y\",\n D: \"EEEE, MMMM d, y\",\n m: \"MMM d\",\n M: \"MMMM d\",\n y: \"MMM y\",\n Y: \"MMMM y\",\n F: \"EEEE, MMMM d, y h:mm:ss a\",\n g: \"M/d/y h:mm a\",\n G: \"M/d/y h:mm:ss a\",\n t: \"h:mm a\",\n T: \"h:mm:ss a\",\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n },\n dateTimeFormats: {\n full: \"{1} 'at' {0}\",\n long: \"{1} 'at' {0}\",\n medium: \"{1}, {0}\",\n short: \"{1}, {0}\",\n availableFormats: {\n Bh: \"h B\",\n Bhm: \"h:mm B\",\n Bhms: \"h:mm:ss B\",\n d: \"d\",\n E: \"ccc\",\n EBhm: \"E h:mm B\",\n EBhms: \"E h:mm:ss B\",\n Ed: \"d E\",\n Ehm: \"E h:mm a\",\n EHm: \"E HH:mm\",\n Ehms: \"E h:mm:ss a\",\n EHms: \"E HH:mm:ss\",\n Gy: \"y G\",\n GyMd: \"M/d/y GGGGG\",\n GyMMM: \"MMM y G\",\n GyMMMd: \"MMM d, y G\",\n GyMMMEd: \"E, MMM d, y G\",\n h: \"h a\",\n H: \"HH\",\n hm: \"h:mm a\",\n Hm: \"HH:mm\",\n hms: \"h:mm:ss a\",\n Hms: \"HH:mm:ss\",\n hmsv: \"h:mm:ss a v\",\n Hmsv: \"HH:mm:ss v\",\n hmv: \"h:mm a v\",\n Hmv: \"HH:mm v\",\n M: \"L\",\n Md: \"M/d\",\n MEd: \"E, M/d\",\n MMM: \"LLL\",\n MMMd: \"MMM d\",\n MMMEd: \"E, MMM d\",\n MMMMd: \"MMMM d\",\n \"MMMMW-count-one\": \"'week' W 'of' MMMM\",\n \"MMMMW-count-other\": \"'week' W 'of' MMMM\",\n ms: \"mm:ss\",\n y: \"y\",\n yM: \"M/y\",\n yMd: \"M/d/y\",\n yMEd: \"E, M/d/y\",\n yMMM: \"MMM y\",\n yMMMd: \"MMM d, y\",\n yMMMEd: \"E, MMM d, y\",\n yMMMM: \"MMMM y\",\n yQQQ: \"QQQ y\",\n yQQQQ: \"QQQQ y\",\n \"yw-count-one\": \"'week' w 'of' Y\",\n \"yw-count-other\": \"'week' w 'of' Y\"\n }\n },\n timeFormats: {\n full: \"h:mm:ss a zzzz\",\n long: \"h:mm:ss a z\",\n medium: \"h:mm:ss a\",\n short: \"h:mm a\"\n },\n dateFormats: {\n full: \"EEEE, MMMM d, y\",\n long: \"MMMM d, y\",\n medium: \"MMM d, y\",\n short: \"M/d/yy\"\n },\n days: {\n format: {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Sun\",\n \"Mon\",\n \"Tue\",\n \"Wed\",\n \"Thu\",\n \"Fri\",\n \"Sat\"\n ],\n narrow: [\n \"S\",\n \"M\",\n \"T\",\n \"W\",\n \"T\",\n \"F\",\n \"S\"\n ],\n short: [\n \"Su\",\n \"Mo\",\n \"Tu\",\n \"We\",\n \"Th\",\n \"Fr\",\n \"Sa\"\n ],\n wide: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\"\n ]\n }\n },\n months: {\n format: {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\"\n ],\n narrow: [\n \"J\",\n \"F\",\n \"M\",\n \"A\",\n \"M\",\n \"J\",\n \"J\",\n \"A\",\n \"S\",\n \"O\",\n \"N\",\n \"D\"\n ],\n wide: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\"\n ]\n }\n },\n quarters: {\n format: {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n },\n \"stand-alone\": {\n abbreviated: [\n \"Q1\",\n \"Q2\",\n \"Q3\",\n \"Q4\"\n ],\n narrow: [\n \"1\",\n \"2\",\n \"3\",\n \"4\"\n ],\n wide: [\n \"1st quarter\",\n \"2nd quarter\",\n \"3rd quarter\",\n \"4th quarter\"\n ]\n }\n },\n dayPeriods: {\n format: {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n narrow: {\n midnight: \"mi\",\n am: \"a\",\n \"am-alt-variant\": \"am\",\n noon: \"n\",\n pm: \"p\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"in the morning\",\n afternoon1: \"in the afternoon\",\n evening1: \"in the evening\",\n night1: \"at night\"\n }\n },\n \"stand-alone\": {\n abbreviated: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n narrow: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n },\n wide: {\n midnight: \"midnight\",\n am: \"AM\",\n \"am-alt-variant\": \"am\",\n noon: \"noon\",\n pm: \"PM\",\n \"pm-alt-variant\": \"pm\",\n morning1: \"morning\",\n afternoon1: \"afternoon\",\n evening1: \"evening\",\n night1: \"night\"\n }\n }\n },\n eras: {\n format: {\n wide: {\n \"0\": \"Before Christ\",\n \"1\": \"Anno Domini\",\n \"0-alt-variant\": \"Before Common Era\",\n \"1-alt-variant\": \"Common Era\"\n },\n abbreviated: {\n \"0\": \"BC\",\n \"1\": \"AD\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n },\n narrow: {\n \"0\": \"B\",\n \"1\": \"A\",\n \"0-alt-variant\": \"BCE\",\n \"1-alt-variant\": \"CE\"\n }\n }\n },\n dateFields: {\n era: {\n wide: \"era\",\n short: \"era\",\n narrow: \"era\"\n },\n year: {\n wide: \"year\",\n short: \"yr.\",\n narrow: \"yr.\"\n },\n quarter: {\n wide: \"quarter\",\n short: \"qtr.\",\n narrow: \"qtr.\"\n },\n month: {\n wide: \"month\",\n short: \"mo.\",\n narrow: \"mo.\"\n },\n week: {\n wide: \"week\",\n short: \"wk.\",\n narrow: \"wk.\"\n },\n weekOfMonth: {\n wide: \"week of month\",\n short: \"wk. of mo.\",\n narrow: \"wk. of mo.\"\n },\n day: {\n wide: \"day\",\n short: \"day\",\n narrow: \"day\"\n },\n dayOfYear: {\n wide: \"day of year\",\n short: \"day of yr.\",\n narrow: \"day of yr.\"\n },\n weekday: {\n wide: \"day of the week\",\n short: \"day of wk.\",\n narrow: \"day of wk.\"\n },\n weekdayOfMonth: {\n wide: \"weekday of the month\",\n short: \"wkday. of mo.\",\n narrow: \"wkday. of mo.\"\n },\n dayperiod: {\n short: \"AM/PM\",\n wide: \"AM/PM\",\n narrow: \"AM/PM\"\n },\n hour: {\n wide: \"hour\",\n short: \"hr.\",\n narrow: \"hr.\"\n },\n minute: {\n wide: \"minute\",\n short: \"min.\",\n narrow: \"min.\"\n },\n second: {\n wide: \"second\",\n short: \"sec.\",\n narrow: \"sec.\"\n },\n zone: {\n wide: \"time zone\",\n short: \"zone\",\n narrow: \"zone\"\n },\n millisecond: {\n narrow: \"ms\",\n short: \"ms\",\n wide: \"millisecond\"\n }\n }\n }\n },\n supplemental: {\n likelySubtags: {\n en: \"en-Latn-US\"\n },\n currencyData: {\n region: {\n US: [\n {\n USD: {\n _from: \"1792-01-01\"\n }\n }\n ]\n }\n },\n weekData: {\n firstDay: {\n US: \"sun\"\n },\n weekendStart: {\n \"001\": \"sat\"\n },\n weekendEnd: {\n \"001\": \"sun\"\n }\n }\n }\n};\nexport default defaultData;","export const DECIMAL = \"decimal\";\nexport const CURRENCY = \"currency\";\nexport const ACCOUNTING = \"accounting\";\nexport const PERCENT = \"percent\";\nexport const SCIENTIFIC = \"scientific\";\n\nexport const CURRENCY_PLACEHOLDER = \"$\";\nexport const PERCENT_PLACEHOLDER = \"%\";\nexport const NUMBER_PLACEHOLDER = \"n\";\n\nexport const LIST_SEPARATOR = \";\";\nexport const GROUP_SEPARATOR = \",\";\n\nexport const POINT = \".\";\nexport const EMPTY = \"\";\n\nexport const DEFAULT_LOCALE = \"en\";\n\n","import { cldr } from './info';\nimport { CURRENCY, ACCOUNTING, DECIMAL, CURRENCY_PLACEHOLDER, NUMBER_PLACEHOLDER, LIST_SEPARATOR, GROUP_SEPARATOR, POINT } from '../common/constants';\n\nconst LATIN_NUMBER_FORMATS = \"Formats-numberSystem-latn\";\nconst LATIN_NUMBER_SYMBOLS = \"symbols-numberSystem-latn\";\n\nconst patternRegExp = /([#,0.]+)/g;\nconst cldrCurrencyRegExp = /¤/g;\n\nfunction getPatterns(pattern) {\n patternRegExp.lastIndex = 0;\n\n return pattern.replace(cldrCurrencyRegExp, CURRENCY_PLACEHOLDER).replace(patternRegExp, NUMBER_PLACEHOLDER).split(LIST_SEPARATOR);\n}\n\nfunction getGroupSize(pattern) {\n patternRegExp.lastIndex = 0;\n\n const numberPatterns = patternRegExp.exec(pattern.split(LIST_SEPARATOR)[0])[0].split(POINT);\n const integer = numberPatterns[0];\n\n const groupSize = integer.split(GROUP_SEPARATOR).slice(1).map(function(group) {\n return group.length;\n }).reverse();\n\n return groupSize;\n}\n\nfunction loadCurrencyUnitPatterns(currencyInfo, currencyFormats) {\n for (let field in currencyFormats) {\n if (field.startsWith(\"unitPattern\")) {\n currencyInfo[field] = currencyFormats[field].replace(\"{0}\", NUMBER_PLACEHOLDER).replace(\"{1}\", CURRENCY_PLACEHOLDER);\n }\n }\n}\n\nexport default function loadNumbersInfo(locale, info) {\n const localeInfo = cldr[locale];\n const numbers = localeInfo.numbers = localeInfo.numbers || {};\n numbers.symbols = numbers.symbols || {};\n for (let field in info) {\n if (field === LATIN_NUMBER_SYMBOLS) {\n Object.assign(numbers.symbols, info[field]);\n } else if (field.includes(LATIN_NUMBER_FORMATS)) {\n const style = field.substr(0, field.indexOf(LATIN_NUMBER_FORMATS));\n const pattern = info[field].standard;\n numbers[style] = {\n patterns: getPatterns(pattern)\n };\n if (style === CURRENCY) {\n numbers[style].groupSize = getGroupSize((info[DECIMAL + LATIN_NUMBER_FORMATS] || info[field]).standard);\n loadCurrencyUnitPatterns(numbers[style], info[field]);\n numbers[ACCOUNTING] = {\n patterns: getPatterns(info[field][ACCOUNTING]),\n groupSize: numbers[style].groupSize\n };\n } else {\n numbers[style].groupSize = getGroupSize(pattern);\n }\n } else if (field === \"currencies\") {\n numbers.currencies = info[field];\n }\n }\n}","import { cldr } from './info';\n\nconst predefinedDatePatterns = {\n s: \"yyyy'-'MM'-'dd'T'HH':'mm':'ss\",\n u: \"yyyy'-'MM'-'dd HH':'mm':'ss'Z'\"\n};\n\nconst YEAR_REGEX = /y+/g;\nconst SHORT_DATE = [ [ \"dateFormats\", \"short\" ] ];\n\nconst datePatterns = {\n D: [ [ \"dateFormats\", \"full\" ] ],\n m: [ [ \"dateTimeFormats\", \"availableFormats\", \"MMMd\" ] ],\n M: [ [ \"dateTimeFormats\", \"availableFormats\", \"MMMMd\" ] ],\n y: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMMM\" ] ],\n Y: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMMMM\" ] ],\n F: [ [ \"dateFormats\", \"full\" ], [ \"timeFormats\", \"medium\" ] ],\n g: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMd\" ], [ \"timeFormats\", \"short\" ] ],\n G: [ [ \"dateTimeFormats\", \"availableFormats\", \"yMd\" ], [ \"timeFormats\", \"medium\" ] ],\n t: [ [ \"timeFormats\", \"short\" ] ],\n T: [ [ \"timeFormats\", \"medium\" ] ]\n};\n\nfunction toArray(obj) {\n let result = [];\n let names = Object.getOwnPropertyNames(obj);\n for (let idx = 0; idx < names.length; idx++) {\n let value = obj[names[idx]];\n result.push(value);\n }\n return result;\n}\n\nfunction getCalendarNames(info, isObj) {\n const result = {};\n for (let formatType in info) {\n let names = result[formatType] = {};\n for (let format in info[formatType]) {\n let formats = info[formatType][format];\n names[format] = isObj ? formats : toArray(formats);\n }\n }\n return result;\n}\n\nfunction getEraNames(eras) {\n const result = {};\n const format = result.format = {};\n const eraNameMap = {\n eraAbbr: \"abbreviated\",\n eraNames: \"wide\",\n eraNarrow: \"narrow\"\n };\n\n for (let eraFormatName in eras) {\n let formatName = eraNameMap[eraFormatName];\n format[formatName] = eras[eraFormatName];\n }\n\n return result;\n}\n\nfunction loadCalendarNames(locale, calendar) {\n const localeCalendar = cldr[locale].calendar;\n localeCalendar.days = getCalendarNames(calendar.days);\n localeCalendar.months = getCalendarNames(calendar.months);\n localeCalendar.quarters = getCalendarNames(calendar.quarters);\n localeCalendar.dayPeriods = getCalendarNames(calendar.dayPeriods, true);\n\n localeCalendar.eras = getEraNames(calendar.eras);\n}\n\nfunction loadCalendarDateFields(locale, fields) {\n const localeCalendar = cldr[locale].calendar;\n const dateFields = {};\n\n for (let field in fields) {\n const [ fieldName, formatType = 'wide' ] = field.split('-');\n const fieldInfo = dateFields[fieldName] || {};\n const displayName = fields[field].displayName;\n\n if (!displayName) { continue; }\n\n fieldInfo[formatType] = displayName;\n dateFields[fieldName] = fieldInfo;\n }\n\n localeCalendar.dateFields = dateFields;\n}\n\nfunction getPredefinedFormat(paths, calendar) {\n const result = [];\n\n for (let pathIdx = 0; pathIdx < paths.length; pathIdx++) {\n let fields = paths[ pathIdx ];\n let pattern = calendar;\n for (let idx = 0; idx < fields.length; idx++) {\n pattern = pattern[fields[idx]];\n }\n result.push(pattern);\n }\n\n return result.join(\" \");\n}\n\nfunction loadCalendarPatterns(locale, calendar) {\n const cldrCalendar = cldr[locale].calendar;\n const patterns = cldrCalendar.patterns = {};\n\n patterns.d = getPredefinedFormat(SHORT_DATE, calendar).replace(YEAR_REGEX, 'y');\n\n for (let pattern in datePatterns) {\n patterns[pattern] = getPredefinedFormat(datePatterns[pattern], calendar);\n }\n\n for (let pattern in predefinedDatePatterns) {\n patterns[pattern] = predefinedDatePatterns[pattern];\n }\n\n const dateTimeFormats = calendar.dateTimeFormats;\n cldrCalendar.dateTimeFormats = {\n full: dateTimeFormats.full,\n long: dateTimeFormats.long,\n medium: dateTimeFormats.medium,\n short: dateTimeFormats.short,\n availableFormats: dateTimeFormats.availableFormats\n };\n cldrCalendar.timeFormats = calendar.timeFormats;\n cldrCalendar.dateFormats = calendar.dateFormats;\n}\n\n\nexport default function loadCalendarInfo(locale, info) {\n const calendar = cldr[locale].calendar = cldr[locale].calendar || {};\n for (let field in info) {\n if (field === \"timeZoneNames\") {\n calendar.gmtFormat = info[field].gmtFormat;\n calendar.gmtZeroFormat = info[field].gmtZeroFormat;\n } else if (field === \"calendars\" && info[field].gregorian) {\n loadCalendarPatterns(locale, info[field].gregorian);\n loadCalendarNames(locale, info[field].gregorian);\n } else if (field === \"fields\") {\n loadCalendarDateFields(locale, info.fields);\n }\n }\n}\n","import { cldr } from './info';\n\nfunction territoryFromName(name, identity) {\n const likelySubtags = cldr.supplemental.likelySubtags;\n let parts = name.split(\"-\");\n if (likelySubtags) {\n const likelyName = likelySubtags[name] || likelySubtags[parts[0]];\n if (likelyName) {\n parts = likelyName.split(\"-\");\n }\n }\n\n if (identity) {\n for (let idx = parts.length - 1; idx >= 1; idx--) {\n const part = parts[idx];\n if (part === identity.variant || part === identity.script) {\n parts.splice(idx, 1);\n }\n }\n }\n\n const length = parts.length;\n\n if (length > 1) {\n const territory = parts[length - 1];\n return territory.toUpperCase();\n }\n}\n\nexport default function localeTerritory(info) {\n if (info.territory) {\n return info.territory;\n }\n\n const name = info.name;\n const identity = info.identity;\n let territory;\n\n if (identity && identity.territory) {\n territory = identity.territory;\n } else {\n territory = territoryFromName(name, identity);\n }\n\n info.territory = territory;\n\n return territory;\n}\n","const MILLISECOND = 'duration-millisecond';\nconst UNIT_PATTERN_ONE = 'unitPattern-count-one';\nconst UNIT_PATTERN_OTHER = 'unitPattern-count-other';\nconst placeholderPattern = /\\{0\\}\\s?/;\n\nfunction extractUnit(unit) {\n const value = unit[UNIT_PATTERN_ONE] || unit[UNIT_PATTERN_OTHER];\n return value.replace(placeholderPattern, '');\n}\n\nexport default function loadUnits(localeInfo, units) {\n localeInfo.calendar.dateFields.millisecond = {\n narrow: extractUnit(units.narrow[MILLISECOND]),\n short: extractUnit(units.short[MILLISECOND]),\n wide: extractUnit(units.long[MILLISECOND])\n };\n}\n","import { cldr } from './info';\nimport loadNumbersInfo from './load-numbers';\nimport loadCalendarInfo from './load-dates';\nimport localeTerritory from './territory';\nimport loadUnits from './load-units';\n\nfunction loadLocale(locale, info) {\n for (let field in info) {\n if (field === \"numbers\") {\n loadNumbersInfo(locale, info[field]);\n } else if (field === \"dates\") {\n loadCalendarInfo(locale, info[field]);\n }\n }\n}\n\nexport default function load() {\n const length = arguments.length;\n for (let idx = 0; idx < length; idx++) {\n let entry = arguments[idx];\n if (entry.main) {\n let locale = Object.keys(entry.main)[0];\n let info = entry.main[locale];\n let localeInfo = cldr[locale] = cldr[locale] || {};\n\n if (info.units) {\n loadUnits(localeInfo, info.units);\n } else {\n localeInfo.name = localeInfo.name || locale;\n localeInfo.identity = localeInfo.identity || info.identity;\n\n localeTerritory(localeInfo);\n loadLocale(locale, info);\n }\n } else if (entry.supplemental) {\n if (entry.supplemental.weekData) {\n cldr.supplemental.weekData = {\n firstDay: entry.supplemental.weekData.firstDay,\n weekendStart: entry.supplemental.weekData.weekendStart,\n weekendEnd: entry.supplemental.weekData.weekendEnd\n };\n } else if (entry.supplemental.likelySubtags) {\n cldr.supplemental.likelySubtags = Object.assign(cldr.supplemental.likelySubtags, entry.supplemental.likelySubtags);\n } else if (entry.supplemental.currencyData) {\n const currencyData = cldr.supplemental.currencyData;\n currencyData.region = Object.assign(currencyData.region || {}, entry.supplemental.currencyData.region);\n currencyData.fractions = Object.assign(currencyData.fractions || {}, entry.supplemental.currencyData.fractions);\n }\n }\n }\n}\n","import { localeInfo } from './info';\nimport { errors } from '../errors';\nimport { DEFAULT_LOCALE } from '../common/constants';\n\nexport default function dateFieldName(options, locale = DEFAULT_LOCALE) {\n const info = localeInfo(locale);\n const dateFields = info.calendar.dateFields;\n if (!dateFields) {\n throw errors.NoDateFieldNames.error();\n }\n\n const fieldNameInfo = dateFields[options.type] || {};\n\n return fieldNameInfo[options.nameType] || fieldNameInfo['wide'];\n}\n","import { getLocaleInfo } from './info';\nimport { EMPTY } from '../common/constants';\n\nfunction lowerArray(arr) {\n const result = [];\n for (let idx = 0; idx < arr.length; idx++) {\n result.push(arr[idx].toLowerCase());\n }\n return result;\n}\n\nfunction lowerObject(obj) {\n const result = {};\n for (let field in obj) {\n result[field] = obj[field].toLowerCase();\n }\n return result;\n}\n\nfunction cloneLower(obj) {\n let result = Array.isArray(obj) ? lowerArray(obj) : lowerObject(obj);\n return result;\n}\n\nexport default function dateFormatNames(locale, options) {\n const { type, nameType, standAlone, lower } = options;\n const info = getLocaleInfo(locale);\n const formatType = standAlone ? \"stand-alone\" : \"format\";\n const lowerNameType = (lower ? \"lower-\" : EMPTY) + nameType;\n const formatNames = info.calendar[type][formatType];\n let result = formatNames[lowerNameType];\n if (!result && lower) {\n result = formatNames[lowerNameType] = cloneLower(formatNames[nameType]);\n }\n return result;\n}","export default function parseRangeDate(value) {\n const parts = value.split('-');\n const year = parseInt(parts[0], 10);\n const month = parseInt(parts[1], 10) - 1;\n const day = parseInt(parts[2], 10);\n\n return new Date(year, month, day);\n}\n","import { cldr, getLocaleInfo } from './info';\nimport { errors } from '../errors';\nimport localeTerritory from './territory';\nimport parseRangeDate from './parse-range-date';\n\n/* eslint-disable consistent-return */\n\nconst {\n NoCurrency,\n NoCurrencyDisplay,\n NoSupplementalCurrency,\n NoCurrencyRegion,\n NoValidCurrency\n} = errors;\n\nconst DEFAULT_CURRENCY_FRACTIONS = 2;\nconst SYMBOL = \"symbol\";\nconst INVALID_CURRENCY_CODE = 'XXX';\n\nconst GLOBAL_CURRENCIES = {\n '001': 'USD', // 001 refers to world. not sure if it is correct to assume USD but seems better than throw an error\n '150': 'EUR' // 150 territory for Europe\n\n};\n\nfunction getCurrencyInfo(locale, currency, throwIfNoValid) {\n const info = getLocaleInfo(locale);\n const currencies = info.numbers.currencies;\n if (!currencies) {\n if (throwIfNoValid) {\n throw NoCurrency.error();\n }\n\n return;\n }\n\n const currencyDisplayInfo = currencies[currency];\n\n if (!currencyDisplayInfo) {\n if (throwIfNoValid) {\n throw NoCurrencyDisplay.error();\n }\n\n return;\n }\n\n return currencyDisplayInfo;\n}\n\nfunction lengthComparer(a, b) {\n return b.length - a.length;\n}\n\nfunction regionCurrency(regionCurrencies) {\n let latestValidUntil, latestValidUntilRange;\n let latestStillValid, latestStillValidDate;\n\n for (let idx = 0; idx < regionCurrencies.length; idx++) {\n const currency = regionCurrencies[idx];\n const code = Object.keys(currency)[0];\n const info = currency[code];\n if (code !== INVALID_CURRENCY_CODE && info._tender !== 'false' && info._from) {\n if (!info._to) {\n const stillValidDate = parseRangeDate(info._from);\n if (!latestStillValidDate || latestStillValidDate < stillValidDate) {\n latestStillValid = code;\n latestStillValidDate = stillValidDate;\n }\n } else if (!latestStillValid) {\n const validFrom = parseRangeDate(info._from);\n const validTo = parseRangeDate(info._to);\n if (!latestValidUntilRange || latestValidUntilRange.to < validTo || latestValidUntilRange.from < validFrom) {\n latestValidUntil = code;\n latestValidUntilRange = {\n from: validFrom,\n to: validTo\n };\n }\n }\n }\n }\n\n return latestStillValid || latestValidUntil;\n}\n\nexport function currencyDisplays(locale, currency, throwIfNoValid = true) {\n const currencyInfo = getCurrencyInfo(locale, currency, throwIfNoValid);\n if (!currencyInfo) {\n return;\n }\n\n if (!currencyInfo.displays) {\n const displays = [ currency ];\n for (let field in currencyInfo) {\n displays.push(currencyInfo[field]);\n }\n displays.sort(lengthComparer);\n currencyInfo.displays = displays;\n }\n\n return currencyInfo.displays;\n}\n\nexport function currencyDisplay(locale, options) {\n const { value, currency, currencyDisplay = SYMBOL } = options;\n\n if (currencyDisplay === \"code\") {\n return currency;\n }\n\n const currencyInfo = getCurrencyInfo(locale, currency, true);\n let result;\n\n if (currencyDisplay === SYMBOL) {\n result = currencyInfo[\"symbol-alt-narrow\"] || currencyInfo[SYMBOL] || currency;\n } else {\n if (typeof value === \"undefined\" || value !== 1) {\n result = currencyInfo[\"displayName-count-other\"];\n } else {\n result = currencyInfo[\"displayName-count-one\"];\n }\n }\n\n return result;\n}\n\nexport function currencyFractionOptions(code) {\n let minimumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n let maximumFractionDigits = DEFAULT_CURRENCY_FRACTIONS;\n\n const fractions = ((cldr.supplemental.currencyData || {}).fractions || {})[code];\n\n if (fractions && fractions._digits) {\n maximumFractionDigits = minimumFractionDigits = parseInt(fractions._digits, 10);\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nexport function territoryCurrencyCode(territory, throwIfNoValid = true) {\n if (GLOBAL_CURRENCIES[territory]) {\n return GLOBAL_CURRENCIES[territory];\n }\n\n const currencyData = cldr.supplemental.currencyData;\n if (!currencyData) {\n if (throwIfNoValid) {\n throw NoSupplementalCurrency.error();\n }\n\n return;\n }\n\n const regionCurrencies = currencyData.region[territory];\n\n if (!regionCurrencies) {\n if (throwIfNoValid) {\n throw NoCurrencyRegion.error(territory);\n }\n\n return;\n }\n\n const currencyCode = regionCurrency(regionCurrencies);\n\n return currencyCode;\n}\n\nexport function localeCurrency(locale, throwIfNoValid) {\n const info = getLocaleInfo(locale);\n const numbers = info.numbers;\n\n if (!numbers.localeCurrency) {\n const currency = territoryCurrencyCode(localeTerritory(info), throwIfNoValid);\n\n if (!currency && throwIfNoValid) {\n throw NoValidCurrency.error(info.name);\n }\n\n numbers.localeCurrency = currency;\n }\n\n return numbers.localeCurrency;\n}\n","\nexport const DAYS_OF_WEEK = [ \"sun\", \"mon\", \"tue\", \"wed\", \"thu\", \"fri\", \"sat\" ];\n\nexport const DEFAULT_TERRITORY = '001';\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nconst { NoWeekData, NoFirstDay } = errors;\n\nexport default function firstDay(locale) {\n const info = getLocaleInfo(locale);\n\n if (!isNaN(info.firstDay)) {\n return info.firstDay;\n }\n\n const weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n const firstDay = weekData.firstDay[localeTerritory(info)] || weekData.firstDay[DEFAULT_TERRITORY];\n\n if (!firstDay) {\n throw NoFirstDay.error();\n }\n\n info.firstDay = DAYS_OF_WEEK.indexOf(firstDay);\n\n return info.firstDay;\n}\n","import { cldr, getLocaleInfo } from './info';\nimport localeTerritory from './territory';\n\nimport { DAYS_OF_WEEK, DEFAULT_TERRITORY } from './constants';\nimport { errors } from '../errors';\n\nconst { NoWeekData } = errors;\n\nexport default function weekendRange(locale) {\n const info = getLocaleInfo(locale);\n\n if (info.weekendRange) {\n return info.weekendRange;\n }\n\n const weekData = cldr.supplemental.weekData;\n if (!weekData) {\n throw NoWeekData.error();\n }\n\n const territory = localeTerritory(info);\n const start = weekData.weekendStart[territory] || weekData.weekendStart[DEFAULT_TERRITORY];\n const end = weekData.weekendEnd[territory] || weekData.weekendEnd[DEFAULT_TERRITORY];\n\n info.weekendRange = {\n start: DAYS_OF_WEEK.indexOf(start),\n end: DAYS_OF_WEEK.indexOf(end)\n };\n\n return info.weekendRange;\n}\n","import { getLocaleInfo } from './info';\n\nexport default function numberSymbols(locale) {\n const info = getLocaleInfo(locale);\n\n return info.numbers.symbols;\n}","export default function isNegativeZero(value) {\n return (1 / value === -Infinity);\n}\n","import { currencyDisplay, localeCurrency } from '../cldr';\n\nexport default function formatCurrencySymbol(info, options = {}) {\n if (!options.currency) {\n options.currency = localeCurrency(info, true);\n }\n\n const display = currencyDisplay(info, options);\n\n return display;\n}\n","export default function groupInteger(number, start, end, options, info) {\n const symbols = info.numbers.symbols;\n const decimalIndex = number.indexOf(symbols.decimal);\n const groupSizes = options.groupSize.slice();\n let groupSize = groupSizes.shift();\n\n let integerEnd = decimalIndex !== -1 ? decimalIndex : end + 1;\n\n let integer = number.substring(start, integerEnd);\n let result = number;\n const integerLength = integer.length;\n\n if (integerLength >= groupSize) {\n let idx = integerLength;\n let parts = [];\n\n while (idx > -1) {\n let value = integer.substring(idx - groupSize, idx);\n if (value) {\n parts.push(value);\n }\n idx -= groupSize;\n let newGroupSize = groupSizes.shift();\n groupSize = newGroupSize !== undefined ? newGroupSize : groupSize;\n\n if (groupSize === 0) {\n value = integer.substring(0, idx);\n if (value) {\n parts.push(value);\n }\n break;\n }\n }\n\n integer = parts.reverse().join(symbols.group);\n result = number.substring(0, start) + integer + number.substring(integerEnd);\n }\n\n return result;\n}","import { CURRENCY, ACCOUNTING } from '../common/constants';\n\nexport default function isCurrencyStyle(style) {\n return style === CURRENCY || style === ACCOUNTING;\n}","export default function pad(number, digits = 2, right = false) {\n const count = digits - String(number).length;\n let result = number;\n\n if (count > 0) {\n const padString = new Array(count + 1).join(\"0\");\n result = right ? number + padString : padString + number;\n }\n\n return result;\n}","const MAX_PRECISION = 20;\n\nexport default function round(value, precision) {\n let result = value;\n let decimals = precision || 0;\n\n result = result.toString().split('e');\n result = Math.round(Number(result[0] + 'e' + (result[1] ? (Number(result[1]) + decimals) : decimals)));\n\n result = result.toString().split('e');\n result = Number(result[0] + 'e' + (result[1] ? (Number(result[1]) - decimals) : -decimals));\n\n return result.toFixed(Math.min(decimals, MAX_PRECISION));\n}","import { PERCENT, SCIENTIFIC, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, EMPTY, POINT } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport formatCurrencySymbol from './format-currency-symbol';\nimport groupInteger from './group-integer';\nimport isCurrencyStyle from './is-currency-style';\nimport pad from '../common/pad';\nimport round from '../common/round';\nimport { currencyFractionOptions } from '../cldr';\n\nconst DEFAULT_DECIMAL_ROUNDING = 3;\nconst DEFAULT_PERCENT_ROUNDING = 0;\n\nconst trailingZeroRegex = /0+$/;\n\nfunction fractionOptions(options) {\n let { minimumFractionDigits, maximumFractionDigits, style } = options;\n const isCurrency = isCurrencyStyle(style);\n let currencyFractions;\n if (isCurrency) {\n currencyFractions = currencyFractionOptions(options.currency);\n }\n\n if (minimumFractionDigits === undefined) {\n minimumFractionDigits = isCurrency ? currencyFractions.minimumFractionDigits : 0;\n }\n\n if (maximumFractionDigits === undefined) {\n if (style === PERCENT) {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_PERCENT_ROUNDING);\n } else if (isCurrency) {\n maximumFractionDigits = Math.max(minimumFractionDigits, currencyFractions.maximumFractionDigits);\n } else {\n maximumFractionDigits = Math.max(minimumFractionDigits, DEFAULT_DECIMAL_ROUNDING);\n }\n }\n\n return {\n minimumFractionDigits: minimumFractionDigits,\n maximumFractionDigits: maximumFractionDigits\n };\n}\n\nfunction applyPattern(value, pattern, symbol) {\n let result = EMPTY;\n for (let idx = 0, length = pattern.length; idx < length; idx++) {\n let ch = pattern.charAt(idx);\n\n if (ch === NUMBER_PLACEHOLDER) {\n result += value;\n } else if (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) {\n result += symbol;\n } else {\n result += ch;\n }\n }\n return result;\n}\n\nfunction currencyUnitPattern(info, value) {\n const currencyInfo = info.numbers.currency;\n let pattern = value !== 1 ? currencyInfo[\"unitPattern-count-other\"] : currencyInfo[\"unitPattern-count-one\"];\n if (value < 0) {\n pattern = pattern.replace(NUMBER_PLACEHOLDER, `-${ NUMBER_PLACEHOLDER }`);\n }\n\n return pattern;\n}\n\n\nexport default function standardNumberFormat(number, options, info) {\n const symbols = info.numbers.symbols;\n const { style } = options;\n const isCurrency = isCurrencyStyle(style);\n\n //return number in exponential format\n if (style === SCIENTIFIC) {\n let exponential = options.minimumFractionDigits !== undefined ? number.toExponential(options.minimumFractionDigits) : number.toExponential();\n return exponential.replace(POINT, symbols.decimal);\n }\n\n let value = number;\n let symbol;\n\n if (isCurrency) {\n options.value = value;\n symbol = formatCurrencySymbol(info, options);\n }\n\n if (style === PERCENT) {\n value *= 100;\n symbol = symbols.percentSign;\n }\n\n const { minimumFractionDigits, maximumFractionDigits } = fractionOptions(options);\n\n value = round(value, maximumFractionDigits);\n\n const negative = value < 0;\n const negativeZero = isNegativeZero(number);\n\n const parts = value.split(POINT);\n\n let integer = parts[0];\n let fraction = pad(parts[1] ? parts[1].replace(trailingZeroRegex, EMPTY) : EMPTY, minimumFractionDigits, true);\n\n //exclude \"-\" if number is negative.\n if (negative) {\n integer = integer.substring(1);\n }\n\n if (options.minimumIntegerDigits) {\n integer = pad(integer, options.minimumIntegerDigits);\n }\n\n let formattedValue = options.useGrouping !== false ? groupInteger(integer, 0, integer.length, options, info) : integer;\n\n if (fraction) {\n formattedValue += symbols.decimal + fraction;\n }\n\n let pattern;\n\n if (isCurrency && options.currencyDisplay === \"name\") {\n pattern = currencyUnitPattern(info, number);\n } else {\n const patterns = options.patterns;\n pattern = (negative || negativeZero) ? patterns[1] || (\"-\" + patterns[0]) : patterns[0];\n }\n\n if (pattern === NUMBER_PLACEHOLDER && !negative) {\n return formattedValue;\n }\n\n const result = applyPattern(formattedValue, pattern, symbol);\n\n return result;\n}","import { PERCENT_PLACEHOLDER, CURRENCY_PLACEHOLDER, CURRENCY, PERCENT, EMPTY } from '../common/constants';\nimport formatCurrencySymbol from './format-currency-symbol';\n\nconst literalRegExp = /(\\\\.)|(['][^']*[']?)|([\"][^\"]*[\"]?)/g;\nconst PLACEHOLDER = \"__??__\";\n\nexport function setStyleOptions(formatOptions, info) {\n const format = formatOptions.format;\n\n //multiply number if the format has percent\n if (format.indexOf(PERCENT_PLACEHOLDER) !== -1) {\n formatOptions.style = PERCENT;\n formatOptions.symbol = info.numbers.symbols.percentSign;\n formatOptions.number *= 100;\n }\n\n if (format.indexOf(CURRENCY_PLACEHOLDER) !== -1) {\n formatOptions.style = CURRENCY;\n formatOptions.symbol = formatCurrencySymbol(info);\n }\n}\n\nexport function setFormatLiterals(formatOptions) {\n let format = formatOptions.format;\n if (format.indexOf(\"'\") > -1 || format.indexOf(\"\\\"\") > -1 || format.indexOf(\"\\\\\") > -1) {\n const literals = formatOptions.literals = [];\n formatOptions.format = format.replace(literalRegExp, function(match) {\n const quoteChar = match.charAt(0).replace(\"\\\\\", EMPTY);\n const literal = match.slice(1).replace(quoteChar, EMPTY);\n\n literals.push(literal);\n\n return PLACEHOLDER;\n });\n }\n}\n\nexport function replaceLiterals(number, literals) {\n let result = number;\n if (literals) {\n const length = literals.length;\n for (let idx = 0; idx < length; idx++) {\n result = result.replace(PLACEHOLDER, literals[idx]);\n }\n }\n return result;\n}","import { CURRENCY, PERCENT, LIST_SEPARATOR, GROUP_SEPARATOR, CURRENCY_PLACEHOLDER, PERCENT_PLACEHOLDER, POINT, EMPTY } from '../common/constants';\nimport isNegativeZero from '../common/is-negative-zero';\nimport groupInteger from './group-integer';\nimport round from '../common/round';\nimport { setStyleOptions, setFormatLiterals, replaceLiterals } from './utils';\n\nconst SHARP = \"#\";\nconst ZERO = \"0\";\n\nconst trailingZerosRegExp = /(\\.(?:[0-9]*[1-9])?)0+$/g;\nconst trailingPointRegExp = /\\.$/;\nconst commaRegExp = /,/g;\n\nfunction trimTrailingZeros(value, lastZero) {\n let trimRegex;\n\n if (lastZero === 0) {\n trimRegex = trailingZerosRegExp;\n } else {\n trimRegex = new RegExp(`(\\\\.[0-9]{${ lastZero }}[1-9]*)0+$`, 'g');\n }\n\n return value.replace(trimRegex, '$1').replace(trailingPointRegExp, EMPTY);\n}\n\nfunction roundNumber(formatOptions) {\n let { number, format } = formatOptions;\n let decimalIndex = format.indexOf(POINT);\n\n if (decimalIndex !== -1) {\n const zeroIndex = format.lastIndexOf(ZERO) - decimalIndex;\n const sharpIndex = format.lastIndexOf(SHARP) - decimalIndex;\n const hasZero = zeroIndex > -1;\n const hasSharp = sharpIndex > -1;\n let fraction = number.toString().split(\"e\");\n\n if (fraction[1]) {\n fraction = round(number, Math.abs(fraction[1]));\n } else {\n fraction = fraction[0];\n }\n fraction = fraction.split(POINT)[1] || EMPTY;\n\n let precision = fraction.length;\n let trailingZeros = -1;\n\n if (!hasZero && !hasSharp) {\n formatOptions.format = format.substring(0, decimalIndex) + format.substring(decimalIndex + 1);\n decimalIndex = -1;\n precision = 0;\n } else if (hasZero && zeroIndex > sharpIndex) {\n precision = zeroIndex;\n } else if (sharpIndex > zeroIndex) {\n if (hasSharp && precision > sharpIndex) {\n precision = sharpIndex;\n } else if (hasZero && precision < zeroIndex) {\n precision = zeroIndex;\n }\n\n trailingZeros = hasZero ? zeroIndex : 0;\n }\n\n if (precision > -1) {\n number = round(number, precision);\n if (trailingZeros > -1) {\n number = trimTrailingZeros(number, trailingZeros);\n }\n }\n } else {\n number = round(number);\n }\n\n if (formatOptions.negative && (number * -1) >= 0 && !formatOptions.negativeZero) {\n formatOptions.negative = false;\n }\n\n formatOptions.number = number;\n formatOptions.decimalIndex = decimalIndex;\n}\n\nfunction isConstantFormat(format) {\n return format.indexOf(SHARP) === -1 && format.indexOf(ZERO) === -1;\n}\n\nfunction setValueSpecificFormat(formatOptions) {\n let { number, format } = formatOptions;\n format = format.split(LIST_SEPARATOR);\n if ((formatOptions.negative || formatOptions.negativeZero) && format[1]) {\n format = format[1];\n formatOptions.hasNegativeFormat = true;\n } else if (number === 0) {\n const zeroFormat = format[2];\n format = zeroFormat || format[0];\n if (zeroFormat && isConstantFormat(zeroFormat)) {\n formatOptions.constant = zeroFormat;\n }\n } else {\n format = format[0];\n }\n\n formatOptions.format = format;\n}\n\nfunction setGroupOptions(formatOptions) {\n formatOptions.hasGroup = formatOptions.format.indexOf(GROUP_SEPARATOR) > -1;\n if (formatOptions.hasGroup) {\n formatOptions.format = formatOptions.format.replace(commaRegExp, EMPTY);\n }\n}\n\nfunction placeholderIndex(index1, index2, start) {\n let index;\n if (index1 === -1 && index2 !== -1) {\n index = index2;\n } else if (index1 !== -1 && index2 === -1) {\n index = index1;\n } else {\n index = start ? Math.min(index1, index2) : Math.max(index1, index2);\n }\n return index;\n}\n\nfunction setPlaceholderIndices(formatOptions) {\n const format = formatOptions.format;\n let sharpIndex = format.indexOf(SHARP);\n let zeroIndex = format.indexOf(ZERO);\n\n let start = placeholderIndex(sharpIndex, zeroIndex, true);\n\n sharpIndex = format.lastIndexOf(SHARP);\n zeroIndex = format.lastIndexOf(ZERO);\n\n let end = placeholderIndex(sharpIndex, zeroIndex);\n\n if (start === format.length) {\n end = start;\n }\n\n formatOptions.start = start;\n formatOptions.end = end;\n formatOptions.lastZeroIndex = zeroIndex;\n}\n\nfunction replaceStyleSymbols(number, style, symbol) {\n let result = number;\n if (style === CURRENCY || style === PERCENT) {\n result = EMPTY;\n for (let idx = 0, length = number.length; idx < length; idx++) {\n let ch = number.charAt(idx);\n result += (ch === CURRENCY_PLACEHOLDER || ch === PERCENT_PLACEHOLDER) ? symbol : ch;\n }\n }\n return result;\n}\n\nfunction replacePlaceHolders(formatOptions, info) {\n const { start, end, negative, negativeZero, format, decimalIndex, lastZeroIndex, hasNegativeFormat, hasGroup } = formatOptions;\n let number = formatOptions.number;\n const value = number.toString().split(POINT);\n const length = format.length;\n const integer = value[0];\n const fraction = value[1] || EMPTY;\n const integerLength = integer.length;\n let replacement = EMPTY;\n\n number = format.substring(0, start);\n\n if ((negative || negativeZero) && !hasNegativeFormat) {\n number += \"-\";\n }\n\n for (let idx = start; idx < length; idx++) {\n let ch = format.charAt(idx);\n\n if (decimalIndex === -1) {\n if (end - idx < integerLength) {\n\n number += integer;\n break;\n }\n } else {\n if (lastZeroIndex !== -1 && lastZeroIndex < idx) {\n replacement = EMPTY;\n }\n\n if ((decimalIndex - idx) <= integerLength && decimalIndex - idx > -1) {\n number += integer;\n idx = decimalIndex;\n }\n\n if (decimalIndex === idx) {\n number += (fraction ? info.numbers.symbols.decimal : EMPTY) + fraction;\n idx += end - decimalIndex + 1;\n continue;\n }\n }\n\n if (ch === ZERO) {\n number += ch;\n replacement = ch;\n } else if (ch === SHARP) {\n number += replacement;\n }\n }\n\n if (hasGroup) {\n number = groupInteger(number, start + (negative && !hasNegativeFormat ? 1 : 0), Math.max(end, (integerLength + start)), info.numbers.decimal, info);\n }\n\n if (end >= start) {\n number += format.substring(end + 1);\n }\n\n return number;\n}\n\nfunction applyCustomFormat(formatOptions, info) {\n let number = formatOptions.number;\n if (formatOptions.start !== -1) {\n number = replacePlaceHolders(formatOptions, info);\n number = replaceStyleSymbols(number, formatOptions.style, formatOptions.symbol);\n number = replaceLiterals(number, formatOptions.literals);\n }\n\n return number;\n}\n\nexport default function customNumberFormat(number, format, info) {\n const formatOptions = {\n negative: number < 0,\n number: Math.abs(number),\n negativeZero: isNegativeZero(number),\n format: format\n };\n\n setValueSpecificFormat(formatOptions);\n\n if (formatOptions.constant) {\n return formatOptions.constant;\n }\n\n setFormatLiterals(formatOptions);\n setStyleOptions(formatOptions, info);\n setGroupOptions(formatOptions);\n roundNumber(formatOptions);\n setPlaceholderIndices(formatOptions);\n\n return applyCustomFormat(formatOptions, info);\n}","import { CURRENCY, ACCOUNTING, DECIMAL, PERCENT, SCIENTIFIC } from '../common/constants';\nimport isString from '../common/is-string';\n\nconst standardFormatRegExp = /^(n|c|p|e|a)(\\d*)$/i;\n\nfunction standardFormatOptions(format) {\n const formatAndPrecision = standardFormatRegExp.exec(format);\n\n if (formatAndPrecision) {\n const options = {\n style: DECIMAL\n };\n\n let style = formatAndPrecision[1].toLowerCase();\n\n if (style === \"c\") {\n options.style = CURRENCY;\n } else if (style === \"a\") {\n options.style = ACCOUNTING;\n } else if (style === \"p\") {\n options.style = PERCENT;\n } else if (style === \"e\") {\n options.style = SCIENTIFIC;\n }\n\n if (formatAndPrecision[2]) {\n options.minimumFractionDigits = options.maximumFractionDigits = parseInt(formatAndPrecision[2], 10);\n }\n\n return options;\n }\n}\n\nexport default function formatOptions(format) {\n let options;\n if (isString(format)) {\n options = standardFormatOptions(format);\n } else {\n options = format;\n }\n\n return options;\n}","import { localeInfo } from '../cldr';\nimport { DECIMAL, DEFAULT_LOCALE, NUMBER_PLACEHOLDER, EMPTY } from '../common/constants';\nimport standardNumberFormat from './standard-number-format';\nimport customNumberFormat from './custom-number-format';\nimport formatOptions from './format-options';\n\nexport default function formatNumber(number, format = NUMBER_PLACEHOLDER, locale = DEFAULT_LOCALE) {\n if (number === undefined || number === null) {\n return EMPTY;\n }\n\n if (!isFinite(number)) {\n return String(number);\n }\n\n const info = localeInfo(locale);\n const options = formatOptions(format);\n\n let result;\n if (options) {\n const style = options.style || DECIMAL;\n result = standardNumberFormat(number, Object.assign({}, info.numbers[style], options), info);\n } else {\n result = customNumberFormat(number, format, info);\n }\n\n return result;\n}\n","export default function isNumber(value) {\n return typeof value === \"number\";\n}","import { localeInfo, localeCurrency, currencyDisplays } from '../cldr';\nimport { PERCENT, NUMBER_PLACEHOLDER, CURRENCY_PLACEHOLDER, DEFAULT_LOCALE, EMPTY, POINT } from '../common/constants';\nimport { setStyleOptions, setFormatLiterals } from './utils';\nimport isNumber from '../common/is-number';\nimport isCurrencyStyle from './is-currency-style';\nimport formatOptions from './format-options';\nimport isString from '../common/is-string';\n\nconst exponentRegExp = /[eE][-+]?[0-9]+/;\nconst nonBreakingSpaceRegExp = /\\u00A0/g;\n\nfunction cleanNegativePattern(number, patterns) {\n if (patterns.length > 1) {\n const parts = (patterns[1] || EMPTY).replace(CURRENCY_PLACEHOLDER, EMPTY).split(NUMBER_PLACEHOLDER);\n if (number.indexOf(parts[0]) > -1 && number.indexOf(parts[1]) > -1) {\n return number.replace(parts[0], EMPTY).replace(parts[1], EMPTY);\n }\n }\n}\n\nfunction cleanCurrencyNumber(value, info, format) {\n const options = formatOptions(format) || {};\n let isCurrency = isCurrencyStyle(options.style);\n let number = value;\n let negative;\n\n const currency = options.currency || localeCurrency(info, isCurrency);\n\n if (currency) {\n const displays = currencyDisplays(info, currency, isCurrency);\n if (displays) {\n for (let idx = 0; idx < displays.length; idx++) {\n let display = displays[idx];\n if (number.includes(display)) {\n number = number.replace(display, EMPTY);\n isCurrency = true;\n break;\n }\n }\n }\n\n if (isCurrency) {\n const cleanNumber = cleanNegativePattern(number, info.numbers.currency.patterns) ||\n cleanNegativePattern(number, info.numbers.accounting.patterns);\n\n if (cleanNumber) {\n negative = true;\n number = cleanNumber;\n }\n\n }\n }\n\n return {\n number: number,\n negative: negative\n };\n}\n\nfunction cleanLiterals(number, formatOptions) {\n const literals = formatOptions.literals;\n let result = number;\n\n if (literals) {\n for (let idx = 0; idx < literals.length; idx++) {\n result = result.replace(literals[idx], EMPTY);\n }\n }\n\n return result;\n}\n\nfunction divideBy100(number) {\n const strNumber = String(number);\n const pointIndex = strNumber.indexOf(POINT);\n const zeroesCount = 2;\n let result = number / Math.pow(10, zeroesCount);\n\n if (pointIndex === -1 || String(result).length <= strNumber.length + zeroesCount) {\n return result;\n }\n\n const fractionDigits = strNumber.length - pointIndex + 1 + zeroesCount;\n return parseFloat(result.toFixed(fractionDigits));\n}\n\nexport default function parseNumber(value, locale = DEFAULT_LOCALE, format = {}) {\n if (!value && value !== 0) {\n return null;\n }\n\n if (isNumber(value)) {\n return value;\n }\n\n const info = localeInfo(locale);\n const symbols = info.numbers.symbols;\n\n let number = value.toString();\n let formatOptions = format || {};\n let isPercent;\n\n if (isString(format)) {\n formatOptions = { format: format };\n setFormatLiterals(formatOptions);\n number = cleanLiterals(number, formatOptions);\n\n setStyleOptions(formatOptions, info);\n }\n\n if (formatOptions.style === PERCENT || number.indexOf(symbols.percentSign) > -1) {\n number = number.replace(symbols.percentSign, EMPTY);\n isPercent = true;\n }\n\n if (exponentRegExp.test(number)) {\n number = parseFloat(number.replace(symbols.decimal, POINT));\n return isNaN(number) ? null : number;\n }\n\n const { negative: negativeCurrency, number: currencyNumber } = cleanCurrencyNumber(number, info, formatOptions);\n number = String(currencyNumber).trim();\n\n const negativeSignIndex = number.indexOf(\"-\");\n if (negativeSignIndex > 0) {\n return null;\n }\n\n let isNegative = negativeSignIndex > -1;\n\n isNegative = negativeCurrency !== undefined ? negativeCurrency : isNegative;\n\n number = number.replace(\"-\", EMPTY)\n .replace(nonBreakingSpaceRegExp, \" \")\n .split(symbols.group.replace(nonBreakingSpaceRegExp, \" \")).join(EMPTY)\n .replace(symbols.decimal, POINT);\n\n number = parseFloat(number);\n\n if (isNaN(number)) {\n number = null;\n } else if (isNegative) {\n number *= -1;\n }\n\n if (number && isPercent) {\n number = divideBy100(number);\n }\n\n return number;\n}\n","const formatRegExp = /\\{(\\d+)}/g;\n\nexport default function formatString(format) {\n const values = arguments;\n\n return format.replace(formatRegExp, (match, index) => {\n const value = values[parseInt(index, 10) + 1];\n\n return value;\n });\n}","import formatString from '../common/format-string';\nimport isString from '../common/is-string';\nimport { EMPTY } from '../common/constants';\n\nconst REMOVAL_PENALTY = 120;\nconst ADDITION_PENALTY = 20;\nconst LENGHT_DELTA = [ 2, 1, 5, 3, 4 ];\nconst LONG_LESS_PENALTY_DELTA = -2;\nconst SHORT_LESS_PENALTY_DELTA = -1;\nconst SHORT_MORE_PENALTY_DELTA = 1;\nconst LONG_MORE_PENALTY_DELTA = 2;\n\nconst PENALTIES = {\n [LONG_LESS_PENALTY_DELTA.toString()]: 8,\n [SHORT_LESS_PENALTY_DELTA.toString()]: 6,\n [LONG_MORE_PENALTY_DELTA.toString()]: 6,\n [SHORT_MORE_PENALTY_DELTA.toString()]: 3\n};\n\nconst VALUE_FORMAT_LENGTH = {\n numeric: 1,\n \"2-digit\": 2,\n short: 3,\n long: 4,\n narrow: 5\n};\n\nconst TIME_SPECIFIERS_REGEX = /[hHmsSzZoOvVxX]/;\n\nfunction getHourSpecifier(options) {\n return options.hour12 ? \"h\" : \"H\";\n}\n\nconst DATE_OPTIONS_MAP = [ {\n key: \"era\",\n specifier: \"G\"\n}, {\n key: \"year\",\n specifier: \"y\"\n}, {\n key: \"month\",\n specifier: \"M\"\n}, {\n key: \"day\",\n specifier: \"d\"\n}, {\n key: \"weekday\",\n specifier: \"E\"\n}, {\n key: \"hour\",\n getSpecifier: getHourSpecifier\n}, {\n key: \"minute\",\n specifier: \"m\"\n}, {\n key: \"second\",\n specifier: \"s\"\n}, {\n key: \"timeZoneName\",\n specifier: \"z\"\n} ];\n\nconst STAND_ALONE_SPECIFIERS = {\n e: 'c',\n E: 'c',\n M: 'L',\n Q: 'q'\n};\n\nconst specifiersRegex = {};\nconst resolvedFormats = {};\n\nfunction getSpecifierRegex(specifier) {\n if (!specifiersRegex[specifier]) {\n specifiersRegex[specifier] = new RegExp(specifier + \"+\");\n }\n return specifiersRegex[specifier];\n}\n\nfunction skeletonSpecifiers(skeleton) {\n const result = [];\n let current = skeleton.charAt(0);\n let specifier = current;\n for (let idx = 1; idx < skeleton.length; idx++) {\n let character = skeleton.charAt(idx);\n if (character === specifier) {\n current += character;\n } else {\n result.push(current);\n current = specifier = character;\n }\n }\n\n result.push(current);\n\n return result;\n}\n\nfunction findBestMatch(specifiers, availableFormats) {\n const specifiersLength = specifiers.length;\n let maxScore = -Number.MAX_VALUE;\n let bestMatches, result;\n for (let format in availableFormats) {\n const matches = [];\n let currentFormat = format.replace(\"v\", \"z\");\n let score = 0;\n for (let idx = 0; idx < specifiersLength; idx++) {\n const specifier = specifiers[idx];\n let specifierRegex = getSpecifierRegex(specifier[0]);\n let match = (specifierRegex.exec(currentFormat) || [])[0];\n\n if (!match) {\n score -= REMOVAL_PENALTY;\n } else {\n currentFormat = currentFormat.replace(match, EMPTY);\n if (match.length !== specifier.length) {\n let delta = Math.max(Math.min(LENGHT_DELTA[match.length] - LENGHT_DELTA[specifier.length], 2), -2);\n score -= PENALTIES[delta];\n }\n }\n\n matches.push(match);\n\n if (score < maxScore) {\n break;\n }\n }\n\n if (currentFormat.length) {\n score -= skeletonSpecifiers(currentFormat).length * ADDITION_PENALTY;\n }\n\n if (score > maxScore) {\n maxScore = score;\n bestMatches = matches;\n result = availableFormats[format];\n }\n }\n\n result = result.replace(\"v\", \"z\");\n\n for (let idx = 0; idx < specifiersLength; idx++) {\n const bestMatch = bestMatches[idx];\n if (bestMatch && bestMatch !== specifiers[idx]) {\n const matchSpecifier = bestMatches[idx][0];\n result = result.replace(getSpecifierRegex(matchSpecifier), specifiers[idx]);\n if (STAND_ALONE_SPECIFIERS[matchSpecifier]) {\n result = result.replace(getSpecifierRegex(STAND_ALONE_SPECIFIERS[matchSpecifier]), specifiers[idx]);\n }\n }\n }\n\n return result;\n}\n\nfunction cacheFormat(skeleton, format, locale) {\n if (!resolvedFormats[locale]) {\n resolvedFormats[locale] = {};\n }\n resolvedFormats[locale][skeleton] = format;\n}\n\n\nfunction skeletonFormat(skeleton, info) {\n const availableFormats = info.calendar.dateTimeFormats.availableFormats;\n if (availableFormats[skeleton]) {\n return availableFormats[skeleton];\n }\n if (resolvedFormats[info.name] && resolvedFormats[info.name][skeleton]) {\n return resolvedFormats[info.name][skeleton];\n }\n const timeStartIndex = skeleton.search(TIME_SPECIFIERS_REGEX);\n let result;\n if (timeStartIndex > 0) {\n const dateSkeleton = skeleton.substr(0, timeStartIndex);\n const timeSkeleton = skeleton.substr(timeStartIndex);\n\n result = formatString(info.calendar.dateTimeFormats.short, //should be deterimed based on specifiers\n availableFormats[timeSkeleton] || findBestMatch(skeletonSpecifiers(timeSkeleton), availableFormats),\n availableFormats[dateSkeleton] || findBestMatch(skeletonSpecifiers(dateSkeleton), availableFormats));\n } else {\n result = findBestMatch(skeletonSpecifiers(skeleton), availableFormats);\n }\n\n cacheFormat(skeleton, result, info.name);\n return result;\n}\n\nfunction skeletonFromOptions(options) {\n let result = [];\n for (let idx = 0; idx < DATE_OPTIONS_MAP.length; idx++) {\n let option = DATE_OPTIONS_MAP[idx];\n let field = option.key;\n let value = options[field];\n if (value) {\n let spcifier = option.specifier || option.getSpecifier(options);\n result.push(spcifier.repeat(VALUE_FORMAT_LENGTH[value]));\n }\n }\n\n return result.join(EMPTY);\n}\n\nexport default function datePattern(format, info) {\n const calendar = info.calendar;\n let result;\n if (isString(format)) {\n if (calendar.patterns[format]) {\n result = calendar.patterns[format];\n } else {\n result = format;\n }\n } else if (format) {\n if (format.pattern) {\n return format.pattern;\n }\n\n let skeleton = format.skeleton;\n if (!skeleton) {\n if (format.datetime) {\n result = formatString(calendar.dateTimeFormats[format.datetime], calendar.timeFormats[format.datetime], calendar.dateFormats[format.datetime]);\n } else if (format.date) {\n result = calendar.dateFormats[format.date];\n } else if (format.time) {\n result = calendar.timeFormats[format.time];\n } else {\n skeleton = skeletonFromOptions(format);\n }\n }\n\n if (skeleton) {\n result = skeletonFormat(skeleton, info);\n }\n }\n\n if (!result) {\n result = calendar.patterns.d;\n }\n\n return result;\n}\n","export default function dateNameType(formatLength) {\n let nameType;\n if (formatLength <= 3) {\n nameType = \"abbreviated\";\n } else if (formatLength === 4) {\n nameType = \"wide\";\n } else if (formatLength === 5) {\n nameType = \"narrow\";\n } else if (formatLength === 6) {\n nameType = \"short\";\n }\n\n return nameType;\n}","import dateFormatNames from '../cldr/date-format-names';\nimport dateNameType from './date-name-type';\n\nexport default function formatNames(locale, type, formatLength, standAlone, lower) {\n return dateFormatNames(locale, {\n type: type,\n nameType: dateNameType(formatLength),\n standAlone: standAlone,\n lower: lower\n });\n}","function isFunction(fun) {\n return typeof(fun) === 'function';\n}\n\nexport default function isDate(value) {\n return Boolean(value) && isFunction(value.getTime) && isFunction(value.getMonth);\n}\n","const MONTH = 'month';\nconst HOUR = 'hour';\nconst ZONE = 'zone';\nconst WEEKDAY = 'weekday';\nconst QUARTER = 'quarter';\n\nconst DATE_FIELD_MAP = {\n 'G': 'era',\n 'y': 'year',\n 'q': QUARTER,\n 'Q': QUARTER,\n 'M': MONTH,\n 'L': MONTH,\n 'd': 'day',\n 'E': WEEKDAY,\n 'c': WEEKDAY,\n 'e': WEEKDAY,\n 'h': HOUR,\n 'H': HOUR,\n 'k': HOUR,\n 'K': HOUR,\n 'm': 'minute',\n 's': 'second',\n 'S': 'millisecond',\n 'a': 'dayperiod',\n 'x': ZONE,\n 'X': ZONE,\n 'z': ZONE,\n 'Z': ZONE\n};\n\nconst dateFormatRegExp = /d{1,2}|E{1,6}|e{1,6}|c{3,6}|c{1}|M{1,5}|L{1,5}|y{1,4}|H{1,2}|h{1,2}|k{1,2}|K{1,2}|m{1,2}|a{1,5}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|x{1,5}|X{1,5}|G{1,5}|q{1,5}|Q{1,5}|\"[^\"]*\"|'[^']*'/g;\n\nexport { dateFormatRegExp, DATE_FIELD_MAP };","import { localeInfo, firstDay } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport formatString from '../common/format-string';\nimport datePattern from './date-pattern';\nimport formatNames from './format-names';\nimport pad from '../common/pad';\nimport isDate from '../common/is-date';\nimport { dateFormatRegExp } from './constants';\n\nfunction formatDayOfWeekIndex(day, formatLength, localeInfo) {\n const firstDayIndex = firstDay(localeInfo);\n let dayIndex;\n if (day < firstDayIndex) {\n dayIndex = 7 - firstDayIndex + day;\n } else {\n dayIndex = day - firstDayIndex;\n }\n\n return dayIndex + 1;\n}\n\nfunction formatMonth(month, formatLength, info, standAlone) {\n if (formatLength <= 2) {\n return pad(month + 1, formatLength);\n }\n return formatNames(info, \"months\", formatLength, standAlone)[month];\n}\n\nfunction formatQuarter(date, formatLength, info, standAlone) {\n const quarter = Math.floor(date.getMonth() / 3);\n if (formatLength < 3) {\n return quarter + 1;\n }\n\n return formatNames(info, \"quarters\", formatLength, standAlone)[quarter];\n}\n\n\nfunction formatTimeZone(date, info, options) {\n const { shortHours, optionalMinutes, separator, localizedName, zZeroOffset } = options;\n const offset = date.getTimezoneOffset() / 60;\n if (offset === 0 && zZeroOffset) {\n return \"Z\";\n }\n const sign = offset <= 0 ? \"+\" : \"-\";\n const hoursMinutes = Math.abs(offset).toString().split(\".\");\n const minutes = hoursMinutes[1] || 0;\n let result = sign + (shortHours ? hoursMinutes[0] : pad(hoursMinutes[0], 2));\n if (minutes || !optionalMinutes) {\n result += (separator ? \":\" : EMPTY) + pad(minutes, 2);\n }\n\n if (localizedName) {\n const localizedFormat = offset === 0 ? info.calendar.gmtZeroFormat : info.calendar.gmtFormat;\n result = formatString(localizedFormat, result);\n }\n\n return result;\n}\n\nfunction formatDayOfWeek(date, formatLength, info, standAlone) {\n let result;\n if (formatLength < 3) {\n result = formatDayOfWeekIndex(date.getDay(), formatLength, info);\n } else {\n result = formatNames(info, \"days\", formatLength, standAlone)[date.getDay()];\n }\n return result;\n}\n\nconst formatters = {};\n\nformatters.d = function(date, formatLength) {\n return pad(date.getDate(), formatLength);\n};\n\nformatters.E = function(date, formatLength, info) {\n return formatNames(info, \"days\", formatLength)[date.getDay()];\n};\n\nformatters.M = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, false);\n};\n\nformatters.L = function(date, formatLength, info) {\n return formatMonth(date.getMonth(), formatLength, info, true);\n};\n\nformatters.y = function(date, formatLength) {\n let year = date.getFullYear();\n if (formatLength === 2) {\n year = year % 100;\n }\n return pad(year, formatLength);\n};\n\nformatters.h = function(date, formatLength) {\n const hours = date.getHours() % 12 || 12;\n return pad(hours, formatLength);\n};\n\nformatters.H = function(date, formatLength) {\n return pad(date.getHours(), formatLength);\n};\n\nformatters.k = function(date, formatLength) {\n return pad(date.getHours() || 24, formatLength);\n};\n\nformatters.K = function(date, formatLength) {\n return pad(date.getHours() % 12, formatLength);\n};\n\nformatters.m = function(date, formatLength) {\n return pad(date.getMinutes(), formatLength);\n};\n\nformatters.s = function(date, formatLength) {\n return pad(date.getSeconds(), formatLength);\n};\n\nformatters.S = function(date, formatLength) {\n const milliseconds = date.getMilliseconds();\n let result;\n if (milliseconds !== 0) {\n result = pad(String(milliseconds / 1000).split(\".\")[1].substr(0, formatLength), formatLength, true);\n } else {\n result = pad(EMPTY, formatLength);\n }\n return result;\n};\n\nformatters.a = function(date, formatLength, info) {\n return formatNames(info, \"dayPeriods\", formatLength)[date.getHours() < 12 ? \"am\" : \"pm\"];\n};\n\nformatters.z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n shortHours: formatLength < 4,\n optionalMinutes: formatLength < 4,\n separator: true,\n localizedName: true\n });\n};\n\nformatters.Z = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n separator: formatLength > 3,\n localizedName: formatLength === 4,\n zZeroOffset: formatLength === 5\n });\n};\n\nformatters.x = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5\n });\n};\n\nformatters.X = function(date, formatLength, info) {\n return formatTimeZone(date, info, {\n optionalMinutes: formatLength === 1,\n separator: formatLength === 3 || formatLength === 5,\n zZeroOffset: true\n });\n};\n\nformatters.G = function(date, formatLength, info) {\n let era = date.getFullYear() >= 0 ? 1 : 0;\n return formatNames(info, \"eras\", formatLength)[era];\n};\n\nformatters.e = formatDayOfWeek;\n\nformatters.c = function(date, formatLength, info) {\n return formatDayOfWeek(date, formatLength, info, true);\n};\n\nformatters.q = function(date, formatLength, info) {\n return formatQuarter(date, formatLength, info, true);\n};\n\nformatters.Q = formatQuarter;\n\nexport default function formatDate(date, format, locale = DEFAULT_LOCALE) {\n if (!isDate(date)) {\n if (date === undefined || date === null) {\n return EMPTY;\n }\n return date;\n }\n\n const info = localeInfo(locale);\n const pattern = datePattern(format, info);\n\n return pattern.replace(dateFormatRegExp, function(match) {\n let formatLength = match.length;\n let result;\n\n if (match.includes(\"'\") || match.includes(\"\\\"\")) {\n result = match.slice(1, formatLength - 1);\n } else {\n result = formatters[match[0]](date, formatLength, info);\n }\n\n return result;\n });\n}\n","export function convertTimeZone(date, fromOffset, toOffset) {\n const fromLocalOffset = date.getTimezoneOffset();\n\n const offsetDate = new Date(date.getTime() + (fromOffset - toOffset) * 60000);\n\n const toLocalOffset = offsetDate.getTimezoneOffset();\n\n return new Date(offsetDate.getTime() + (toLocalOffset - fromLocalOffset) * 60000);\n}\n\nexport function adjustDST(date, hours) {\n if (!hours && date.getHours() === 23) {\n date.setHours(date.getHours() + 2);\n }\n}","import { adjustDST, convertTimeZone } from './time-utils';\nimport { localeInfo } from '../cldr';\nimport { DEFAULT_LOCALE, EMPTY } from '../common/constants';\nimport { errors } from '../errors';\nimport formatNames from './format-names';\nimport datePattern from './date-pattern';\nimport round from '../common/round';\nimport isDate from '../common/is-date';\n\nconst timeZoneOffsetRegExp = /([+|-]\\d{1,2})(:?)(\\d{2})?/;\nconst dateRegExp = /^\\/Date\\((.*?)\\)\\/$/;\nconst offsetRegExp = /[+-]\\d*/;\nconst numberRegExp = {\n 2: /^\\d{1,2}/,\n 3: /^\\d{1,3}/,\n 4: /^\\d{4}/\n};\nconst numberRegex = /\\d+/;\nconst PLACEHOLDER = \"{0}\";\n\nconst leadingSpacesRegex = /^ */;\nconst trailingSpacesRegex = / *$/;\n\nconst standardDateFormats = [\n \"yyyy/MM/dd HH:mm:ss\",\n \"yyyy/MM/dd HH:mm\",\n \"yyyy/MM/dd\",\n \"E MMM dd yyyy HH:mm:ss\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSXXX\",\n \"yyyy-MM-ddTHH:mm:ssXXX\",\n \"yyyy-MM-ddTHH:mm:ss.SSSSSSS\",\n \"yyyy-MM-ddTHH:mm:ss.SSS\",\n \"yyyy-MM-ddTHH:mmXXX\",\n \"yyyy-MM-ddTHH:mmX\",\n \"yyyy-MM-ddTHH:mm:ss\",\n \"yyyy-MM-ddTHH:mm\",\n \"yyyy-MM-dd HH:mm:ss\",\n \"yyyy-MM-dd HH:mm\",\n \"yyyy-MM-dd\",\n \"HH:mm:ss\",\n \"HH:mm\"\n];\nconst FORMATS_SEQUENCE = [ \"G\", \"g\", \"F\", \"Y\", \"y\", \"M\", \"m\", \"D\", \"d\", \"y\", \"T\", \"t\" ];\nconst TWO_DIGIT_YEAR_MAX = 2029;\n\nfunction outOfRange(value, start, end) {\n return !(value >= start && value <= end);\n}\n\nfunction lookAhead(match, state) {\n let { format, idx } = state;\n let i = 0;\n while (format[idx] === match) {\n i++;\n idx++;\n }\n if (i > 0) {\n idx -= 1;\n }\n state.idx = idx;\n return i;\n}\n\nfunction getNumber(size, state) {\n let regex = size ? (numberRegExp[size] || new RegExp('^\\\\d{1,' + size + '}')) : numberRegex,\n match = state.value.substr(state.valueIdx, size).match(regex);\n\n if (match) {\n match = match[0];\n state.valueIdx += match.length;\n return parseInt(match, 10);\n }\n return null;\n}\n\nfunction getIndexByName(names, state, lower) {\n let i = 0,\n length = names.length,\n name, nameLength,\n matchLength = 0,\n matchIdx = 0,\n subValue;\n\n for (; i < length; i++) {\n name = names[i];\n nameLength = name.length;\n subValue = state.value.substr(state.valueIdx, nameLength);\n\n if (lower) {\n subValue = subValue.toLowerCase();\n }\n\n if (subValue === name && nameLength > matchLength) {\n matchLength = nameLength;\n matchIdx = i;\n }\n }\n\n if (matchLength) {\n state.valueIdx += matchLength;\n return matchIdx + 1;\n }\n\n return null;\n}\n\nfunction checkLiteral(state) {\n let result = false;\n if (state.value.charAt(state.valueIdx) === state.format[state.idx]) {\n state.valueIdx++;\n result = true;\n }\n return result;\n}\n\nfunction calendarGmtFormats(calendar) {\n const { gmtFormat, gmtZeroFormat } = calendar;\n if (!gmtFormat) {\n throw errors.NoGMTInfo.error();\n }\n\n return [ gmtFormat.replace(PLACEHOLDER, EMPTY).toLowerCase(), gmtZeroFormat.replace(PLACEHOLDER, EMPTY).toLowerCase() ];\n}\n\nfunction parseTimeZoneOffset(state, info, options) {\n const { shortHours, noSeparator, optionalMinutes, localizedName, zLiteral } = options;\n state.UTC = true;\n\n if (zLiteral && state.value.charAt(state.valueIdx) === \"Z\") {\n state.valueIdx++;\n return false;\n }\n\n if (localizedName && !getIndexByName(calendarGmtFormats(info.calendar), state, true)) {\n return true;\n }\n\n const matches = timeZoneOffsetRegExp.exec(state.value.substr(state.valueIdx, 6));\n if (!matches) {\n return !localizedName;\n }\n\n const hoursMatch = matches[1];\n const minutesMatch = matches[3];\n const hoursOffset = parseInt(hoursMatch, 10);\n const separator = matches[2];\n let minutesOffset = parseInt(minutesMatch, 10);\n\n if (isNaN(hoursOffset) || (!shortHours && hoursMatch.length !== 3) || (!optionalMinutes && isNaN(minutesOffset)) || (noSeparator && separator)) {\n return true;\n }\n\n if (isNaN(minutesOffset)) {\n minutesOffset = null;\n }\n\n if (outOfRange(hoursOffset, -12, 13) || (minutesOffset && outOfRange(minutesOffset, 0, 59))) {\n return true;\n }\n\n state.valueIdx += matches[0].length;\n state.hoursOffset = hoursOffset;\n state.minutesOffset = minutesOffset;\n}\n\nfunction parseMonth(ch, state, info) {\n const count = lookAhead(ch, state);\n const names = formatNames(info, \"months\", count, ch === \"L\", true);\n\n const month = count < 3 ? getNumber(2, state) : getIndexByName(names, state, true);\n\n if (month === null || outOfRange(month, 1, 12)) {\n return true;\n }\n state.month = month - 1;\n}\n\nfunction parseDayOfWeek(ch, state, info) {\n const count = lookAhead(ch, state);\n const names = formatNames(info, \"days\", count, ch === \"c\", true);\n let dayOfWeek = count < 3 ? getNumber(1, state) : getIndexByName(names, state, true);\n if ((!dayOfWeek && dayOfWeek !== 0) || outOfRange(dayOfWeek, 1, 7)) {\n return true;\n }\n}\n\nconst parsers = {};\n\nparsers.d = function(state) {\n lookAhead(\"d\", state);\n const day = getNumber(2, state);\n\n if (day === null || outOfRange(day, 1, 31)) {\n return true;\n }\n\n if (state.day === null) {\n state.day = day;\n }\n};\n\nparsers.E = function(state, info) {\n const count = lookAhead(\"E\", state);\n //validate if it matches the day?\n let dayOfWeek = getIndexByName(formatNames(info, \"days\", count, false, true), state, true);\n if (dayOfWeek === null) {\n return true;\n }\n};\n\nparsers.M = function(state, info) {\n return parseMonth(\"M\", state, info);\n};\n\nparsers.L = function(state, info) {\n return parseMonth(\"L\", state, info);\n};\n\nparsers.y = function(state) {\n const count = lookAhead(\"y\", state);\n let year = getNumber(count === 1 ? undefined : count, state);\n\n if (year === null) {\n return true;\n }\n\n if (count === 2) {\n const currentYear = new Date().getFullYear();\n year = (currentYear - currentYear % 100) + year;\n if (year > TWO_DIGIT_YEAR_MAX) {\n year -= 100;\n }\n }\n\n state.year = year;\n};\n\nparsers.h = function(state) {\n lookAhead(\"h\", state);\n\n let hours = getNumber(2, state);\n if (hours === 12) {\n hours = 0;\n }\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.K = function(state) {\n lookAhead(\"K\", state);\n\n let hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 0, 11)) {\n return true;\n }\n\n state.hours = hours;\n};\n\nparsers.a = function(state, info) {\n const count = lookAhead(\"a\", state);\n let periodFormats = formatNames(info, \"dayPeriods\", count, false, true);\n\n const pmHour = getIndexByName([ periodFormats.pm ], state, true);\n if (!pmHour && !getIndexByName([ periodFormats.am ], state, true)) {\n return true;\n }\n\n state.pmHour = pmHour;\n};\n\nparsers.H = function(state) {\n lookAhead(\"H\", state);\n const hours = getNumber(2, state);\n if (hours === null || outOfRange(hours, 0, 23)) {\n return true;\n }\n state.hours = hours;\n};\n\nparsers.k = function(state) {\n lookAhead(\"k\", state);\n\n let hours = getNumber(2, state);\n\n if (hours === null || outOfRange(hours, 1, 24)) {\n return true;\n }\n\n state.hours = hours === 24 ? 0 : hours;\n};\n\nparsers.m = function(state) {\n lookAhead(\"m\", state);\n const minutes = getNumber(2, state);\n\n if (minutes === null || outOfRange(minutes, 0, 59)) {\n return true;\n }\n\n state.minutes = minutes;\n};\n\nparsers.s = function(state) {\n lookAhead(\"s\", state);\n const seconds = getNumber(2, state);\n if (seconds === null || outOfRange(seconds, 0, 59)) {\n return true;\n }\n state.seconds = seconds;\n};\n\nparsers.S = function(state) {\n const count = lookAhead(\"S\", state);\n const match = state.value.substr(state.valueIdx, count);\n let milliseconds = null;\n\n if (!isNaN(parseInt(match, 10))) {\n milliseconds = parseFloat(\"0.\" + match, 10);\n milliseconds = round(milliseconds, 3);\n milliseconds *= 1000;\n state.valueIdx += count;\n }\n\n if (milliseconds === null || outOfRange(milliseconds, 0, 999)) {\n return true;\n }\n\n state.milliseconds = milliseconds;\n};\n\nparsers.z = function(state, info) {\n const count = lookAhead(\"z\", state);\n\n const shortFormat = count < 4;\n\n const invalid = parseTimeZoneOffset(state, info, {\n shortHours: shortFormat,\n optionalMinutes: shortFormat,\n localizedName: true\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.Z = function(state, info) {\n const count = lookAhead(\"Z\", state);\n\n const invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count < 4,\n zLiteral: count === 5,\n localizedName: count === 4\n });\n\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.x = function(state, info) {\n const count = lookAhead(\"x\", state);\n\n const invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.X = function(state, info) {\n const count = lookAhead(\"X\", state);\n\n const invalid = parseTimeZoneOffset(state, info, {\n noSeparator: count !== 3 && count !== 5,\n optionalMinutes: count === 1,\n zLiteral: true\n });\n if (invalid) {\n return invalid;\n }\n};\n\nparsers.G = function(state, info) {\n const count = lookAhead(\"G\", state);\n const eras = formatNames(info, \"eras\", count, false, true);\n const era = getIndexByName([ eras[0], eras[1] ], state, true);\n\n if (era === null) {\n return true;\n }\n};\n\nparsers.e = function(state, info) {\n return parseDayOfWeek(\"e\", state, info);\n};\n\nparsers.c = function(state, info) {\n return parseDayOfWeek(\"c\", state, info);\n};\n\nfunction createDate(state) {\n let { year, month, day, hours, minutes, seconds, milliseconds, pmHour, UTC, hoursOffset, minutesOffset } = state;\n const hasTime = hours !== null || minutes !== null || seconds || null;\n const date = new Date();\n let result;\n\n if (year === null && month === null && day === null && hasTime) {\n year = date.getFullYear();\n month = date.getMonth();\n day = date.getDate();\n } else {\n if (year === null) {\n year = date.getFullYear();\n }\n\n if (day === null) {\n day = 1;\n }\n }\n\n if (pmHour && hours < 12) {\n hours += 12;\n }\n\n if (UTC) {\n if (hoursOffset) {\n hours += -hoursOffset;\n }\n\n if (minutesOffset) {\n minutes += -minutesOffset * (hoursOffset < 0 ? -1 : 1);\n }\n\n result = new Date(Date.UTC(year, month, day, hours, minutes, seconds, milliseconds));\n } else {\n result = new Date(year, month, day, hours, minutes, seconds, milliseconds);\n adjustDST(result, hours);\n }\n\n if (year < 100) {\n result.setFullYear(year);\n }\n\n if (result.getDate() !== day && UTC === undefined) {\n return null;\n }\n\n return result;\n}\n\nfunction addFormatSpaces(value, format) {\n const leadingSpaces = leadingSpacesRegex.exec(format)[0];\n const trailingSpaces = trailingSpacesRegex.exec(format)[0];\n\n return `${ leadingSpaces }${ value }${ trailingSpaces }`;\n}\n\nfunction parseExact(value, format, info) {\n let pattern = datePattern(format, info).split(EMPTY);\n\n const state = {\n format: pattern,\n idx: 0,\n value: addFormatSpaces(value, format),\n valueIdx: 0,\n year: null,\n month: null,\n day: null,\n hours: null,\n minutes: null,\n seconds: null,\n milliseconds: null\n };\n const length = pattern.length;\n let literal = false;\n\n for (; state.idx < length; state.idx++) {\n let ch = pattern[state.idx];\n\n if (literal) {\n if (ch === \"'\") {\n literal = false;\n }\n\n checkLiteral(state);\n } else {\n if (parsers[ch]) {\n let invalid = parsers[ch](state, info);\n if (invalid) {\n return null;\n }\n } else if (ch === \"'\") {\n literal = true;\n checkLiteral(state);\n } else if (!checkLiteral(state)) {\n return null;\n }\n }\n }\n\n if (state.valueIdx < value.length) {\n return null;\n }\n\n return createDate(state) || null;\n}\n\nfunction parseMicrosoftDateOffset(offset) {\n const sign = offset.substr(0, 1) === \"-\" ? -1 : 1;\n\n let result = offset.substring(1);\n result = (parseInt(result.substr(0, 2), 10) * 60) + parseInt(result.substring(2), 10);\n\n return sign * result;\n}\n\nfunction parseMicrosoftDateFormat(value) {\n if (value && value.indexOf(\"/D\") === 0) {\n let date = dateRegExp.exec(value);\n if (date) {\n date = date[1];\n let tzoffset = offsetRegExp.exec(date.substring(1));\n\n date = new Date(parseInt(date, 10));\n\n if (tzoffset) {\n tzoffset = parseMicrosoftDateOffset(tzoffset[0]);\n date = convertTimeZone(date, date.getTimezoneOffset(), 0);\n date = convertTimeZone(date, 0, -1 * tzoffset);\n }\n\n return date;\n }\n }\n}\n\nfunction defaultFormats(calendar) {\n const formats = [];\n const patterns = calendar.patterns;\n const length = FORMATS_SEQUENCE.length;\n\n for (let idx = 0; idx < length; idx++) {\n formats.push(patterns[FORMATS_SEQUENCE[idx]]);\n }\n\n return formats.concat(standardDateFormats);\n}\n\nexport default function parseDate(value, formats, locale = DEFAULT_LOCALE) {\n if (!value) {\n return null;\n }\n\n if (isDate(value)) {\n return value;\n }\n\n let parseValue = String(value).trim();\n let date = parseMicrosoftDateFormat(parseValue);\n if (date) {\n return date;\n }\n\n const info = localeInfo(locale);\n let parseFormats = formats || defaultFormats(info.calendar);\n parseFormats = Array.isArray(parseFormats) ? parseFormats : [ parseFormats ];\n\n const length = parseFormats.length;\n\n for (let idx = 0; idx < length; idx++) {\n date = parseExact(parseValue, parseFormats[idx], info);\n if (date) {\n return date;\n }\n }\n\n return date;\n}\n","import { DEFAULT_LOCALE } from '../common/constants';\nimport isNumber from '../common/is-number';\nimport datePattern from './date-pattern';\nimport dateNameType from './date-name-type';\nimport { dateFormatRegExp, DATE_FIELD_MAP } from './constants';\nimport { localeInfo } from '../cldr';\n\nconst NAME_TYPES = {\n month: {\n type: 'months',\n minLength: 3,\n standAlone: 'L'\n },\n\n quarter: {\n type: 'quarters',\n minLength: 3,\n standAlone: 'q'\n },\n\n weekday: {\n type: 'days',\n minLength: {\n E: 0,\n c: 3,\n e: 3\n },\n standAlone: 'c'\n },\n\n dayperiod: {\n type: 'dayPeriods',\n minLength: 0\n },\n\n era: {\n type: 'eras',\n minLength: 0\n }\n};\n\nconst LITERAL = 'literal';\n\nfunction addLiteral(parts, value) {\n const lastPart = parts[parts.length - 1];\n if (lastPart && lastPart.type === LITERAL) {\n lastPart.pattern += value;\n } else {\n parts.push({\n type: LITERAL,\n pattern: value\n });\n }\n}\n\nfunction isHour12(pattern) {\n return pattern === 'h' || pattern === 'K';\n}\n\nexport default function splitDateFormat(format, locale = DEFAULT_LOCALE) {\n const info = localeInfo(locale);\n const pattern = datePattern(format, info);\n const parts = [];\n let lastIndex = dateFormatRegExp.lastIndex = 0;\n let match = dateFormatRegExp.exec(pattern);\n\n while (match) {\n let value = match[0];\n\n if (lastIndex < match.index) {\n addLiteral(parts, pattern.substring(lastIndex, match.index));\n }\n\n if (value.startsWith('\"') || value.startsWith(\"'\")) {\n addLiteral(parts, value);\n } else {\n const specifier = value[0];\n const type = DATE_FIELD_MAP[specifier];\n const part = {\n type: type,\n pattern: value\n };\n\n if (type === 'hour') {\n part.hour12 = isHour12(value);\n }\n\n const names = NAME_TYPES[type];\n\n if (names) {\n const minLength = isNumber(names.minLength) ? names.minLength : names.minLength[specifier];\n const patternLength = value.length;\n\n if (patternLength >= minLength) {\n part.names = {\n type: names.type,\n nameType: dateNameType(patternLength),\n standAlone: names.standAlone === specifier\n };\n }\n }\n\n parts.push(part);\n }\n\n lastIndex = dateFormatRegExp.lastIndex;\n match = dateFormatRegExp.exec(pattern);\n }\n\n if (lastIndex < pattern.length) {\n addLiteral(parts, pattern.substring(lastIndex));\n }\n\n return parts;\n}\n","import { formatDate } from './dates';\nimport { formatNumber } from './numbers';\nimport { EMPTY } from './common/constants';\nimport isDate from './common/is-date';\nimport isNumber from './common/is-number';\n\nconst formatRegExp = /\\{(\\d+)(:[^}]+)?\\}/g;\n\nexport function toString(value, format, locale) {\n if (format) {\n if (isDate(value)) {\n return formatDate(value, format, locale);\n } else if (isNumber(value)) {\n return formatNumber(value, format, locale);\n }\n }\n\n return value !== undefined && value !== null ? value : EMPTY;\n}\n\nexport function format(format, values, locale) {\n return format.replace(formatRegExp, function(match, index, placeholderFormat) {\n let value = values[parseInt(index, 10)];\n\n return toString(value, placeholderFormat ? placeholderFormat.substring(1) : EMPTY, locale);\n });\n}\n","export default {\n \"bottom\": \"bottom\",\n \"center\": \"center\",\n \"middle\": \"middle\",\n \"left\": \"left\",\n \"right\": \"right\",\n \"top\": \"top\"\n};\n","import point from './align-point';\n\nconst align = (options) => {\n const { anchorRect, anchorAlign, elementRect, elementAlign, margin = {} } = options;\n const anchorHorizontal = anchorAlign.horizontal;\n const anchorVertical = anchorAlign.vertical;\n const elementHorizontal = elementAlign.horizontal;\n const elementVertical = elementAlign.vertical;\n\n let horizontalMargin = margin.horizontal || 0;\n let verticalMargin = margin.vertical || 0;\n\n let top = anchorRect.top;\n let left = anchorRect.left;\n\n if (anchorVertical === point.bottom) {\n top += anchorRect.height;\n }\n\n if (anchorVertical === point.center || anchorVertical === point.middle) {\n top += Math.round(anchorRect.height / 2);\n }\n\n if (elementVertical === point.bottom) {\n top -= elementRect.height;\n verticalMargin *= -1;\n }\n\n if (elementVertical === point.center || elementVertical === point.middle) {\n top -= Math.round(elementRect.height / 2);\n verticalMargin *= -1;\n }\n\n if (anchorHorizontal === point.right) {\n left += anchorRect.width;\n }\n\n if (anchorHorizontal === point.center || anchorHorizontal === point.middle) {\n left += Math.round(anchorRect.width / 2);\n }\n\n if (elementHorizontal === point.right) {\n left -= elementRect.width;\n horizontalMargin *= -1;\n }\n\n if (elementHorizontal === point.center || elementHorizontal === point.middle) {\n left -= Math.round(elementRect.width / 2);\n horizontalMargin *= -1;\n }\n\n return {\n top: top + verticalMargin,\n left: left + horizontalMargin\n };\n};\n\nexport default align;\n","export default function addScroll(rect, scroll) {\n return {\n top: rect.top + scroll.y,\n left: rect.left + scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default function ownerDocument(element) {\n return element.ownerDocument || element.document || element;\n}\n","import ownerDocument from './owner-document';\n\nconst getWindow = (element) => ownerDocument(element).defaultView;\n\nexport default getWindow;\n","import ownerDocument from './owner-document';\n\nconst getDocument = (element) => ownerDocument(element).documentElement;\n\nexport default getDocument;\n","let cachedWidth = 0;\n\nexport default function scrollbarWidth() {\n if (!cachedWidth && typeof document !== 'undefined') {\n const div = document.createElement(\"div\");\n\n div.style.cssText = \"overflow:scroll;overflow-x:hidden;zoom:1;clear:both;display:block\";\n div.innerHTML = \" \";\n document.body.appendChild(div);\n\n cachedWidth = div.offsetWidth - div.scrollWidth;\n\n document.body.removeChild(div);\n }\n\n return cachedWidth;\n}\n","import wnd from './window';\nimport getDocument from './document';\nimport scrollbarWidth from './scrollbar-width';\n\nexport default function windowViewport(element) {\n const win = wnd(element);\n const document = getDocument(element);\n const result = {\n height: win.innerHeight,\n width: win.innerWidth\n };\n\n if (document.scrollHeight - document.clientHeight > 0) {\n result.width -= scrollbarWidth();\n }\n\n return result;\n}\n","import windowViewport from './window-viewport';\n\nconst boundingOffset = (element) => {\n if (!element.getBoundingClientRect) {\n const viewport = windowViewport(element);\n return {\n bottom: viewport.height,\n left: 0,\n right: viewport.width,\n top: 0\n };\n }\n\n const { bottom, left, right, top } = element.getBoundingClientRect();\n\n return {\n bottom,\n left,\n right,\n top\n };\n};\n\nexport default boundingOffset;\n","const rectOfHiddenElement = (element) => {\n const { display, left, position } = element.style;\n\n element.style.display = '';\n element.style.left = '-10000px';\n element.style.position = 'absolute';\n\n const rect = element.getBoundingClientRect();\n\n element.style.display = display;\n element.style.left = left;\n element.style.position = position;\n\n return rect;\n};\n\nconst offset = (element) => {\n let rect = element.getBoundingClientRect();\n let { left, top } = rect;\n\n if (!rect.height && !rect.width) {\n rect = rectOfHiddenElement(element);\n }\n\n return {\n top: top,\n left: left,\n height: rect.height,\n width: rect.width\n };\n};\n\nexport default offset;\n","export default (element, until) => {\n const result = [];\n let next = element.parentNode;\n\n while (next) {\n result.push(next);\n\n if (next === until) { break; }\n\n next = next.parentNode;\n }\n\n return result;\n};\n","import docElement from './document';\nimport wnd from './window';\n\nexport default function scrollPosition(element) {\n const documentElement = docElement(element);\n const win = wnd(element);\n\n return {\n x: win.pageXOffset || documentElement.scrollLeft || 0,\n y: win.pageYOffset || documentElement.scrollTop || 0\n };\n}\n","import scrollPosition from './scroll-position';\n\nexport default (element) => {\n if (element === (element.ownerDocument || {}).body) {\n return scrollPosition(element);\n }\n\n return {\n x: element.scrollLeft,\n y: element.scrollTop\n };\n};\n","import documentElement from './document';\n\nconst offsetParent = (element) => {\n let offsetParent = element.offsetParent;\n\n while (offsetParent && offsetParent.style.position === \"static\") {\n offsetParent = offsetParent.offsetParent;\n }\n\n return offsetParent || documentElement(element);\n};\n\nexport default offsetParent;\n","import offsetParentScrollPosition from './offset-parent-scroll-position';\nimport offsetParent from './offset-parent';\nimport position from './position';\n\nexport default (element, parent, scale = 1) => {\n const offsetParentElement = parent ? offsetParent(parent) : null;\n const { top, left, height, width } = position(element, offsetParentElement);\n const { x, y } = offsetParentScrollPosition(offsetParentElement, element);\n const ownerDocument = element.ownerDocument;\n const positionScale = offsetParentElement === ownerDocument.body || offsetParentElement === ownerDocument.documentElement ? 1 : scale;\n\n return {\n top: top + y * positionScale,\n left: left + x * positionScale,\n height: height,\n width: width\n };\n};\n","import offsetParent from './offset-parent';\nimport offsetRect from './offset';\nimport wnd from './window';\n\nconst position = (element, parent) => {\n const win = wnd(element);\n const elementStyles = win.getComputedStyle(element);\n const offset = offsetRect(element);\n const parentElement = parent || offsetParent(element);\n\n const ownerDocument = element.ownerDocument;\n const useRelative = parentElement !== ownerDocument.body && parentElement !== ownerDocument.documentElement;\n\n let parentOffset = { top: 0, left: 0 };\n\n if (elementStyles.position !== \"fixed\" && useRelative) {\n const parentStyles = win.getComputedStyle(parentElement);\n\n parentOffset = offsetRect(parentElement);\n parentOffset.top += parseInt(parentStyles.borderTopWidth, 10);\n parentOffset.left += parseInt(parentStyles.borderLeftWidth, 10);\n }\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left,\n height: offset.height,\n width: offset.width\n };\n};\n\nexport default position;\n","import elementScrollPosition from './element-scroll-position';\nimport parentScrollPosition from './parent-scroll-position';\n\nexport default (offsetParentElement, element) => ( // eslint-disable-line no-arrow-condition\n offsetParentElement ? elementScrollPosition(offsetParentElement) : parentScrollPosition(element)\n);\n","import offsetParent from './offset-parent';\nimport elementScrollPosition from './element-scroll-position';\n\nexport default function parentScrollPosition(element) {\n const parent = offsetParent(element);\n\n return parent ? elementScrollPosition(parent) : { x: 0, y: 0 };\n}\n","export default function removeScroll(rect, scroll) {\n return {\n top: rect.top - scroll.y,\n left: rect.left - scroll.x,\n height: rect.height,\n width: rect.width\n };\n}\n","export default {\n \"fit\": \"fit\",\n \"flip\": \"flip\",\n \"none\": \"none\"\n};\n","import alignPoint from './align-point';\nimport collision from './collision';\n\nconst fit = function(position, size, viewPortSize) {\n let output = 0;\n\n if (position + size > viewPortSize) {\n output = viewPortSize - (position + size);\n }\n\n if (position < 0) {\n output = -position;\n }\n\n return output;\n};\n\nconst flip = function({ offset, size, anchorSize, viewPortSize, anchorAlignPoint, elementAlignPoint, margin }) {\n let output = 0;\n\n const isPositionCentered = elementAlignPoint === alignPoint.center || elementAlignPoint === alignPoint.middle;\n const isOriginCentered = anchorAlignPoint === alignPoint.center || anchorAlignPoint === alignPoint.middle;\n const marginToAdd = 2 * margin; //2x to keep margin after flip\n\n if (elementAlignPoint !== anchorAlignPoint && !isPositionCentered && !isOriginCentered) {\n const isBeforeAnchor = anchorAlignPoint === alignPoint.top || anchorAlignPoint === alignPoint.left;\n if (offset < 0 && isBeforeAnchor) {\n output = size + anchorSize + marginToAdd;\n if (offset + output + size > viewPortSize) {\n output = 0; //skip flip\n }\n } else if (offset >= 0 && !isBeforeAnchor) {\n if (offset + size > viewPortSize) {\n output += -(anchorSize + size + marginToAdd);\n }\n\n if (offset + output < 0) {\n output = 0; //skip flip\n }\n }\n }\n\n return output;\n};\n\nconst restrictToView = (options) => {\n const { anchorRect, anchorAlign, elementRect, elementAlign, collisions, viewPort, margin = {} } = options;\n const { top: elementTop, left: elementLeft, height: elementHeight, width: elementWidth } = elementRect;\n const { height: viewPortHeight, width: viewPortWidth } = viewPort;\n const horizontalMargin = margin.horizontal || 0;\n const verticalMargin = margin.vertical || 0;\n\n let left = 0;\n let top = 0;\n\n const isVerticalFit = collisions.vertical === collision.fit;\n const isHorizontalFit = collisions.horizontal === collision.fit;\n const isVerticalFlip = collisions.vertical === collision.flip;\n const isHorizontalFlip = collisions.horizontal === collision.flip;\n\n if (isVerticalFit) {\n top += fit(elementTop, elementHeight, viewPortHeight);\n }\n\n if (isHorizontalFit) {\n left += fit(elementLeft, elementWidth, viewPortWidth);\n }\n\n if (isVerticalFlip) {\n top += flip({\n margin: verticalMargin,\n offset: elementTop,\n size: elementHeight,\n anchorSize: anchorRect.height,\n viewPortSize: viewPortHeight,\n anchorAlignPoint: anchorAlign.vertical,\n elementAlignPoint: elementAlign.vertical\n });\n }\n\n if (isHorizontalFlip) {\n left += flip({\n margin: horizontalMargin,\n offset: elementLeft,\n size: elementWidth,\n anchorSize: anchorRect.width,\n viewPortSize: viewPortWidth,\n anchorAlignPoint: anchorAlign.horizontal,\n elementAlignPoint: elementAlign.horizontal\n });\n }\n\n const flippedVertical = isVerticalFlip && top !== 0;\n const flippedHorizontal = isHorizontalFlip && left !== 0;\n const fittedVertical = isVerticalFit && top !== 0;\n const fittedHorizontal = isHorizontalFit && left !== 0;\n\n return {\n flipped: flippedHorizontal || flippedVertical,\n fitted: fittedVertical || fittedHorizontal,\n flip: {\n horizontal: flippedHorizontal,\n vertical: flippedVertical\n },\n fit: {\n horizontal: fittedHorizontal,\n vertical: fittedVertical\n },\n offset: {\n left: left,\n top: top\n }\n };\n};\n\nexport default restrictToView;\n","export default (element) => {\n const result = [];\n\n let sibling = element.parentNode.firstElementChild;\n\n while (sibling) {\n if (sibling !== element) {\n result.push(sibling);\n }\n\n sibling = sibling.nextElementSibling;\n }\n return result;\n};\n","/* eslint-disable no-loop-func */\n\nimport parents from './parents';\nimport siblings from './siblings';\n\nexport default (anchor, container) => {\n const parentElements = parents(anchor);\n let containerElement = container;\n let siblingElements;\n let result;\n\n while (containerElement) {\n siblingElements = siblings(containerElement);\n\n result = parentElements.reduce(\n (list, p) => list.concat(siblingElements.filter(s => s === p)),\n []\n )[0];\n\n if (result) { break; }\n\n containerElement = containerElement.parentElement;\n }\n\n return result;\n};\n\n","\nconst eitherRect = (rect, offset) => {\n if (!rect) {\n return { height: 0, left: offset.left, top: offset.top, width: 0 };\n }\n\n return rect;\n};\n\nconst scaleRect = (rect, scale) => {\n if (!rect || scale === 1) {\n return rect;\n }\n\n return {\n height: rect.height / scale,\n left: rect.left / scale,\n top: rect.top / scale,\n width: rect.width / scale\n };\n};\n\nconst removeStackingOffset = (rect, stackingOffset) => {\n if (!stackingOffset) { return rect; }\n\n const result = {\n height: rect.height,\n left: rect.left - stackingOffset.left,\n top: rect.top - stackingOffset.top,\n width: rect.width\n };\n\n return result;\n};\n\nfunction memoize(fun) {\n let result;\n let called = false;\n\n return (...args) => {\n if (called) {\n return result;\n }\n\n result = fun(...args);\n called = true;\n return result;\n };\n}\n\nconst hasRelativeStackingContext = memoize((elementSource) => {\n if (!canUseDOM()) { return false; }\n\n // Component need to pass element to make sure document owner is correct.\n // This however might be performance hit if checked for example on each drag event.\n const currentDocument = elementSource ? elementSource.ownerDocument : document;\n\n if (!currentDocument || !currentDocument.body) { return false; }\n\n const top = 10;\n const parent = currentDocument.createElement(\"div\");\n parent.style.transform = \"matrix(10, 0, 0, 10, 0, 0)\";\n parent.innerHTML = `
    child
    `;\n\n currentDocument.body.appendChild(parent);\n\n const isDifferent = parent.children[0].getBoundingClientRect().top !== top;\n\n currentDocument.body.removeChild(parent);\n\n return isDifferent;\n});\n\nconst canUseDOM = () => Boolean(\n // from fbjs\n typeof window !== 'undefined' &&\n window.document &&\n window.document.createElement\n);\n\nconst utils = {\n eitherRect,\n scaleRect,\n removeStackingOffset,\n hasRelativeStackingContext,\n canUseDOM\n};\n\nexport default utils;","const caretTrIcon = {\n name: 'caret-tr',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretBrIcon = {\n name: 'caret-br',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretBlIcon = {\n name: 'caret-bl',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretTlIcon = {\n name: 'caret-tl',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltUpIcon = {\n name: 'caret-alt-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltRightIcon = {\n name: 'caret-alt-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltDownIcon = {\n name: 'caret-alt-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltLeftIcon = {\n name: 'caret-alt-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToTopIcon = {\n name: 'caret-alt-to-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToRightIcon = {\n name: 'caret-alt-to-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToBottomIcon = {\n name: 'caret-alt-to-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltToLeftIcon = {\n name: 'caret-alt-to-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltUpIcon = {\n name: 'caret-double-alt-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltRightIcon = {\n name: 'caret-double-alt-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltDownIcon = {\n name: 'caret-double-alt-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretDoubleAltLeftIcon = {\n name: 'caret-double-alt-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst caretAltExpandIcon = {\n name: 'caret-alt-expand',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsNoChangeIcon = {\n name: 'arrows-no-change',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowOverflowDownIcon = {\n name: 'arrow-overflow-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronUpIcon = {\n name: 'chevron-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronRightIcon = {\n name: 'chevron-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDownIcon = {\n name: 'chevron-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronLeftIcon = {\n name: 'chevron-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowUpIcon = {\n name: 'arrow-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRightIcon = {\n name: 'arrow-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowDownIcon = {\n name: 'arrow-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowLeftIcon = {\n name: 'arrow-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelDownIcon = {\n name: 'level-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelUpIcon = {\n name: 'level-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst levelToTopIcon = {\n name: 'level-to-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst colResizeIcon = {\n name: 'col-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsAxesIcon = {\n name: 'arrows-axes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsSwapIcon = {\n name: 'arrows-swap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dragAndDropIcon = {\n name: 'drag-and-drop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst categorizeIcon = {\n name: 'categorize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gridIcon = {\n name: 'grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gridLayoutIcon = {\n name: 'grid-layout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupIcon = {\n name: 'group',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst ungroupIcon = {\n name: 'ungroup',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleDragIcon = {\n name: 'handle-drag',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutIcon = {\n name: 'layout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layout1By4Icon = {\n name: 'layout-1-by-4',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layout2By2Icon = {\n name: 'layout-2-by-2',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutSideBySideIcon = {\n name: 'layout-side-by-side',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst layoutStackedIcon = {\n name: 'layout-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst columnsIcon = {\n name: 'columns',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rowsIcon = {\n name: 'rows',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst reorderIcon = {\n name: 'reorder',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst menuIcon = {\n name: 'menu',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst moreVerticalIcon = {\n name: 'more-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst moreHorizontalIcon = {\n name: 'more-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst overlapIcon = {\n name: 'overlap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst homeIcon = {\n name: 'home',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsLeftRightIcon = {\n name: 'arrows-left-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsTopBottomIcon = {\n name: 'arrows-top-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusBottomLeftIcon = {\n name: 'border-radius-bottom-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusBottomRightIcon = {\n name: 'border-radius-bottom-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusTopLeftIcon = {\n name: 'border-radius-top-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusTopRightIcon = {\n name: 'border-radius-top-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRadiusIcon = {\n name: 'border-radius',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleBottomIcon = {\n name: 'border-style-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleLeftIcon = {\n name: 'border-style-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleRightIcon = {\n name: 'border-style-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleTopIcon = {\n name: 'border-style-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderStyleIcon = {\n name: 'border-style',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst boxSizingIcon = {\n name: 'box-sizing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleDownIcon = {\n name: 'chevron-double-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleLeftIcon = {\n name: 'chevron-double-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleRightIcon = {\n name: 'chevron-double-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chevronDoubleUpIcon = {\n name: 'chevron-double-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataOdsIcon = {\n name: 'data-ods',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst nonRecurrenceIcon = {\n name: 'non-recurrence',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayBlockIcon = {\n name: 'display-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayFlexIcon = {\n name: 'display-flex',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayInlineFlexIcon = {\n name: 'display-inline-flex',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletSliderIcon = {\n name: 'droplet-slider',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileReportIcon = {\n name: 'file-report',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gapColumnIcon = {\n name: 'gap-column',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gapRowIcon = {\n name: 'gap-row',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleResizeAltIcon = {\n name: 'handle-resize-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handleResizeIcon = {\n name: 'handle-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imagesIcon = {\n name: 'images',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst letterSpaceIcon = {\n name: 'letter-space',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lineHeightIcon = {\n name: 'line-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listLatinBigIcon = {\n name: 'list-latin-big',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listLatinSmallIcon = {\n name: 'list-latin-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanBigIcon = {\n name: 'list-roman-big',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanSmallIcon = {\n name: 'list-roman-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedOutlineIcon = {\n name: 'list-unordered-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedSquareIcon = {\n name: 'list-unordered-square',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst maxHeightIcon = {\n name: 'max-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst maxWidthIcon = {\n name: 'max-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minHeightIcon = {\n name: 'min-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minWidthIcon = {\n name: 'min-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outlineOffsetIcon = {\n name: 'outline-offset',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outlineWidthIcon = {\n name: 'outline-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingBottomIcon = {\n name: 'padding-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingLeftIcon = {\n name: 'padding-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingRightIcon = {\n name: 'padding-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingTopIcon = {\n name: 'padding-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paddingIcon = {\n name: 'padding',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionBottomIcon = {\n name: 'position-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionLeftIcon = {\n name: 'position-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionRightIcon = {\n name: 'position-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst positionTopIcon = {\n name: 'position-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst regularExpressionIcon = {\n name: 'regular-expression',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst replaceAllIcon = {\n name: 'replace-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst replaceSingleIcon = {\n name: 'replace-single',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst reportElementIcon = {\n name: 'report-element',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rightDoubleQuotesIcon = {\n name: 'right-double-quotes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst wholeWordIcon = {\n name: 'whole-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataSdsIcon = {\n name: 'data-sds',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst downloadLightIcon = {\n name: 'download-light',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyeSlashIcon = {\n name: 'eye-slash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst displayInlineBlockIcon = {\n name: 'display-inline-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperPlaneIcon = {\n name: 'paper-plane',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gaugeLinearIcon = {\n name: 'gauge-linear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gaugeRadialIcon = {\n name: 'gauge-radial',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeBoxIcon = {\n name: 'envelope-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeLinkIcon = {\n name: 'envelope-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopeIcon = {\n name: 'envelope',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst warningCircleIcon = {\n name: 'warning-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst warningTriangleIcon = {\n name: 'warning-triangle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst infoSolidIcon = {\n name: 'info-solid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontGrowIcon = {\n name: 'font-grow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontShrinkIcon = {\n name: 'font-shrink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textOverflowIcon = {\n name: 'text-overflow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textWrapArrowIcon = {\n name: 'text-wrap-arrow',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textTruncateIcon = {\n name: 'text-truncate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textClipIcon = {\n name: 'text-clip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderColorIcon = {\n name: 'border-color',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderTypeIcon = {\n name: 'border-type',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbDownOutlineIcon = {\n name: 'thumb-down-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbDownIcon = {\n name: 'thumb-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbUpOutlineIcon = {\n name: 'thumb-up-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbUpIcon = {\n name: 'thumb-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sparklesIcon = {\n name: 'sparkles',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paragraphMarkIcon = {\n name: 'paragraph-mark',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paragraphHeightIcon = {\n name: 'paragraph-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst userOutlineIcon = {\n name: 'user-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst walletSolidIcon = {\n name: 'wallet-solid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stampIcon = {\n name: 'stamp',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stickyNoteIcon = {\n name: 'sticky-note',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rulerOutlineIcon = {\n name: 'ruler-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eraserOutlineIcon = {\n name: 'eraser-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst editAnnotationsIcon = {\n name: 'edit-annotations',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst highlightIcon = {\n name: 'highlight',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst highlightFreeIcon = {\n name: 'highlight-free',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst freeTextIcon = {\n name: 'free-text',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xLogoIcon = {\n name: 'x-logo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst undoIcon = {\n name: 'undo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redoIcon = {\n name: 'redo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCcwIcon = {\n name: 'arrow-rotate-ccw',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCwIcon = {\n name: 'arrow-rotate-cw',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsNoRepeatIcon = {\n name: 'arrows-no-repeat',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCcwSmallIcon = {\n name: 'arrow-rotate-ccw-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowRotateCwSmallIcon = {\n name: 'arrow-rotate-cw-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clockIcon = {\n name: 'clock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calendarIcon = {\n name: 'calendar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst saveIcon = {\n name: 'save',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst printIcon = {\n name: 'print',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pencilIcon = {\n name: 'pencil',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trashIcon = {\n name: 'trash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperclipIcon = {\n name: 'paperclip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paperclipAltIcon = {\n name: 'paperclip-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkIcon = {\n name: 'link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlinkIcon = {\n name: 'unlink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkVerticalIcon = {\n name: 'link-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlinkVerticalIcon = {\n name: 'unlink-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lockIcon = {\n name: 'lock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unlockIcon = {\n name: 'unlock',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelIcon = {\n name: 'cancel',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelOutlineIcon = {\n name: 'cancel-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cancelCircleIcon = {\n name: 'cancel-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkIcon = {\n name: 'check',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkOutlineIcon = {\n name: 'check-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkCircleIcon = {\n name: 'check-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xIcon = {\n name: 'x',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xOutlineIcon = {\n name: 'x-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst xCircleIcon = {\n name: 'x-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusIcon = {\n name: 'plus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusOutlineIcon = {\n name: 'plus-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusCircleIcon = {\n name: 'plus-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusIcon = {\n name: 'minus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusOutlineIcon = {\n name: 'minus-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusCircleIcon = {\n name: 'minus-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortAscIcon = {\n name: 'sort-asc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortDescIcon = {\n name: 'sort-desc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortClearIcon = {\n name: 'sort-clear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortAscSmallIcon = {\n name: 'sort-asc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sortDescSmallIcon = {\n name: 'sort-desc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterIcon = {\n name: 'filter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterClearIcon = {\n name: 'filter-clear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSmallIcon = {\n name: 'filter-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSortAscSmallIcon = {\n name: 'filter-sort-asc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterSortDescSmallIcon = {\n name: 'filter-sort-desc-small',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterAddExpressionIcon = {\n name: 'filter-add-expression',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filterAddGroupIcon = {\n name: 'filter-add-group',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst loginIcon = {\n name: 'login',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst logoutIcon = {\n name: 'logout',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst downloadIcon = {\n name: 'download',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst uploadIcon = {\n name: 'upload',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hyperlinkOpenIcon = {\n name: 'hyperlink-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hyperlinkOpenSmIcon = {\n name: 'hyperlink-open-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst launchIcon = {\n name: 'launch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowIcon = {\n name: 'window',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowRestoreIcon = {\n name: 'window-restore',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst windowMinimizeIcon = {\n name: 'window-minimize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gearIcon = {\n name: 'gear',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst gearsIcon = {\n name: 'gears',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst wrenchIcon = {\n name: 'wrench',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyeIcon = {\n name: 'eye',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst searchIcon = {\n name: 'search',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomInIcon = {\n name: 'zoom-in',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomOutIcon = {\n name: 'zoom-out',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst arrowsMoveIcon = {\n name: 'arrows-move',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calculatorIcon = {\n name: 'calculator',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cartIcon = {\n name: 'cart',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst connectorIcon = {\n name: 'connector',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst plusSmIcon = {\n name: 'plus-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst minusSmIcon = {\n name: 'minus-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusDenyIcon = {\n name: 'kpi-status-deny',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusHoldIcon = {\n name: 'kpi-status-hold',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst kpiStatusOpenIcon = {\n name: 'kpi-status-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst equalIcon = {\n name: 'equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst notEqualIcon = {\n name: 'not-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst lessOrEqualIcon = {\n name: 'less-or-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst greaterOrEqualIcon = {\n name: 'greater-or-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst divideIcon = {\n name: 'divide',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst accessibilityIcon = {\n name: 'accessibility',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeOutlineIcon = {\n name: 'barcode-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeIcon = {\n name: 'barcode',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeScannerIcon = {\n name: 'barcode-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeOutlineIcon = {\n name: 'qr-code-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeIcon = {\n name: 'qr-code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst qrCodeScannerIcon = {\n name: 'qr-code-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst barcodeQrCodeScannerIcon = {\n name: 'barcode-qr-code-scanner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst signatureIcon = {\n name: 'signature',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst handIcon = {\n name: 'hand',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pointerIcon = {\n name: 'pointer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stickIcon = {\n name: 'stick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unstickIcon = {\n name: 'unstick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst setColumnPositionIcon = {\n name: 'set-column-position',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clockArrowRotateIcon = {\n name: 'clock-arrow-rotate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playIcon = {\n name: 'play',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pauseIcon = {\n name: 'pause',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stopIcon = {\n name: 'stop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rewindIcon = {\n name: 'rewind',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst forwardIcon = {\n name: 'forward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeDownIcon = {\n name: 'volume-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeUpIcon = {\n name: 'volume-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst volumeMuteIcon = {\n name: 'volume-mute',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst hdIcon = {\n name: 'hd',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst closedCaptionsIcon = {\n name: 'closed-captions',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playlistIcon = {\n name: 'playlist',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst musicNotesIcon = {\n name: 'music-notes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst playSmIcon = {\n name: 'play-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pauseSmIcon = {\n name: 'pause-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stopSmIcon = {\n name: 'stop-sm',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst heartOutlineIcon = {\n name: 'heart-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst heartIcon = {\n name: 'heart',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst starOutlineIcon = {\n name: 'star-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst starIcon = {\n name: 'star',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxIcon = {\n name: 'checkbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxCheckedIcon = {\n name: 'checkbox-checked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxIndeterminateIcon = {\n name: 'checkbox-indeterminate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst checkboxNullIcon = {\n name: 'checkbox-null',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst circleIcon = {\n name: 'circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst radiobuttonIcon = {\n name: 'radiobutton',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst radiobuttonCheckedIcon = {\n name: 'radiobutton-checked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bellIcon = {\n name: 'bell',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst infoCircleIcon = {\n name: 'info-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst questionCircleIcon = {\n name: 'question-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exclamationCircleIcon = {\n name: 'exclamation-circle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cameraIcon = {\n name: 'camera',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageIcon = {\n name: 'image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageExportIcon = {\n name: 'image-export',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomActualSizeIcon = {\n name: 'zoom-actual-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst zoomBestFitIcon = {\n name: 'zoom-best-fit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageResizeIcon = {\n name: 'image-resize',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cropIcon = {\n name: 'crop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mirrorIcon = {\n name: 'mirror',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flipHorizontalIcon = {\n name: 'flip-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flipVerticalIcon = {\n name: 'flip-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateIcon = {\n name: 'rotate',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateRightIcon = {\n name: 'rotate-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rotateLeftIcon = {\n name: 'rotate-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst brushIcon = {\n name: 'brush',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paletteIcon = {\n name: 'palette',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletIcon = {\n name: 'droplet',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shapeLineIcon = {\n name: 'shape-line',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst brightnessContrastIcon = {\n name: 'brightness-contrast',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst slidersIcon = {\n name: 'sliders',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst invertColorsIcon = {\n name: 'invert-colors',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst transparencyIcon = {\n name: 'transparency',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst grayscaleIcon = {\n name: 'grayscale',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst blurIcon = {\n name: 'blur',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sharpenIcon = {\n name: 'sharpen',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shapesIcon = {\n name: 'shapes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst roundCornersIcon = {\n name: 'round-corners',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringToFrontIcon = {\n name: 'bring-to-front',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringToBackIcon = {\n name: 'bring-to-back',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringForwardIcon = {\n name: 'bring-forward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bringBackwardIcon = {\n name: 'bring-backward',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStartIcon = {\n name: 'align-self-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfCenterIcon = {\n name: 'align-self-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfEndIcon = {\n name: 'align-self-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStartAltIcon = {\n name: 'align-self-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfCenterAltIcon = {\n name: 'align-self-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfEndAltIcon = {\n name: 'align-self-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsUpIcon = {\n name: 'thumbnails-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsRightIcon = {\n name: 'thumbnails-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsDownIcon = {\n name: 'thumbnails-down',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst thumbnailsLeftIcon = {\n name: 'thumbnails-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fullscreenIcon = {\n name: 'fullscreen',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fullscreenExitIcon = {\n name: 'fullscreen-exit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dropletSlashIcon = {\n name: 'droplet-slash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst photosIcon = {\n name: 'photos',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignToGridIcon = {\n name: 'align-to-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sizeToGridIcon = {\n name: 'size-to-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameSizeIcon = {\n name: 'make-same-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameWidthIcon = {\n name: 'make-same-width',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeSameHeightIcon = {\n name: 'make-same-height',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeHorizontalSpacingEqualIcon = {\n name: 'make-horizontal-spacing-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst increaseHorizontalSpacingIcon = {\n name: 'increase-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decreaseHorizontalSpacingIcon = {\n name: 'decrease-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst removeHorizontalSpacingIcon = {\n name: 'remove-horizontal-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst makeVerticalSpacingEqualIcon = {\n name: 'make-vertical-spacing-equal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst increaseVerticalSpacingIcon = {\n name: 'increase-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decreaseVerticalSpacingIcon = {\n name: 'decrease-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst removeVerticalSpacingIcon = {\n name: 'remove-vertical-spacing',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst eyedropperIcon = {\n name: 'eyedropper',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapGridIcon = {\n name: 'snap-grid',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapToGridlinesIcon = {\n name: 'snap-to-gridlines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst snapToSnaplinesIcon = {\n name: 'snap-to-snaplines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dimensionsIcon = {\n name: 'dimensions',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStretchIcon = {\n name: 'align-self-stretch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignSelfStretchAltIcon = {\n name: 'align-self-stretch-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStartIcon = {\n name: 'align-items-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsCenterIcon = {\n name: 'align-items-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsEndIcon = {\n name: 'align-items-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStretchIcon = {\n name: 'align-items-stretch',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsBaselineIcon = {\n name: 'align-items-baseline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStartAltIcon = {\n name: 'align-items-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsCenterAltIcon = {\n name: 'align-items-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsEndAltIcon = {\n name: 'align-items-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsStretchAltIcon = {\n name: 'align-items-stretch-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignItemsBaselineAltIcon = {\n name: 'align-items-baseline-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentStartIcon = {\n name: 'justify-content-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentCenterIcon = {\n name: 'justify-content-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentEndIcon = {\n name: 'justify-content-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentBetweenIcon = {\n name: 'justify-content-between',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentAroundIcon = {\n name: 'justify-content-around',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentStartAltIcon = {\n name: 'justify-content-start-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentCenterAltIcon = {\n name: 'justify-content-center-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentEndAltIcon = {\n name: 'justify-content-end-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentBetweenAltIcon = {\n name: 'justify-content-between-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst justifyContentAroundAltIcon = {\n name: 'justify-content-around-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileWrenchIcon = {\n name: 'file-wrench',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst boldIcon = {\n name: 'bold',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst italicIcon = {\n name: 'italic',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst underlineIcon = {\n name: 'underline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontFamilyIcon = {\n name: 'font-family',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst foregroundColorIcon = {\n name: 'foreground-color',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst convertLowercaseIcon = {\n name: 'convert-lowercase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst convertUppercaseIcon = {\n name: 'convert-uppercase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst strikethroughIcon = {\n name: 'strikethrough',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst subscriptIcon = {\n name: 'subscript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst supscriptIcon = {\n name: 'supscript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst divIcon = {\n name: 'div',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst allIcon = {\n name: 'all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h1Icon = {\n name: 'h1',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h2Icon = {\n name: 'h2',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h3Icon = {\n name: 'h3',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h4Icon = {\n name: 'h4',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h5Icon = {\n name: 'h5',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst h6Icon = {\n name: 'h6',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listOrderedIcon = {\n name: 'list-ordered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listUnorderedIcon = {\n name: 'list-unordered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst indentIcon = {\n name: 'indent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst outdentIcon = {\n name: 'outdent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertTopIcon = {\n name: 'insert-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertMiddleIcon = {\n name: 'insert-middle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst insertBottomIcon = {\n name: 'insert-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignTopIcon = {\n name: 'align-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignMiddleIcon = {\n name: 'align-middle',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignBottomIcon = {\n name: 'align-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignLeftIcon = {\n name: 'align-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignCenterIcon = {\n name: 'align-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignRightIcon = {\n name: 'align-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignJustifyIcon = {\n name: 'align-justify',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst alignRemoveIcon = {\n name: 'align-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textWrapIcon = {\n name: 'text-wrap',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst horizontalRuleIcon = {\n name: 'horizontal-rule',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopLeftIcon = {\n name: 'table-align-top-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopCenterIcon = {\n name: 'table-align-top-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignTopRightIcon = {\n name: 'table-align-top-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleLeftIcon = {\n name: 'table-align-middle-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleCenterIcon = {\n name: 'table-align-middle-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignMiddleRightIcon = {\n name: 'table-align-middle-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomLeftIcon = {\n name: 'table-align-bottom-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomCenterIcon = {\n name: 'table-align-bottom-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignBottomRightIcon = {\n name: 'table-align-bottom-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAlignRemoveIcon = {\n name: 'table-align-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersAllIcon = {\n name: 'borders-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersOutsideIcon = {\n name: 'borders-outside',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideIcon = {\n name: 'borders-inside',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideHorizontalIcon = {\n name: 'borders-inside-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersInsideVerticalIcon = {\n name: 'borders-inside-vertical',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderTopIcon = {\n name: 'border-top',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderBottomIcon = {\n name: 'border-bottom',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderLeftIcon = {\n name: 'border-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst borderRightIcon = {\n name: 'border-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersNoneIcon = {\n name: 'borders-none',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bordersShowHideIcon = {\n name: 'borders-show-hide',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formIcon = {\n name: 'form',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formElementIcon = {\n name: 'form-element',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst codeSnippetIcon = {\n name: 'code-snippet',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst selectAllIcon = {\n name: 'select-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst buttonIcon = {\n name: 'button',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst selectBoxIcon = {\n name: 'select-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst calendarDateIcon = {\n name: 'calendar-date',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupBoxIcon = {\n name: 'group-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textareaIcon = {\n name: 'textarea',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textboxIcon = {\n name: 'textbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst textboxHiddenIcon = {\n name: 'textbox-hidden',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst passwordIcon = {\n name: 'password',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paragraphAddIcon = {\n name: 'paragraph-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst editToolsIcon = {\n name: 'edit-tools',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst templateManagerIcon = {\n name: 'template-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst changeManuallyIcon = {\n name: 'change-manually',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesIcon = {\n name: 'track-changes',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesEnableIcon = {\n name: 'track-changes-enable',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesAcceptIcon = {\n name: 'track-changes-accept',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesAcceptAllIcon = {\n name: 'track-changes-accept-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesRejectIcon = {\n name: 'track-changes-reject',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst trackChangesRejectAllIcon = {\n name: 'track-changes-reject-all',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst documentManagerIcon = {\n name: 'document-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst customIconIcon = {\n name: 'custom-icon',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bookIcon = {\n name: 'book',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageAddIcon = {\n name: 'image-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageEditIcon = {\n name: 'image-edit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageMapEditorIcon = {\n name: 'image-map-editor',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentIcon = {\n name: 'comment',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentRemoveIcon = {\n name: 'comment-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst commentsRemoveIcon = {\n name: 'comments-remove',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst silverlightIcon = {\n name: 'silverlight',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mediaManagerIcon = {\n name: 'media-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst videoExternalIcon = {\n name: 'video-external',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst flashManagerIcon = {\n name: 'flash-manager',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst binocularsIcon = {\n name: 'binoculars',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst copyIcon = {\n name: 'copy',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cutIcon = {\n name: 'cut',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardIcon = {\n name: 'clipboard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardCodeIcon = {\n name: 'clipboard-code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardWordIcon = {\n name: 'clipboard-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardWordAltIcon = {\n name: 'clipboard-word-alt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardHtmlIcon = {\n name: 'clipboard-html',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardMarkdownIcon = {\n name: 'clipboard-markdown',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clipboardTextIcon = {\n name: 'clipboard-text',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst applyFormatIcon = {\n name: 'apply-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst clearCssIcon = {\n name: 'clear-css',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst copyFormatIcon = {\n name: 'copy-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripAllFormattingIcon = {\n name: 'strip-all-formatting',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripCssFormatIcon = {\n name: 'strip-css-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripFontElementsIcon = {\n name: 'strip-font-elements',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripSpanElementsIcon = {\n name: 'strip-span-elements',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stripWordFormattingIcon = {\n name: 'strip-word-formatting',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formatCodeBlockIcon = {\n name: 'format-code-block',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst buildingBlocksIcon = {\n name: 'building-blocks',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst puzzlePieceIcon = {\n name: 'puzzle-piece',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkAddIcon = {\n name: 'link-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeLinkIcon = {\n name: 'globe-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeUnlinkIcon = {\n name: 'globe-unlink',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopLinkIcon = {\n name: 'envelop-link',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst anchorIcon = {\n name: 'anchor',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableAddIcon = {\n name: 'table-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableIcon = {\n name: 'table',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePropertiesIcon = {\n name: 'table-properties',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellIcon = {\n name: 'table-cell',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellPropertiesIcon = {\n name: 'table-cell-properties',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnInsertLeftIcon = {\n name: 'table-column-insert-left',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnInsertRightIcon = {\n name: 'table-column-insert-right',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowInsertAboveIcon = {\n name: 'table-row-insert-above',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowInsertBelowIcon = {\n name: 'table-row-insert-below',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnDeleteIcon = {\n name: 'table-column-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowDeleteIcon = {\n name: 'table-row-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCellDeleteIcon = {\n name: 'table-cell-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableDeleteIcon = {\n name: 'table-delete',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeIcon = {\n name: 'cells-merge',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeHorizontallyIcon = {\n name: 'cells-merge-horizontally',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellsMergeVerticallyIcon = {\n name: 'cells-merge-vertically',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellSplitHorizontallyIcon = {\n name: 'cell-split-horizontally',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cellSplitVerticallyIcon = {\n name: 'cell-split-vertically',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableUnmergeIcon = {\n name: 'table-unmerge',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst paneFreezeIcon = {\n name: 'pane-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rowFreezeIcon = {\n name: 'row-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst columnFreezeIcon = {\n name: 'column-freeze',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst toolbarFloatIcon = {\n name: 'toolbar-float',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst spellCheckerIcon = {\n name: 'spell-checker',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst validationXhtmlIcon = {\n name: 'validation-xhtml',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst validationDataIcon = {\n name: 'validation-data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst toggleFullScreenModeIcon = {\n name: 'toggle-full-screen-mode',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst formulaFxIcon = {\n name: 'formula-fx',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst sumIcon = {\n name: 'sum',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst symbolIcon = {\n name: 'symbol',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dollarIcon = {\n name: 'dollar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst percentIcon = {\n name: 'percent',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst customFormatIcon = {\n name: 'custom-format',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decimalIncreaseIcon = {\n name: 'decimal-increase',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst decimalDecreaseIcon = {\n name: 'decimal-decrease',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fontSizeIcon = {\n name: 'font-size',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst imageAbsolutePositionIcon = {\n name: 'image-absolute-position',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableWizardIcon = {\n name: 'table-wizard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst crosstabIcon = {\n name: 'crosstab',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst crosstabWizardIcon = {\n name: 'crosstab-wizard',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableBodyIcon = {\n name: 'table-body',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableColumnGroupsIcon = {\n name: 'table-column-groups',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableCornerIcon = {\n name: 'table-corner',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tableRowGroupsIcon = {\n name: 'table-row-groups',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeOutlineIcon = {\n name: 'globe-outline',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst globeIcon = {\n name: 'globe',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mapMarkerIcon = {\n name: 'map-marker',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst mapMarkerTargetIcon = {\n name: 'map-marker-target',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinIcon = {\n name: 'pin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst unpinIcon = {\n name: 'unpin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst shareIcon = {\n name: 'share',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst userIcon = {\n name: 'user',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst inboxIcon = {\n name: 'inbox',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bloggerIcon = {\n name: 'blogger',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst bloggerBoxIcon = {\n name: 'blogger-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst deliciousIcon = {\n name: 'delicious',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst deliciousBoxIcon = {\n name: 'delicious-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst diggIcon = {\n name: 'digg',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst diggBoxIcon = {\n name: 'digg-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopIcon = {\n name: 'envelop',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst envelopBoxIcon = {\n name: 'envelop-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst facebookIcon = {\n name: 'facebook',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst facebookBoxIcon = {\n name: 'facebook-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googleIcon = {\n name: 'google',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googleBoxIcon = {\n name: 'google-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googlePlusIcon = {\n name: 'google-plus',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst googlePlusBoxIcon = {\n name: 'google-plus-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkedinIcon = {\n name: 'linkedin',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst linkedinBoxIcon = {\n name: 'linkedin-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst myspaceIcon = {\n name: 'myspace',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst myspaceBoxIcon = {\n name: 'myspace-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinterestIcon = {\n name: 'pinterest',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pinterestBoxIcon = {\n name: 'pinterest-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redditIcon = {\n name: 'reddit',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst redditBoxIcon = {\n name: 'reddit-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stumbleUponIcon = {\n name: 'stumble-upon',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst stumbleUponBoxIcon = {\n name: 'stumble-upon-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tellAFriendIcon = {\n name: 'tell-a-friend',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tellAFriendBoxIcon = {\n name: 'tell-a-friend-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tumblrIcon = {\n name: 'tumblr',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tumblrBoxIcon = {\n name: 'tumblr-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst twitterIcon = {\n name: 'twitter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst twitterBoxIcon = {\n name: 'twitter-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst yammerIcon = {\n name: 'yammer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst yammerBoxIcon = {\n name: 'yammer-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst behanceIcon = {\n name: 'behance',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst behanceBoxIcon = {\n name: 'behance-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dribbbleIcon = {\n name: 'dribbble',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dribbbleBoxIcon = {\n name: 'dribbble-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rssIcon = {\n name: 'rss',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst rssBoxIcon = {\n name: 'rss-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vimeoIcon = {\n name: 'vimeo',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vimeoBoxIcon = {\n name: 'vimeo-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst youtubeIcon = {\n name: 'youtube',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst youtubeBoxIcon = {\n name: 'youtube-box',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderIcon = {\n name: 'folder',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderOpenIcon = {\n name: 'folder-open',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderAddIcon = {\n name: 'folder-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderUpIcon = {\n name: 'folder-up',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst folderMoreIcon = {\n name: 'folder-more',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst aggregateFieldsIcon = {\n name: 'aggregate-fields',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileIcon = {\n name: 'file',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAddIcon = {\n name: 'file-add',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileTxtIcon = {\n name: 'file-txt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileCsvIcon = {\n name: 'file-csv',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileExcelIcon = {\n name: 'file-excel',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileWordIcon = {\n name: 'file-word',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileMdbIcon = {\n name: 'file-mdb',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePptIcon = {\n name: 'file-ppt',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePdfIcon = {\n name: 'file-pdf',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePsdIcon = {\n name: 'file-psd',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileFlashIcon = {\n name: 'file-flash',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileConfigIcon = {\n name: 'file-config',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAscxIcon = {\n name: 'file-ascx',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileBacIcon = {\n name: 'file-bac',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileZipIcon = {\n name: 'file-zip',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filmIcon = {\n name: 'film',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst css3Icon = {\n name: 'css3',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst html5Icon = {\n name: 'html5',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst codeIcon = {\n name: 'code',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cssIcon = {\n name: 'css',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst jsIcon = {\n name: 'js',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exeIcon = {\n name: 'exe',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst csprojIcon = {\n name: 'csproj',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vbprojIcon = {\n name: 'vbproj',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst csIcon = {\n name: 'cs',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst vbIcon = {\n name: 'vb',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst slnIcon = {\n name: 'sln',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst cloudIcon = {\n name: 'cloud',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileHorizontalIcon = {\n name: 'file-horizontal',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst subreportIcon = {\n name: 'subreport',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataIcon = {\n name: 'data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileHeaderIcon = {\n name: 'file-header',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileFooterIcon = {\n name: 'file-footer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupHeaderSectionIcon = {\n name: 'group-header-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupFooterSectionIcon = {\n name: 'group-footer-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pageHeaderSectionIcon = {\n name: 'page-header-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst pageFooterSectionIcon = {\n name: 'page-footer-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst detailSectionIcon = {\n name: 'detail-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tocSectionIcon = {\n name: 'toc-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupSectionIcon = {\n name: 'group-section',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersIcon = {\n name: 'parameters',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataCsvIcon = {\n name: 'data-csv',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataJsonIcon = {\n name: 'data-json',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataSqlIcon = {\n name: 'data-sql',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataWebIcon = {\n name: 'data-web',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst groupCollectionIcon = {\n name: 'group-collection',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterBooleanIcon = {\n name: 'parameter-boolean',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterDateTimeIcon = {\n name: 'parameter-date-time',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterFloatIcon = {\n name: 'parameter-float',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterIntegerIcon = {\n name: 'parameter-integer',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parameterStringIcon = {\n name: 'parameter-string',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tocSectionLevelIcon = {\n name: 'toc-section-level',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst inheritedIcon = {\n name: 'inherited',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileVideoIcon = {\n name: 'file-video',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileAudioIcon = {\n name: 'file-audio',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileImageIcon = {\n name: 'file-image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filePresentationIcon = {\n name: 'file-presentation',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileDataIcon = {\n name: 'file-data',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileDiscImageIcon = {\n name: 'file-disc-image',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileProgrammingIcon = {\n name: 'file-programming',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersByteArrayIcon = {\n name: 'parameters-byte-array',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst parametersUnknownIcon = {\n name: 'parameters-unknown',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileErrorIcon = {\n name: 'file-error',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst filesErrorIcon = {\n name: 'files-error',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst dataRestIcon = {\n name: 'data-rest',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst fileTypescriptIcon = {\n name: 'file-typescript',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionStartIcon = {\n name: 'table-position-start',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionCenterIcon = {\n name: 'table-position-center',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst tablePositionEndIcon = {\n name: 'table-position-end',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanUpperIcon = {\n name: 'list-roman-upper',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst listRomanLowerIcon = {\n name: 'list-roman-lower',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst importIcon = {\n name: 'import',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst exportIcon = {\n name: 'export',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst graphIcon = {\n name: 'graph',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnClusteredIcon = {\n name: 'chart-column-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnStackedIcon = {\n name: 'chart-column-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnStacked100Icon = {\n name: 'chart-column-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartColumnRangeIcon = {\n name: 'chart-column-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarClusteredIcon = {\n name: 'chart-bar-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarStackedIcon = {\n name: 'chart-bar-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarStacked100Icon = {\n name: 'chart-bar-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBarRangeIcon = {\n name: 'chart-bar-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaClusteredIcon = {\n name: 'chart-area-clustered',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaStackedIcon = {\n name: 'chart-area-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaStacked100Icon = {\n name: 'chart-area-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartAreaRangeIcon = {\n name: 'chart-area-range',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineIcon = {\n name: 'chart-line',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStackedIcon = {\n name: 'chart-line-stacked',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStacked100Icon = {\n name: 'chart-line-stacked100',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineMarkersIcon = {\n name: 'chart-line-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStackedMarkersIcon = {\n name: 'chart-line-stacked-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartLineStacked100MarkersIcon = {\n name: 'chart-line-stacked100-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartPieIcon = {\n name: 'chart-pie',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartDoughnutIcon = {\n name: 'chart-doughnut',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterIcon = {\n name: 'chart-scatter',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterSmoothLinesMarkersIcon = {\n name: 'chart-scatter-smooth-lines-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterSmoothLinesIcon = {\n name: 'chart-scatter-smooth-lines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterStraightLinesMarkersIcon = {\n name: 'chart-scatter-straight-lines-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartScatterStraightLinesIcon = {\n name: 'chart-scatter-straight-lines',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartBubbleIcon = {\n name: 'chart-bubble',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartCandlestickIcon = {\n name: 'chart-candlestick',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartOhlcIcon = {\n name: 'chart-ohlc',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarIcon = {\n name: 'chart-radar',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarMarkersIcon = {\n name: 'chart-radar-markers',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRadarFilledIcon = {\n name: 'chart-radar-filled',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartRoseIcon = {\n name: 'chart-rose',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nconst chartChoroplethIcon = {\n name: 'chart-choropleth',\n content: '',\n viewBox: '0 0 512 512'\n};\n\nexport { accessibilityIcon, aggregateFieldsIcon, alignBottomIcon, alignCenterIcon, alignItemsBaselineAltIcon, alignItemsBaselineIcon, alignItemsCenterAltIcon, alignItemsCenterIcon, alignItemsEndAltIcon, alignItemsEndIcon, alignItemsStartAltIcon, alignItemsStartIcon, alignItemsStretchAltIcon, alignItemsStretchIcon, alignJustifyIcon, alignLeftIcon, alignMiddleIcon, alignRemoveIcon, alignRightIcon, alignSelfCenterAltIcon, alignSelfCenterIcon, alignSelfEndAltIcon, alignSelfEndIcon, alignSelfStartAltIcon, alignSelfStartIcon, alignSelfStretchAltIcon, alignSelfStretchIcon, alignToGridIcon, alignTopIcon, allIcon, anchorIcon, applyFormatIcon, arrowDownIcon, arrowLeftIcon, arrowOverflowDownIcon, arrowRightIcon, arrowRotateCcwIcon, arrowRotateCcwSmallIcon, arrowRotateCwIcon, arrowRotateCwSmallIcon, arrowUpIcon, arrowsAxesIcon, arrowsLeftRightIcon, arrowsMoveIcon, arrowsNoChangeIcon, arrowsNoRepeatIcon, arrowsSwapIcon, arrowsTopBottomIcon, barcodeIcon, barcodeOutlineIcon, barcodeQrCodeScannerIcon, barcodeScannerIcon, behanceBoxIcon, behanceIcon, bellIcon, binocularsIcon, bloggerBoxIcon, bloggerIcon, blurIcon, boldIcon, bookIcon, borderBottomIcon, borderColorIcon, borderLeftIcon, borderRadiusBottomLeftIcon, borderRadiusBottomRightIcon, borderRadiusIcon, borderRadiusTopLeftIcon, borderRadiusTopRightIcon, borderRightIcon, borderStyleBottomIcon, borderStyleIcon, borderStyleLeftIcon, borderStyleRightIcon, borderStyleTopIcon, borderTopIcon, borderTypeIcon, bordersAllIcon, bordersInsideHorizontalIcon, bordersInsideIcon, bordersInsideVerticalIcon, bordersNoneIcon, bordersOutsideIcon, bordersShowHideIcon, boxSizingIcon, brightnessContrastIcon, bringBackwardIcon, bringForwardIcon, bringToBackIcon, bringToFrontIcon, brushIcon, buildingBlocksIcon, buttonIcon, calculatorIcon, calendarDateIcon, calendarIcon, cameraIcon, cancelCircleIcon, cancelIcon, cancelOutlineIcon, caretAltDownIcon, caretAltExpandIcon, caretAltLeftIcon, caretAltRightIcon, caretAltToBottomIcon, caretAltToLeftIcon, caretAltToRightIcon, caretAltToTopIcon, caretAltUpIcon, caretBlIcon, caretBrIcon, caretDoubleAltDownIcon, caretDoubleAltLeftIcon, caretDoubleAltRightIcon, caretDoubleAltUpIcon, caretTlIcon, caretTrIcon, cartIcon, categorizeIcon, cellSplitHorizontallyIcon, cellSplitVerticallyIcon, cellsMergeHorizontallyIcon, cellsMergeIcon, cellsMergeVerticallyIcon, changeManuallyIcon, chartAreaClusteredIcon, chartAreaRangeIcon, chartAreaStacked100Icon, chartAreaStackedIcon, chartBarClusteredIcon, chartBarRangeIcon, chartBarStacked100Icon, chartBarStackedIcon, chartBubbleIcon, chartCandlestickIcon, chartChoroplethIcon, chartColumnClusteredIcon, chartColumnRangeIcon, chartColumnStacked100Icon, chartColumnStackedIcon, chartDoughnutIcon, chartLineIcon, chartLineMarkersIcon, chartLineStacked100Icon, chartLineStacked100MarkersIcon, chartLineStackedIcon, chartLineStackedMarkersIcon, chartOhlcIcon, chartPieIcon, chartRadarFilledIcon, chartRadarIcon, chartRadarMarkersIcon, chartRoseIcon, chartScatterIcon, chartScatterSmoothLinesIcon, chartScatterSmoothLinesMarkersIcon, chartScatterStraightLinesIcon, chartScatterStraightLinesMarkersIcon, checkCircleIcon, checkIcon, checkOutlineIcon, checkboxCheckedIcon, checkboxIcon, checkboxIndeterminateIcon, checkboxNullIcon, chevronDoubleDownIcon, chevronDoubleLeftIcon, chevronDoubleRightIcon, chevronDoubleUpIcon, chevronDownIcon, chevronLeftIcon, chevronRightIcon, chevronUpIcon, circleIcon, clearCssIcon, clipboardCodeIcon, clipboardHtmlIcon, clipboardIcon, clipboardMarkdownIcon, clipboardTextIcon, clipboardWordAltIcon, clipboardWordIcon, clockArrowRotateIcon, clockIcon, closedCaptionsIcon, cloudIcon, codeIcon, codeSnippetIcon, colResizeIcon, columnFreezeIcon, columnsIcon, commentIcon, commentRemoveIcon, commentsRemoveIcon, connectorIcon, convertLowercaseIcon, convertUppercaseIcon, copyFormatIcon, copyIcon, cropIcon, crosstabIcon, crosstabWizardIcon, csIcon, csprojIcon, css3Icon, cssIcon, customFormatIcon, customIconIcon, cutIcon, dataCsvIcon, dataIcon, dataJsonIcon, dataOdsIcon, dataRestIcon, dataSdsIcon, dataSqlIcon, dataWebIcon, decimalDecreaseIcon, decimalIncreaseIcon, decreaseHorizontalSpacingIcon, decreaseVerticalSpacingIcon, deliciousBoxIcon, deliciousIcon, detailSectionIcon, diggBoxIcon, diggIcon, dimensionsIcon, displayBlockIcon, displayFlexIcon, displayInlineBlockIcon, displayInlineFlexIcon, divIcon, divideIcon, documentManagerIcon, dollarIcon, downloadIcon, downloadLightIcon, dragAndDropIcon, dribbbleBoxIcon, dribbbleIcon, dropletIcon, dropletSlashIcon, dropletSliderIcon, editAnnotationsIcon, editToolsIcon, envelopBoxIcon, envelopIcon, envelopLinkIcon, envelopeBoxIcon, envelopeIcon, envelopeLinkIcon, equalIcon, eraserOutlineIcon, exclamationCircleIcon, exeIcon, exportIcon, eyeIcon, eyeSlashIcon, eyedropperIcon, facebookBoxIcon, facebookIcon, fileAddIcon, fileAscxIcon, fileAudioIcon, fileBacIcon, fileConfigIcon, fileCsvIcon, fileDataIcon, fileDiscImageIcon, fileErrorIcon, fileExcelIcon, fileFlashIcon, fileFooterIcon, fileHeaderIcon, fileHorizontalIcon, fileIcon, fileImageIcon, fileMdbIcon, filePdfIcon, filePptIcon, filePresentationIcon, fileProgrammingIcon, filePsdIcon, fileReportIcon, fileTxtIcon, fileTypescriptIcon, fileVideoIcon, fileWordIcon, fileWrenchIcon, fileZipIcon, filesErrorIcon, filmIcon, filterAddExpressionIcon, filterAddGroupIcon, filterClearIcon, filterIcon, filterSmallIcon, filterSortAscSmallIcon, filterSortDescSmallIcon, flashManagerIcon, flipHorizontalIcon, flipVerticalIcon, folderAddIcon, folderIcon, folderMoreIcon, folderOpenIcon, folderUpIcon, fontFamilyIcon, fontGrowIcon, fontShrinkIcon, fontSizeIcon, foregroundColorIcon, formElementIcon, formIcon, formatCodeBlockIcon, formulaFxIcon, forwardIcon, freeTextIcon, fullscreenExitIcon, fullscreenIcon, gapColumnIcon, gapRowIcon, gaugeLinearIcon, gaugeRadialIcon, gearIcon, gearsIcon, globeIcon, globeLinkIcon, globeOutlineIcon, globeUnlinkIcon, googleBoxIcon, googleIcon, googlePlusBoxIcon, googlePlusIcon, graphIcon, grayscaleIcon, greaterOrEqualIcon, gridIcon, gridLayoutIcon, groupBoxIcon, groupCollectionIcon, groupFooterSectionIcon, groupHeaderSectionIcon, groupIcon, groupSectionIcon, h1Icon, h2Icon, h3Icon, h4Icon, h5Icon, h6Icon, handIcon, handleDragIcon, handleResizeAltIcon, handleResizeIcon, hdIcon, heartIcon, heartOutlineIcon, highlightFreeIcon, highlightIcon, homeIcon, horizontalRuleIcon, html5Icon, hyperlinkOpenIcon, hyperlinkOpenSmIcon, imageAbsolutePositionIcon, imageAddIcon, imageEditIcon, imageExportIcon, imageIcon, imageMapEditorIcon, imageResizeIcon, imagesIcon, importIcon, inboxIcon, increaseHorizontalSpacingIcon, increaseVerticalSpacingIcon, indentIcon, infoCircleIcon, infoSolidIcon, inheritedIcon, insertBottomIcon, insertMiddleIcon, insertTopIcon, invertColorsIcon, italicIcon, jsIcon, justifyContentAroundAltIcon, justifyContentAroundIcon, justifyContentBetweenAltIcon, justifyContentBetweenIcon, justifyContentCenterAltIcon, justifyContentCenterIcon, justifyContentEndAltIcon, justifyContentEndIcon, justifyContentStartAltIcon, justifyContentStartIcon, kpiStatusDenyIcon, kpiStatusHoldIcon, kpiStatusOpenIcon, launchIcon, layout1By4Icon, layout2By2Icon, layoutIcon, layoutSideBySideIcon, layoutStackedIcon, lessOrEqualIcon, letterSpaceIcon, levelDownIcon, levelToTopIcon, levelUpIcon, lineHeightIcon, linkAddIcon, linkIcon, linkVerticalIcon, linkedinBoxIcon, linkedinIcon, listLatinBigIcon, listLatinSmallIcon, listOrderedIcon, listRomanBigIcon, listRomanLowerIcon, listRomanSmallIcon, listRomanUpperIcon, listUnorderedIcon, listUnorderedOutlineIcon, listUnorderedSquareIcon, lockIcon, loginIcon, logoutIcon, makeHorizontalSpacingEqualIcon, makeSameHeightIcon, makeSameSizeIcon, makeSameWidthIcon, makeVerticalSpacingEqualIcon, mapMarkerIcon, mapMarkerTargetIcon, maxHeightIcon, maxWidthIcon, mediaManagerIcon, menuIcon, minHeightIcon, minWidthIcon, minusCircleIcon, minusIcon, minusOutlineIcon, minusSmIcon, mirrorIcon, moreHorizontalIcon, moreVerticalIcon, musicNotesIcon, myspaceBoxIcon, myspaceIcon, nonRecurrenceIcon, notEqualIcon, outdentIcon, outlineOffsetIcon, outlineWidthIcon, overlapIcon, paddingBottomIcon, paddingIcon, paddingLeftIcon, paddingRightIcon, paddingTopIcon, pageFooterSectionIcon, pageHeaderSectionIcon, paletteIcon, paneFreezeIcon, paperPlaneIcon, paperclipAltIcon, paperclipIcon, paragraphAddIcon, paragraphHeightIcon, paragraphMarkIcon, parameterBooleanIcon, parameterDateTimeIcon, parameterFloatIcon, parameterIntegerIcon, parameterStringIcon, parametersByteArrayIcon, parametersIcon, parametersUnknownIcon, passwordIcon, pauseIcon, pauseSmIcon, pencilIcon, percentIcon, photosIcon, pinIcon, pinterestBoxIcon, pinterestIcon, playIcon, playSmIcon, playlistIcon, plusCircleIcon, plusIcon, plusOutlineIcon, plusSmIcon, pointerIcon, positionBottomIcon, positionLeftIcon, positionRightIcon, positionTopIcon, printIcon, puzzlePieceIcon, qrCodeIcon, qrCodeOutlineIcon, qrCodeScannerIcon, questionCircleIcon, radiobuttonCheckedIcon, radiobuttonIcon, redditBoxIcon, redditIcon, redoIcon, regularExpressionIcon, removeHorizontalSpacingIcon, removeVerticalSpacingIcon, reorderIcon, replaceAllIcon, replaceSingleIcon, reportElementIcon, rewindIcon, rightDoubleQuotesIcon, rotateIcon, rotateLeftIcon, rotateRightIcon, roundCornersIcon, rowFreezeIcon, rowsIcon, rssBoxIcon, rssIcon, rulerOutlineIcon, saveIcon, searchIcon, selectAllIcon, selectBoxIcon, setColumnPositionIcon, shapeLineIcon, shapesIcon, shareIcon, sharpenIcon, signatureIcon, silverlightIcon, sizeToGridIcon, slidersIcon, slnIcon, snapGridIcon, snapToGridlinesIcon, snapToSnaplinesIcon, sortAscIcon, sortAscSmallIcon, sortClearIcon, sortDescIcon, sortDescSmallIcon, sparklesIcon, spellCheckerIcon, stampIcon, starIcon, starOutlineIcon, stickIcon, stickyNoteIcon, stopIcon, stopSmIcon, strikethroughIcon, stripAllFormattingIcon, stripCssFormatIcon, stripFontElementsIcon, stripSpanElementsIcon, stripWordFormattingIcon, stumbleUponBoxIcon, stumbleUponIcon, subreportIcon, subscriptIcon, sumIcon, supscriptIcon, symbolIcon, tableAddIcon, tableAlignBottomCenterIcon, tableAlignBottomLeftIcon, tableAlignBottomRightIcon, tableAlignMiddleCenterIcon, tableAlignMiddleLeftIcon, tableAlignMiddleRightIcon, tableAlignRemoveIcon, tableAlignTopCenterIcon, tableAlignTopLeftIcon, tableAlignTopRightIcon, tableBodyIcon, tableCellDeleteIcon, tableCellIcon, tableCellPropertiesIcon, tableColumnDeleteIcon, tableColumnGroupsIcon, tableColumnInsertLeftIcon, tableColumnInsertRightIcon, tableCornerIcon, tableDeleteIcon, tableIcon, tablePositionCenterIcon, tablePositionEndIcon, tablePositionStartIcon, tablePropertiesIcon, tableRowDeleteIcon, tableRowGroupsIcon, tableRowInsertAboveIcon, tableRowInsertBelowIcon, tableUnmergeIcon, tableWizardIcon, tellAFriendBoxIcon, tellAFriendIcon, templateManagerIcon, textClipIcon, textOverflowIcon, textTruncateIcon, textWrapArrowIcon, textWrapIcon, textareaIcon, textboxHiddenIcon, textboxIcon, thumbDownIcon, thumbDownOutlineIcon, thumbUpIcon, thumbUpOutlineIcon, thumbnailsDownIcon, thumbnailsLeftIcon, thumbnailsRightIcon, thumbnailsUpIcon, tocSectionIcon, tocSectionLevelIcon, toggleFullScreenModeIcon, toolbarFloatIcon, trackChangesAcceptAllIcon, trackChangesAcceptIcon, trackChangesEnableIcon, trackChangesIcon, trackChangesRejectAllIcon, trackChangesRejectIcon, transparencyIcon, trashIcon, tumblrBoxIcon, tumblrIcon, twitterBoxIcon, twitterIcon, underlineIcon, undoIcon, ungroupIcon, unlinkIcon, unlinkVerticalIcon, unlockIcon, unpinIcon, unstickIcon, uploadIcon, userIcon, userOutlineIcon, validationDataIcon, validationXhtmlIcon, vbIcon, vbprojIcon, videoExternalIcon, vimeoBoxIcon, vimeoIcon, volumeDownIcon, volumeMuteIcon, volumeUpIcon, walletSolidIcon, warningCircleIcon, warningTriangleIcon, wholeWordIcon, windowIcon, windowMinimizeIcon, windowRestoreIcon, wrenchIcon, xCircleIcon, xIcon, xLogoIcon, xOutlineIcon, yammerBoxIcon, yammerIcon, youtubeBoxIcon, youtubeIcon, zoomActualSizeIcon, zoomBestFitIcon, zoomInIcon, zoomOutIcon };\n","/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n/* Allowed flush values; see deflate() and inflate() below for details */\nvar Z_NO_FLUSH = 0;\nvar Z_PARTIAL_FLUSH = 1;\nvar Z_SYNC_FLUSH = 2;\nvar Z_FULL_FLUSH = 3;\nvar Z_FINISH = 4;\nvar Z_BLOCK = 5;\nvar Z_TREES = 6;\n\n/* Return codes for the compression/decompression functions. Negative values\n* are errors, positive values are used for special but normal events.\n*/\nvar Z_OK = 0;\nvar Z_STREAM_END = 1;\nvar Z_NEED_DICT = 2;\nvar Z_ERRNO = -1;\nvar Z_STREAM_ERROR = -2;\nvar Z_DATA_ERROR = -3;\n//export var Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR = -5;\n//export var Z_VERSION_ERROR = -6;\n\n/* compression levels */\nvar Z_NO_COMPRESSION = 0;\nvar Z_BEST_SPEED = 1;\nvar Z_BEST_COMPRESSION = 9;\nvar Z_DEFAULT_COMPRESSION = -1;\n\n\nvar Z_FILTERED = 1;\nvar Z_HUFFMAN_ONLY = 2;\nvar Z_RLE = 3;\nvar Z_FIXED = 4;\nvar Z_DEFAULT_STRATEGY = 0;\n\n/* Possible values of the data_type field (though see inflate()) */\nvar Z_BINARY = 0;\nvar Z_TEXT = 1;\n//export var Z_ASCII = 1; // = Z_TEXT (deprecated)\nvar Z_UNKNOWN = 2;\n\n/* The deflate compression method */\nvar Z_DEFLATED = 8;\n//export var Z_NULL = null // Use -1 or null inline; depending on var type\n\n/* eslint-disable */\n\nfunction _has(obj, key) {\n return Object.prototype.hasOwnProperty.call(obj, key);\n}\n\nfunction assign(obj /*from1, from2, from3, ...*/) {\n var sources = Array.prototype.slice.call(arguments, 1);\n while (sources.length) {\n var source = sources.shift();\n if (!source) { continue; }\n\n if (typeof source !== 'object') {\n throw new TypeError(source + 'must be non-object');\n }\n\n for (var p in source) {\n if (_has(source, p)) {\n obj[p] = source[p];\n }\n }\n }\n\n return obj;\n}\n\n\n// reduce buffer size, avoiding mem copy\nfunction shrinkBuf(buf, size) {\n if (buf.length === size) { return buf; }\n if (buf.subarray) { return buf.subarray(0, size); }\n buf.length = size;\n return buf;\n}\n\nvar fnTyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n if (src.subarray && dest.subarray) {\n dest.set(src.subarray(src_offs, src_offs + len), dest_offs);\n return;\n }\n // Fallback to ordinary array\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n var i, l, len, pos, chunk, result;\n\n // calculate data length\n len = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n len += chunks[i].length;\n }\n\n // join chunks\n result = new Uint8Array(len);\n pos = 0;\n for (i = 0, l = chunks.length; i < l; i++) {\n chunk = chunks[i];\n result.set(chunk, pos);\n pos += chunk.length;\n }\n\n return result;\n },\n Buf8: function(size) {\n return new Uint8Array(size);\n },\n Buf16: function(size) {\n return new Uint16Array(size);\n },\n Buf32: function(size) {\n return new Int32Array(size);\n }\n};\n\nvar fnUntyped = {\n arraySet: function (dest, src, src_offs, len, dest_offs) {\n for (var i = 0; i < len; i++) {\n dest[dest_offs + i] = src[src_offs + i];\n }\n },\n // Join array of chunks to single array.\n flattenChunks: function (chunks) {\n return [].concat.apply([], chunks);\n },\n Buf8: function(size) {\n return new Array(size);\n },\n Buf16: function(size) {\n return new Array(size);\n },\n Buf32: function(size) {\n return new Array(size);\n }\n};\n\nlet typedOK = () => {\n const supported =\n (typeof Uint8Array !== 'undefined') &&\n (typeof Uint16Array !== 'undefined') &&\n (typeof Int32Array !== 'undefined');\n\n typedOK = () => supported;\n return supported;\n};\n\nlet arraySet = (dest, src, src_offs, len, dest_offs) => {\n arraySet = typedOK() ?\n fnTyped.arraySet : fnUntyped.arraySet;\n\n return arraySet(dest, src, src_offs, len, dest_offs);\n};\n\nlet flattenChunks = (chunks) => {\n flattenChunks = typedOK() ?\n fnTyped.flattenChunks : fnUntyped.flattenChunks;\n\n return flattenChunks(chunks);\n};\n\nlet Buf8 = (size) => {\n Buf8 = typedOK() ? fnTyped.Buf8 : fnUntyped.Buf8;\n return Buf8(size);\n};\n\nlet Buf16 = (size) => {\n Buf16 = typedOK() ? fnTyped.Buf16 : fnUntyped.Buf16;\n return Buf16(size);\n};\n\nlet Buf32 = (size) => {\n Buf32 = typedOK() ? fnTyped.Buf32 : fnUntyped.Buf32;\n return Buf32(size);\n};\n\n/* eslint-disable */\n\n\n// Quick check if we can use fast array to bin string conversion\n//\n// - apply(Array) can fail on Android 2.2\n// - apply(Uint8Array) can fail on iOS 5.1 Safari\nlet strApplyOK = function() {\n let result = true;\n try {\n String.fromCharCode.apply(null, [ 0 ]);\n } catch (_) {\n result = false;\n }\n\n strApplyOK = () => result;\n return result;\n};\n\nlet strApplyUintOK = function() {\n let result = true;\n try {\n String.fromCharCode.apply(null, new Uint8Array(1));\n } catch (_) {\n result = false;\n }\n\n strApplyUintOK = () => result;\n return result;\n};\n\nlet utf8len = function(c) {\n // Table with utf8 lengths (calculated by first byte of sequence)\n // Note, that 5 & 6-byte values and some 4-byte values can not be represented in JS,\n // because max possible codepoint is 0x10ffff\n var table = Buf8(256);\n for (var q = 0; q < 256; q++) {\n table[q] = (q >= 252 ? 6 : q >= 248 ? 5 : q >= 240 ? 4 : q >= 224 ? 3 : q >= 192 ? 2 : 1);\n }\n table[254] = table[254] = 1; // Invalid sequence start\n\n utf8len = arg => table[arg];\n return table[c];\n};\n\n// convert string to array (typed, when possible)\nfunction string2buf(str) {\n var buf, c, c2, m_pos, i, str_len = str.length, buf_len = 0;\n\n // count binary size\n for (m_pos = 0; m_pos < str_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n buf_len += c < 0x80 ? 1 : c < 0x800 ? 2 : c < 0x10000 ? 3 : 4;\n }\n\n // allocate buffer\n buf = new Uint8Array(buf_len);\n\n // convert\n for (i = 0, m_pos = 0; i < buf_len; m_pos++) {\n c = str.charCodeAt(m_pos);\n if ((c & 0xfc00) === 0xd800 && (m_pos + 1 < str_len)) {\n c2 = str.charCodeAt(m_pos + 1);\n if ((c2 & 0xfc00) === 0xdc00) {\n c = 0x10000 + ((c - 0xd800) << 10) + (c2 - 0xdc00);\n m_pos++;\n }\n }\n if (c < 0x80) {\n /* one byte */\n buf[i++] = c;\n } else if (c < 0x800) {\n /* two bytes */\n buf[i++] = 0xC0 | (c >>> 6);\n buf[i++] = 0x80 | (c & 0x3f);\n } else if (c < 0x10000) {\n /* three bytes */\n buf[i++] = 0xE0 | (c >>> 12);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n } else {\n /* four bytes */\n buf[i++] = 0xf0 | (c >>> 18);\n buf[i++] = 0x80 | (c >>> 12 & 0x3f);\n buf[i++] = 0x80 | (c >>> 6 & 0x3f);\n buf[i++] = 0x80 | (c & 0x3f);\n }\n }\n\n return buf;\n}\n\n// Helper (used in 2 places)\nfunction _buf2binstring(buf, len) {\n // On Chrome, the arguments in a function call that are allowed is `65534`.\n // If the length of the buffer is smaller than that, we can use this optimization,\n // otherwise we will take a slower path.\n if (len < 65534) {\n if ((buf.subarray && strApplyUintOK()) || (!buf.subarray && strApplyOK())) {\n return String.fromCharCode.apply(null, shrinkBuf(buf, len));\n }\n }\n\n var result = '';\n for (var i = 0; i < len; i++) {\n result += String.fromCharCode(buf[i]);\n }\n return result;\n}\n\n\n// Convert byte array to binary string\nfunction buf2binstring(buf) {\n return _buf2binstring(buf, buf.length);\n}\n\n\n// Convert binary string (typed, when possible)\nfunction binstring2buf(str) {\n var buf = new Uint8Array(str.length);\n for (var i = 0, len = buf.length; i < len; i++) {\n buf[i] = str.charCodeAt(i);\n }\n return buf;\n}\n\n\n// convert array to string\nfunction buf2string(buf, max) {\n var i, out, c, c_len;\n var len = max || buf.length;\n\n // Reserve max possible length (2 words per char)\n // NB: by unknown reasons, Array is significantly faster for\n // String.fromCharCode.apply than Uint16Array.\n var utf16buf = new Array(len * 2);\n\n for (out = 0, i = 0; i < len;) {\n c = buf[i++];\n // quick process ascii\n if (c < 0x80) { utf16buf[out++] = c; continue; }\n\n c_len = utf8len(c);\n // skip 5 & 6 byte codes\n if (c_len > 4) { utf16buf[out++] = 0xfffd; i += c_len - 1; continue; }\n\n // apply mask on first byte\n c &= c_len === 2 ? 0x1f : c_len === 3 ? 0x0f : 0x07;\n // join the rest\n while (c_len > 1 && i < len) {\n c = (c << 6) | (buf[i++] & 0x3f);\n c_len--;\n }\n\n // terminated by end of string?\n if (c_len > 1) { utf16buf[out++] = 0xfffd; continue; }\n\n if (c < 0x10000) {\n utf16buf[out++] = c;\n } else {\n c -= 0x10000;\n utf16buf[out++] = 0xd800 | ((c >> 10) & 0x3ff);\n utf16buf[out++] = 0xdc00 | (c & 0x3ff);\n }\n }\n\n return _buf2binstring(utf16buf, out);\n}\n\n\n// Calculate max possible position in utf8 buffer,\n// that will not break sequence. If that's not possible\n// - (very small limits) return max size as is.\n//\n// buf[] - utf8 bytes array\n// max - length limit (mandatory);\nfunction utf8border(buf, max) {\n var pos;\n\n max = max || buf.length;\n if (max > buf.length) { max = buf.length; }\n\n // go back from last position, until start of sequence found\n pos = max - 1;\n while (pos >= 0 && (buf[pos] & 0xC0) === 0x80) { pos--; }\n\n // Very small and broken sequence,\n // return max, because we should return something anyway.\n if (pos < 0) { return max; }\n\n // If we came to start of buffer - that means buffer is too small,\n // return max too.\n if (pos === 0) { return max; }\n\n return (pos + utf8len(buf[pos]) > max) ? pos : max;\n}\n\n/* eslint-disable */\n\n// Note: adler32 takes 12% for level 0 and 2% for level 6.\n// It isn't worth it to make additional optimizations as in original.\n// Small size is preferable.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction adler32(adler, buf, len, pos) {\n var s1 = (adler & 0xffff) |0,\n s2 = ((adler >>> 16) & 0xffff) |0,\n n = 0;\n\n while (len !== 0) {\n // Set limit ~ twice less than 5552, to keep\n // s2 in 31-bits, because we force signed ints.\n // in other case %= will fail.\n n = len > 2000 ? 2000 : len;\n len -= n;\n\n do {\n s1 = (s1 + buf[pos++]) |0;\n s2 = (s2 + s1) |0;\n } while (--n);\n\n s1 %= 65521;\n s2 %= 65521;\n }\n\n return (s1 | (s2 << 16)) |0;\n}\n\n/* eslint-disable */\n\n// Note: we can't get significant speed boost here.\n// So write code to minimize size - no pregenerated tables\n// and array tools dependencies.\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// Use ordinary array, since untyped makes no boost here\nfunction makeTable() {\n var c, table = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = ((c & 1) ? (0xEDB88320 ^ (c >>> 1)) : (c >>> 1));\n }\n table[n] = c;\n }\n\n return table;\n}\n\nlet crcTable = function() {\n const table = makeTable();\n crcTable = () => table;\n return table;\n};\n\nfunction crc32(crc, buf, len, pos) {\n var t = crcTable(),\n end = pos + len;\n\n crc ^= -1;\n\n for (var i = pos; i < end; i++) {\n crc = (crc >>> 8) ^ t[(crc ^ buf[i]) & 0xFF];\n }\n\n return (crc ^ (-1)); // >>> 0;\n}\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\n// See state defs from inflate.js\nvar BAD = 30; /* got a data error -- remain here until reset */\nvar TYPE = 12; /* i: waiting for type bits, including last-flag bit */\n\n/*\n Decode literal, length, and distance codes and write out the resulting\n literal and match bytes until either not enough input or output is\n available, an end-of-block is encountered, or a data error is encountered.\n When large enough input and output buffers are supplied to inflate(), for\n example, a 16K input buffer and a 64K output buffer, more than 95% of the\n inflate execution time is spent in this routine.\n\n Entry assumptions:\n\n state.mode === LEN\n strm.avail_in >= 6\n strm.avail_out >= 258\n start >= strm.avail_out\n state.bits < 8\n\n On return, state.mode is one of:\n\n LEN -- ran out of enough output space or enough available input\n TYPE -- reached end of block code, inflate() to interpret next block\n BAD -- error in block data\n\n Notes:\n\n - The maximum input bits used by a length/distance pair is 15 bits for the\n length code, 5 bits for the length extra, 15 bits for the distance code,\n and 13 bits for the distance extra. This totals 48 bits, or six bytes.\n Therefore if strm.avail_in >= 6, then there is enough input to avoid\n checking for available input while decoding.\n\n - The maximum bytes that a single length/distance pair can output is 258\n bytes, which is the maximum length that can be coded. inflate_fast()\n requires strm.avail_out >= 258 for each loop to avoid checking for\n output space.\n */\nfunction inflate_fast(strm, start) {\n var state;\n var _in; /* local strm.input */\n var last; /* have enough input while in < last */\n var _out; /* local strm.output */\n var beg; /* inflate()'s initial strm.output */\n var end; /* while out < end, enough space available */\n//#ifdef INFLATE_STRICT\n var dmax; /* maximum distance from zlib header */\n//#endif\n var wsize; /* window size or zero if not using window */\n var whave; /* valid bytes in the window */\n var wnext; /* window write index */\n // Use `s_window` instead `window`, avoid conflict with instrumentation tools\n var s_window; /* allocated sliding window, if wsize != 0 */\n var hold; /* local strm.hold */\n var bits; /* local strm.bits */\n var lcode; /* local strm.lencode */\n var dcode; /* local strm.distcode */\n var lmask; /* mask for first level of length codes */\n var dmask; /* mask for first level of distance codes */\n var here; /* retrieved table entry */\n var op; /* code bits, operation, extra bits, or */\n /* window position, window bytes to copy */\n var len; /* match length, unused bytes */\n var dist; /* match distance */\n var from; /* where to copy match from */\n var from_source;\n\n\n var input, output; // JS specific, because we have no pointers\n\n /* copy state to local variables */\n state = strm.state;\n //here = state.here;\n _in = strm.next_in;\n input = strm.input;\n last = _in + (strm.avail_in - 5);\n _out = strm.next_out;\n output = strm.output;\n beg = _out - (start - strm.avail_out);\n end = _out + (strm.avail_out - 257);\n//#ifdef INFLATE_STRICT\n dmax = state.dmax;\n//#endif\n wsize = state.wsize;\n whave = state.whave;\n wnext = state.wnext;\n s_window = state.window;\n hold = state.hold;\n bits = state.bits;\n lcode = state.lencode;\n dcode = state.distcode;\n lmask = (1 << state.lenbits) - 1;\n dmask = (1 << state.distbits) - 1;\n\n\n /* decode literals and length/distances until end-of-block or not enough\n input data or output space */\n\n top:\n do {\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n\n here = lcode[hold & lmask];\n\n dolen:\n for (;;) { // Goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n if (op === 0) { /* literal */\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n output[_out++] = here & 0xffff/*here.val*/;\n }\n else if (op & 16) { /* length base */\n len = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (op) {\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n len += hold & ((1 << op) - 1);\n hold >>>= op;\n bits -= op;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", len));\n if (bits < 15) {\n hold += input[_in++] << bits;\n bits += 8;\n hold += input[_in++] << bits;\n bits += 8;\n }\n here = dcode[hold & dmask];\n\n dodist:\n for (;;) { // goto emulation\n op = here >>> 24/*here.bits*/;\n hold >>>= op;\n bits -= op;\n op = (here >>> 16) & 0xff/*here.op*/;\n\n if (op & 16) { /* distance base */\n dist = here & 0xffff/*here.val*/;\n op &= 15; /* number of extra bits */\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n if (bits < op) {\n hold += input[_in++] << bits;\n bits += 8;\n }\n }\n dist += hold & ((1 << op) - 1);\n//#ifdef INFLATE_STRICT\n if (dist > dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n//#endif\n hold >>>= op;\n bits -= op;\n //Tracevv((stderr, \"inflate: distance %u\\n\", dist));\n op = _out - beg; /* max distance in output */\n if (dist > op) { /* see if copy from window */\n op = dist - op; /* distance back in window */\n if (op > whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD;\n break top;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// if (len <= op - whave) {\n// do {\n// output[_out++] = 0;\n// } while (--len);\n// continue top;\n// }\n// len -= op - whave;\n// do {\n// output[_out++] = 0;\n// } while (--op > whave);\n// if (op === 0) {\n// from = _out - dist;\n// do {\n// output[_out++] = output[from++];\n// } while (--len);\n// continue top;\n// }\n//#endif\n }\n from = 0; // window index\n from_source = s_window;\n if (wnext === 0) { /* very common case */\n from += wsize - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n else if (wnext < op) { /* wrap around window */\n from += wsize + wnext - op;\n op -= wnext;\n if (op < len) { /* some from end of window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = 0;\n if (wnext < len) { /* some from start of window */\n op = wnext;\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n }\n else { /* contiguous in window */\n from += wnext - op;\n if (op < len) { /* some from window */\n len -= op;\n do {\n output[_out++] = s_window[from++];\n } while (--op);\n from = _out - dist; /* rest from output */\n from_source = output;\n }\n }\n while (len > 2) {\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n output[_out++] = from_source[from++];\n len -= 3;\n }\n if (len) {\n output[_out++] = from_source[from++];\n if (len > 1) {\n output[_out++] = from_source[from++];\n }\n }\n }\n else {\n from = _out - dist; /* copy direct from output */\n do { /* minimum length is three */\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n output[_out++] = output[from++];\n len -= 3;\n } while (len > 2);\n if (len) {\n output[_out++] = output[from++];\n if (len > 1) {\n output[_out++] = output[from++];\n }\n }\n }\n }\n else if ((op & 64) === 0) { /* 2nd level distance code */\n here = dcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dodist;\n }\n else {\n strm.msg = 'invalid distance code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n }\n else if ((op & 64) === 0) { /* 2nd level length code */\n here = lcode[(here & 0xffff)/*here.val*/ + (hold & ((1 << op) - 1))];\n continue dolen;\n }\n else if (op & 32) { /* end-of-block */\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.mode = TYPE;\n break top;\n }\n else {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD;\n break top;\n }\n\n break; // need to emulate goto via \"continue\"\n }\n } while (_in < last && _out < end);\n\n /* return unused bytes (on entry, bits < 8, so in won't go too far back) */\n len = bits >> 3;\n _in -= len;\n bits -= len << 3;\n hold &= (1 << bits) - 1;\n\n /* update state and return */\n strm.next_in = _in;\n strm.next_out = _out;\n strm.avail_in = (_in < last ? 5 + (last - _in) : 5 - (_in - last));\n strm.avail_out = (_out < end ? 257 + (end - _out) : 257 - (_out - end));\n state.hold = hold;\n state.bits = bits;\n return;\n}\n\n/* eslint-disable */\n\nvar MAXBITS = 15;\nvar ENOUGH_LENS = 852;\nvar ENOUGH_DISTS = 592;\n//var ENOUGH = (ENOUGH_LENS+ENOUGH_DISTS);\n\nvar CODES = 0;\nvar LENS = 1;\nvar DISTS = 2;\n\nvar lbase = [ /* Length codes 257..285 base */\n 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31,\n 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0\n];\n\nvar lext = [ /* Length codes 257..285 extra */\n 16, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 18, 18, 18, 18,\n 19, 19, 19, 19, 20, 20, 20, 20, 21, 21, 21, 21, 16, 72, 78\n];\n\nvar dbase = [ /* Distance codes 0..29 base */\n 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193,\n 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145,\n 8193, 12289, 16385, 24577, 0, 0\n];\n\nvar dext = [ /* Distance codes 0..29 extra */\n 16, 16, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,\n 23, 23, 24, 24, 25, 25, 26, 26, 27, 27,\n 28, 28, 29, 29, 64, 64\n];\n\nfunction inflate_table(type, lens, lens_index, codes, table, table_index, work, opts) {\n var bits = opts.bits;\n //here = opts.here; /* table entry for duplication */\n\n var len = 0; /* a code's length in bits */\n var sym = 0; /* index of code symbols */\n var min = 0, max = 0; /* minimum and maximum code lengths */\n var root = 0; /* number of index bits for root table */\n var curr = 0; /* number of index bits for current table */\n var drop = 0; /* code bits to drop for sub-table */\n var left = 0; /* number of prefix codes available */\n var used = 0; /* code entries in table used */\n var huff = 0; /* Huffman code */\n var incr; /* for incrementing code, index */\n var fill; /* index for replicating entries */\n var low; /* low bits for current root entry */\n var mask; /* mask for low root bits */\n var next; /* next available space in table */\n var base = null; /* base value table to use */\n var base_index = 0;\n// var shoextra; /* extra bits table to use */\n var end; /* use base and extra for symbol > end */\n var count = Buf16(MAXBITS + 1); //[MAXBITS+1]; /* number of codes of each length */\n var offs = Buf16(MAXBITS + 1); //[MAXBITS+1]; /* offsets in table for each length */\n var extra = null;\n var extra_index = 0;\n\n var here_bits, here_op, here_val;\n\n /*\n Process a set of code lengths to create a canonical Huffman code. The\n code lengths are lens[0..codes-1]. Each length corresponds to the\n symbols 0..codes-1. The Huffman code is generated by first sorting the\n symbols by length from short to long, and retaining the symbol order\n for codes with equal lengths. Then the code starts with all zero bits\n for the first code of the shortest length, and the codes are integer\n increments for the same length, and zeros are appended as the length\n increases. For the deflate format, these bits are stored backwards\n from their more natural integer increment ordering, and so when the\n decoding tables are built in the large loop below, the integer codes\n are incremented backwards.\n\n This routine assumes, but does not check, that all of the entries in\n lens[] are in the range 0..MAXBITS. The caller must assure this.\n 1..MAXBITS is interpreted as that code length. zero means that that\n symbol does not occur in this code.\n\n The codes are sorted by computing a count of codes for each length,\n creating from that a table of starting indices for each length in the\n sorted table, and then entering the symbols in order in the sorted\n table. The sorted table is work[], with that space being provided by\n the caller.\n\n The length counts are used for other purposes as well, i.e. finding\n the minimum and maximum length codes, determining if there are any\n codes at all, checking for a valid set of lengths, and looking ahead\n at length counts to determine sub-table sizes when building the\n decoding tables.\n */\n\n /* accumulate lengths for codes (assumes lens[] all in 0..MAXBITS) */\n for (len = 0; len <= MAXBITS; len++) {\n count[len] = 0;\n }\n for (sym = 0; sym < codes; sym++) {\n count[lens[lens_index + sym]]++;\n }\n\n /* bound code lengths, force root to be within code lengths */\n root = bits;\n for (max = MAXBITS; max >= 1; max--) {\n if (count[max] !== 0) { break; }\n }\n if (root > max) {\n root = max;\n }\n if (max === 0) { /* no symbols to code at all */\n //table.op[opts.table_index] = 64; //here.op = (var char)64; /* invalid code marker */\n //table.bits[opts.table_index] = 1; //here.bits = (var char)1;\n //table.val[opts.table_index++] = 0; //here.val = (var short)0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n\n //table.op[opts.table_index] = 64;\n //table.bits[opts.table_index] = 1;\n //table.val[opts.table_index++] = 0;\n table[table_index++] = (1 << 24) | (64 << 16) | 0;\n\n opts.bits = 1;\n return 0; /* no symbols, but wait for decoding to report error */\n }\n for (min = 1; min < max; min++) {\n if (count[min] !== 0) { break; }\n }\n if (root < min) {\n root = min;\n }\n\n /* check for an over-subscribed or incomplete set of lengths */\n left = 1;\n for (len = 1; len <= MAXBITS; len++) {\n left <<= 1;\n left -= count[len];\n if (left < 0) {\n return -1;\n } /* over-subscribed */\n }\n if (left > 0 && (type === CODES || max !== 1)) {\n return -1; /* incomplete set */\n }\n\n /* generate offsets into symbol table for each length for sorting */\n offs[1] = 0;\n for (len = 1; len < MAXBITS; len++) {\n offs[len + 1] = offs[len] + count[len];\n }\n\n /* sort symbols by length, by symbol order within each length */\n for (sym = 0; sym < codes; sym++) {\n if (lens[lens_index + sym] !== 0) {\n work[offs[lens[lens_index + sym]]++] = sym;\n }\n }\n\n /*\n Create and fill in decoding tables. In this loop, the table being\n filled is at next and has curr index bits. The code being used is huff\n with length len. That code is converted to an index by dropping drop\n bits off of the bottom. For codes where len is less than drop + curr,\n those top drop + curr - len bits are incremented through all values to\n fill the table with replicated entries.\n\n root is the number of index bits for the root table. When len exceeds\n root, sub-tables are created pointed to by the root entry with an index\n of the low root bits of huff. This is saved in low to check for when a\n new sub-table should be started. drop is zero when the root table is\n being filled, and drop is root when sub-tables are being filled.\n\n When a new sub-table is needed, it is necessary to look ahead in the\n code lengths to determine what size sub-table is needed. The length\n counts are used for this, and so count[] is decremented as codes are\n entered in the tables.\n\n used keeps track of how many table entries have been allocated from the\n provided *table space. It is checked for LENS and DIST tables against\n the constants ENOUGH_LENS and ENOUGH_DISTS to guard against changes in\n the initial root table size constants. See the comments in inftrees.h\n for more information.\n\n sym increments through all symbols, and the loop terminates when\n all codes of length max, i.e. all codes, have been processed. This\n routine permits incomplete codes, so another loop after this one fills\n in the rest of the decoding tables with invalid code markers.\n */\n\n /* set up for code type */\n // poor man optimization - use if-else instead of switch,\n // to avoid deopts in old v8\n if (type === CODES) {\n base = extra = work; /* dummy value--not used */\n end = 19;\n\n } else if (type === LENS) {\n base = lbase;\n base_index -= 257;\n extra = lext;\n extra_index -= 257;\n end = 256;\n\n } else { /* DISTS */\n base = dbase;\n extra = dext;\n end = -1;\n }\n\n /* initialize opts for loop */\n huff = 0; /* starting code */\n sym = 0; /* starting code symbol */\n len = min; /* starting code length */\n next = table_index; /* current table to fill in */\n curr = root; /* current table index bits */\n drop = 0; /* current bits to drop from code for index */\n low = -1; /* trigger new sub-table when len > root */\n used = 1 << root; /* use root table entries */\n mask = used - 1; /* mask for comparing low */\n\n /* check available table space */\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* process all codes and make table entries */\n for (;;) {\n /* create table entry */\n here_bits = len - drop;\n if (work[sym] < end) {\n here_op = 0;\n here_val = work[sym];\n }\n else if (work[sym] > end) {\n here_op = extra[extra_index + work[sym]];\n here_val = base[base_index + work[sym]];\n }\n else {\n here_op = 32 + 64; /* end of block */\n here_val = 0;\n }\n\n /* replicate for those indices with low len bits equal to huff */\n incr = 1 << (len - drop);\n fill = 1 << curr;\n min = fill; /* save offset to next table */\n do {\n fill -= incr;\n table[next + (huff >> drop) + fill] = (here_bits << 24) | (here_op << 16) | here_val |0;\n } while (fill !== 0);\n\n /* backwards increment the len-bit code huff */\n incr = 1 << (len - 1);\n while (huff & incr) {\n incr >>= 1;\n }\n if (incr !== 0) {\n huff &= incr - 1;\n huff += incr;\n } else {\n huff = 0;\n }\n\n /* go to next symbol, update count, len */\n sym++;\n if (--count[len] === 0) {\n if (len === max) { break; }\n len = lens[lens_index + work[sym]];\n }\n\n /* create new sub-table if needed */\n if (len > root && (huff & mask) !== low) {\n /* if first time, transition to sub-tables */\n if (drop === 0) {\n drop = root;\n }\n\n /* increment past last table */\n next += min; /* here min is 1 << curr */\n\n /* determine length of next table */\n curr = len - drop;\n left = 1 << curr;\n while (curr + drop < max) {\n left -= count[curr + drop];\n if (left <= 0) { break; }\n curr++;\n left <<= 1;\n }\n\n /* check for enough space */\n used += 1 << curr;\n if ((type === LENS && used > ENOUGH_LENS) ||\n (type === DISTS && used > ENOUGH_DISTS)) {\n return 1;\n }\n\n /* point entry in root table to sub-table */\n low = huff & mask;\n /*table.op[low] = curr;\n table.bits[low] = root;\n table.val[low] = next - opts.table_index;*/\n table[low] = (root << 24) | (curr << 16) | (next - table_index) |0;\n }\n }\n\n /* fill in remaining table entry if code is incomplete (guaranteed to have\n at most one remaining entry, since if the code is incomplete, the\n maximum code length that was allowed to get this far is one bit) */\n if (huff !== 0) {\n //table.op[next + huff] = 64; /* invalid code marker */\n //table.bits[next + huff] = len - drop;\n //table.val[next + huff] = 0;\n table[next + huff] = ((len - drop) << 24) | (64 << 16) |0;\n }\n\n /* set return parameters */\n //opts.table_index += used;\n opts.bits = root;\n return 0;\n}\n\n/* eslint-disable */\n\nvar CODES$1 = 0;\nvar LENS$1 = 1;\nvar DISTS$1 = 2;\n\n/* Public constants ==========================================================*/\n/* ===========================================================================*/\n\n\n/* Allowed flush values; see deflate() and inflate() below for details */\n//var Z_NO_FLUSH = 0;\n//var Z_PARTIAL_FLUSH = 1;\n//var Z_SYNC_FLUSH = 2;\n//var Z_FULL_FLUSH = 3;\nvar Z_FINISH$1 = 4;\nvar Z_BLOCK$1 = 5;\nvar Z_TREES$1 = 6;\n\n\n/* Return codes for the compression/decompression functions. Negative values\n * are errors, positive values are used for special but normal events.\n */\nvar Z_OK$1 = 0;\nvar Z_STREAM_END$1 = 1;\nvar Z_NEED_DICT$1 = 2;\n//var Z_ERRNO = -1;\nvar Z_STREAM_ERROR$1 = -2;\nvar Z_DATA_ERROR$1 = -3;\nvar Z_MEM_ERROR = -4;\nvar Z_BUF_ERROR$1 = -5;\n//var Z_VERSION_ERROR = -6;\n\n/* The deflate compression method */\nvar Z_DEFLATED$1 = 8;\n\n\n/* STATES ====================================================================*/\n/* ===========================================================================*/\n\n\nvar HEAD = 1; /* i: waiting for magic header */\nvar FLAGS = 2; /* i: waiting for method and flags (gzip) */\nvar TIME = 3; /* i: waiting for modification time (gzip) */\nvar OS = 4; /* i: waiting for extra flags and operating system (gzip) */\nvar EXLEN = 5; /* i: waiting for extra length (gzip) */\nvar EXTRA = 6; /* i: waiting for extra bytes (gzip) */\nvar NAME = 7; /* i: waiting for end of file name (gzip) */\nvar COMMENT = 8; /* i: waiting for end of comment (gzip) */\nvar HCRC = 9; /* i: waiting for header crc (gzip) */\nvar DICTID = 10; /* i: waiting for dictionary check value */\nvar DICT = 11; /* waiting for inflateSetDictionary() call */\nvar TYPE$1 = 12; /* i: waiting for type bits, including last-flag bit */\nvar TYPEDO = 13; /* i: same, but skip check to exit inflate on new block */\nvar STORED = 14; /* i: waiting for stored size (length and complement) */\nvar COPY_ = 15; /* i/o: same as COPY below, but only first time in */\nvar COPY = 16; /* i/o: waiting for input or output to copy stored block */\nvar TABLE = 17; /* i: waiting for dynamic block table lengths */\nvar LENLENS = 18; /* i: waiting for code length code lengths */\nvar CODELENS = 19; /* i: waiting for length/lit and distance code lengths */\nvar LEN_ = 20; /* i: same as LEN below, but only first time in */\nvar LEN = 21; /* i: waiting for length/lit/eob code */\nvar LENEXT = 22; /* i: waiting for length extra bits */\nvar DIST = 23; /* i: waiting for distance code */\nvar DISTEXT = 24; /* i: waiting for distance extra bits */\nvar MATCH = 25; /* o: waiting for output space to copy string */\nvar LIT = 26; /* o: waiting for output space to write literal */\nvar CHECK = 27; /* i: waiting for 32-bit check value */\nvar LENGTH = 28; /* i: waiting for 32-bit length (gzip) */\nvar DONE = 29; /* finished check, done -- remain here until reset */\nvar BAD$1 = 30; /* got a data error -- remain here until reset */\nvar MEM = 31; /* got an inflate() memory error -- remain here until reset */\nvar SYNC = 32; /* looking for synchronization bytes to restart inflate() */\n\n/* ===========================================================================*/\n\n\n\nvar ENOUGH_LENS$1 = 852;\nvar ENOUGH_DISTS$1 = 592;\n\n\nfunction zswap32(q) {\n return (((q >>> 24) & 0xff) +\n ((q >>> 8) & 0xff00) +\n ((q & 0xff00) << 8) +\n ((q & 0xff) << 24));\n}\n\n\nfunction InflateState() {\n this.mode = 0; /* current inflate mode */\n this.last = false; /* true if processing last block */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.havedict = false; /* true if dictionary provided */\n this.flags = 0; /* gzip header method and flags (0 if zlib) */\n this.dmax = 0; /* zlib header max distance (INFLATE_STRICT) */\n this.check = 0; /* protected copy of check value */\n this.total = 0; /* protected copy of output count */\n // TODO: may be {}\n this.head = null; /* where to save gzip header information */\n\n /* sliding window */\n this.wbits = 0; /* log base 2 of requested window size */\n this.wsize = 0; /* window size or zero if not using window */\n this.whave = 0; /* valid bytes in the window */\n this.wnext = 0; /* window write index */\n this.window = null; /* allocated sliding window, if needed */\n\n /* bit accumulator */\n this.hold = 0; /* input bit accumulator */\n this.bits = 0; /* number of bits in \"in\" */\n\n /* for string and stored block copying */\n this.length = 0; /* literal or length of data to copy */\n this.offset = 0; /* distance back to copy string from */\n\n /* for table and code decoding */\n this.extra = 0; /* extra bits needed */\n\n /* fixed and dynamic code tables */\n this.lencode = null; /* starting table for length/literal codes */\n this.distcode = null; /* starting table for distance codes */\n this.lenbits = 0; /* index bits for lencode */\n this.distbits = 0; /* index bits for distcode */\n\n /* dynamic table building */\n this.ncode = 0; /* number of code length code lengths */\n this.nlen = 0; /* number of length code lengths */\n this.ndist = 0; /* number of distance code lengths */\n this.have = 0; /* number of code lengths in lens[] */\n this.next = null; /* next available space in codes[] */\n\n this.lens = Buf16(320); /* temporary storage for code lengths */\n this.work = Buf16(288); /* work area for code table building */\n\n /*\n because we don't have pointers in js, we use lencode and distcode directly\n as buffers so we don't need codes\n */\n //this.codes = Buf32(ENOUGH); /* space for code tables */\n this.lendyn = null; /* dynamic table for length/literal codes (JS specific) */\n this.distdyn = null; /* dynamic table for distance codes (JS specific) */\n this.sane = 0; /* if false, allow invalid distance too far */\n this.back = 0; /* bits back of last unprocessed length/lit */\n this.was = 0; /* initial length of match */\n}\n\nfunction inflateResetKeep(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n strm.total_in = strm.total_out = state.total = 0;\n strm.msg = ''; /*Z_NULL*/\n if (state.wrap) { /* to support ill-conceived Java test suite */\n strm.adler = state.wrap & 1;\n }\n state.mode = HEAD;\n state.last = 0;\n state.havedict = 0;\n state.dmax = 32768;\n state.head = null/*Z_NULL*/;\n state.hold = 0;\n state.bits = 0;\n //state.lencode = state.distcode = state.next = state.codes;\n state.lencode = state.lendyn = Buf32(ENOUGH_LENS$1);\n state.distcode = state.distdyn = Buf32(ENOUGH_DISTS$1);\n\n state.sane = 1;\n state.back = -1;\n //Tracev((stderr, \"inflate: reset\\n\"));\n return Z_OK$1;\n}\n\nfunction inflateReset(strm) {\n var state;\n\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n state.wsize = 0;\n state.whave = 0;\n state.wnext = 0;\n return inflateResetKeep(strm);\n\n}\n\nfunction inflateReset2(strm, windowBits) {\n var wrap;\n var state;\n\n /* get the state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n /* extract wrap request from windowBits parameter */\n if (windowBits < 0) {\n wrap = 0;\n windowBits = -windowBits;\n }\n else {\n wrap = (windowBits >> 4) + 1;\n if (windowBits < 48) {\n windowBits &= 15;\n }\n }\n\n /* set number of window bits, free window if different */\n if (windowBits && (windowBits < 8 || windowBits > 15)) {\n return Z_STREAM_ERROR$1;\n }\n if (state.window !== null && state.wbits !== windowBits) {\n state.window = null;\n }\n\n /* update state and reset the rest of it */\n state.wrap = wrap;\n state.wbits = windowBits;\n return inflateReset(strm);\n}\n\nfunction inflateInit2(strm, windowBits) {\n var ret;\n var state;\n\n if (!strm) { return Z_STREAM_ERROR$1; }\n //strm.msg = Z_NULL; /* in case we return an error */\n\n state = new InflateState();\n\n //if (state === Z_NULL) return Z_MEM_ERROR;\n //Tracev((stderr, \"inflate: allocated\\n\"));\n strm.state = state;\n state.window = null/*Z_NULL*/;\n ret = inflateReset2(strm, windowBits);\n if (ret !== Z_OK$1) {\n strm.state = null/*Z_NULL*/;\n }\n return ret;\n}\n\n\n/*\n Return state with length and distance decoding tables and index sizes set to\n fixed code decoding. Normally this returns fixed tables from inffixed.h.\n If BUILDFIXED is defined, then instead this routine builds the tables the\n first time it's called, and returns those tables the first time and\n thereafter. This reduces the size of the code by about 2K bytes, in\n exchange for a little execution time. However, BUILDFIXED should not be\n used for threaded applications, since the rewriting of the tables and virgin\n may not be thread-safe.\n */\nvar virgin = true;\n\nvar lenfix, distfix; // We have no pointers in JS, so keep tables separate\n\nfunction fixedtables(state) {\n /* build fixed huffman tables if first call (may not be thread safe) */\n if (virgin) {\n var sym;\n\n lenfix = Buf32(512);\n distfix = Buf32(32);\n\n /* literal/length table */\n sym = 0;\n while (sym < 144) { state.lens[sym++] = 8; }\n while (sym < 256) { state.lens[sym++] = 9; }\n while (sym < 280) { state.lens[sym++] = 7; }\n while (sym < 288) { state.lens[sym++] = 8; }\n\n inflate_table(LENS$1, state.lens, 0, 288, lenfix, 0, state.work, { bits: 9 });\n\n /* distance table */\n sym = 0;\n while (sym < 32) { state.lens[sym++] = 5; }\n\n inflate_table(DISTS$1, state.lens, 0, 32, distfix, 0, state.work, { bits: 5 });\n\n /* do this just once */\n virgin = false;\n }\n\n state.lencode = lenfix;\n state.lenbits = 9;\n state.distcode = distfix;\n state.distbits = 5;\n}\n\n\n/*\n Update the window with the last wsize (normally 32K) bytes written before\n returning. If window does not exist yet, create it. This is only called\n when a window is already in use, or when output has been written during this\n inflate call, but the end of the deflate stream has not been reached yet.\n It is also called to create a window for dictionary data when a dictionary\n is loaded.\n\n Providing output buffers larger than 32K to inflate() should provide a speed\n advantage, since only the last 32K of output is copied to the sliding window\n upon return from inflate(), and since all distances after the first 32K of\n output will fall in the output data, making match copies simpler and faster.\n The advantage may be dependent on the size of the processor's data caches.\n */\nfunction updatewindow(strm, src, end, copy) {\n var dist;\n var state = strm.state;\n\n /* if it hasn't been done already, allocate space for the window */\n if (state.window === null) {\n state.wsize = 1 << state.wbits;\n state.wnext = 0;\n state.whave = 0;\n\n state.window = Buf8(state.wsize);\n }\n\n /* copy state->wsize or less output bytes into the circular window */\n if (copy >= state.wsize) {\n arraySet(state.window, src, end - state.wsize, state.wsize, 0);\n state.wnext = 0;\n state.whave = state.wsize;\n }\n else {\n dist = state.wsize - state.wnext;\n if (dist > copy) {\n dist = copy;\n }\n //zmemcpy(state->window + state->wnext, end - copy, dist);\n arraySet(state.window, src, end - copy, dist, state.wnext);\n copy -= dist;\n if (copy) {\n //zmemcpy(state->window, end - copy, copy);\n arraySet(state.window, src, end - copy, copy, 0);\n state.wnext = copy;\n state.whave = state.wsize;\n }\n else {\n state.wnext += dist;\n if (state.wnext === state.wsize) { state.wnext = 0; }\n if (state.whave < state.wsize) { state.whave += dist; }\n }\n }\n return 0;\n}\n\nfunction inflate(strm, flush) {\n var state;\n var input, output; // input/output buffers\n var next; /* next input INDEX */\n var put; /* next output INDEX */\n var have, left; /* available input and output */\n var hold; /* bit buffer */\n var bits; /* bits in bit buffer */\n var _in, _out; /* save starting available input and output */\n var copy; /* number of stored or match bytes to copy */\n var from; /* where to copy match bytes from */\n var from_source;\n var here = 0; /* current decoding table entry */\n var here_bits, here_op, here_val; // paked \"here\" denormalized (JS specific)\n //var last; /* parent table entry */\n var last_bits, last_op, last_val; // paked \"last\" denormalized (JS specific)\n var len; /* length to copy for repeats, bits to drop */\n var ret; /* return code */\n var hbuf = Buf8(4); /* buffer for gzip header crc calculation */\n var opts;\n\n var n; // temporary var for NEED_BITS\n\n var order = /* permutation of code lengths */\n [ 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 ];\n\n\n if (!strm || !strm.state || !strm.output ||\n (!strm.input && strm.avail_in !== 0)) {\n return Z_STREAM_ERROR$1;\n }\n\n state = strm.state;\n if (state.mode === TYPE$1) { state.mode = TYPEDO; } /* skip check */\n\n\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n _in = have;\n _out = left;\n ret = Z_OK$1;\n\n inf_leave: // goto emulation\n for (;;) {\n switch (state.mode) {\n case HEAD:\n if (state.wrap === 0) {\n state.mode = TYPEDO;\n break;\n }\n //=== NEEDBITS(16);\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((state.wrap & 2) && hold === 0x8b1f) { /* gzip header */\n state.check = 0/*crc32(0L, Z_NULL, 0)*/;\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = FLAGS;\n break;\n }\n state.flags = 0; /* expect zlib header */\n if (state.head) {\n state.head.done = false;\n }\n if (!(state.wrap & 1) || /* check if zlib header allowed */\n (((hold & 0xff)/*BITS(8)*/ << 8) + (hold >> 8)) % 31) {\n strm.msg = 'incorrect header check';\n state.mode = BAD$1;\n break;\n }\n if ((hold & 0x0f)/*BITS(4)*/ !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD$1;\n break;\n }\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n len = (hold & 0x0f)/*BITS(4)*/ + 8;\n if (state.wbits === 0) {\n state.wbits = len;\n }\n else if (len > state.wbits) {\n strm.msg = 'invalid window size';\n state.mode = BAD$1;\n break;\n }\n state.dmax = 1 << len;\n //Tracev((stderr, \"inflate: zlib header ok\\n\"));\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = hold & 0x200 ? DICTID : TYPE$1;\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n break;\n case FLAGS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.flags = hold;\n if ((state.flags & 0xff) !== Z_DEFLATED$1) {\n strm.msg = 'unknown compression method';\n state.mode = BAD$1;\n break;\n }\n if (state.flags & 0xe000) {\n strm.msg = 'unknown header flags set';\n state.mode = BAD$1;\n break;\n }\n if (state.head) {\n state.head.text = ((hold >> 8) & 1);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = TIME;\n /* falls through */\n case TIME:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.time = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC4(state.check, hold)\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n hbuf[2] = (hold >>> 16) & 0xff;\n hbuf[3] = (hold >>> 24) & 0xff;\n state.check = crc32(state.check, hbuf, 4, 0);\n //===\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = OS;\n /* falls through */\n case OS:\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (state.head) {\n state.head.xflags = (hold & 0xff);\n state.head.os = (hold >> 8);\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = EXLEN;\n /* falls through */\n case EXLEN:\n if (state.flags & 0x0400) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length = hold;\n if (state.head) {\n state.head.extra_len = hold;\n }\n if (state.flags & 0x0200) {\n //=== CRC2(state.check, hold);\n hbuf[0] = hold & 0xff;\n hbuf[1] = (hold >>> 8) & 0xff;\n state.check = crc32(state.check, hbuf, 2, 0);\n //===//\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n else if (state.head) {\n state.head.extra = null/*Z_NULL*/;\n }\n state.mode = EXTRA;\n /* falls through */\n case EXTRA:\n if (state.flags & 0x0400) {\n copy = state.length;\n if (copy > have) { copy = have; }\n if (copy) {\n if (state.head) {\n len = state.head.extra_len - state.length;\n if (!state.head.extra) {\n // Use untyped array for more convenient processing later\n state.head.extra = new Array(state.head.extra_len);\n }\n arraySet(\n state.head.extra,\n input,\n next,\n // extra field is limited to 65536 bytes\n // - no need for additional size check\n copy,\n /*len + copy > state.head.extra_max - len ? state.head.extra_max : copy,*/\n len\n );\n //zmemcpy(state.head.extra + len, next,\n // len + copy > state.head.extra_max ?\n // state.head.extra_max - len : copy);\n }\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n state.length -= copy;\n }\n if (state.length) { break inf_leave; }\n }\n state.length = 0;\n state.mode = NAME;\n /* falls through */\n case NAME:\n if (state.flags & 0x0800) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n // TODO: 2 or 1 bytes?\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.name_max*/)) {\n state.head.name += String.fromCharCode(len);\n }\n } while (len && copy < have);\n\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.name = null;\n }\n state.length = 0;\n state.mode = COMMENT;\n /* falls through */\n case COMMENT:\n if (state.flags & 0x1000) {\n if (have === 0) { break inf_leave; }\n copy = 0;\n do {\n len = input[next + copy++];\n /* use constant limit because in js we should not preallocate memory */\n if (state.head && len &&\n (state.length < 65536 /*state.head.comm_max*/)) {\n state.head.comment += String.fromCharCode(len);\n }\n } while (len && copy < have);\n if (state.flags & 0x0200) {\n state.check = crc32(state.check, input, copy, next);\n }\n have -= copy;\n next += copy;\n if (len) { break inf_leave; }\n }\n else if (state.head) {\n state.head.comment = null;\n }\n state.mode = HCRC;\n /* falls through */\n case HCRC:\n if (state.flags & 0x0200) {\n //=== NEEDBITS(16); */\n while (bits < 16) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.check & 0xffff)) {\n strm.msg = 'header crc mismatch';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n }\n if (state.head) {\n state.head.hcrc = ((state.flags >> 9) & 1);\n state.head.done = true;\n }\n strm.adler = state.check = 0;\n state.mode = TYPE$1;\n break;\n case DICTID:\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n strm.adler = state.check = zswap32(hold);\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = DICT;\n /* falls through */\n case DICT:\n if (state.havedict === 0) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n return Z_NEED_DICT$1;\n }\n strm.adler = state.check = 1/*adler32(0L, Z_NULL, 0)*/;\n state.mode = TYPE$1;\n /* falls through */\n case TYPE$1:\n if (flush === Z_BLOCK$1 || flush === Z_TREES$1) { break inf_leave; }\n /* falls through */\n case TYPEDO:\n if (state.last) {\n //--- BYTEBITS() ---//\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n state.mode = CHECK;\n break;\n }\n //=== NEEDBITS(3); */\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.last = (hold & 0x01)/*BITS(1)*/;\n //--- DROPBITS(1) ---//\n hold >>>= 1;\n bits -= 1;\n //---//\n\n switch ((hold & 0x03)/*BITS(2)*/) {\n case 0: /* stored block */\n //Tracev((stderr, \"inflate: stored block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = STORED;\n break;\n case 1: /* fixed block */\n fixedtables(state);\n //Tracev((stderr, \"inflate: fixed codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = LEN_; /* decode codes */\n if (flush === Z_TREES$1) {\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break inf_leave;\n }\n break;\n case 2: /* dynamic block */\n //Tracev((stderr, \"inflate: dynamic codes block%s\\n\",\n // state.last ? \" (last)\" : \"\"));\n state.mode = TABLE;\n break;\n case 3:\n strm.msg = 'invalid block type';\n state.mode = BAD$1;\n }\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n break;\n case STORED:\n //--- BYTEBITS() ---// /* go to byte boundary */\n hold >>>= bits & 7;\n bits -= bits & 7;\n //---//\n //=== NEEDBITS(32); */\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if ((hold & 0xffff) !== ((hold >>> 16) ^ 0xffff)) {\n strm.msg = 'invalid stored block lengths';\n state.mode = BAD$1;\n break;\n }\n state.length = hold & 0xffff;\n //Tracev((stderr, \"inflate: stored length %u\\n\",\n // state.length));\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n state.mode = COPY_;\n if (flush === Z_TREES$1) { break inf_leave; }\n /* falls through */\n case COPY_:\n state.mode = COPY;\n /* falls through */\n case COPY:\n copy = state.length;\n if (copy) {\n if (copy > have) { copy = have; }\n if (copy > left) { copy = left; }\n if (copy === 0) { break inf_leave; }\n //--- zmemcpy(put, next, copy); ---\n arraySet(output, input, next, copy, put);\n //---//\n have -= copy;\n next += copy;\n left -= copy;\n put += copy;\n state.length -= copy;\n break;\n }\n //Tracev((stderr, \"inflate: stored end\\n\"));\n state.mode = TYPE$1;\n break;\n case TABLE:\n //=== NEEDBITS(14); */\n while (bits < 14) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.nlen = (hold & 0x1f)/*BITS(5)*/ + 257;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ndist = (hold & 0x1f)/*BITS(5)*/ + 1;\n //--- DROPBITS(5) ---//\n hold >>>= 5;\n bits -= 5;\n //---//\n state.ncode = (hold & 0x0f)/*BITS(4)*/ + 4;\n //--- DROPBITS(4) ---//\n hold >>>= 4;\n bits -= 4;\n //---//\n//#ifndef PKZIP_BUG_WORKAROUND\n if (state.nlen > 286 || state.ndist > 30) {\n strm.msg = 'too many length or distance symbols';\n state.mode = BAD$1;\n break;\n }\n//#endif\n //Tracev((stderr, \"inflate: table sizes ok\\n\"));\n state.have = 0;\n state.mode = LENLENS;\n /* falls through */\n case LENLENS:\n while (state.have < state.ncode) {\n //=== NEEDBITS(3);\n while (bits < 3) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.lens[order[state.have++]] = (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n while (state.have < 19) {\n state.lens[order[state.have++]] = 0;\n }\n // We have separate tables & no pointers. 2 commented lines below not needed.\n //state.next = state.codes;\n //state.lencode = state.next;\n // Switch to use dynamic table\n state.lencode = state.lendyn;\n state.lenbits = 7;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(CODES$1, state.lens, 0, 19, state.lencode, 0, state.work, opts);\n state.lenbits = opts.bits;\n\n if (ret) {\n strm.msg = 'invalid code lengths set';\n state.mode = BAD$1;\n break;\n }\n //Tracev((stderr, \"inflate: code lengths ok\\n\"));\n state.have = 0;\n state.mode = CODELENS;\n /* falls through */\n case CODELENS:\n while (state.have < state.nlen + state.ndist) {\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)];/*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_val < 16) {\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.lens[state.have++] = here_val;\n }\n else {\n if (here_val === 16) {\n //=== NEEDBITS(here.bits + 2);\n n = here_bits + 2;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n if (state.have === 0) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD$1;\n break;\n }\n len = state.lens[state.have - 1];\n copy = 3 + (hold & 0x03);//BITS(2);\n //--- DROPBITS(2) ---//\n hold >>>= 2;\n bits -= 2;\n //---//\n }\n else if (here_val === 17) {\n //=== NEEDBITS(here.bits + 3);\n n = here_bits + 3;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 3 + (hold & 0x07);//BITS(3);\n //--- DROPBITS(3) ---//\n hold >>>= 3;\n bits -= 3;\n //---//\n }\n else {\n //=== NEEDBITS(here.bits + 7);\n n = here_bits + 7;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n len = 0;\n copy = 11 + (hold & 0x7f);//BITS(7);\n //--- DROPBITS(7) ---//\n hold >>>= 7;\n bits -= 7;\n //---//\n }\n if (state.have + copy > state.nlen + state.ndist) {\n strm.msg = 'invalid bit length repeat';\n state.mode = BAD$1;\n break;\n }\n while (copy--) {\n state.lens[state.have++] = len;\n }\n }\n }\n\n /* handle error breaks in while */\n if (state.mode === BAD$1) { break; }\n\n /* check for end-of-block code (better have one) */\n if (state.lens[256] === 0) {\n strm.msg = 'invalid code -- missing end-of-block';\n state.mode = BAD$1;\n break;\n }\n\n /* build code tables -- note: do not change the lenbits or distbits\n values here (9 and 6) without reading the comments in inftrees.h\n concerning the ENOUGH constants, which depend on those values */\n state.lenbits = 9;\n\n opts = { bits: state.lenbits };\n ret = inflate_table(LENS$1, state.lens, 0, state.nlen, state.lencode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.lenbits = opts.bits;\n // state.lencode = state.next;\n\n if (ret) {\n strm.msg = 'invalid literal/lengths set';\n state.mode = BAD$1;\n break;\n }\n\n state.distbits = 6;\n //state.distcode.copy(state.codes);\n // Switch to use dynamic table\n state.distcode = state.distdyn;\n opts = { bits: state.distbits };\n ret = inflate_table(DISTS$1, state.lens, state.nlen, state.ndist, state.distcode, 0, state.work, opts);\n // We have separate tables & no pointers. 2 commented lines below not needed.\n // state.next_index = opts.table_index;\n state.distbits = opts.bits;\n // state.distcode = state.next;\n\n if (ret) {\n strm.msg = 'invalid distances set';\n state.mode = BAD$1;\n break;\n }\n //Tracev((stderr, 'inflate: codes ok\\n'));\n state.mode = LEN_;\n if (flush === Z_TREES$1) { break inf_leave; }\n /* falls through */\n case LEN_:\n state.mode = LEN;\n /* falls through */\n case LEN:\n if (have >= 6 && left >= 258) {\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n inflate_fast(strm, _out);\n //--- LOAD() ---\n put = strm.next_out;\n output = strm.output;\n left = strm.avail_out;\n next = strm.next_in;\n input = strm.input;\n have = strm.avail_in;\n hold = state.hold;\n bits = state.bits;\n //---\n\n if (state.mode === TYPE$1) {\n state.back = -1;\n }\n break;\n }\n state.back = 0;\n for (;;) {\n here = state.lencode[hold & ((1 << state.lenbits) - 1)]; /*BITS(state.lenbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if (here_bits <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if (here_op && (here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.lencode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n state.length = here_val;\n if (here_op === 0) {\n //Tracevv((stderr, here.val >= 0x20 && here.val < 0x7f ?\n // \"inflate: literal '%c'\\n\" :\n // \"inflate: literal 0x%02x\\n\", here.val));\n state.mode = LIT;\n break;\n }\n if (here_op & 32) {\n //Tracevv((stderr, \"inflate: end of block\\n\"));\n state.back = -1;\n state.mode = TYPE$1;\n break;\n }\n if (here_op & 64) {\n strm.msg = 'invalid literal/length code';\n state.mode = BAD$1;\n break;\n }\n state.extra = here_op & 15;\n state.mode = LENEXT;\n /* falls through */\n case LENEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.length += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n //Tracevv((stderr, \"inflate: length %u\\n\", state.length));\n state.was = state.length;\n state.mode = DIST;\n /* falls through */\n case DIST:\n for (;;) {\n here = state.distcode[hold & ((1 << state.distbits) - 1)];/*BITS(state.distbits)*/\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n if ((here_op & 0xf0) === 0) {\n last_bits = here_bits;\n last_op = here_op;\n last_val = here_val;\n for (;;) {\n here = state.distcode[last_val +\n ((hold & ((1 << (last_bits + last_op)) - 1))/*BITS(last.bits + last.op)*/ >> last_bits)];\n here_bits = here >>> 24;\n here_op = (here >>> 16) & 0xff;\n here_val = here & 0xffff;\n\n if ((last_bits + here_bits) <= bits) { break; }\n //--- PULLBYTE() ---//\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n //---//\n }\n //--- DROPBITS(last.bits) ---//\n hold >>>= last_bits;\n bits -= last_bits;\n //---//\n state.back += last_bits;\n }\n //--- DROPBITS(here.bits) ---//\n hold >>>= here_bits;\n bits -= here_bits;\n //---//\n state.back += here_bits;\n if (here_op & 64) {\n strm.msg = 'invalid distance code';\n state.mode = BAD$1;\n break;\n }\n state.offset = here_val;\n state.extra = (here_op) & 15;\n state.mode = DISTEXT;\n /* falls through */\n case DISTEXT:\n if (state.extra) {\n //=== NEEDBITS(state.extra);\n n = state.extra;\n while (bits < n) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n state.offset += hold & ((1 << state.extra) - 1)/*BITS(state.extra)*/;\n //--- DROPBITS(state.extra) ---//\n hold >>>= state.extra;\n bits -= state.extra;\n //---//\n state.back += state.extra;\n }\n//#ifdef INFLATE_STRICT\n if (state.offset > state.dmax) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break;\n }\n//#endif\n //Tracevv((stderr, \"inflate: distance %u\\n\", state.offset));\n state.mode = MATCH;\n /* falls through */\n case MATCH:\n if (left === 0) { break inf_leave; }\n copy = _out - left;\n if (state.offset > copy) { /* copy from window */\n copy = state.offset - copy;\n if (copy > state.whave) {\n if (state.sane) {\n strm.msg = 'invalid distance too far back';\n state.mode = BAD$1;\n break;\n }\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n//#ifdef INFLATE_ALLOW_INVALID_DISTANCE_TOOFAR_ARRR\n// Trace((stderr, \"inflate.c too far\\n\"));\n// copy -= state.whave;\n// if (copy > state.length) { copy = state.length; }\n// if (copy > left) { copy = left; }\n// left -= copy;\n// state.length -= copy;\n// do {\n// output[put++] = 0;\n// } while (--copy);\n// if (state.length === 0) { state.mode = LEN; }\n// break;\n//#endif\n }\n if (copy > state.wnext) {\n copy -= state.wnext;\n from = state.wsize - copy;\n }\n else {\n from = state.wnext - copy;\n }\n if (copy > state.length) { copy = state.length; }\n from_source = state.window;\n }\n else { /* copy from output */\n from_source = output;\n from = put - state.offset;\n copy = state.length;\n }\n if (copy > left) { copy = left; }\n left -= copy;\n state.length -= copy;\n do {\n output[put++] = from_source[from++];\n } while (--copy);\n if (state.length === 0) { state.mode = LEN; }\n break;\n case LIT:\n if (left === 0) { break inf_leave; }\n output[put++] = state.length;\n left--;\n state.mode = LEN;\n break;\n case CHECK:\n if (state.wrap) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n // Use '|' instead of '+' to make sure that result is signed\n hold |= input[next++] << bits;\n bits += 8;\n }\n //===//\n _out -= left;\n strm.total_out += _out;\n state.total += _out;\n if (_out) {\n strm.adler = state.check =\n /*UPDATE(state.check, put - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, put - _out) : adler32(state.check, output, _out, put - _out));\n\n }\n _out = left;\n // NB: crc32 stored as signed 32-bit int, zswap32 returns signed too\n if ((state.flags ? hold : zswap32(hold)) !== state.check) {\n strm.msg = 'incorrect data check';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: check matches trailer\\n\"));\n }\n state.mode = LENGTH;\n /* falls through */\n case LENGTH:\n if (state.wrap && state.flags) {\n //=== NEEDBITS(32);\n while (bits < 32) {\n if (have === 0) { break inf_leave; }\n have--;\n hold += input[next++] << bits;\n bits += 8;\n }\n //===//\n if (hold !== (state.total & 0xffffffff)) {\n strm.msg = 'incorrect length check';\n state.mode = BAD$1;\n break;\n }\n //=== INITBITS();\n hold = 0;\n bits = 0;\n //===//\n //Tracev((stderr, \"inflate: length matches trailer\\n\"));\n }\n state.mode = DONE;\n /* falls through */\n case DONE:\n ret = Z_STREAM_END$1;\n break inf_leave;\n case BAD$1:\n ret = Z_DATA_ERROR$1;\n break inf_leave;\n case MEM:\n return Z_MEM_ERROR;\n case SYNC:\n /* falls through */\n default:\n return Z_STREAM_ERROR$1;\n }\n }\n\n // inf_leave <- here is real place for \"goto inf_leave\", emulated via \"break inf_leave\"\n\n /*\n Return from inflate(), updating the total counts and the check value.\n If there was no progress during the inflate() call, return a buffer\n error. Call updatewindow() to create and/or update the window state.\n Note: a memory error from inflate() is non-recoverable.\n */\n\n //--- RESTORE() ---\n strm.next_out = put;\n strm.avail_out = left;\n strm.next_in = next;\n strm.avail_in = have;\n state.hold = hold;\n state.bits = bits;\n //---\n\n if (state.wsize || (_out !== strm.avail_out && state.mode < BAD$1 &&\n (state.mode < CHECK || flush !== Z_FINISH$1))) {\n if (updatewindow(strm, strm.output, strm.next_out, _out - strm.avail_out)) ;\n }\n _in -= strm.avail_in;\n _out -= strm.avail_out;\n strm.total_in += _in;\n strm.total_out += _out;\n state.total += _out;\n if (state.wrap && _out) {\n strm.adler = state.check = /*UPDATE(state.check, strm.next_out - _out, _out);*/\n (state.flags ? crc32(state.check, output, _out, strm.next_out - _out) : adler32(state.check, output, _out, strm.next_out - _out));\n }\n strm.data_type = state.bits + (state.last ? 64 : 0) +\n (state.mode === TYPE$1 ? 128 : 0) +\n (state.mode === LEN_ || state.mode === COPY_ ? 256 : 0);\n if (((_in === 0 && _out === 0) || flush === Z_FINISH$1) && ret === Z_OK$1) {\n ret = Z_BUF_ERROR$1;\n }\n return ret;\n}\n\nfunction inflateEnd(strm) {\n\n if (!strm || !strm.state /*|| strm->zfree == (free_func)0*/) {\n return Z_STREAM_ERROR$1;\n }\n\n var state = strm.state;\n if (state.window) {\n state.window = null;\n }\n strm.state = null;\n return Z_OK$1;\n}\n\nfunction inflateGetHeader(strm, head) {\n var state;\n\n /* check state */\n if (!strm || !strm.state) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n if ((state.wrap & 2) === 0) { return Z_STREAM_ERROR$1; }\n\n /* save header structure */\n state.head = head;\n head.done = false;\n return Z_OK$1;\n}\n\nfunction inflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var state;\n var dictid;\n var ret;\n\n /* check state */\n if (!strm /* == Z_NULL */ || !strm.state /* == Z_NULL */) { return Z_STREAM_ERROR$1; }\n state = strm.state;\n\n if (state.wrap !== 0 && state.mode !== DICT) {\n return Z_STREAM_ERROR$1;\n }\n\n /* check for correct dictionary identifier */\n if (state.mode === DICT) {\n dictid = 1; /* adler32(0, null, 0)*/\n /* dictid = adler32(dictid, dictionary, dictLength); */\n dictid = adler32(dictid, dictionary, dictLength, 0);\n if (dictid !== state.check) {\n return Z_DATA_ERROR$1;\n }\n }\n /* copy dictionary to window using updatewindow(), which will amend the\n existing dictionary if appropriate */\n ret = updatewindow(strm, dictionary, dictLength, dictLength);\n if (ret) {\n state.mode = MEM;\n return Z_MEM_ERROR;\n }\n state.havedict = 1;\n // Tracev((stderr, \"inflate: dictionary set\\n\"));\n return Z_OK$1;\n}\n\n/* Not implemented\nexports.inflateCopy = inflateCopy;\nexports.inflateGetDictionary = inflateGetDictionary;\nexports.inflateMark = inflateMark;\nexports.inflatePrime = inflatePrime;\nexports.inflateSync = inflateSync;\nexports.inflateSyncPoint = inflateSyncPoint;\nexports.inflateUndermine = inflateUndermine;\n*/\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nvar msg = {\n 2: 'need dictionary', /* Z_NEED_DICT 2 */\n 1: 'stream end', /* Z_STREAM_END 1 */\n 0: '', /* Z_OK 0 */\n '-1': 'file error', /* Z_ERRNO (-1) */\n '-2': 'stream error', /* Z_STREAM_ERROR (-2) */\n '-3': 'data error', /* Z_DATA_ERROR (-3) */\n '-4': 'insufficient memory', /* Z_MEM_ERROR (-4) */\n '-5': 'buffer error', /* Z_BUF_ERROR (-5) */\n '-6': 'incompatible version' /* Z_VERSION_ERROR (-6) */\n};\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction ZStream() {\n /* next input byte */\n this.input = null; // JS specific, because we have no pointers\n this.next_in = 0;\n /* number of bytes available at input */\n this.avail_in = 0;\n /* total number of input bytes read so far */\n this.total_in = 0;\n /* next output byte should be put there */\n this.output = null; // JS specific, because we have no pointers\n this.next_out = 0;\n /* remaining free space at output */\n this.avail_out = 0;\n /* total number of bytes output so far */\n this.total_out = 0;\n /* last error message, NULL if no error */\n this.msg = ''/*Z_NULL*/;\n /* not visible by applications */\n this.state = null;\n /* best guess about the data type: binary or text */\n this.data_type = 2/*Z_UNKNOWN*/;\n /* adler32 value of the uncompressed data */\n this.adler = 0;\n}\n\n/* eslint-disable */\n\n// (C) 1995-2013 Jean-loup Gailly and Mark Adler\n// (C) 2014-2017 Vitaly Puzrin and Andrey Tupitsin\n//\n// This software is provided 'as-is', without any express or implied\n// warranty. In no event will the authors be held liable for any damages\n// arising from the use of this software.\n//\n// Permission is granted to anyone to use this software for any purpose,\n// including commercial applications, and to alter it and redistribute it\n// freely, subject to the following restrictions:\n//\n// 1. The origin of this software must not be misrepresented; you must not\n// claim that you wrote the original software. If you use this software\n// in a product, an acknowledgment in the product documentation would be\n// appreciated but is not required.\n// 2. Altered source versions must be plainly marked as such, and must not be\n// misrepresented as being the original software.\n// 3. This notice may not be removed or altered from any source distribution.\n\nfunction GZheader() {\n /* true if compressed data believed to be text */\n this.text = 0;\n /* modification time */\n this.time = 0;\n /* extra flags (not used when writing a gzip file) */\n this.xflags = 0;\n /* operating system */\n this.os = 0;\n /* pointer to extra field or Z_NULL if none */\n this.extra = null;\n /* extra field length (valid if extra != Z_NULL) */\n this.extra_len = 0; // Actually, we don't need it in JS,\n // but leave for few code modifications\n\n //\n // Setup limits is not necessary because in js we should not preallocate memory\n // for inflate use constant limit in 65536 bytes\n //\n\n /* space at extra (only when reading header) */\n // this.extra_max = 0;\n /* pointer to zero-terminated file name or Z_NULL */\n this.name = '';\n /* space at name (only when reading header) */\n // this.name_max = 0;\n /* pointer to zero-terminated comment or Z_NULL */\n this.comment = '';\n /* space at comment (only when reading header) */\n // this.comm_max = 0;\n /* true if there was or will be a header crc */\n this.hcrc = 0;\n /* true when done reading gzip header (not used when writing a gzip file) */\n this.done = false;\n}\n\n/* eslint-disable */\n\nvar toString = Object.prototype.toString;\n\n/**\n * class Inflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[inflate]]\n * and [[inflateRaw]].\n **/\n\n/* internal\n * inflate.chunks -> Array\n *\n * Chunks of output data, if [[Inflate#onData]] not overridden.\n **/\n\n/**\n * Inflate.result -> Uint8Array|Array|String\n *\n * Uncompressed result, generated by default [[Inflate#onData]]\n * and [[Inflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Inflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Inflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Inflate.err -> Number\n *\n * Error code after inflate finished. 0 (Z_OK) on success.\n * Should be checked if broken data possible.\n **/\n\n/**\n * Inflate.msg -> String\n *\n * Error message, if [[Inflate.err]] != 0\n **/\n\n\n/**\n * new Inflate(options)\n * - options (Object): zlib inflate options.\n *\n * Creates new inflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `windowBits`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw inflate\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n * By default, when no options set, autodetect deflate/gzip data format via\n * wrapper header.\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var inflate = new pako.Inflate({ level: 3});\n *\n * inflate.push(chunk1, false);\n * inflate.push(chunk2, true); // true -> last chunk\n *\n * if (inflate.err) { throw new Error(inflate.err); }\n *\n * console.log(inflate.result);\n * ```\n **/\nclass Inflate {\n constructor(options) {\n if (!(this instanceof Inflate)) return new Inflate(options);\n\n this.options = assign({\n chunkSize: 16384,\n windowBits: 0,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n // Force window size for `raw` data, if not set directly,\n // because we have no header for autodetect.\n if (opt.raw && (opt.windowBits >= 0) && (opt.windowBits < 16)) {\n opt.windowBits = -opt.windowBits;\n if (opt.windowBits === 0) { opt.windowBits = -15; }\n }\n\n // If `windowBits` not defined (and mode not raw) - set autodetect flag for gzip/deflate\n if ((opt.windowBits >= 0) && (opt.windowBits < 16) &&\n !(options && options.windowBits)) {\n opt.windowBits += 32;\n }\n\n // Gzip header has no info about windows size, we can do autodetect only\n // for deflate. So, if window size not set, force it to max when gzip possible\n if ((opt.windowBits > 15) && (opt.windowBits < 48)) {\n // bit 3 (16) -> gzipped data\n // bit 4 (32) -> autodetect gzip/deflate\n if ((opt.windowBits & 15) === 0) {\n opt.windowBits |= 15;\n }\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = inflateInit2(\n this.strm,\n opt.windowBits\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this.header = new GZheader();\n\n inflateGetHeader(this.strm, this.header);\n\n // Setup dictionary\n if (opt.dictionary) {\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n opt.dictionary = string2buf(opt.dictionary);\n } else if (toString.call(opt.dictionary) === '[object ArrayBuffer]') {\n opt.dictionary = new Uint8Array(opt.dictionary);\n }\n if (opt.raw) { //In raw mode we need to set the dictionary early\n status = inflateSetDictionary(this.strm, opt.dictionary);\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n }\n }\n }\n\n /**\n * Inflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to inflate pipe, generating [[Inflate#onData]] calls with\n * new output chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Inflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the decompression context.\n *\n * On fail call [[Inflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\n push(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var dictionary = this.options.dictionary;\n var status, _mode;\n var next_out_utf8, tail, utf8str;\n var dict;\n\n // Flag to properly process Z_BUF_ERROR on testing inflate call\n // when we check that all output data was flushed.\n var allowBufError = false;\n\n if (this.ended) { return false; }\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // Only binary strings can be decompressed on practice\n strm.input = binstring2buf(data);\n } else if (toString.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n\n status = inflate(strm, Z_NO_FLUSH); /* no bad return value */\n\n if (status === Z_NEED_DICT && dictionary) {\n // Convert data if needed\n if (typeof dictionary === 'string') {\n dict = string2buf(dictionary);\n } else if (toString.call(dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(dictionary);\n } else {\n dict = dictionary;\n }\n\n status = inflateSetDictionary(this.strm, dict);\n\n }\n\n if (status === Z_BUF_ERROR && allowBufError === true) {\n status = Z_OK;\n allowBufError = false;\n }\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n\n if (strm.next_out) {\n if (strm.avail_out === 0 || status === Z_STREAM_END || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n\n if (this.options.to === 'string') {\n\n next_out_utf8 = utf8border(strm.output, strm.next_out);\n\n tail = strm.next_out - next_out_utf8;\n utf8str = buf2string(strm.output, next_out_utf8);\n\n // move tail\n strm.next_out = tail;\n strm.avail_out = chunkSize - tail;\n if (tail) { arraySet(strm.output, strm.output, next_out_utf8, tail, 0); }\n\n this.onData(utf8str);\n\n } else {\n this.onData(shrinkBuf(strm.output, strm.next_out));\n }\n }\n }\n\n // When no more input data, we should check that internal inflate buffers\n // are flushed. The only way to do it when avail_out = 0 - run one more\n // inflate pass. But if output data not exists, inflate return Z_BUF_ERROR.\n // Here we set flag to process this error properly.\n //\n // NOTE. Deflate does not return error in this case and does not needs such\n // logic.\n if (strm.avail_in === 0 && strm.avail_out === 0) {\n allowBufError = true;\n }\n\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n if (status === Z_STREAM_END) {\n _mode = Z_FINISH;\n }\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = inflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n }\n\n\n /**\n * Inflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\n onData(chunk) {\n this.chunks.push(chunk);\n }\n\n\n /**\n * Inflate#onEnd(status) -> Void\n * - status (Number): inflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called either after you tell inflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\n onEnd(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n // Glue & convert here, until we teach pako to send\n // utf8 aligned strings to onData\n this.result = this.chunks.join('');\n } else {\n this.result = flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n }\n}\n\n/**\n * inflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Decompress `data` with inflate/ungzip and `options`. Autodetect\n * format via wrapper header by default. That's why we don't provide\n * separate `ungzip` method.\n *\n * Supported options are:\n *\n * - windowBits\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be converted\n * from utf8 to utf16 (javascript) string. When string output requested,\n * chunk length can differ from `chunkSize`, depending on content.\n *\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , input = pako.deflate([1,2,3,4,5,6,7,8,9])\n * , output;\n *\n * try {\n * output = pako.inflate(input);\n * } catch (err)\n * console.log(err);\n * }\n * ```\n **/\nfunction inflate$1(input, options) {\n var inflator = new Inflate(options);\n\n inflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (inflator.err) { throw inflator.msg || msg[inflator.err]; }\n\n return inflator.result;\n}\n\n\n/**\n * inflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * The same as [[inflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction inflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return inflate$1(input, options);\n}\n\n/**\n * ungzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to decompress.\n * - options (Object): zlib inflate options.\n *\n * Just shortcut to [[inflate]], because it autodetects format\n * by header.content. Done for convenience.\n **/\nvar ungzip = inflate$1;\n\n/* eslint-disable */\n\nfunction zero(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n// From zutil.h\n\nvar STORED_BLOCK = 0;\nvar STATIC_TREES = 1;\nvar DYN_TREES = 2;\n/* The three kinds of block type */\n\nvar MIN_MATCH = 3;\nvar MAX_MATCH = 258;\n/* The minimum and maximum match lengths */\n\n// From deflate.h\n/* ===========================================================================\n * Internal compression state.\n */\n\nvar LENGTH_CODES = 29;\n/* number of length codes, not counting the special END_BLOCK code */\n\nvar LITERALS = 256;\n/* number of literal bytes 0..255 */\n\nvar L_CODES = LITERALS + 1 + LENGTH_CODES;\n/* number of Literal or Length codes, including the END_BLOCK code */\n\nvar D_CODES = 30;\n/* number of distance codes */\n\nvar BL_CODES = 19;\n/* number of codes used to transfer the bit lengths */\n\nvar HEAP_SIZE = 2 * L_CODES + 1;\n/* maximum heap size */\n\nvar MAX_BITS = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar Buf_size = 16;\n/* size of bit buffer in bi_buf */\n\n\n/* ===========================================================================\n * Constants\n */\n\nvar MAX_BL_BITS = 7;\n/* Bit length codes must not exceed MAX_BL_BITS bits */\n\nvar END_BLOCK = 256;\n/* end of block literal code */\n\nvar REP_3_6 = 16;\n/* repeat previous bit length 3-6 times (2 bits of repeat count) */\n\nvar REPZ_3_10 = 17;\n/* repeat a zero length 3-10 times (3 bits of repeat count) */\n\nvar REPZ_11_138 = 18;\n/* repeat a zero length 11-138 times (7 bits of repeat count) */\n\n/* eslint-disable comma-spacing,array-bracket-spacing */\nvar extra_lbits = /* extra bits for each length code */\n [0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];\n\nvar extra_dbits = /* extra bits for each distance code */\n [0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];\n\nvar extra_blbits = /* extra bits for each bit length code */\n [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];\n\nvar bl_order =\n [16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];\n/* eslint-enable comma-spacing,array-bracket-spacing */\n\n/* The lengths of the bit length codes are sent in order of decreasing\n * probability, to avoid transmitting the lengths for unused bit length codes.\n */\n\n/* ===========================================================================\n * Local data. These are initialized only once.\n */\n\n// We pre-fill arrays with 0 to avoid uninitialized gaps\n\nvar DIST_CODE_LEN = 512; /* see definition of array dist_code below */\n\n// !!!! Use flat array instead of structure, Freq = i*2, Len = i*2+1\nvar static_ltree;\n/* The static literal tree. Since the bit lengths are imposed, there is no\n * need for the L_CODES extra codes used during heap construction. However\n * The codes 286 and 287 are needed to build a canonical tree (see _tr_init\n * below).\n */\n\nvar static_dtree;\n/* The static distance tree. (Actually a trivial tree since all codes use\n * 5 bits.)\n */\n\nvar _dist_code;\n/* Distance codes. The first 256 values correspond to the distances\n * 3 .. 258, the last 256 values correspond to the top 8 bits of\n * the 15 bit distances.\n */\n\nvar _length_code;\n/* length code for each normalized match length (0 == MIN_MATCH) */\n\nvar base_length;\n/* First normalized length for each code (0 = MIN_MATCH) */\n\nvar base_dist;\n/* First normalized distance for each code (0 = distance of 1) */\n\n\nfunction StaticTreeDesc(static_tree, extra_bits, extra_base, elems, max_length) {\n\n this.static_tree = static_tree; /* static tree or NULL */\n this.extra_bits = extra_bits; /* extra bits for each code or NULL */\n this.extra_base = extra_base; /* base index for extra_bits */\n this.elems = elems; /* max number of elements in the tree */\n this.max_length = max_length; /* max bit length for the codes */\n\n // show if `static_tree` has data or dummy - needed for monomorphic objects\n this.has_stree = static_tree && static_tree.length;\n}\n\n\nvar static_l_desc;\nvar static_d_desc;\nvar static_bl_desc;\n\n\nfunction TreeDesc(dyn_tree, stat_desc) {\n this.dyn_tree = dyn_tree; /* the dynamic tree */\n this.max_code = 0; /* largest code with non zero frequency */\n this.stat_desc = stat_desc; /* the corresponding static tree */\n}\n\n\n\nfunction d_code(dist) {\n return dist < 256 ? _dist_code[dist] : _dist_code[256 + (dist >>> 7)];\n}\n\n\n/* ===========================================================================\n * Output a short LSB first on the stream.\n * IN assertion: there is enough room in pendingBuf.\n */\nfunction put_short(s, w) {\n// put_byte(s, (uch)((w) & 0xff));\n// put_byte(s, (uch)((ush)(w) >> 8));\n s.pending_buf[s.pending++] = (w) & 0xff;\n s.pending_buf[s.pending++] = (w >>> 8) & 0xff;\n}\n\n\n/* ===========================================================================\n * Send a value on a given number of bits.\n * IN assertion: length <= 16 and value fits in length bits.\n */\nfunction send_bits(s, value, length) {\n if (s.bi_valid > (Buf_size - length)) {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n put_short(s, s.bi_buf);\n s.bi_buf = value >> (Buf_size - s.bi_valid);\n s.bi_valid += length - Buf_size;\n } else {\n s.bi_buf |= (value << s.bi_valid) & 0xffff;\n s.bi_valid += length;\n }\n}\n\n\nfunction send_code(s, c, tree) {\n send_bits(s, tree[c * 2]/*.Code*/, tree[c * 2 + 1]/*.Len*/);\n}\n\n\n/* ===========================================================================\n * Reverse the first len bits of a code, using straightforward code (a faster\n * method would use a table)\n * IN assertion: 1 <= len <= 15\n */\nfunction bi_reverse(code, len) {\n var res = 0;\n do {\n res |= code & 1;\n code >>>= 1;\n res <<= 1;\n } while (--len > 0);\n return res >>> 1;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer, keeping at most 7 bits in it.\n */\nfunction bi_flush(s) {\n if (s.bi_valid === 16) {\n put_short(s, s.bi_buf);\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n } else if (s.bi_valid >= 8) {\n s.pending_buf[s.pending++] = s.bi_buf & 0xff;\n s.bi_buf >>= 8;\n s.bi_valid -= 8;\n }\n}\n\n\n/* ===========================================================================\n * Compute the optimal bit lengths for a tree and update the total bit length\n * for the current block.\n * IN assertion: the fields freq and dad are set, heap[heap_max] and\n * above are the tree nodes sorted by increasing frequency.\n * OUT assertions: the field len is set to the optimal bit length, the\n * array bl_count contains the frequencies for each bit length.\n * The length opt_len is updated; static_len is also updated if stree is\n * not null.\n */\nfunction gen_bitlen(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var max_code = desc.max_code;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var extra = desc.stat_desc.extra_bits;\n var base = desc.stat_desc.extra_base;\n var max_length = desc.stat_desc.max_length;\n var h; /* heap index */\n var n, m; /* iterate over the tree elements */\n var bits; /* bit length */\n var xbits; /* extra bits */\n var f; /* frequency */\n var overflow = 0; /* number of elements with bit length too large */\n\n for (bits = 0; bits <= MAX_BITS; bits++) {\n s.bl_count[bits] = 0;\n }\n\n /* In a first pass, compute the optimal bit lengths (which may\n * overflow in the case of the bit length tree).\n */\n tree[s.heap[s.heap_max] * 2 + 1]/*.Len*/ = 0; /* root of the heap */\n\n for (h = s.heap_max + 1; h < HEAP_SIZE; h++) {\n n = s.heap[h];\n bits = tree[tree[n * 2 + 1]/*.Dad*/ * 2 + 1]/*.Len*/ + 1;\n if (bits > max_length) {\n bits = max_length;\n overflow++;\n }\n tree[n * 2 + 1]/*.Len*/ = bits;\n /* We overwrite tree[n].Dad which is no longer needed */\n\n if (n > max_code) { continue; } /* not a leaf node */\n\n s.bl_count[bits]++;\n xbits = 0;\n if (n >= base) {\n xbits = extra[n - base];\n }\n f = tree[n * 2]/*.Freq*/;\n s.opt_len += f * (bits + xbits);\n if (has_stree) {\n s.static_len += f * (stree[n * 2 + 1]/*.Len*/ + xbits);\n }\n }\n if (overflow === 0) { return; }\n\n // Trace((stderr,\"\\nbit length overflow\\n\"));\n /* This happens for example on obj2 and pic of the Calgary corpus */\n\n /* Find the first bit length which could increase: */\n do {\n bits = max_length - 1;\n while (s.bl_count[bits] === 0) { bits--; }\n s.bl_count[bits]--; /* move one leaf down the tree */\n s.bl_count[bits + 1] += 2; /* move one overflow item as its brother */\n s.bl_count[max_length]--;\n /* The brother of the overflow item also moves one step up,\n * but this does not affect bl_count[max_length]\n */\n overflow -= 2;\n } while (overflow > 0);\n\n /* Now recompute all bit lengths, scanning in increasing frequency.\n * h is still equal to HEAP_SIZE. (It is simpler to reconstruct all\n * lengths instead of fixing only the wrong ones. This idea is taken\n * from 'ar' written by Haruhiko Okumura.)\n */\n for (bits = max_length; bits !== 0; bits--) {\n n = s.bl_count[bits];\n while (n !== 0) {\n m = s.heap[--h];\n if (m > max_code) { continue; }\n if (tree[m * 2 + 1]/*.Len*/ !== bits) {\n // Trace((stderr,\"code %d bits %d->%d\\n\", m, tree[m].Len, bits));\n s.opt_len += (bits - tree[m * 2 + 1]/*.Len*/) * tree[m * 2]/*.Freq*/;\n tree[m * 2 + 1]/*.Len*/ = bits;\n }\n n--;\n }\n }\n}\n\n\n/* ===========================================================================\n * Generate the codes for a given tree and bit counts (which need not be\n * optimal).\n * IN assertion: the array bl_count contains the bit length statistics for\n * the given tree and the field len is set for all tree elements.\n * OUT assertion: the field code is set for all tree elements of non\n * zero code length.\n */\nfunction gen_codes(tree, max_code, bl_count)\n// ct_data *tree; /* the tree to decorate */\n// int max_code; /* largest code with non zero frequency */\n// ushf *bl_count; /* number of codes at each bit length */\n{\n var next_code = new Array(MAX_BITS + 1); /* next code value for each bit length */\n var code = 0; /* running code value */\n var bits; /* bit index */\n var n; /* code index */\n\n /* The distribution counts are first used to generate the code values\n * without bit reversal.\n */\n for (bits = 1; bits <= MAX_BITS; bits++) {\n next_code[bits] = code = (code + bl_count[bits - 1]) << 1;\n }\n /* Check that the bit counts in bl_count are consistent. The last code\n * must be all ones.\n */\n //Assert (code + bl_count[MAX_BITS]-1 == (1< length code (0..28) */\n length = 0;\n for (code = 0; code < LENGTH_CODES - 1; code++) {\n base_length[code] = length;\n for (n = 0; n < (1 << extra_lbits[code]); n++) {\n _length_code[length++] = code;\n }\n }\n //Assert (length == 256, \"tr_static_init: length != 256\");\n /* Note that the length 255 (match length 258) can be represented\n * in two different ways: code 284 + 5 bits or code 285, so we\n * overwrite length_code[255] to use the best encoding:\n */\n _length_code[length - 1] = code;\n\n /* Initialize the mapping dist (0..32K) -> dist code (0..29) */\n dist = 0;\n for (code = 0; code < 16; code++) {\n base_dist[code] = dist;\n for (n = 0; n < (1 << extra_dbits[code]); n++) {\n _dist_code[dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: dist != 256\");\n dist >>= 7; /* from now on, all distances are divided by 128 */\n for (; code < D_CODES; code++) {\n base_dist[code] = dist << 7;\n for (n = 0; n < (1 << (extra_dbits[code] - 7)); n++) {\n _dist_code[256 + dist++] = code;\n }\n }\n //Assert (dist == 256, \"tr_static_init: 256+dist != 512\");\n\n /* Construct the codes of the static literal tree */\n for (bits = 0; bits <= MAX_BITS; bits++) {\n bl_count[bits] = 0;\n }\n\n n = 0;\n while (n <= 143) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n while (n <= 255) {\n static_ltree[n * 2 + 1]/*.Len*/ = 9;\n n++;\n bl_count[9]++;\n }\n while (n <= 279) {\n static_ltree[n * 2 + 1]/*.Len*/ = 7;\n n++;\n bl_count[7]++;\n }\n while (n <= 287) {\n static_ltree[n * 2 + 1]/*.Len*/ = 8;\n n++;\n bl_count[8]++;\n }\n /* Codes 286 and 287 do not exist, but we must include them in the\n * tree construction to get a canonical Huffman tree (longest code\n * all ones)\n */\n gen_codes(static_ltree, L_CODES + 1, bl_count);\n\n /* The static distance tree is trivial: */\n for (n = 0; n < D_CODES; n++) {\n static_dtree[n * 2 + 1]/*.Len*/ = 5;\n static_dtree[n * 2]/*.Code*/ = bi_reverse(n, 5);\n }\n\n // Now data ready and we can init static trees\n static_l_desc = new StaticTreeDesc(static_ltree, extra_lbits, LITERALS + 1, L_CODES, MAX_BITS);\n static_d_desc = new StaticTreeDesc(static_dtree, extra_dbits, 0, D_CODES, MAX_BITS);\n static_bl_desc = new StaticTreeDesc(new Array(0), extra_blbits, 0, BL_CODES, MAX_BL_BITS);\n\n //static_init_done = true;\n}\n\n\n/* ===========================================================================\n * Initialize a new block.\n */\nfunction init_block(s) {\n var n; /* iterates over tree elements */\n\n /* Initialize the trees. */\n for (n = 0; n < L_CODES; n++) { s.dyn_ltree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < D_CODES; n++) { s.dyn_dtree[n * 2]/*.Freq*/ = 0; }\n for (n = 0; n < BL_CODES; n++) { s.bl_tree[n * 2]/*.Freq*/ = 0; }\n\n s.dyn_ltree[END_BLOCK * 2]/*.Freq*/ = 1;\n s.opt_len = s.static_len = 0;\n s.last_lit = s.matches = 0;\n}\n\n\n/* ===========================================================================\n * Flush the bit buffer and align the output on a byte boundary\n */\nfunction bi_windup(s)\n{\n if (s.bi_valid > 8) {\n put_short(s, s.bi_buf);\n } else if (s.bi_valid > 0) {\n //put_byte(s, (Byte)s->bi_buf);\n s.pending_buf[s.pending++] = s.bi_buf;\n }\n s.bi_buf = 0;\n s.bi_valid = 0;\n}\n\n/* ===========================================================================\n * Copy a stored block, storing first the length and its\n * one's complement if requested.\n */\nfunction copy_block(s, buf, len, header)\n//DeflateState *s;\n//charf *buf; /* the input data */\n//unsigned len; /* its length */\n//int header; /* true if block header must be written */\n{\n bi_windup(s); /* align on byte boundary */\n\n if (header) {\n put_short(s, len);\n put_short(s, ~len);\n }\n// while (len--) {\n// put_byte(s, *buf++);\n// }\n arraySet(s.pending_buf, s.window, buf, len, s.pending);\n s.pending += len;\n}\n\n/* ===========================================================================\n * Compares to subtrees, using the tree depth as tie breaker when\n * the subtrees have equal frequency. This minimizes the worst case length.\n */\nfunction smaller(tree, n, m, depth) {\n var _n2 = n * 2;\n var _m2 = m * 2;\n return (tree[_n2]/*.Freq*/ < tree[_m2]/*.Freq*/ ||\n (tree[_n2]/*.Freq*/ === tree[_m2]/*.Freq*/ && depth[n] <= depth[m]));\n}\n\n/* ===========================================================================\n * Restore the heap property by moving down the tree starting at node k,\n * exchanging a node with the smallest of its two sons if necessary, stopping\n * when the heap property is re-established (each father smaller than its\n * two sons).\n */\nfunction pqdownheap(s, tree, k)\n// deflate_state *s;\n// ct_data *tree; /* the tree to restore */\n// int k; /* node to move down */\n{\n var v = s.heap[k];\n var j = k << 1; /* left son of k */\n while (j <= s.heap_len) {\n /* Set j to the smallest of the two sons: */\n if (j < s.heap_len &&\n smaller(tree, s.heap[j + 1], s.heap[j], s.depth)) {\n j++;\n }\n /* Exit if v is smaller than both sons */\n if (smaller(tree, v, s.heap[j], s.depth)) { break; }\n\n /* Exchange v with the smallest son */\n s.heap[k] = s.heap[j];\n k = j;\n\n /* And continue down the tree, setting j to the left son of k */\n j <<= 1;\n }\n s.heap[k] = v;\n}\n\n\n// inlined manually\n// var SMALLEST = 1;\n\n/* ===========================================================================\n * Send the block data compressed using the given Huffman trees\n */\nfunction compress_block(s, ltree, dtree)\n// deflate_state *s;\n// const ct_data *ltree; /* literal tree */\n// const ct_data *dtree; /* distance tree */\n{\n var dist; /* distance of matched string */\n var lc; /* match length or unmatched char (if dist == 0) */\n var lx = 0; /* running index in l_buf */\n var code; /* the code to send */\n var extra; /* number of extra bits to send */\n\n if (s.last_lit !== 0) {\n do {\n dist = (s.pending_buf[s.d_buf + lx * 2] << 8) | (s.pending_buf[s.d_buf + lx * 2 + 1]);\n lc = s.pending_buf[s.l_buf + lx];\n lx++;\n\n if (dist === 0) {\n send_code(s, lc, ltree); /* send a literal byte */\n //Tracecv(isgraph(lc), (stderr,\" '%c' \", lc));\n } else {\n /* Here, lc is the match length - MIN_MATCH */\n code = _length_code[lc];\n send_code(s, code + LITERALS + 1, ltree); /* send the length code */\n extra = extra_lbits[code];\n if (extra !== 0) {\n lc -= base_length[code];\n send_bits(s, lc, extra); /* send the extra length bits */\n }\n dist--; /* dist is now the match distance - 1 */\n code = d_code(dist);\n //Assert (code < D_CODES, \"bad d_code\");\n\n send_code(s, code, dtree); /* send the distance code */\n extra = extra_dbits[code];\n if (extra !== 0) {\n dist -= base_dist[code];\n send_bits(s, dist, extra); /* send the extra distance bits */\n }\n } /* literal or match pair ? */\n\n /* Check that the overlay between pending_buf and d_buf+l_buf is ok: */\n //Assert((uInt)(s->pending) < s->lit_bufsize + 2*lx,\n // \"pendingBuf overflow\");\n\n } while (lx < s.last_lit);\n }\n\n send_code(s, END_BLOCK, ltree);\n}\n\n\n/* ===========================================================================\n * Construct one Huffman tree and assigns the code bit strings and lengths.\n * Update the total bit length for the current block.\n * IN assertion: the field freq is set for all tree elements.\n * OUT assertions: the fields len and code are set to the optimal bit length\n * and corresponding code. The length opt_len is updated; static_len is\n * also updated if stree is not null. The field max_code is set.\n */\nfunction build_tree(s, desc)\n// deflate_state *s;\n// tree_desc *desc; /* the tree descriptor */\n{\n var tree = desc.dyn_tree;\n var stree = desc.stat_desc.static_tree;\n var has_stree = desc.stat_desc.has_stree;\n var elems = desc.stat_desc.elems;\n var n, m; /* iterate over heap elements */\n var max_code = -1; /* largest code with non zero frequency */\n var node; /* new node being created */\n\n /* Construct the initial heap, with least frequent element in\n * heap[SMALLEST]. The sons of heap[n] are heap[2*n] and heap[2*n+1].\n * heap[0] is not used.\n */\n s.heap_len = 0;\n s.heap_max = HEAP_SIZE;\n\n for (n = 0; n < elems; n++) {\n if (tree[n * 2]/*.Freq*/ !== 0) {\n s.heap[++s.heap_len] = max_code = n;\n s.depth[n] = 0;\n\n } else {\n tree[n * 2 + 1]/*.Len*/ = 0;\n }\n }\n\n /* The pkzip format requires that at least one distance code exists,\n * and that at least one bit should be sent even if there is only one\n * possible code. So to avoid special checks later on we force at least\n * two codes of non zero frequency.\n */\n while (s.heap_len < 2) {\n node = s.heap[++s.heap_len] = (max_code < 2 ? ++max_code : 0);\n tree[node * 2]/*.Freq*/ = 1;\n s.depth[node] = 0;\n s.opt_len--;\n\n if (has_stree) {\n s.static_len -= stree[node * 2 + 1]/*.Len*/;\n }\n /* node is 0 or 1 so it does not have extra bits */\n }\n desc.max_code = max_code;\n\n /* The elements heap[heap_len/2+1 .. heap_len] are leaves of the tree,\n * establish sub-heaps of increasing lengths:\n */\n for (n = (s.heap_len >> 1/*int /2*/); n >= 1; n--) { pqdownheap(s, tree, n); }\n\n /* Construct the Huffman tree by repeatedly combining the least two\n * frequent nodes.\n */\n node = elems; /* next internal node of the tree */\n do {\n //pqremove(s, tree, n); /* n = node of least frequency */\n /*** pqremove ***/\n n = s.heap[1/*SMALLEST*/];\n s.heap[1/*SMALLEST*/] = s.heap[s.heap_len--];\n pqdownheap(s, tree, 1/*SMALLEST*/);\n /***/\n\n m = s.heap[1/*SMALLEST*/]; /* m = node of next least frequency */\n\n s.heap[--s.heap_max] = n; /* keep the nodes sorted by frequency */\n s.heap[--s.heap_max] = m;\n\n /* Create a new node father of n and m */\n tree[node * 2]/*.Freq*/ = tree[n * 2]/*.Freq*/ + tree[m * 2]/*.Freq*/;\n s.depth[node] = (s.depth[n] >= s.depth[m] ? s.depth[n] : s.depth[m]) + 1;\n tree[n * 2 + 1]/*.Dad*/ = tree[m * 2 + 1]/*.Dad*/ = node;\n\n /* and insert the new node in the heap */\n s.heap[1/*SMALLEST*/] = node++;\n pqdownheap(s, tree, 1/*SMALLEST*/);\n\n } while (s.heap_len >= 2);\n\n s.heap[--s.heap_max] = s.heap[1/*SMALLEST*/];\n\n /* At this point, the fields freq and dad are set. We can now\n * generate the bit lengths.\n */\n gen_bitlen(s, desc);\n\n /* The field len is now set, we can generate the bit codes */\n gen_codes(tree, max_code, s.bl_count);\n}\n\n\n/* ===========================================================================\n * Scan a literal or distance tree to determine the frequencies of the codes\n * in the bit length tree.\n */\nfunction scan_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n tree[(max_code + 1) * 2 + 1]/*.Len*/ = 0xffff; /* guard */\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n s.bl_tree[curlen * 2]/*.Freq*/ += count;\n\n } else if (curlen !== 0) {\n\n if (curlen !== prevlen) { s.bl_tree[curlen * 2]/*.Freq*/++; }\n s.bl_tree[REP_3_6 * 2]/*.Freq*/++;\n\n } else if (count <= 10) {\n s.bl_tree[REPZ_3_10 * 2]/*.Freq*/++;\n\n } else {\n s.bl_tree[REPZ_11_138 * 2]/*.Freq*/++;\n }\n\n count = 0;\n prevlen = curlen;\n\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Send a literal or distance tree in compressed form, using the codes in\n * bl_tree.\n */\nfunction send_tree(s, tree, max_code)\n// deflate_state *s;\n// ct_data *tree; /* the tree to be scanned */\n// int max_code; /* and its largest code of non zero frequency */\n{\n var n; /* iterates over all tree elements */\n var prevlen = -1; /* last emitted length */\n var curlen; /* length of current code */\n\n var nextlen = tree[0 * 2 + 1]/*.Len*/; /* length of next code */\n\n var count = 0; /* repeat count of the current code */\n var max_count = 7; /* max repeat count */\n var min_count = 4; /* min repeat count */\n\n /* tree[max_code+1].Len = -1; */ /* guard already set */\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n }\n\n for (n = 0; n <= max_code; n++) {\n curlen = nextlen;\n nextlen = tree[(n + 1) * 2 + 1]/*.Len*/;\n\n if (++count < max_count && curlen === nextlen) {\n continue;\n\n } else if (count < min_count) {\n do { send_code(s, curlen, s.bl_tree); } while (--count !== 0);\n\n } else if (curlen !== 0) {\n if (curlen !== prevlen) {\n send_code(s, curlen, s.bl_tree);\n count--;\n }\n //Assert(count >= 3 && count <= 6, \" 3_6?\");\n send_code(s, REP_3_6, s.bl_tree);\n send_bits(s, count - 3, 2);\n\n } else if (count <= 10) {\n send_code(s, REPZ_3_10, s.bl_tree);\n send_bits(s, count - 3, 3);\n\n } else {\n send_code(s, REPZ_11_138, s.bl_tree);\n send_bits(s, count - 11, 7);\n }\n\n count = 0;\n prevlen = curlen;\n if (nextlen === 0) {\n max_count = 138;\n min_count = 3;\n\n } else if (curlen === nextlen) {\n max_count = 6;\n min_count = 3;\n\n } else {\n max_count = 7;\n min_count = 4;\n }\n }\n}\n\n\n/* ===========================================================================\n * Construct the Huffman tree for the bit lengths and return the index in\n * bl_order of the last bit length code to send.\n */\nfunction build_bl_tree(s) {\n var max_blindex; /* index of last bit length code of non zero freq */\n\n /* Determine the bit length frequencies for literal and distance trees */\n scan_tree(s, s.dyn_ltree, s.l_desc.max_code);\n scan_tree(s, s.dyn_dtree, s.d_desc.max_code);\n\n /* Build the bit length tree: */\n build_tree(s, s.bl_desc);\n /* opt_len now includes the length of the tree representations, except\n * the lengths of the bit lengths codes and the 5+5+4 bits for the counts.\n */\n\n /* Determine the number of bit length codes to send. The pkzip format\n * requires that at least 4 bit length codes be sent. (appnote.txt says\n * 3 but the actual value used is 4.)\n */\n for (max_blindex = BL_CODES - 1; max_blindex >= 3; max_blindex--) {\n if (s.bl_tree[bl_order[max_blindex] * 2 + 1]/*.Len*/ !== 0) {\n break;\n }\n }\n /* Update opt_len to include the bit length tree and counts */\n s.opt_len += 3 * (max_blindex + 1) + 5 + 5 + 4;\n //Tracev((stderr, \"\\ndyn trees: dyn %ld, stat %ld\",\n // s->opt_len, s->static_len));\n\n return max_blindex;\n}\n\n\n/* ===========================================================================\n * Send the header for a block using dynamic Huffman trees: the counts, the\n * lengths of the bit length codes, the literal tree and the distance tree.\n * IN assertion: lcodes >= 257, dcodes >= 1, blcodes >= 4.\n */\nfunction send_all_trees(s, lcodes, dcodes, blcodes)\n// deflate_state *s;\n// int lcodes, dcodes, blcodes; /* number of codes for each tree */\n{\n var rank; /* index in bl_order */\n\n //Assert (lcodes >= 257 && dcodes >= 1 && blcodes >= 4, \"not enough codes\");\n //Assert (lcodes <= L_CODES && dcodes <= D_CODES && blcodes <= BL_CODES,\n // \"too many codes\");\n //Tracev((stderr, \"\\nbl counts: \"));\n send_bits(s, lcodes - 257, 5); /* not +255 as stated in appnote.txt */\n send_bits(s, dcodes - 1, 5);\n send_bits(s, blcodes - 4, 4); /* not -3 as stated in appnote.txt */\n for (rank = 0; rank < blcodes; rank++) {\n //Tracev((stderr, \"\\nbl code %2d \", bl_order[rank]));\n send_bits(s, s.bl_tree[bl_order[rank] * 2 + 1]/*.Len*/, 3);\n }\n //Tracev((stderr, \"\\nbl tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_ltree, lcodes - 1); /* literal tree */\n //Tracev((stderr, \"\\nlit tree: sent %ld\", s->bits_sent));\n\n send_tree(s, s.dyn_dtree, dcodes - 1); /* distance tree */\n //Tracev((stderr, \"\\ndist tree: sent %ld\", s->bits_sent));\n}\n\n\n/* ===========================================================================\n * Check if the data type is TEXT or BINARY, using the following algorithm:\n * - TEXT if the two conditions below are satisfied:\n * a) There are no non-portable control characters belonging to the\n * \"black list\" (0..6, 14..25, 28..31).\n * b) There is at least one printable character belonging to the\n * \"white list\" (9 {TAB}, 10 {LF}, 13 {CR}, 32..255).\n * - BINARY otherwise.\n * - The following partially-portable control characters form a\n * \"gray list\" that is ignored in this detection algorithm:\n * (7 {BEL}, 8 {BS}, 11 {VT}, 12 {FF}, 26 {SUB}, 27 {ESC}).\n * IN assertion: the fields Freq of dyn_ltree are set.\n */\nfunction detect_data_type(s) {\n /* black_mask is the bit mask of black-listed bytes\n * set bits 0..6, 14..25, and 28..31\n * 0xf3ffc07f = binary 11110011111111111100000001111111\n */\n var black_mask = 0xf3ffc07f;\n var n;\n\n /* Check for non-textual (\"black-listed\") bytes. */\n for (n = 0; n <= 31; n++, black_mask >>>= 1) {\n if ((black_mask & 1) && (s.dyn_ltree[n * 2]/*.Freq*/ !== 0)) {\n return Z_BINARY;\n }\n }\n\n /* Check for textual (\"white-listed\") bytes. */\n if (s.dyn_ltree[9 * 2]/*.Freq*/ !== 0 || s.dyn_ltree[10 * 2]/*.Freq*/ !== 0 ||\n s.dyn_ltree[13 * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n for (n = 32; n < LITERALS; n++) {\n if (s.dyn_ltree[n * 2]/*.Freq*/ !== 0) {\n return Z_TEXT;\n }\n }\n\n /* There are no \"black-listed\" or \"white-listed\" bytes:\n * this stream either is empty or has tolerated (\"gray-listed\") bytes only.\n */\n return Z_BINARY;\n}\n\n\nvar static_init_done = false;\n\n/* ===========================================================================\n * Initialize the tree data structures for a new zlib stream.\n */\nfunction _tr_init(s) {\n\n if (!static_init_done) {\n tr_static_init();\n static_init_done = true;\n }\n\n s.l_desc = new TreeDesc(s.dyn_ltree, static_l_desc);\n s.d_desc = new TreeDesc(s.dyn_dtree, static_d_desc);\n s.bl_desc = new TreeDesc(s.bl_tree, static_bl_desc);\n\n s.bi_buf = 0;\n s.bi_valid = 0;\n\n /* Initialize the first block of the first file: */\n init_block(s);\n}\n\n\n/* ===========================================================================\n * Send a stored block\n */\nfunction _tr_stored_block(s, buf, stored_len, last) {\n //DeflateState *s;\n //charf *buf; /* input block */\n //ulg stored_len; /* length of input block */\n //int last; /* one if this is the last block for a file */\n send_bits(s, (STORED_BLOCK << 1) + (last ? 1 : 0), 3); /* send block type */\n copy_block(s, buf, stored_len, true); /* with header */\n}\n\n\n/* ===========================================================================\n * Send one empty static block to give enough lookahead for inflate.\n * This takes 10 bits, of which 7 may remain in the bit buffer.\n */\nfunction _tr_align(s) {\n send_bits(s, STATIC_TREES << 1, 3);\n send_code(s, END_BLOCK, static_ltree);\n bi_flush(s);\n}\n\n\n/* ===========================================================================\n * Determine the best encoding for the current block: dynamic trees, static\n * trees or store, and output the encoded block to the zip file.\n */\nfunction _tr_flush_block(s, buf, stored_len, last) {\n //DeflateState *s;\n //charf *buf; /* input block, or NULL if too old */\n //ulg stored_len; /* length of input block */\n //int last; /* one if this is the last block for a file */\n var opt_lenb, static_lenb; /* opt_len and static_len in bytes */\n var max_blindex = 0; /* index of last bit length code of non zero freq */\n\n /* Build the Huffman trees unless a stored block is forced */\n if (s.level > 0) {\n\n /* Check if the file is binary or text */\n if (s.strm.data_type === Z_UNKNOWN) {\n s.strm.data_type = detect_data_type(s);\n }\n\n /* Construct the literal and distance trees */\n build_tree(s, s.l_desc);\n // Tracev((stderr, \"\\nlit data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n\n build_tree(s, s.d_desc);\n // Tracev((stderr, \"\\ndist data: dyn %ld, stat %ld\", s->opt_len,\n // s->static_len));\n /* At this point, opt_len and static_len are the total bit lengths of\n * the compressed block data, excluding the tree representations.\n */\n\n /* Build the bit length tree for the above two trees, and get the index\n * in bl_order of the last bit length code to send.\n */\n max_blindex = build_bl_tree(s);\n\n /* Determine the best encoding. Compute the block lengths in bytes. */\n opt_lenb = (s.opt_len + 3 + 7) >>> 3;\n static_lenb = (s.static_len + 3 + 7) >>> 3;\n\n // Tracev((stderr, \"\\nopt %lu(%lu) stat %lu(%lu) stored %lu lit %u \",\n // opt_lenb, s->opt_len, static_lenb, s->static_len, stored_len,\n // s->last_lit));\n\n if (static_lenb <= opt_lenb) { opt_lenb = static_lenb; }\n\n } else {\n // Assert(buf != (char*)0, \"lost buf\");\n opt_lenb = static_lenb = stored_len + 5; /* force a stored block */\n }\n\n if ((stored_len + 4 <= opt_lenb) && (buf !== -1)) {\n /* 4: two words for the lengths */\n\n /* The test buf != NULL is only necessary if LIT_BUFSIZE > WSIZE.\n * Otherwise we can't have processed more than WSIZE input bytes since\n * the last block flush, because compression would have been\n * successful. If LIT_BUFSIZE <= WSIZE, it is never too late to\n * transform a block into a stored block.\n */\n _tr_stored_block(s, buf, stored_len, last);\n\n } else if (s.strategy === Z_FIXED || static_lenb === opt_lenb) {\n\n send_bits(s, (STATIC_TREES << 1) + (last ? 1 : 0), 3);\n compress_block(s, static_ltree, static_dtree);\n\n } else {\n send_bits(s, (DYN_TREES << 1) + (last ? 1 : 0), 3);\n send_all_trees(s, s.l_desc.max_code + 1, s.d_desc.max_code + 1, max_blindex + 1);\n compress_block(s, s.dyn_ltree, s.dyn_dtree);\n }\n // Assert (s->compressed_len == s->bits_sent, \"bad compressed size\");\n /* The above check is made mod 2^32, for files larger than 512 MB\n * and uLong implemented on 32 bits.\n */\n init_block(s);\n\n if (last) {\n bi_windup(s);\n }\n // Tracev((stderr,\"\\ncomprlen %lu(%lu) \", s->compressed_len>>3,\n // s->compressed_len-7*last));\n}\n\n/* ===========================================================================\n * Save the match info and tally the frequency counts. Return true if\n * the current block must be flushed.\n */\nfunction _tr_tally(s, dist, lc) {\n // deflate_state *s;\n // unsigned dist; /* distance of matched string */\n // unsigned lc; /* match length-MIN_MATCH or unmatched char (if dist==0) */\n //var out_length, in_length, dcode;\n\n s.pending_buf[s.d_buf + s.last_lit * 2] = (dist >>> 8) & 0xff;\n s.pending_buf[s.d_buf + s.last_lit * 2 + 1] = dist & 0xff;\n\n s.pending_buf[s.l_buf + s.last_lit] = lc & 0xff;\n s.last_lit++;\n\n if (dist === 0) {\n /* lc is the unmatched char */\n s.dyn_ltree[lc * 2]/*.Freq*/++;\n } else {\n s.matches++;\n /* Here, lc is the match length - MIN_MATCH */\n dist--; /* dist = match distance - 1 */\n //Assert((ush)dist < (ush)MAX_DIST(s) &&\n // (ush)lc <= (ush)(MAX_MATCH-MIN_MATCH) &&\n // (ush)d_code(dist) < (ush)D_CODES, \"_tr_tally: bad match\");\n\n s.dyn_ltree[(_length_code[lc] + LITERALS + 1) * 2]/*.Freq*/++;\n s.dyn_dtree[d_code(dist) * 2]/*.Freq*/++;\n }\n\n// (!) This block is disabled in zlib defaults,\n// don't enable it for binary compatibility\n\n//#ifdef TRUNCATE_BLOCK\n// /* Try to guess if it is profitable to stop the current block here */\n// if ((s.last_lit & 0x1fff) === 0 && s.level > 2) {\n// /* Compute an upper bound for the compressed length */\n// out_length = s.last_lit*8;\n// in_length = s.strstart - s.block_start;\n//\n// for (dcode = 0; dcode < D_CODES; dcode++) {\n// out_length += s.dyn_dtree[dcode*2]/*.Freq*/ * (5 + extra_dbits[dcode]);\n// }\n// out_length >>>= 3;\n// //Tracev((stderr,\"\\nlast_lit %u, in %ld, out ~%ld(%ld%%) \",\n// // s->last_lit, in_length, out_length,\n// // 100L - out_length*100L/in_length));\n// if (s.matches < (s.last_lit>>1)/*int /2*/ && out_length < (in_length>>1)/*int /2*/) {\n// return true;\n// }\n// }\n//#endif\n\n return (s.last_lit === s.lit_bufsize - 1);\n /* We avoid equality with lit_bufsize because of wraparound at 64K\n * on 16 bit machines and because stored blocks are restricted to\n * 64K-1 bytes.\n */\n}\n\n/* eslint-disable */\n\nvar MAX_MEM_LEVEL = 9;\n\n\nvar LENGTH_CODES$1 = 29;\n/* number of length codes, not counting the special END_BLOCK code */\nvar LITERALS$1 = 256;\n/* number of literal bytes 0..255 */\nvar L_CODES$1 = LITERALS$1 + 1 + LENGTH_CODES$1;\n/* number of Literal or Length codes, including the END_BLOCK code */\nvar D_CODES$1 = 30;\n/* number of distance codes */\nvar BL_CODES$1 = 19;\n/* number of codes used to transfer the bit lengths */\nvar HEAP_SIZE$1 = 2 * L_CODES$1 + 1;\n/* maximum heap size */\nvar MAX_BITS$1 = 15;\n/* All codes must not exceed MAX_BITS bits */\n\nvar MIN_MATCH$1 = 3;\nvar MAX_MATCH$1 = 258;\nvar MIN_LOOKAHEAD = (MAX_MATCH$1 + MIN_MATCH$1 + 1);\n\nvar PRESET_DICT = 0x20;\n\nvar INIT_STATE = 42;\nvar EXTRA_STATE = 69;\nvar NAME_STATE = 73;\nvar COMMENT_STATE = 91;\nvar HCRC_STATE = 103;\nvar BUSY_STATE = 113;\nvar FINISH_STATE = 666;\n\nvar BS_NEED_MORE = 1; /* block not completed, need more input or more output */\nvar BS_BLOCK_DONE = 2; /* block flush performed */\nvar BS_FINISH_STARTED = 3; /* finish started, need only more output at next deflate */\nvar BS_FINISH_DONE = 4; /* finish done, accept no more input or output */\n\nvar OS_CODE = 0x03; // Unix :) . Don't detect, use this default.\n\nfunction err(strm, errorCode) {\n strm.msg = msg[errorCode];\n return errorCode;\n}\n\nfunction rank(f) {\n return ((f) << 1) - ((f) > 4 ? 9 : 0);\n}\n\nfunction zero$1(buf) { var len = buf.length; while (--len >= 0) { buf[len] = 0; } }\n\n\n/* =========================================================================\n * Flush as much pending output as possible. All deflate() output goes\n * through this function so some applications may wish to modify it\n * to avoid allocating a large strm->output buffer and copying into it.\n * (See also read_buf()).\n */\nfunction flush_pending(strm) {\n var s = strm.state;\n\n //_tr_flush_bits(s);\n var len = s.pending;\n if (len > strm.avail_out) {\n len = strm.avail_out;\n }\n if (len === 0) { return; }\n\n arraySet(strm.output, s.pending_buf, s.pending_out, len, strm.next_out);\n strm.next_out += len;\n s.pending_out += len;\n strm.total_out += len;\n strm.avail_out -= len;\n s.pending -= len;\n if (s.pending === 0) {\n s.pending_out = 0;\n }\n}\n\n\nfunction flush_block_only(s, last) {\n _tr_flush_block(s, (s.block_start >= 0 ? s.block_start : -1), s.strstart - s.block_start, last);\n s.block_start = s.strstart;\n flush_pending(s.strm);\n}\n\n\nfunction put_byte(s, b) {\n s.pending_buf[s.pending++] = b;\n}\n\n\n/* =========================================================================\n * Put a short in the pending buffer. The 16-bit value is put in MSB order.\n * IN assertion: the stream state is correct and there is enough room in\n * pending_buf.\n */\nfunction putShortMSB(s, b) {\n// put_byte(s, (Byte)(b >> 8));\n// put_byte(s, (Byte)(b & 0xff));\n s.pending_buf[s.pending++] = (b >>> 8) & 0xff;\n s.pending_buf[s.pending++] = b & 0xff;\n}\n\n\n/* ===========================================================================\n * Read a new buffer from the current input stream, update the adler32\n * and total number of bytes read. All deflate() input goes through\n * this function so some applications may wish to modify it to avoid\n * allocating a large strm->input buffer and copying from it.\n * (See also flush_pending()).\n */\nfunction read_buf(strm, buf, start, size) {\n var len = strm.avail_in;\n\n if (len > size) { len = size; }\n if (len === 0) { return 0; }\n\n strm.avail_in -= len;\n\n // zmemcpy(buf, strm->next_in, len);\n arraySet(buf, strm.input, strm.next_in, len, start);\n if (strm.state.wrap === 1) {\n strm.adler = adler32(strm.adler, buf, len, start);\n }\n\n else if (strm.state.wrap === 2) {\n strm.adler = crc32(strm.adler, buf, len, start);\n }\n\n strm.next_in += len;\n strm.total_in += len;\n\n return len;\n}\n\n\n/* ===========================================================================\n * Set match_start to the longest match starting at the given string and\n * return its length. Matches shorter or equal to prev_length are discarded,\n * in which case the result is equal to prev_length and match_start is\n * garbage.\n * IN assertions: cur_match is the head of the hash chain for the current\n * string (strstart) and its distance is <= MAX_DIST, and prev_length >= 1\n * OUT assertion: the match length is not greater than s->lookahead.\n */\nfunction longest_match(s, cur_match) {\n var chain_length = s.max_chain_length; /* max hash chain length */\n var scan = s.strstart; /* current string */\n var match; /* matched string */\n var len; /* length of current match */\n var best_len = s.prev_length; /* best match length so far */\n var nice_match = s.nice_match; /* stop if match long enough */\n var limit = (s.strstart > (s.w_size - MIN_LOOKAHEAD)) ?\n s.strstart - (s.w_size - MIN_LOOKAHEAD) : 0/*NIL*/;\n\n var _win = s.window; // shortcut\n\n var wmask = s.w_mask;\n var prev = s.prev;\n\n /* Stop when cur_match becomes <= limit. To simplify the code,\n * we prevent matches with the string of window index 0.\n */\n\n var strend = s.strstart + MAX_MATCH$1;\n var scan_end1 = _win[scan + best_len - 1];\n var scan_end = _win[scan + best_len];\n\n /* The code is optimized for HASH_BITS >= 8 and MAX_MATCH-2 multiple of 16.\n * It is easy to get rid of this optimization if necessary.\n */\n // Assert(s->hash_bits >= 8 && MAX_MATCH == 258, \"Code too clever\");\n\n /* Do not waste too much time if we already have a good match: */\n if (s.prev_length >= s.good_match) {\n chain_length >>= 2;\n }\n /* Do not look for matches beyond the end of the input. This is necessary\n * to make deflate deterministic.\n */\n if (nice_match > s.lookahead) { nice_match = s.lookahead; }\n\n // Assert((ulg)s->strstart <= s->window_size-MIN_LOOKAHEAD, \"need lookahead\");\n\n do {\n // Assert(cur_match < s->strstart, \"no future\");\n match = cur_match;\n\n /* Skip to next match if the match length cannot increase\n * or if the match length is less than 2. Note that the checks below\n * for insufficient lookahead only occur occasionally for performance\n * reasons. Therefore uninitialized memory will be accessed, and\n * conditional jumps will be made that depend on those values.\n * However the length of the match is limited to the lookahead, so\n * the output of deflate is not affected by the uninitialized values.\n */\n\n if (_win[match + best_len] !== scan_end ||\n _win[match + best_len - 1] !== scan_end1 ||\n _win[match] !== _win[scan] ||\n _win[++match] !== _win[scan + 1]) {\n continue;\n }\n\n /* The check at best_len-1 can be removed because it will be made\n * again later. (This heuristic is not always a win.)\n * It is not necessary to compare scan[2] and match[2] since they\n * are always equal when the other bytes match, given that\n * the hash keys are equal and that HASH_BITS >= 8.\n */\n scan += 2;\n match++;\n // Assert(*scan == *match, \"match[2]?\");\n\n /* We check for insufficient lookahead only every 8th comparison;\n * the 256th check will be made at strstart+258.\n */\n do {\n /*jshint noempty:false*/\n } while (_win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n _win[++scan] === _win[++match] && _win[++scan] === _win[++match] &&\n scan < strend);\n\n // Assert(scan <= s->window+(unsigned)(s->window_size-1), \"wild scan\");\n\n len = MAX_MATCH$1 - (strend - scan);\n scan = strend - MAX_MATCH$1;\n\n if (len > best_len) {\n s.match_start = cur_match;\n best_len = len;\n if (len >= nice_match) {\n break;\n }\n scan_end1 = _win[scan + best_len - 1];\n scan_end = _win[scan + best_len];\n }\n } while ((cur_match = prev[cur_match & wmask]) > limit && --chain_length !== 0);\n\n if (best_len <= s.lookahead) {\n return best_len;\n }\n return s.lookahead;\n}\n\n\n/* ===========================================================================\n * Fill the window when the lookahead becomes insufficient.\n * Updates strstart and lookahead.\n *\n * IN assertion: lookahead < MIN_LOOKAHEAD\n * OUT assertions: strstart <= window_size-MIN_LOOKAHEAD\n * At least one byte has been read, or avail_in == 0; reads are\n * performed for at least two bytes (required for the zip translate_eol\n * option -- not supported here).\n */\nfunction fill_window(s) {\n var _w_size = s.w_size;\n var p, n, m, more, str;\n\n //Assert(s->lookahead < MIN_LOOKAHEAD, \"already enough lookahead\");\n\n do {\n more = s.window_size - s.lookahead - s.strstart;\n\n // JS ints have 32 bit, block below not needed\n /* Deal with !@#$% 64K limit: */\n //if (sizeof(int) <= 2) {\n // if (more == 0 && s->strstart == 0 && s->lookahead == 0) {\n // more = wsize;\n //\n // } else if (more == (unsigned)(-1)) {\n // /* Very unlikely, but possible on 16 bit machine if\n // * strstart == 0 && lookahead == 1 (input done a byte at time)\n // */\n // more--;\n // }\n //}\n\n\n /* If the window is almost full and there is insufficient lookahead,\n * move the upper half to the lower one to make room in the upper half.\n */\n if (s.strstart >= _w_size + (_w_size - MIN_LOOKAHEAD)) {\n\n arraySet(s.window, s.window, _w_size, _w_size, 0);\n s.match_start -= _w_size;\n s.strstart -= _w_size;\n /* we now have strstart >= MAX_DIST */\n s.block_start -= _w_size;\n\n /* Slide the hash table (could be avoided with 32 bit values\n at the expense of memory usage). We slide even when level == 0\n to keep the hash table consistent if we switch back to level > 0\n later. (Using level 0 permanently is not an optimal usage of\n zlib, so we don't care about this pathological case.)\n */\n\n n = s.hash_size;\n p = n;\n do {\n m = s.head[--p];\n s.head[p] = (m >= _w_size ? m - _w_size : 0);\n } while (--n);\n\n n = _w_size;\n p = n;\n do {\n m = s.prev[--p];\n s.prev[p] = (m >= _w_size ? m - _w_size : 0);\n /* If n is not on any hash chain, prev[n] is garbage but\n * its value will never be used.\n */\n } while (--n);\n\n more += _w_size;\n }\n if (s.strm.avail_in === 0) {\n break;\n }\n\n /* If there was no sliding:\n * strstart <= WSIZE+MAX_DIST-1 && lookahead <= MIN_LOOKAHEAD - 1 &&\n * more == window_size - lookahead - strstart\n * => more >= window_size - (MIN_LOOKAHEAD-1 + WSIZE + MAX_DIST-1)\n * => more >= window_size - 2*WSIZE + 2\n * In the BIG_MEM or MMAP case (not yet supported),\n * window_size == input_size + MIN_LOOKAHEAD &&\n * strstart + s->lookahead <= input_size => more >= MIN_LOOKAHEAD.\n * Otherwise, window_size == 2*WSIZE so more >= 2.\n * If there was sliding, more >= WSIZE. So in all cases, more >= 2.\n */\n //Assert(more >= 2, \"more < 2\");\n n = read_buf(s.strm, s.window, s.strstart + s.lookahead, more);\n s.lookahead += n;\n\n /* Initialize the hash value now that we have some input: */\n if (s.lookahead + s.insert >= MIN_MATCH$1) {\n str = s.strstart - s.insert;\n s.ins_h = s.window[str];\n\n /* UPDATE_HASH(s, s->ins_h, s->window[str + 1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + 1]) & s.hash_mask;\n//#if MIN_MATCH != 3\n// Call update_hash() MIN_MATCH-3 more times\n//#endif\n while (s.insert) {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH$1 - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = str;\n str++;\n s.insert--;\n if (s.lookahead + s.insert < MIN_MATCH$1) {\n break;\n }\n }\n }\n /* If the whole input has less than MIN_MATCH bytes, ins_h is garbage,\n * but this is not important since only literal bytes will be emitted.\n */\n\n } while (s.lookahead < MIN_LOOKAHEAD && s.strm.avail_in !== 0);\n\n /* If the WIN_INIT bytes after the end of the current data have never been\n * written, then zero those bytes in order to avoid memory check reports of\n * the use of uninitialized (or uninitialised as Julian writes) bytes by\n * the longest match routines. Update the high water mark for the next\n * time through here. WIN_INIT is set to MAX_MATCH since the longest match\n * routines allow scanning to strstart + MAX_MATCH, ignoring lookahead.\n */\n// if (s.high_water < s.window_size) {\n// var curr = s.strstart + s.lookahead;\n// var init = 0;\n//\n// if (s.high_water < curr) {\n// /* Previous high water mark below current data -- zero WIN_INIT\n// * bytes or up to end of window, whichever is less.\n// */\n// init = s.window_size - curr;\n// if (init > WIN_INIT)\n// init = WIN_INIT;\n// zmemzero(s->window + curr, (unsigned)init);\n// s->high_water = curr + init;\n// }\n// else if (s->high_water < (ulg)curr + WIN_INIT) {\n// /* High water mark at or above current data, but below current data\n// * plus WIN_INIT -- zero out to current data plus WIN_INIT, or up\n// * to end of window, whichever is less.\n// */\n// init = (ulg)curr + WIN_INIT - s->high_water;\n// if (init > s->window_size - s->high_water)\n// init = s->window_size - s->high_water;\n// zmemzero(s->window + s->high_water, (unsigned)init);\n// s->high_water += init;\n// }\n// }\n//\n// Assert((ulg)s->strstart <= s->window_size - MIN_LOOKAHEAD,\n// \"not enough room for search\");\n}\n\n/* ===========================================================================\n * Copy without compression as much as possible from the input stream, return\n * the current block state.\n * This function does not insert new strings in the dictionary since\n * uncompressible data is probably not useful. This function is used\n * only for the level=0 compression option.\n * NOTE: this function should be optimized to avoid extra copying from\n * window to pending_buf.\n */\nfunction deflate_stored(s, flush) {\n /* Stored blocks are limited to 0xffff bytes, pending_buf is limited\n * to pending_buf_size, and each stored block has a 5 byte header:\n */\n var max_block_size = 0xffff;\n\n if (max_block_size > s.pending_buf_size - 5) {\n max_block_size = s.pending_buf_size - 5;\n }\n\n /* Copy as much as possible from input to output: */\n for (;;) {\n /* Fill the window as much as possible: */\n if (s.lookahead <= 1) {\n\n //Assert(s->strstart < s->w_size+MAX_DIST(s) ||\n // s->block_start >= (long)s->w_size, \"slide too late\");\n// if (!(s.strstart < s.w_size + (s.w_size - MIN_LOOKAHEAD) ||\n// s.block_start >= s.w_size)) {\n// throw new Error(\"slide too late\");\n// }\n\n fill_window(s);\n if (s.lookahead === 0 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n\n if (s.lookahead === 0) {\n break;\n }\n /* flush the current block */\n }\n //Assert(s->block_start >= 0L, \"block gone\");\n// if (s.block_start < 0) throw new Error(\"block gone\");\n\n s.strstart += s.lookahead;\n s.lookahead = 0;\n\n /* Emit a stored block if pending_buf will be full: */\n var max_start = s.block_start + max_block_size;\n\n if (s.strstart === 0 || s.strstart >= max_start) {\n /* strstart == 0 is possible when wraparound on 16-bit machine */\n s.lookahead = s.strstart - max_start;\n s.strstart = max_start;\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n\n\n }\n /* Flush if we may have to slide, otherwise block_start may become\n * negative and the data will be gone:\n */\n if (s.strstart - s.block_start >= (s.w_size - MIN_LOOKAHEAD)) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n\n s.insert = 0;\n\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n\n if (s.strstart > s.block_start) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_NEED_MORE;\n}\n\n/* ===========================================================================\n * Compress as much as possible from the input stream, return the current\n * block state.\n * This function does not perform lazy evaluation of matches and inserts\n * new strings in the dictionary only for unmatched strings or for short\n * matches. It is used only for the fast compression options.\n */\nfunction deflate_fast(s, flush) {\n var hash_head; /* head of the hash chain */\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) {\n break; /* flush the current block */\n }\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH$1) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n * At this point we have always match_length < MIN_MATCH\n */\n if (hash_head !== 0/*NIL*/ && ((s.strstart - hash_head) <= (s.w_size - MIN_LOOKAHEAD))) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n }\n if (s.match_length >= MIN_MATCH$1) {\n // check_match(s, s.strstart, s.match_start, s.match_length); // for debug only\n\n /*** _tr_tally_dist(s, s.strstart - s.match_start,\n s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, s.strstart - s.match_start, s.match_length - MIN_MATCH$1);\n\n s.lookahead -= s.match_length;\n\n /* Insert new strings in the hash table only if the match length\n * is not too large. This saves time but degrades compression.\n */\n if (s.match_length <= s.max_lazy_match/*max_insert_length*/ && s.lookahead >= MIN_MATCH$1) {\n s.match_length--; /* string at strstart already in table */\n do {\n s.strstart++;\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n /* strstart never exceeds WSIZE-MAX_MATCH, so there are\n * always MIN_MATCH bytes ahead.\n */\n } while (--s.match_length !== 0);\n s.strstart++;\n } else\n {\n s.strstart += s.match_length;\n s.match_length = 0;\n s.ins_h = s.window[s.strstart];\n /* UPDATE_HASH(s, s.ins_h, s.window[s.strstart+1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + 1]) & s.hash_mask;\n\n//#if MIN_MATCH != 3\n// Call UPDATE_HASH() MIN_MATCH-3 more times\n//#endif\n /* If lookahead < MIN_MATCH, ins_h is garbage, but it does not\n * matter since it will be recomputed at next deflate call.\n */\n }\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s.window[s.strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = ((s.strstart < (MIN_MATCH$1 - 1)) ? s.strstart : MIN_MATCH$1 - 1);\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * Same as above, but achieves better compression. We use a lazy\n * evaluation for matches: a match is finally adopted only if there is\n * no better match at the next window position.\n */\nfunction deflate_slow(s, flush) {\n var hash_head; /* head of hash chain */\n var bflush; /* set if current block must be flushed */\n\n var max_insert;\n\n /* Process the input block. */\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the next match, plus MIN_MATCH bytes to insert the\n * string following the next match.\n */\n if (s.lookahead < MIN_LOOKAHEAD) {\n fill_window(s);\n if (s.lookahead < MIN_LOOKAHEAD && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* Insert the string window[strstart .. strstart+2] in the\n * dictionary, and set hash_head to the head of the hash chain:\n */\n hash_head = 0/*NIL*/;\n if (s.lookahead >= MIN_MATCH$1) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n\n /* Find the longest match, discarding those <= prev_length.\n */\n s.prev_length = s.match_length;\n s.prev_match = s.match_start;\n s.match_length = MIN_MATCH$1 - 1;\n\n if (hash_head !== 0/*NIL*/ && s.prev_length < s.max_lazy_match &&\n s.strstart - hash_head <= (s.w_size - MIN_LOOKAHEAD)/*MAX_DIST(s)*/) {\n /* To simplify the code, we prevent matches with the string\n * of window index 0 (in particular we have to avoid a match\n * of the string with itself at the start of the input file).\n */\n s.match_length = longest_match(s, hash_head);\n /* longest_match() sets match_start */\n\n if (s.match_length <= 5 &&\n (s.strategy === Z_FILTERED || (s.match_length === MIN_MATCH$1 && s.strstart - s.match_start > 4096/*TOO_FAR*/))) {\n\n /* If prev_match is also MIN_MATCH, match_start is garbage\n * but we will ignore the current match anyway.\n */\n s.match_length = MIN_MATCH$1 - 1;\n }\n }\n /* If there was a match at the previous step and the current\n * match is not better, output the previous match:\n */\n if (s.prev_length >= MIN_MATCH$1 && s.match_length <= s.prev_length) {\n max_insert = s.strstart + s.lookahead - MIN_MATCH$1;\n /* Do not insert strings in hash table beyond this. */\n\n //check_match(s, s.strstart-1, s.prev_match, s.prev_length);\n\n /***_tr_tally_dist(s, s.strstart - 1 - s.prev_match,\n s.prev_length - MIN_MATCH, bflush);***/\n bflush = _tr_tally(s, s.strstart - 1 - s.prev_match, s.prev_length - MIN_MATCH$1);\n /* Insert in hash table all strings up to the end of the match.\n * strstart-1 and strstart are already inserted. If there is not\n * enough lookahead, the last two strings are not inserted in\n * the hash table.\n */\n s.lookahead -= s.prev_length - 1;\n s.prev_length -= 2;\n do {\n if (++s.strstart <= max_insert) {\n /*** INSERT_STRING(s, s.strstart, hash_head); ***/\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[s.strstart + MIN_MATCH$1 - 1]) & s.hash_mask;\n hash_head = s.prev[s.strstart & s.w_mask] = s.head[s.ins_h];\n s.head[s.ins_h] = s.strstart;\n /***/\n }\n } while (--s.prev_length !== 0);\n s.match_available = 0;\n s.match_length = MIN_MATCH$1 - 1;\n s.strstart++;\n\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n } else if (s.match_available) {\n /* If there was no match at the previous position, output a\n * single literal. If there was a match but the current match\n * is longer, truncate the previous match to a single literal.\n */\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n if (bflush) {\n /*** FLUSH_BLOCK_ONLY(s, 0) ***/\n flush_block_only(s, false);\n /***/\n }\n s.strstart++;\n s.lookahead--;\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n } else {\n /* There is no previous match to compare with, wait for\n * the next step to decide.\n */\n s.match_available = 1;\n s.strstart++;\n s.lookahead--;\n }\n }\n //Assert (flush != Z_NO_FLUSH, \"no flush?\");\n if (s.match_available) {\n //Tracevv((stderr,\"%c\", s->window[s->strstart-1]));\n /*** _tr_tally_lit(s, s.window[s.strstart-1], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart - 1]);\n\n s.match_available = 0;\n }\n s.insert = s.strstart < MIN_MATCH$1 - 1 ? s.strstart : MIN_MATCH$1 - 1;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n\n return BS_BLOCK_DONE;\n}\n\n\n/* ===========================================================================\n * For Z_RLE, simply look for runs of bytes, generate matches only of distance\n * one. Do not maintain a hash table. (It will be regenerated if this run of\n * deflate switches away from Z_RLE.)\n */\nfunction deflate_rle(s, flush) {\n var bflush; /* set if current block must be flushed */\n var prev; /* byte at distance one to match */\n var scan, strend; /* scan goes up to strend for length of run */\n\n var _win = s.window;\n\n for (;;) {\n /* Make sure that we always have enough lookahead, except\n * at the end of the input file. We need MAX_MATCH bytes\n * for the longest run, plus one for the unrolled loop.\n */\n if (s.lookahead <= MAX_MATCH$1) {\n fill_window(s);\n if (s.lookahead <= MAX_MATCH$1 && flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n if (s.lookahead === 0) { break; } /* flush the current block */\n }\n\n /* See how many times the previous byte repeats */\n s.match_length = 0;\n if (s.lookahead >= MIN_MATCH$1 && s.strstart > 0) {\n scan = s.strstart - 1;\n prev = _win[scan];\n if (prev === _win[++scan] && prev === _win[++scan] && prev === _win[++scan]) {\n strend = s.strstart + MAX_MATCH$1;\n do {\n /*jshint noempty:false*/\n } while (prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n prev === _win[++scan] && prev === _win[++scan] &&\n scan < strend);\n s.match_length = MAX_MATCH$1 - (strend - scan);\n if (s.match_length > s.lookahead) {\n s.match_length = s.lookahead;\n }\n }\n //Assert(scan <= s->window+(uInt)(s->window_size-1), \"wild scan\");\n }\n\n /* Emit match if have run of MIN_MATCH or longer, else emit literal */\n if (s.match_length >= MIN_MATCH$1) {\n //check_match(s, s.strstart, s.strstart - 1, s.match_length);\n\n /*** _tr_tally_dist(s, 1, s.match_length - MIN_MATCH, bflush); ***/\n bflush = _tr_tally(s, 1, s.match_length - MIN_MATCH$1);\n\n s.lookahead -= s.match_length;\n s.strstart += s.match_length;\n s.match_length = 0;\n } else {\n /* No match, output a literal byte */\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n\n s.lookahead--;\n s.strstart++;\n }\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* ===========================================================================\n * For Z_HUFFMAN_ONLY, do not look for matches. Do not maintain a hash table.\n * (It will be regenerated if this run of deflate switches away from Huffman.)\n */\nfunction deflate_huff(s, flush) {\n var bflush; /* set if current block must be flushed */\n\n for (;;) {\n /* Make sure that we have a literal to write. */\n if (s.lookahead === 0) {\n fill_window(s);\n if (s.lookahead === 0) {\n if (flush === Z_NO_FLUSH) {\n return BS_NEED_MORE;\n }\n break; /* flush the current block */\n }\n }\n\n /* Output a literal byte */\n s.match_length = 0;\n //Tracevv((stderr,\"%c\", s->window[s->strstart]));\n /*** _tr_tally_lit(s, s.window[s.strstart], bflush); ***/\n bflush = _tr_tally(s, 0, s.window[s.strstart]);\n s.lookahead--;\n s.strstart++;\n if (bflush) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n }\n s.insert = 0;\n if (flush === Z_FINISH) {\n /*** FLUSH_BLOCK(s, 1); ***/\n flush_block_only(s, true);\n if (s.strm.avail_out === 0) {\n return BS_FINISH_STARTED;\n }\n /***/\n return BS_FINISH_DONE;\n }\n if (s.last_lit) {\n /*** FLUSH_BLOCK(s, 0); ***/\n flush_block_only(s, false);\n if (s.strm.avail_out === 0) {\n return BS_NEED_MORE;\n }\n /***/\n }\n return BS_BLOCK_DONE;\n}\n\n/* Values for max_lazy_match, good_match and max_chain_length, depending on\n * the desired pack level (0..9). The values given below have been tuned to\n * exclude worst case performance for pathological files. Better values may be\n * found for specific files.\n */\nfunction Config(good_length, max_lazy, nice_length, max_chain, func) {\n this.good_length = good_length;\n this.max_lazy = max_lazy;\n this.nice_length = nice_length;\n this.max_chain = max_chain;\n this.func = func;\n}\n\nlet configurationTable = function() {\n const table = [\n /* good lazy nice chain */\n new Config(0, 0, 0, 0, deflate_stored), /* 0 store only */\n new Config(4, 4, 8, 4, deflate_fast), /* 1 max speed, no lazy matches */\n new Config(4, 5, 16, 8, deflate_fast), /* 2 */\n new Config(4, 6, 32, 32, deflate_fast), /* 3 */\n \n new Config(4, 4, 16, 16, deflate_slow), /* 4 lazy matches */\n new Config(8, 16, 32, 32, deflate_slow), /* 5 */\n new Config(8, 16, 128, 128, deflate_slow), /* 6 */\n new Config(8, 32, 128, 256, deflate_slow), /* 7 */\n new Config(32, 128, 258, 1024, deflate_slow), /* 8 */\n new Config(32, 258, 258, 4096, deflate_slow) /* 9 max compression */\n ];\n\n configurationTable = () => table;\n return table;\n};\n\n/* ===========================================================================\n * Initialize the \"longest match\" routines for a new zlib stream\n */\nfunction lm_init(s) {\n s.window_size = 2 * s.w_size;\n\n /*** CLEAR_HASH(s); ***/\n zero$1(s.head); // Fill with NIL (= 0);\n\n const table = configurationTable();\n /* Set the default configuration parameters:\n */\n s.max_lazy_match = table[s.level].max_lazy;\n s.good_match = table[s.level].good_length;\n s.nice_match = table[s.level].nice_length;\n s.max_chain_length = table[s.level].max_chain;\n\n s.strstart = 0;\n s.block_start = 0;\n s.lookahead = 0;\n s.insert = 0;\n s.match_length = s.prev_length = MIN_MATCH$1 - 1;\n s.match_available = 0;\n s.ins_h = 0;\n}\n\n\nfunction DeflateState() {\n this.strm = null; /* pointer back to this zlib stream */\n this.status = 0; /* as the name implies */\n this.pending_buf = null; /* output still pending */\n this.pending_buf_size = 0; /* size of pending_buf */\n this.pending_out = 0; /* next pending byte to output to the stream */\n this.pending = 0; /* nb of bytes in the pending buffer */\n this.wrap = 0; /* bit 0 true for zlib, bit 1 true for gzip */\n this.gzhead = null; /* gzip header information to write */\n this.gzindex = 0; /* where in extra, name, or comment */\n this.method = Z_DEFLATED; /* can only be DEFLATED */\n this.last_flush = -1; /* value of flush param for previous deflate call */\n\n this.w_size = 0; /* LZ77 window size (32K by default) */\n this.w_bits = 0; /* log2(w_size) (8..16) */\n this.w_mask = 0; /* w_size - 1 */\n\n this.window = null;\n /* Sliding window. Input bytes are read into the second half of the window,\n * and move to the first half later to keep a dictionary of at least wSize\n * bytes. With this organization, matches are limited to a distance of\n * wSize-MAX_MATCH bytes, but this ensures that IO is always\n * performed with a length multiple of the block size.\n */\n\n this.window_size = 0;\n /* Actual size of window: 2*wSize, except when the user input buffer\n * is directly used as sliding window.\n */\n\n this.prev = null;\n /* Link to older string with same hash index. To limit the size of this\n * array to 64K, this link is maintained only for the last 32K strings.\n * An index in this array is thus a window index modulo 32K.\n */\n\n this.head = null; /* Heads of the hash chains or NIL. */\n\n this.ins_h = 0; /* hash index of string to be inserted */\n this.hash_size = 0; /* number of elements in hash table */\n this.hash_bits = 0; /* log2(hash_size) */\n this.hash_mask = 0; /* hash_size-1 */\n\n this.hash_shift = 0;\n /* Number of bits by which ins_h must be shifted at each input\n * step. It must be such that after MIN_MATCH steps, the oldest\n * byte no longer takes part in the hash key, that is:\n * hash_shift * MIN_MATCH >= hash_bits\n */\n\n this.block_start = 0;\n /* Window position at the beginning of the current output block. Gets\n * negative when the window is moved backwards.\n */\n\n this.match_length = 0; /* length of best match */\n this.prev_match = 0; /* previous match */\n this.match_available = 0; /* set if previous match exists */\n this.strstart = 0; /* start of string to insert */\n this.match_start = 0; /* start of matching string */\n this.lookahead = 0; /* number of valid bytes ahead in window */\n\n this.prev_length = 0;\n /* Length of the best match at previous step. Matches not greater than this\n * are discarded. This is used in the lazy match evaluation.\n */\n\n this.max_chain_length = 0;\n /* To speed up deflation, hash chains are never searched beyond this\n * length. A higher limit improves compression ratio but degrades the\n * speed.\n */\n\n this.max_lazy_match = 0;\n /* Attempt to find a better match only when the current match is strictly\n * smaller than this value. This mechanism is used only for compression\n * levels >= 4.\n */\n // That's alias to max_lazy_match, don't use directly\n //this.max_insert_length = 0;\n /* Insert new strings in the hash table only if the match length is not\n * greater than this length. This saves time but degrades compression.\n * max_insert_length is used only for compression levels <= 3.\n */\n\n this.level = 0; /* compression level (1..9) */\n this.strategy = 0; /* favor or force Huffman coding*/\n\n this.good_match = 0;\n /* Use a faster search when the previous match is longer than this */\n\n this.nice_match = 0; /* Stop searching when current match exceeds this */\n\n /* used by trees.c: */\n\n /* Didn't use ct_data typedef below to suppress compiler warning */\n\n // struct ct_data_s dyn_ltree[HEAP_SIZE]; /* literal and length tree */\n // struct ct_data_s dyn_dtree[2*D_CODES+1]; /* distance tree */\n // struct ct_data_s bl_tree[2*BL_CODES+1]; /* Huffman tree for bit lengths */\n\n // Use flat array of DOUBLE size, with interleaved fata,\n // because JS does not support effective\n this.dyn_ltree = Buf16(HEAP_SIZE$1 * 2);\n this.dyn_dtree = Buf16((2 * D_CODES$1 + 1) * 2);\n this.bl_tree = Buf16((2 * BL_CODES$1 + 1) * 2);\n zero$1(this.dyn_ltree);\n zero$1(this.dyn_dtree);\n zero$1(this.bl_tree);\n\n this.l_desc = null; /* desc. for literal tree */\n this.d_desc = null; /* desc. for distance tree */\n this.bl_desc = null; /* desc. for bit length tree */\n\n //ush bl_count[MAX_BITS+1];\n this.bl_count = Buf16(MAX_BITS$1 + 1);\n /* number of codes at each bit length for an optimal tree */\n\n //int heap[2*L_CODES+1]; /* heap used to build the Huffman trees */\n this.heap = Buf16(2 * L_CODES$1 + 1); /* heap used to build the Huffman trees */\n zero$1(this.heap);\n\n this.heap_len = 0; /* number of elements in the heap */\n this.heap_max = 0; /* element of largest frequency */\n /* The sons of heap[n] are heap[2*n] and heap[2*n+1]. heap[0] is not used.\n * The same heap array is used to build all trees.\n */\n\n this.depth = Buf16(2 * L_CODES$1 + 1); //uch depth[2*L_CODES+1];\n zero$1(this.depth);\n /* Depth of each subtree used as tie breaker for trees of equal frequency\n */\n\n this.l_buf = 0; /* buffer index for literals or lengths */\n\n this.lit_bufsize = 0;\n /* Size of match buffer for literals/lengths. There are 4 reasons for\n * limiting lit_bufsize to 64K:\n * - frequencies can be kept in 16 bit counters\n * - if compression is not successful for the first block, all input\n * data is still in the window so we can still emit a stored block even\n * when input comes from standard input. (This can also be done for\n * all blocks if lit_bufsize is not greater than 32K.)\n * - if compression is not successful for a file smaller than 64K, we can\n * even emit a stored file instead of a stored block (saving 5 bytes).\n * This is applicable only for zip (not gzip or zlib).\n * - creating new Huffman trees less frequently may not provide fast\n * adaptation to changes in the input data statistics. (Take for\n * example a binary file with poorly compressible code followed by\n * a highly compressible string table.) Smaller buffer sizes give\n * fast adaptation but have of course the overhead of transmitting\n * trees more frequently.\n * - I can't count above 4\n */\n\n this.last_lit = 0; /* running index in l_buf */\n\n this.d_buf = 0;\n /* Buffer index for distances. To simplify the code, d_buf and l_buf have\n * the same number of elements. To use different lengths, an extra flag\n * array would be necessary.\n */\n\n this.opt_len = 0; /* bit length of current block with optimal trees */\n this.static_len = 0; /* bit length of current block with static trees */\n this.matches = 0; /* number of string matches in current block */\n this.insert = 0; /* bytes at end of window left to insert */\n\n\n this.bi_buf = 0;\n /* Output buffer. bits are inserted starting at the bottom (least\n * significant bits).\n */\n this.bi_valid = 0;\n /* Number of valid bits in bi_buf. All bits above the last valid bit\n * are always zero.\n */\n\n // Used for window memory init. We safely ignore it for JS. That makes\n // sense only for pointers and memory check tools.\n //this.high_water = 0;\n /* High water mark offset in window for initialized bytes -- bytes above\n * this are set to zero in order to avoid memory check warnings when\n * longest match routines access bytes past the input. This is then\n * updated to the new high water mark.\n */\n}\n\n\nfunction deflateResetKeep(strm) {\n var s;\n\n if (!strm || !strm.state) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.total_in = strm.total_out = 0;\n strm.data_type = Z_UNKNOWN;\n\n s = strm.state;\n s.pending = 0;\n s.pending_out = 0;\n\n if (s.wrap < 0) {\n s.wrap = -s.wrap;\n /* was made negative by deflate(..., Z_FINISH); */\n }\n s.status = (s.wrap ? INIT_STATE : BUSY_STATE);\n strm.adler = (s.wrap === 2) ?\n 0 // crc32(0, Z_NULL, 0)\n :\n 1; // adler32(0, Z_NULL, 0)\n s.last_flush = Z_NO_FLUSH;\n _tr_init(s);\n return Z_OK;\n}\n\n\nfunction deflateReset(strm) {\n var ret = deflateResetKeep(strm);\n if (ret === Z_OK) {\n lm_init(strm.state);\n }\n return ret;\n}\n\n\nfunction deflateSetHeader(strm, head) {\n if (!strm || !strm.state) { return Z_STREAM_ERROR; }\n if (strm.state.wrap !== 2) { return Z_STREAM_ERROR; }\n strm.state.gzhead = head;\n return Z_OK;\n}\n\n\nfunction deflateInit2(strm, level, method, windowBits, memLevel, strategy) {\n if (!strm) { // === Z_NULL\n return Z_STREAM_ERROR;\n }\n var wrap = 1;\n\n if (level === Z_DEFAULT_COMPRESSION) {\n level = 6;\n }\n\n if (windowBits < 0) { /* suppress zlib wrapper */\n wrap = 0;\n windowBits = -windowBits;\n }\n\n else if (windowBits > 15) {\n wrap = 2; /* write gzip wrapper instead */\n windowBits -= 16;\n }\n\n\n if (memLevel < 1 || memLevel > MAX_MEM_LEVEL || method !== Z_DEFLATED ||\n windowBits < 8 || windowBits > 15 || level < 0 || level > 9 ||\n strategy < 0 || strategy > Z_FIXED) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n\n if (windowBits === 8) {\n windowBits = 9;\n }\n /* until 256-byte window bug fixed */\n\n var s = new DeflateState();\n\n strm.state = s;\n s.strm = strm;\n\n s.wrap = wrap;\n s.gzhead = null;\n s.w_bits = windowBits;\n s.w_size = 1 << s.w_bits;\n s.w_mask = s.w_size - 1;\n\n s.hash_bits = memLevel + 7;\n s.hash_size = 1 << s.hash_bits;\n s.hash_mask = s.hash_size - 1;\n s.hash_shift = ~~((s.hash_bits + MIN_MATCH$1 - 1) / MIN_MATCH$1);\n\n s.window = Buf8(s.w_size * 2);\n s.head = Buf16(s.hash_size);\n s.prev = Buf16(s.w_size);\n\n // Don't need mem init magic for JS.\n //s.high_water = 0; /* nothing written to s->window yet */\n\n s.lit_bufsize = 1 << (memLevel + 6); /* 16K elements by default */\n\n s.pending_buf_size = s.lit_bufsize * 4;\n\n //overlay = (ushf *) ZALLOC(strm, s->lit_bufsize, sizeof(ush)+2);\n //s->pending_buf = (uchf *) overlay;\n s.pending_buf = Buf8(s.pending_buf_size);\n\n // It is offset from `s.pending_buf` (size is `s.lit_bufsize * 2`)\n //s->d_buf = overlay + s->lit_bufsize/sizeof(ush);\n s.d_buf = 1 * s.lit_bufsize;\n\n //s->l_buf = s->pending_buf + (1+sizeof(ush))*s->lit_bufsize;\n s.l_buf = (1 + 2) * s.lit_bufsize;\n\n s.level = level;\n s.strategy = strategy;\n s.method = method;\n\n return deflateReset(strm);\n}\n\n\nfunction deflate(strm, flush) {\n var old_flush, s;\n var beg, val; // for gzip header write only\n\n if (!strm || !strm.state ||\n flush > Z_BLOCK || flush < 0) {\n return strm ? err(strm, Z_STREAM_ERROR) : Z_STREAM_ERROR;\n }\n\n s = strm.state;\n\n if (!strm.output ||\n (!strm.input && strm.avail_in !== 0) ||\n (s.status === FINISH_STATE && flush !== Z_FINISH)) {\n return err(strm, (strm.avail_out === 0) ? Z_BUF_ERROR : Z_STREAM_ERROR);\n }\n\n s.strm = strm; /* just in case */\n old_flush = s.last_flush;\n s.last_flush = flush;\n\n /* Write the header */\n if (s.status === INIT_STATE) {\n\n if (s.wrap === 2) { // GZIP header\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n put_byte(s, 31);\n put_byte(s, 139);\n put_byte(s, 8);\n if (!s.gzhead) { // s->gzhead == Z_NULL\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, 0);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, OS_CODE);\n s.status = BUSY_STATE;\n }\n else {\n put_byte(s, (s.gzhead.text ? 1 : 0) +\n (s.gzhead.hcrc ? 2 : 0) +\n (!s.gzhead.extra ? 0 : 4) +\n (!s.gzhead.name ? 0 : 8) +\n (!s.gzhead.comment ? 0 : 16)\n );\n put_byte(s, s.gzhead.time & 0xff);\n put_byte(s, (s.gzhead.time >> 8) & 0xff);\n put_byte(s, (s.gzhead.time >> 16) & 0xff);\n put_byte(s, (s.gzhead.time >> 24) & 0xff);\n put_byte(s, s.level === 9 ? 2 :\n (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2 ?\n 4 : 0));\n put_byte(s, s.gzhead.os & 0xff);\n if (s.gzhead.extra && s.gzhead.extra.length) {\n put_byte(s, s.gzhead.extra.length & 0xff);\n put_byte(s, (s.gzhead.extra.length >> 8) & 0xff);\n }\n if (s.gzhead.hcrc) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending, 0);\n }\n s.gzindex = 0;\n s.status = EXTRA_STATE;\n }\n }\n else // DEFLATE header\n {\n var header = (Z_DEFLATED + ((s.w_bits - 8) << 4)) << 8;\n var level_flags = -1;\n\n if (s.strategy >= Z_HUFFMAN_ONLY || s.level < 2) {\n level_flags = 0;\n } else if (s.level < 6) {\n level_flags = 1;\n } else if (s.level === 6) {\n level_flags = 2;\n } else {\n level_flags = 3;\n }\n header |= (level_flags << 6);\n if (s.strstart !== 0) { header |= PRESET_DICT; }\n header += 31 - (header % 31);\n\n s.status = BUSY_STATE;\n putShortMSB(s, header);\n\n /* Save the adler32 of the preset dictionary: */\n if (s.strstart !== 0) {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n strm.adler = 1; // adler32(0L, Z_NULL, 0);\n }\n }\n\n//#ifdef GZIP\n if (s.status === EXTRA_STATE) {\n if (s.gzhead.extra/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n\n while (s.gzindex < (s.gzhead.extra.length & 0xffff)) {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n break;\n }\n }\n put_byte(s, s.gzhead.extra[s.gzindex] & 0xff);\n s.gzindex++;\n }\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (s.gzindex === s.gzhead.extra.length) {\n s.gzindex = 0;\n s.status = NAME_STATE;\n }\n }\n else {\n s.status = NAME_STATE;\n }\n }\n if (s.status === NAME_STATE) {\n if (s.gzhead.name/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.name.length) {\n val = s.gzhead.name.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.gzindex = 0;\n s.status = COMMENT_STATE;\n }\n }\n else {\n s.status = COMMENT_STATE;\n }\n }\n if (s.status === COMMENT_STATE) {\n if (s.gzhead.comment/* != Z_NULL*/) {\n beg = s.pending; /* start of bytes to update crc */\n //int val;\n\n do {\n if (s.pending === s.pending_buf_size) {\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n flush_pending(strm);\n beg = s.pending;\n if (s.pending === s.pending_buf_size) {\n val = 1;\n break;\n }\n }\n // JS specific: little magic to add zero terminator to end of string\n if (s.gzindex < s.gzhead.comment.length) {\n val = s.gzhead.comment.charCodeAt(s.gzindex++) & 0xff;\n } else {\n val = 0;\n }\n put_byte(s, val);\n } while (val !== 0);\n\n if (s.gzhead.hcrc && s.pending > beg) {\n strm.adler = crc32(strm.adler, s.pending_buf, s.pending - beg, beg);\n }\n if (val === 0) {\n s.status = HCRC_STATE;\n }\n }\n else {\n s.status = HCRC_STATE;\n }\n }\n if (s.status === HCRC_STATE) {\n if (s.gzhead.hcrc) {\n if (s.pending + 2 > s.pending_buf_size) {\n flush_pending(strm);\n }\n if (s.pending + 2 <= s.pending_buf_size) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n strm.adler = 0; //crc32(0L, Z_NULL, 0);\n s.status = BUSY_STATE;\n }\n }\n else {\n s.status = BUSY_STATE;\n }\n }\n//#endif\n\n /* Flush as much pending output as possible */\n if (s.pending !== 0) {\n flush_pending(strm);\n if (strm.avail_out === 0) {\n /* Since avail_out is 0, deflate will be called again with\n * more output space, but possibly with both pending and\n * avail_in equal to zero. There won't be anything to do,\n * but this is not an error situation so make sure we\n * return OK instead of BUF_ERROR at next call of deflate:\n */\n s.last_flush = -1;\n return Z_OK;\n }\n\n /* Make sure there is something to do and avoid duplicate consecutive\n * flushes. For repeated and useless calls with Z_FINISH, we keep\n * returning Z_STREAM_END instead of Z_BUF_ERROR.\n */\n } else if (strm.avail_in === 0 && rank(flush) <= rank(old_flush) &&\n flush !== Z_FINISH) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* User must not provide more input after the first FINISH: */\n if (s.status === FINISH_STATE && strm.avail_in !== 0) {\n return err(strm, Z_BUF_ERROR);\n }\n\n /* Start a new block or continue the current one.\n */\n if (strm.avail_in !== 0 || s.lookahead !== 0 ||\n (flush !== Z_NO_FLUSH && s.status !== FINISH_STATE)) {\n var bstate = (s.strategy === Z_HUFFMAN_ONLY) ? deflate_huff(s, flush) :\n (s.strategy === Z_RLE ? deflate_rle(s, flush) :\n configurationTable()[s.level].func(s, flush));\n\n if (bstate === BS_FINISH_STARTED || bstate === BS_FINISH_DONE) {\n s.status = FINISH_STATE;\n }\n if (bstate === BS_NEED_MORE || bstate === BS_FINISH_STARTED) {\n if (strm.avail_out === 0) {\n s.last_flush = -1;\n /* avoid BUF_ERROR next call, see above */\n }\n return Z_OK;\n /* If flush != Z_NO_FLUSH && avail_out == 0, the next call\n * of deflate should use the same flush parameter to make sure\n * that the flush is complete. So we don't have to output an\n * empty block here, this will be done at next call. This also\n * ensures that for a very small output buffer, we emit at most\n * one empty block.\n */\n }\n if (bstate === BS_BLOCK_DONE) {\n if (flush === Z_PARTIAL_FLUSH) {\n _tr_align(s);\n }\n else if (flush !== Z_BLOCK) { /* FULL_FLUSH or SYNC_FLUSH */\n\n _tr_stored_block(s, 0, 0, false);\n /* For a full flush, this empty block will be recognized\n * as a special marker by inflate_sync().\n */\n if (flush === Z_FULL_FLUSH) {\n /*** CLEAR_HASH(s); ***/ /* forget history */\n zero$1(s.head); // Fill with NIL (= 0);\n\n if (s.lookahead === 0) {\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n }\n }\n flush_pending(strm);\n if (strm.avail_out === 0) {\n s.last_flush = -1; /* avoid BUF_ERROR at next call, see above */\n return Z_OK;\n }\n }\n }\n //Assert(strm->avail_out > 0, \"bug2\");\n //if (strm.avail_out <= 0) { throw new Error(\"bug2\");}\n\n if (flush !== Z_FINISH) { return Z_OK; }\n if (s.wrap <= 0) { return Z_STREAM_END; }\n\n /* Write the trailer */\n if (s.wrap === 2) {\n put_byte(s, strm.adler & 0xff);\n put_byte(s, (strm.adler >> 8) & 0xff);\n put_byte(s, (strm.adler >> 16) & 0xff);\n put_byte(s, (strm.adler >> 24) & 0xff);\n put_byte(s, strm.total_in & 0xff);\n put_byte(s, (strm.total_in >> 8) & 0xff);\n put_byte(s, (strm.total_in >> 16) & 0xff);\n put_byte(s, (strm.total_in >> 24) & 0xff);\n }\n else\n {\n putShortMSB(s, strm.adler >>> 16);\n putShortMSB(s, strm.adler & 0xffff);\n }\n\n flush_pending(strm);\n /* If avail_out is zero, the application will call deflate again\n * to flush the rest.\n */\n if (s.wrap > 0) { s.wrap = -s.wrap; }\n /* write the trailer only once! */\n return s.pending !== 0 ? Z_OK : Z_STREAM_END;\n}\n\nfunction deflateEnd(strm) {\n var status;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n status = strm.state.status;\n if (status !== INIT_STATE &&\n status !== EXTRA_STATE &&\n status !== NAME_STATE &&\n status !== COMMENT_STATE &&\n status !== HCRC_STATE &&\n status !== BUSY_STATE &&\n status !== FINISH_STATE\n ) {\n return err(strm, Z_STREAM_ERROR);\n }\n\n strm.state = null;\n\n return status === BUSY_STATE ? err(strm, Z_DATA_ERROR) : Z_OK;\n}\n\n\n/* =========================================================================\n * Initializes the compression dictionary from the given byte\n * sequence without producing any compressed output.\n */\nfunction deflateSetDictionary(strm, dictionary) {\n var dictLength = dictionary.length;\n\n var s;\n var str, n;\n var wrap;\n var avail;\n var next;\n var input;\n var tmpDict;\n\n if (!strm/*== Z_NULL*/ || !strm.state/*== Z_NULL*/) {\n return Z_STREAM_ERROR;\n }\n\n s = strm.state;\n wrap = s.wrap;\n\n if (wrap === 2 || (wrap === 1 && s.status !== INIT_STATE) || s.lookahead) {\n return Z_STREAM_ERROR;\n }\n\n /* when using zlib wrappers, compute Adler-32 for provided dictionary */\n if (wrap === 1) {\n /* adler32(strm->adler, dictionary, dictLength); */\n strm.adler = adler32(strm.adler, dictionary, dictLength, 0);\n }\n\n s.wrap = 0; /* avoid computing Adler-32 in read_buf */\n\n /* if dictionary would fill window, just replace the history */\n if (dictLength >= s.w_size) {\n if (wrap === 0) { /* already empty otherwise */\n /*** CLEAR_HASH(s); ***/\n zero$1(s.head); // Fill with NIL (= 0);\n s.strstart = 0;\n s.block_start = 0;\n s.insert = 0;\n }\n /* use the tail */\n // dictionary = dictionary.slice(dictLength - s.w_size);\n tmpDict = Buf8(s.w_size);\n arraySet(tmpDict, dictionary, dictLength - s.w_size, s.w_size, 0);\n dictionary = tmpDict;\n dictLength = s.w_size;\n }\n /* insert dictionary into window and hash */\n avail = strm.avail_in;\n next = strm.next_in;\n input = strm.input;\n strm.avail_in = dictLength;\n strm.next_in = 0;\n strm.input = dictionary;\n fill_window(s);\n while (s.lookahead >= MIN_MATCH$1) {\n str = s.strstart;\n n = s.lookahead - (MIN_MATCH$1 - 1);\n do {\n /* UPDATE_HASH(s, s->ins_h, s->window[str + MIN_MATCH-1]); */\n s.ins_h = ((s.ins_h << s.hash_shift) ^ s.window[str + MIN_MATCH$1 - 1]) & s.hash_mask;\n\n s.prev[str & s.w_mask] = s.head[s.ins_h];\n\n s.head[s.ins_h] = str;\n str++;\n } while (--n);\n s.strstart = str;\n s.lookahead = MIN_MATCH$1 - 1;\n fill_window(s);\n }\n s.strstart += s.lookahead;\n s.block_start = s.strstart;\n s.insert = s.lookahead;\n s.lookahead = 0;\n s.match_length = s.prev_length = MIN_MATCH$1 - 1;\n s.match_available = 0;\n strm.next_in = next;\n strm.input = input;\n strm.avail_in = avail;\n s.wrap = wrap;\n return Z_OK;\n}\n\n/* Not implemented\nexports.deflateBound = deflateBound;\nexports.deflateCopy = deflateCopy;\nexports.deflateParams = deflateParams;\nexports.deflatePending = deflatePending;\nexports.deflatePrime = deflatePrime;\nexports.deflateTune = deflateTune;\n*/\n\n/* eslint-disable */\n\nvar toString$1 = Object.prototype.toString;\n\n/**\n * class Deflate\n *\n * Generic JS-style wrapper for zlib calls. If you don't need\n * streaming behaviour - use more simple functions: [[deflate]],\n * [[deflateRaw]] and [[gzip]].\n **/\n\n/* internal\n * Deflate.chunks -> Array\n *\n * Chunks of output data, if [[Deflate#onData]] not overridden.\n **/\n\n/**\n * Deflate.result -> Uint8Array|Array\n *\n * Compressed result, generated by default [[Deflate#onData]]\n * and [[Deflate#onEnd]] handlers. Filled after you push last chunk\n * (call [[Deflate#push]] with `Z_FINISH` / `true` param) or if you\n * push a chunk with explicit flush (call [[Deflate#push]] with\n * `Z_SYNC_FLUSH` param).\n **/\n\n/**\n * Deflate.err -> Number\n *\n * Error code after deflate finished. 0 (Z_OK) on success.\n * You will not need it in real life, because deflate errors\n * are possible only on wrong options or bad `onData` / `onEnd`\n * custom handlers.\n **/\n\n/**\n * Deflate.msg -> String\n *\n * Error message, if [[Deflate.err]] != 0\n **/\n\n/**\n * new Deflate(options)\n * - options (Object): zlib deflate options.\n *\n * Creates new deflator instance with specified params. Throws exception\n * on bad params. Supported options:\n *\n * - `level`\n * - `windowBits`\n * - `memLevel`\n * - `strategy`\n * - `dictionary`\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Additional options, for internal needs:\n *\n * - `chunkSize` - size of generated data chunks (16K by default)\n * - `raw` (Boolean) - do raw deflate\n * - `gzip` (Boolean) - create gzip wrapper\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n * - `header` (Object) - custom header for gzip\n * - `text` (Boolean) - true if compressed data believed to be text\n * - `time` (Number) - modification time, unix timestamp\n * - `os` (Number) - operation system code\n * - `extra` (Array) - array of bytes with extra data (max 65536)\n * - `name` (String) - file name (binary string)\n * - `comment` (String) - comment (binary string)\n * - `hcrc` (Boolean) - true if header crc should be added\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , chunk1 = Uint8Array([1,2,3,4,5,6,7,8,9])\n * , chunk2 = Uint8Array([10,11,12,13,14,15,16,17,18,19]);\n *\n * var deflate = new pako.Deflate({ level: 3});\n *\n * deflate.push(chunk1, false);\n * deflate.push(chunk2, true); // true -> last chunk\n *\n * if (deflate.err) { throw new Error(deflate.err); }\n *\n * console.log(deflate.result);\n * ```\n **/\nclass Deflate {\n constructor(options) {\n this.options = assign({\n level: Z_DEFAULT_COMPRESSION,\n method: Z_DEFLATED,\n chunkSize: 16384,\n windowBits: 15,\n memLevel: 8,\n strategy: Z_DEFAULT_STRATEGY,\n to: ''\n }, options || {});\n\n var opt = this.options;\n\n if (opt.raw && (opt.windowBits > 0)) {\n opt.windowBits = -opt.windowBits;\n }\n\n else if (opt.gzip && (opt.windowBits > 0) && (opt.windowBits < 16)) {\n opt.windowBits += 16;\n }\n\n this.err = 0; // error code, if happens (0 = Z_OK)\n this.msg = ''; // error message\n this.ended = false; // used to avoid multiple onEnd() calls\n this.chunks = []; // chunks of compressed data\n\n this.strm = new ZStream();\n this.strm.avail_out = 0;\n\n var status = deflateInit2(\n this.strm,\n opt.level,\n opt.method,\n opt.windowBits,\n opt.memLevel,\n opt.strategy\n );\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n if (opt.header) {\n deflateSetHeader(this.strm, opt.header);\n }\n\n if (opt.dictionary) {\n var dict;\n // Convert data if needed\n if (typeof opt.dictionary === 'string') {\n // If we need to compress text, change encoding to utf8.\n dict = string2buf(opt.dictionary);\n } else if (toString$1.call(opt.dictionary) === '[object ArrayBuffer]') {\n dict = new Uint8Array(opt.dictionary);\n } else {\n dict = opt.dictionary;\n }\n\n status = deflateSetDictionary(this.strm, dict);\n\n if (status !== Z_OK) {\n throw new Error(msg[status]);\n }\n\n this._dict_set = true;\n }\n }\n\n /**\n * Deflate#push(data[, mode]) -> Boolean\n * - data (Uint8Array|Array|ArrayBuffer|String): input data. Strings will be\n * converted to utf8 byte sequence.\n * - mode (Number|Boolean): 0..6 for corresponding Z_NO_FLUSH..Z_TREE modes.\n * See constants. Skipped or `false` means Z_NO_FLUSH, `true` means Z_FINISH.\n *\n * Sends input data to deflate pipe, generating [[Deflate#onData]] calls with\n * new compressed chunks. Returns `true` on success. The last data block must have\n * mode Z_FINISH (or `true`). That will flush internal pending buffers and call\n * [[Deflate#onEnd]]. For interim explicit flushes (without ending the stream) you\n * can use mode Z_SYNC_FLUSH, keeping the compression context.\n *\n * On fail call [[Deflate#onEnd]] with error code and return false.\n *\n * We strongly recommend to use `Uint8Array` on input for best speed (output\n * array format is detected automatically). Also, don't skip last param and always\n * use the same type in your code (boolean or number). That will improve JS speed.\n *\n * For regular `Array`-s make sure all elements are [0..255].\n *\n * ##### Example\n *\n * ```javascript\n * push(chunk, false); // push one of data chunks\n * ...\n * push(chunk, true); // push last chunk\n * ```\n **/\n push(data, mode) {\n var strm = this.strm;\n var chunkSize = this.options.chunkSize;\n var status, _mode;\n\n if (this.ended) { return false; }\n\n _mode = (mode === ~~mode) ? mode : ((mode === true) ? Z_FINISH : Z_NO_FLUSH);\n\n // Convert data if needed\n if (typeof data === 'string') {\n // If we need to compress text, change encoding to utf8.\n strm.input = string2buf(data);\n } else if (toString$1.call(data) === '[object ArrayBuffer]') {\n strm.input = new Uint8Array(data);\n } else {\n strm.input = data;\n }\n\n strm.next_in = 0;\n strm.avail_in = strm.input.length;\n\n do {\n if (strm.avail_out === 0) {\n strm.output = Buf8(chunkSize);\n strm.next_out = 0;\n strm.avail_out = chunkSize;\n }\n status = deflate(strm, _mode); /* no bad return value */\n\n if (status !== Z_STREAM_END && status !== Z_OK) {\n this.onEnd(status);\n this.ended = true;\n return false;\n }\n if (strm.avail_out === 0 || (strm.avail_in === 0 && (_mode === Z_FINISH || _mode === Z_SYNC_FLUSH))) {\n if (this.options.to === 'string') {\n this.onData(buf2binstring(shrinkBuf(strm.output, strm.next_out)));\n } else {\n this.onData(shrinkBuf(strm.output, strm.next_out));\n }\n }\n } while ((strm.avail_in > 0 || strm.avail_out === 0) && status !== Z_STREAM_END);\n\n // Finalize on the last chunk.\n if (_mode === Z_FINISH) {\n status = deflateEnd(this.strm);\n this.onEnd(status);\n this.ended = true;\n return status === Z_OK;\n }\n\n // callback interim results if Z_SYNC_FLUSH.\n if (_mode === Z_SYNC_FLUSH) {\n this.onEnd(Z_OK);\n strm.avail_out = 0;\n return true;\n }\n\n return true;\n }\n\n\n /**\n * Deflate#onData(chunk) -> Void\n * - chunk (Uint8Array|Array|String): output data. Type of array depends\n * on js engine support. When string output requested, each chunk\n * will be string.\n *\n * By default, stores data blocks in `chunks[]` property and glue\n * those in `onEnd`. Override this handler, if you need another behaviour.\n **/\n onData(chunk) {\n this.chunks.push(chunk);\n }\n\n\n /**\n * Deflate#onEnd(status) -> Void\n * - status (Number): deflate status. 0 (Z_OK) on success,\n * other if not.\n *\n * Called once after you tell deflate that the input stream is\n * complete (Z_FINISH) or should be flushed (Z_SYNC_FLUSH)\n * or if an error happened. By default - join collected chunks,\n * free memory and fill `results` / `err` properties.\n **/\n onEnd(status) {\n // On success - join\n if (status === Z_OK) {\n if (this.options.to === 'string') {\n this.result = this.chunks.join('');\n } else {\n this.result = flattenChunks(this.chunks);\n }\n }\n this.chunks = [];\n this.err = status;\n this.msg = this.strm.msg;\n }\n}\n\n\n/**\n * deflate(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * Compress `data` with deflate algorithm and `options`.\n *\n * Supported options are:\n *\n * - level\n * - windowBits\n * - memLevel\n * - strategy\n * - dictionary\n *\n * [http://zlib.net/manual.html#Advanced](http://zlib.net/manual.html#Advanced)\n * for more information on these.\n *\n * Sugar (options):\n *\n * - `raw` (Boolean) - say that we work with raw stream, if you don't wish to specify\n * negative windowBits implicitly.\n * - `to` (String) - if equal to 'string', then result will be \"binary string\"\n * (each char code [0..255])\n *\n * ##### Example:\n *\n * ```javascript\n * var pako = require('pako')\n * , data = Uint8Array([1,2,3,4,5,6,7,8,9]);\n *\n * console.log(pako.deflate(data));\n * ```\n **/\nfunction deflate$1(input, options) {\n var deflator = new Deflate(options);\n\n deflator.push(input, true);\n\n // That will never happens, if you don't cheat with options :)\n if (deflator.err) { throw deflator.msg || msg[deflator.err]; }\n\n return deflator.result;\n}\n\n\n/**\n * deflateRaw(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but creates raw data, without wrapper\n * (header and adler32 crc).\n **/\nfunction deflateRaw(input, options) {\n options = options || {};\n options.raw = true;\n return deflate$1(input, options);\n}\n\n\n/**\n * gzip(data[, options]) -> Uint8Array|Array|String\n * - data (Uint8Array|Array|String): input data to compress.\n * - options (Object): zlib deflate options.\n *\n * The same as [[deflate]], but create gzip wrapper instead of\n * deflate one.\n **/\nfunction gzip(input, options) {\n options = options || {};\n options.gzip = true;\n return deflate$1(input, options);\n}\n\nexport { Deflate, Inflate, Z_BEST_COMPRESSION, Z_BEST_SPEED, Z_BINARY, Z_BLOCK, Z_BUF_ERROR, Z_DATA_ERROR, Z_DEFAULT_COMPRESSION, Z_DEFAULT_STRATEGY, Z_DEFLATED, Z_ERRNO, Z_FILTERED, Z_FINISH, Z_FIXED, Z_FULL_FLUSH, Z_HUFFMAN_ONLY, Z_NEED_DICT, Z_NO_COMPRESSION, Z_NO_FLUSH, Z_OK, Z_PARTIAL_FLUSH, Z_RLE, Z_STREAM_END, Z_STREAM_ERROR, Z_SYNC_FLUSH, Z_TEXT, Z_TREES, Z_UNKNOWN, deflate$1 as deflate, deflateRaw, gzip, inflate$1 as inflate, inflateRaw, ungzip };\n","(function(a,b){if(\"function\"==typeof define&&define.amd)define([],b);else if(\"undefined\"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){\"use strict\";function b(a,b){return\"undefined\"==typeof b?b={autoBom:!1}:\"object\"!=typeof b&&(console.warn(\"Deprecated: Expected third argument to be a object\"),b={autoBom:!b}),b.autoBom&&/^\\s*(?:text\\/\\S*|application\\/xml|\\S*\\/\\S*\\+xml)\\s*;.*charset\\s*=\\s*utf-8/i.test(a.type)?new Blob([\"\\uFEFF\",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open(\"GET\",a),d.responseType=\"blob\",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error(\"could not download file\")},d.send()}function d(a){var b=new XMLHttpRequest;b.open(\"HEAD\",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent(\"click\"))}catch(c){var b=document.createEvent(\"MouseEvents\");b.initMouseEvent(\"click\",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f=\"object\"==typeof window&&window.window===window?window:\"object\"==typeof self&&self.self===self?self:\"object\"==typeof global&&global.global===global?global:void 0,a=f.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||(\"object\"!=typeof window||window!==f?function(){}:\"download\"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement(\"a\");g=g||b.name||\"download\",j.download=g,j.rel=\"noopener\",\"string\"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target=\"_blank\")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:\"msSaveOrOpenBlob\"in navigator?function(f,g,h){if(g=g||f.name||\"download\",\"string\"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement(\"a\");i.href=f,i.target=\"_blank\",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open(\"\",\"_blank\"),g&&(g.document.title=g.document.body.innerText=\"downloading...\"),\"string\"==typeof b)return c(b,d,e);var h=\"application/octet-stream\"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\\/[\\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&\"undefined\"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,\"data:attachment/file;\"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,\"undefined\"!=typeof module&&(module.exports=g)});\n\n","/**\n * @license\n * Lodash \n * Copyright OpenJS Foundation and other contributors \n * Released under MIT license \n * Based on Underscore.js 1.8.3 \n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n;(function() {\n\n /** Used as a safe reference for `undefined` in pre-ES5 environments. */\n var undefined;\n\n /** Used as the semantic version number. */\n var VERSION = '4.17.21';\n\n /** Used as the size to enable large array optimizations. */\n var LARGE_ARRAY_SIZE = 200;\n\n /** Error message constants. */\n var CORE_ERROR_TEXT = 'Unsupported core-js use. Try https://npms.io/search?q=ponyfill.',\n FUNC_ERROR_TEXT = 'Expected a function',\n INVALID_TEMPL_VAR_ERROR_TEXT = 'Invalid `variable` option passed into `_.template`';\n\n /** Used to stand-in for `undefined` hash values. */\n var HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n /** Used as the maximum memoize cache size. */\n var MAX_MEMOIZE_SIZE = 500;\n\n /** Used as the internal argument placeholder. */\n var PLACEHOLDER = '__lodash_placeholder__';\n\n /** Used to compose bitmasks for cloning. */\n var CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n /** Used to compose bitmasks for value comparisons. */\n var COMPARE_PARTIAL_FLAG = 1,\n COMPARE_UNORDERED_FLAG = 2;\n\n /** Used to compose bitmasks for function metadata. */\n var WRAP_BIND_FLAG = 1,\n WRAP_BIND_KEY_FLAG = 2,\n WRAP_CURRY_BOUND_FLAG = 4,\n WRAP_CURRY_FLAG = 8,\n WRAP_CURRY_RIGHT_FLAG = 16,\n WRAP_PARTIAL_FLAG = 32,\n WRAP_PARTIAL_RIGHT_FLAG = 64,\n WRAP_ARY_FLAG = 128,\n WRAP_REARG_FLAG = 256,\n WRAP_FLIP_FLAG = 512;\n\n /** Used as default options for `_.truncate`. */\n var DEFAULT_TRUNC_LENGTH = 30,\n DEFAULT_TRUNC_OMISSION = '...';\n\n /** Used to detect hot functions by number of calls within a span of milliseconds. */\n var HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n /** Used to indicate the type of lazy iteratees. */\n var LAZY_FILTER_FLAG = 1,\n LAZY_MAP_FLAG = 2,\n LAZY_WHILE_FLAG = 3;\n\n /** Used as references for various `Number` constants. */\n var INFINITY = 1 / 0,\n MAX_SAFE_INTEGER = 9007199254740991,\n MAX_INTEGER = 1.7976931348623157e+308,\n NAN = 0 / 0;\n\n /** Used as references for the maximum length and index of an array. */\n var MAX_ARRAY_LENGTH = 4294967295,\n MAX_ARRAY_INDEX = MAX_ARRAY_LENGTH - 1,\n HALF_MAX_ARRAY_LENGTH = MAX_ARRAY_LENGTH >>> 1;\n\n /** Used to associate wrap methods with their bit flags. */\n var wrapFlags = [\n ['ary', WRAP_ARY_FLAG],\n ['bind', WRAP_BIND_FLAG],\n ['bindKey', WRAP_BIND_KEY_FLAG],\n ['curry', WRAP_CURRY_FLAG],\n ['curryRight', WRAP_CURRY_RIGHT_FLAG],\n ['flip', WRAP_FLIP_FLAG],\n ['partial', WRAP_PARTIAL_FLAG],\n ['partialRight', WRAP_PARTIAL_RIGHT_FLAG],\n ['rearg', WRAP_REARG_FLAG]\n ];\n\n /** `Object#toString` result references. */\n var argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n asyncTag = '[object AsyncFunction]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n domExcTag = '[object DOMException]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n nullTag = '[object Null]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n proxyTag = '[object Proxy]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n undefinedTag = '[object Undefined]',\n weakMapTag = '[object WeakMap]',\n weakSetTag = '[object WeakSet]';\n\n var arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n /** Used to match empty string literals in compiled template source. */\n var reEmptyStringLeading = /\\b__p \\+= '';/g,\n reEmptyStringMiddle = /\\b(__p \\+=) '' \\+/g,\n reEmptyStringTrailing = /(__e\\(.*?\\)|\\b__t\\)) \\+\\n'';/g;\n\n /** Used to match HTML entities and HTML characters. */\n var reEscapedHtml = /&(?:amp|lt|gt|quot|#39);/g,\n reUnescapedHtml = /[&<>\"']/g,\n reHasEscapedHtml = RegExp(reEscapedHtml.source),\n reHasUnescapedHtml = RegExp(reUnescapedHtml.source);\n\n /** Used to match template delimiters. */\n var reEscape = /<%-([\\s\\S]+?)%>/g,\n reEvaluate = /<%([\\s\\S]+?)%>/g,\n reInterpolate = /<%=([\\s\\S]+?)%>/g;\n\n /** Used to match property names within property paths. */\n var reIsDeepProp = /\\.|\\[(?:[^[\\]]*|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*?\\1)\\]/,\n reIsPlainProp = /^\\w*$/,\n rePropName = /[^.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|$))/g;\n\n /**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\n var reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g,\n reHasRegExpChar = RegExp(reRegExpChar.source);\n\n /** Used to match leading whitespace. */\n var reTrimStart = /^\\s+/;\n\n /** Used to match a single whitespace character. */\n var reWhitespace = /\\s/;\n\n /** Used to match wrap detail comments. */\n var reWrapComment = /\\{(?:\\n\\/\\* \\[wrapped with .+\\] \\*\\/)?\\n?/,\n reWrapDetails = /\\{\\n\\/\\* \\[wrapped with (.+)\\] \\*/,\n reSplitDetails = /,? & /;\n\n /** Used to match words composed of alphanumeric characters. */\n var reAsciiWord = /[^\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\x7f]+/g;\n\n /**\n * Used to validate the `validate` option in `_.template` variable.\n *\n * Forbids characters which could potentially change the meaning of the function argument definition:\n * - \"(),\" (modification of function parameters)\n * - \"=\" (default value)\n * - \"[]{}\" (destructuring of function parameters)\n * - \"/\" (beginning of a comment)\n * - whitespace\n */\n var reForbiddenIdentifierChars = /[()=,{}\\[\\]\\/\\s]/;\n\n /** Used to match backslashes in property paths. */\n var reEscapeChar = /\\\\(\\\\)?/g;\n\n /**\n * Used to match\n * [ES template delimiters](http://ecma-international.org/ecma-262/7.0/#sec-template-literal-lexical-components).\n */\n var reEsTemplate = /\\$\\{([^\\\\}]*(?:\\\\.[^\\\\}]*)*)\\}/g;\n\n /** Used to match `RegExp` flags from their coerced string values. */\n var reFlags = /\\w*$/;\n\n /** Used to detect bad signed hexadecimal string values. */\n var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n /** Used to detect binary string values. */\n var reIsBinary = /^0b[01]+$/i;\n\n /** Used to detect host constructors (Safari). */\n var reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n /** Used to detect octal string values. */\n var reIsOctal = /^0o[0-7]+$/i;\n\n /** Used to detect unsigned integer values. */\n var reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n /** Used to match Latin Unicode letters (excluding mathematical operators). */\n var reLatin = /[\\xc0-\\xd6\\xd8-\\xf6\\xf8-\\xff\\u0100-\\u017f]/g;\n\n /** Used to ensure capturing order of template delimiters. */\n var reNoMatch = /($^)/;\n\n /** Used to match unescaped characters in compiled string literals. */\n var reUnescapedString = /['\\n\\r\\u2028\\u2029\\\\]/g;\n\n /** Used to compose unicode character classes. */\n var rsAstralRange = '\\\\ud800-\\\\udfff',\n rsComboMarksRange = '\\\\u0300-\\\\u036f',\n reComboHalfMarksRange = '\\\\ufe20-\\\\ufe2f',\n rsComboSymbolsRange = '\\\\u20d0-\\\\u20ff',\n rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange,\n rsDingbatRange = '\\\\u2700-\\\\u27bf',\n rsLowerRange = 'a-z\\\\xdf-\\\\xf6\\\\xf8-\\\\xff',\n rsMathOpRange = '\\\\xac\\\\xb1\\\\xd7\\\\xf7',\n rsNonCharRange = '\\\\x00-\\\\x2f\\\\x3a-\\\\x40\\\\x5b-\\\\x60\\\\x7b-\\\\xbf',\n rsPunctuationRange = '\\\\u2000-\\\\u206f',\n rsSpaceRange = ' \\\\t\\\\x0b\\\\f\\\\xa0\\\\ufeff\\\\n\\\\r\\\\u2028\\\\u2029\\\\u1680\\\\u180e\\\\u2000\\\\u2001\\\\u2002\\\\u2003\\\\u2004\\\\u2005\\\\u2006\\\\u2007\\\\u2008\\\\u2009\\\\u200a\\\\u202f\\\\u205f\\\\u3000',\n rsUpperRange = 'A-Z\\\\xc0-\\\\xd6\\\\xd8-\\\\xde',\n rsVarRange = '\\\\ufe0e\\\\ufe0f',\n rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;\n\n /** Used to compose unicode capture groups. */\n var rsApos = \"['\\u2019]\",\n rsAstral = '[' + rsAstralRange + ']',\n rsBreak = '[' + rsBreakRange + ']',\n rsCombo = '[' + rsComboRange + ']',\n rsDigits = '\\\\d+',\n rsDingbat = '[' + rsDingbatRange + ']',\n rsLower = '[' + rsLowerRange + ']',\n rsMisc = '[^' + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + ']',\n rsFitz = '\\\\ud83c[\\\\udffb-\\\\udfff]',\n rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')',\n rsNonAstral = '[^' + rsAstralRange + ']',\n rsRegional = '(?:\\\\ud83c[\\\\udde6-\\\\uddff]){2}',\n rsSurrPair = '[\\\\ud800-\\\\udbff][\\\\udc00-\\\\udfff]',\n rsUpper = '[' + rsUpperRange + ']',\n rsZWJ = '\\\\u200d';\n\n /** Used to compose unicode regexes. */\n var rsMiscLower = '(?:' + rsLower + '|' + rsMisc + ')',\n rsMiscUpper = '(?:' + rsUpper + '|' + rsMisc + ')',\n rsOptContrLower = '(?:' + rsApos + '(?:d|ll|m|re|s|t|ve))?',\n rsOptContrUpper = '(?:' + rsApos + '(?:D|LL|M|RE|S|T|VE))?',\n reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsOrdLower = '\\\\d*(?:1st|2nd|3rd|(?![123])\\\\dth)(?=\\\\b|[A-Z_])',\n rsOrdUpper = '\\\\d*(?:1ST|2ND|3RD|(?![123])\\\\dTH)(?=\\\\b|[a-z_])',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsEmoji = '(?:' + [rsDingbat, rsRegional, rsSurrPair].join('|') + ')' + rsSeq,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n /** Used to match apostrophes. */\n var reApos = RegExp(rsApos, 'g');\n\n /**\n * Used to match [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks) and\n * [combining diacritical marks for symbols](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks_for_Symbols).\n */\n var reComboMark = RegExp(rsCombo, 'g');\n\n /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\n var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n /** Used to match complex or compound words. */\n var reUnicodeWord = RegExp([\n rsUpper + '?' + rsLower + '+' + rsOptContrLower + '(?=' + [rsBreak, rsUpper, '$'].join('|') + ')',\n rsMiscUpper + '+' + rsOptContrUpper + '(?=' + [rsBreak, rsUpper + rsMiscLower, '$'].join('|') + ')',\n rsUpper + '?' + rsMiscLower + '+' + rsOptContrLower,\n rsUpper + '+' + rsOptContrUpper,\n rsOrdUpper,\n rsOrdLower,\n rsDigits,\n rsEmoji\n ].join('|'), 'g');\n\n /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\n var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n /** Used to detect strings that need a more robust regexp to match words. */\n var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;\n\n /** Used to assign default `context` object properties. */\n var contextProps = [\n 'Array', 'Buffer', 'DataView', 'Date', 'Error', 'Float32Array', 'Float64Array',\n 'Function', 'Int8Array', 'Int16Array', 'Int32Array', 'Map', 'Math', 'Object',\n 'Promise', 'RegExp', 'Set', 'String', 'Symbol', 'TypeError', 'Uint8Array',\n 'Uint8ClampedArray', 'Uint16Array', 'Uint32Array', 'WeakMap',\n '_', 'clearTimeout', 'isFinite', 'parseInt', 'setTimeout'\n ];\n\n /** Used to make template sourceURLs easier to identify. */\n var templateCounter = -1;\n\n /** Used to identify `toStringTag` values of typed arrays. */\n var typedArrayTags = {};\n typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\n typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\n typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\n typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\n typedArrayTags[uint32Tag] = true;\n typedArrayTags[argsTag] = typedArrayTags[arrayTag] =\n typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\n typedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\n typedArrayTags[errorTag] = typedArrayTags[funcTag] =\n typedArrayTags[mapTag] = typedArrayTags[numberTag] =\n typedArrayTags[objectTag] = typedArrayTags[regexpTag] =\n typedArrayTags[setTag] = typedArrayTags[stringTag] =\n typedArrayTags[weakMapTag] = false;\n\n /** Used to identify `toStringTag` values supported by `_.clone`. */\n var cloneableTags = {};\n cloneableTags[argsTag] = cloneableTags[arrayTag] =\n cloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\n cloneableTags[boolTag] = cloneableTags[dateTag] =\n cloneableTags[float32Tag] = cloneableTags[float64Tag] =\n cloneableTags[int8Tag] = cloneableTags[int16Tag] =\n cloneableTags[int32Tag] = cloneableTags[mapTag] =\n cloneableTags[numberTag] = cloneableTags[objectTag] =\n cloneableTags[regexpTag] = cloneableTags[setTag] =\n cloneableTags[stringTag] = cloneableTags[symbolTag] =\n cloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\n cloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\n cloneableTags[errorTag] = cloneableTags[funcTag] =\n cloneableTags[weakMapTag] = false;\n\n /** Used to map Latin Unicode letters to basic Latin letters. */\n var deburredLetters = {\n // Latin-1 Supplement block.\n '\\xc0': 'A', '\\xc1': 'A', '\\xc2': 'A', '\\xc3': 'A', '\\xc4': 'A', '\\xc5': 'A',\n '\\xe0': 'a', '\\xe1': 'a', '\\xe2': 'a', '\\xe3': 'a', '\\xe4': 'a', '\\xe5': 'a',\n '\\xc7': 'C', '\\xe7': 'c',\n '\\xd0': 'D', '\\xf0': 'd',\n '\\xc8': 'E', '\\xc9': 'E', '\\xca': 'E', '\\xcb': 'E',\n '\\xe8': 'e', '\\xe9': 'e', '\\xea': 'e', '\\xeb': 'e',\n '\\xcc': 'I', '\\xcd': 'I', '\\xce': 'I', '\\xcf': 'I',\n '\\xec': 'i', '\\xed': 'i', '\\xee': 'i', '\\xef': 'i',\n '\\xd1': 'N', '\\xf1': 'n',\n '\\xd2': 'O', '\\xd3': 'O', '\\xd4': 'O', '\\xd5': 'O', '\\xd6': 'O', '\\xd8': 'O',\n '\\xf2': 'o', '\\xf3': 'o', '\\xf4': 'o', '\\xf5': 'o', '\\xf6': 'o', '\\xf8': 'o',\n '\\xd9': 'U', '\\xda': 'U', '\\xdb': 'U', '\\xdc': 'U',\n '\\xf9': 'u', '\\xfa': 'u', '\\xfb': 'u', '\\xfc': 'u',\n '\\xdd': 'Y', '\\xfd': 'y', '\\xff': 'y',\n '\\xc6': 'Ae', '\\xe6': 'ae',\n '\\xde': 'Th', '\\xfe': 'th',\n '\\xdf': 'ss',\n // Latin Extended-A block.\n '\\u0100': 'A', '\\u0102': 'A', '\\u0104': 'A',\n '\\u0101': 'a', '\\u0103': 'a', '\\u0105': 'a',\n '\\u0106': 'C', '\\u0108': 'C', '\\u010a': 'C', '\\u010c': 'C',\n '\\u0107': 'c', '\\u0109': 'c', '\\u010b': 'c', '\\u010d': 'c',\n '\\u010e': 'D', '\\u0110': 'D', '\\u010f': 'd', '\\u0111': 'd',\n '\\u0112': 'E', '\\u0114': 'E', '\\u0116': 'E', '\\u0118': 'E', '\\u011a': 'E',\n '\\u0113': 'e', '\\u0115': 'e', '\\u0117': 'e', '\\u0119': 'e', '\\u011b': 'e',\n '\\u011c': 'G', '\\u011e': 'G', '\\u0120': 'G', '\\u0122': 'G',\n '\\u011d': 'g', '\\u011f': 'g', '\\u0121': 'g', '\\u0123': 'g',\n '\\u0124': 'H', '\\u0126': 'H', '\\u0125': 'h', '\\u0127': 'h',\n '\\u0128': 'I', '\\u012a': 'I', '\\u012c': 'I', '\\u012e': 'I', '\\u0130': 'I',\n '\\u0129': 'i', '\\u012b': 'i', '\\u012d': 'i', '\\u012f': 'i', '\\u0131': 'i',\n '\\u0134': 'J', '\\u0135': 'j',\n '\\u0136': 'K', '\\u0137': 'k', '\\u0138': 'k',\n '\\u0139': 'L', '\\u013b': 'L', '\\u013d': 'L', '\\u013f': 'L', '\\u0141': 'L',\n '\\u013a': 'l', '\\u013c': 'l', '\\u013e': 'l', '\\u0140': 'l', '\\u0142': 'l',\n '\\u0143': 'N', '\\u0145': 'N', '\\u0147': 'N', '\\u014a': 'N',\n '\\u0144': 'n', '\\u0146': 'n', '\\u0148': 'n', '\\u014b': 'n',\n '\\u014c': 'O', '\\u014e': 'O', '\\u0150': 'O',\n '\\u014d': 'o', '\\u014f': 'o', '\\u0151': 'o',\n '\\u0154': 'R', '\\u0156': 'R', '\\u0158': 'R',\n '\\u0155': 'r', '\\u0157': 'r', '\\u0159': 'r',\n '\\u015a': 'S', '\\u015c': 'S', '\\u015e': 'S', '\\u0160': 'S',\n '\\u015b': 's', '\\u015d': 's', '\\u015f': 's', '\\u0161': 's',\n '\\u0162': 'T', '\\u0164': 'T', '\\u0166': 'T',\n '\\u0163': 't', '\\u0165': 't', '\\u0167': 't',\n '\\u0168': 'U', '\\u016a': 'U', '\\u016c': 'U', '\\u016e': 'U', '\\u0170': 'U', '\\u0172': 'U',\n '\\u0169': 'u', '\\u016b': 'u', '\\u016d': 'u', '\\u016f': 'u', '\\u0171': 'u', '\\u0173': 'u',\n '\\u0174': 'W', '\\u0175': 'w',\n '\\u0176': 'Y', '\\u0177': 'y', '\\u0178': 'Y',\n '\\u0179': 'Z', '\\u017b': 'Z', '\\u017d': 'Z',\n '\\u017a': 'z', '\\u017c': 'z', '\\u017e': 'z',\n '\\u0132': 'IJ', '\\u0133': 'ij',\n '\\u0152': 'Oe', '\\u0153': 'oe',\n '\\u0149': \"'n\", '\\u017f': 's'\n };\n\n /** Used to map characters to HTML entities. */\n var htmlEscapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n };\n\n /** Used to map HTML entities to characters. */\n var htmlUnescapes = {\n '&': '&',\n '<': '<',\n '>': '>',\n '"': '\"',\n ''': \"'\"\n };\n\n /** Used to escape characters for inclusion in compiled string literals. */\n var stringEscapes = {\n '\\\\': '\\\\',\n \"'\": \"'\",\n '\\n': 'n',\n '\\r': 'r',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n };\n\n /** Built-in method references without a dependency on `root`. */\n var freeParseFloat = parseFloat,\n freeParseInt = parseInt;\n\n /** Detect free variable `global` from Node.js. */\n var freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\n /** Detect free variable `self`. */\n var freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n /** Used as a reference to the global object. */\n var root = freeGlobal || freeSelf || Function('return this')();\n\n /** Detect free variable `exports`. */\n var freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n /** Detect free variable `module`. */\n var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n /** Detect the popular CommonJS extension `module.exports`. */\n var moduleExports = freeModule && freeModule.exports === freeExports;\n\n /** Detect free variable `process` from Node.js. */\n var freeProcess = moduleExports && freeGlobal.process;\n\n /** Used to access faster Node.js helpers. */\n var nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n }());\n\n /* Node.js helper references. */\n var nodeIsArrayBuffer = nodeUtil && nodeUtil.isArrayBuffer,\n nodeIsDate = nodeUtil && nodeUtil.isDate,\n nodeIsMap = nodeUtil && nodeUtil.isMap,\n nodeIsRegExp = nodeUtil && nodeUtil.isRegExp,\n nodeIsSet = nodeUtil && nodeUtil.isSet,\n nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\n function apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n }\n\n /**\n * A specialized version of `baseAggregator` for arrays.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function arrayAggregator(array, setter, iteratee, accumulator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n var value = array[index];\n setter(accumulator, value, iteratee(value), array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.forEachRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\n function arrayEachRight(array, iteratee) {\n var length = array == null ? 0 : array.length;\n\n while (length--) {\n if (iteratee(array[length], length, array) === false) {\n break;\n }\n }\n return array;\n }\n\n /**\n * A specialized version of `_.every` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n */\n function arrayEvery(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (!predicate(array[index], index, array)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.includes` for arrays without support for\n * specifying an index to search from.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludes(array, value) {\n var length = array == null ? 0 : array.length;\n return !!length && baseIndexOf(array, value, 0) > -1;\n }\n\n /**\n * This function is like `arrayIncludes` except that it accepts a comparator.\n *\n * @private\n * @param {Array} [array] The array to inspect.\n * @param {*} target The value to search for.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {boolean} Returns `true` if `target` is found, else `false`.\n */\n function arrayIncludesWith(array, value, comparator) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (comparator(value, array[index])) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `_.map` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function arrayMap(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length,\n result = Array(length);\n\n while (++index < length) {\n result[index] = iteratee(array[index], index, array);\n }\n return result;\n }\n\n /**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\n function arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n }\n\n /**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.reduceRight` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the last element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\n function arrayReduceRight(array, iteratee, accumulator, initAccum) {\n var length = array == null ? 0 : array.length;\n if (initAccum && length) {\n accumulator = array[--length];\n }\n while (length--) {\n accumulator = iteratee(accumulator, array[length], length, array);\n }\n return accumulator;\n }\n\n /**\n * A specialized version of `_.some` for arrays without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function arraySome(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (predicate(array[index], index, array)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Gets the size of an ASCII `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n var asciiSize = baseProperty('length');\n\n /**\n * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function asciiToArray(string) {\n return string.split('');\n }\n\n /**\n * Splits an ASCII `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function asciiWords(string) {\n return string.match(reAsciiWord) || [];\n }\n\n /**\n * The base implementation of methods like `_.findKey` and `_.findLastKey`,\n * without support for iteratee shorthands, which iterates over `collection`\n * using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the found element or its key, else `undefined`.\n */\n function baseFindKey(collection, predicate, eachFunc) {\n var result;\n eachFunc(collection, function(value, key, collection) {\n if (predicate(value, key, collection)) {\n result = key;\n return false;\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.findIndex` and `_.findLastIndex` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} predicate The function invoked per iteration.\n * @param {number} fromIndex The index to search from.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseFindIndex(array, predicate, fromIndex, fromRight) {\n var length = array.length,\n index = fromIndex + (fromRight ? 1 : -1);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (predicate(array[index], index, array)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.indexOf` without `fromIndex` bounds checks.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOf(array, value, fromIndex) {\n return value === value\n ? strictIndexOf(array, value, fromIndex)\n : baseFindIndex(array, baseIsNaN, fromIndex);\n }\n\n /**\n * This function is like `baseIndexOf` except that it accepts a comparator.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @param {Function} comparator The comparator invoked per element.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function baseIndexOfWith(array, value, fromIndex, comparator) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (comparator(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * The base implementation of `_.isNaN` without support for number objects.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n */\n function baseIsNaN(value) {\n return value !== value;\n }\n\n /**\n * The base implementation of `_.mean` and `_.meanBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the mean.\n */\n function baseMean(array, iteratee) {\n var length = array == null ? 0 : array.length;\n return length ? (baseSum(array, iteratee) / length) : NAN;\n }\n\n /**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function baseProperty(key) {\n return function(object) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.propertyOf` without support for deep paths.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyOf(object) {\n return function(key) {\n return object == null ? undefined : object[key];\n };\n }\n\n /**\n * The base implementation of `_.reduce` and `_.reduceRight`, without support\n * for iteratee shorthands, which iterates over `collection` using `eachFunc`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} accumulator The initial value.\n * @param {boolean} initAccum Specify using the first or last element of\n * `collection` as the initial value.\n * @param {Function} eachFunc The function to iterate over `collection`.\n * @returns {*} Returns the accumulated value.\n */\n function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) {\n eachFunc(collection, function(value, index, collection) {\n accumulator = initAccum\n ? (initAccum = false, value)\n : iteratee(accumulator, value, index, collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.sortBy` which uses `comparer` to define the\n * sort order of `array` and replaces criteria objects with their corresponding\n * values.\n *\n * @private\n * @param {Array} array The array to sort.\n * @param {Function} comparer The function to define sort order.\n * @returns {Array} Returns `array`.\n */\n function baseSortBy(array, comparer) {\n var length = array.length;\n\n array.sort(comparer);\n while (length--) {\n array[length] = array[length].value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.sum` and `_.sumBy` without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {number} Returns the sum.\n */\n function baseSum(array, iteratee) {\n var result,\n index = -1,\n length = array.length;\n\n while (++index < length) {\n var current = iteratee(array[index]);\n if (current !== undefined) {\n result = result === undefined ? current : (result + current);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\n function baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toPairs` and `_.toPairsIn` which creates an array\n * of key-value pairs for `object` corresponding to the property names of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the key-value pairs.\n */\n function baseToPairs(object, props) {\n return arrayMap(props, function(key) {\n return [key, object[key]];\n });\n }\n\n /**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n function baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n }\n\n /**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\n function baseUnary(func) {\n return function(value) {\n return func(value);\n };\n }\n\n /**\n * The base implementation of `_.values` and `_.valuesIn` which creates an\n * array of `object` property values corresponding to the property names\n * of `props`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} props The property names to get values for.\n * @returns {Object} Returns the array of property values.\n */\n function baseValues(object, props) {\n return arrayMap(props, function(key) {\n return object[key];\n });\n }\n\n /**\n * Checks if a `cache` value for `key` exists.\n *\n * @private\n * @param {Object} cache The cache to query.\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function cacheHas(cache, key) {\n return cache.has(key);\n }\n\n /**\n * Used by `_.trim` and `_.trimStart` to get the index of the first string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the first unmatched string symbol.\n */\n function charsStartIndex(strSymbols, chrSymbols) {\n var index = -1,\n length = strSymbols.length;\n\n while (++index < length && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last string symbol\n * that is not found in the character symbols.\n *\n * @private\n * @param {Array} strSymbols The string symbols to inspect.\n * @param {Array} chrSymbols The character symbols to find.\n * @returns {number} Returns the index of the last unmatched string symbol.\n */\n function charsEndIndex(strSymbols, chrSymbols) {\n var index = strSymbols.length;\n\n while (index-- && baseIndexOf(chrSymbols, strSymbols[index], 0) > -1) {}\n return index;\n }\n\n /**\n * Gets the number of `placeholder` occurrences in `array`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} placeholder The placeholder to search for.\n * @returns {number} Returns the placeholder count.\n */\n function countHolders(array, placeholder) {\n var length = array.length,\n result = 0;\n\n while (length--) {\n if (array[length] === placeholder) {\n ++result;\n }\n }\n return result;\n }\n\n /**\n * Used by `_.deburr` to convert Latin-1 Supplement and Latin Extended-A\n * letters to basic Latin letters.\n *\n * @private\n * @param {string} letter The matched letter to deburr.\n * @returns {string} Returns the deburred letter.\n */\n var deburrLetter = basePropertyOf(deburredLetters);\n\n /**\n * Used by `_.escape` to convert characters to HTML entities.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n var escapeHtmlChar = basePropertyOf(htmlEscapes);\n\n /**\n * Used by `_.template` to escape characters for inclusion in compiled string literals.\n *\n * @private\n * @param {string} chr The matched character to escape.\n * @returns {string} Returns the escaped character.\n */\n function escapeStringChar(chr) {\n return '\\\\' + stringEscapes[chr];\n }\n\n /**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function getValue(object, key) {\n return object == null ? undefined : object[key];\n }\n\n /**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\n function hasUnicode(string) {\n return reHasUnicode.test(string);\n }\n\n /**\n * Checks if `string` contains a word composed of Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a word is found, else `false`.\n */\n function hasUnicodeWord(string) {\n return reHasUnicodeWord.test(string);\n }\n\n /**\n * Converts `iterator` to an array.\n *\n * @private\n * @param {Object} iterator The iterator to convert.\n * @returns {Array} Returns the converted array.\n */\n function iteratorToArray(iterator) {\n var data,\n result = [];\n\n while (!(data = iterator.next()).done) {\n result.push(data.value);\n }\n return result;\n }\n\n /**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\n function mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n }\n\n /**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\n function overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n }\n\n /**\n * Replaces all `placeholder` elements in `array` with an internal placeholder\n * and returns an array of their indexes.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {*} placeholder The placeholder to replace.\n * @returns {Array} Returns the new array of placeholder indexes.\n */\n function replaceHolders(array, placeholder) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value === placeholder || value === PLACEHOLDER) {\n array[index] = PLACEHOLDER;\n result[resIndex++] = index;\n }\n }\n return result;\n }\n\n /**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\n function setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n }\n\n /**\n * Converts `set` to its value-value pairs.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the value-value pairs.\n */\n function setToPairs(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = [value, value];\n });\n return result;\n }\n\n /**\n * A specialized version of `_.indexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictIndexOf(array, value, fromIndex) {\n var index = fromIndex - 1,\n length = array.length;\n\n while (++index < length) {\n if (array[index] === value) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * A specialized version of `_.lastIndexOf` which performs strict equality\n * comparisons of values, i.e. `===`.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} fromIndex The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function strictLastIndexOf(array, value, fromIndex) {\n var index = fromIndex + 1;\n while (index--) {\n if (array[index] === value) {\n return index;\n }\n }\n return index;\n }\n\n /**\n * Gets the number of symbols in `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the string size.\n */\n function stringSize(string) {\n return hasUnicode(string)\n ? unicodeSize(string)\n : asciiSize(string);\n }\n\n /**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n }\n\n /**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n function trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n }\n\n /**\n * Used by `_.unescape` to convert HTML entities to characters.\n *\n * @private\n * @param {string} chr The matched character to unescape.\n * @returns {string} Returns the unescaped character.\n */\n var unescapeHtmlChar = basePropertyOf(htmlUnescapes);\n\n /**\n * Gets the size of a Unicode `string`.\n *\n * @private\n * @param {string} string The string inspect.\n * @returns {number} Returns the string size.\n */\n function unicodeSize(string) {\n var result = reUnicode.lastIndex = 0;\n while (reUnicode.test(string)) {\n ++result;\n }\n return result;\n }\n\n /**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\n function unicodeToArray(string) {\n return string.match(reUnicode) || [];\n }\n\n /**\n * Splits a Unicode `string` into an array of its words.\n *\n * @private\n * @param {string} The string to inspect.\n * @returns {Array} Returns the words of `string`.\n */\n function unicodeWords(string) {\n return string.match(reUnicodeWord) || [];\n }\n\n /*--------------------------------------------------------------------------*/\n\n /**\n * Create a new pristine `lodash` function using the `context` object.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Util\n * @param {Object} [context=root] The context object.\n * @returns {Function} Returns a new `lodash` function.\n * @example\n *\n * _.mixin({ 'foo': _.constant('foo') });\n *\n * var lodash = _.runInContext();\n * lodash.mixin({ 'bar': lodash.constant('bar') });\n *\n * _.isFunction(_.foo);\n * // => true\n * _.isFunction(_.bar);\n * // => false\n *\n * lodash.isFunction(lodash.foo);\n * // => false\n * lodash.isFunction(lodash.bar);\n * // => true\n *\n * // Create a suped-up `defer` in Node.js.\n * var defer = _.runInContext({ 'setTimeout': setImmediate }).defer;\n */\n var runInContext = (function runInContext(context) {\n context = context == null ? root : _.defaults(root.Object(), context, _.pick(root, contextProps));\n\n /** Built-in constructor references. */\n var Array = context.Array,\n Date = context.Date,\n Error = context.Error,\n Function = context.Function,\n Math = context.Math,\n Object = context.Object,\n RegExp = context.RegExp,\n String = context.String,\n TypeError = context.TypeError;\n\n /** Used for built-in method references. */\n var arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n /** Used to detect overreaching core-js shims. */\n var coreJsData = context['__core-js_shared__'];\n\n /** Used to resolve the decompiled source of functions. */\n var funcToString = funcProto.toString;\n\n /** Used to check objects for own properties. */\n var hasOwnProperty = objectProto.hasOwnProperty;\n\n /** Used to generate unique IDs. */\n var idCounter = 0;\n\n /** Used to detect methods masquerading as native. */\n var maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n }());\n\n /**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n var nativeObjectToString = objectProto.toString;\n\n /** Used to infer the `Object` constructor. */\n var objectCtorString = funcToString.call(Object);\n\n /** Used to restore the original `_` reference in `_.noConflict`. */\n var oldDash = root._;\n\n /** Used to detect if a method is native. */\n var reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n );\n\n /** Built-in value references. */\n var Buffer = moduleExports ? context.Buffer : undefined,\n Symbol = context.Symbol,\n Uint8Array = context.Uint8Array,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice,\n spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined,\n symIterator = Symbol ? Symbol.iterator : undefined,\n symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n var defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n }());\n\n /** Mocked built-ins. */\n var ctxClearTimeout = context.clearTimeout !== root.clearTimeout && context.clearTimeout,\n ctxNow = Date && Date.now !== root.Date.now && Date.now,\n ctxSetTimeout = context.setTimeout !== root.setTimeout && context.setTimeout;\n\n /* Built-in method references for those with the same name as other `lodash` methods. */\n var nativeCeil = Math.ceil,\n nativeFloor = Math.floor,\n nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeIsFinite = context.isFinite,\n nativeJoin = arrayProto.join,\n nativeKeys = overArg(Object.keys, Object),\n nativeMax = Math.max,\n nativeMin = Math.min,\n nativeNow = Date.now,\n nativeParseInt = context.parseInt,\n nativeRandom = Math.random,\n nativeReverse = arrayProto.reverse;\n\n /* Built-in method references that are verified to be native. */\n var DataView = getNative(context, 'DataView'),\n Map = getNative(context, 'Map'),\n Promise = getNative(context, 'Promise'),\n Set = getNative(context, 'Set'),\n WeakMap = getNative(context, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n /** Used to store function metadata. */\n var metaMap = WeakMap && new WeakMap;\n\n /** Used to lookup unminified function names. */\n var realNames = {};\n\n /** Used to detect maps, sets, and weakmaps. */\n var dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n /** Used to convert symbols to primitives and strings. */\n var symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined,\n symbolToString = symbolProto ? symbolProto.toString : undefined;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` object which wraps `value` to enable implicit method\n * chain sequences. Methods that operate on and return arrays, collections,\n * and functions can be chained together. Methods that retrieve a single value\n * or may return a primitive value will automatically end the chain sequence\n * and return the unwrapped value. Otherwise, the value must be unwrapped\n * with `_#value`.\n *\n * Explicit chain sequences, which must be unwrapped with `_#value`, may be\n * enabled using `_.chain`.\n *\n * The execution of chained methods is lazy, that is, it's deferred until\n * `_#value` is implicitly or explicitly called.\n *\n * Lazy evaluation allows several methods to support shortcut fusion.\n * Shortcut fusion is an optimization to merge iteratee calls; this avoids\n * the creation of intermediate arrays and can greatly reduce the number of\n * iteratee executions. Sections of a chain sequence qualify for shortcut\n * fusion if the section is applied to an array and iteratees accept only\n * one argument. The heuristic for whether a section qualifies for shortcut\n * fusion is subject to change.\n *\n * Chaining is supported in custom builds as long as the `_#value` method is\n * directly or indirectly included in the build.\n *\n * In addition to lodash methods, wrappers have `Array` and `String` methods.\n *\n * The wrapper `Array` methods are:\n * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift`\n *\n * The wrapper `String` methods are:\n * `replace` and `split`\n *\n * The wrapper methods that support shortcut fusion are:\n * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`,\n * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`,\n * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray`\n *\n * The chainable wrapper methods are:\n * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`,\n * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`,\n * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`,\n * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`,\n * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`,\n * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`,\n * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`,\n * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`,\n * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`,\n * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`,\n * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`,\n * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`,\n * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`,\n * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`,\n * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`,\n * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`,\n * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`,\n * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`,\n * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`,\n * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`,\n * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`,\n * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`,\n * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`,\n * `zipObject`, `zipObjectDeep`, and `zipWith`\n *\n * The wrapper methods that are **not** chainable by default are:\n * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`,\n * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`,\n * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`,\n * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`,\n * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`,\n * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`,\n * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`,\n * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`,\n * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`,\n * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`,\n * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`,\n * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`,\n * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`,\n * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`,\n * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`,\n * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`,\n * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`,\n * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`,\n * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`,\n * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`,\n * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`,\n * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`,\n * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`,\n * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`,\n * `upperFirst`, `value`, and `words`\n *\n * @name _\n * @constructor\n * @category Seq\n * @param {*} value The value to wrap in a `lodash` instance.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2, 3]);\n *\n * // Returns an unwrapped value.\n * wrapped.reduce(_.add);\n * // => 6\n *\n * // Returns a wrapped value.\n * var squares = wrapped.map(square);\n *\n * _.isArray(squares);\n * // => false\n *\n * _.isArray(squares.value());\n * // => true\n */\n function lodash(value) {\n if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) {\n if (value instanceof LodashWrapper) {\n return value;\n }\n if (hasOwnProperty.call(value, '__wrapped__')) {\n return wrapperClone(value);\n }\n }\n return new LodashWrapper(value);\n }\n\n /**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\n var baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n }());\n\n /**\n * The function whose prototype chain sequence wrappers inherit from.\n *\n * @private\n */\n function baseLodash() {\n // No operation performed.\n }\n\n /**\n * The base constructor for creating `lodash` wrapper objects.\n *\n * @private\n * @param {*} value The value to wrap.\n * @param {boolean} [chainAll] Enable explicit method chain sequences.\n */\n function LodashWrapper(value, chainAll) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__chain__ = !!chainAll;\n this.__index__ = 0;\n this.__values__ = undefined;\n }\n\n /**\n * By default, the template delimiters used by lodash are like those in\n * embedded Ruby (ERB) as well as ES2015 template strings. Change the\n * following template settings to use alternative delimiters.\n *\n * @static\n * @memberOf _\n * @type {Object}\n */\n lodash.templateSettings = {\n\n /**\n * Used to detect `data` property values to be HTML-escaped.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'escape': reEscape,\n\n /**\n * Used to detect code to be evaluated.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'evaluate': reEvaluate,\n\n /**\n * Used to detect `data` property values to inject.\n *\n * @memberOf _.templateSettings\n * @type {RegExp}\n */\n 'interpolate': reInterpolate,\n\n /**\n * Used to reference the data object in the template text.\n *\n * @memberOf _.templateSettings\n * @type {string}\n */\n 'variable': '',\n\n /**\n * Used to import variables into the compiled template.\n *\n * @memberOf _.templateSettings\n * @type {Object}\n */\n 'imports': {\n\n /**\n * A reference to the `lodash` function.\n *\n * @memberOf _.templateSettings.imports\n * @type {Function}\n */\n '_': lodash\n }\n };\n\n // Ensure wrappers are instances of `baseLodash`.\n lodash.prototype = baseLodash.prototype;\n lodash.prototype.constructor = lodash;\n\n LodashWrapper.prototype = baseCreate(baseLodash.prototype);\n LodashWrapper.prototype.constructor = LodashWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation.\n *\n * @private\n * @constructor\n * @param {*} value The value to wrap.\n */\n function LazyWrapper(value) {\n this.__wrapped__ = value;\n this.__actions__ = [];\n this.__dir__ = 1;\n this.__filtered__ = false;\n this.__iteratees__ = [];\n this.__takeCount__ = MAX_ARRAY_LENGTH;\n this.__views__ = [];\n }\n\n /**\n * Creates a clone of the lazy wrapper object.\n *\n * @private\n * @name clone\n * @memberOf LazyWrapper\n * @returns {Object} Returns the cloned `LazyWrapper` object.\n */\n function lazyClone() {\n var result = new LazyWrapper(this.__wrapped__);\n result.__actions__ = copyArray(this.__actions__);\n result.__dir__ = this.__dir__;\n result.__filtered__ = this.__filtered__;\n result.__iteratees__ = copyArray(this.__iteratees__);\n result.__takeCount__ = this.__takeCount__;\n result.__views__ = copyArray(this.__views__);\n return result;\n }\n\n /**\n * Reverses the direction of lazy iteration.\n *\n * @private\n * @name reverse\n * @memberOf LazyWrapper\n * @returns {Object} Returns the new reversed `LazyWrapper` object.\n */\n function lazyReverse() {\n if (this.__filtered__) {\n var result = new LazyWrapper(this);\n result.__dir__ = -1;\n result.__filtered__ = true;\n } else {\n result = this.clone();\n result.__dir__ *= -1;\n }\n return result;\n }\n\n /**\n * Extracts the unwrapped value from its lazy wrapper.\n *\n * @private\n * @name value\n * @memberOf LazyWrapper\n * @returns {*} Returns the unwrapped value.\n */\n function lazyValue() {\n var array = this.__wrapped__.value(),\n dir = this.__dir__,\n isArr = isArray(array),\n isRight = dir < 0,\n arrLength = isArr ? array.length : 0,\n view = getView(0, arrLength, this.__views__),\n start = view.start,\n end = view.end,\n length = end - start,\n index = isRight ? end : (start - 1),\n iteratees = this.__iteratees__,\n iterLength = iteratees.length,\n resIndex = 0,\n takeCount = nativeMin(length, this.__takeCount__);\n\n if (!isArr || (!isRight && arrLength == length && takeCount == length)) {\n return baseWrapperValue(array, this.__actions__);\n }\n var result = [];\n\n outer:\n while (length-- && resIndex < takeCount) {\n index += dir;\n\n var iterIndex = -1,\n value = array[index];\n\n while (++iterIndex < iterLength) {\n var data = iteratees[iterIndex],\n iteratee = data.iteratee,\n type = data.type,\n computed = iteratee(value);\n\n if (type == LAZY_MAP_FLAG) {\n value = computed;\n } else if (!computed) {\n if (type == LAZY_FILTER_FLAG) {\n continue outer;\n } else {\n break outer;\n }\n }\n }\n result[resIndex++] = value;\n }\n return result;\n }\n\n // Ensure `LazyWrapper` is an instance of `baseLodash`.\n LazyWrapper.prototype = baseCreate(baseLodash.prototype);\n LazyWrapper.prototype.constructor = LazyWrapper;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Hash(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\n function hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function hashDelete(key) {\n var result = this.has(key) && delete this.__data__[key];\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n }\n\n /**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key);\n }\n\n /**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\n function hashSet(key, value) {\n var data = this.__data__;\n this.size += this.has(key) ? 0 : 1;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n }\n\n // Add methods to `Hash`.\n Hash.prototype.clear = hashClear;\n Hash.prototype['delete'] = hashDelete;\n Hash.prototype.get = hashGet;\n Hash.prototype.has = hashHas;\n Hash.prototype.set = hashSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function ListCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\n function listCacheClear() {\n this.__data__ = [];\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n --this.size;\n return true;\n }\n\n /**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n }\n\n /**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n }\n\n /**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\n function listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n ++this.size;\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n }\n\n // Add methods to `ListCache`.\n ListCache.prototype.clear = listCacheClear;\n ListCache.prototype['delete'] = listCacheDelete;\n ListCache.prototype.get = listCacheGet;\n ListCache.prototype.has = listCacheHas;\n ListCache.prototype.set = listCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function MapCache(entries) {\n var index = -1,\n length = entries == null ? 0 : entries.length;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n }\n\n /**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\n function mapCacheClear() {\n this.size = 0;\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n }\n\n /**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function mapCacheDelete(key) {\n var result = getMapData(this, key)['delete'](key);\n this.size -= result ? 1 : 0;\n return result;\n }\n\n /**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function mapCacheGet(key) {\n return getMapData(this, key).get(key);\n }\n\n /**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function mapCacheHas(key) {\n return getMapData(this, key).has(key);\n }\n\n /**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\n function mapCacheSet(key, value) {\n var data = getMapData(this, key),\n size = data.size;\n\n data.set(key, value);\n this.size += data.size == size ? 0 : 1;\n return this;\n }\n\n // Add methods to `MapCache`.\n MapCache.prototype.clear = mapCacheClear;\n MapCache.prototype['delete'] = mapCacheDelete;\n MapCache.prototype.get = mapCacheGet;\n MapCache.prototype.has = mapCacheHas;\n MapCache.prototype.set = mapCacheSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n *\n * Creates an array cache object to store unique values.\n *\n * @private\n * @constructor\n * @param {Array} [values] The values to cache.\n */\n function SetCache(values) {\n var index = -1,\n length = values == null ? 0 : values.length;\n\n this.__data__ = new MapCache;\n while (++index < length) {\n this.add(values[index]);\n }\n }\n\n /**\n * Adds `value` to the array cache.\n *\n * @private\n * @name add\n * @memberOf SetCache\n * @alias push\n * @param {*} value The value to cache.\n * @returns {Object} Returns the cache instance.\n */\n function setCacheAdd(value) {\n this.__data__.set(value, HASH_UNDEFINED);\n return this;\n }\n\n /**\n * Checks if `value` is in the array cache.\n *\n * @private\n * @name has\n * @memberOf SetCache\n * @param {*} value The value to search for.\n * @returns {number} Returns `true` if `value` is found, else `false`.\n */\n function setCacheHas(value) {\n return this.__data__.has(value);\n }\n\n // Add methods to `SetCache`.\n SetCache.prototype.add = SetCache.prototype.push = setCacheAdd;\n SetCache.prototype.has = setCacheHas;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\n function Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n }\n\n /**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\n function stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n }\n\n /**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\n function stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n }\n\n /**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\n function stackGet(key) {\n return this.__data__.get(key);\n }\n\n /**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\n function stackHas(key) {\n return this.__data__.has(key);\n }\n\n /**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\n function stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n }\n\n // Add methods to `Stack`.\n Stack.prototype.clear = stackClear;\n Stack.prototype['delete'] = stackDelete;\n Stack.prototype.get = stackGet;\n Stack.prototype.has = stackHas;\n Stack.prototype.set = stackSet;\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\n function arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `_.sample` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @returns {*} Returns the random element.\n */\n function arraySample(array) {\n var length = array.length;\n return length ? array[baseRandom(0, length - 1)] : undefined;\n }\n\n /**\n * A specialized version of `_.sampleSize` for arrays.\n *\n * @private\n * @param {Array} array The array to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function arraySampleSize(array, n) {\n return shuffleSelf(copyArray(array), baseClamp(n, 0, array.length));\n }\n\n /**\n * A specialized version of `_.shuffle` for arrays.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function arrayShuffle(array) {\n return shuffleSelf(copyArray(array));\n }\n\n /**\n * This function is like `assignValue` except that it doesn't assign\n * `undefined` values.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignMergeValue(object, key, value) {\n if ((value !== undefined && !eq(object[key], value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n }\n\n /**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\n function assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n }\n\n /**\n * Aggregates elements of `collection` on `accumulator` with keys transformed\n * by `iteratee` and values set by `setter`.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform keys.\n * @param {Object} accumulator The initial aggregated object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseAggregator(collection, setter, iteratee, accumulator) {\n baseEach(collection, function(value, key, collection) {\n setter(accumulator, value, iteratee(value), collection);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n }\n\n /**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\n function baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n }\n\n /**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\n function baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n }\n\n /**\n * The base implementation of `_.at` without support for individual paths.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {string[]} paths The property paths to pick.\n * @returns {Array} Returns the picked elements.\n */\n function baseAt(object, paths) {\n var index = -1,\n length = paths.length,\n result = Array(length),\n skip = object == null;\n\n while (++index < length) {\n result[index] = skip ? undefined : get(object, paths[index]);\n }\n return result;\n }\n\n /**\n * The base implementation of `_.clamp` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n */\n function baseClamp(number, lower, upper) {\n if (number === number) {\n if (upper !== undefined) {\n number = number <= upper ? number : upper;\n }\n if (lower !== undefined) {\n number = number >= lower ? number : lower;\n }\n }\n return number;\n }\n\n /**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\n function baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n }\n\n /**\n * The base implementation of `_.conforms` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property predicates to conform to.\n * @returns {Function} Returns the new spec function.\n */\n function baseConforms(source) {\n var props = keys(source);\n return function(object) {\n return baseConformsTo(object, source, props);\n };\n }\n\n /**\n * The base implementation of `_.conformsTo` which accepts `props` to check.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n */\n function baseConformsTo(object, source, props) {\n var length = props.length;\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (length--) {\n var key = props[length],\n predicate = source[key],\n value = object[key];\n\n if ((value === undefined && !(key in object)) || !predicate(value)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.delay` and `_.defer` which accepts `args`\n * to provide to `func`.\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {Array} args The arguments to provide to `func`.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n function baseDelay(func, wait, args) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return setTimeout(function() { func.apply(undefined, args); }, wait);\n }\n\n /**\n * The base implementation of methods like `_.difference` without support\n * for excluding multiple arrays or iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Array} values The values to exclude.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n */\n function baseDifference(array, values, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n isCommon = true,\n length = array.length,\n result = [],\n valuesLength = values.length;\n\n if (!length) {\n return result;\n }\n if (iteratee) {\n values = arrayMap(values, baseUnary(iteratee));\n }\n if (comparator) {\n includes = arrayIncludesWith;\n isCommon = false;\n }\n else if (values.length >= LARGE_ARRAY_SIZE) {\n includes = cacheHas;\n isCommon = false;\n values = new SetCache(values);\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee == null ? value : iteratee(value);\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var valuesIndex = valuesLength;\n while (valuesIndex--) {\n if (values[valuesIndex] === computed) {\n continue outer;\n }\n }\n result.push(value);\n }\n else if (!includes(values, computed, comparator)) {\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.forEach` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEach = createBaseEach(baseForOwn);\n\n /**\n * The base implementation of `_.forEachRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n */\n var baseEachRight = createBaseEach(baseForOwnRight, true);\n\n /**\n * The base implementation of `_.every` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`\n */\n function baseEvery(collection, predicate) {\n var result = true;\n baseEach(collection, function(value, index, collection) {\n result = !!predicate(value, index, collection);\n return result;\n });\n return result;\n }\n\n /**\n * The base implementation of methods like `_.max` and `_.min` which accepts a\n * `comparator` to determine the extremum value.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The iteratee invoked per iteration.\n * @param {Function} comparator The comparator used to compare values.\n * @returns {*} Returns the extremum value.\n */\n function baseExtremum(array, iteratee, comparator) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n var value = array[index],\n current = iteratee(value);\n\n if (current != null && (computed === undefined\n ? (current === current && !isSymbol(current))\n : comparator(current, computed)\n )) {\n var computed = current,\n result = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.fill` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n */\n function baseFill(array, value, start, end) {\n var length = array.length;\n\n start = toInteger(start);\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = (end === undefined || end > length) ? length : toInteger(end);\n if (end < 0) {\n end += length;\n }\n end = start > end ? 0 : toLength(end);\n while (start < end) {\n array[start++] = value;\n }\n return array;\n }\n\n /**\n * The base implementation of `_.filter` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\n function baseFilter(collection, predicate) {\n var result = [];\n baseEach(collection, function(value, index, collection) {\n if (predicate(value, index, collection)) {\n result.push(value);\n }\n });\n return result;\n }\n\n /**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\n function baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `baseForOwn` which iterates over `object`\n * properties returned by `keysFunc` and invokes `iteratee` for each property.\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseFor = createBaseFor();\n\n /**\n * This function is like `baseFor` except that it iterates over properties\n * in the opposite order.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\n var baseForRight = createBaseFor(true);\n\n /**\n * The base implementation of `_.forOwn` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwn(object, iteratee) {\n return object && baseFor(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.forOwnRight` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\n function baseForOwnRight(object, iteratee) {\n return object && baseForRight(object, iteratee, keys);\n }\n\n /**\n * The base implementation of `_.functions` which creates an array of\n * `object` function property names filtered from `props`.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Array} props The property names to filter.\n * @returns {Array} Returns the function names.\n */\n function baseFunctions(object, props) {\n return arrayFilter(props, function(key) {\n return isFunction(object[key]);\n });\n }\n\n /**\n * The base implementation of `_.get` without support for default values.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @returns {*} Returns the resolved value.\n */\n function baseGet(object, path) {\n path = castPath(path, object);\n\n var index = 0,\n length = path.length;\n\n while (object != null && index < length) {\n object = object[toKey(path[index++])];\n }\n return (index && index == length) ? object : undefined;\n }\n\n /**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n }\n\n /**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n function baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n }\n\n /**\n * The base implementation of `_.gt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n */\n function baseGt(value, other) {\n return value > other;\n }\n\n /**\n * The base implementation of `_.has` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHas(object, key) {\n return object != null && hasOwnProperty.call(object, key);\n }\n\n /**\n * The base implementation of `_.hasIn` without support for deep paths.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {Array|string} key The key to check.\n * @returns {boolean} Returns `true` if `key` exists, else `false`.\n */\n function baseHasIn(object, key) {\n return object != null && key in Object(object);\n }\n\n /**\n * The base implementation of `_.inRange` which doesn't coerce arguments.\n *\n * @private\n * @param {number} number The number to check.\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n */\n function baseInRange(number, start, end) {\n return number >= nativeMin(start, end) && number < nativeMax(start, end);\n }\n\n /**\n * The base implementation of methods like `_.intersection`, without support\n * for iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of shared values.\n */\n function baseIntersection(arrays, iteratee, comparator) {\n var includes = comparator ? arrayIncludesWith : arrayIncludes,\n length = arrays[0].length,\n othLength = arrays.length,\n othIndex = othLength,\n caches = Array(othLength),\n maxLength = Infinity,\n result = [];\n\n while (othIndex--) {\n var array = arrays[othIndex];\n if (othIndex && iteratee) {\n array = arrayMap(array, baseUnary(iteratee));\n }\n maxLength = nativeMin(array.length, maxLength);\n caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))\n ? new SetCache(othIndex && array)\n : undefined;\n }\n array = arrays[0];\n\n var index = -1,\n seen = caches[0];\n\n outer:\n while (++index < length && result.length < maxLength) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (!(seen\n ? cacheHas(seen, computed)\n : includes(result, computed, comparator)\n )) {\n othIndex = othLength;\n while (--othIndex) {\n var cache = caches[othIndex];\n if (!(cache\n ? cacheHas(cache, computed)\n : includes(arrays[othIndex], computed, comparator))\n ) {\n continue outer;\n }\n }\n if (seen) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.invert` and `_.invertBy` which inverts\n * `object` with values transformed by `iteratee` and set by `setter`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} setter The function to set `accumulator` values.\n * @param {Function} iteratee The iteratee to transform values.\n * @param {Object} accumulator The initial inverted object.\n * @returns {Function} Returns `accumulator`.\n */\n function baseInverter(object, setter, iteratee, accumulator) {\n baseForOwn(object, function(value, key, object) {\n setter(accumulator, iteratee(value), key, object);\n });\n return accumulator;\n }\n\n /**\n * The base implementation of `_.invoke` without support for individual\n * method arguments.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {Array} args The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n */\n function baseInvoke(object, path, args) {\n path = castPath(path, object);\n object = parent(object, path);\n var func = object == null ? object : object[toKey(last(path))];\n return func == null ? undefined : apply(func, object, args);\n }\n\n /**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\n function baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n }\n\n /**\n * The base implementation of `_.isArrayBuffer` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n */\n function baseIsArrayBuffer(value) {\n return isObjectLike(value) && baseGetTag(value) == arrayBufferTag;\n }\n\n /**\n * The base implementation of `_.isDate` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n */\n function baseIsDate(value) {\n return isObjectLike(value) && baseGetTag(value) == dateTag;\n }\n\n /**\n * The base implementation of `_.isEqual` which supports partial comparisons\n * and tracks traversed objects.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Unordered comparison\n * 2 - Partial comparison\n * @param {Function} [customizer] The function to customize comparisons.\n * @param {Object} [stack] Tracks traversed `value` and `other` objects.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n */\n function baseIsEqual(value, other, bitmask, customizer, stack) {\n if (value === other) {\n return true;\n }\n if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) {\n return value !== value && other !== other;\n }\n return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack);\n }\n\n /**\n * A specialized version of `baseIsEqual` for arrays and objects which performs\n * deep comparisons and tracks traversed objects enabling objects with circular\n * references to be compared.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} [stack] Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) {\n var objIsArr = isArray(object),\n othIsArr = isArray(other),\n objTag = objIsArr ? arrayTag : getTag(object),\n othTag = othIsArr ? arrayTag : getTag(other);\n\n objTag = objTag == argsTag ? objectTag : objTag;\n othTag = othTag == argsTag ? objectTag : othTag;\n\n var objIsObj = objTag == objectTag,\n othIsObj = othTag == objectTag,\n isSameTag = objTag == othTag;\n\n if (isSameTag && isBuffer(object)) {\n if (!isBuffer(other)) {\n return false;\n }\n objIsArr = true;\n objIsObj = false;\n }\n if (isSameTag && !objIsObj) {\n stack || (stack = new Stack);\n return (objIsArr || isTypedArray(object))\n ? equalArrays(object, other, bitmask, customizer, equalFunc, stack)\n : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack);\n }\n if (!(bitmask & COMPARE_PARTIAL_FLAG)) {\n var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),\n othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');\n\n if (objIsWrapped || othIsWrapped) {\n var objUnwrapped = objIsWrapped ? object.value() : object,\n othUnwrapped = othIsWrapped ? other.value() : other;\n\n stack || (stack = new Stack);\n return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack);\n }\n }\n if (!isSameTag) {\n return false;\n }\n stack || (stack = new Stack);\n return equalObjects(object, other, bitmask, customizer, equalFunc, stack);\n }\n\n /**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\n function baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n }\n\n /**\n * The base implementation of `_.isMatch` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Array} matchData The property names, values, and compare flags to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n */\n function baseIsMatch(object, source, matchData, customizer) {\n var index = matchData.length,\n length = index,\n noCustomizer = !customizer;\n\n if (object == null) {\n return !length;\n }\n object = Object(object);\n while (index--) {\n var data = matchData[index];\n if ((noCustomizer && data[2])\n ? data[1] !== object[data[0]]\n : !(data[0] in object)\n ) {\n return false;\n }\n }\n while (++index < length) {\n data = matchData[index];\n var key = data[0],\n objValue = object[key],\n srcValue = data[1];\n\n if (noCustomizer && data[2]) {\n if (objValue === undefined && !(key in object)) {\n return false;\n }\n } else {\n var stack = new Stack;\n if (customizer) {\n var result = customizer(objValue, srcValue, key, object, source, stack);\n }\n if (!(result === undefined\n ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack)\n : result\n )) {\n return false;\n }\n }\n }\n return true;\n }\n\n /**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\n function baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = isFunction(value) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n }\n\n /**\n * The base implementation of `_.isRegExp` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n */\n function baseIsRegExp(value) {\n return isObjectLike(value) && baseGetTag(value) == regexpTag;\n }\n\n /**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\n function baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n }\n\n /**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\n function baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n }\n\n /**\n * The base implementation of `_.iteratee`.\n *\n * @private\n * @param {*} [value=_.identity] The value to convert to an iteratee.\n * @returns {Function} Returns the iteratee.\n */\n function baseIteratee(value) {\n // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9.\n // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details.\n if (typeof value == 'function') {\n return value;\n }\n if (value == null) {\n return identity;\n }\n if (typeof value == 'object') {\n return isArray(value)\n ? baseMatchesProperty(value[0], value[1])\n : baseMatches(value);\n }\n return property(value);\n }\n\n /**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.lt` which doesn't coerce arguments.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n */\n function baseLt(value, other) {\n return value < other;\n }\n\n /**\n * The base implementation of `_.map` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n */\n function baseMap(collection, iteratee) {\n var index = -1,\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value, key, collection) {\n result[++index] = iteratee(value, key, collection);\n });\n return result;\n }\n\n /**\n * The base implementation of `_.matches` which doesn't clone `source`.\n *\n * @private\n * @param {Object} source The object of property values to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatches(source) {\n var matchData = getMatchData(source);\n if (matchData.length == 1 && matchData[0][2]) {\n return matchesStrictComparable(matchData[0][0], matchData[0][1]);\n }\n return function(object) {\n return object === source || baseIsMatch(object, source, matchData);\n };\n }\n\n /**\n * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`.\n *\n * @private\n * @param {string} path The path of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function baseMatchesProperty(path, srcValue) {\n if (isKey(path) && isStrictComparable(srcValue)) {\n return matchesStrictComparable(toKey(path), srcValue);\n }\n return function(object) {\n var objValue = get(object, path);\n return (objValue === undefined && objValue === srcValue)\n ? hasIn(object, path)\n : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG);\n };\n }\n\n /**\n * The base implementation of `_.merge` without support for multiple sources.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMerge(object, source, srcIndex, customizer, stack) {\n if (object === source) {\n return;\n }\n baseFor(source, function(srcValue, key) {\n stack || (stack = new Stack);\n if (isObject(srcValue)) {\n baseMergeDeep(object, source, key, srcIndex, baseMerge, customizer, stack);\n }\n else {\n var newValue = customizer\n ? customizer(safeGet(object, key), srcValue, (key + ''), object, source, stack)\n : undefined;\n\n if (newValue === undefined) {\n newValue = srcValue;\n }\n assignMergeValue(object, key, newValue);\n }\n }, keysIn);\n }\n\n /**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {number} srcIndex The index of `source`.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n */\n function baseMergeDeep(object, source, key, srcIndex, mergeFunc, customizer, stack) {\n var objValue = safeGet(object, key),\n srcValue = safeGet(source, key),\n stacked = stack.get(srcValue);\n\n if (stacked) {\n assignMergeValue(object, key, stacked);\n return;\n }\n var newValue = customizer\n ? customizer(objValue, srcValue, (key + ''), object, source, stack)\n : undefined;\n\n var isCommon = newValue === undefined;\n\n if (isCommon) {\n var isArr = isArray(srcValue),\n isBuff = !isArr && isBuffer(srcValue),\n isTyped = !isArr && !isBuff && isTypedArray(srcValue);\n\n newValue = srcValue;\n if (isArr || isBuff || isTyped) {\n if (isArray(objValue)) {\n newValue = objValue;\n }\n else if (isArrayLikeObject(objValue)) {\n newValue = copyArray(objValue);\n }\n else if (isBuff) {\n isCommon = false;\n newValue = cloneBuffer(srcValue, true);\n }\n else if (isTyped) {\n isCommon = false;\n newValue = cloneTypedArray(srcValue, true);\n }\n else {\n newValue = [];\n }\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n newValue = objValue;\n if (isArguments(objValue)) {\n newValue = toPlainObject(objValue);\n }\n else if (!isObject(objValue) || isFunction(objValue)) {\n newValue = initCloneObject(srcValue);\n }\n }\n else {\n isCommon = false;\n }\n }\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, newValue);\n mergeFunc(newValue, srcValue, srcIndex, customizer, stack);\n stack['delete'](srcValue);\n }\n assignMergeValue(object, key, newValue);\n }\n\n /**\n * The base implementation of `_.nth` which doesn't coerce arguments.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {number} n The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n */\n function baseNth(array, n) {\n var length = array.length;\n if (!length) {\n return;\n }\n n += n < 0 ? length : 0;\n return isIndex(n, length) ? array[n] : undefined;\n }\n\n /**\n * The base implementation of `_.orderBy` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function[]|Object[]|string[]} iteratees The iteratees to sort by.\n * @param {string[]} orders The sort orders of `iteratees`.\n * @returns {Array} Returns the new sorted array.\n */\n function baseOrderBy(collection, iteratees, orders) {\n if (iteratees.length) {\n iteratees = arrayMap(iteratees, function(iteratee) {\n if (isArray(iteratee)) {\n return function(value) {\n return baseGet(value, iteratee.length === 1 ? iteratee[0] : iteratee);\n }\n }\n return iteratee;\n });\n } else {\n iteratees = [identity];\n }\n\n var index = -1;\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n\n var result = baseMap(collection, function(value, key, collection) {\n var criteria = arrayMap(iteratees, function(iteratee) {\n return iteratee(value);\n });\n return { 'criteria': criteria, 'index': ++index, 'value': value };\n });\n\n return baseSortBy(result, function(object, other) {\n return compareMultiple(object, other, orders);\n });\n }\n\n /**\n * The base implementation of `_.pick` without support for individual\n * property identifiers.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @returns {Object} Returns the new object.\n */\n function basePick(object, paths) {\n return basePickBy(object, paths, function(value, path) {\n return hasIn(object, path);\n });\n }\n\n /**\n * The base implementation of `_.pickBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Object} object The source object.\n * @param {string[]} paths The property paths to pick.\n * @param {Function} predicate The function invoked per property.\n * @returns {Object} Returns the new object.\n */\n function basePickBy(object, paths, predicate) {\n var index = -1,\n length = paths.length,\n result = {};\n\n while (++index < length) {\n var path = paths[index],\n value = baseGet(object, path);\n\n if (predicate(value, path)) {\n baseSet(result, castPath(path, object), value);\n }\n }\n return result;\n }\n\n /**\n * A specialized version of `baseProperty` which supports deep paths.\n *\n * @private\n * @param {Array|string} path The path of the property to get.\n * @returns {Function} Returns the new accessor function.\n */\n function basePropertyDeep(path) {\n return function(object) {\n return baseGet(object, path);\n };\n }\n\n /**\n * The base implementation of `_.pullAllBy` without support for iteratee\n * shorthands.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n */\n function basePullAll(array, values, iteratee, comparator) {\n var indexOf = comparator ? baseIndexOfWith : baseIndexOf,\n index = -1,\n length = values.length,\n seen = array;\n\n if (array === values) {\n values = copyArray(values);\n }\n if (iteratee) {\n seen = arrayMap(array, baseUnary(iteratee));\n }\n while (++index < length) {\n var fromIndex = 0,\n value = values[index],\n computed = iteratee ? iteratee(value) : value;\n\n while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {\n if (seen !== array) {\n splice.call(seen, fromIndex, 1);\n }\n splice.call(array, fromIndex, 1);\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.pullAt` without support for individual\n * indexes or capturing the removed elements.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {number[]} indexes The indexes of elements to remove.\n * @returns {Array} Returns `array`.\n */\n function basePullAt(array, indexes) {\n var length = array ? indexes.length : 0,\n lastIndex = length - 1;\n\n while (length--) {\n var index = indexes[length];\n if (length == lastIndex || index !== previous) {\n var previous = index;\n if (isIndex(index)) {\n splice.call(array, index, 1);\n } else {\n baseUnset(array, index);\n }\n }\n }\n return array;\n }\n\n /**\n * The base implementation of `_.random` without support for returning\n * floating-point numbers.\n *\n * @private\n * @param {number} lower The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the random number.\n */\n function baseRandom(lower, upper) {\n return lower + nativeFloor(nativeRandom() * (upper - lower + 1));\n }\n\n /**\n * The base implementation of `_.range` and `_.rangeRight` which doesn't\n * coerce arguments.\n *\n * @private\n * @param {number} start The start of the range.\n * @param {number} end The end of the range.\n * @param {number} step The value to increment or decrement by.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the range of numbers.\n */\n function baseRange(start, end, step, fromRight) {\n var index = -1,\n length = nativeMax(nativeCeil((end - start) / (step || 1)), 0),\n result = Array(length);\n\n while (length--) {\n result[fromRight ? length : ++index] = start;\n start += step;\n }\n return result;\n }\n\n /**\n * The base implementation of `_.repeat` which doesn't coerce arguments.\n *\n * @private\n * @param {string} string The string to repeat.\n * @param {number} n The number of times to repeat the string.\n * @returns {string} Returns the repeated string.\n */\n function baseRepeat(string, n) {\n var result = '';\n if (!string || n < 1 || n > MAX_SAFE_INTEGER) {\n return result;\n }\n // Leverage the exponentiation by squaring algorithm for a faster repeat.\n // See https://en.wikipedia.org/wiki/Exponentiation_by_squaring for more details.\n do {\n if (n % 2) {\n result += string;\n }\n n = nativeFloor(n / 2);\n if (n) {\n string += string;\n }\n } while (n);\n\n return result;\n }\n\n /**\n * The base implementation of `_.rest` which doesn't validate or coerce arguments.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n */\n function baseRest(func, start) {\n return setToString(overRest(func, start, identity), func + '');\n }\n\n /**\n * The base implementation of `_.sample`.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n */\n function baseSample(collection) {\n return arraySample(values(collection));\n }\n\n /**\n * The base implementation of `_.sampleSize` without param guards.\n *\n * @private\n * @param {Array|Object} collection The collection to sample.\n * @param {number} n The number of elements to sample.\n * @returns {Array} Returns the random elements.\n */\n function baseSampleSize(collection, n) {\n var array = values(collection);\n return shuffleSelf(array, baseClamp(n, 0, array.length));\n }\n\n /**\n * The base implementation of `_.set`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseSet(object, path, value, customizer) {\n if (!isObject(object)) {\n return object;\n }\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n lastIndex = length - 1,\n nested = object;\n\n while (nested != null && ++index < length) {\n var key = toKey(path[index]),\n newValue = value;\n\n if (key === '__proto__' || key === 'constructor' || key === 'prototype') {\n return object;\n }\n\n if (index != lastIndex) {\n var objValue = nested[key];\n newValue = customizer ? customizer(objValue, key, nested) : undefined;\n if (newValue === undefined) {\n newValue = isObject(objValue)\n ? objValue\n : (isIndex(path[index + 1]) ? [] : {});\n }\n }\n assignValue(nested, key, newValue);\n nested = nested[key];\n }\n return object;\n }\n\n /**\n * The base implementation of `setData` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var baseSetData = !metaMap ? identity : function(func, data) {\n metaMap.set(func, data);\n return func;\n };\n\n /**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n };\n\n /**\n * The base implementation of `_.shuffle`.\n *\n * @private\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n */\n function baseShuffle(collection) {\n return shuffleSelf(values(collection));\n }\n\n /**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n }\n\n /**\n * The base implementation of `_.some` without support for iteratee shorthands.\n *\n * @private\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n */\n function baseSome(collection, predicate) {\n var result;\n\n baseEach(collection, function(value, index, collection) {\n result = predicate(value, index, collection);\n return !result;\n });\n return !!result;\n }\n\n /**\n * The base implementation of `_.sortedIndex` and `_.sortedLastIndex` which\n * performs a binary search of `array` to determine the index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndex(array, value, retHighest) {\n var low = 0,\n high = array == null ? low : array.length;\n\n if (typeof value == 'number' && value === value && high <= HALF_MAX_ARRAY_LENGTH) {\n while (low < high) {\n var mid = (low + high) >>> 1,\n computed = array[mid];\n\n if (computed !== null && !isSymbol(computed) &&\n (retHighest ? (computed <= value) : (computed < value))) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return high;\n }\n return baseSortedIndexBy(array, value, identity, retHighest);\n }\n\n /**\n * The base implementation of `_.sortedIndexBy` and `_.sortedLastIndexBy`\n * which invokes `iteratee` for `value` and each element of `array` to compute\n * their sort ranking. The iteratee is invoked with one argument; (value).\n *\n * @private\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} iteratee The iteratee invoked per element.\n * @param {boolean} [retHighest] Specify returning the highest qualified index.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n */\n function baseSortedIndexBy(array, value, iteratee, retHighest) {\n var low = 0,\n high = array == null ? 0 : array.length;\n if (high === 0) {\n return 0;\n }\n\n value = iteratee(value);\n var valIsNaN = value !== value,\n valIsNull = value === null,\n valIsSymbol = isSymbol(value),\n valIsUndefined = value === undefined;\n\n while (low < high) {\n var mid = nativeFloor((low + high) / 2),\n computed = iteratee(array[mid]),\n othIsDefined = computed !== undefined,\n othIsNull = computed === null,\n othIsReflexive = computed === computed,\n othIsSymbol = isSymbol(computed);\n\n if (valIsNaN) {\n var setLow = retHighest || othIsReflexive;\n } else if (valIsUndefined) {\n setLow = othIsReflexive && (retHighest || othIsDefined);\n } else if (valIsNull) {\n setLow = othIsReflexive && othIsDefined && (retHighest || !othIsNull);\n } else if (valIsSymbol) {\n setLow = othIsReflexive && othIsDefined && !othIsNull && (retHighest || !othIsSymbol);\n } else if (othIsNull || othIsSymbol) {\n setLow = false;\n } else {\n setLow = retHighest ? (computed <= value) : (computed < value);\n }\n if (setLow) {\n low = mid + 1;\n } else {\n high = mid;\n }\n }\n return nativeMin(high, MAX_ARRAY_INDEX);\n }\n\n /**\n * The base implementation of `_.sortedUniq` and `_.sortedUniqBy` without\n * support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseSortedUniq(array, iteratee) {\n var index = -1,\n length = array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n if (!index || !eq(computed, seen)) {\n var seen = computed;\n result[resIndex++] = value === 0 ? 0 : value;\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.toNumber` which doesn't ensure correct\n * conversions of binary, hexadecimal, or octal string values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n */\n function baseToNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n return +value;\n }\n\n /**\n * The base implementation of `_.toString` which doesn't convert nullish\n * values to empty strings.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\n function baseToString(value) {\n // Exit early for strings to avoid a performance hit in some environments.\n if (typeof value == 'string') {\n return value;\n }\n if (isArray(value)) {\n // Recursively convert values (susceptible to call stack limits).\n return arrayMap(value, baseToString) + '';\n }\n if (isSymbol(value)) {\n return symbolToString ? symbolToString.call(value) : '';\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * The base implementation of `_.uniqBy` without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n */\n function baseUniq(array, iteratee, comparator) {\n var index = -1,\n includes = arrayIncludes,\n length = array.length,\n isCommon = true,\n result = [],\n seen = result;\n\n if (comparator) {\n isCommon = false;\n includes = arrayIncludesWith;\n }\n else if (length >= LARGE_ARRAY_SIZE) {\n var set = iteratee ? null : createSet(array);\n if (set) {\n return setToArray(set);\n }\n isCommon = false;\n includes = cacheHas;\n seen = new SetCache;\n }\n else {\n seen = iteratee ? [] : result;\n }\n outer:\n while (++index < length) {\n var value = array[index],\n computed = iteratee ? iteratee(value) : value;\n\n value = (comparator || value !== 0) ? value : 0;\n if (isCommon && computed === computed) {\n var seenIndex = seen.length;\n while (seenIndex--) {\n if (seen[seenIndex] === computed) {\n continue outer;\n }\n }\n if (iteratee) {\n seen.push(computed);\n }\n result.push(value);\n }\n else if (!includes(seen, computed, comparator)) {\n if (seen !== result) {\n seen.push(computed);\n }\n result.push(value);\n }\n }\n return result;\n }\n\n /**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\n function baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n }\n\n /**\n * The base implementation of `_.update`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to update.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize path creation.\n * @returns {Object} Returns `object`.\n */\n function baseUpdate(object, path, updater, customizer) {\n return baseSet(object, path, updater(baseGet(object, path)), customizer);\n }\n\n /**\n * The base implementation of methods like `_.dropWhile` and `_.takeWhile`\n * without support for iteratee shorthands.\n *\n * @private\n * @param {Array} array The array to query.\n * @param {Function} predicate The function invoked per iteration.\n * @param {boolean} [isDrop] Specify dropping elements instead of taking them.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Array} Returns the slice of `array`.\n */\n function baseWhile(array, predicate, isDrop, fromRight) {\n var length = array.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length) &&\n predicate(array[index], index, array)) {}\n\n return isDrop\n ? baseSlice(array, (fromRight ? 0 : index), (fromRight ? index + 1 : length))\n : baseSlice(array, (fromRight ? index + 1 : 0), (fromRight ? length : index));\n }\n\n /**\n * The base implementation of `wrapperValue` which returns the result of\n * performing a sequence of actions on the unwrapped `value`, where each\n * successive action is supplied the return value of the previous.\n *\n * @private\n * @param {*} value The unwrapped value.\n * @param {Array} actions Actions to perform to resolve the unwrapped value.\n * @returns {*} Returns the resolved value.\n */\n function baseWrapperValue(value, actions) {\n var result = value;\n if (result instanceof LazyWrapper) {\n result = result.value();\n }\n return arrayReduce(actions, function(result, action) {\n return action.func.apply(action.thisArg, arrayPush([result], action.args));\n }, result);\n }\n\n /**\n * The base implementation of methods like `_.xor`, without support for\n * iteratee shorthands, that accepts an array of arrays to inspect.\n *\n * @private\n * @param {Array} arrays The arrays to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of values.\n */\n function baseXor(arrays, iteratee, comparator) {\n var length = arrays.length;\n if (length < 2) {\n return length ? baseUniq(arrays[0]) : [];\n }\n var index = -1,\n result = Array(length);\n\n while (++index < length) {\n var array = arrays[index],\n othIndex = -1;\n\n while (++othIndex < length) {\n if (othIndex != index) {\n result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator);\n }\n }\n }\n return baseUniq(baseFlatten(result, 1), iteratee, comparator);\n }\n\n /**\n * This base implementation of `_.zipObject` which assigns values using `assignFunc`.\n *\n * @private\n * @param {Array} props The property identifiers.\n * @param {Array} values The property values.\n * @param {Function} assignFunc The function to assign values.\n * @returns {Object} Returns the new object.\n */\n function baseZipObject(props, values, assignFunc) {\n var index = -1,\n length = props.length,\n valsLength = values.length,\n result = {};\n\n while (++index < length) {\n var value = index < valsLength ? values[index] : undefined;\n assignFunc(result, props[index], value);\n }\n return result;\n }\n\n /**\n * Casts `value` to an empty array if it's not an array like object.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Array|Object} Returns the cast array-like object.\n */\n function castArrayLikeObject(value) {\n return isArrayLikeObject(value) ? value : [];\n }\n\n /**\n * Casts `value` to `identity` if it's not a function.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {Function} Returns cast function.\n */\n function castFunction(value) {\n return typeof value == 'function' ? value : identity;\n }\n\n /**\n * Casts `value` to a path array if it's not one.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {Object} [object] The object to query keys on.\n * @returns {Array} Returns the cast property path array.\n */\n function castPath(value, object) {\n if (isArray(value)) {\n return value;\n }\n return isKey(value, object) ? [value] : stringToPath(toString(value));\n }\n\n /**\n * A `baseRest` alias which can be replaced with `identity` by module\n * replacement plugins.\n *\n * @private\n * @type {Function}\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n var castRest = baseRest;\n\n /**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\n function castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n }\n\n /**\n * A simple wrapper around the global [`clearTimeout`](https://mdn.io/clearTimeout).\n *\n * @private\n * @param {number|Object} id The timer id or timeout object of the timer to clear.\n */\n var clearTimeout = ctxClearTimeout || function(id) {\n return root.clearTimeout(id);\n };\n\n /**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\n function cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n }\n\n /**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\n function cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n }\n\n /**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\n function cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n }\n\n /**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\n function cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n }\n\n /**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\n function cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n }\n\n /**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\n function cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n }\n\n /**\n * Compares values to sort them in ascending order.\n *\n * @private\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {number} Returns the sort order indicator for `value`.\n */\n function compareAscending(value, other) {\n if (value !== other) {\n var valIsDefined = value !== undefined,\n valIsNull = value === null,\n valIsReflexive = value === value,\n valIsSymbol = isSymbol(value);\n\n var othIsDefined = other !== undefined,\n othIsNull = other === null,\n othIsReflexive = other === other,\n othIsSymbol = isSymbol(other);\n\n if ((!othIsNull && !othIsSymbol && !valIsSymbol && value > other) ||\n (valIsSymbol && othIsDefined && othIsReflexive && !othIsNull && !othIsSymbol) ||\n (valIsNull && othIsDefined && othIsReflexive) ||\n (!valIsDefined && othIsReflexive) ||\n !valIsReflexive) {\n return 1;\n }\n if ((!valIsNull && !valIsSymbol && !othIsSymbol && value < other) ||\n (othIsSymbol && valIsDefined && valIsReflexive && !valIsNull && !valIsSymbol) ||\n (othIsNull && valIsDefined && valIsReflexive) ||\n (!othIsDefined && valIsReflexive) ||\n !othIsReflexive) {\n return -1;\n }\n }\n return 0;\n }\n\n /**\n * Used by `_.orderBy` to compare multiple properties of a value to another\n * and stable sort them.\n *\n * If `orders` is unspecified, all values are sorted in ascending order. Otherwise,\n * specify an order of \"desc\" for descending or \"asc\" for ascending sort order\n * of corresponding values.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {boolean[]|string[]} orders The order to sort by for each property.\n * @returns {number} Returns the sort order indicator for `object`.\n */\n function compareMultiple(object, other, orders) {\n var index = -1,\n objCriteria = object.criteria,\n othCriteria = other.criteria,\n length = objCriteria.length,\n ordersLength = orders.length;\n\n while (++index < length) {\n var result = compareAscending(objCriteria[index], othCriteria[index]);\n if (result) {\n if (index >= ordersLength) {\n return result;\n }\n var order = orders[index];\n return result * (order == 'desc' ? -1 : 1);\n }\n }\n // Fixes an `Array#sort` bug in the JS engine embedded in Adobe applications\n // that causes it, under certain circumstances, to provide the same value for\n // `object` and `other`. See https://github.com/jashkenas/underscore/pull/1247\n // for more details.\n //\n // This also ensures a stable sort in V8 and other engines.\n // See https://bugs.chromium.org/p/v8/issues/detail?id=90 for more details.\n return object.index - other.index;\n }\n\n /**\n * Creates an array that is the composition of partially applied arguments,\n * placeholders, and provided arguments into a single array of arguments.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to prepend to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgs(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersLength = holders.length,\n leftIndex = -1,\n leftLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(leftLength + rangeLength),\n isUncurried = !isCurried;\n\n while (++leftIndex < leftLength) {\n result[leftIndex] = partials[leftIndex];\n }\n while (++argsIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[holders[argsIndex]] = args[argsIndex];\n }\n }\n while (rangeLength--) {\n result[leftIndex++] = args[argsIndex++];\n }\n return result;\n }\n\n /**\n * This function is like `composeArgs` except that the arguments composition\n * is tailored for `_.partialRight`.\n *\n * @private\n * @param {Array} args The provided arguments.\n * @param {Array} partials The arguments to append to those provided.\n * @param {Array} holders The `partials` placeholder indexes.\n * @params {boolean} [isCurried] Specify composing for a curried function.\n * @returns {Array} Returns the new array of composed arguments.\n */\n function composeArgsRight(args, partials, holders, isCurried) {\n var argsIndex = -1,\n argsLength = args.length,\n holdersIndex = -1,\n holdersLength = holders.length,\n rightIndex = -1,\n rightLength = partials.length,\n rangeLength = nativeMax(argsLength - holdersLength, 0),\n result = Array(rangeLength + rightLength),\n isUncurried = !isCurried;\n\n while (++argsIndex < rangeLength) {\n result[argsIndex] = args[argsIndex];\n }\n var offset = argsIndex;\n while (++rightIndex < rightLength) {\n result[offset + rightIndex] = partials[rightIndex];\n }\n while (++holdersIndex < holdersLength) {\n if (isUncurried || argsIndex < argsLength) {\n result[offset + holders[holdersIndex]] = args[argsIndex++];\n }\n }\n return result;\n }\n\n /**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\n function copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n }\n\n /**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\n function copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n }\n\n /**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n }\n\n /**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\n function copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n }\n\n /**\n * Creates a function like `_.groupBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} [initializer] The accumulator object initializer.\n * @returns {Function} Returns the new aggregator function.\n */\n function createAggregator(setter, initializer) {\n return function(collection, iteratee) {\n var func = isArray(collection) ? arrayAggregator : baseAggregator,\n accumulator = initializer ? initializer() : {};\n\n return func(collection, setter, getIteratee(iteratee, 2), accumulator);\n };\n }\n\n /**\n * Creates a function like `_.assign`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\n function createAssigner(assigner) {\n return baseRest(function(object, sources) {\n var index = -1,\n length = sources.length,\n customizer = length > 1 ? sources[length - 1] : undefined,\n guard = length > 2 ? sources[2] : undefined;\n\n customizer = (assigner.length > 3 && typeof customizer == 'function')\n ? (length--, customizer)\n : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n object = Object(object);\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, index, customizer);\n }\n }\n return object;\n });\n }\n\n /**\n * Creates a `baseEach` or `baseEachRight` function.\n *\n * @private\n * @param {Function} eachFunc The function to iterate over a collection.\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseEach(eachFunc, fromRight) {\n return function(collection, iteratee) {\n if (collection == null) {\n return collection;\n }\n if (!isArrayLike(collection)) {\n return eachFunc(collection, iteratee);\n }\n var length = collection.length,\n index = fromRight ? length : -1,\n iterable = Object(collection);\n\n while ((fromRight ? index-- : ++index < length)) {\n if (iteratee(iterable[index], index, iterable) === false) {\n break;\n }\n }\n return collection;\n };\n }\n\n /**\n * Creates a base function for methods like `_.forIn` and `_.forOwn`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\n function createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var index = -1,\n iterable = Object(object),\n props = keysFunc(object),\n length = props.length;\n\n while (length--) {\n var key = props[fromRight ? length : ++index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the optional `this`\n * binding of `thisArg`.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createBind(func, bitmask, thisArg) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return fn.apply(isBind ? thisArg : this, arguments);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\n function createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n }\n\n /**\n * Creates a function like `_.camelCase`.\n *\n * @private\n * @param {Function} callback The function to combine each word.\n * @returns {Function} Returns the new compounder function.\n */\n function createCompounder(callback) {\n return function(string) {\n return arrayReduce(words(deburr(string).replace(reApos, '')), callback, '');\n };\n }\n\n /**\n * Creates a function that produces an instance of `Ctor` regardless of\n * whether it was invoked as part of a `new` expression or by `call` or `apply`.\n *\n * @private\n * @param {Function} Ctor The constructor to wrap.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCtor(Ctor) {\n return function() {\n // Use a `switch` statement to work with class constructors. See\n // http://ecma-international.org/ecma-262/7.0/#sec-ecmascript-function-objects-call-thisargument-argumentslist\n // for more details.\n var args = arguments;\n switch (args.length) {\n case 0: return new Ctor;\n case 1: return new Ctor(args[0]);\n case 2: return new Ctor(args[0], args[1]);\n case 3: return new Ctor(args[0], args[1], args[2]);\n case 4: return new Ctor(args[0], args[1], args[2], args[3]);\n case 5: return new Ctor(args[0], args[1], args[2], args[3], args[4]);\n case 6: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5]);\n case 7: return new Ctor(args[0], args[1], args[2], args[3], args[4], args[5], args[6]);\n }\n var thisBinding = baseCreate(Ctor.prototype),\n result = Ctor.apply(thisBinding, args);\n\n // Mimic the constructor's `return` behavior.\n // See https://es5.github.io/#x13.2.2 for more details.\n return isObject(result) ? result : thisBinding;\n };\n }\n\n /**\n * Creates a function that wraps `func` to enable currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {number} arity The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createCurry(func, bitmask, arity) {\n var Ctor = createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length,\n placeholder = getHolder(wrapper);\n\n while (index--) {\n args[index] = arguments[index];\n }\n var holders = (length < 3 && args[0] !== placeholder && args[length - 1] !== placeholder)\n ? []\n : replaceHolders(args, placeholder);\n\n length -= holders.length;\n if (length < arity) {\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, undefined,\n args, holders, undefined, undefined, arity - length);\n }\n var fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n return apply(fn, this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.find` or `_.findLast` function.\n *\n * @private\n * @param {Function} findIndexFunc The function to find the collection index.\n * @returns {Function} Returns the new find function.\n */\n function createFind(findIndexFunc) {\n return function(collection, predicate, fromIndex) {\n var iterable = Object(collection);\n if (!isArrayLike(collection)) {\n var iteratee = getIteratee(predicate, 3);\n collection = keys(collection);\n predicate = function(key) { return iteratee(iterable[key], key, iterable); };\n }\n var index = findIndexFunc(collection, predicate, fromIndex);\n return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;\n };\n }\n\n /**\n * Creates a `_.flow` or `_.flowRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new flow function.\n */\n function createFlow(fromRight) {\n return flatRest(function(funcs) {\n var length = funcs.length,\n index = length,\n prereq = LodashWrapper.prototype.thru;\n\n if (fromRight) {\n funcs.reverse();\n }\n while (index--) {\n var func = funcs[index];\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (prereq && !wrapper && getFuncName(func) == 'wrapper') {\n var wrapper = new LodashWrapper([], true);\n }\n }\n index = wrapper ? index : length;\n while (++index < length) {\n func = funcs[index];\n\n var funcName = getFuncName(func),\n data = funcName == 'wrapper' ? getData(func) : undefined;\n\n if (data && isLaziable(data[0]) &&\n data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) &&\n !data[4].length && data[9] == 1\n ) {\n wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]);\n } else {\n wrapper = (func.length == 1 && isLaziable(func))\n ? wrapper[funcName]()\n : wrapper.thru(func);\n }\n }\n return function() {\n var args = arguments,\n value = args[0];\n\n if (wrapper && args.length == 1 && isArray(value)) {\n return wrapper.plant(value).value();\n }\n var index = 0,\n result = length ? funcs[index].apply(this, args) : value;\n\n while (++index < length) {\n result = funcs[index].call(this, result);\n }\n return result;\n };\n });\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with optional `this`\n * binding of `thisArg`, partial application, and currying.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [partialsRight] The arguments to append to those provided\n * to the new function.\n * @param {Array} [holdersRight] The `partialsRight` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createHybrid(func, bitmask, thisArg, partials, holders, partialsRight, holdersRight, argPos, ary, arity) {\n var isAry = bitmask & WRAP_ARY_FLAG,\n isBind = bitmask & WRAP_BIND_FLAG,\n isBindKey = bitmask & WRAP_BIND_KEY_FLAG,\n isCurried = bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG),\n isFlip = bitmask & WRAP_FLIP_FLAG,\n Ctor = isBindKey ? undefined : createCtor(func);\n\n function wrapper() {\n var length = arguments.length,\n args = Array(length),\n index = length;\n\n while (index--) {\n args[index] = arguments[index];\n }\n if (isCurried) {\n var placeholder = getHolder(wrapper),\n holdersCount = countHolders(args, placeholder);\n }\n if (partials) {\n args = composeArgs(args, partials, holders, isCurried);\n }\n if (partialsRight) {\n args = composeArgsRight(args, partialsRight, holdersRight, isCurried);\n }\n length -= holdersCount;\n if (isCurried && length < arity) {\n var newHolders = replaceHolders(args, placeholder);\n return createRecurry(\n func, bitmask, createHybrid, wrapper.placeholder, thisArg,\n args, newHolders, argPos, ary, arity - length\n );\n }\n var thisBinding = isBind ? thisArg : this,\n fn = isBindKey ? thisBinding[func] : func;\n\n length = args.length;\n if (argPos) {\n args = reorder(args, argPos);\n } else if (isFlip && length > 1) {\n args.reverse();\n }\n if (isAry && ary < length) {\n args.length = ary;\n }\n if (this && this !== root && this instanceof wrapper) {\n fn = Ctor || createCtor(fn);\n }\n return fn.apply(thisBinding, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a function like `_.invertBy`.\n *\n * @private\n * @param {Function} setter The function to set accumulator values.\n * @param {Function} toIteratee The function to resolve iteratees.\n * @returns {Function} Returns the new inverter function.\n */\n function createInverter(setter, toIteratee) {\n return function(object, iteratee) {\n return baseInverter(object, setter, toIteratee(iteratee), {});\n };\n }\n\n /**\n * Creates a function that performs a mathematical operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @param {number} [defaultValue] The value used for `undefined` arguments.\n * @returns {Function} Returns the new mathematical operation function.\n */\n function createMathOperation(operator, defaultValue) {\n return function(value, other) {\n var result;\n if (value === undefined && other === undefined) {\n return defaultValue;\n }\n if (value !== undefined) {\n result = value;\n }\n if (other !== undefined) {\n if (result === undefined) {\n return other;\n }\n if (typeof value == 'string' || typeof other == 'string') {\n value = baseToString(value);\n other = baseToString(other);\n } else {\n value = baseToNumber(value);\n other = baseToNumber(other);\n }\n result = operator(value, other);\n }\n return result;\n };\n }\n\n /**\n * Creates a function like `_.over`.\n *\n * @private\n * @param {Function} arrayFunc The function to iterate over iteratees.\n * @returns {Function} Returns the new over function.\n */\n function createOver(arrayFunc) {\n return flatRest(function(iteratees) {\n iteratees = arrayMap(iteratees, baseUnary(getIteratee()));\n return baseRest(function(args) {\n var thisArg = this;\n return arrayFunc(iteratees, function(iteratee) {\n return apply(iteratee, thisArg, args);\n });\n });\n });\n }\n\n /**\n * Creates the padding for `string` based on `length`. The `chars` string\n * is truncated if the number of characters exceeds `length`.\n *\n * @private\n * @param {number} length The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padding for `string`.\n */\n function createPadding(length, chars) {\n chars = chars === undefined ? ' ' : baseToString(chars);\n\n var charsLength = chars.length;\n if (charsLength < 2) {\n return charsLength ? baseRepeat(chars, length) : chars;\n }\n var result = baseRepeat(chars, nativeCeil(length / stringSize(chars)));\n return hasUnicode(chars)\n ? castSlice(stringToArray(result), 0, length).join('')\n : result.slice(0, length);\n }\n\n /**\n * Creates a function that wraps `func` to invoke it with the `this` binding\n * of `thisArg` and `partials` prepended to the arguments it receives.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} partials The arguments to prepend to those provided to\n * the new function.\n * @returns {Function} Returns the new wrapped function.\n */\n function createPartial(func, bitmask, thisArg, partials) {\n var isBind = bitmask & WRAP_BIND_FLAG,\n Ctor = createCtor(func);\n\n function wrapper() {\n var argsIndex = -1,\n argsLength = arguments.length,\n leftIndex = -1,\n leftLength = partials.length,\n args = Array(leftLength + argsLength),\n fn = (this && this !== root && this instanceof wrapper) ? Ctor : func;\n\n while (++leftIndex < leftLength) {\n args[leftIndex] = partials[leftIndex];\n }\n while (argsLength--) {\n args[leftIndex++] = arguments[++argsIndex];\n }\n return apply(fn, isBind ? thisArg : this, args);\n }\n return wrapper;\n }\n\n /**\n * Creates a `_.range` or `_.rangeRight` function.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new range function.\n */\n function createRange(fromRight) {\n return function(start, end, step) {\n if (step && typeof step != 'number' && isIterateeCall(start, end, step)) {\n end = step = undefined;\n }\n // Ensure the sign of `-0` is preserved.\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n step = step === undefined ? (start < end ? 1 : -1) : toFinite(step);\n return baseRange(start, end, step, fromRight);\n };\n }\n\n /**\n * Creates a function that performs a relational operation on two values.\n *\n * @private\n * @param {Function} operator The function to perform the operation.\n * @returns {Function} Returns the new relational operation function.\n */\n function createRelationalOperation(operator) {\n return function(value, other) {\n if (!(typeof value == 'string' && typeof other == 'string')) {\n value = toNumber(value);\n other = toNumber(other);\n }\n return operator(value, other);\n };\n }\n\n /**\n * Creates a function that wraps `func` to continue currying.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @param {Function} wrapFunc The function to create the `func` wrapper.\n * @param {*} placeholder The placeholder value.\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to prepend to those provided to\n * the new function.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createRecurry(func, bitmask, wrapFunc, placeholder, thisArg, partials, holders, argPos, ary, arity) {\n var isCurry = bitmask & WRAP_CURRY_FLAG,\n newHolders = isCurry ? holders : undefined,\n newHoldersRight = isCurry ? undefined : holders,\n newPartials = isCurry ? partials : undefined,\n newPartialsRight = isCurry ? undefined : partials;\n\n bitmask |= (isCurry ? WRAP_PARTIAL_FLAG : WRAP_PARTIAL_RIGHT_FLAG);\n bitmask &= ~(isCurry ? WRAP_PARTIAL_RIGHT_FLAG : WRAP_PARTIAL_FLAG);\n\n if (!(bitmask & WRAP_CURRY_BOUND_FLAG)) {\n bitmask &= ~(WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG);\n }\n var newData = [\n func, bitmask, thisArg, newPartials, newHolders, newPartialsRight,\n newHoldersRight, argPos, ary, arity\n ];\n\n var result = wrapFunc.apply(undefined, newData);\n if (isLaziable(func)) {\n setData(result, newData);\n }\n result.placeholder = placeholder;\n return setWrapToString(result, func, bitmask);\n }\n\n /**\n * Creates a function like `_.round`.\n *\n * @private\n * @param {string} methodName The name of the `Math` method to use when rounding.\n * @returns {Function} Returns the new round function.\n */\n function createRound(methodName) {\n var func = Math[methodName];\n return function(number, precision) {\n number = toNumber(number);\n precision = precision == null ? 0 : nativeMin(toInteger(precision), 292);\n if (precision && nativeIsFinite(number)) {\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n var pair = (toString(number) + 'e').split('e'),\n value = func(pair[0] + 'e' + (+pair[1] + precision));\n\n pair = (toString(value) + 'e').split('e');\n return +(pair[0] + 'e' + (+pair[1] - precision));\n }\n return func(number);\n };\n }\n\n /**\n * Creates a set object of `values`.\n *\n * @private\n * @param {Array} values The values to add to the set.\n * @returns {Object} Returns the new set.\n */\n var createSet = !(Set && (1 / setToArray(new Set([,-0]))[1]) == INFINITY) ? noop : function(values) {\n return new Set(values);\n };\n\n /**\n * Creates a `_.toPairs` or `_.toPairsIn` function.\n *\n * @private\n * @param {Function} keysFunc The function to get the keys of a given object.\n * @returns {Function} Returns the new pairs function.\n */\n function createToPairs(keysFunc) {\n return function(object) {\n var tag = getTag(object);\n if (tag == mapTag) {\n return mapToArray(object);\n }\n if (tag == setTag) {\n return setToPairs(object);\n }\n return baseToPairs(object, keysFunc(object));\n };\n }\n\n /**\n * Creates a function that either curries or invokes `func` with optional\n * `this` binding and partially applied arguments.\n *\n * @private\n * @param {Function|string} func The function or method name to wrap.\n * @param {number} bitmask The bitmask flags.\n * 1 - `_.bind`\n * 2 - `_.bindKey`\n * 4 - `_.curry` or `_.curryRight` of a bound function\n * 8 - `_.curry`\n * 16 - `_.curryRight`\n * 32 - `_.partial`\n * 64 - `_.partialRight`\n * 128 - `_.rearg`\n * 256 - `_.ary`\n * 512 - `_.flip`\n * @param {*} [thisArg] The `this` binding of `func`.\n * @param {Array} [partials] The arguments to be partially applied.\n * @param {Array} [holders] The `partials` placeholder indexes.\n * @param {Array} [argPos] The argument positions of the new function.\n * @param {number} [ary] The arity cap of `func`.\n * @param {number} [arity] The arity of `func`.\n * @returns {Function} Returns the new wrapped function.\n */\n function createWrap(func, bitmask, thisArg, partials, holders, argPos, ary, arity) {\n var isBindKey = bitmask & WRAP_BIND_KEY_FLAG;\n if (!isBindKey && typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var length = partials ? partials.length : 0;\n if (!length) {\n bitmask &= ~(WRAP_PARTIAL_FLAG | WRAP_PARTIAL_RIGHT_FLAG);\n partials = holders = undefined;\n }\n ary = ary === undefined ? ary : nativeMax(toInteger(ary), 0);\n arity = arity === undefined ? arity : toInteger(arity);\n length -= holders ? holders.length : 0;\n\n if (bitmask & WRAP_PARTIAL_RIGHT_FLAG) {\n var partialsRight = partials,\n holdersRight = holders;\n\n partials = holders = undefined;\n }\n var data = isBindKey ? undefined : getData(func);\n\n var newData = [\n func, bitmask, thisArg, partials, holders, partialsRight, holdersRight,\n argPos, ary, arity\n ];\n\n if (data) {\n mergeData(newData, data);\n }\n func = newData[0];\n bitmask = newData[1];\n thisArg = newData[2];\n partials = newData[3];\n holders = newData[4];\n arity = newData[9] = newData[9] === undefined\n ? (isBindKey ? 0 : func.length)\n : nativeMax(newData[9] - length, 0);\n\n if (!arity && bitmask & (WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG)) {\n bitmask &= ~(WRAP_CURRY_FLAG | WRAP_CURRY_RIGHT_FLAG);\n }\n if (!bitmask || bitmask == WRAP_BIND_FLAG) {\n var result = createBind(func, bitmask, thisArg);\n } else if (bitmask == WRAP_CURRY_FLAG || bitmask == WRAP_CURRY_RIGHT_FLAG) {\n result = createCurry(func, bitmask, arity);\n } else if ((bitmask == WRAP_PARTIAL_FLAG || bitmask == (WRAP_BIND_FLAG | WRAP_PARTIAL_FLAG)) && !holders.length) {\n result = createPartial(func, bitmask, thisArg, partials);\n } else {\n result = createHybrid.apply(undefined, newData);\n }\n var setter = data ? baseSetData : setData;\n return setWrapToString(setter(result, newData), func, bitmask);\n }\n\n /**\n * Used by `_.defaults` to customize its `_.assignIn` use to assign properties\n * of source objects to the destination object for all destination properties\n * that resolve to `undefined`.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to assign.\n * @param {Object} object The parent object of `objValue`.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsAssignIn(objValue, srcValue, key, object) {\n if (objValue === undefined ||\n (eq(objValue, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n return srcValue;\n }\n return objValue;\n }\n\n /**\n * Used by `_.defaultsDeep` to customize its `_.merge` use to merge source\n * objects into destination objects that are passed thru.\n *\n * @private\n * @param {*} objValue The destination value.\n * @param {*} srcValue The source value.\n * @param {string} key The key of the property to merge.\n * @param {Object} object The parent object of `objValue`.\n * @param {Object} source The parent object of `srcValue`.\n * @param {Object} [stack] Tracks traversed source values and their merged\n * counterparts.\n * @returns {*} Returns the value to assign.\n */\n function customDefaultsMerge(objValue, srcValue, key, object, source, stack) {\n if (isObject(objValue) && isObject(srcValue)) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n stack.set(srcValue, objValue);\n baseMerge(objValue, srcValue, undefined, customDefaultsMerge, stack);\n stack['delete'](srcValue);\n }\n return objValue;\n }\n\n /**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\n function customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for arrays with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Array} array The array to compare.\n * @param {Array} other The other array to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `array` and `other` objects.\n * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.\n */\n function equalArrays(array, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n arrLength = array.length,\n othLength = other.length;\n\n if (arrLength != othLength && !(isPartial && othLength > arrLength)) {\n return false;\n }\n // Check that cyclic values are equal.\n var arrStacked = stack.get(array);\n var othStacked = stack.get(other);\n if (arrStacked && othStacked) {\n return arrStacked == other && othStacked == array;\n }\n var index = -1,\n result = true,\n seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined;\n\n stack.set(array, other);\n stack.set(other, array);\n\n // Ignore non-index properties.\n while (++index < arrLength) {\n var arrValue = array[index],\n othValue = other[index];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, arrValue, index, other, array, stack)\n : customizer(arrValue, othValue, index, array, other, stack);\n }\n if (compared !== undefined) {\n if (compared) {\n continue;\n }\n result = false;\n break;\n }\n // Recursively compare arrays (susceptible to call stack limits).\n if (seen) {\n if (!arraySome(other, function(othValue, othIndex) {\n if (!cacheHas(seen, othIndex) &&\n (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) {\n return seen.push(othIndex);\n }\n })) {\n result = false;\n break;\n }\n } else if (!(\n arrValue === othValue ||\n equalFunc(arrValue, othValue, bitmask, customizer, stack)\n )) {\n result = false;\n break;\n }\n }\n stack['delete'](array);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for comparing objects of\n * the same `toStringTag`.\n *\n * **Note:** This function only supports comparing values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {string} tag The `toStringTag` of the objects to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) {\n switch (tag) {\n case dataViewTag:\n if ((object.byteLength != other.byteLength) ||\n (object.byteOffset != other.byteOffset)) {\n return false;\n }\n object = object.buffer;\n other = other.buffer;\n\n case arrayBufferTag:\n if ((object.byteLength != other.byteLength) ||\n !equalFunc(new Uint8Array(object), new Uint8Array(other))) {\n return false;\n }\n return true;\n\n case boolTag:\n case dateTag:\n case numberTag:\n // Coerce booleans to `1` or `0` and dates to milliseconds.\n // Invalid dates are coerced to `NaN`.\n return eq(+object, +other);\n\n case errorTag:\n return object.name == other.name && object.message == other.message;\n\n case regexpTag:\n case stringTag:\n // Coerce regexes to strings and treat strings, primitives and objects,\n // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring\n // for more details.\n return object == (other + '');\n\n case mapTag:\n var convert = mapToArray;\n\n case setTag:\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG;\n convert || (convert = setToArray);\n\n if (object.size != other.size && !isPartial) {\n return false;\n }\n // Assume cyclic values are equal.\n var stacked = stack.get(object);\n if (stacked) {\n return stacked == other;\n }\n bitmask |= COMPARE_UNORDERED_FLAG;\n\n // Recursively compare objects (susceptible to call stack limits).\n stack.set(object, other);\n var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack);\n stack['delete'](object);\n return result;\n\n case symbolTag:\n if (symbolValueOf) {\n return symbolValueOf.call(object) == symbolValueOf.call(other);\n }\n }\n return false;\n }\n\n /**\n * A specialized version of `baseIsEqualDeep` for objects with support for\n * partial deep comparisons.\n *\n * @private\n * @param {Object} object The object to compare.\n * @param {Object} other The other object to compare.\n * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details.\n * @param {Function} customizer The function to customize comparisons.\n * @param {Function} equalFunc The function to determine equivalents of values.\n * @param {Object} stack Tracks traversed `object` and `other` objects.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\n function equalObjects(object, other, bitmask, customizer, equalFunc, stack) {\n var isPartial = bitmask & COMPARE_PARTIAL_FLAG,\n objProps = getAllKeys(object),\n objLength = objProps.length,\n othProps = getAllKeys(other),\n othLength = othProps.length;\n\n if (objLength != othLength && !isPartial) {\n return false;\n }\n var index = objLength;\n while (index--) {\n var key = objProps[index];\n if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) {\n return false;\n }\n }\n // Check that cyclic values are equal.\n var objStacked = stack.get(object);\n var othStacked = stack.get(other);\n if (objStacked && othStacked) {\n return objStacked == other && othStacked == object;\n }\n var result = true;\n stack.set(object, other);\n stack.set(other, object);\n\n var skipCtor = isPartial;\n while (++index < objLength) {\n key = objProps[index];\n var objValue = object[key],\n othValue = other[key];\n\n if (customizer) {\n var compared = isPartial\n ? customizer(othValue, objValue, key, other, object, stack)\n : customizer(objValue, othValue, key, object, other, stack);\n }\n // Recursively compare objects (susceptible to call stack limits).\n if (!(compared === undefined\n ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack))\n : compared\n )) {\n result = false;\n break;\n }\n skipCtor || (skipCtor = key == 'constructor');\n }\n if (result && !skipCtor) {\n var objCtor = object.constructor,\n othCtor = other.constructor;\n\n // Non `Object` object instances with different constructors are not equal.\n if (objCtor != othCtor &&\n ('constructor' in object && 'constructor' in other) &&\n !(typeof objCtor == 'function' && objCtor instanceof objCtor &&\n typeof othCtor == 'function' && othCtor instanceof othCtor)) {\n result = false;\n }\n }\n stack['delete'](object);\n stack['delete'](other);\n return result;\n }\n\n /**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\n function flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n }\n\n /**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n }\n\n /**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\n function getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n }\n\n /**\n * Gets metadata for `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {*} Returns the metadata for `func`.\n */\n var getData = !metaMap ? noop : function(func) {\n return metaMap.get(func);\n };\n\n /**\n * Gets the name of `func`.\n *\n * @private\n * @param {Function} func The function to query.\n * @returns {string} Returns the function name.\n */\n function getFuncName(func) {\n var result = (func.name + ''),\n array = realNames[result],\n length = hasOwnProperty.call(realNames, result) ? array.length : 0;\n\n while (length--) {\n var data = array[length],\n otherFunc = data.func;\n if (otherFunc == null || otherFunc == func) {\n return data.name;\n }\n }\n return result;\n }\n\n /**\n * Gets the argument placeholder value for `func`.\n *\n * @private\n * @param {Function} func The function to inspect.\n * @returns {*} Returns the placeholder value.\n */\n function getHolder(func) {\n var object = hasOwnProperty.call(lodash, 'placeholder') ? lodash : func;\n return object.placeholder;\n }\n\n /**\n * Gets the appropriate \"iteratee\" function. If `_.iteratee` is customized,\n * this function returns the custom method, otherwise it returns `baseIteratee`.\n * If arguments are provided, the chosen function is invoked with them and\n * its result is returned.\n *\n * @private\n * @param {*} [value] The value to convert to an iteratee.\n * @param {number} [arity] The arity of the created iteratee.\n * @returns {Function} Returns the chosen function or its result.\n */\n function getIteratee() {\n var result = lodash.iteratee || iteratee;\n result = result === iteratee ? baseIteratee : result;\n return arguments.length ? result(arguments[0], arguments[1]) : result;\n }\n\n /**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\n function getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n }\n\n /**\n * Gets the property names, values, and compare flags of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the match data of `object`.\n */\n function getMatchData(object) {\n var result = keys(object),\n length = result.length;\n\n while (length--) {\n var key = result[length],\n value = object[key];\n\n result[length] = [key, value, isStrictComparable(value)];\n }\n return result;\n }\n\n /**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\n function getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n }\n\n /**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n function getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n }\n\n /**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n };\n\n /**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\n var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n };\n\n /**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n var getTag = baseGetTag;\n\n // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\n if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n }\n\n /**\n * Gets the view, applying any `transforms` to the `start` and `end` positions.\n *\n * @private\n * @param {number} start The start of the view.\n * @param {number} end The end of the view.\n * @param {Array} transforms The transformations to apply to the view.\n * @returns {Object} Returns an object containing the `start` and `end`\n * positions of the view.\n */\n function getView(start, end, transforms) {\n var index = -1,\n length = transforms.length;\n\n while (++index < length) {\n var data = transforms[index],\n size = data.size;\n\n switch (data.type) {\n case 'drop': start += size; break;\n case 'dropRight': end -= size; break;\n case 'take': end = nativeMin(end, start + size); break;\n case 'takeRight': start = nativeMax(start, end - size); break;\n }\n }\n return { 'start': start, 'end': end };\n }\n\n /**\n * Extracts wrapper details from the `source` body comment.\n *\n * @private\n * @param {string} source The source to inspect.\n * @returns {Array} Returns the wrapper details.\n */\n function getWrapDetails(source) {\n var match = source.match(reWrapDetails);\n return match ? match[1].split(reSplitDetails) : [];\n }\n\n /**\n * Checks if `path` exists on `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @param {Function} hasFunc The function to check properties.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n */\n function hasPath(object, path, hasFunc) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length,\n result = false;\n\n while (++index < length) {\n var key = toKey(path[index]);\n if (!(result = object != null && hasFunc(object, key))) {\n break;\n }\n object = object[key];\n }\n if (result || ++index != length) {\n return result;\n }\n length = object == null ? 0 : object.length;\n return !!length && isLength(length) && isIndex(key, length) &&\n (isArray(object) || isArguments(object));\n }\n\n /**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\n function initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n }\n\n /**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n }\n\n /**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\n function initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n }\n\n /**\n * Inserts wrapper `details` in a comment at the top of the `source` body.\n *\n * @private\n * @param {string} source The source to modify.\n * @returns {Array} details The details to insert.\n * @returns {string} Returns the modified source.\n */\n function insertWrapDetails(source, details) {\n var length = details.length;\n if (!length) {\n return source;\n }\n var lastIndex = length - 1;\n details[lastIndex] = (length > 1 ? '& ' : '') + details[lastIndex];\n details = details.join(length > 2 ? ', ' : ' ');\n return source.replace(reWrapComment, '{\\n/* [wrapped with ' + details + '] */\\n');\n }\n\n /**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\n function isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n }\n\n /**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\n function isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n }\n\n /**\n * Checks if the given arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call,\n * else `false`.\n */\n function isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)\n ) {\n return eq(object[index], value);\n }\n return false;\n }\n\n /**\n * Checks if `value` is a property name and not a property path.\n *\n * @private\n * @param {*} value The value to check.\n * @param {Object} [object] The object to query keys on.\n * @returns {boolean} Returns `true` if `value` is a property name, else `false`.\n */\n function isKey(value, object) {\n if (isArray(value)) {\n return false;\n }\n var type = typeof value;\n if (type == 'number' || type == 'symbol' || type == 'boolean' ||\n value == null || isSymbol(value)) {\n return true;\n }\n return reIsPlainProp.test(value) || !reIsDeepProp.test(value) ||\n (object != null && value in Object(object));\n }\n\n /**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\n function isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n }\n\n /**\n * Checks if `func` has a lazy counterpart.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` has a lazy counterpart,\n * else `false`.\n */\n function isLaziable(func) {\n var funcName = getFuncName(func),\n other = lodash[funcName];\n\n if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) {\n return false;\n }\n if (func === other) {\n return true;\n }\n var data = getData(other);\n return !!data && func === data[0];\n }\n\n /**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\n function isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n }\n\n /**\n * Checks if `func` is capable of being masked.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `func` is maskable, else `false`.\n */\n var isMaskable = coreJsData ? isFunction : stubFalse;\n\n /**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\n function isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n }\n\n /**\n * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` if suitable for strict\n * equality comparisons, else `false`.\n */\n function isStrictComparable(value) {\n return value === value && !isObject(value);\n }\n\n /**\n * A specialized version of `matchesProperty` for source values suitable\n * for strict equality comparisons, i.e. `===`.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @param {*} srcValue The value to match.\n * @returns {Function} Returns the new spec function.\n */\n function matchesStrictComparable(key, srcValue) {\n return function(object) {\n if (object == null) {\n return false;\n }\n return object[key] === srcValue &&\n (srcValue !== undefined || (key in Object(object)));\n };\n }\n\n /**\n * A specialized version of `_.memoize` which clears the memoized function's\n * cache when it exceeds `MAX_MEMOIZE_SIZE`.\n *\n * @private\n * @param {Function} func The function to have its output memoized.\n * @returns {Function} Returns the new memoized function.\n */\n function memoizeCapped(func) {\n var result = memoize(func, function(key) {\n if (cache.size === MAX_MEMOIZE_SIZE) {\n cache.clear();\n }\n return key;\n });\n\n var cache = result.cache;\n return result;\n }\n\n /**\n * Merges the function metadata of `source` into `data`.\n *\n * Merging metadata reduces the number of wrappers used to invoke a function.\n * This is possible because methods like `_.bind`, `_.curry`, and `_.partial`\n * may be applied regardless of execution order. Methods like `_.ary` and\n * `_.rearg` modify function arguments, making the order in which they are\n * executed important, preventing the merging of metadata. However, we make\n * an exception for a safe combined case where curried functions have `_.ary`\n * and or `_.rearg` applied.\n *\n * @private\n * @param {Array} data The destination metadata.\n * @param {Array} source The source metadata.\n * @returns {Array} Returns `data`.\n */\n function mergeData(data, source) {\n var bitmask = data[1],\n srcBitmask = source[1],\n newBitmask = bitmask | srcBitmask,\n isCommon = newBitmask < (WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG | WRAP_ARY_FLAG);\n\n var isCombo =\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_CURRY_FLAG)) ||\n ((srcBitmask == WRAP_ARY_FLAG) && (bitmask == WRAP_REARG_FLAG) && (data[7].length <= source[8])) ||\n ((srcBitmask == (WRAP_ARY_FLAG | WRAP_REARG_FLAG)) && (source[7].length <= source[8]) && (bitmask == WRAP_CURRY_FLAG));\n\n // Exit early if metadata can't be merged.\n if (!(isCommon || isCombo)) {\n return data;\n }\n // Use source `thisArg` if available.\n if (srcBitmask & WRAP_BIND_FLAG) {\n data[2] = source[2];\n // Set when currying a bound function.\n newBitmask |= bitmask & WRAP_BIND_FLAG ? 0 : WRAP_CURRY_BOUND_FLAG;\n }\n // Compose partial arguments.\n var value = source[3];\n if (value) {\n var partials = data[3];\n data[3] = partials ? composeArgs(partials, value, source[4]) : value;\n data[4] = partials ? replaceHolders(data[3], PLACEHOLDER) : source[4];\n }\n // Compose partial right arguments.\n value = source[5];\n if (value) {\n partials = data[5];\n data[5] = partials ? composeArgsRight(partials, value, source[6]) : value;\n data[6] = partials ? replaceHolders(data[5], PLACEHOLDER) : source[6];\n }\n // Use source `argPos` if available.\n value = source[7];\n if (value) {\n data[7] = value;\n }\n // Use source `ary` if it's smaller.\n if (srcBitmask & WRAP_ARY_FLAG) {\n data[8] = data[8] == null ? source[8] : nativeMin(data[8], source[8]);\n }\n // Use source `arity` if one is not provided.\n if (data[9] == null) {\n data[9] = source[9];\n }\n // Use source `func` and merge bitmasks.\n data[0] = source[0];\n data[1] = newBitmask;\n\n return data;\n }\n\n /**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\n function nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n }\n\n /**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n function objectToString(value) {\n return nativeObjectToString.call(value);\n }\n\n /**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\n function overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n }\n\n /**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\n function parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n }\n\n /**\n * Reorder `array` according to the specified indexes where the element at\n * the first index is assigned as the first element, the element at\n * the second index is assigned as the second element, and so on.\n *\n * @private\n * @param {Array} array The array to reorder.\n * @param {Array} indexes The arranged array indexes.\n * @returns {Array} Returns `array`.\n */\n function reorder(array, indexes) {\n var arrLength = array.length,\n length = nativeMin(indexes.length, arrLength),\n oldArray = copyArray(array);\n\n while (length--) {\n var index = indexes[length];\n array[length] = isIndex(index, arrLength) ? oldArray[index] : undefined;\n }\n return array;\n }\n\n /**\n * Gets the value at `key`, unless `key` is \"__proto__\" or \"constructor\".\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\n function safeGet(object, key) {\n if (key === 'constructor' && typeof object[key] === 'function') {\n return;\n }\n\n if (key == '__proto__') {\n return;\n }\n\n return object[key];\n }\n\n /**\n * Sets metadata for `func`.\n *\n * **Note:** If this function becomes hot, i.e. is invoked a lot in a short\n * period of time, it will trip its breaker and transition to an identity\n * function to avoid garbage collection pauses in V8. See\n * [V8 issue 2070](https://bugs.chromium.org/p/v8/issues/detail?id=2070)\n * for more details.\n *\n * @private\n * @param {Function} func The function to associate metadata with.\n * @param {*} data The metadata.\n * @returns {Function} Returns `func`.\n */\n var setData = shortOut(baseSetData);\n\n /**\n * A simple wrapper around the global [`setTimeout`](https://mdn.io/setTimeout).\n *\n * @private\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @returns {number|Object} Returns the timer id or timeout object.\n */\n var setTimeout = ctxSetTimeout || function(func, wait) {\n return root.setTimeout(func, wait);\n };\n\n /**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\n var setToString = shortOut(baseSetToString);\n\n /**\n * Sets the `toString` method of `wrapper` to mimic the source of `reference`\n * with wrapper details in a comment at the top of the source body.\n *\n * @private\n * @param {Function} wrapper The function to modify.\n * @param {Function} reference The reference function.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Function} Returns `wrapper`.\n */\n function setWrapToString(wrapper, reference, bitmask) {\n var source = (reference + '');\n return setToString(wrapper, insertWrapDetails(source, updateWrapDetails(getWrapDetails(source), bitmask)));\n }\n\n /**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\n function shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n }\n\n /**\n * A specialized version of `_.shuffle` which mutates and sets the size of `array`.\n *\n * @private\n * @param {Array} array The array to shuffle.\n * @param {number} [size=array.length] The size of `array`.\n * @returns {Array} Returns `array`.\n */\n function shuffleSelf(array, size) {\n var index = -1,\n length = array.length,\n lastIndex = length - 1;\n\n size = size === undefined ? length : size;\n while (++index < size) {\n var rand = baseRandom(index, lastIndex),\n value = array[rand];\n\n array[rand] = array[index];\n array[index] = value;\n }\n array.length = size;\n return array;\n }\n\n /**\n * Converts `string` to a property path array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the property path array.\n */\n var stringToPath = memoizeCapped(function(string) {\n var result = [];\n if (string.charCodeAt(0) === 46 /* . */) {\n result.push('');\n }\n string.replace(rePropName, function(match, number, quote, subString) {\n result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match));\n });\n return result;\n });\n\n /**\n * Converts `value` to a string key if it's not a string or symbol.\n *\n * @private\n * @param {*} value The value to inspect.\n * @returns {string|symbol} Returns the key.\n */\n function toKey(value) {\n if (typeof value == 'string' || isSymbol(value)) {\n return value;\n }\n var result = (value + '');\n return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result;\n }\n\n /**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to convert.\n * @returns {string} Returns the source code.\n */\n function toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n }\n\n /**\n * Updates wrapper `details` based on `bitmask` flags.\n *\n * @private\n * @returns {Array} details The details to modify.\n * @param {number} bitmask The bitmask flags. See `createWrap` for more details.\n * @returns {Array} Returns `details`.\n */\n function updateWrapDetails(details, bitmask) {\n arrayEach(wrapFlags, function(pair) {\n var value = '_.' + pair[0];\n if ((bitmask & pair[1]) && !arrayIncludes(details, value)) {\n details.push(value);\n }\n });\n return details.sort();\n }\n\n /**\n * Creates a clone of `wrapper`.\n *\n * @private\n * @param {Object} wrapper The wrapper to clone.\n * @returns {Object} Returns the cloned wrapper.\n */\n function wrapperClone(wrapper) {\n if (wrapper instanceof LazyWrapper) {\n return wrapper.clone();\n }\n var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__);\n result.__actions__ = copyArray(wrapper.__actions__);\n result.__index__ = wrapper.__index__;\n result.__values__ = wrapper.__values__;\n return result;\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an array of elements split into groups the length of `size`.\n * If `array` can't be split evenly, the final chunk will be the remaining\n * elements.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to process.\n * @param {number} [size=1] The length of each chunk\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the new array of chunks.\n * @example\n *\n * _.chunk(['a', 'b', 'c', 'd'], 2);\n * // => [['a', 'b'], ['c', 'd']]\n *\n * _.chunk(['a', 'b', 'c', 'd'], 3);\n * // => [['a', 'b', 'c'], ['d']]\n */\n function chunk(array, size, guard) {\n if ((guard ? isIterateeCall(array, size, guard) : size === undefined)) {\n size = 1;\n } else {\n size = nativeMax(toInteger(size), 0);\n }\n var length = array == null ? 0 : array.length;\n if (!length || size < 1) {\n return [];\n }\n var index = 0,\n resIndex = 0,\n result = Array(nativeCeil(length / size));\n\n while (index < length) {\n result[resIndex++] = baseSlice(array, index, (index += size));\n }\n return result;\n }\n\n /**\n * Creates an array with all falsey values removed. The values `false`, `null`,\n * `0`, `\"\"`, `undefined`, and `NaN` are falsey.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to compact.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.compact([0, 1, false, 2, '', 3]);\n * // => [1, 2, 3]\n */\n function compact(array) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (value) {\n result[resIndex++] = value;\n }\n }\n return result;\n }\n\n /**\n * Creates a new array concatenating `array` with any additional arrays\n * and/or values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to concatenate.\n * @param {...*} [values] The values to concatenate.\n * @returns {Array} Returns the new concatenated array.\n * @example\n *\n * var array = [1];\n * var other = _.concat(array, 2, [3], [[4]]);\n *\n * console.log(other);\n * // => [1, 2, 3, [4]]\n *\n * console.log(array);\n * // => [1]\n */\n function concat() {\n var length = arguments.length;\n if (!length) {\n return [];\n }\n var args = Array(length - 1),\n array = arguments[0],\n index = length;\n\n while (index--) {\n args[index - 1] = arguments[index];\n }\n return arrayPush(isArray(array) ? copyArray(array) : [array], baseFlatten(args, 1));\n }\n\n /**\n * Creates an array of `array` values not included in the other given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * **Note:** Unlike `_.pullAll`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.without, _.xor\n * @example\n *\n * _.difference([2, 1], [2, 3]);\n * // => [1]\n */\n var difference = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `iteratee` which\n * is invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * **Note:** Unlike `_.pullAllBy`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var differenceBy = baseRest(function(array, values) {\n var iteratee = last(values);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.difference` except that it accepts `comparator`\n * which is invoked to compare elements of `array` to `values`. The order and\n * references of result values are determined by the first array. The comparator\n * is invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.pullAllWith`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...Array} [values] The values to exclude.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n *\n * _.differenceWith(objects, [{ 'x': 1, 'y': 2 }], _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }]\n */\n var differenceWith = baseRest(function(array, values) {\n var comparator = last(values);\n if (isArrayLikeObject(comparator)) {\n comparator = undefined;\n }\n return isArrayLikeObject(array)\n ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), undefined, comparator)\n : [];\n });\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.drop([1, 2, 3]);\n * // => [2, 3]\n *\n * _.drop([1, 2, 3], 2);\n * // => [3]\n *\n * _.drop([1, 2, 3], 5);\n * // => []\n *\n * _.drop([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function drop(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with `n` elements dropped from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to drop.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.dropRight([1, 2, 3]);\n * // => [1, 2]\n *\n * _.dropRight([1, 2, 3], 2);\n * // => [1]\n *\n * _.dropRight([1, 2, 3], 5);\n * // => []\n *\n * _.dropRight([1, 2, 3], 0);\n * // => [1, 2, 3]\n */\n function dropRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the end.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.dropRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropRightWhile(users, ['active', false]);\n * // => objects for ['barney']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropRightWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` excluding elements dropped from the beginning.\n * Elements are dropped until `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.dropWhile(users, function(o) { return !o.active; });\n * // => objects for ['pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.dropWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.dropWhile(users, ['active', false]);\n * // => objects for ['pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.dropWhile(users, 'active');\n * // => objects for ['barney', 'fred', 'pebbles']\n */\n function dropWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), true)\n : [];\n }\n\n /**\n * Fills elements of `array` with `value` from `start` up to, but not\n * including, `end`.\n *\n * **Note:** This method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Array\n * @param {Array} array The array to fill.\n * @param {*} value The value to fill `array` with.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.fill(array, 'a');\n * console.log(array);\n * // => ['a', 'a', 'a']\n *\n * _.fill(Array(3), 2);\n * // => [2, 2, 2]\n *\n * _.fill([4, 6, 8, 10], '*', 1, 3);\n * // => [4, '*', '*', 10]\n */\n function fill(array, value, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (start && typeof start != 'number' && isIterateeCall(array, value, start)) {\n start = 0;\n end = length;\n }\n return baseFill(array, value, start, end);\n }\n\n /**\n * This method is like `_.find` except that it returns the index of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.findIndex(users, function(o) { return o.user == 'barney'; });\n * // => 0\n *\n * // The `_.matches` iteratee shorthand.\n * _.findIndex(users, { 'user': 'fred', 'active': false });\n * // => 1\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findIndex(users, ['active', false]);\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.findIndex(users, 'active');\n * // => 2\n */\n function findIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index);\n }\n\n /**\n * This method is like `_.findIndex` except that it iterates over elements\n * of `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the found element, else `-1`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; });\n * // => 2\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastIndex(users, { 'user': 'barney', 'active': true });\n * // => 0\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastIndex(users, ['active', false]);\n * // => 2\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastIndex(users, 'active');\n * // => 0\n */\n function findLastIndex(array, predicate, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length - 1;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = fromIndex < 0\n ? nativeMax(length + index, 0)\n : nativeMin(index, length - 1);\n }\n return baseFindIndex(array, getIteratee(predicate, 3), index, true);\n }\n\n /**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\n function flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n }\n\n /**\n * Recursively flattens `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flattenDeep([1, [2, [3, [4]], 5]]);\n * // => [1, 2, 3, 4, 5]\n */\n function flattenDeep(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, INFINITY) : [];\n }\n\n /**\n * Recursively flatten `array` up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * var array = [1, [2, [3, [4]], 5]];\n *\n * _.flattenDepth(array, 1);\n * // => [1, 2, [3, [4]], 5]\n *\n * _.flattenDepth(array, 2);\n * // => [1, 2, 3, [4], 5]\n */\n function flattenDepth(array, depth) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(array, depth);\n }\n\n /**\n * The inverse of `_.toPairs`; this method returns an object composed\n * from key-value `pairs`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} pairs The key-value pairs.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.fromPairs([['a', 1], ['b', 2]]);\n * // => { 'a': 1, 'b': 2 }\n */\n function fromPairs(pairs) {\n var index = -1,\n length = pairs == null ? 0 : pairs.length,\n result = {};\n\n while (++index < length) {\n var pair = pairs[index];\n result[pair[0]] = pair[1];\n }\n return result;\n }\n\n /**\n * Gets the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias first\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the first element of `array`.\n * @example\n *\n * _.head([1, 2, 3]);\n * // => 1\n *\n * _.head([]);\n * // => undefined\n */\n function head(array) {\n return (array && array.length) ? array[0] : undefined;\n }\n\n /**\n * Gets the index at which the first occurrence of `value` is found in `array`\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. If `fromIndex` is negative, it's used as the\n * offset from the end of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.indexOf([1, 2, 1, 2], 2);\n * // => 1\n *\n * // Search from the `fromIndex`.\n * _.indexOf([1, 2, 1, 2], 2, 2);\n * // => 3\n */\n function indexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = fromIndex == null ? 0 : toInteger(fromIndex);\n if (index < 0) {\n index = nativeMax(length + index, 0);\n }\n return baseIndexOf(array, value, index);\n }\n\n /**\n * Gets all but the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.initial([1, 2, 3]);\n * // => [1, 2]\n */\n function initial(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 0, -1) : [];\n }\n\n /**\n * Creates an array of unique values that are included in all given arrays\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons. The order and references of result values are\n * determined by the first array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersection([2, 1], [2, 3]);\n * // => [2]\n */\n var intersection = baseRest(function(arrays) {\n var mapped = arrayMap(arrays, castArrayLikeObject);\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped)\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `iteratee`\n * which is invoked for each element of each `arrays` to generate the criterion\n * by which they're compared. The order and references of result values are\n * determined by the first array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * _.intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [2.1]\n *\n * // The `_.property` iteratee shorthand.\n * _.intersectionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }]\n */\n var intersectionBy = baseRest(function(arrays) {\n var iteratee = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n if (iteratee === last(mapped)) {\n iteratee = undefined;\n } else {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, getIteratee(iteratee, 2))\n : [];\n });\n\n /**\n * This method is like `_.intersection` except that it accepts `comparator`\n * which is invoked to compare elements of `arrays`. The order and references\n * of result values are determined by the first array. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of intersecting values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.intersectionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }]\n */\n var intersectionWith = baseRest(function(arrays) {\n var comparator = last(arrays),\n mapped = arrayMap(arrays, castArrayLikeObject);\n\n comparator = typeof comparator == 'function' ? comparator : undefined;\n if (comparator) {\n mapped.pop();\n }\n return (mapped.length && mapped[0] === arrays[0])\n ? baseIntersection(mapped, undefined, comparator)\n : [];\n });\n\n /**\n * Converts all elements in `array` into a string separated by `separator`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to convert.\n * @param {string} [separator=','] The element separator.\n * @returns {string} Returns the joined string.\n * @example\n *\n * _.join(['a', 'b', 'c'], '~');\n * // => 'a~b~c'\n */\n function join(array, separator) {\n return array == null ? '' : nativeJoin.call(array, separator);\n }\n\n /**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\n function last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n }\n\n /**\n * This method is like `_.indexOf` except that it iterates over elements of\n * `array` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=array.length-1] The index to search from.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.lastIndexOf([1, 2, 1, 2], 2);\n * // => 3\n *\n * // Search from the `fromIndex`.\n * _.lastIndexOf([1, 2, 1, 2], 2, 2);\n * // => 1\n */\n function lastIndexOf(array, value, fromIndex) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return -1;\n }\n var index = length;\n if (fromIndex !== undefined) {\n index = toInteger(fromIndex);\n index = index < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1);\n }\n return value === value\n ? strictLastIndexOf(array, value, index)\n : baseFindIndex(array, baseIsNaN, index, true);\n }\n\n /**\n * Gets the element at index `n` of `array`. If `n` is negative, the nth\n * element from the end is returned.\n *\n * @static\n * @memberOf _\n * @since 4.11.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=0] The index of the element to return.\n * @returns {*} Returns the nth element of `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n *\n * _.nth(array, 1);\n * // => 'b'\n *\n * _.nth(array, -2);\n * // => 'c';\n */\n function nth(array, n) {\n return (array && array.length) ? baseNth(array, toInteger(n)) : undefined;\n }\n\n /**\n * Removes all given values from `array` using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.without`, this method mutates `array`. Use `_.remove`\n * to remove elements from an array by predicate.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...*} [values] The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pull(array, 'a', 'c');\n * console.log(array);\n * // => ['b', 'b']\n */\n var pull = baseRest(pullAll);\n\n /**\n * This method is like `_.pull` except that it accepts an array of values to remove.\n *\n * **Note:** Unlike `_.difference`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = ['a', 'b', 'c', 'a', 'b', 'c'];\n *\n * _.pullAll(array, ['a', 'c']);\n * console.log(array);\n * // => ['b', 'b']\n */\n function pullAll(array, values) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values)\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `iteratee` which is\n * invoked for each element of `array` and `values` to generate the criterion\n * by which they're compared. The iteratee is invoked with one argument: (value).\n *\n * **Note:** Unlike `_.differenceBy`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1 }, { 'x': 2 }, { 'x': 3 }, { 'x': 1 }];\n *\n * _.pullAllBy(array, [{ 'x': 1 }, { 'x': 3 }], 'x');\n * console.log(array);\n * // => [{ 'x': 2 }]\n */\n function pullAllBy(array, values, iteratee) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, getIteratee(iteratee, 2))\n : array;\n }\n\n /**\n * This method is like `_.pullAll` except that it accepts `comparator` which\n * is invoked to compare elements of `array` to `values`. The comparator is\n * invoked with two arguments: (arrVal, othVal).\n *\n * **Note:** Unlike `_.differenceWith`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Array} values The values to remove.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [{ 'x': 1, 'y': 2 }, { 'x': 3, 'y': 4 }, { 'x': 5, 'y': 6 }];\n *\n * _.pullAllWith(array, [{ 'x': 3, 'y': 4 }], _.isEqual);\n * console.log(array);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 5, 'y': 6 }]\n */\n function pullAllWith(array, values, comparator) {\n return (array && array.length && values && values.length)\n ? basePullAll(array, values, undefined, comparator)\n : array;\n }\n\n /**\n * Removes elements from `array` corresponding to `indexes` and returns an\n * array of removed elements.\n *\n * **Note:** Unlike `_.at`, this method mutates `array`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {...(number|number[])} [indexes] The indexes of elements to remove.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = ['a', 'b', 'c', 'd'];\n * var pulled = _.pullAt(array, [1, 3]);\n *\n * console.log(array);\n * // => ['a', 'c']\n *\n * console.log(pulled);\n * // => ['b', 'd']\n */\n var pullAt = flatRest(function(array, indexes) {\n var length = array == null ? 0 : array.length,\n result = baseAt(array, indexes);\n\n basePullAt(array, arrayMap(indexes, function(index) {\n return isIndex(index, length) ? +index : index;\n }).sort(compareAscending));\n\n return result;\n });\n\n /**\n * Removes all elements from `array` that `predicate` returns truthy for\n * and returns an array of the removed elements. The predicate is invoked\n * with three arguments: (value, index, array).\n *\n * **Note:** Unlike `_.filter`, this method mutates `array`. Use `_.pull`\n * to pull elements from an array by value.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new array of removed elements.\n * @example\n *\n * var array = [1, 2, 3, 4];\n * var evens = _.remove(array, function(n) {\n * return n % 2 == 0;\n * });\n *\n * console.log(array);\n * // => [1, 3]\n *\n * console.log(evens);\n * // => [2, 4]\n */\n function remove(array, predicate) {\n var result = [];\n if (!(array && array.length)) {\n return result;\n }\n var index = -1,\n indexes = [],\n length = array.length;\n\n predicate = getIteratee(predicate, 3);\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result.push(value);\n indexes.push(index);\n }\n }\n basePullAt(array, indexes);\n return result;\n }\n\n /**\n * Reverses `array` so that the first element becomes the last, the second\n * element becomes the second to last, and so on.\n *\n * **Note:** This method mutates `array` and is based on\n * [`Array#reverse`](https://mdn.io/Array/reverse).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to modify.\n * @returns {Array} Returns `array`.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _.reverse(array);\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function reverse(array) {\n return array == null ? array : nativeReverse.call(array);\n }\n\n /**\n * Creates a slice of `array` from `start` up to, but not including, `end`.\n *\n * **Note:** This method is used instead of\n * [`Array#slice`](https://mdn.io/Array/slice) to ensure dense arrays are\n * returned.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\n function slice(array, start, end) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n if (end && typeof end != 'number' && isIterateeCall(array, start, end)) {\n start = 0;\n end = length;\n }\n else {\n start = start == null ? 0 : toInteger(start);\n end = end === undefined ? length : toInteger(end);\n }\n return baseSlice(array, start, end);\n }\n\n /**\n * Uses a binary search to determine the lowest index at which `value`\n * should be inserted into `array` in order to maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedIndex([30, 50], 40);\n * // => 1\n */\n function sortedIndex(array, value) {\n return baseSortedIndex(array, value);\n }\n\n /**\n * This method is like `_.sortedIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 0\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedIndexBy(objects, { 'x': 4 }, 'x');\n * // => 0\n */\n function sortedIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2));\n }\n\n /**\n * This method is like `_.indexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedIndexOf([4, 5, 5, 5, 6], 5);\n * // => 1\n */\n function sortedIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value);\n if (index < length && eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.sortedIndex` except that it returns the highest\n * index at which `value` should be inserted into `array` in order to\n * maintain its sort order.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * _.sortedLastIndex([4, 5, 5, 5, 6], 5);\n * // => 4\n */\n function sortedLastIndex(array, value) {\n return baseSortedIndex(array, value, true);\n }\n\n /**\n * This method is like `_.sortedLastIndex` except that it accepts `iteratee`\n * which is invoked for `value` and each element of `array` to compute their\n * sort ranking. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The sorted array to inspect.\n * @param {*} value The value to evaluate.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {number} Returns the index at which `value` should be inserted\n * into `array`.\n * @example\n *\n * var objects = [{ 'x': 4 }, { 'x': 5 }];\n *\n * _.sortedLastIndexBy(objects, { 'x': 4 }, function(o) { return o.x; });\n * // => 1\n *\n * // The `_.property` iteratee shorthand.\n * _.sortedLastIndexBy(objects, { 'x': 4 }, 'x');\n * // => 1\n */\n function sortedLastIndexBy(array, value, iteratee) {\n return baseSortedIndexBy(array, value, getIteratee(iteratee, 2), true);\n }\n\n /**\n * This method is like `_.lastIndexOf` except that it performs a binary\n * search on a sorted `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {*} value The value to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n * @example\n *\n * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);\n * // => 3\n */\n function sortedLastIndexOf(array, value) {\n var length = array == null ? 0 : array.length;\n if (length) {\n var index = baseSortedIndex(array, value, true) - 1;\n if (eq(array[index], value)) {\n return index;\n }\n }\n return -1;\n }\n\n /**\n * This method is like `_.uniq` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniq([1, 1, 2]);\n * // => [1, 2]\n */\n function sortedUniq(array) {\n return (array && array.length)\n ? baseSortedUniq(array)\n : [];\n }\n\n /**\n * This method is like `_.uniqBy` except that it's designed and optimized\n * for sorted arrays.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.sortedUniqBy([1.1, 1.2, 2.3, 2.4], Math.floor);\n * // => [1.1, 2.3]\n */\n function sortedUniqBy(array, iteratee) {\n return (array && array.length)\n ? baseSortedUniq(array, getIteratee(iteratee, 2))\n : [];\n }\n\n /**\n * Gets all but the first element of `array`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.tail([1, 2, 3]);\n * // => [2, 3]\n */\n function tail(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseSlice(array, 1, length) : [];\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the beginning.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.take([1, 2, 3]);\n * // => [1]\n *\n * _.take([1, 2, 3], 2);\n * // => [1, 2]\n *\n * _.take([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.take([1, 2, 3], 0);\n * // => []\n */\n function take(array, n, guard) {\n if (!(array && array.length)) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n return baseSlice(array, 0, n < 0 ? 0 : n);\n }\n\n /**\n * Creates a slice of `array` with `n` elements taken from the end.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {number} [n=1] The number of elements to take.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * _.takeRight([1, 2, 3]);\n * // => [3]\n *\n * _.takeRight([1, 2, 3], 2);\n * // => [2, 3]\n *\n * _.takeRight([1, 2, 3], 5);\n * // => [1, 2, 3]\n *\n * _.takeRight([1, 2, 3], 0);\n * // => []\n */\n function takeRight(array, n, guard) {\n var length = array == null ? 0 : array.length;\n if (!length) {\n return [];\n }\n n = (guard || n === undefined) ? 1 : toInteger(n);\n n = length - n;\n return baseSlice(array, n < 0 ? 0 : n, length);\n }\n\n /**\n * Creates a slice of `array` with elements taken from the end. Elements are\n * taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': false }\n * ];\n *\n * _.takeRightWhile(users, function(o) { return !o.active; });\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeRightWhile(users, { 'user': 'pebbles', 'active': false });\n * // => objects for ['pebbles']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeRightWhile(users, ['active', false]);\n * // => objects for ['fred', 'pebbles']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeRightWhile(users, 'active');\n * // => []\n */\n function takeRightWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3), false, true)\n : [];\n }\n\n /**\n * Creates a slice of `array` with elements taken from the beginning. Elements\n * are taken until `predicate` returns falsey. The predicate is invoked with\n * three arguments: (value, index, array).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Array\n * @param {Array} array The array to query.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the slice of `array`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'active': false },\n * { 'user': 'fred', 'active': false },\n * { 'user': 'pebbles', 'active': true }\n * ];\n *\n * _.takeWhile(users, function(o) { return !o.active; });\n * // => objects for ['barney', 'fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.takeWhile(users, { 'user': 'barney', 'active': false });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.takeWhile(users, ['active', false]);\n * // => objects for ['barney', 'fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.takeWhile(users, 'active');\n * // => []\n */\n function takeWhile(array, predicate) {\n return (array && array.length)\n ? baseWhile(array, getIteratee(predicate, 3))\n : [];\n }\n\n /**\n * Creates an array of unique values, in order, from all given arrays using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.union([2], [1, 2]);\n * // => [2, 1]\n */\n var union = baseRest(function(arrays) {\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true));\n });\n\n /**\n * This method is like `_.union` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which uniqueness is computed. Result values are chosen from the first\n * array in which the value occurs. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * _.unionBy([2.1], [1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.unionBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n var unionBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.union` except that it accepts `comparator` which\n * is invoked to compare elements of `arrays`. Result values are chosen from\n * the first array in which the value occurs. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of combined values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.unionWith(objects, others, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var unionWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseUniq(baseFlatten(arrays, 1, isArrayLikeObject, true), undefined, comparator);\n });\n\n /**\n * Creates a duplicate-free version of an array, using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons, in which only the first occurrence of each element\n * is kept. The order of result values is determined by the order they occur\n * in the array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniq([2, 1, 2]);\n * // => [2, 1]\n */\n function uniq(array) {\n return (array && array.length) ? baseUniq(array) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `iteratee` which is\n * invoked for each element in `array` to generate the criterion by which\n * uniqueness is computed. The order of result values is determined by the\n * order they occur in the array. The iteratee is invoked with one argument:\n * (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * _.uniqBy([2.1, 1.2, 2.3], Math.floor);\n * // => [2.1, 1.2]\n *\n * // The `_.property` iteratee shorthand.\n * _.uniqBy([{ 'x': 1 }, { 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 1 }, { 'x': 2 }]\n */\n function uniqBy(array, iteratee) {\n return (array && array.length) ? baseUniq(array, getIteratee(iteratee, 2)) : [];\n }\n\n /**\n * This method is like `_.uniq` except that it accepts `comparator` which\n * is invoked to compare elements of `array`. The order of result values is\n * determined by the order they occur in the array.The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new duplicate free array.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.uniqWith(objects, _.isEqual);\n * // => [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }]\n */\n function uniqWith(array, comparator) {\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return (array && array.length) ? baseUniq(array, undefined, comparator) : [];\n }\n\n /**\n * This method is like `_.zip` except that it accepts an array of grouped\n * elements and creates an array regrouping the elements to their pre-zip\n * configuration.\n *\n * @static\n * @memberOf _\n * @since 1.2.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n *\n * _.unzip(zipped);\n * // => [['a', 'b'], [1, 2], [true, false]]\n */\n function unzip(array) {\n if (!(array && array.length)) {\n return [];\n }\n var length = 0;\n array = arrayFilter(array, function(group) {\n if (isArrayLikeObject(group)) {\n length = nativeMax(group.length, length);\n return true;\n }\n });\n return baseTimes(length, function(index) {\n return arrayMap(array, baseProperty(index));\n });\n }\n\n /**\n * This method is like `_.unzip` except that it accepts `iteratee` to specify\n * how regrouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {Array} array The array of grouped elements to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * regrouped values.\n * @returns {Array} Returns the new array of regrouped elements.\n * @example\n *\n * var zipped = _.zip([1, 2], [10, 20], [100, 200]);\n * // => [[1, 10, 100], [2, 20, 200]]\n *\n * _.unzipWith(zipped, _.add);\n * // => [3, 30, 300]\n */\n function unzipWith(array, iteratee) {\n if (!(array && array.length)) {\n return [];\n }\n var result = unzip(array);\n if (iteratee == null) {\n return result;\n }\n return arrayMap(result, function(group) {\n return apply(iteratee, undefined, group);\n });\n }\n\n /**\n * Creates an array excluding all given values using\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * **Note:** Unlike `_.pull`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to inspect.\n * @param {...*} [values] The values to exclude.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.xor\n * @example\n *\n * _.without([2, 1, 2, 3], 1, 2);\n * // => [3]\n */\n var without = baseRest(function(array, values) {\n return isArrayLikeObject(array)\n ? baseDifference(array, values)\n : [];\n });\n\n /**\n * Creates an array of unique values that is the\n * [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)\n * of the given arrays. The order of result values is determined by the order\n * they occur in the arrays.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @returns {Array} Returns the new array of filtered values.\n * @see _.difference, _.without\n * @example\n *\n * _.xor([2, 1], [2, 3]);\n * // => [1, 3]\n */\n var xor = baseRest(function(arrays) {\n return baseXor(arrayFilter(arrays, isArrayLikeObject));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `iteratee` which is\n * invoked for each element of each `arrays` to generate the criterion by\n * which by which they're compared. The order of result values is determined\n * by the order they occur in the arrays. The iteratee is invoked with one\n * argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * _.xorBy([2.1, 1.2], [2.3, 3.4], Math.floor);\n * // => [1.2, 3.4]\n *\n * // The `_.property` iteratee shorthand.\n * _.xorBy([{ 'x': 1 }], [{ 'x': 2 }, { 'x': 1 }], 'x');\n * // => [{ 'x': 2 }]\n */\n var xorBy = baseRest(function(arrays) {\n var iteratee = last(arrays);\n if (isArrayLikeObject(iteratee)) {\n iteratee = undefined;\n }\n return baseXor(arrayFilter(arrays, isArrayLikeObject), getIteratee(iteratee, 2));\n });\n\n /**\n * This method is like `_.xor` except that it accepts `comparator` which is\n * invoked to compare elements of `arrays`. The order of result values is\n * determined by the order they occur in the arrays. The comparator is invoked\n * with two arguments: (arrVal, othVal).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Array\n * @param {...Array} [arrays] The arrays to inspect.\n * @param {Function} [comparator] The comparator invoked per element.\n * @returns {Array} Returns the new array of filtered values.\n * @example\n *\n * var objects = [{ 'x': 1, 'y': 2 }, { 'x': 2, 'y': 1 }];\n * var others = [{ 'x': 1, 'y': 1 }, { 'x': 1, 'y': 2 }];\n *\n * _.xorWith(objects, others, _.isEqual);\n * // => [{ 'x': 2, 'y': 1 }, { 'x': 1, 'y': 1 }]\n */\n var xorWith = baseRest(function(arrays) {\n var comparator = last(arrays);\n comparator = typeof comparator == 'function' ? comparator : undefined;\n return baseXor(arrayFilter(arrays, isArrayLikeObject), undefined, comparator);\n });\n\n /**\n * Creates an array of grouped elements, the first of which contains the\n * first elements of the given arrays, the second of which contains the\n * second elements of the given arrays, and so on.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zip(['a', 'b'], [1, 2], [true, false]);\n * // => [['a', 1, true], ['b', 2, false]]\n */\n var zip = baseRest(unzip);\n\n /**\n * This method is like `_.fromPairs` except that it accepts two arrays,\n * one of property identifiers and one of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 0.4.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObject(['a', 'b'], [1, 2]);\n * // => { 'a': 1, 'b': 2 }\n */\n function zipObject(props, values) {\n return baseZipObject(props || [], values || [], assignValue);\n }\n\n /**\n * This method is like `_.zipObject` except that it supports property paths.\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Array\n * @param {Array} [props=[]] The property identifiers.\n * @param {Array} [values=[]] The property values.\n * @returns {Object} Returns the new object.\n * @example\n *\n * _.zipObjectDeep(['a.b[0].c', 'a.b[1].d'], [1, 2]);\n * // => { 'a': { 'b': [{ 'c': 1 }, { 'd': 2 }] } }\n */\n function zipObjectDeep(props, values) {\n return baseZipObject(props || [], values || [], baseSet);\n }\n\n /**\n * This method is like `_.zip` except that it accepts `iteratee` to specify\n * how grouped values should be combined. The iteratee is invoked with the\n * elements of each group: (...group).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Array\n * @param {...Array} [arrays] The arrays to process.\n * @param {Function} [iteratee=_.identity] The function to combine\n * grouped values.\n * @returns {Array} Returns the new array of grouped elements.\n * @example\n *\n * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {\n * return a + b + c;\n * });\n * // => [111, 222]\n */\n var zipWith = baseRest(function(arrays) {\n var length = arrays.length,\n iteratee = length > 1 ? arrays[length - 1] : undefined;\n\n iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined;\n return unzipWith(arrays, iteratee);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates a `lodash` wrapper instance that wraps `value` with explicit method\n * chain sequences enabled. The result of such sequences must be unwrapped\n * with `_#value`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Seq\n * @param {*} value The value to wrap.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'pebbles', 'age': 1 }\n * ];\n *\n * var youngest = _\n * .chain(users)\n * .sortBy('age')\n * .map(function(o) {\n * return o.user + ' is ' + o.age;\n * })\n * .head()\n * .value();\n * // => 'pebbles is 1'\n */\n function chain(value) {\n var result = lodash(value);\n result.__chain__ = true;\n return result;\n }\n\n /**\n * This method invokes `interceptor` and returns `value`. The interceptor\n * is invoked with one argument; (value). The purpose of this method is to\n * \"tap into\" a method chain sequence in order to modify intermediate results.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns `value`.\n * @example\n *\n * _([1, 2, 3])\n * .tap(function(array) {\n * // Mutate input array.\n * array.pop();\n * })\n * .reverse()\n * .value();\n * // => [2, 1]\n */\n function tap(value, interceptor) {\n interceptor(value);\n return value;\n }\n\n /**\n * This method is like `_.tap` except that it returns the result of `interceptor`.\n * The purpose of this method is to \"pass thru\" values replacing intermediate\n * results in a method chain sequence.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Seq\n * @param {*} value The value to provide to `interceptor`.\n * @param {Function} interceptor The function to invoke.\n * @returns {*} Returns the result of `interceptor`.\n * @example\n *\n * _(' abc ')\n * .chain()\n * .trim()\n * .thru(function(value) {\n * return [value];\n * })\n * .value();\n * // => ['abc']\n */\n function thru(value, interceptor) {\n return interceptor(value);\n }\n\n /**\n * This method is the wrapper version of `_.at`.\n *\n * @name at\n * @memberOf _\n * @since 1.0.0\n * @category Seq\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _(object).at(['a[0].b.c', 'a[1]']).value();\n * // => [3, 4]\n */\n var wrapperAt = flatRest(function(paths) {\n var length = paths.length,\n start = length ? paths[0] : 0,\n value = this.__wrapped__,\n interceptor = function(object) { return baseAt(object, paths); };\n\n if (length > 1 || this.__actions__.length ||\n !(value instanceof LazyWrapper) || !isIndex(start)) {\n return this.thru(interceptor);\n }\n value = value.slice(start, +start + (length ? 1 : 0));\n value.__actions__.push({\n 'func': thru,\n 'args': [interceptor],\n 'thisArg': undefined\n });\n return new LodashWrapper(value, this.__chain__).thru(function(array) {\n if (length && !array.length) {\n array.push(undefined);\n }\n return array;\n });\n });\n\n /**\n * Creates a `lodash` wrapper instance with explicit method chain sequences enabled.\n *\n * @name chain\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 40 }\n * ];\n *\n * // A sequence without explicit chaining.\n * _(users).head();\n * // => { 'user': 'barney', 'age': 36 }\n *\n * // A sequence with explicit chaining.\n * _(users)\n * .chain()\n * .head()\n * .pick('user')\n * .value();\n * // => { 'user': 'barney' }\n */\n function wrapperChain() {\n return chain(this);\n }\n\n /**\n * Executes the chain sequence and returns the wrapped result.\n *\n * @name commit\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2];\n * var wrapped = _(array).push(3);\n *\n * console.log(array);\n * // => [1, 2]\n *\n * wrapped = wrapped.commit();\n * console.log(array);\n * // => [1, 2, 3]\n *\n * wrapped.last();\n * // => 3\n *\n * console.log(array);\n * // => [1, 2, 3]\n */\n function wrapperCommit() {\n return new LodashWrapper(this.value(), this.__chain__);\n }\n\n /**\n * Gets the next value on a wrapped object following the\n * [iterator protocol](https://mdn.io/iteration_protocols#iterator).\n *\n * @name next\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the next iterator value.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 1 }\n *\n * wrapped.next();\n * // => { 'done': false, 'value': 2 }\n *\n * wrapped.next();\n * // => { 'done': true, 'value': undefined }\n */\n function wrapperNext() {\n if (this.__values__ === undefined) {\n this.__values__ = toArray(this.value());\n }\n var done = this.__index__ >= this.__values__.length,\n value = done ? undefined : this.__values__[this.__index__++];\n\n return { 'done': done, 'value': value };\n }\n\n /**\n * Enables the wrapper to be iterable.\n *\n * @name Symbol.iterator\n * @memberOf _\n * @since 4.0.0\n * @category Seq\n * @returns {Object} Returns the wrapper object.\n * @example\n *\n * var wrapped = _([1, 2]);\n *\n * wrapped[Symbol.iterator]() === wrapped;\n * // => true\n *\n * Array.from(wrapped);\n * // => [1, 2]\n */\n function wrapperToIterator() {\n return this;\n }\n\n /**\n * Creates a clone of the chain sequence planting `value` as the wrapped value.\n *\n * @name plant\n * @memberOf _\n * @since 3.2.0\n * @category Seq\n * @param {*} value The value to plant.\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var wrapped = _([1, 2]).map(square);\n * var other = wrapped.plant([3, 4]);\n *\n * other.value();\n * // => [9, 16]\n *\n * wrapped.value();\n * // => [1, 4]\n */\n function wrapperPlant(value) {\n var result,\n parent = this;\n\n while (parent instanceof baseLodash) {\n var clone = wrapperClone(parent);\n clone.__index__ = 0;\n clone.__values__ = undefined;\n if (result) {\n previous.__wrapped__ = clone;\n } else {\n result = clone;\n }\n var previous = clone;\n parent = parent.__wrapped__;\n }\n previous.__wrapped__ = value;\n return result;\n }\n\n /**\n * This method is the wrapper version of `_.reverse`.\n *\n * **Note:** This method mutates the wrapped array.\n *\n * @name reverse\n * @memberOf _\n * @since 0.1.0\n * @category Seq\n * @returns {Object} Returns the new `lodash` wrapper instance.\n * @example\n *\n * var array = [1, 2, 3];\n *\n * _(array).reverse().value()\n * // => [3, 2, 1]\n *\n * console.log(array);\n * // => [3, 2, 1]\n */\n function wrapperReverse() {\n var value = this.__wrapped__;\n if (value instanceof LazyWrapper) {\n var wrapped = value;\n if (this.__actions__.length) {\n wrapped = new LazyWrapper(this);\n }\n wrapped = wrapped.reverse();\n wrapped.__actions__.push({\n 'func': thru,\n 'args': [reverse],\n 'thisArg': undefined\n });\n return new LodashWrapper(wrapped, this.__chain__);\n }\n return this.thru(reverse);\n }\n\n /**\n * Executes the chain sequence to resolve the unwrapped value.\n *\n * @name value\n * @memberOf _\n * @since 0.1.0\n * @alias toJSON, valueOf\n * @category Seq\n * @returns {*} Returns the resolved unwrapped value.\n * @example\n *\n * _([1, 2, 3]).value();\n * // => [1, 2, 3]\n */\n function wrapperValue() {\n return baseWrapperValue(this.__wrapped__, this.__actions__);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the number of times the key was returned by `iteratee`. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.countBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': 1, '6': 2 }\n *\n * // The `_.property` iteratee shorthand.\n * _.countBy(['one', 'two', 'three'], 'length');\n * // => { '3': 2, '5': 1 }\n */\n var countBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n ++result[key];\n } else {\n baseAssignValue(result, key, 1);\n }\n });\n\n /**\n * Checks if `predicate` returns truthy for **all** elements of `collection`.\n * Iteration is stopped once `predicate` returns falsey. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * **Note:** This method returns `true` for\n * [empty collections](https://en.wikipedia.org/wiki/Empty_set) because\n * [everything is true](https://en.wikipedia.org/wiki/Vacuous_truth) of\n * elements of empty collections.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if all elements pass the predicate check,\n * else `false`.\n * @example\n *\n * _.every([true, 1, null, 'yes'], Boolean);\n * // => false\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.every(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.every(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.every(users, 'active');\n * // => false\n */\n function every(collection, predicate, guard) {\n var func = isArray(collection) ? arrayEvery : baseEvery;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning an array of all elements\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * **Note:** Unlike `_.remove`, this method returns a new array.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.reject\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false }\n * ];\n *\n * _.filter(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.filter(users, { 'age': 36, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.filter(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.filter(users, 'active');\n * // => objects for ['barney']\n *\n * // Combining several predicates using `_.overEvery` or `_.overSome`.\n * _.filter(users, _.overSome([{ 'age': 36 }, ['age', 40]]));\n * // => objects for ['fred', 'barney']\n */\n function filter(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Iterates over elements of `collection`, returning the first element\n * `predicate` returns truthy for. The predicate is invoked with three\n * arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=0] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': true },\n * { 'user': 'fred', 'age': 40, 'active': false },\n * { 'user': 'pebbles', 'age': 1, 'active': true }\n * ];\n *\n * _.find(users, function(o) { return o.age < 40; });\n * // => object for 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.find(users, { 'age': 1, 'active': true });\n * // => object for 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.find(users, ['active', false]);\n * // => object for 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.find(users, 'active');\n * // => object for 'barney'\n */\n var find = createFind(findIndex);\n\n /**\n * This method is like `_.find` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param {number} [fromIndex=collection.length-1] The index to search from.\n * @returns {*} Returns the matched element, else `undefined`.\n * @example\n *\n * _.findLast([1, 2, 3, 4], function(n) {\n * return n % 2 == 1;\n * });\n * // => 3\n */\n var findLast = createFind(findLastIndex);\n\n /**\n * Creates a flattened array of values by running each element in `collection`\n * thru `iteratee` and flattening the mapped results. The iteratee is invoked\n * with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [n, n];\n * }\n *\n * _.flatMap([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMap(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), 1);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDeep([1, 2], duplicate);\n * // => [1, 1, 2, 2]\n */\n function flatMapDeep(collection, iteratee) {\n return baseFlatten(map(collection, iteratee), INFINITY);\n }\n\n /**\n * This method is like `_.flatMap` except that it recursively flattens the\n * mapped results up to `depth` times.\n *\n * @static\n * @memberOf _\n * @since 4.7.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {number} [depth=1] The maximum recursion depth.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * function duplicate(n) {\n * return [[[n, n]]];\n * }\n *\n * _.flatMapDepth([1, 2], duplicate, 2);\n * // => [[1, 1], [2, 2]]\n */\n function flatMapDepth(collection, iteratee, depth) {\n depth = depth === undefined ? 1 : toInteger(depth);\n return baseFlatten(map(collection, iteratee), depth);\n }\n\n /**\n * Iterates over elements of `collection` and invokes `iteratee` for each element.\n * The iteratee is invoked with three arguments: (value, index|key, collection).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * **Note:** As with other \"Collections\" methods, objects with a \"length\"\n * property are iterated like arrays. To avoid this behavior use `_.forIn`\n * or `_.forOwn` for object iteration.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @alias each\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEachRight\n * @example\n *\n * _.forEach([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `1` then `2`.\n *\n * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forEach(collection, iteratee) {\n var func = isArray(collection) ? arrayEach : baseEach;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forEach` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @alias eachRight\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array|Object} Returns `collection`.\n * @see _.forEach\n * @example\n *\n * _.forEachRight([1, 2], function(value) {\n * console.log(value);\n * });\n * // => Logs `2` then `1`.\n */\n function forEachRight(collection, iteratee) {\n var func = isArray(collection) ? arrayEachRight : baseEachRight;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The order of grouped values\n * is determined by the order they occur in `collection`. The corresponding\n * value of each key is an array of elements responsible for generating the\n * key. The iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * _.groupBy([6.1, 4.2, 6.3], Math.floor);\n * // => { '4': [4.2], '6': [6.1, 6.3] }\n *\n * // The `_.property` iteratee shorthand.\n * _.groupBy(['one', 'two', 'three'], 'length');\n * // => { '3': ['one', 'two'], '5': ['three'] }\n */\n var groupBy = createAggregator(function(result, value, key) {\n if (hasOwnProperty.call(result, key)) {\n result[key].push(value);\n } else {\n baseAssignValue(result, key, [value]);\n }\n });\n\n /**\n * Checks if `value` is in `collection`. If `collection` is a string, it's\n * checked for a substring of `value`, otherwise\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * is used for equality comparisons. If `fromIndex` is negative, it's used as\n * the offset from the end of `collection`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @param {*} value The value to search for.\n * @param {number} [fromIndex=0] The index to search from.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {boolean} Returns `true` if `value` is found, else `false`.\n * @example\n *\n * _.includes([1, 2, 3], 1);\n * // => true\n *\n * _.includes([1, 2, 3], 1, 2);\n * // => false\n *\n * _.includes({ 'a': 1, 'b': 2 }, 1);\n * // => true\n *\n * _.includes('abcd', 'bc');\n * // => true\n */\n function includes(collection, value, fromIndex, guard) {\n collection = isArrayLike(collection) ? collection : values(collection);\n fromIndex = (fromIndex && !guard) ? toInteger(fromIndex) : 0;\n\n var length = collection.length;\n if (fromIndex < 0) {\n fromIndex = nativeMax(length + fromIndex, 0);\n }\n return isString(collection)\n ? (fromIndex <= length && collection.indexOf(value, fromIndex) > -1)\n : (!!length && baseIndexOf(collection, value, fromIndex) > -1);\n }\n\n /**\n * Invokes the method at `path` of each element in `collection`, returning\n * an array of the results of each invoked method. Any additional arguments\n * are provided to each invoked method. If `path` is a function, it's invoked\n * for, and `this` bound to, each element in `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array|Function|string} path The path of the method to invoke or\n * the function invoked per iteration.\n * @param {...*} [args] The arguments to invoke each method with.\n * @returns {Array} Returns the array of results.\n * @example\n *\n * _.invokeMap([[5, 1, 7], [3, 2, 1]], 'sort');\n * // => [[1, 5, 7], [1, 2, 3]]\n *\n * _.invokeMap([123, 456], String.prototype.split, '');\n * // => [['1', '2', '3'], ['4', '5', '6']]\n */\n var invokeMap = baseRest(function(collection, path, args) {\n var index = -1,\n isFunc = typeof path == 'function',\n result = isArrayLike(collection) ? Array(collection.length) : [];\n\n baseEach(collection, function(value) {\n result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args);\n });\n return result;\n });\n\n /**\n * Creates an object composed of keys generated from the results of running\n * each element of `collection` thru `iteratee`. The corresponding value of\n * each key is the last element responsible for generating the key. The\n * iteratee is invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The iteratee to transform keys.\n * @returns {Object} Returns the composed aggregate object.\n * @example\n *\n * var array = [\n * { 'dir': 'left', 'code': 97 },\n * { 'dir': 'right', 'code': 100 }\n * ];\n *\n * _.keyBy(array, function(o) {\n * return String.fromCharCode(o.code);\n * });\n * // => { 'a': { 'dir': 'left', 'code': 97 }, 'd': { 'dir': 'right', 'code': 100 } }\n *\n * _.keyBy(array, 'dir');\n * // => { 'left': { 'dir': 'left', 'code': 97 }, 'right': { 'dir': 'right', 'code': 100 } }\n */\n var keyBy = createAggregator(function(result, value, key) {\n baseAssignValue(result, key, value);\n });\n\n /**\n * Creates an array of values by running each element in `collection` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.every`, `_.filter`, `_.map`, `_.mapValues`, `_.reject`, and `_.some`.\n *\n * The guarded methods are:\n * `ary`, `chunk`, `curry`, `curryRight`, `drop`, `dropRight`, `every`,\n * `fill`, `invert`, `parseInt`, `random`, `range`, `rangeRight`, `repeat`,\n * `sampleSize`, `slice`, `some`, `sortBy`, `split`, `take`, `takeRight`,\n * `template`, `trim`, `trimEnd`, `trimStart`, and `words`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new mapped array.\n * @example\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * _.map([4, 8], square);\n * // => [16, 64]\n *\n * _.map({ 'a': 4, 'b': 8 }, square);\n * // => [16, 64] (iteration order is not guaranteed)\n *\n * var users = [\n * { 'user': 'barney' },\n * { 'user': 'fred' }\n * ];\n *\n * // The `_.property` iteratee shorthand.\n * _.map(users, 'user');\n * // => ['barney', 'fred']\n */\n function map(collection, iteratee) {\n var func = isArray(collection) ? arrayMap : baseMap;\n return func(collection, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.sortBy` except that it allows specifying the sort\n * orders of the iteratees to sort by. If `orders` is unspecified, all values\n * are sorted in ascending order. Otherwise, specify an order of \"desc\" for\n * descending or \"asc\" for ascending sort order of corresponding values.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Array[]|Function[]|Object[]|string[]} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @param {string[]} [orders] The sort orders of `iteratees`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.reduce`.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 34 },\n * { 'user': 'fred', 'age': 40 },\n * { 'user': 'barney', 'age': 36 }\n * ];\n *\n * // Sort by `user` in ascending order and by `age` in descending order.\n * _.orderBy(users, ['user', 'age'], ['asc', 'desc']);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]\n */\n function orderBy(collection, iteratees, orders, guard) {\n if (collection == null) {\n return [];\n }\n if (!isArray(iteratees)) {\n iteratees = iteratees == null ? [] : [iteratees];\n }\n orders = guard ? undefined : orders;\n if (!isArray(orders)) {\n orders = orders == null ? [] : [orders];\n }\n return baseOrderBy(collection, iteratees, orders);\n }\n\n /**\n * Creates an array of elements split into two groups, the first of which\n * contains elements `predicate` returns truthy for, the second of which\n * contains elements `predicate` returns falsey for. The predicate is\n * invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the array of grouped elements.\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true },\n * { 'user': 'pebbles', 'age': 1, 'active': false }\n * ];\n *\n * _.partition(users, function(o) { return o.active; });\n * // => objects for [['fred'], ['barney', 'pebbles']]\n *\n * // The `_.matches` iteratee shorthand.\n * _.partition(users, { 'age': 1, 'active': false });\n * // => objects for [['pebbles'], ['barney', 'fred']]\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.partition(users, ['active', false]);\n * // => objects for [['barney', 'pebbles'], ['fred']]\n *\n * // The `_.property` iteratee shorthand.\n * _.partition(users, 'active');\n * // => objects for [['fred'], ['barney', 'pebbles']]\n */\n var partition = createAggregator(function(result, value, key) {\n result[key ? 0 : 1].push(value);\n }, function() { return [[], []]; });\n\n /**\n * Reduces `collection` to a value which is the accumulated result of running\n * each element in `collection` thru `iteratee`, where each successive\n * invocation is supplied the return value of the previous. If `accumulator`\n * is not given, the first element of `collection` is used as the initial\n * value. The iteratee is invoked with four arguments:\n * (accumulator, value, index|key, collection).\n *\n * Many lodash methods are guarded to work as iteratees for methods like\n * `_.reduce`, `_.reduceRight`, and `_.transform`.\n *\n * The guarded methods are:\n * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`,\n * and `sortBy`\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduceRight\n * @example\n *\n * _.reduce([1, 2], function(sum, n) {\n * return sum + n;\n * }, 0);\n * // => 3\n *\n * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * return result;\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed)\n */\n function reduce(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduce : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEach);\n }\n\n /**\n * This method is like `_.reduce` except that it iterates over elements of\n * `collection` from right to left.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @returns {*} Returns the accumulated value.\n * @see _.reduce\n * @example\n *\n * var array = [[0, 1], [2, 3], [4, 5]];\n *\n * _.reduceRight(array, function(flattened, other) {\n * return flattened.concat(other);\n * }, []);\n * // => [4, 5, 2, 3, 0, 1]\n */\n function reduceRight(collection, iteratee, accumulator) {\n var func = isArray(collection) ? arrayReduceRight : baseReduce,\n initAccum = arguments.length < 3;\n\n return func(collection, getIteratee(iteratee, 4), accumulator, initAccum, baseEachRight);\n }\n\n /**\n * The opposite of `_.filter`; this method returns the elements of `collection`\n * that `predicate` does **not** return truthy for.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n * @see _.filter\n * @example\n *\n * var users = [\n * { 'user': 'barney', 'age': 36, 'active': false },\n * { 'user': 'fred', 'age': 40, 'active': true }\n * ];\n *\n * _.reject(users, function(o) { return !o.active; });\n * // => objects for ['fred']\n *\n * // The `_.matches` iteratee shorthand.\n * _.reject(users, { 'age': 40, 'active': true });\n * // => objects for ['barney']\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.reject(users, ['active', false]);\n * // => objects for ['fred']\n *\n * // The `_.property` iteratee shorthand.\n * _.reject(users, 'active');\n * // => objects for ['barney']\n */\n function reject(collection, predicate) {\n var func = isArray(collection) ? arrayFilter : baseFilter;\n return func(collection, negate(getIteratee(predicate, 3)));\n }\n\n /**\n * Gets a random element from `collection`.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @returns {*} Returns the random element.\n * @example\n *\n * _.sample([1, 2, 3, 4]);\n * // => 2\n */\n function sample(collection) {\n var func = isArray(collection) ? arraySample : baseSample;\n return func(collection);\n }\n\n /**\n * Gets `n` random elements at unique keys from `collection` up to the\n * size of `collection`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Collection\n * @param {Array|Object} collection The collection to sample.\n * @param {number} [n=1] The number of elements to sample.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Array} Returns the random elements.\n * @example\n *\n * _.sampleSize([1, 2, 3], 2);\n * // => [3, 1]\n *\n * _.sampleSize([1, 2, 3], 4);\n * // => [2, 3, 1]\n */\n function sampleSize(collection, n, guard) {\n if ((guard ? isIterateeCall(collection, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n var func = isArray(collection) ? arraySampleSize : baseSampleSize;\n return func(collection, n);\n }\n\n /**\n * Creates an array of shuffled values, using a version of the\n * [Fisher-Yates shuffle](https://en.wikipedia.org/wiki/Fisher-Yates_shuffle).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to shuffle.\n * @returns {Array} Returns the new shuffled array.\n * @example\n *\n * _.shuffle([1, 2, 3, 4]);\n * // => [4, 1, 3, 2]\n */\n function shuffle(collection) {\n var func = isArray(collection) ? arrayShuffle : baseShuffle;\n return func(collection);\n }\n\n /**\n * Gets the size of `collection` by returning its length for array-like\n * values or the number of own enumerable string keyed properties for objects.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object|string} collection The collection to inspect.\n * @returns {number} Returns the collection size.\n * @example\n *\n * _.size([1, 2, 3]);\n * // => 3\n *\n * _.size({ 'a': 1, 'b': 2 });\n * // => 2\n *\n * _.size('pebbles');\n * // => 7\n */\n function size(collection) {\n if (collection == null) {\n return 0;\n }\n if (isArrayLike(collection)) {\n return isString(collection) ? stringSize(collection) : collection.length;\n }\n var tag = getTag(collection);\n if (tag == mapTag || tag == setTag) {\n return collection.size;\n }\n return baseKeys(collection).length;\n }\n\n /**\n * Checks if `predicate` returns truthy for **any** element of `collection`.\n * Iteration is stopped once `predicate` returns truthy. The predicate is\n * invoked with three arguments: (value, index|key, collection).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {boolean} Returns `true` if any element passes the predicate check,\n * else `false`.\n * @example\n *\n * _.some([null, 0, 'yes', false], Boolean);\n * // => true\n *\n * var users = [\n * { 'user': 'barney', 'active': true },\n * { 'user': 'fred', 'active': false }\n * ];\n *\n * // The `_.matches` iteratee shorthand.\n * _.some(users, { 'user': 'barney', 'active': false });\n * // => false\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.some(users, ['active', false]);\n * // => true\n *\n * // The `_.property` iteratee shorthand.\n * _.some(users, 'active');\n * // => true\n */\n function some(collection, predicate, guard) {\n var func = isArray(collection) ? arraySome : baseSome;\n if (guard && isIterateeCall(collection, predicate, guard)) {\n predicate = undefined;\n }\n return func(collection, getIteratee(predicate, 3));\n }\n\n /**\n * Creates an array of elements, sorted in ascending order by the results of\n * running each element in a collection thru each iteratee. This method\n * performs a stable sort, that is, it preserves the original sort order of\n * equal elements. The iteratees are invoked with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Collection\n * @param {Array|Object} collection The collection to iterate over.\n * @param {...(Function|Function[])} [iteratees=[_.identity]]\n * The iteratees to sort by.\n * @returns {Array} Returns the new sorted array.\n * @example\n *\n * var users = [\n * { 'user': 'fred', 'age': 48 },\n * { 'user': 'barney', 'age': 36 },\n * { 'user': 'fred', 'age': 30 },\n * { 'user': 'barney', 'age': 34 }\n * ];\n *\n * _.sortBy(users, [function(o) { return o.user; }]);\n * // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 30]]\n *\n * _.sortBy(users, ['user', 'age']);\n * // => objects for [['barney', 34], ['barney', 36], ['fred', 30], ['fred', 48]]\n */\n var sortBy = baseRest(function(collection, iteratees) {\n if (collection == null) {\n return [];\n }\n var length = iteratees.length;\n if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) {\n iteratees = [];\n } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) {\n iteratees = [iteratees[0]];\n }\n return baseOrderBy(collection, baseFlatten(iteratees, 1), []);\n });\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n var now = ctxNow || function() {\n return root.Date.now();\n };\n\n /*------------------------------------------------------------------------*/\n\n /**\n * The opposite of `_.before`; this method creates a function that invokes\n * `func` once it's called `n` or more times.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {number} n The number of calls before `func` is invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var saves = ['profile', 'settings'];\n *\n * var done = _.after(saves.length, function() {\n * console.log('done saving!');\n * });\n *\n * _.forEach(saves, function(type) {\n * asyncSave({ 'type': type, 'complete': done });\n * });\n * // => Logs 'done saving!' after the two async saves have completed.\n */\n function after(n, func) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n < 1) {\n return func.apply(this, arguments);\n }\n };\n }\n\n /**\n * Creates a function that invokes `func`, with up to `n` arguments,\n * ignoring any additional arguments.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @param {number} [n=func.length] The arity cap.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.ary(parseInt, 1));\n * // => [6, 8, 10]\n */\n function ary(func, n, guard) {\n n = guard ? undefined : n;\n n = (func && n == null) ? func.length : n;\n return createWrap(func, WRAP_ARY_FLAG, undefined, undefined, undefined, undefined, n);\n }\n\n /**\n * Creates a function that invokes `func`, with the `this` binding and arguments\n * of the created function, while it's called less than `n` times. Subsequent\n * calls to the created function return the result of the last `func` invocation.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {number} n The number of calls at which `func` is no longer invoked.\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * jQuery(element).on('click', _.before(5, addContactToList));\n * // => Allows adding up to 4 contacts to the list.\n */\n function before(n, func) {\n var result;\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n n = toInteger(n);\n return function() {\n if (--n > 0) {\n result = func.apply(this, arguments);\n }\n if (n <= 1) {\n func = undefined;\n }\n return result;\n };\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of `thisArg`\n * and `partials` prepended to the arguments it receives.\n *\n * The `_.bind.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for partially applied arguments.\n *\n * **Note:** Unlike native `Function#bind`, this method doesn't set the \"length\"\n * property of bound functions.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * function greet(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n *\n * var object = { 'user': 'fred' };\n *\n * var bound = _.bind(greet, object, 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bind(greet, object, _, '!');\n * bound('hi');\n * // => 'hi fred!'\n */\n var bind = baseRest(function(func, thisArg, partials) {\n var bitmask = WRAP_BIND_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bind));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(func, bitmask, thisArg, partials, holders);\n });\n\n /**\n * Creates a function that invokes the method at `object[key]` with `partials`\n * prepended to the arguments it receives.\n *\n * This method differs from `_.bind` by allowing bound functions to reference\n * methods that may be redefined or don't yet exist. See\n * [Peter Michaux's article](http://peter.michaux.ca/articles/lazy-function-definition-pattern)\n * for more details.\n *\n * The `_.bindKey.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Function\n * @param {Object} object The object to invoke the method on.\n * @param {string} key The key of the method.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new bound function.\n * @example\n *\n * var object = {\n * 'user': 'fred',\n * 'greet': function(greeting, punctuation) {\n * return greeting + ' ' + this.user + punctuation;\n * }\n * };\n *\n * var bound = _.bindKey(object, 'greet', 'hi');\n * bound('!');\n * // => 'hi fred!'\n *\n * object.greet = function(greeting, punctuation) {\n * return greeting + 'ya ' + this.user + punctuation;\n * };\n *\n * bound('!');\n * // => 'hiya fred!'\n *\n * // Bound with placeholders.\n * var bound = _.bindKey(object, 'greet', _, '!');\n * bound('hi');\n * // => 'hiya fred!'\n */\n var bindKey = baseRest(function(object, key, partials) {\n var bitmask = WRAP_BIND_FLAG | WRAP_BIND_KEY_FLAG;\n if (partials.length) {\n var holders = replaceHolders(partials, getHolder(bindKey));\n bitmask |= WRAP_PARTIAL_FLAG;\n }\n return createWrap(key, bitmask, object, partials, holders);\n });\n\n /**\n * Creates a function that accepts arguments of `func` and either invokes\n * `func` returning its result, if at least `arity` number of arguments have\n * been provided, or returns a function that accepts the remaining `func`\n * arguments, and so on. The arity of `func` may be specified if `func.length`\n * is not sufficient.\n *\n * The `_.curry.placeholder` value, which defaults to `_` in monolithic builds,\n * may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curry(abc);\n *\n * curried(1)(2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2)(3);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(1)(_, 3)(2);\n * // => [1, 2, 3]\n */\n function curry(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curry.placeholder;\n return result;\n }\n\n /**\n * This method is like `_.curry` except that arguments are applied to `func`\n * in the manner of `_.partialRight` instead of `_.partial`.\n *\n * The `_.curryRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for provided arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of curried functions.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to curry.\n * @param {number} [arity=func.length] The arity of `func`.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the new curried function.\n * @example\n *\n * var abc = function(a, b, c) {\n * return [a, b, c];\n * };\n *\n * var curried = _.curryRight(abc);\n *\n * curried(3)(2)(1);\n * // => [1, 2, 3]\n *\n * curried(2, 3)(1);\n * // => [1, 2, 3]\n *\n * curried(1, 2, 3);\n * // => [1, 2, 3]\n *\n * // Curried with placeholders.\n * curried(3)(1, _)(2);\n * // => [1, 2, 3]\n */\n function curryRight(func, arity, guard) {\n arity = guard ? undefined : arity;\n var result = createWrap(func, WRAP_CURRY_RIGHT_FLAG, undefined, undefined, undefined, undefined, undefined, arity);\n result.placeholder = curryRight.placeholder;\n return result;\n }\n\n /**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n function debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n }\n\n /**\n * Defers invoking the `func` until the current call stack has cleared. Any\n * additional arguments are provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to defer.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.defer(function(text) {\n * console.log(text);\n * }, 'deferred');\n * // => Logs 'deferred' after one millisecond.\n */\n var defer = baseRest(function(func, args) {\n return baseDelay(func, 1, args);\n });\n\n /**\n * Invokes `func` after `wait` milliseconds. Any additional arguments are\n * provided to `func` when it's invoked.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to delay.\n * @param {number} wait The number of milliseconds to delay invocation.\n * @param {...*} [args] The arguments to invoke `func` with.\n * @returns {number} Returns the timer id.\n * @example\n *\n * _.delay(function(text) {\n * console.log(text);\n * }, 1000, 'later');\n * // => Logs 'later' after one second.\n */\n var delay = baseRest(function(func, wait, args) {\n return baseDelay(func, toNumber(wait) || 0, args);\n });\n\n /**\n * Creates a function that invokes `func` with arguments reversed.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to flip arguments for.\n * @returns {Function} Returns the new flipped function.\n * @example\n *\n * var flipped = _.flip(function() {\n * return _.toArray(arguments);\n * });\n *\n * flipped('a', 'b', 'c', 'd');\n * // => ['d', 'c', 'b', 'a']\n */\n function flip(func) {\n return createWrap(func, WRAP_FLIP_FLAG);\n }\n\n /**\n * Creates a function that memoizes the result of `func`. If `resolver` is\n * provided, it determines the cache key for storing the result based on the\n * arguments provided to the memoized function. By default, the first argument\n * provided to the memoized function is used as the map cache key. The `func`\n * is invoked with the `this` binding of the memoized function.\n *\n * **Note:** The cache is exposed as the `cache` property on the memoized\n * function. Its creation may be customized by replacing the `_.memoize.Cache`\n * constructor with one whose instances implement the\n * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object)\n * method interface of `clear`, `delete`, `get`, `has`, and `set`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to have its output memoized.\n * @param {Function} [resolver] The function to resolve the cache key.\n * @returns {Function} Returns the new memoized function.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n * var other = { 'c': 3, 'd': 4 };\n *\n * var values = _.memoize(_.values);\n * values(object);\n * // => [1, 2]\n *\n * values(other);\n * // => [3, 4]\n *\n * object.a = 2;\n * values(object);\n * // => [1, 2]\n *\n * // Modify the result cache.\n * values.cache.set(object, ['a', 'b']);\n * values(object);\n * // => ['a', 'b']\n *\n * // Replace `_.memoize.Cache`.\n * _.memoize.Cache = WeakMap;\n */\n function memoize(func, resolver) {\n if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n var memoized = function() {\n var args = arguments,\n key = resolver ? resolver.apply(this, args) : args[0],\n cache = memoized.cache;\n\n if (cache.has(key)) {\n return cache.get(key);\n }\n var result = func.apply(this, args);\n memoized.cache = cache.set(key, result) || cache;\n return result;\n };\n memoized.cache = new (memoize.Cache || MapCache);\n return memoized;\n }\n\n // Expose `MapCache`.\n memoize.Cache = MapCache;\n\n /**\n * Creates a function that negates the result of the predicate `func`. The\n * `func` predicate is invoked with the `this` binding and arguments of the\n * created function.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} predicate The predicate to negate.\n * @returns {Function} Returns the new negated function.\n * @example\n *\n * function isEven(n) {\n * return n % 2 == 0;\n * }\n *\n * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven));\n * // => [1, 3, 5]\n */\n function negate(predicate) {\n if (typeof predicate != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n return function() {\n var args = arguments;\n switch (args.length) {\n case 0: return !predicate.call(this);\n case 1: return !predicate.call(this, args[0]);\n case 2: return !predicate.call(this, args[0], args[1]);\n case 3: return !predicate.call(this, args[0], args[1], args[2]);\n }\n return !predicate.apply(this, args);\n };\n }\n\n /**\n * Creates a function that is restricted to invoking `func` once. Repeat calls\n * to the function return the value of the first invocation. The `func` is\n * invoked with the `this` binding and arguments of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new restricted function.\n * @example\n *\n * var initialize = _.once(createApplication);\n * initialize();\n * initialize();\n * // => `createApplication` is invoked once\n */\n function once(func) {\n return before(2, func);\n }\n\n /**\n * Creates a function that invokes `func` with its arguments transformed.\n *\n * @static\n * @since 4.0.0\n * @memberOf _\n * @category Function\n * @param {Function} func The function to wrap.\n * @param {...(Function|Function[])} [transforms=[_.identity]]\n * The argument transforms.\n * @returns {Function} Returns the new function.\n * @example\n *\n * function doubled(n) {\n * return n * 2;\n * }\n *\n * function square(n) {\n * return n * n;\n * }\n *\n * var func = _.overArgs(function(x, y) {\n * return [x, y];\n * }, [square, doubled]);\n *\n * func(9, 3);\n * // => [81, 6]\n *\n * func(10, 5);\n * // => [100, 10]\n */\n var overArgs = castRest(function(func, transforms) {\n transforms = (transforms.length == 1 && isArray(transforms[0]))\n ? arrayMap(transforms[0], baseUnary(getIteratee()))\n : arrayMap(baseFlatten(transforms, 1), baseUnary(getIteratee()));\n\n var funcsLength = transforms.length;\n return baseRest(function(args) {\n var index = -1,\n length = nativeMin(args.length, funcsLength);\n\n while (++index < length) {\n args[index] = transforms[index].call(this, args[index]);\n }\n return apply(func, this, args);\n });\n });\n\n /**\n * Creates a function that invokes `func` with `partials` prepended to the\n * arguments it receives. This method is like `_.bind` except it does **not**\n * alter the `this` binding.\n *\n * The `_.partial.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 0.2.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var sayHelloTo = _.partial(greet, 'hello');\n * sayHelloTo('fred');\n * // => 'hello fred'\n *\n * // Partially applied with placeholders.\n * var greetFred = _.partial(greet, _, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n */\n var partial = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partial));\n return createWrap(func, WRAP_PARTIAL_FLAG, undefined, partials, holders);\n });\n\n /**\n * This method is like `_.partial` except that partially applied arguments\n * are appended to the arguments it receives.\n *\n * The `_.partialRight.placeholder` value, which defaults to `_` in monolithic\n * builds, may be used as a placeholder for partially applied arguments.\n *\n * **Note:** This method doesn't set the \"length\" property of partially\n * applied functions.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Function\n * @param {Function} func The function to partially apply arguments to.\n * @param {...*} [partials] The arguments to be partially applied.\n * @returns {Function} Returns the new partially applied function.\n * @example\n *\n * function greet(greeting, name) {\n * return greeting + ' ' + name;\n * }\n *\n * var greetFred = _.partialRight(greet, 'fred');\n * greetFred('hi');\n * // => 'hi fred'\n *\n * // Partially applied with placeholders.\n * var sayHelloTo = _.partialRight(greet, 'hello', _);\n * sayHelloTo('fred');\n * // => 'hello fred'\n */\n var partialRight = baseRest(function(func, partials) {\n var holders = replaceHolders(partials, getHolder(partialRight));\n return createWrap(func, WRAP_PARTIAL_RIGHT_FLAG, undefined, partials, holders);\n });\n\n /**\n * Creates a function that invokes `func` with arguments arranged according\n * to the specified `indexes` where the argument value at the first index is\n * provided as the first argument, the argument value at the second index is\n * provided as the second argument, and so on.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Function\n * @param {Function} func The function to rearrange arguments for.\n * @param {...(number|number[])} indexes The arranged argument indexes.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var rearged = _.rearg(function(a, b, c) {\n * return [a, b, c];\n * }, [2, 0, 1]);\n *\n * rearged('b', 'c', 'a')\n * // => ['a', 'b', 'c']\n */\n var rearg = flatRest(function(func, indexes) {\n return createWrap(func, WRAP_REARG_FLAG, undefined, undefined, undefined, indexes);\n });\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as\n * an array.\n *\n * **Note:** This method is based on the\n * [rest parameter](https://mdn.io/rest_parameters).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.rest(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\n function rest(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start === undefined ? start : toInteger(start);\n return baseRest(func, start);\n }\n\n /**\n * Creates a function that invokes `func` with the `this` binding of the\n * create function and an array of arguments much like\n * [`Function#apply`](http://www.ecma-international.org/ecma-262/7.0/#sec-function.prototype.apply).\n *\n * **Note:** This method is based on the\n * [spread operator](https://mdn.io/spread_operator).\n *\n * @static\n * @memberOf _\n * @since 3.2.0\n * @category Function\n * @param {Function} func The function to spread arguments over.\n * @param {number} [start=0] The start position of the spread.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.spread(function(who, what) {\n * return who + ' says ' + what;\n * });\n *\n * say(['fred', 'hello']);\n * // => 'fred says hello'\n *\n * var numbers = Promise.all([\n * Promise.resolve(40),\n * Promise.resolve(36)\n * ]);\n *\n * numbers.then(_.spread(function(x, y) {\n * return x + y;\n * }));\n * // => a Promise of 76\n */\n function spread(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = start == null ? 0 : nativeMax(toInteger(start), 0);\n return baseRest(function(args) {\n var array = args[start],\n otherArgs = castSlice(args, 0, start);\n\n if (array) {\n arrayPush(otherArgs, array);\n }\n return apply(func, this, otherArgs);\n });\n }\n\n /**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\n function throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n }\n\n /**\n * Creates a function that accepts up to one argument, ignoring any\n * additional arguments.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Function\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n * @example\n *\n * _.map(['6', '8', '10'], _.unary(parseInt));\n * // => [6, 8, 10]\n */\n function unary(func) {\n return ary(func, 1);\n }\n\n /**\n * Creates a function that provides `value` to `wrapper` as its first\n * argument. Any additional arguments provided to the function are appended\n * to those provided to the `wrapper`. The wrapper is invoked with the `this`\n * binding of the created function.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {*} value The value to wrap.\n * @param {Function} [wrapper=identity] The wrapper function.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var p = _.wrap(_.escape, function(func, text) {\n * return '

    ' + func(text) + '

    ';\n * });\n *\n * p('fred, barney, & pebbles');\n * // => '

    fred, barney, & pebbles

    '\n */\n function wrap(value, wrapper) {\n return partial(castFunction(wrapper), value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Casts `value` as an array if it's not one.\n *\n * @static\n * @memberOf _\n * @since 4.4.0\n * @category Lang\n * @param {*} value The value to inspect.\n * @returns {Array} Returns the cast array.\n * @example\n *\n * _.castArray(1);\n * // => [1]\n *\n * _.castArray({ 'a': 1 });\n * // => [{ 'a': 1 }]\n *\n * _.castArray('abc');\n * // => ['abc']\n *\n * _.castArray(null);\n * // => [null]\n *\n * _.castArray(undefined);\n * // => [undefined]\n *\n * _.castArray();\n * // => []\n *\n * var array = [1, 2, 3];\n * console.log(_.castArray(array) === array);\n * // => true\n */\n function castArray() {\n if (!arguments.length) {\n return [];\n }\n var value = arguments[0];\n return isArray(value) ? value : [value];\n }\n\n /**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\n function clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.clone` except that it accepts `customizer` which\n * is invoked to produce the cloned value. If `customizer` returns `undefined`,\n * cloning is handled by the method instead. The `customizer` is invoked with\n * up to four arguments; (value [, index|key, object, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeepWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(false);\n * }\n * }\n *\n * var el = _.cloneWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 0\n */\n function cloneWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\n function cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n }\n\n /**\n * This method is like `_.cloneWith` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @param {Function} [customizer] The function to customize cloning.\n * @returns {*} Returns the deep cloned value.\n * @see _.cloneWith\n * @example\n *\n * function customizer(value) {\n * if (_.isElement(value)) {\n * return value.cloneNode(true);\n * }\n * }\n *\n * var el = _.cloneDeepWith(document.body, customizer);\n *\n * console.log(el === document.body);\n * // => false\n * console.log(el.nodeName);\n * // => 'BODY'\n * console.log(el.childNodes.length);\n * // => 20\n */\n function cloneDeepWith(value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG, customizer);\n }\n\n /**\n * Checks if `object` conforms to `source` by invoking the predicate\n * properties of `source` with the corresponding property values of `object`.\n *\n * **Note:** This method is equivalent to `_.conforms` when `source` is\n * partially applied.\n *\n * @static\n * @memberOf _\n * @since 4.14.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property predicates to conform to.\n * @returns {boolean} Returns `true` if `object` conforms, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 1; } });\n * // => true\n *\n * _.conformsTo(object, { 'b': function(n) { return n > 2; } });\n * // => false\n */\n function conformsTo(object, source) {\n return source == null || baseConformsTo(object, source, keys(source));\n }\n\n /**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\n function eq(value, other) {\n return value === other || (value !== value && other !== other);\n }\n\n /**\n * Checks if `value` is greater than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than `other`,\n * else `false`.\n * @see _.lt\n * @example\n *\n * _.gt(3, 1);\n * // => true\n *\n * _.gt(3, 3);\n * // => false\n *\n * _.gt(1, 3);\n * // => false\n */\n var gt = createRelationalOperation(baseGt);\n\n /**\n * Checks if `value` is greater than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is greater than or equal to\n * `other`, else `false`.\n * @see _.lte\n * @example\n *\n * _.gte(3, 1);\n * // => true\n *\n * _.gte(3, 3);\n * // => true\n *\n * _.gte(1, 3);\n * // => false\n */\n var gte = createRelationalOperation(function(value, other) {\n return value >= other;\n });\n\n /**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\n var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n };\n\n /**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\n var isArray = Array.isArray;\n\n /**\n * Checks if `value` is classified as an `ArrayBuffer` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array buffer, else `false`.\n * @example\n *\n * _.isArrayBuffer(new ArrayBuffer(2));\n * // => true\n *\n * _.isArrayBuffer(new Array(2));\n * // => false\n */\n var isArrayBuffer = nodeIsArrayBuffer ? baseUnary(nodeIsArrayBuffer) : baseIsArrayBuffer;\n\n /**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\n function isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n }\n\n /**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\n function isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n }\n\n /**\n * Checks if `value` is classified as a boolean primitive or object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a boolean, else `false`.\n * @example\n *\n * _.isBoolean(false);\n * // => true\n *\n * _.isBoolean(null);\n * // => false\n */\n function isBoolean(value) {\n return value === true || value === false ||\n (isObjectLike(value) && baseGetTag(value) == boolTag);\n }\n\n /**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\n var isBuffer = nativeIsBuffer || stubFalse;\n\n /**\n * Checks if `value` is classified as a `Date` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a date object, else `false`.\n * @example\n *\n * _.isDate(new Date);\n * // => true\n *\n * _.isDate('Mon April 23 2012');\n * // => false\n */\n var isDate = nodeIsDate ? baseUnary(nodeIsDate) : baseIsDate;\n\n /**\n * Checks if `value` is likely a DOM element.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a DOM element, else `false`.\n * @example\n *\n * _.isElement(document.body);\n * // => true\n *\n * _.isElement('');\n * // => false\n */\n function isElement(value) {\n return isObjectLike(value) && value.nodeType === 1 && !isPlainObject(value);\n }\n\n /**\n * Checks if `value` is an empty object, collection, map, or set.\n *\n * Objects are considered empty if they have no own enumerable string keyed\n * properties.\n *\n * Array-like values such as `arguments` objects, arrays, buffers, strings, or\n * jQuery-like collections are considered empty if they have a `length` of `0`.\n * Similarly, maps and sets are considered empty if they have a `size` of `0`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is empty, else `false`.\n * @example\n *\n * _.isEmpty(null);\n * // => true\n *\n * _.isEmpty(true);\n * // => true\n *\n * _.isEmpty(1);\n * // => true\n *\n * _.isEmpty([1, 2, 3]);\n * // => false\n *\n * _.isEmpty({ 'a': 1 });\n * // => false\n */\n function isEmpty(value) {\n if (value == null) {\n return true;\n }\n if (isArrayLike(value) &&\n (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' ||\n isBuffer(value) || isTypedArray(value) || isArguments(value))) {\n return !value.length;\n }\n var tag = getTag(value);\n if (tag == mapTag || tag == setTag) {\n return !value.size;\n }\n if (isPrototype(value)) {\n return !baseKeys(value).length;\n }\n for (var key in value) {\n if (hasOwnProperty.call(value, key)) {\n return false;\n }\n }\n return true;\n }\n\n /**\n * Performs a deep comparison between two values to determine if they are\n * equivalent.\n *\n * **Note:** This method supports comparing arrays, array buffers, booleans,\n * date objects, error objects, maps, numbers, `Object` objects, regexes,\n * sets, strings, symbols, and typed arrays. `Object` objects are compared\n * by their own, not inherited, enumerable properties. Functions and DOM\n * nodes are compared by strict equality, i.e. `===`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.isEqual(object, other);\n * // => true\n *\n * object === other;\n * // => false\n */\n function isEqual(value, other) {\n return baseIsEqual(value, other);\n }\n\n /**\n * This method is like `_.isEqual` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with up to\n * six arguments: (objValue, othValue [, index|key, object, other, stack]).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, othValue) {\n * if (isGreeting(objValue) && isGreeting(othValue)) {\n * return true;\n * }\n * }\n *\n * var array = ['hello', 'goodbye'];\n * var other = ['hi', 'goodbye'];\n *\n * _.isEqualWith(array, other, customizer);\n * // => true\n */\n function isEqualWith(value, other, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n var result = customizer ? customizer(value, other) : undefined;\n return result === undefined ? baseIsEqual(value, other, undefined, customizer) : !!result;\n }\n\n /**\n * Checks if `value` is an `Error`, `EvalError`, `RangeError`, `ReferenceError`,\n * `SyntaxError`, `TypeError`, or `URIError` object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an error object, else `false`.\n * @example\n *\n * _.isError(new Error);\n * // => true\n *\n * _.isError(Error);\n * // => false\n */\n function isError(value) {\n if (!isObjectLike(value)) {\n return false;\n }\n var tag = baseGetTag(value);\n return tag == errorTag || tag == domExcTag ||\n (typeof value.message == 'string' && typeof value.name == 'string' && !isPlainObject(value));\n }\n\n /**\n * Checks if `value` is a finite primitive number.\n *\n * **Note:** This method is based on\n * [`Number.isFinite`](https://mdn.io/Number/isFinite).\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a finite number, else `false`.\n * @example\n *\n * _.isFinite(3);\n * // => true\n *\n * _.isFinite(Number.MIN_VALUE);\n * // => true\n *\n * _.isFinite(Infinity);\n * // => false\n *\n * _.isFinite('3');\n * // => false\n */\n function isFinite(value) {\n return typeof value == 'number' && nativeIsFinite(value);\n }\n\n /**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\n function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 9 which returns 'object' for typed arrays and other constructors.\n var tag = baseGetTag(value);\n return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag;\n }\n\n /**\n * Checks if `value` is an integer.\n *\n * **Note:** This method is based on\n * [`Number.isInteger`](https://mdn.io/Number/isInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an integer, else `false`.\n * @example\n *\n * _.isInteger(3);\n * // => true\n *\n * _.isInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isInteger(Infinity);\n * // => false\n *\n * _.isInteger('3');\n * // => false\n */\n function isInteger(value) {\n return typeof value == 'number' && value == toInteger(value);\n }\n\n /**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\n function isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\n function isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n }\n\n /**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\n function isObjectLike(value) {\n return value != null && typeof value == 'object';\n }\n\n /**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\n var isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\n /**\n * Performs a partial deep comparison between `object` and `source` to\n * determine if `object` contains equivalent property values.\n *\n * **Note:** This method is equivalent to `_.matches` when `source` is\n * partially applied.\n *\n * Partial comparisons will match empty array and empty object `source`\n * values against any array or object value, respectively. See `_.isEqual`\n * for a list of supported value comparisons.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * var object = { 'a': 1, 'b': 2 };\n *\n * _.isMatch(object, { 'b': 2 });\n * // => true\n *\n * _.isMatch(object, { 'b': 1 });\n * // => false\n */\n function isMatch(object, source) {\n return object === source || baseIsMatch(object, source, getMatchData(source));\n }\n\n /**\n * This method is like `_.isMatch` except that it accepts `customizer` which\n * is invoked to compare values. If `customizer` returns `undefined`, comparisons\n * are handled by the method instead. The `customizer` is invoked with five\n * arguments: (objValue, srcValue, index|key, object, source).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {Object} object The object to inspect.\n * @param {Object} source The object of property values to match.\n * @param {Function} [customizer] The function to customize comparisons.\n * @returns {boolean} Returns `true` if `object` is a match, else `false`.\n * @example\n *\n * function isGreeting(value) {\n * return /^h(?:i|ello)$/.test(value);\n * }\n *\n * function customizer(objValue, srcValue) {\n * if (isGreeting(objValue) && isGreeting(srcValue)) {\n * return true;\n * }\n * }\n *\n * var object = { 'greeting': 'hello' };\n * var source = { 'greeting': 'hi' };\n *\n * _.isMatchWith(object, source, customizer);\n * // => true\n */\n function isMatchWith(object, source, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return baseIsMatch(object, source, getMatchData(source), customizer);\n }\n\n /**\n * Checks if `value` is `NaN`.\n *\n * **Note:** This method is based on\n * [`Number.isNaN`](https://mdn.io/Number/isNaN) and is not the same as\n * global [`isNaN`](https://mdn.io/isNaN) which returns `true` for\n * `undefined` and other non-number values.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `NaN`, else `false`.\n * @example\n *\n * _.isNaN(NaN);\n * // => true\n *\n * _.isNaN(new Number(NaN));\n * // => true\n *\n * isNaN(undefined);\n * // => true\n *\n * _.isNaN(undefined);\n * // => false\n */\n function isNaN(value) {\n // An `NaN` primitive is the only value that is not equal to itself.\n // Perform the `toStringTag` check first to avoid errors with some\n // ActiveX objects in IE.\n return isNumber(value) && value != +value;\n }\n\n /**\n * Checks if `value` is a pristine native function.\n *\n * **Note:** This method can't reliably detect native functions in the presence\n * of the core-js package because core-js circumvents this kind of detection.\n * Despite multiple requests, the core-js maintainer has made it clear: any\n * attempt to fix the detection will be obstructed. As a result, we're left\n * with little choice but to throw an error. Unfortunately, this also affects\n * packages, like [babel-polyfill](https://www.npmjs.com/package/babel-polyfill),\n * which rely on core-js.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\n function isNative(value) {\n if (isMaskable(value)) {\n throw new Error(CORE_ERROR_TEXT);\n }\n return baseIsNative(value);\n }\n\n /**\n * Checks if `value` is `null`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `null`, else `false`.\n * @example\n *\n * _.isNull(null);\n * // => true\n *\n * _.isNull(void 0);\n * // => false\n */\n function isNull(value) {\n return value === null;\n }\n\n /**\n * Checks if `value` is `null` or `undefined`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is nullish, else `false`.\n * @example\n *\n * _.isNil(null);\n * // => true\n *\n * _.isNil(void 0);\n * // => true\n *\n * _.isNil(NaN);\n * // => false\n */\n function isNil(value) {\n return value == null;\n }\n\n /**\n * Checks if `value` is classified as a `Number` primitive or object.\n *\n * **Note:** To exclude `Infinity`, `-Infinity`, and `NaN`, which are\n * classified as numbers, use the `_.isFinite` method.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a number, else `false`.\n * @example\n *\n * _.isNumber(3);\n * // => true\n *\n * _.isNumber(Number.MIN_VALUE);\n * // => true\n *\n * _.isNumber(Infinity);\n * // => true\n *\n * _.isNumber('3');\n * // => false\n */\n function isNumber(value) {\n return typeof value == 'number' ||\n (isObjectLike(value) && baseGetTag(value) == numberTag);\n }\n\n /**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\n function isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n }\n\n /**\n * Checks if `value` is classified as a `RegExp` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a regexp, else `false`.\n * @example\n *\n * _.isRegExp(/abc/);\n * // => true\n *\n * _.isRegExp('/abc/');\n * // => false\n */\n var isRegExp = nodeIsRegExp ? baseUnary(nodeIsRegExp) : baseIsRegExp;\n\n /**\n * Checks if `value` is a safe integer. An integer is safe if it's an IEEE-754\n * double precision number which isn't the result of a rounded unsafe integer.\n *\n * **Note:** This method is based on\n * [`Number.isSafeInteger`](https://mdn.io/Number/isSafeInteger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a safe integer, else `false`.\n * @example\n *\n * _.isSafeInteger(3);\n * // => true\n *\n * _.isSafeInteger(Number.MIN_VALUE);\n * // => false\n *\n * _.isSafeInteger(Infinity);\n * // => false\n *\n * _.isSafeInteger('3');\n * // => false\n */\n function isSafeInteger(value) {\n return isInteger(value) && value >= -MAX_SAFE_INTEGER && value <= MAX_SAFE_INTEGER;\n }\n\n /**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\n var isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\n /**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\n function isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n }\n\n /**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n function isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n }\n\n /**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\n var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\n /**\n * Checks if `value` is `undefined`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is `undefined`, else `false`.\n * @example\n *\n * _.isUndefined(void 0);\n * // => true\n *\n * _.isUndefined(null);\n * // => false\n */\n function isUndefined(value) {\n return value === undefined;\n }\n\n /**\n * Checks if `value` is classified as a `WeakMap` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak map, else `false`.\n * @example\n *\n * _.isWeakMap(new WeakMap);\n * // => true\n *\n * _.isWeakMap(new Map);\n * // => false\n */\n function isWeakMap(value) {\n return isObjectLike(value) && getTag(value) == weakMapTag;\n }\n\n /**\n * Checks if `value` is classified as a `WeakSet` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a weak set, else `false`.\n * @example\n *\n * _.isWeakSet(new WeakSet);\n * // => true\n *\n * _.isWeakSet(new Set);\n * // => false\n */\n function isWeakSet(value) {\n return isObjectLike(value) && baseGetTag(value) == weakSetTag;\n }\n\n /**\n * Checks if `value` is less than `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than `other`,\n * else `false`.\n * @see _.gt\n * @example\n *\n * _.lt(1, 3);\n * // => true\n *\n * _.lt(3, 3);\n * // => false\n *\n * _.lt(3, 1);\n * // => false\n */\n var lt = createRelationalOperation(baseLt);\n\n /**\n * Checks if `value` is less than or equal to `other`.\n *\n * @static\n * @memberOf _\n * @since 3.9.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if `value` is less than or equal to\n * `other`, else `false`.\n * @see _.gte\n * @example\n *\n * _.lte(1, 3);\n * // => true\n *\n * _.lte(3, 3);\n * // => true\n *\n * _.lte(3, 1);\n * // => false\n */\n var lte = createRelationalOperation(function(value, other) {\n return value <= other;\n });\n\n /**\n * Converts `value` to an array.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Array} Returns the converted array.\n * @example\n *\n * _.toArray({ 'a': 1, 'b': 2 });\n * // => [1, 2]\n *\n * _.toArray('abc');\n * // => ['a', 'b', 'c']\n *\n * _.toArray(1);\n * // => []\n *\n * _.toArray(null);\n * // => []\n */\n function toArray(value) {\n if (!value) {\n return [];\n }\n if (isArrayLike(value)) {\n return isString(value) ? stringToArray(value) : copyArray(value);\n }\n if (symIterator && value[symIterator]) {\n return iteratorToArray(value[symIterator]());\n }\n var tag = getTag(value),\n func = tag == mapTag ? mapToArray : (tag == setTag ? setToArray : values);\n\n return func(value);\n }\n\n /**\n * Converts `value` to a finite number.\n *\n * @static\n * @memberOf _\n * @since 4.12.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted number.\n * @example\n *\n * _.toFinite(3.2);\n * // => 3.2\n *\n * _.toFinite(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toFinite(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toFinite('3.2');\n * // => 3.2\n */\n function toFinite(value) {\n if (!value) {\n return value === 0 ? value : 0;\n }\n value = toNumber(value);\n if (value === INFINITY || value === -INFINITY) {\n var sign = (value < 0 ? -1 : 1);\n return sign * MAX_INTEGER;\n }\n return value === value ? value : 0;\n }\n\n /**\n * Converts `value` to an integer.\n *\n * **Note:** This method is loosely based on\n * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toInteger(3.2);\n * // => 3\n *\n * _.toInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toInteger(Infinity);\n * // => 1.7976931348623157e+308\n *\n * _.toInteger('3.2');\n * // => 3\n */\n function toInteger(value) {\n var result = toFinite(value),\n remainder = result % 1;\n\n return result === result ? (remainder ? result - remainder : result) : 0;\n }\n\n /**\n * Converts `value` to an integer suitable for use as the length of an\n * array-like object.\n *\n * **Note:** This method is based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toLength(3.2);\n * // => 3\n *\n * _.toLength(Number.MIN_VALUE);\n * // => 0\n *\n * _.toLength(Infinity);\n * // => 4294967295\n *\n * _.toLength('3.2');\n * // => 3\n */\n function toLength(value) {\n return value ? baseClamp(toInteger(value), 0, MAX_ARRAY_LENGTH) : 0;\n }\n\n /**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n function toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n }\n\n /**\n * Converts `value` to a plain object flattening inherited enumerable string\n * keyed properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\n function toPlainObject(value) {\n return copyObject(value, keysIn(value));\n }\n\n /**\n * Converts `value` to a safe integer. A safe integer can be compared and\n * represented correctly.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.toSafeInteger(3.2);\n * // => 3\n *\n * _.toSafeInteger(Number.MIN_VALUE);\n * // => 0\n *\n * _.toSafeInteger(Infinity);\n * // => 9007199254740991\n *\n * _.toSafeInteger('3.2');\n * // => 3\n */\n function toSafeInteger(value) {\n return value\n ? baseClamp(toInteger(value), -MAX_SAFE_INTEGER, MAX_SAFE_INTEGER)\n : (value === 0 ? value : 0);\n }\n\n /**\n * Converts `value` to a string. An empty string is returned for `null`\n * and `undefined` values. The sign of `-0` is preserved.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.toString(null);\n * // => ''\n *\n * _.toString(-0);\n * // => '-0'\n *\n * _.toString([1, 2, 3]);\n * // => '1,2,3'\n */\n function toString(value) {\n return value == null ? '' : baseToString(value);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Assigns own enumerable string keyed properties of source objects to the\n * destination object. Source objects are applied from left to right.\n * Subsequent sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object` and is loosely based on\n * [`Object.assign`](https://mdn.io/Object/assign).\n *\n * @static\n * @memberOf _\n * @since 0.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assignIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assign({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'c': 3 }\n */\n var assign = createAssigner(function(object, source) {\n if (isPrototype(source) || isArrayLike(source)) {\n copyObject(source, keys(source), object);\n return;\n }\n for (var key in source) {\n if (hasOwnProperty.call(source, key)) {\n assignValue(object, key, source[key]);\n }\n }\n });\n\n /**\n * This method is like `_.assign` except that it iterates over own and\n * inherited source properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extend\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.assign\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * function Bar() {\n * this.c = 3;\n * }\n *\n * Foo.prototype.b = 2;\n * Bar.prototype.d = 4;\n *\n * _.assignIn({ 'a': 0 }, new Foo, new Bar);\n * // => { 'a': 1, 'b': 2, 'c': 3, 'd': 4 }\n */\n var assignIn = createAssigner(function(object, source) {\n copyObject(source, keysIn(source), object);\n });\n\n /**\n * This method is like `_.assignIn` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias extendWith\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignInWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignInWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keysIn(source), object, customizer);\n });\n\n /**\n * This method is like `_.assign` except that it accepts `customizer`\n * which is invoked to produce the assigned values. If `customizer` returns\n * `undefined`, assignment is handled by the method instead. The `customizer`\n * is invoked with five arguments: (objValue, srcValue, key, object, source).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @see _.assignInWith\n * @example\n *\n * function customizer(objValue, srcValue) {\n * return _.isUndefined(objValue) ? srcValue : objValue;\n * }\n *\n * var defaults = _.partialRight(_.assignWith, customizer);\n *\n * defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var assignWith = createAssigner(function(object, source, srcIndex, customizer) {\n copyObject(source, keys(source), object, customizer);\n });\n\n /**\n * Creates an array of values corresponding to `paths` of `object`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Array} Returns the picked values.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }, 4] };\n *\n * _.at(object, ['a[0].b.c', 'a[1]']);\n * // => [3, 4]\n */\n var at = flatRest(baseAt);\n\n /**\n * Creates an object that inherits from the `prototype` object. If a\n * `properties` object is given, its own enumerable string keyed properties\n * are assigned to the created object.\n *\n * @static\n * @memberOf _\n * @since 2.3.0\n * @category Object\n * @param {Object} prototype The object to inherit from.\n * @param {Object} [properties] The properties to assign to the object.\n * @returns {Object} Returns the new object.\n * @example\n *\n * function Shape() {\n * this.x = 0;\n * this.y = 0;\n * }\n *\n * function Circle() {\n * Shape.call(this);\n * }\n *\n * Circle.prototype = _.create(Shape.prototype, {\n * 'constructor': Circle\n * });\n *\n * var circle = new Circle;\n * circle instanceof Circle;\n * // => true\n *\n * circle instanceof Shape;\n * // => true\n */\n function create(prototype, properties) {\n var result = baseCreate(prototype);\n return properties == null ? result : baseAssign(result, properties);\n }\n\n /**\n * Assigns own and inherited enumerable string keyed properties of source\n * objects to the destination object for all destination properties that\n * resolve to `undefined`. Source objects are applied from left to right.\n * Once a property is set, additional values of the same property are ignored.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaultsDeep\n * @example\n *\n * _.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 });\n * // => { 'a': 1, 'b': 2 }\n */\n var defaults = baseRest(function(object, sources) {\n object = Object(object);\n\n var index = -1;\n var length = sources.length;\n var guard = length > 2 ? sources[2] : undefined;\n\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n length = 1;\n }\n\n while (++index < length) {\n var source = sources[index];\n var props = keysIn(source);\n var propsIndex = -1;\n var propsLength = props.length;\n\n while (++propsIndex < propsLength) {\n var key = props[propsIndex];\n var value = object[key];\n\n if (value === undefined ||\n (eq(value, objectProto[key]) && !hasOwnProperty.call(object, key))) {\n object[key] = source[key];\n }\n }\n }\n\n return object;\n });\n\n /**\n * This method is like `_.defaults` except that it recursively assigns\n * default properties.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.10.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @see _.defaults\n * @example\n *\n * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } });\n * // => { 'a': { 'b': 2, 'c': 3 } }\n */\n var defaultsDeep = baseRest(function(args) {\n args.push(undefined, customDefaultsMerge);\n return apply(mergeWith, undefined, args);\n });\n\n /**\n * This method is like `_.find` except that it returns the key of the first\n * element `predicate` returns truthy for instead of the element itself.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findKey(users, function(o) { return o.age < 40; });\n * // => 'barney' (iteration order is not guaranteed)\n *\n * // The `_.matches` iteratee shorthand.\n * _.findKey(users, { 'age': 1, 'active': true });\n * // => 'pebbles'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findKey(users, 'active');\n * // => 'barney'\n */\n function findKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwn);\n }\n\n /**\n * This method is like `_.findKey` except that it iterates over elements of\n * a collection in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @param {Function} [predicate=_.identity] The function invoked per iteration.\n * @returns {string|undefined} Returns the key of the matched element,\n * else `undefined`.\n * @example\n *\n * var users = {\n * 'barney': { 'age': 36, 'active': true },\n * 'fred': { 'age': 40, 'active': false },\n * 'pebbles': { 'age': 1, 'active': true }\n * };\n *\n * _.findLastKey(users, function(o) { return o.age < 40; });\n * // => returns 'pebbles' assuming `_.findKey` returns 'barney'\n *\n * // The `_.matches` iteratee shorthand.\n * _.findLastKey(users, { 'age': 36, 'active': true });\n * // => 'barney'\n *\n * // The `_.matchesProperty` iteratee shorthand.\n * _.findLastKey(users, ['active', false]);\n * // => 'fred'\n *\n * // The `_.property` iteratee shorthand.\n * _.findLastKey(users, 'active');\n * // => 'pebbles'\n */\n function findLastKey(object, predicate) {\n return baseFindKey(object, getIteratee(predicate, 3), baseForOwnRight);\n }\n\n /**\n * Iterates over own and inherited enumerable string keyed properties of an\n * object and invokes `iteratee` for each property. The iteratee is invoked\n * with three arguments: (value, key, object). Iteratee functions may exit\n * iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forInRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forIn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a', 'b', then 'c' (iteration order is not guaranteed).\n */\n function forIn(object, iteratee) {\n return object == null\n ? object\n : baseFor(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * This method is like `_.forIn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forIn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forInRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'c', 'b', then 'a' assuming `_.forIn` logs 'a', 'b', then 'c'.\n */\n function forInRight(object, iteratee) {\n return object == null\n ? object\n : baseForRight(object, getIteratee(iteratee, 3), keysIn);\n }\n\n /**\n * Iterates over own enumerable string keyed properties of an object and\n * invokes `iteratee` for each property. The iteratee is invoked with three\n * arguments: (value, key, object). Iteratee functions may exit iteration\n * early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 0.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwnRight\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwn(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'a' then 'b' (iteration order is not guaranteed).\n */\n function forOwn(object, iteratee) {\n return object && baseForOwn(object, getIteratee(iteratee, 3));\n }\n\n /**\n * This method is like `_.forOwn` except that it iterates over properties of\n * `object` in the opposite order.\n *\n * @static\n * @memberOf _\n * @since 2.0.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns `object`.\n * @see _.forOwn\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.forOwnRight(new Foo, function(value, key) {\n * console.log(key);\n * });\n * // => Logs 'b' then 'a' assuming `_.forOwn` logs 'a' then 'b'.\n */\n function forOwnRight(object, iteratee) {\n return object && baseForOwnRight(object, getIteratee(iteratee, 3));\n }\n\n /**\n * Creates an array of function property names from own enumerable properties\n * of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functionsIn\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functions(new Foo);\n * // => ['a', 'b']\n */\n function functions(object) {\n return object == null ? [] : baseFunctions(object, keys(object));\n }\n\n /**\n * Creates an array of function property names from own and inherited\n * enumerable properties of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to inspect.\n * @returns {Array} Returns the function names.\n * @see _.functions\n * @example\n *\n * function Foo() {\n * this.a = _.constant('a');\n * this.b = _.constant('b');\n * }\n *\n * Foo.prototype.c = _.constant('c');\n *\n * _.functionsIn(new Foo);\n * // => ['a', 'b', 'c']\n */\n function functionsIn(object) {\n return object == null ? [] : baseFunctions(object, keysIn(object));\n }\n\n /**\n * Gets the value at `path` of `object`. If the resolved value is\n * `undefined`, the `defaultValue` is returned in its place.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to get.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.get(object, 'a[0].b.c');\n * // => 3\n *\n * _.get(object, ['a', '0', 'b', 'c']);\n * // => 3\n *\n * _.get(object, 'a.b.c', 'default');\n * // => 'default'\n */\n function get(object, path, defaultValue) {\n var result = object == null ? undefined : baseGet(object, path);\n return result === undefined ? defaultValue : result;\n }\n\n /**\n * Checks if `path` is a direct property of `object`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = { 'a': { 'b': 2 } };\n * var other = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.has(object, 'a');\n * // => true\n *\n * _.has(object, 'a.b');\n * // => true\n *\n * _.has(object, ['a', 'b']);\n * // => true\n *\n * _.has(other, 'a');\n * // => false\n */\n function has(object, path) {\n return object != null && hasPath(object, path, baseHas);\n }\n\n /**\n * Checks if `path` is a direct or inherited property of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path to check.\n * @returns {boolean} Returns `true` if `path` exists, else `false`.\n * @example\n *\n * var object = _.create({ 'a': _.create({ 'b': 2 }) });\n *\n * _.hasIn(object, 'a');\n * // => true\n *\n * _.hasIn(object, 'a.b');\n * // => true\n *\n * _.hasIn(object, ['a', 'b']);\n * // => true\n *\n * _.hasIn(object, 'b');\n * // => false\n */\n function hasIn(object, path) {\n return object != null && hasPath(object, path, baseHasIn);\n }\n\n /**\n * Creates an object composed of the inverted keys and values of `object`.\n * If `object` contains duplicate values, subsequent values overwrite\n * property assignments of previous values.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Object\n * @param {Object} object The object to invert.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invert(object);\n * // => { '1': 'c', '2': 'b' }\n */\n var invert = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n result[value] = key;\n }, constant(identity));\n\n /**\n * This method is like `_.invert` except that the inverted object is generated\n * from the results of running each element of `object` thru `iteratee`. The\n * corresponding inverted value of each inverted key is an array of keys\n * responsible for generating the inverted value. The iteratee is invoked\n * with one argument: (value).\n *\n * @static\n * @memberOf _\n * @since 4.1.0\n * @category Object\n * @param {Object} object The object to invert.\n * @param {Function} [iteratee=_.identity] The iteratee invoked per element.\n * @returns {Object} Returns the new inverted object.\n * @example\n *\n * var object = { 'a': 1, 'b': 2, 'c': 1 };\n *\n * _.invertBy(object);\n * // => { '1': ['a', 'c'], '2': ['b'] }\n *\n * _.invertBy(object, function(value) {\n * return 'group' + value;\n * });\n * // => { 'group1': ['a', 'c'], 'group2': ['b'] }\n */\n var invertBy = createInverter(function(result, value, key) {\n if (value != null &&\n typeof value.toString != 'function') {\n value = nativeObjectToString.call(value);\n }\n\n if (hasOwnProperty.call(result, value)) {\n result[value].push(key);\n } else {\n result[value] = [key];\n }\n }, getIteratee);\n\n /**\n * Invokes the method at `path` of `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the method to invoke.\n * @param {...*} [args] The arguments to invoke the method with.\n * @returns {*} Returns the result of the invoked method.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': [1, 2, 3, 4] } }] };\n *\n * _.invoke(object, 'a[0].b.c.slice', 1, 3);\n * // => [2, 3]\n */\n var invoke = baseRest(baseInvoke);\n\n /**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\n function keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n }\n\n /**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\n function keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n }\n\n /**\n * The opposite of `_.mapValues`; this method creates an object with the\n * same values as `object` and keys generated by running each own enumerable\n * string keyed property of `object` thru `iteratee`. The iteratee is invoked\n * with three arguments: (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 3.8.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapValues\n * @example\n *\n * _.mapKeys({ 'a': 1, 'b': 2 }, function(value, key) {\n * return key + value;\n * });\n * // => { 'a1': 1, 'b2': 2 }\n */\n function mapKeys(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, iteratee(value, key, object), value);\n });\n return result;\n }\n\n /**\n * Creates an object with the same keys as `object` and values generated\n * by running each own enumerable string keyed property of `object` thru\n * `iteratee`. The iteratee is invoked with three arguments:\n * (value, key, object).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @returns {Object} Returns the new mapped object.\n * @see _.mapKeys\n * @example\n *\n * var users = {\n * 'fred': { 'user': 'fred', 'age': 40 },\n * 'pebbles': { 'user': 'pebbles', 'age': 1 }\n * };\n *\n * _.mapValues(users, function(o) { return o.age; });\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n *\n * // The `_.property` iteratee shorthand.\n * _.mapValues(users, 'age');\n * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed)\n */\n function mapValues(object, iteratee) {\n var result = {};\n iteratee = getIteratee(iteratee, 3);\n\n baseForOwn(object, function(value, key, object) {\n baseAssignValue(result, key, iteratee(value, key, object));\n });\n return result;\n }\n\n /**\n * This method is like `_.assign` except that it recursively merges own and\n * inherited enumerable string keyed properties of source objects into the\n * destination object. Source properties that resolve to `undefined` are\n * skipped if a destination value exists. Array and plain object properties\n * are merged recursively. Other objects and value types are overridden by\n * assignment. Source objects are applied from left to right. Subsequent\n * sources overwrite property assignments of previous sources.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 0.5.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {\n * 'a': [{ 'b': 2 }, { 'd': 4 }]\n * };\n *\n * var other = {\n * 'a': [{ 'c': 3 }, { 'e': 5 }]\n * };\n *\n * _.merge(object, other);\n * // => { 'a': [{ 'b': 2, 'c': 3 }, { 'd': 4, 'e': 5 }] }\n */\n var merge = createAssigner(function(object, source, srcIndex) {\n baseMerge(object, source, srcIndex);\n });\n\n /**\n * This method is like `_.merge` except that it accepts `customizer` which\n * is invoked to produce the merged values of the destination and source\n * properties. If `customizer` returns `undefined`, merging is handled by the\n * method instead. The `customizer` is invoked with six arguments:\n * (objValue, srcValue, key, object, source, stack).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} sources The source objects.\n * @param {Function} customizer The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * function customizer(objValue, srcValue) {\n * if (_.isArray(objValue)) {\n * return objValue.concat(srcValue);\n * }\n * }\n *\n * var object = { 'a': [1], 'b': [2] };\n * var other = { 'a': [3], 'b': [4] };\n *\n * _.mergeWith(object, other, customizer);\n * // => { 'a': [1, 3], 'b': [2, 4] }\n */\n var mergeWith = createAssigner(function(object, source, srcIndex, customizer) {\n baseMerge(object, source, srcIndex, customizer);\n });\n\n /**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\n var omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n });\n\n /**\n * The opposite of `_.pickBy`; this method creates an object composed of\n * the own and inherited enumerable string keyed properties of `object` that\n * `predicate` doesn't return truthy for. The predicate is invoked with two\n * arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omitBy(object, _.isNumber);\n * // => { 'b': '2' }\n */\n function omitBy(object, predicate) {\n return pickBy(object, negate(getIteratee(predicate)));\n }\n\n /**\n * Creates an object composed of the picked `object` properties.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to pick.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pick(object, ['a', 'c']);\n * // => { 'a': 1, 'c': 3 }\n */\n var pick = flatRest(function(object, paths) {\n return object == null ? {} : basePick(object, paths);\n });\n\n /**\n * Creates an object composed of the `object` properties `predicate` returns\n * truthy for. The predicate is invoked with two arguments: (value, key).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The source object.\n * @param {Function} [predicate=_.identity] The function invoked per property.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.pickBy(object, _.isNumber);\n * // => { 'a': 1, 'c': 3 }\n */\n function pickBy(object, predicate) {\n if (object == null) {\n return {};\n }\n var props = arrayMap(getAllKeysIn(object), function(prop) {\n return [prop];\n });\n predicate = getIteratee(predicate);\n return basePickBy(object, props, function(value, path) {\n return predicate(value, path[0]);\n });\n }\n\n /**\n * This method is like `_.get` except that if the resolved value is a\n * function it's invoked with the `this` binding of its parent object and\n * its result is returned.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @param {Array|string} path The path of the property to resolve.\n * @param {*} [defaultValue] The value returned for `undefined` resolved values.\n * @returns {*} Returns the resolved value.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c1': 3, 'c2': _.constant(4) } }] };\n *\n * _.result(object, 'a[0].b.c1');\n * // => 3\n *\n * _.result(object, 'a[0].b.c2');\n * // => 4\n *\n * _.result(object, 'a[0].b.c3', 'default');\n * // => 'default'\n *\n * _.result(object, 'a[0].b.c3', _.constant('default'));\n * // => 'default'\n */\n function result(object, path, defaultValue) {\n path = castPath(path, object);\n\n var index = -1,\n length = path.length;\n\n // Ensure the loop is entered when path is empty.\n if (!length) {\n length = 1;\n object = undefined;\n }\n while (++index < length) {\n var value = object == null ? undefined : object[toKey(path[index])];\n if (value === undefined) {\n index = length;\n value = defaultValue;\n }\n object = isFunction(value) ? value.call(object) : value;\n }\n return object;\n }\n\n /**\n * Sets the value at `path` of `object`. If a portion of `path` doesn't exist,\n * it's created. Arrays are created for missing index properties while objects\n * are created for all other missing properties. Use `_.setWith` to customize\n * `path` creation.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 3.7.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.set(object, 'a[0].b.c', 4);\n * console.log(object.a[0].b.c);\n * // => 4\n *\n * _.set(object, ['x', '0', 'y', 'z'], 5);\n * console.log(object.x[0].y.z);\n * // => 5\n */\n function set(object, path, value) {\n return object == null ? object : baseSet(object, path, value);\n }\n\n /**\n * This method is like `_.set` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {*} value The value to set.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.setWith(object, '[0][1]', 'a', Object);\n * // => { '0': { '1': 'a' } }\n */\n function setWith(object, path, value, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseSet(object, path, value, customizer);\n }\n\n /**\n * Creates an array of own enumerable string keyed-value pairs for `object`\n * which can be consumed by `_.fromPairs`. If `object` is a map or set, its\n * entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entries\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairs(new Foo);\n * // => [['a', 1], ['b', 2]] (iteration order is not guaranteed)\n */\n var toPairs = createToPairs(keys);\n\n /**\n * Creates an array of own and inherited enumerable string keyed-value pairs\n * for `object` which can be consumed by `_.fromPairs`. If `object` is a map\n * or set, its entries are returned.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @alias entriesIn\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the key-value pairs.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.toPairsIn(new Foo);\n * // => [['a', 1], ['b', 2], ['c', 3]] (iteration order is not guaranteed)\n */\n var toPairsIn = createToPairs(keysIn);\n\n /**\n * An alternative to `_.reduce`; this method transforms `object` to a new\n * `accumulator` object which is the result of running each of its own\n * enumerable string keyed properties thru `iteratee`, with each invocation\n * potentially mutating the `accumulator` object. If `accumulator` is not\n * provided, a new object with the same `[[Prototype]]` will be used. The\n * iteratee is invoked with four arguments: (accumulator, value, key, object).\n * Iteratee functions may exit iteration early by explicitly returning `false`.\n *\n * @static\n * @memberOf _\n * @since 1.3.0\n * @category Object\n * @param {Object} object The object to iterate over.\n * @param {Function} [iteratee=_.identity] The function invoked per iteration.\n * @param {*} [accumulator] The custom accumulator value.\n * @returns {*} Returns the accumulated value.\n * @example\n *\n * _.transform([2, 3, 4], function(result, n) {\n * result.push(n *= n);\n * return n % 2 == 0;\n * }, []);\n * // => [4, 9]\n *\n * _.transform({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) {\n * (result[value] || (result[value] = [])).push(key);\n * }, {});\n * // => { '1': ['a', 'c'], '2': ['b'] }\n */\n function transform(object, iteratee, accumulator) {\n var isArr = isArray(object),\n isArrLike = isArr || isBuffer(object) || isTypedArray(object);\n\n iteratee = getIteratee(iteratee, 4);\n if (accumulator == null) {\n var Ctor = object && object.constructor;\n if (isArrLike) {\n accumulator = isArr ? new Ctor : [];\n }\n else if (isObject(object)) {\n accumulator = isFunction(Ctor) ? baseCreate(getPrototype(object)) : {};\n }\n else {\n accumulator = {};\n }\n }\n (isArrLike ? arrayEach : baseForOwn)(object, function(value, index, object) {\n return iteratee(accumulator, value, index, object);\n });\n return accumulator;\n }\n\n /**\n * Removes the property at `path` of `object`.\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 7 } }] };\n * _.unset(object, 'a[0].b.c');\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n *\n * _.unset(object, ['a', '0', 'b', 'c']);\n * // => true\n *\n * console.log(object);\n * // => { 'a': [{ 'b': {} }] };\n */\n function unset(object, path) {\n return object == null ? true : baseUnset(object, path);\n }\n\n /**\n * This method is like `_.set` except that accepts `updater` to produce the\n * value to set. Use `_.updateWith` to customize `path` creation. The `updater`\n * is invoked with one argument: (value).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = { 'a': [{ 'b': { 'c': 3 } }] };\n *\n * _.update(object, 'a[0].b.c', function(n) { return n * n; });\n * console.log(object.a[0].b.c);\n * // => 9\n *\n * _.update(object, 'x[0].y.z', function(n) { return n ? n + 1 : 0; });\n * console.log(object.x[0].y.z);\n * // => 0\n */\n function update(object, path, updater) {\n return object == null ? object : baseUpdate(object, path, castFunction(updater));\n }\n\n /**\n * This method is like `_.update` except that it accepts `customizer` which is\n * invoked to produce the objects of `path`. If `customizer` returns `undefined`\n * path creation is handled by the method instead. The `customizer` is invoked\n * with three arguments: (nsValue, key, nsObject).\n *\n * **Note:** This method mutates `object`.\n *\n * @static\n * @memberOf _\n * @since 4.6.0\n * @category Object\n * @param {Object} object The object to modify.\n * @param {Array|string} path The path of the property to set.\n * @param {Function} updater The function to produce the updated value.\n * @param {Function} [customizer] The function to customize assigned values.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var object = {};\n *\n * _.updateWith(object, '[0][1]', _.constant('a'), Object);\n * // => { '0': { '1': 'a' } }\n */\n function updateWith(object, path, updater, customizer) {\n customizer = typeof customizer == 'function' ? customizer : undefined;\n return object == null ? object : baseUpdate(object, path, castFunction(updater), customizer);\n }\n\n /**\n * Creates an array of the own enumerable string keyed property values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.values(new Foo);\n * // => [1, 2] (iteration order is not guaranteed)\n *\n * _.values('hi');\n * // => ['h', 'i']\n */\n function values(object) {\n return object == null ? [] : baseValues(object, keys(object));\n }\n\n /**\n * Creates an array of the own and inherited enumerable string keyed property\n * values of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property values.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.valuesIn(new Foo);\n * // => [1, 2, 3] (iteration order is not guaranteed)\n */\n function valuesIn(object) {\n return object == null ? [] : baseValues(object, keysIn(object));\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Clamps `number` within the inclusive `lower` and `upper` bounds.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Number\n * @param {number} number The number to clamp.\n * @param {number} [lower] The lower bound.\n * @param {number} upper The upper bound.\n * @returns {number} Returns the clamped number.\n * @example\n *\n * _.clamp(-10, -5, 5);\n * // => -5\n *\n * _.clamp(10, -5, 5);\n * // => 5\n */\n function clamp(number, lower, upper) {\n if (upper === undefined) {\n upper = lower;\n lower = undefined;\n }\n if (upper !== undefined) {\n upper = toNumber(upper);\n upper = upper === upper ? upper : 0;\n }\n if (lower !== undefined) {\n lower = toNumber(lower);\n lower = lower === lower ? lower : 0;\n }\n return baseClamp(toNumber(number), lower, upper);\n }\n\n /**\n * Checks if `n` is between `start` and up to, but not including, `end`. If\n * `end` is not specified, it's set to `start` with `start` then set to `0`.\n * If `start` is greater than `end` the params are swapped to support\n * negative ranges.\n *\n * @static\n * @memberOf _\n * @since 3.3.0\n * @category Number\n * @param {number} number The number to check.\n * @param {number} [start=0] The start of the range.\n * @param {number} end The end of the range.\n * @returns {boolean} Returns `true` if `number` is in the range, else `false`.\n * @see _.range, _.rangeRight\n * @example\n *\n * _.inRange(3, 2, 4);\n * // => true\n *\n * _.inRange(4, 8);\n * // => true\n *\n * _.inRange(4, 2);\n * // => false\n *\n * _.inRange(2, 2);\n * // => false\n *\n * _.inRange(1.2, 2);\n * // => true\n *\n * _.inRange(5.2, 4);\n * // => false\n *\n * _.inRange(-3, -2, -6);\n * // => true\n */\n function inRange(number, start, end) {\n start = toFinite(start);\n if (end === undefined) {\n end = start;\n start = 0;\n } else {\n end = toFinite(end);\n }\n number = toNumber(number);\n return baseInRange(number, start, end);\n }\n\n /**\n * Produces a random number between the inclusive `lower` and `upper` bounds.\n * If only one argument is provided a number between `0` and the given number\n * is returned. If `floating` is `true`, or either `lower` or `upper` are\n * floats, a floating-point number is returned instead of an integer.\n *\n * **Note:** JavaScript follows the IEEE-754 standard for resolving\n * floating-point values which can produce unexpected results.\n *\n * @static\n * @memberOf _\n * @since 0.7.0\n * @category Number\n * @param {number} [lower=0] The lower bound.\n * @param {number} [upper=1] The upper bound.\n * @param {boolean} [floating] Specify returning a floating-point number.\n * @returns {number} Returns the random number.\n * @example\n *\n * _.random(0, 5);\n * // => an integer between 0 and 5\n *\n * _.random(5);\n * // => also an integer between 0 and 5\n *\n * _.random(5, true);\n * // => a floating-point number between 0 and 5\n *\n * _.random(1.2, 5.2);\n * // => a floating-point number between 1.2 and 5.2\n */\n function random(lower, upper, floating) {\n if (floating && typeof floating != 'boolean' && isIterateeCall(lower, upper, floating)) {\n upper = floating = undefined;\n }\n if (floating === undefined) {\n if (typeof upper == 'boolean') {\n floating = upper;\n upper = undefined;\n }\n else if (typeof lower == 'boolean') {\n floating = lower;\n lower = undefined;\n }\n }\n if (lower === undefined && upper === undefined) {\n lower = 0;\n upper = 1;\n }\n else {\n lower = toFinite(lower);\n if (upper === undefined) {\n upper = lower;\n lower = 0;\n } else {\n upper = toFinite(upper);\n }\n }\n if (lower > upper) {\n var temp = lower;\n lower = upper;\n upper = temp;\n }\n if (floating || lower % 1 || upper % 1) {\n var rand = nativeRandom();\n return nativeMin(lower + (rand * (upper - lower + freeParseFloat('1e-' + ((rand + '').length - 1)))), upper);\n }\n return baseRandom(lower, upper);\n }\n\n /*------------------------------------------------------------------------*/\n\n /**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\n var camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n });\n\n /**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\n function capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n }\n\n /**\n * Deburrs `string` by converting\n * [Latin-1 Supplement](https://en.wikipedia.org/wiki/Latin-1_Supplement_(Unicode_block)#Character_table)\n * and [Latin Extended-A](https://en.wikipedia.org/wiki/Latin_Extended-A)\n * letters to basic Latin letters and removing\n * [combining diacritical marks](https://en.wikipedia.org/wiki/Combining_Diacritical_Marks).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to deburr.\n * @returns {string} Returns the deburred string.\n * @example\n *\n * _.deburr('déjà vu');\n * // => 'deja vu'\n */\n function deburr(string) {\n string = toString(string);\n return string && string.replace(reLatin, deburrLetter).replace(reComboMark, '');\n }\n\n /**\n * Checks if `string` ends with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=string.length] The position to search up to.\n * @returns {boolean} Returns `true` if `string` ends with `target`,\n * else `false`.\n * @example\n *\n * _.endsWith('abc', 'c');\n * // => true\n *\n * _.endsWith('abc', 'b');\n * // => false\n *\n * _.endsWith('abc', 'b', 2);\n * // => true\n */\n function endsWith(string, target, position) {\n string = toString(string);\n target = baseToString(target);\n\n var length = string.length;\n position = position === undefined\n ? length\n : baseClamp(toInteger(position), 0, length);\n\n var end = position;\n position -= target.length;\n return position >= 0 && string.slice(position, end) == target;\n }\n\n /**\n * Converts the characters \"&\", \"<\", \">\", '\"', and \"'\" in `string` to their\n * corresponding HTML entities.\n *\n * **Note:** No other characters are escaped. To escape additional\n * characters use a third-party library like [_he_](https://mths.be/he).\n *\n * Though the \">\" character is escaped for symmetry, characters like\n * \">\" and \"/\" don't need escaping in HTML and have no special meaning\n * unless they're part of a tag or unquoted attribute value. See\n * [Mathias Bynens's article](https://mathiasbynens.be/notes/ambiguous-ampersands)\n * (under \"semi-related fun fact\") for more details.\n *\n * When working with HTML you should always\n * [quote attribute values](http://wonko.com/post/html-escaping) to reduce\n * XSS vectors.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escape('fred, barney, & pebbles');\n * // => 'fred, barney, & pebbles'\n */\n function escape(string) {\n string = toString(string);\n return (string && reHasUnescapedHtml.test(string))\n ? string.replace(reUnescapedHtml, escapeHtmlChar)\n : string;\n }\n\n /**\n * Escapes the `RegExp` special characters \"^\", \"$\", \"\\\", \".\", \"*\", \"+\",\n * \"?\", \"(\", \")\", \"[\", \"]\", \"{\", \"}\", and \"|\" in `string`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https://lodash\\.com/\\)'\n */\n function escapeRegExp(string) {\n string = toString(string);\n return (string && reHasRegExpChar.test(string))\n ? string.replace(reRegExpChar, '\\\\$&')\n : string;\n }\n\n /**\n * Converts `string` to\n * [kebab case](https://en.wikipedia.org/wiki/Letter_case#Special_case_styles).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the kebab cased string.\n * @example\n *\n * _.kebabCase('Foo Bar');\n * // => 'foo-bar'\n *\n * _.kebabCase('fooBar');\n * // => 'foo-bar'\n *\n * _.kebabCase('__FOO_BAR__');\n * // => 'foo-bar'\n */\n var kebabCase = createCompounder(function(result, word, index) {\n return result + (index ? '-' : '') + word.toLowerCase();\n });\n\n /**\n * Converts `string`, as space separated words, to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the lower cased string.\n * @example\n *\n * _.lowerCase('--Foo-Bar--');\n * // => 'foo bar'\n *\n * _.lowerCase('fooBar');\n * // => 'foo bar'\n *\n * _.lowerCase('__FOO_BAR__');\n * // => 'foo bar'\n */\n var lowerCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + word.toLowerCase();\n });\n\n /**\n * Converts the first character of `string` to lower case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.lowerFirst('Fred');\n * // => 'fred'\n *\n * _.lowerFirst('FRED');\n * // => 'fRED'\n */\n var lowerFirst = createCaseFirst('toLowerCase');\n\n /**\n * Pads `string` on the left and right sides if it's shorter than `length`.\n * Padding characters are truncated if they can't be evenly divided by `length`.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.pad('abc', 8);\n * // => ' abc '\n *\n * _.pad('abc', 8, '_-');\n * // => '_-abc_-_'\n *\n * _.pad('abc', 3);\n * // => 'abc'\n */\n function pad(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n if (!length || strLength >= length) {\n return string;\n }\n var mid = (length - strLength) / 2;\n return (\n createPadding(nativeFloor(mid), chars) +\n string +\n createPadding(nativeCeil(mid), chars)\n );\n }\n\n /**\n * Pads `string` on the right side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padEnd('abc', 6);\n * // => 'abc '\n *\n * _.padEnd('abc', 6, '_-');\n * // => 'abc_-_'\n *\n * _.padEnd('abc', 3);\n * // => 'abc'\n */\n function padEnd(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (string + createPadding(length - strLength, chars))\n : string;\n }\n\n /**\n * Pads `string` on the left side if it's shorter than `length`. Padding\n * characters are truncated if they exceed `length`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to pad.\n * @param {number} [length=0] The padding length.\n * @param {string} [chars=' '] The string used as padding.\n * @returns {string} Returns the padded string.\n * @example\n *\n * _.padStart('abc', 6);\n * // => ' abc'\n *\n * _.padStart('abc', 6, '_-');\n * // => '_-_abc'\n *\n * _.padStart('abc', 3);\n * // => 'abc'\n */\n function padStart(string, length, chars) {\n string = toString(string);\n length = toInteger(length);\n\n var strLength = length ? stringSize(string) : 0;\n return (length && strLength < length)\n ? (createPadding(length - strLength, chars) + string)\n : string;\n }\n\n /**\n * Converts `string` to an integer of the specified radix. If `radix` is\n * `undefined` or `0`, a `radix` of `10` is used unless `value` is a\n * hexadecimal, in which case a `radix` of `16` is used.\n *\n * **Note:** This method aligns with the\n * [ES5 implementation](https://es5.github.io/#x15.1.2.2) of `parseInt`.\n *\n * @static\n * @memberOf _\n * @since 1.1.0\n * @category String\n * @param {string} string The string to convert.\n * @param {number} [radix=10] The radix to interpret `value` by.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {number} Returns the converted integer.\n * @example\n *\n * _.parseInt('08');\n * // => 8\n *\n * _.map(['6', '08', '10'], _.parseInt);\n * // => [6, 8, 10]\n */\n function parseInt(string, radix, guard) {\n if (guard || radix == null) {\n radix = 0;\n } else if (radix) {\n radix = +radix;\n }\n return nativeParseInt(toString(string).replace(reTrimStart, ''), radix || 0);\n }\n\n /**\n * Repeats the given string `n` times.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to repeat.\n * @param {number} [n=1] The number of times to repeat the string.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {string} Returns the repeated string.\n * @example\n *\n * _.repeat('*', 3);\n * // => '***'\n *\n * _.repeat('abc', 2);\n * // => 'abcabc'\n *\n * _.repeat('abc', 0);\n * // => ''\n */\n function repeat(string, n, guard) {\n if ((guard ? isIterateeCall(string, n, guard) : n === undefined)) {\n n = 1;\n } else {\n n = toInteger(n);\n }\n return baseRepeat(toString(string), n);\n }\n\n /**\n * Replaces matches for `pattern` in `string` with `replacement`.\n *\n * **Note:** This method is based on\n * [`String#replace`](https://mdn.io/String/replace).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to modify.\n * @param {RegExp|string} pattern The pattern to replace.\n * @param {Function|string} replacement The match replacement.\n * @returns {string} Returns the modified string.\n * @example\n *\n * _.replace('Hi Fred', 'Fred', 'Barney');\n * // => 'Hi Barney'\n */\n function replace() {\n var args = arguments,\n string = toString(args[0]);\n\n return args.length < 3 ? string : string.replace(args[1], args[2]);\n }\n\n /**\n * Converts `string` to\n * [snake case](https://en.wikipedia.org/wiki/Snake_case).\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the snake cased string.\n * @example\n *\n * _.snakeCase('Foo Bar');\n * // => 'foo_bar'\n *\n * _.snakeCase('fooBar');\n * // => 'foo_bar'\n *\n * _.snakeCase('--FOO-BAR--');\n * // => 'foo_bar'\n */\n var snakeCase = createCompounder(function(result, word, index) {\n return result + (index ? '_' : '') + word.toLowerCase();\n });\n\n /**\n * Splits `string` by `separator`.\n *\n * **Note:** This method is based on\n * [`String#split`](https://mdn.io/String/split).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to split.\n * @param {RegExp|string} separator The separator pattern to split by.\n * @param {number} [limit] The length to truncate results to.\n * @returns {Array} Returns the string segments.\n * @example\n *\n * _.split('a-b-c', '-', 2);\n * // => ['a', 'b']\n */\n function split(string, separator, limit) {\n if (limit && typeof limit != 'number' && isIterateeCall(string, separator, limit)) {\n separator = limit = undefined;\n }\n limit = limit === undefined ? MAX_ARRAY_LENGTH : limit >>> 0;\n if (!limit) {\n return [];\n }\n string = toString(string);\n if (string && (\n typeof separator == 'string' ||\n (separator != null && !isRegExp(separator))\n )) {\n separator = baseToString(separator);\n if (!separator && hasUnicode(string)) {\n return castSlice(stringToArray(string), 0, limit);\n }\n }\n return string.split(separator, limit);\n }\n\n /**\n * Converts `string` to\n * [start case](https://en.wikipedia.org/wiki/Letter_case#Stylistic_or_specialised_usage).\n *\n * @static\n * @memberOf _\n * @since 3.1.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the start cased string.\n * @example\n *\n * _.startCase('--foo-bar--');\n * // => 'Foo Bar'\n *\n * _.startCase('fooBar');\n * // => 'Foo Bar'\n *\n * _.startCase('__FOO_BAR__');\n * // => 'FOO BAR'\n */\n var startCase = createCompounder(function(result, word, index) {\n return result + (index ? ' ' : '') + upperFirst(word);\n });\n\n /**\n * Checks if `string` starts with the given target string.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to inspect.\n * @param {string} [target] The string to search for.\n * @param {number} [position=0] The position to search from.\n * @returns {boolean} Returns `true` if `string` starts with `target`,\n * else `false`.\n * @example\n *\n * _.startsWith('abc', 'a');\n * // => true\n *\n * _.startsWith('abc', 'b');\n * // => false\n *\n * _.startsWith('abc', 'b', 1);\n * // => true\n */\n function startsWith(string, target, position) {\n string = toString(string);\n position = position == null\n ? 0\n : baseClamp(toInteger(position), 0, string.length);\n\n target = baseToString(target);\n return string.slice(position, position + target.length) == target;\n }\n\n /**\n * Creates a compiled template function that can interpolate data properties\n * in \"interpolate\" delimiters, HTML-escape interpolated data properties in\n * \"escape\" delimiters, and execute JavaScript in \"evaluate\" delimiters. Data\n * properties may be accessed as free variables in the template. If a setting\n * object is given, it takes precedence over `_.templateSettings` values.\n *\n * **Note:** In the development build `_.template` utilizes\n * [sourceURLs](http://www.html5rocks.com/en/tutorials/developertools/sourcemaps/#toc-sourceurl)\n * for easier debugging.\n *\n * For more information on precompiling templates see\n * [lodash's custom builds documentation](https://lodash.com/custom-builds).\n *\n * For more information on Chrome extension sandboxes see\n * [Chrome's extensions documentation](https://developer.chrome.com/extensions/sandboxingEval).\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category String\n * @param {string} [string=''] The template string.\n * @param {Object} [options={}] The options object.\n * @param {RegExp} [options.escape=_.templateSettings.escape]\n * The HTML \"escape\" delimiter.\n * @param {RegExp} [options.evaluate=_.templateSettings.evaluate]\n * The \"evaluate\" delimiter.\n * @param {Object} [options.imports=_.templateSettings.imports]\n * An object to import into the template as free variables.\n * @param {RegExp} [options.interpolate=_.templateSettings.interpolate]\n * The \"interpolate\" delimiter.\n * @param {string} [options.sourceURL='lodash.templateSources[n]']\n * The sourceURL of the compiled template.\n * @param {string} [options.variable='obj']\n * The data object variable name.\n * @param- {Object} [guard] Enables use as an iteratee for methods like `_.map`.\n * @returns {Function} Returns the compiled template function.\n * @example\n *\n * // Use the \"interpolate\" delimiter to create a compiled template.\n * var compiled = _.template('hello <%= user %>!');\n * compiled({ 'user': 'fred' });\n * // => 'hello fred!'\n *\n * // Use the HTML \"escape\" delimiter to escape data property values.\n * var compiled = _.template('<%- value %>');\n * compiled({ 'value': '